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 |