В силу ряда причин пишу свой драйвер для встроенных в материнку COM портов. Возникло несколько вопросов:
1. Читал, что через биос можно узнать адреса стандартных портов, путем чтения данных по адресу 0040h. Читаю от туда данные, а они постоянно меняются. Верен ли адрес? Где вобще можно узнать адреса стандартных портов?
2. В системе есть один порт с ресурсами 0x3F8-0x3FE, читаю эти адреса, а там одни фф. Получается порт не исправен? Или он на самом деле лежит по другим адресам? Запись других значений ничего не дает, там по прежнему лежат ФФ. Может это из-за того, что порт на самой плате внутри корпуса на разъем выведен (не сзади системника стандартный ДБ9) и он все таки по другим адресам в памяти?
3. На домашнем компе при выполнении пункта 2 вижу нормальные, адыкватные числа. Порт настраивается. Теперь хочу перехватить прерывание. В каких то случаях получается прерывание настроить на свою программу, в каких то нет, возвращается ошибка параметров. Удачный перехват происходит только если в диспетчере задач выключить порт и снова включить. тогда без проблем. до следующей перезагрузки. Можно ли как то этого избежать?