AY-PRN подключение принтера. (www.NedoPC.com 2011) Простое подключение принтера к интерфейсным портам AY38910 или YM2149. Таким же образом можно подключить принтер к портам TurboSoundFM. NedoPC рекомендует такое подключение принтера к ZXEvo rev.B Принципиальная схема. ┌──┬───┬──┐ Замечания: AYA0────────┤D0│REG│Q0├────────DATA0 * ИР22 используется исключительно в режиме буфера AYA1────────┤D1│ │Q1├────────DATA1 (от io порта А AY38910 в интерфейс принтера). AYA2────────┤D2│ │Q2├────────DATA2 Поэтому можно заменить на любой, имеющийся в AYA3────────┤D3│ │Q3├────────DATA3 наличии буферный элемент (АП5, АП6). AYA4────────┤D4│ │Q4├────────DATA4 AYA5────────┤D5│ │Q5├────────DATA5 AYA6────────┤D6│ │Q6├────────DATA6 AYA7────────┤D7│ │Q7├────────DATA7 ├──┤ ├──┤ ┌──┤LE│ │OEo──┐ +5v<──0──┤V │D01│G ├──0 └──┴───┴──┘ │ ИР22 ─┴─ (373) ┌──[10K]──>+5v Замечания: │ ┌───┐ ┌───┐ * Для работы большинства програм с принтером AYB0────0──┤1 O──┤1 O────────STROBE достаточно использовать только управляющие └───┘ └───┘ сигналы STROBE и BUSY. ┌───┐ * ЛН1 можно заменить на любые инвертирующие AYB5────[680]───0 1├──────────PAPER END элементы (ЛА3,ЛЕ1). └───┘ ┌───┐ AYB6────[680]───0 1├──────────ERROR └───┘ ┌───┐ AYB7────[680]───0 1├──────────BUSY └───┘ ЛН1 (04) Принцип работы. * Через io порт A происходит передача текущего байта данных принтеру. * Через io порт B происходит установка строба (активный низкий уровень) для принтера и анализ состояния принтера. * Сигнал BUSY имеет состояние эквивалентное логической 1, когда принтер занят. * Сигнал ERROR имеет состояние эквиалентное логическому 0, когда ошибка со стороны принтера. * Сигнал PAPER END имеет состояние эквивалентное логической 1, когда бумага кончиласьу принтера. Минимальный алгоритм работы. 1. Инициализация. 1.1. В случае TS или TSFM, установить текущим чип к портам которого подключен принтер. 1.2. Записать в io порт B значение 0. 1.3. Установить io порта A на передачу, io порт B на прием (с помощью внутреннего регистра 7 у AY). 2. Вывод символа. 2.1. Анализируем состояние сигнала BUSY (проверяем значение 7бита io порта B, если бит установлен в 1 значит идем дальше). 2.2. Записываем код символа в io порт A. 2.3. Устанавливаем io порты на передачу (при этом уровень на сигнале STROBE установится в логический 0). 2.4. Выдерживаем необходимый принтеру таймаут строба. 2.5. Устанавливаем io порт B на прием. 3. Переходим к пункту 2 для вывода на печать следующего символа.