Subversion Repositories pentevo

Rev

Rev 370 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

                       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 для вывода на печать следующего символа.