Системное программное обеспечение персональных ЭВМ


Пример 5 - часть 2


Теперь для печати такого оригинального символа следует переключить принтер на ОЗУ (последовательность 0x1B, 0x25, 1) и выдать на принтер код символа в ОЗУ. Для обратного переключения на ПЗУ выдается последовательность 0x1B, 0x25, 0.

Программа следующего примера использует технику, часто применяемую в драйверах русского текста (образы букв кириллицы необязательно есть в ПЗУ принтера). Программа загружает в ОЗУ принтера образ перевернутой буквы "a" под номером 40 и перехватывает вектор прерывания 0x17. Хотя в main-функции используются для печати функции Турбо-Си, все операции печати сводятся к этому прерыванию. Обработчик прерывания прежде всего анализирует функцию прерывания. Для функций 1 и 2 он вызывает старый обработчик. Для функции 0 (вывод символа) анализируется код символа в регистре AL. Если это код "a", то обработчик переключает принтер на ОЗУ, выводит код 40 и переключает принтер обратно на ПЗУ. Любой другой код обработчик выводит из ПЗУ.




- Начало -  - Назад -  - Вперед -