Справочник программиста на персональном компьютере фирмы IBM. Ввод/вывод Страница 4. Инициализация скорости обмена
|
Страница 4 из 27
Инициализация скорости обмена. Делитель скорости обмена это число, на которое надо разделить частоту системных часов (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 использует другие делите- ли, описание которых Вы можете найти в техническом руководстве.
|