Цитата(Timofey @ Dec 14 2010, 05:06)

1. Читал, что через биос можно узнать адреса стандартных портов, путем чтения данных по адресу 0040h. Читаю от туда данные, а они постоянно меняются. Верен ли адрес? Где вобще можно узнать адреса стандартных портов?
Адрес не 0040h, а 0400h, или в нотации "сегмент-смещение" 0040:0000h. Только это адрес
реального режима, или, проще говоря, физический адрес. В драйвере под ОС, работающую в защищённом режиме (Windows, Linux), его необходимо смаппировать в свое адресное пространство.
Цитата(Timofey @ Dec 14 2010, 05:06)

2. В системе есть один порт с ресурсами 0x3F8-0x3FE, читаю эти адреса, а там одни фф. Получается порт не исправен? Или он на самом деле лежит по другим адресам? Запись других значений ничего не дает, там по прежнему лежат ФФ. Может это из-за того, что порт на самой плате внутри корпуса на разъем выведен (не сзади системника стандартный ДБ9) и он все таки по другим адресам в памяти?
Скорее всего, порт просто не включен в BIOS Setup.
Цитата(Timofey @ Dec 14 2010, 05:06)

3. На домашнем компе при выполнении пункта 2 вижу нормальные, адыкватные числа. Порт настраивается. Теперь хочу перехватить прерывание. В каких то случаях получается прерывание настроить на свою программу, в каких то нет, возвращается ошибка параметров. Удачный перехват происходит только если в диспетчере задач выключить порт и снова включить. тогда без проблем. до следующей перезагрузки. Можно ли как то этого избежать?
ISA-прерывание не является разделяемым ресурсом, поэтому система не даст подвестить два обработчика прерывания от legacy COM-порта. Если Вы хотите обслуживать COM-порт своим драйвером - стандартный виндовый драйвер необходимо отключить.
Сделано в Китае. Упаковано в России.