Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Вниз

Порты 


TSR   (2001-10-11 15:41) [0]

Как из программы узнать адреса LPT и COM портов?



Digitman   (2001-10-11 17:11) [1]

ну, узнал ... дальше с ними что делать собираешься ?



TSR   (2001-10-12 09:13) [2]

Есть Dll, которая работает с портами по их адресу

И еще уточнение
Узнал, что информация о портах находится в BIOS по
адресу $00000408
Пробую читать так:

mov ax,0
mov ds,ax
mov si,408h
mov ax,[si]

В паскале под DOS проходит, а в DELPHI под WIN32 нет

Интересно в чем дело?



Digitman   (2001-10-12 09:46) [3]

А дело в том, что платформа Win32 использует защищенный режим (PM) работы CPU, в то время как DOS - реальный режим (RM). В RM тебе непосредственно доступны все ресурсы компа, в то время как в PM это зависит от уровня привелегий (исполняемого кода прежде всего). Прикладные задачи в Win32 имеют 3-й (наинизший) уровень привелегий, в то время как ядро Win32 - 0-й (наивысший). И выкрутасы с фривольной (ничем неконтролируемой) манипуляцией апп.ресурсами компа доступны только на высшем уровне привелегий.



TSR   (2001-10-13 12:42) [4]

А как установить высший уровень привелегий для моей программы в win32?

Кстати в w2k в delphi cpu window по адресу $408 видны нули, в то
время как в w98 адрес порта LPT1

Почему так?



Anatoly Podgoretsky   (2001-10-13 19:26) [5]

Ты про какую память нам расскажываешь, ты что дкмаешь это та же самая память что и в ДОСе



Digitman   (2001-10-14 15:24) [6]

>TSR
В Винтукее - кроме как в теле драйвера - никак (не сей день мне такие "дыры" неизвестны)

В Вин9x - запросто. Формируешь новый дескриптор шлюза с нужным DPL - и вызываешь этот шлюз !

А дальше ты спросишь, что такое шлюз и как его сформировать ... А дальше ... дальше ))

Задача-то твоя, наверно, и не стоит знания всех этих тонкостей. Если нужно просто что-то слать в порты / читать из них - на то есть соотв.вызовы API, и эти вопросы чуть ли не ежедневно в форуме обсуждаются. Просто поищи в форуме все, что касается данной темы, и проблема "как залезть в BIOS" отпадет сама собой.



TSR   (2001-10-15 10:00) [7]

Вообще-то информация о портах находится в системном реестре, но дело в том,
что есть машина с установленной мультикартой. На ней есть порт LPT2.
В системе (W98) порт LPT2 не виден. При посылке данных по его адресу
(который в BIOS) из-под DOS все проходит.
Надо из-под (W32) определить программно адрес LPT2.



Digitman   (2001-10-15 11:00) [8]

дополнительный LPT не виден, потому что ты его не зарегистрировал в системе
Это делается в станд.диалоге Винды "Установка оборудования". После инсталляции порта LPT-драйвер будет "видеть" твой LPT2 точно также, как он "видит" LPT1 по-умолчанию. И никаких ДОСов не нужно - пользуйся WinAPI : CreateFile(), DeviceIOControl() и иже с ними.




Форум: "Система";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.73 MB
Время: 0.013 c
7-90396           Nikolay               2001-10-18 21:50  2002.01.28  
Tic-tac-свежесть всего в двух калориях?


7-90386           vik                   2001-10-06 14:47  2002.01.28  
Как отформатировать HDD


3-90198           Havez                 2001-12-20 23:11  2002.01.28  
Сохранность данных под InterBase


4-90408           Dufe Rob              2001-11-27 01:03  2002.01.28  
Открытие файла программой...


1-90290           Delphimun             2002-01-07 12:11  2002.01.28  
Как найти в заданном тексте, сочетания символов, которые подходят заданной схеме?