Rev 761 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 507 | savelij | 1 | |
| 1186 | savelij | 2 | ; LAST UPDATE: 16.02.2025 savelij |
| 550 | savelij | 3 | |
| 1186 | savelij | 4 | ; LINIT - initialization (hook on "P"-channel and printer init) |
| 5 | ; LPRINT - print ZX simbol (with token decode) |
||
| 6 | ; LBYTE - print simbol (without token decode) |
||
| 7 | ; LCOPY - print screen |
||
| 507 | savelij | 8 | |
| 1186 | savelij | 9 | AY_PRN_SCR LD H,CMOS.CRCHIGH |
| 507 | savelij | 10 | CALL READCMOS |
| 1186 | savelij | 11 | AND CMOS_ED.M_PRINTER_AY |
| 507 | savelij | 12 | JR NZ,AY_PRN_SCR1 |
| 1186 | savelij | 13 | LD HL,0x0EAF |
| 553 | savelij | 14 | LD (RADRRET_L),HL |
| 1186 | savelij | 15 | LD A,0xB0 |
| 553 | savelij | 16 | LD (RREG_B),A |
| 507 | savelij | 17 | RET |
| 18 | |||
| 19 | AY_PRN_SCR1 LD HL,GRSET1 |
||
| 20 | CALL OUTSTR |
||
| 1186 | savelij | 21 | LD HL,0x4000 |
| 507 | savelij | 22 | LD C,3 |
| 23 | LCOP5 LD B,8 |
||
| 24 | LCOP4 PUSH BC |
||
| 25 | PUSH HL |
||
| 26 | LD HL,GRSET2 |
||
| 27 | CALL OUTSTR |
||
| 28 | POP HL |
||
| 29 | LD D,H |
||
| 30 | LD E,L |
||
| 1186 | savelij | 31 | LD B,0x20 |
| 507 | savelij | 32 | LCOP3 PUSH BC |
| 33 | LD C,8 |
||
| 34 | LCOP2 LD B,8 |
||
| 35 | LCOP1 RLC (HL) |
||
| 36 | RLA |
||
| 37 | INC H |
||
| 38 | DJNZ LCOP1 |
||
| 39 | CALL AY_PRN_BYTE |
||
| 40 | LD H,D |
||
| 41 | LD L,E |
||
| 42 | DEC C |
||
| 43 | JR NZ,LCOP2 |
||
| 44 | INC E |
||
| 45 | PUSH DE |
||
| 46 | POP HL |
||
| 47 | POP BC |
||
| 48 | DJNZ LCOP3 |
||
| 49 | POP BC |
||
| 50 | DJNZ LCOP4 |
||
| 51 | LD A,H |
||
| 52 | ADD A,8 |
||
| 53 | LD H,A |
||
| 54 | DEC C |
||
| 55 | JR NZ,LCOP5 |
||
| 1186 | savelij | 56 | LD HL,0x0EDE |
| 553 | savelij | 57 | LD (RADRRET_L),HL |
| 507 | savelij | 58 | LD HL,GRSET3 |
| 59 | OUTSTR LD A,(HL) |
||
| 1186 | savelij | 60 | CP 0xFF |
| 507 | savelij | 61 | RET Z |
| 62 | CALL AY_PRN_BYTE |
||
| 63 | INC HL |
||
| 64 | JR OUTSTR |
||
| 65 | |||
| 1186 | savelij | 66 | AY_PRN_A_ LD H,CMOS.CRCHIGH |
| 507 | savelij | 67 | CALL READCMOS |
| 1186 | savelij | 68 | AND CMOS_ED.M_PRINTER_AY |
| 550 | savelij | 69 | JR NZ,AY_PRN_A_1 |
| 553 | savelij | 70 | LD A,(RREG_B) |
| 507 | savelij | 71 | CP 3 |
| 72 | SBC A,A |
||
| 553 | savelij | 73 | LD (RREG_A),A |
| 1186 | savelij | 74 | LD HL,0x0EF8 |
| 553 | savelij | 75 | LD (RADRRET_L),HL |
| 507 | savelij | 76 | RET |
| 77 | |||
| 585 | savelij | 78 | AY_PRN_A_1 LD A,(RREG_A) |
| 507 | savelij | 79 | AY_PRN_BYTE PUSH BC |
| 80 | PUSH HL |
||
| 81 | CALL LP01 |
||
| 82 | POP HL |
||
| 83 | POP BC |
||
| 84 | RET |
||
| 85 | |||
| 1186 | savelij | 86 | AY_PRN_INIT LD H,CMOS.CRCHIGH |
| 550 | savelij | 87 | CALL READCMOS |
| 1186 | savelij | 88 | AND CMOS_ED.M_PRINTER_AY |
| 550 | savelij | 89 | JR NZ,AY_PRN_INIT1 |
| 1186 | savelij | 90 | LD HL,0x0EDF |
| 553 | savelij | 91 | LD (RADRRET_L),HL |
| 550 | savelij | 92 | RET |
| 93 | |||
| 1186 | savelij | 94 | AY_PRN_INIT1 LD DE,0xFFBF |
| 95 | LD C,0xFD |
||
| 507 | savelij | 96 | LD B,D ;FF |
| 1186 | savelij | 97 | LD A,0xFE ;for TS or TSFM |
| 507 | savelij | 98 | OUT (C),A ;select first chip |
| 99 | LD A,7 |
||
| 100 | OUT (C),A |
||
| 101 | LD B,E ;BF |
||
| 1186 | savelij | 102 | LD A,0x7F |
| 507 | savelij | 103 | OUT (C),A |
| 104 | LD B,D ;FF |
||
| 1186 | savelij | 105 | LD A,0x0F |
| 507 | savelij | 106 | OUT (C),A |
| 107 | LD B,E ;BF |
||
| 1186 | savelij | 108 | LD A,0xFE |
| 507 | savelij | 109 | OUT (C),A |
| 110 | LD HL,INTX |
||
| 111 | JR OUTSTR |
||
| 112 | |||
| 1186 | savelij | 113 | EXIT_09F4 LD HL,0x09F4 |
| 553 | savelij | 114 | LD (RADRRET_L),HL |
| 507 | savelij | 115 | RET |
| 116 | |||
| 1186 | savelij | 117 | AY_PRN_TOKEN LD H,CMOS.CRCHIGH |
| 507 | savelij | 118 | CALL READCMOS |
| 1186 | savelij | 119 | AND CMOS_ED.M_PRINTER_AY |
| 550 | savelij | 120 | JR Z,EXIT_09F4 |
| 553 | savelij | 121 | LD A,(RREG_A) |
| 1186 | savelij | 122 | CP 0x0D |
| 507 | savelij | 123 | JR NZ,LP02 |
| 124 | CALL LP01 |
||
| 1186 | savelij | 125 | LD A,0x0A |
| 507 | savelij | 126 | JR LP01 |
| 127 | |||
| 1186 | savelij | 128 | LP02 CP 0x20 |
| 507 | savelij | 129 | RET C |
| 1186 | savelij | 130 | CP 0x7F |
| 507 | savelij | 131 | JR C,LP01 |
| 1186 | savelij | 132 | CP 0xA5 |
| 550 | savelij | 133 | JR NC,EXIT_09F4 |
| 1186 | savelij | 134 | CP 0x90 |
| 507 | savelij | 135 | JR C,LP03 |
| 1186 | savelij | 136 | SUB 0x4F |
| 507 | savelij | 137 | JR LP01 |
| 138 | |||
| 1186 | savelij | 139 | LP03 LD A,0x20 |
| 507 | savelij | 140 | LP01 PUSH BC |
| 141 | PUSH AF |
||
| 1186 | savelij | 142 | LD BC,0xFFFD |
| 143 | LD A,0x0E |
||
| 507 | savelij | 144 | OUT (C),A |
| 1186 | savelij | 145 | LD B,0xBF |
| 507 | savelij | 146 | POP AF |
| 147 | OUT (C),A |
||
| 1186 | savelij | 148 | LD B,0xFF |
| 149 | LD A,0x0F |
||
| 507 | savelij | 150 | OUT (C),A |
| 151 | LP04 CALL BREAK_KEY |
||
| 152 | JR NC,LP05 |
||
| 153 | IN A,(C) |
||
| 154 | RLA |
||
| 155 | JR NC,LP04 |
||
| 156 | LD A,7 |
||
| 157 | OUT (C),A |
||
| 1186 | savelij | 158 | LD B,0xBF |
| 159 | LD A,0xFF |
||
| 507 | savelij | 160 | OUT (C),A |
| 161 | PUSH IX |
||
| 162 | POP IX |
||
| 1186 | savelij | 163 | LD A,0x7F |
| 507 | savelij | 164 | OUT (C),A |
| 165 | POP BC |
||
| 166 | RET |
||
| 167 | |||
| 1186 | savelij | 168 | LP05 LD HL,0x1B7B |
| 553 | savelij | 169 | LD (RADRRET_L),HL |
| 170 | LD HL,REI_DI |
||
| 507 | savelij | 171 | SET 2,(HL) |
| 172 | RET |
||
| 173 | |||
| 1186 | savelij | 174 | ; Command code for 9-pin EPSON-compatibility printers |
| 175 | ; Printer initialization |
||
| 176 | INTX DB 0x1B,0x40,0x07,0x07,0xFF |
||
| 177 | ; setup1 (before screen copy) |
||
| 178 | GRSET1 DB 0x1B,0x41,0x08,0xFF |
||
| 179 | ; setup2 (every new line) |
||
| 180 | GRSET2 DB 0x0D,0x0A,0x1B,0x2A,0x05,0x00,0x01,0xFF |
||
| 181 | ; setup2 (after complete screen copy) |
||
| 182 | GRSET3 DB 0x0D,0x0A,0x1B,0x32,0x07,0x07,0x07,0xFF |
||
| 573 | savelij | 183 | |
| 1186 | savelij | 184 | BREAK_KEY LD A,0x7F |
| 185 | IN A,(0xFE) |
||
| 573 | savelij | 186 | RRA |
| 187 | RET C |
||
| 1186 | savelij | 188 | LD A,0xFE |
| 189 | IN A,(0xFE) |
||
| 573 | savelij | 190 | RRA |
| 191 | RET |