Глава 7. Ввод/вывод.

Раздел 3. Использование специальных устройств ввода/вывода.

7.3.1 Чтение/запись с кассетного магнитофона.

Только очень немногие IBM PC и PCjr используют кассетный магнитофон, а XT и AT не поддерживают его вообще. Помимо того, что он очень ненадежен, обмен с кассетным магнитофоном возможен только последовательный, но не с прямым доступом. Тем не менее, могут быть причины для программирования кассетного магнитофона на PCjr. Имейте ввиду, что кассетные операции используют канал 2 микросхемы таймера 8253 {2.1.1}, поэтому не пытайтесь одновременно использовать этот канал для других целей. Отметим также, что при операции чтения с кассеты, запрещено прерывание времени суток, поэтому счетчик времени суток BIOS будет давать неверное значение.

Средний уровень.

BIOS работает с кассетной лентой порциями в 256-байтные блоки. Hабору блоков предшествует "лидер", который состоит из 256 байтов ASCII 1. Лидер завершается нулевым битом синхронизации. Затем следует байт синхронизации со значением 16H, а затем 256 байтов данных. После этого идут 2 байта контроля ошибок, а затем новый блок данных, сопровождающийся парой байт проверки ошибок и т.д. Вся последовательность завершается четырехбайтным "хвостом", содержащим коды ASCII 1.

Для чтения данных с кассеты на до использовать функцию 2 прерывания 15H. Hет необходимости открывать файл, как это делается при дисковых операциях. ES:BX указывают на буфер в памяти, куда будут посылаться данные, а CX - число байтов, которые надо считать. При возврате DX сообщит сколько байтов прочитано на самом деле, а ES:BX будут указывать на последний считанный байт плюс 1. Флаг переноса будет равен 0, если чтение прошло успешно, а в противном случае AH будет содержать 1, если проблема с контролем ошибки, 2 - при ошибке чтения данных и 3 - при отсутствии данных на ленте.

Функция 3 прерывания 15H записывает данные на кассету. ES:BX указывают на первый байт данных, а CX содержит число байтов, которое надо записать. При возврате ES:BX указывают на байт, следующий за последним записанным. Мотор управляется функциями 0 (включение) и 1 (выключение) прерывания 15H. Для этих функций нет выходных регистров.


<~-Раздел 3. Использование специальных устройств ввода/вывода.
Содержание
7.3.2 Чтение позиции светового пера.-~>

Сайт управляется системой uCoz