Как написать собственный драйвер. Если ваша схема подключения принтера отличается от вышеприве- денной,то во избежании переделок в компьютере, следует создать свой драйвер. Это небольшая программа в машинных кодах, расположенная с адреса #5B01 и имеющая длину не более 255 байт. (Это неиспользуе- мая область буфера ZX-принтера). В начале программы расположите точки входа,по которым редактор будет обращаться к драйверу: #5B01 - инициализация порта; #5B03 - передача байта из регистра А в порт принтера; Процедура инициализации должна настроить программируемый порт (если таковой имеется), проверить готовность принтера и при необхо- димости выдать на принтер управляющую последовательность. Эта про- цедура ничего не возвращает. Процедура передачи байта на принтер должна ожидать его готов- ности и передать байт в порт принтера со стробированием. Процедура должна прерываться нажатием BREAK или при возникновении ошибки. Если байт по каким-либо причинам не передан в порт принтера, проце- дура возвращает указатель "С" установленым. Обе процедуры могут модифицировать любые регистры процессора. В случае удачного завершения второй процедуры флаг "С" должен сбра- сываться. Процедура передачи байта в принтер вызывается с запрещен- ными прерываниями. В приложении приводится пример составления драйвера для прин- тера EPSON-LX, подключаемого по вышеприведенной схеме через адаптер КР580ВВ55, имеющий адреса: Порт А - #3F; Порт В - #5F; Порт С - #7F; Упр.слово - #FF. При написании драйвера не допускаются: 1.Возможность безвыходного зацикливания; 2.Возможность выхода в бейсик (по RST #08 или через дно стека); 3.Изменение типа прерывания; 4.Разрешение прерываний во время передачи данных через интерфейс; 5.Обращение к DOS; 6.Переназначение каналов и потоков, а также их открытие или закры- тие; 7.Программные прерывания (RST #NN); 8.Модификация указателя стека или регистровой пары IR; 9. арушение стека; 10.Модификация памяти за пределами буфера ZX-принтера. (Впрочем, если необходимо, используйте нижние 2/3 экранной области. Это, разумеется, неэстетично, но безболезненно).