Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2004.01.13;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.54 MB
Время: 0.008 c
6-37817
Sadya
2003-11-11 17:48
2004.01.13
Мне необходимо в цикле опросить по сокетам несколько машин


1-37669
Rradion
2003-12-26 14:53
2004.01.13
ОБХОД ГРАФА ( в глубину ) - помогите, кто в курсе!


1-37708
denimy
2003-12-25 18:54
2004.01.13
Последовательный запуск приложений


14-37924
panov
2003-12-17 21:18
2004.01.13
Резалки баннеров


1-37664
Vitalik
2003-12-26 15:59
2004.01.13
VirtualStringTree





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский