asm-2
ZXNet echo conference «code.zx»
From Eugene Palenock → To All 25 February 2001
Hello All!
The procedure for outputting to a printer (which has 360*360dpi, not
some 6312) screen in 360*360dpi mode.
ORG 40000
D.I.
CALL N0
EI
RET
N0 LD HL,#4000
LD HY,4 ; NUMBER OF LINES ON SCREEN /6
;by 6 because the printer is 360dpi (Epson Stylus 800)
;prints 48 vertical dots on one line.
LD A,#1B
CALL ZXL
LD A,"+"
CALL ZXL
LD A,48
CALL ZXL
;this is his corresponding mode, so it turns on
;-----
; PRINTING ONE LINE
;--
; INSTALLATION GRAPH. MODE 360*360 dpi
;
N4 LD A,#1B
CALL ZXL
LD A,#2A
CALL ZXL
LD A,73
CALL ZXL
LD A,0 ; TWO BYTES - NUMBER OF COLUMNS IN
CALL ZXL ; ONE GRAPHIC LINE. IF 256 - THEN 0.1
LD A,1 ;
CALL ZXL
;--
PUSH HL
LD LY,32; STRING LENGTH IN ATTRIBUTES
N2 LD D,#80
;---
; PRINTING ONE BLOCK 8*48
;
LD B,8
N1 LD HX,B
PUSH HL
LD B,6
NN1 LD LX,B
CALL PIX
LD B,LX
DJNZ NN1
POP HL
LD B,HX
SRL D
DJNZ N1
;---
INC HL
DEC LY
JR NZ,N2
;------LD A,13 ;RETURN KR
CALL ZXL
LD A,10 ;LINE FEED
CALL ZXL
POP HL
LD B,48; CALCULATION NEXT. POSITIONS, THIS WILL BE
N3 CALL DHL; 48 LINES BELOW.
DJNZ N3
DEC HY
RET Z
JP N4
PIX LD B.8
PIX2 LD A,D
AND (HL)
SCF
JR NZ,PIX1
CCF
PIX1 RL E
CALL DHL
DJNZ PIX2
LD A,E
ZXL LD (ZXL3),A
ZXL1 CALL #1F54 ;too lazy to poll the button yourself ;)
JR NC,ZXL2
IN A,(#7B) ;type ZXLprint-3
BIT 7.A
JR NZ,ZXL1;is the printer ready?
LD A,0
ZXL3 EQU $-1
OUT (#FB),A ;data
OUT (#7B),A ;strobe (what to output - not
;important, the main thing is the fact of the conclusion)
XOR A
RET
ZXL2 XOR A
IN A,(#FE)
CPL
AND #3F
JR Z,ZXL2
SCF
RET
DHL INC H
LD A,H
AND 7
RET NZ
LD A,L
ADD A,32
LD L,A
RET C
LD A,H
SUB 8
LD H,A
RET
NOP
END NOP
* Original written in ZX.SPECTRUM
*Copied to CODE.ZX
Best regards, Evgeniy.