"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу авторарежимом, как для канала 0 при синхронизации, так и для канала 2
для синхронизации или генерации звука. В этом режиме, как только регистр задвижки получает число, он немедленно загружает копию в регистр счетчика. Когда значение в счетчике достигает нуля ре- гистр задвижки мгновенно перезагружает счетчик и т.д. В течение половины отсчета выходная линия включена, а в течение половины - выключена. В результате получаются прямоугольные волны, которые одинаково пригодны как для генерации звука, так и для подсчета. 8-битный командный регистр управляет способом загрузки чисел в канал. Адрес порта для этого регистра равен 43H. Командному ре- гистру передается байт, который говорит какой канал программиро- вать, в каком режиме, а также один или оба байта регистра задвиж- ки должны быть переданы. Он показывает также будет ли число в двоичной или BCD (двоичнокодированной десятичной) форме. Значение битов этого регистра таково: бит 0 если 0, двоичные данные, иначе BCD 3-1 номер режима, 0 - 5 (000 - 101) 5-4 тип операции: 00 = передать значение счетчика в задвижку 01 = читать/писать только старший байт 10 = читать/писать только младший байт 11 = читать/писать старший байт, потом младший 7-6 номер программируемого канала, 0 - 2 (00 -10) полнить три основных шага. После того как третий шаг завершен, запрограммированный канал немедленно начинает функционировать по новой программе. 1. Послать в командный регистр (43H) байт, представляющий цепочку битов, которые выбирают канал, статус чтения/записи, режим операции и форму представления чисел. 2. Для канала 2 надо разрешить сигнал от часов, установив в 1 бит 0 порта с адресом 61H. (Когда бит 1 этого регистра установлен в 1, то канал 2 управляет динамиком. Сбросьте его в 0 для опера- ций синхронизации.) 3. Вычислите значение счетчика от 0 до 65535, поместите его в AX, и пошлите сначала младший, а затем старший байт в регистр ввода/вывода канала (40H - 42H). Каналы микросхемы 8253 работают всегда. По этой причине прог- раммы всегда должны восстанавливать начальные установки регистров 8253 перед завершением. В частности, если при завершении програм- мы генерируется звук, то он будет продолжаться даже после того, как MS DOS получит управление и загрузит другую программу. Имейте это ввиду при написании процедуры выхода по Ctrl-Break [3.2.8]. |
|
|