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