Centronix (LPT)

Компьютер "Спринтер" http://sprinter.nedopc.org

Moderator: Shaos

User avatar
cr0acker
God
Posts: 1078
Joined: 03 Feb 2003 13:53

Centronix (LPT)

Post by cr0acker »

Как собственно сабж на спринтере прогится?
Mac Buster
Retired
Posts: 1474
Joined: 03 Aug 2003 22:37
Location: Moscow

Post by Mac Buster »

Как собственно сабж на спринтере прогится?
Вроде есть системная функция для вывода данных на печать. О прямом программировании я не знаю пока ничего. Могу только сказать, что у Z84C15 есть PIO с помощью которого наверное производится печать.
User avatar
Vasil Ivanov
Doomed
Posts: 413
Joined: 11 Dec 2003 14:34

LPT

Post by Vasil Ivanov »

Shiru Otaku wrote: С линком Спринтер-PC пока никак. Через LPT не получается. Без доработки порта в Спринтере он не может читать данные с PC (D0-D7), с ней (подтягивающие резисторы, я имею в виду) читается какая-то фигня (нестабильно). В любом случае, это уже плохо, т.к. у меня в основе - 'никаких доработок и нестандартных проводов' (купил, воткнул, работай). Сигнальными линиями LPT со Спринтера (чтобы заюзать их как входные) управлять напрямую нельзя, они недоступны. Сейчас думаю над вариантом линка через последовательный порт (через нуль-модемный шнурок), но шнурка нужной длины пока не купил (ты знаешь, у меня ТВ в другой комнате, нужен трёхметровый провод, а их постоянно нет в продаже).
Не знаю, к месту это или нет, но на всякий случай брошу одну инфу от Ивана, завалялась в архиве ;)

Code: Select all

Краткая информация по LPT порту компьютера Sprinter

---------------------------------------------------
В дополнение к этой информации необходимо иметь
техническое описание на Z80SIO и Z80PIO фирмы ZILOG
---------------------------------------------------

Порты Z84C15:

SIO1_DATA       - 18h
SIO1_CONTROL    - 19h
SIO2_DATA       - 1Ah
SIO2_CONTROL    - 1Bh

PIO1_DATA       - 1Ch
PIO1_CONTROL    - 1Dh
PIO2_DATA       - 1Eh
PIO2_CONTROL    - 1Fh

---------------------------------------------------


   LPT signals     Z84C15 signals

        DATA   <-> PIO1_D[7..0] подключено через DATA_BUFER

        STROBE <-  PIO1_RDY - подключено через инвертор
        INIT   <-  PIO2_RDY - подключено через инвертор
        AUTOLF <-  PIO2_D6  - подключено через инвертор
        SLCT   <-  PIO2_D7  - подключено через инвертор

        BUSY    -> SIO2_CTS - подключено через инвертор
        BUSY    -> PIO1_STB - напрямую на вход Z84C15 **
        ACK     -> SIO2_DCD - подключено через инвертор
        PE      -> SIO1_CTS - подключено через инвертор
        SELECT  -> SIO2_DCD - подключено через инвертор
        ERROR   -> PIO2_STB - напрямую на вход Z84C15

                   SIO1_RTS -> CS_DATA_BUFER - включение буфера (нулем)
                   SIO1_DTR -> DIR_DATA_BUFER - направление передачи
                                данных буфером - 1 - вывод, 0 - ввод

        ** два места подключения BUSY - это не ошибка

Подача сигнала STROBE осуществляется автоматически при записи
данных в порт PIO1 в режиме вывода данных.


Аналогично на принтер подается сигнал INIT (записью данных в PIO2
в режиме вывода)

Сигнал BUSY принимается автоматически и следить за окончанием цикла
передачи данных надо по состоянию сигнала SIO2_CTS

Z84C15 был рассчитан на установку в принтерах, поэтому у него
сигналы RDY и STB имеют обратные назначения относительно STROBE и BUSY
LPT порта.

Сигнал ERROR напрямую принят быть не может, его можно отфиксировать
по приходу прерывания от параллельного порта (в режиме ввода/вывода
данных на PIO1 - Mode 2). Появление прерывания и будет означать,
что возникла  ошибка.

Сигналы AUTOLF, SLCT подаются независимо и обычно просто
устанавливаются в одно состояние.

BUSY, ACK, PE и SELECT могут быть приняты независимо, но специфика
портов Z84C15 такова, что появление этих сигналов вызывает установку
внутренних тригеров, которые не сбрасываются после исчезновения сигналов,
и их надо сбрасывать программно. (При простой работе с принтером
достаточно обрабатывать только сигнал BUSY.)

Режим порта PIO2 - ВСЕГДА побитный ввод/вывод (Mode 3).

При работе с сигналами AUTOLF и SLCT следует помнить, что шесть младших бит
порта LPT2 подключены к ISA. (В простейшем случае, младшие шесть бит порта
LPT2 надо инициализировать как входные.)

Режим порта PIO1 может устанавливаться произвольно. Он полностью работает
на принтер. В DOS PIO1 инициализируется только на выдачу данных (Mode 0).
Vasil Ivanov
vasil-i@yandex.ru
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

Интересная инфа. Надо-бы мне над ней покумекать..