Текущий архив: 2004.01.13;
Скачать: CL | DM;
Внизasm&lpt Найти похожие ветки
← →
nollie (2003-10-28 09:43) [0]asm
MOV DX,0378H
MOV AL,167
OUT DX,AL
end;
не печатает... в чем проблема?
← →
Digitman (2003-10-28 09:54) [1]с чего ты так уверен, что адрес паралл.порта в данный момент именно 378h ?
← →
nollie (2003-10-28 10:23) [2]а что, он еще и меняется постоянно?
← →
Digitman (2003-10-28 10:49) [3]а почему бы и нет ?
ты что-нибудь о технологии Plug&Play слышал ? сто лет в обед ей скоро будет) ... в соответствии с концепцией P&P опер.система может и имеет право распределить устройству, поддерживающему технологию P&P, те аппаратные ресурсы, которые она (система) считает незанятыми на момент иниц-ции устр-ва, и которые устройство перечисляет в момент запроса к нему в кач-ве допустимых.
номер порта является аппаратным ресурсом (арбитражем подобных ресурсов "заведует" ОС), и если устройство не помечено как LEGACY и контроллер паралл.порта есть P&P-устройство, то система вполне может назначить для контроллера и иной порт (не обязательно 378h)... равно как и для любого другого P&P-устроойства ... равно как и для любого другого аппар.ресурса (диапазон адресов ввода/вывода, каналы ПДП, номера прерываний и т.д. и т.п.)
← →
nollie (2003-10-28 11:16) [4]ладно если адрес другой, то что делать?
← →
Anatoly Podgoretsky (2003-10-28 11:24) [5]Как что, печатать через систему, для этого есть обширное АПИ и не зачем за этим лезть напрямую в порты, отучайся от дурной привычки работать с аппаратурой напрямую.
← →
Digitman (2003-10-28 11:27) [6]а зачем тебе вообще "адрес" ? вот он тебе дался !)
пусть об этом дядя Билл со своей системой заботится)
открывай файловый поток вызовом
хэндл := CreateFile("LPT1", ....);
и "печатай" на здоровье что угодно и сколько угодно вызовом
результат := WriteFile(хэндл, ...);
← →
nollie (2003-10-28 11:29) [7]понятно все...
но мне надо именно ассемблер
← →
Digitman (2003-10-28 11:30) [8]
> nollie
см.
> Anatoly Podgoretsky © (28.10.03 11:24) [5]
она (привычка) ,может быть, и не столь "дурна", конечно ... но лишь в том случае, если ты разрабатываешь драйвер устройства режима ядра, а не прикладную задачу.. но, думается, тебе до этого как до Китая, и речь об этом в наст.момент вообще не идет
← →
Digitman (2003-10-28 11:31) [9]
> но мне надо именно ассемблер
нахрена ? можешь вразумительно объяснить ?
← →
nollie (2003-10-28 11:41) [10]людям показать надо... исходники
← →
Digitman (2003-10-28 11:46) [11]
> nollie
ну так и покажи) ... вот то самое, что здесь ты привел, как раз и покажи) ... но какое отношение это "покажи" имеет к грамотно и корректно организованной тобой логике взаимодействия твоей прикладной программы с системой на базе Win32 ?
← →
nollie (2003-10-28 13:06) [12]не катит..
← →
Anatoly Podgoretsky (2003-10-28 13:14) [13]nollie (28.10.03 11:29) [7]
Зачем, почему такое требование.
nollie (28.10.03 11:41) [10]
В поставке Дельфи очень много исходников на АСМ можешь смело показывать.
← →
Digitman (2003-10-28 13:16) [14]
> не катит..
краткость - сестра таланта))
← →
nollie (2003-10-28 13:21) [15]что-то типа дипломной работы...
показать надо комисии прогу и исходники и всё доказать
← →
Digitman (2003-10-28 13:53) [16]
> показать надо комисии прогу
вот и покажи этот код
> и всё доказать
и докажи , что работать он будет при таких-то условиях
чего уж проще)
← →
nollie (2003-10-28 16:25) [17]так вот эти условия надо найти
← →
Digitman (2003-10-28 16:35) [18]
> nollie
а что их искать-то ?) для Win32 эти условия - в обращении к портам устройства в драйвере режима ядра, а не в прикладной задаче)
← →
nollie (2003-10-28 16:49) [19]давай разберемся...
если надо показать работу с принтером на низком уровне, при этом предоставить исходники и на пальцах все обяснить....
то ##@%#$ мне api,win32, и работа с драйвером принтера?
← →
Digitman (2003-10-28 16:55) [20]
> nollie
да. именно так.
какая разница, КАК ты пошлешь командную секвенцию принтеру - непосредственно в порт или через WinAPI ?
все равно это и есть достаточно "низкий уровень", ибо секвенцию ты генерируешь сам , в соответствии с документацией к принтеру, а как эта секвенция попадет в результате в принтер - мало кому интересно
← →
Digitman (2003-10-28 16:59) [21]
> при этом предоставить исходники и на пальцах все обяснить....
тебе придется предоставить исходники не прикладной задачи, а драйвера) ... ты в состоянии написать драйвер да еще на пальцах объяснить, что это, почему и с чем его едят ? Думаю - нет, да и тема работы никак оговаривает такой поворот событий)
← →
Digitman (2003-10-28 17:04) [22]а уж если тема работы оговаривает именно использование asm, то и здесь ты можешь "убить сразу 2-х зайцев" :
- генерировать управляющую секвенцию на asm
- обращаться к WinAPI для передачи в принтер секвенции так же на asm
← →
nollie (2003-10-28 17:09) [23]дык...
надож показать состояние регистров управления, статуса и даных...
как это показать с АРІ
← →
Anatoly Podgoretsky (2003-10-28 17:14) [24]Это драйвер
← →
Anatoly Podgoretsky (2003-10-28 17:14) [25]Тебе заявили на какиз платформах должно работать
← →
nollie (2003-10-28 17:21) [26]-> Тебе заявили на какиз платформах должно работать
win98
← →
nollie (2003-10-28 17:25) [27]
asm
MOV DX,0378H
MOV AL,167
OUT DX,AL
end;
тут по сути осталось завершающий символ какой-то внести... это еще 2 строки... по идеи это:
MOV AL,13h
OUT DX,AL
но не работает...
13h - возвращение каретки
← →
Anatoly Podgoretsky (2003-10-28 17:25) [28]То что ты привел будет работать под ДОС, под win98 только в некоторых случаях, делезо это епархия системы и то что тебя не обругают за привилигированные инструкции и даже при наличии данного порта, не означает, что ты сможешь к нему обратиться.
На пользовательском уровне физических портов нет, только виртуальные порты, которыми управляет система
← →
nollie (2003-10-28 17:28) [29]человек делал всё работало... вот завершающий символ не помнит
← →
Digitman (2003-10-28 17:30) [30]
> nollie
что, в задании на проект так и сказано : ОС - Win9x ?
а если нет ? а если демонстрировать свое "творчество" тебе придется под Винтукеем ? Как будешь в глаза комиссии смотреть ? глазками хлопать, не зная что сказать по поводу почему это должно якобы работать везде, а в присутствии комиссии - хоть убей !- не работает ?)
← →
N169 (2003-10-28 17:43) [31]А что требуется? Чтобы печатало, я верно понял?
← →
nollie (2003-10-28 18:15) [32]-> N169
молодец
-> Digitman
не придется, ближайшый винтук за 200 км
← →
Pat (2003-10-28 23:53) [33]>nollie (28.10.03 18:15) [32]
У комиссии есть нехорошая привычка апгрейдить железо и, соответственно ПО, перед защитой. Вот поставят вам ХРень...и ХРен что у тебя заработает.
Ругайся с руководителем. Пусть либо меняет ОСь на ДОС, либо без низкоуровнего доступа к железу
← →
Digitman (2003-10-29 08:18) [34]
> nollie
а принтер-то какой будет ? тоже заранее знаешь ?)
← →
nollie (2003-10-29 09:26) [35]> Digitman
принтер матричный...
а вот насчет ХеРни всё улажено.... руки у них кивіе таким заниматся...
← →
Digitman (2003-10-29 09:51) [36]
> руки у них кивіе
уж не знаю, что у них там "кивое", но не предусмотрев многие нештатные ситуации ты запросто можешь вляпаться с защитой проекта)
даже если условия будут ожидаемыми (т.е. Win9x + матр.принтер на LPT), конкретная конфигурация ОС может подложить тебе баааальшую свинью) ... например, будет стоять резидентный редиректор порта и перенаправлять твою секвенцию черт-те куда, только не в принтер
посему, коль ты такой упрямый, тебе следует перейти на PL0 (благо под маздаем это до смешного просто безо всяких драйверов), определить базовый номер порта (это вполне может быть и не 378h) и уже в Ring0 работать с портами LPT-контроллера обычным образом (т.е. практически так же ,как и в MSDOS)
но здесь тебе грозит другое : придется рассказывать комиссии необходимость и все тонкости перехода в Ring0.. и чем больше у тебя будет пробелов в этих знаниях, тем больше будешь мямлить и тем больше новых вопросов у комиссии будет , мол, а это зачем, а это почему, а это как и для чего)))) ... в общем, врюхаешься по полной программе))
← →
Anatoly Podgoretsky (2003-10-29 10:04) [37]Digitman © (29.10.03 09:51) [36]
И это не однакратно встречалось с драйверами от HP
А насчет работоспособности данный код работоспособен в ДОС и в кольце 0, в остальных случаях только при наличии везения.
Стоит только оказаться в коммисии грамотнуму человеку, как он сразу спросит про адреса портов, про виртуальные порты, про привилигированные инструкции и если увидит хакерский переход в кольцо 0 то и про него. Для начала может спросить как это работает, а потом и про остальное.
← →
nollie (2003-10-29 10:15) [38]>Digitman
поверь, такой @##$@#$ не будет
← →
app (2003-10-29 10:26) [39]Мат замененый на иероглифы остается матом, у тебя это уже второй случай, в слчае повторения у тебя будет отсутствовать возможность сделать это в дальнейшем.
← →
N169 (2003-10-29 10:30) [40]http://e-dok.narod.ru/delphi/question1/text/text-019.html
http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=7900
http://www.delphikingdom.ru/asp/answer.asp?IDAnswer=14340
http://adam.stup.ac.ru/Developer/ArticleDetail.aspx?ar=2791&l=n&mi=927&mic=932
http://adam.stup.ac.ru/Developer/ArticleDetail.aspx?ar=2705&l=n&mi=926&mic=931
Страницы: 1 2 вся ветка
Текущий архив: 2004.01.13;
Скачать: CL | DM;
Память: 0.53 MB
Время: 0.008 c