Code: Краткая информация по 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).
|