ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
21 июля
44164 Топик полностью
lycozoid (16.11.2005 06:35, просмотров: 1) ответил Xeniya на Выйди в DOS!
Ответ: 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."