UPD Modifications

Thanks to Peter McMullin, we now have a “Print an ASCII character” routine for the Centronics interface from EPROM Services in England. This can be patched into the “Universal Printer Driver” by entering the following code:

29D8~E5       ASCI PUSH HL
29D9 C5 PUSH BC
29DA F5 PUSH AF
29DB CDE702 CALL TFAS
29DE DB9B STAT IN A.(9B)
29E0 17 RLA
29E1 38FB JR C STAT
29E3 F1 SEND POP AF
29E4 D3BB OUT (BB).A
29E6 AF XOR A
29E7 D3BB OUT (BB).A
29E9 AF XOR A
29EA D3BB OUT (BB).A
29EC DB9B IN A.(9B)
29EE 17 BUSY RLA
29EF 3005 JR NC 29F6
29F1 17 ACK? RLA
29F2 3002 JR NC 29F6
29F4 18F6 JR 29EC
29F6 CD0702 CALL MDCK
29F9 C1 POP BC
29FA E1 POP HL
29FB C9 RET
29FC 00 NOP
29FD 00 NOP
29FE 00 NOP
29FF 00 NOP

Also, you have to add this little nine-byte initialization routine somewhere in memory (e.g. a 1 REM statement). Call this once, before printing, to initialize the PIO chip.

4082~3E88     INIT LD A.88
4084 D3BB OUT (BB).A
4086 3E01 LD A.01
4088 D3BB OUT (BB).A
408A C9 RET

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.