Соединение между собой 2-х компьютеров
называется нуль-модемом.
Область данных BIOS.
COM1
40:00
3F8
IRQ4
COM2
40:02
2F8
IRQ3
COM3
40:04
IRQ4
COM4
40:06
IRQ3
Одно из них не должно использовать аппаратное прерывание (COM1, COM3
или COM2, COM4).
-
Делитель скорости обмена (2 байта): 19200
9600 4800
2400
1200 600
300
- Регистр управления линией (число битов, паритет, число
стоп-битов);
Совет: Для машины типа «Искра» лучше иметь 2 стоп-бита.
- Регистр управления модемом : DTR, RTS
- Регистр состояния модема : DCD
(deltaDCD), RI (deltaRI), DSR (deltaDSR), CTS (deltaCTS),
(delta-изменение сигналов)
Биты изменения устанавливаются в промежуточное положение. Управляющая
программа таким образом узнает были ли изменения.
- Регистр состояния линии (порта):
получен байт
данные перезаписаны
ошибка паритета
ошибка синхронизации
регистр передатчика пуст
- Регистр данных
- Регистр разрешения прерывания
- Регистр идентификации прерывания
Используются
биты 1 и 2 для идентификации обрабатываемого события (пришли данные,
буфер передатчика пуст, ошибка, изменения в регистре состояния модема).
2 1 0
х х
0 0 ошибка
0 1 прием данных
1 0 буфер передатчика
пуст
1 1 изменение в
регистре состояния модема
Аппаратная
логика порта инициализирует запрос на аппаратное прерывание, только в
том случае если предыдущее аппаратное прерывание было обработано,
поэтому сразу после установки вектора прерывания на свой собственный
обработчик в основной программе нужно сымитировать обработку
прерывания, для этого необходимо:
- прочитать байт из регистра данных;
- записать байт в регистра данных;
- прочитать регистр состояния модема;
- прочитать регистр состояния линии (бит
#3 регистр управления модемом);

ПОП – подпрограмма обработки прерывания
Маски портов :
11101111
COM1
11110111
COM2
Число х20 записывается в порт 0х20 в обработчике прерывания.