Просветите кто-нибудь подробно про параллельный порт УКНЦ.
Вот что имеем из ТО:
Также имеем код ПЗУ:7.4.4. Регистры параллельного программируемого интерфейса
Программисту устройство параллельного программируемого интерфейса представлено четырьмя байтовыми регистрами (все регистры имеют формат 0-7 бит) с адресами:
177100 - порт А
W/R 177101 - порт B
177102 - порт С
177103 - управляющий байт
Все разряды портов выведены на интерфейсный разъем.
Особенностью работы с регистрами является требование обращения к указанным адресам с передачей информации в младшем байте (в т.ч. по нечетным адресам).
Подробно работа с микросхемой описана в ОАБ.142.400
Порты 177100--177102 -- это порты A-C микросхемы 580ВВ55, а порт 177103 -- это управляющий байт ВВ55. Все данные этих четырёх портов передаются инверсно (особенность шины данных).Код:; П/п вывода символа на принтер 135722$:MOV R5,-(SP) MOV SP,R5 BIT #2,177101$ ; Принтер в состоянии ON-LINE ? BEQ 136000$ ; Нет 135736$:BIT #200,177101$ ; Бит подтверждения сброшен ? BNE 135736$ ; Нет MOV 4(R5),177100$ ; Послать код символа на линию данных BIC #200,177102$ ; Установить сигнал строба 135762$:BIT #200,177101$ ; Получен сигнал подтверждения ? BEQ 135762$ ; Нет MOV #200,177102$ ; Сбросить сигнал строба 136000$:JMP 136056$ ; П/п инициализации параллельного порта 136004$:MOV R5,-(SP) MOV SP,R5 MOV #174,177103$ MOV #200,177102$ JMP 136056$
При инициализации порта байтом #174 в ВВ55 приходят биты 10000011, т.е. задаётся режим:Код:177100 -- порт A -- output: данные 177101 -- порт B -- input bit 0 - A4 -- конец бумаги bit 1 - A0 -- on-line -- готовность приёмника bit 3 - A2 -- ошибка принтера bit 7 - AC -- запрос передачи 177102 -- порт C -- upper output bit 7 - SC -- strobe lower input 177103 -- управляющий байт ВВ55 bit 7 - Mode set flag (1=active) bit 6-5 - Group A Mode selection bit 4 - Port A direction (1=input 0=output) bit 3 - Port C upper direction (1=input 0=output) bit 2 - Group B Mode selection bit 1 - Port B direction (1=input 0=output) bit 0 - Port C lower direction (1=input 0=output)
port A output, port C upper output, port B input, port C lower input.
В принципе, на этом уже можно написать эмуляцию принтера, но если захочется чего-то большего -- нужен будет маппинг остальных сигналов на порты ВВ55.


Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 

