Важная информация

User Tag List

Показано с 1 по 9 из 9

Тема: Работа с принтером через порт(ы) ввода/вывода AY-3-891x

  1. #1
    Master Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    697
    Благодарностей: 137
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Работа с принтером через порт(ы) ввода/вывода AY-3-891x

    Однажды, в одном из сообщений темы Speccy - наш выбор! > ZX-Spectrum > Программирование > mouse driver я вскольз упомянул, что использую интерфейс принтера на AY. Реализацией этого вопроса заинтересовались, и я решил, что это подходящая тема для обсуждения.
    Предлагаю всем, кто имеет хотябы небольшой собственный опыт, рассказать о способах реализации, программирования и использования подобных интерфейсов.
    Последний раз редактировалось Grand; 07.06.2005 в 13:04.

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Master Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    697
    Благодарностей: 137
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fan
    ... шибко охота узнать как именно был подцеплен принтер и с каким софтом работал.
    Цитата Сообщение от breeze
    ... из издоса один товаришь за эту инфу вообще денег хотел!
    Сразу скажу, что интерфейс Centronics у меня реализован через оба порта AY-3-8910.
    Схему для него я позаимствовал из ZX-Ревю №4/95, стр. 36 - 38; если не удасться найти этот журнал, готов нарисовать ее в Art Studio. От себя я добавил к схеме лишь соединение BUSY с +5В через резистор 10К, и исключил связь с ERROR (т. к. не вижу практического смысла в использовании этого сигнала).
    К самому принтеру (D100-M) сигналы данных и управления у меня подключены через буфер (иначе не работало), как в книге "Периферия своими руками", ИНФОРКОМ, 1994, стр. 99 - 128.
    Порт B (рег.15) AY'а у меня исп-ся как регистр данных; бит 0 порта A (рег.14) исп-ся для приёма BUSY, бит 7 - для передачи /STROBE.
    Нельзя назвать такое распределение стандартным: анализируя драйверы из IS-DOS я видел другие назначения битов; также от туда можно позаимствовать и другие интересные решения по данному вопросу (покопаться коде драйверов можно совершенно бесплатно ).
    В указанном выше журнале имеется пример драйвера, но я написал свой. Всё необходимое ПО я адаптировал сам: Art Studio, Artist 2, текстовые редакторы и др.
    Мое настоятельное мнение: вывод на принтер в программах должен осуществляться через поток #3 и канал "P"; драйвер принтера лучше размещать в буфере ZX Printer'а (в реж. 48K), - в этом случае, через настроенный до загрузки программы канал, печать без проблем будет работать на любом принтере с любым интерфейсом.
    Желающие могут посмотреть несколько адаптированных мной таким образом шахматных программ: http://zxfiles.hut2.ru/games/chess.zip Вся документация к ним прилагается.

    И в заключении, мой драйвер принтера для Art Studio V1.5TR; к сожалению, в этом редакторе вывод осуществляется не через поток #3, а через пользовательский драйвер, который должен быть с адреса #8764 (34660).
    Код:
    ;(C) Grand, 14.2.2000.
    ;Драйвер принтера V1.3 для ART STUDIO V1.5TR.
    ;Интерфейс CENTRONICS, связь через порты AY-3-8910:
    ; PB - data
    ; PA - in: b0 - BUSY,  out: b7 - /STROBE
    ;
    ;
    	ORG	#8764	;34660
    ;
    	DEFW	#8764	;Адр.начала драйвера.
    	DEFW	INIT	;Адр.нач.проц.иниц-ии.
    	DEFW	BUSY	;Адр.нач.проц.пров.готовности пр-ра.
    	DEFW	LPRINT	;Адр.нач.проц.вывода байта на печать.
    	DEFW	END-#8464+1;Общ.длина драйвера.
    ;Процедура проверки готовности принтера.
    ;(Возвр. Z=0, если не готов).
    BUSY	LD	DE,#BF07
    	CALL	L0000	;reg7: PB out, PA in
    	LD	B,#FF
    	LD	E,#0E
    	OUT	(C),E	;Set reg14
    	IN	E,(C)
    	BIT	0,E	;Z=0 - not ready
    	RET
    ;Процедура инициализации принтера.
    INIT	LD	DE,#FF07
    	CALL	L0000	;reg7: PB out, PA out
    	LD	E,#0E
    	CALL	L0000
    	LD	A,24;Очистка буфера строки.
    	CALL	L0001
    	LD	A,27;Задание межстрочного интервала
    	CALL	L0001;22/216 дюима.
    	LD	A,"3"
    	CALL	L0001
    	LD	A,22
    L0001	CALL	BUSY
    	JR	NZ,L0001
    ;Процедура вывода байта на печать.
    LPRINT	LD	DE,#FF07
    	CALL	L0000	;reg7: PB out, PA out
    	LD	D,A
    	LD	E,#0F
    	CALL	L0000	;reg15(PB): data
    	LD	DE,#7F0E
    	CALL	L0000	;reg14(PA): set /STROBE
    	LD	D,#FF
    	JR	L0002	;reg14(PA): reset /STROBE
    L0000	LD	BC,#FFFD
    	OUT	(C),E
    	LD	B,#BF
    L0002	OUT	(C),D
    END	RET
    Последний раз редактировалось Grand; 30.04.2006 в 23:36. Причина: исправление гиперссылки

  4. #3
    Guru Аватар для fan
    Регистрация
    11.02.2005
    Адрес
    Москва
    Сообщений
    3,783
    Благодарностей: 327
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Благодарствую! (Как то я проглядел это описание в ревю...)
    Вариант применяемый в KAY уж шибко безбашенный, пришлось на него забить...

    "Периферия своими руками", ИНФОРКОМ, 1994
    Хотелось бы хотя бы в общих чертах узнать её содержание.


    --------------------------------------------------------------------------
    В качестве стандарта на подключение, чего либо к портам сопра, предагаю такую распиновку разъёма (так удобней развести плату) -

    D0-D7 идут через буфер (так же как на KAYе). На тринадцатый пин разъёма выведен седьмой бит порта #FE-IN (чтоб не пустовал напрасно). Впринципе не важно для каких именно целей это использовать, рас уж есть стандартные(!) порты надо их вывести.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	LPT.gif 
Просмотров:	3976 
Размер:	3.0 Кб 
ID:	935  

  5. #4
    Master Аватар для Costa
    Регистрация
    17.03.2005
    Адрес
    Россия
    Сообщений
    711
    Благодарностей: 2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fan
    "Периферия своими руками", ИНФОРКОМ, 1994
    Хотелось бы хотя бы в общих чертах узнать её содержание.
    1.Буферизация шин компьютера
    2.Способы поключения Спектрума к телевизору и кодер СЕКАМ
    3.Несколько вариантов подключения джойстиков и световое перо
    4.Интерфейс НГМД
    5.Интерфейсы CENTRONICS на ВВ55,RS-232C,ZX-LPRINT-III
    6.ZX-модем
    7.Расширение памяти Спектрума
    8.Программатор

  6. #5
    Master Аватар для Ronin
    Регистрация
    28.03.2005
    Адрес
    Krasnodar, Russia
    Сообщений
    585
    Благодарностей: 2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fan
    Вариант применяемый в KAY уж шибко безбашенный
    на КАЕ сделано так -
    PA0..7(out)_AY -> [out buffer] -> pin2..9 (D0..7)
    PB2(i/o)_AY, bit7#FE - подтяжка к +5в -> pin11 (BUSY)
    bit5#1FFD -> инвертор с ОК, подтяжка к +5в -> pin1 (STROBE)

    если обобщить сигналы, выведенные на LPT-разъем KAY256, то это:

    AY:PA0..7(out only) - pin2..9

    AY:PB0..7(in, out) - pin15, 18, 11, 19, 20, 10, 12, 13

    #1FFD(out):через инверторы с ОК (подтяжка к +5в только у 5го бита):
    #1FFD-bit1, 2, 5, 6, 7 - pin25, 17, 1, 23, 16.
    ++
    на KAY1024 на pin16 вместо #1FFD-bit7 (который используется в управлении памятью) заведен #7FFD-bit6.

  7. #6
    Guru Аватар для fan
    Регистрация
    11.02.2005
    Адрес
    Москва
    Сообщений
    3,783
    Благодарностей: 327
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    2 Ronin
    Это я уже видел Но увы, использование портов #1FFD унд #7FFD в ряде случаев не подходит (особенно если их нет). Вот я и предлагаю ещё один альтернативный вариант.

    2 Costa
    Сеньки за инфу.

  8. #7
    Master Аватар для Ronin
    Регистрация
    28.03.2005
    Адрес
    Krasnodar, Russia
    Сообщений
    585
    Благодарностей: 2
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    я просто расписал как есть и потом для юзания внешних девайсов совсем необязательны 1ffd/7ffd - PA+PB хватит. по крайней мере их паять по стандарту.

    только с принтером придется немного извратится, заведя на strobe какой-то сигнал, типа того что описано во 2-ом посте.

  9. #8
    Master Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    697
    Благодарностей: 137
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fan
    В качестве стандарта на подключение, чего либо к портам сопра, предагаю такую распиновку разъёма (так удобней развести плату)...
    Я думаю на разъем неплохо бы вывести "+5В" - так сделано компьютере Himac HR 42 (назначение остальных контактов конечно же другое); когда я подключал платку с буферными микросхемами - "+5В" мне очень пригодилось.

    Цитата Сообщение от fan
    Вариант применяемый в KAY уж шибко безбашенный
    Может быть он так реализован, чтобы в перспективе можно было выпускать платы с AY-3-8912, у которого, как известно, только один порт ввода/вывода.

    Цитата Сообщение от fan
    "Периферия своими руками"...
    Хотелось бы ... узнать её содержание.
    Некоторые из материалов были опубликованы в номерах ZX-Ревю за 1991 год.

    По поводу назначения портов в различных интерфейсах тех лет я советую найти и посмотреть текстовый документ в системе IS-DOS: DRIVERS\HELP\lpr.txt
    Последний раз редактировалось Grand; 15.06.2005 в 14:52.

  10. #9
    Master Аватар для Grand
    Регистрация
    10.04.2005
    Адрес
    Сибирь
    Сообщений
    697
    Благодарностей: 137
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Принтер D100-M:

    Последний раз редактировалось Grand; 29.08.2011 в 05:50. Причина: изм. url-адреса

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Порт Unreal Speccy под Linux!
    от ^m00h^ в разделе Эмуляторы
    Ответов: 22
    Последнее: 16.07.2017, 17:07
  2. Порт EFF7 и примочки под него
    от tilikum в разделе Unsorted
    Ответов: 36
    Последнее: 23.11.2015, 23:04
  3. Подключение клона "Байт" к ТВ через RGB.
    от Surfin_Bird в разделе Изображение
    Ответов: 6
    Последнее: 11.03.2013, 15:59
  4. Принтер через 580ВВ55
    от Sonic в разделе Unsorted
    Ответов: 14
    Последнее: 08.06.2005, 07:26
  5. порт lpt
    от iliasam в разделе Unsorted
    Ответов: 15
    Последнее: 23.05.2005, 22:20

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •