printer driver for isdos for MC6304
ZXNet echo conference «code.zx»
From Dima Boyko → To All 14 March 2001
H a u sh k i, All !
; driver for the MS6304 printer
; printer port IR23
ORG 50000; any, => 1
DEFW INIT55; initialization KP580BB55A
DEFW PRINTA
DEFW INIT_I
DEFW INIT_I
DEFB #00,#00,#00,#00,#00,#01,#00,#00
LL8011 DEFB 32,225,226,247,231,228
DEFB 229,246,250,233,234,235
DEFB 236,237,238,239,240,242
DEFB 243,244,245,230,232,227
DEFB 254,251,253,248,249,248
DEFB 252,224,241,193,194,215
DEFB 199,196,197,214,218,201
DEFB 202,203,204,205,206,207
DEFB 208,35,35,35,124,43
DEFB 43,43,43,43,43,124
DEFB 43,43,43,43,43,43
DEFB 43,212,43,45,43,43
DEFB 43,43,43,43,212,43
DEFB 45,43,43,43,212,43
DEFB 43,43,43,43,43,43
DEFB 43,43,35,95,124,124
DEFB 126,210,211,212,213,198
DEFB 200,195,222,219,221,223
DEFB 217,216,220,192,209,229
DEFB 197,62,60,124,124,47
DEFB 61,96,42,42,121,110
DEFB 50,32,32
PRINTA PUSH AF
LD C, #12
RST #10
EXX
POP AF
CP #0D
JR NZ,LL8057
CH1 CALL LL8079
RET C
LD A,#0A
JR LL8079
LL8057 NOP
CP 127
JR C,LL8079
SUB 127
PUSH HL
CH2 LD HL,LL8011
LD E,A
LD D, #00
ADD HL,DE
LD A,(HL)
POP HLLL8079 LD E,A
BUSY__EI
LD C,#09
RST #10
JR Z,LL808B
LD C,#07
RST #10
CP#10; "SS+A"
JR Z,EXIT__
CP#16; "CS+BS=BREAK"
JR Z,EXIT__
LL808B DI
IN A,(#7B)
R.L.A.
JR C,BUSY__
LD A,E
OUT(#FB),A; data output.
OUT(#7B),A; strobe at "1"
LD A,#7F ; delay
L1 DEC A
JR NZ,L1
LD A,E
OUT(#FB),A
EI
INIT_I RET
INIT55 INC A
RET Z; 'A' had #FF
INC A
RET Z; 'A' had #FE
XOR A
OUT(#FB),A
LD A,32
CALL LL8079
RET C
LD A,24
CALL LL8079
RET C
LD A,19
CALL LL8079
RET
EXIT__ LD A,#97
SCF
RET
With the best, Dima Boyko.