ORG 58000 ; 768 bytes free ;Written and (C) Don Corbitt ;Jan 17, 1985 73216,1022 ;Personal use only ;10 LOADM"SCDUMP.CO" ;20 CALL 58000 BUFCHR EQU 65516 ;lcd cursor buffer (6 bytes) CUROFF EQU 424EH ;lcd cursor on CURSON EQU 4249H ;lcd cursor off LHIRB EQU 3469H ;de+ -> hl+ for b- bytes POSIT EQU 427CH ;goto HL PRLPT EQU 6D3FH ;A to LPT START STA DELAY CALL CURSON LXI H,SPACE ;set okidata spacing CALL LPTSTR MVI L,1 ;Y=0 NEXTY XCHG LXI H,STBUFF ;save a line of lcd data (240 bytes) SHLD BUFPTR ;current position in line XCHG MVI H,1 ;X=0 NEXTX PUSH H CALL POSIT ;GOTOXY MVI A,5 ;DELAY 5ms WAIT CALL 5326H ;delay 1ms DCR A JNZ WAIT LHLD BUFPTR LXI D,BUFCHR ;CHAR BUFFER MVI B,6 CALL LHIRB SHLD BUFPTR POP H INR H ;NEXT X POS MOV A,H CPI 41 JC NEXTX PUSH H ;SAVE Y MVI C,1 CALL PRLINE ;top half of line MVI C,5 CALL PRLINE ;bottom half POP H INR L ;NEXT Y MOV A,L CPI 9 ;8 lines JC NEXTY CALL CUROFF MVI A,24 ;reset printer JMP PRLPT PRLINE MVI A,131 CALL PRLPT ;SET GRAPHICS MVI B,240 ;BYTES TO PRINT LXI H,STBUFF LOOP1 MOV A,M ;CHAR TO PRINT CMA MOV D,C ;BITS TO ROTATE RRC LOOP RLC DCR D JNZ LOOP ANI 15 ADI 128 CALL PRLPT CPI 131 CZ PRLPT INX H DCR B JNZ LOOP1 LXI H,ENDGRF LPTSTR MOV A,M ANA A RZ CALL PRLPT INX H JMP LPTSTR BUFPTR DW 0 ;BUFFER POS DELAY DB 0 ENDGRF DB 131,130,138,141, 0 SPACE DB 27,37,57,135,156,0 BUFCHR DS 6 STBUFF DS 1 END START