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.