Ответ: BIOS data, COM ports addreses and WIN Под WIN с портами надлежит работать через ф-ции АПИ, иначе ты
даже знать не будешь, доходят твои данные до железа или летят в
дупло. Пример можешь взять хоть из старых BC++, BP70, TASM,
хоть из новых FreePascal20, FASM163, NASM....
Попробуй, открой 2 ДОС-проги, работающие с COM2 (modem) через
INT14: Первая пахать будет, но вторая не сможет получить порта,
пока первая не будет закрыта ( здесь важно закрытие
VM-виртуальной машины).
И никакие обращения к физическому порту по адресу типа $3F8
могут не помочь. Более того, "Новые" порты на MB могут иметь
защиту от записи в регистры данных без предварительной
специальной инит-процедуры. По этому поводу почитай доки к BNU,
X00 foossil.
Кстати, есть в природе WinFossil: очень даже может тебе
подойти.
Физически же:
1.Получить селектор для системного сегмента 0040 через DPMI
( смотри доки к разным PMode-екстендерам ), считать адреса;
2.Расшарить диапазон адресов COM - порта (например, 3F8-3FF)
через DPMI ("Необязательно" в W9x,WME,для ДОС-VM);
3.Polling-mode: можно работать;
4.Interrupt-mode: навесить свой обработчик INT через DPMI.
5.Не забыть откатить все свои экзерсисы перед shutdown-ом,
или другая прога порта уже не получит аж до ReBoot.
Доки по DPMI берешь из комплекта DOS/32A
"http://dos32a.sourceforge.net/"
Это в W9x,WME. А в WinNT/2K/XP доступ к физике аппаратуры по
умолчанию закрыт, попытки чреваты "ошибками нападения защиты".
Работать только через АПИ. Или писать свой VXD: NuMega DrvDevKit
или EnTech/RapidDriver
"http://www.entechtaiwan.net/dev/rapid/index.shtm".
Последнее - сильная вещь:
"RapidDriver is an all-in-one solution providing hardware
device support on all software levels under different operating
systems. If you need to manage various devices under a wide
range of operating systems then RapidDriver is for you.
RapidDriver gives you immediate access to your hardware device
by eliminating the need to understand Windows kernel
organization and write sophisticated, error-prone kernel
mode code."
-
- в 'винтукей' не посылать! Морковка(315 знак., 16.11.2005 12:57, )