ZXNet эхоконференция «code.zx»
тема: драйвер принтера для скорпа.
от: Valerij Kozhevnikoff
кому: Sergey Cherbynin
дата: 20 Nov 2001
Здравствуй, Sergey!
13 Hоя 01 12:03, Sergey Cherbynin -> All:
SC> Помогите разобраться с сабжем!
SC> Hужен драйв для W.WORD 3_0, там имется драйв для ZXLPRINT III!
Хм. А он вообще принтер поддерживает? Ты ZX-Winword имеешь ввиду?
SC> Перед началом печати производится инициализация устройства (делается вызов
SC> процедуры по адресу 23298). Для вывода байта на принтер вызывается
SC> процедура находящаяся по адресу 23296.
А не наоборот? Помоему обычно наоборот.
SC> Обе эти процедуры вызываются при
SC> каждой печати текста. Главной особенностью является то, что если вы
SC> отслеживаете нажатие клавиши BREAK, то необходимо при
SC> еенажатии сбрасывать флаг С.
~~~~~~~~~~
А ты устанавливаешь...
SC> Встроенный драйвер: Мой драйвер:
SC> 23296 JR 23299 23296 JR 23299
SC> 23298 RET 23298 RET
SC> 23299 LD B,A 23299 PUSH AF
SC> 23300 CALL 8020 23300 CALL 8020
SC> RET NC JR C,23308
~~~~~~~~~
Это что?
SC> IN A,(#7B) POP AF
SC> BIT 7,A SCF
~~~~~~
А это что?
SC> JR NZ,23300 RET
SC> LD A,B 23308 XOR A
SC> OUT (#FB),A IN A,(#FE)
~~~~~~~~~~~~~
Вот это плохо.
SC> NOP RLA
SC> OUT (#7B),A JR C,23300
SC> NOP POP AF
SC> OUT (#FB),A LD BC,65501
SC> NOP OUT (C),A
SC> RET LD A,32
SC> LD BC,8189
SC> OUT (C),A
SC> NOP
SC> NOP
SC> XOR A
SC> OUT (C),A
SC> RET
Громоздко и некрасиво. Вот тебе образец для подражания. И при стробировании
надо бы прерывания запрещать. Так устойчивее.
ORG #5B00
JR PRINT
RET
PRINT LD BC,#FFDD
OUT (C),A
BUSY CALL #1F54
RET NC
RLA
RLA
JR C,BUSY
LD BC,#1FFD
LD A,#20
OUT (C),A
NOP
NOP
XOR A
OUT (C),A
RET
section 1 of file SCORPDRV.C
begin 644 scorpdrv.c
=&`')`=W_[7G-5!_0%Q
`
end
WBR, Jason.
|