Справочник программиста на персональном компьютере фирмы IBM. Ввод/вывод - Инициализация скорости обмена
ОГЛАВЛЕНИЕ
Инициализация скорости обмена.
Делитель скорости обмена это число, на которое надо разделить
частоту системных часов (1190000 герц), чтобы получить желаемую
скорость обмена. Например, для скорости обмена 1200 бод делитель
скорости обмена должен быть равен 96, поскольку 1190000/96 приб-
лиженно равно 1200. Чем больше делитель, тем меньше скорость
обмена. Скорости обмена 300 и меньше требуют двухбайтного числа
для делителя. Старший байт посылается в 3F9H (или 2F9H), а млад-
ший в 3F8H (2F8H). В обоих случаях бит 7 регистра управления
линии должен быть установлен в 1 перед засылкой значений; в про-
тивном случае по этим двум адресам значения будут адресованы в
другие регистры (см. [7.1.0]). Вот некоторые значения, требуемые
для обычных скоростей обмена:
Скорость обмена 3F9H 3F8H
110 04H 17H
300 01H 80H
600 00H C0H
1200 00H 60H
1800 00H 40H
2400 00H 30H
3600 00H 20H
4800 00H 18H
9600 00H 0CH
Всегда устанавливайте регистры скорости обмена первыми, так
как они единственные, которые требуют, чтобы был установлен бит 7
в регистре контроля линии. После этого надо изменить содержимое
регистра контроля линии, сбрасывая 7-й бит, чтобы все остальные
доступы к регистрам были правильными. Поскольку регистр контроля
линии является регистром только для записи, то нет способа вер-
нуть бит 7 обратно в 1 без одновременной установки всех остальных
битов этого регистра. Отметим, что PCjr использует другие делите-
ли, описание которых Вы можете найти в техническом руководстве.