Rev 838 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 838 | Rev 1186 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | 1 | ||
2 | ;LAST UPDATE: 20.08.2019 savelij |
2 | ; LAST UPDATE: 14.02.2025 savelij |
3 | 3 | ||
4 | ;ОПИСАТЕЛЬ ОКНА (АДРЕС В IX) |
4 | ; описатель окна (адрес в IX) |
5 | ;+00 X КООРДИНАТА |
5 | ; +00 X координата |
6 | ;+01 Y КООРДИНАТА |
6 | ; +01 Y координата |
7 | ;+02 V ВЫСОТА |
7 | ; +02 V высота |
8 | ;+03 H ШИРИНА |
8 | ; +03 H ширина |
9 | ;+04 C ЦВЕТ |
9 | ; +04 C цвет |
10 | ;+05 C ЦВЕТ КУРСОРА |
10 | ; +05 C цвет курсора |
11 | ;+06 F ФЛАГОВЫЙ |
11 | ; +06 F флаговый |
12 | ;+07 N НОМЕР ПУНКТА В ОКНЕ |
12 | ; +07 N номер пункта в окне |
13 | ; БИТ 7-0 => 8-9 ТЕКУЩИЙ ПУНКТ, |
13 | ; BIT 7-0 => 8-9 текущий пункт, |
14 | ; 1 => 8-9 АДРЕС ХРАНЕНИЯ |
14 | ; 1 => 8-9 адрес хранения |
15 | ; 6-0 => A-B КОЛИЧЕСТВО ПУНКТОВ |
15 | ; 6-0 => A-B количество пунктов |
16 | ; 1 => A-B АДРЕС ХРАНЕНИЯ |
16 | ; 1 => A-B адрес хранения |
17 | ;+08 | ТЕКУЩИЙ |
17 | ; +08 | текущий |
18 | ;+09 | ПУНКТ МЕНЮ |
18 | ; +09 | пункт меню |
19 | ;+0A : КОЛИЧЕСТВО |
19 | ; +0A : количество |
20 | ;+0B : ПУНКТОВ |
20 | ; +0B : пунктов |
21 | ;+0C | АДРЕС |
21 | ; +0C | адрес |
22 | ;+0D | ТЕКСТА |
22 | ; +0D | текста |
23 | ;+0E : СПИСОК АДРЕСОВ |
23 | ; +0E : список адресов |
24 | ;+0F : ПОДПРОГРАММ |
24 | ; +0F : подпрограмм |
25 | ;+10 | АДРЕС СПИСКА АКТИВНЫХ |
25 | ; +10 | адрес списка активных |
26 | ;+11 | ЗОН ДЛЯ МЫШИ |
26 | ; +11 | зон для мыши |
27 | ;+12 : АДРЕС СПИСКА |
27 | ; +12 : адрес списка |
28 | ;+13 : ГОРЯЧИХ КЛАВИШ |
28 | ; +13 : горячих клавиш |
29 | 29 | ||
30 | ;ФОРМАТ ФЛАГОВОГО БАЙТА ОКНА |
30 | ; формат флагового байта окна |
31 | ;IX+6 |
31 | ; IX+6 |
32 | ;7-0-НЕТ, 1-ЕСТЬ НИЖНИЙ ЗАГОЛОВОК |
32 | ; 7-0-нет, 1-есть нижний заголовок |
33 | ;6-0-С РАМКОЙ,1-БЕЗ РАМКИ |
33 | ; 6-0-с рамкой,1-без рамки |
34 | ;5-0-НЕТ, 1-ЕСТЬ ВЕРХНИЙ ЗАГОЛОВОК |
34 | ; 5-0-нет, 1-есть верхний заголовок |
35 | ;4-0-ЕСТЬ ТЕКСТ, 1-НЕТ |
35 | ; 4-0-есть текст, 1-нет |
36 | ;3 |
36 | ; 3 |
37 | ;2- |
37 | ; 2- |
38 | ;1- |
38 | ; 1- |
39 | ;0- |
39 | ; 0- |
40 | 40 | ||
41 | ;РАСКЛАДКА БАЙТ ВЫДЕЛЕНИЙ. НА ДАННЫЙ МОМЕНТ НЕ ВСЕ ПЕРЕНЕСЕНО ИЗ СТАРОЙ РЕАЛИЗАЦИИ |
41 | ; раскладка байт выделений. на данный момент не все перенесено из старой реализации |
42 | ;+0 ФЛАГОВЫЙ |
42 | ; +0 флаговый |
43 | ; 7 ПРИ АКТИВНОСТИ УСТАНОВЛЕН |
43 | ; 7 при активности установлен |
44 | ; 6 УСТАНОВЛЕН, НЕ ВЫДЕЛЯЕТСЯ |
44 | ; 6 установлен, не выделяется |
45 | ; 5 УСТАНОВЛЕН, ВЫЗОВ ВЕКТОРА |
45 | ; 5 установлен, вызов вектора |
46 | ; 4 |
46 | ; 4 |
47 | ; 3 \ |
47 | ; 3 \ |
48 | ; 2 } ФОРМА КУРСОРА |
48 | ; 2 } форма курсора |
49 | ; 1 } ПРИ ПОПАДАНИИ |
49 | ; 1 } при попадании |
50 | ; 0 / |
50 | ; 0 / |
51 | ;+1 X КООРДИНАТА |
51 | ; +1 x координата |
52 | ;+2 Y КООРДИНАТА |
52 | ; +2 y координата |
53 | ;+3 V ВЫСОТА |
53 | ; +3 v высота |
54 | ;+4 H ШИРИНА |
54 | ; +4 h ширина |
55 | ;+5 K КОД КЛАВИШИ |
55 | ; +5 k код клавиши |
56 | 56 | ||
- | 57 | EXT_WINDOW LD A,(SYSFLAGS) |
|
- | 58 | BIT SYSFLAGS.B_FB_INT_EXT,A |
|
- | 59 | JR NZ,EXT_ZX_WINDOW |
|
57 | ;ВНУТРЕННИЙ ВЫЗОВ РИСОВАНИЯ ОКНА НА ZX ЭКРАНЕ |
60 | ; внутренний вызов рисования окна на ZX экране |
58 | IWINW LD A,NUM_ZXSCR |
61 | INT_ZX_WINDOW LD A,NUM_ZXSCR |
59 | JR IWINW0 |
62 | JR INT_TXT_WINDOW.L1 |
60 | 63 | ||
61 | ;ВНУТРЕННИЙ ВЫЗОВ ДЛЯ РИСОВАНИЯ ОКНА НА ТЕКСТОВОМ ЭКРАНЕ |
64 | ; внутренний вызов для рисования окна на текстовом экране |
62 | ITWINW LD A,NUM_TXTSCR |
65 | INT_TXT_WINDOW LD A,NUM_TXTSCR |
63 | ;ВНЕШНИЙ ВЫЗОВ ДЛЯ РИСОВАНИЯ ОКНА НА ТЕКСТОВОМ ЭКРАНЕ |
66 | ; внешний вызов для рисования окна на текстовом экране |
64 | IWINW0 EX AF,AF' |
67 | .L1 EX AF,AF' |
65 | XOR A |
68 | XOR A |
66 | LD (PAGE4READ),A |
69 | LD (PAGE4READ),A |
67 | EX AF,AF' |
70 | EX AF,AF' |
68 | LD HL,FLAGS |
71 | LD HL,SYSFLAGS |
69 | SET B_WIN_INT_EXT,(HL) |
72 | SET SYSFLAGS.B_WIN_INT_EXT,(HL) |
70 | JR WINW0 |
73 | JR EXT_ZX_WINDOW.L1 |
71 | 74 | ||
72 | ;ВНЕШНИЙ ВЫЗОВ ДЛЯ РИСОВАНИЯ ОКНА НА ZX ЭКРАНЕ |
75 | ; внешний вызов для рисования окна на ZX экране |
73 | WINW LD HL,FLAGS |
76 | EXT_ZX_WINDOW LD HL,SYSFLAGS |
74 | RES B_WIN_INT_EXT,(HL) |
77 | RES SYSFLAGS.B_WIN_INT_EXT,(HL) |
75 | LD IX,(RREG_IXL) |
78 | LD IX,(RREG_IXL) |
76 | LD A,(R_77) |
79 | LD A,(R_77) |
77 | AND 7 |
80 | AND 7 |
78 | WINW0 CP NUM_ZXSCR |
81 | .L1 CP NUM_ZXSCR |
79 | JP Z,WINW_ZX |
82 | JP Z,WINW_ZX |
80 | CP NUM_TXTSCR |
83 | CP NUM_TXTSCR |
81 | RET NZ |
84 | RET NZ |
82 | EXX |
85 | EXX |
83 | LD BC,WIN_P6 |
86 | LD BC,WIN_P2 |
84 | LD A,(PAGE4READ) |
87 | LD A,(PAGE4READ) |
85 | OUT (C),A |
88 | OUT (C),A |
86 | EXX |
89 | EXX |
87 | LD D,(IX+0) ;X |
90 | LD D,(IX+_X_COORD) ; X |
88 | LD E,(IX+1) ;Y |
91 | LD E,(IX+_Y_COORD) ; Y |
89 | LD C,(IX+4) ;ЦВЕТ ОКНА |
92 | LD C,(IX+_COLOR_WIN) ; цвет окна |
90 | EXX |
93 | EXX |
91 | LD H,(IX+2) ;V |
94 | LD H,(IX+_V_SIZE) ; V |
92 | LD L,(IX+3) ;H |
95 | LD L,(IX+_H_SIZE) ; H |
93 | LD D,(IX+6) ;FLAGS |
96 | LD D,(IX+_FLAGS) ; FLAGS |
94 | XOR A |
- | |
95 | OUT (C),A |
97 | EVOPORT WIN_P2,RAM_NMI |
96 | LD B,HIGH (WIN_P3) |
98 | LD B,HIGH (WIN_P3) |
97 | LD A,0XF7 |
99 | LD A,VMODE7_0 |
98 | OUT (C),A |
100 | OUT (C),A |
99 | EXX |
101 | EXX |
100 | PUSH DE |
102 | PUSH DE |
101 | LD B," " |
103 | LD B," " |
102 | EXX |
104 | EXX |
Line 114... | Line 116... | ||
114 | INC E |
116 | INC E |
115 | EXX |
117 | EXX |
116 | DEC H |
118 | DEC H |
117 | JR NZ,WINT2 |
119 | JR NZ,WINT2 |
118 | POP HL |
120 | POP HL |
119 | BIT 7,D |
121 | BIT B_DOWN_HEADER,D |
120 | EXX |
122 | EXX |
121 | POP DE |
123 | POP DE |
122 | JR Z,TNIZ_RAMKA ;ОКНО БЕЗ НИЖНЕГО ЗАГОЛОВКА |
124 | JR Z,TNIZ_RAMKA ; окно без нижнего заголовка |
123 | ;РИСУЕМ НИЖНЮЮ ЦВЕТНУЮ ПОЛОСКУ |
125 | ; рисуем нижнюю цветную полоску |
124 | PUSH DE |
126 | PUSH DE |
125 | EXX |
127 | EXX |
126 | LD A,H |
128 | LD A,H |
127 | EXX |
129 | EXX |
128 | DEC A |
130 | DEC A |
Line 130... | Line 132... | ||
130 | LD E,A |
132 | LD E,A |
131 | CALL COLOR_LINE |
133 | CALL COLOR_LINE |
132 | POP DE |
134 | POP DE |
133 | JR TCENTR_RAMK |
135 | JR TCENTR_RAMK |
134 | 136 | ||
135 | ;РИСУЕМ НИЖНЮЮ РАМКУ |
137 | ; рисуем нижнюю рамку |
136 | TNIZ_RAMKA EXX |
138 | TNIZ_RAMKA EXX |
137 | BIT 6,D |
139 | BIT B_WINFRAME,D |
138 | EXX |
140 | EXX |
139 | JR NZ,TCENTR_RAMK |
141 | JR NZ,TCENTR_RAMK |
140 | EXX |
142 | EXX |
141 | LD A,H |
143 | LD A,H |
142 | EXX |
144 | EXX |
143 | PUSH DE |
145 | PUSH DE |
144 | DEC A |
146 | DEC A |
145 | ADD A,E |
147 | ADD A,E |
146 | LD E,A |
148 | LD E,A |
147 | ; LD B,"└" |
149 | ; LD B,"└" |
148 | LD B,5+0XF2 ;ЛЕВЫЙ НИЖНИЙ УГОЛ |
150 | LD B,5+0xF2 ; левый нижний угол |
149 | CALL PRTSYMTXTMODE |
151 | CALL PRTSYMTXTMODE |
150 | ; LD B,"─" |
152 | ; LD B,"─" |
151 | LD B,6+0XF2 ;НИЖНИЙ КРАЙ |
153 | LD B,6+0xF2 ; нижний край |
152 | INC D |
154 | INC D |
153 | EXX |
155 | EXX |
154 | LD A,L |
156 | LD A,L |
155 | EXX |
157 | EXX |
156 | DEC A |
158 | DEC A |
Line 160... | Line 162... | ||
160 | INC D |
162 | INC D |
161 | EX AF,AF' |
163 | EX AF,AF' |
162 | DEC A |
164 | DEC A |
163 | JR NZ,WINT04 |
165 | JR NZ,WINT04 |
164 | ; LD B,"┘" |
166 | ; LD B,"┘" |
165 | LD B,7+0XF2 ;ПРАВЫЙ НИЖНИЙ УГОЛ |
167 | LD B,7+0xF2 ; правый нижний угол |
166 | CALL PRTSYMTXTMODE |
168 | CALL PRTSYMTXTMODE |
167 | POP DE |
169 | POP DE |
168 | TCENTR_RAMK EXX |
170 | TCENTR_RAMK EXX |
169 | BIT 6,D |
171 | BIT B_WINFRAME,D |
170 | EXX |
172 | EXX |
171 | JR NZ,TWERH_COLOR ;ОКНО БЕЗ РАМКИ |
173 | JR NZ,TWERH_COLOR ; окно без рамки |
172 | ;РИСУЕМ БОКОВЫЕ РАМКИ |
174 | ; рисуем боковые рамки |
173 | EXX |
175 | EXX |
174 | LD A,H |
176 | LD A,H |
175 | EXX |
177 | EXX |
176 | DEC A |
178 | DEC A |
177 | DEC A |
179 | DEC A |
178 | ; LD B,"│" |
180 | ; LD B,"│" |
179 | LD B,3+0XF2 ;ЛЕВАЯ СТОРОНА |
181 | LD B,3+0xF2 ; левая сторона |
180 | INC E |
182 | INC E |
181 | PUSH DE |
183 | PUSH DE |
182 | WINT01 EX AF,AF' |
184 | WINT01 EX AF,AF' |
183 | CALL PRTSYMTXTMODE |
185 | CALL PRTSYMTXTMODE |
184 | INC E |
186 | INC E |
Line 196... | Line 198... | ||
196 | EXX |
198 | EXX |
197 | LD A,H |
199 | LD A,H |
198 | EXX |
200 | EXX |
199 | DEC A |
201 | DEC A |
200 | DEC A |
202 | DEC A |
201 | LD B,4+0XF2 ;ПРАВАЯ СТОРОНА ОКНА |
203 | LD B,4+0xF2 ; правая сторона окна |
202 | WINT02 EX AF,AF' |
204 | WINT02 EX AF,AF' |
203 | CALL PRTSYMTXTMODE |
205 | CALL PRTSYMTXTMODE |
204 | INC E |
206 | INC E |
205 | EX AF,AF' |
207 | EX AF,AF' |
206 | DEC A |
208 | DEC A |
207 | JR NZ,WINT02 |
209 | JR NZ,WINT02 |
208 | POP DE |
210 | POP DE |
209 | DEC E |
211 | DEC E |
210 | TWERH_COLOR EXX |
212 | TWERH_COLOR EXX |
211 | BIT 5,D |
213 | BIT B_UPHEADER,D |
212 | EXX |
214 | EXX |
213 | JR Z,TWERH_RAMK |
215 | JR Z,TWERH_RAMK |
214 | ;РИСУЕМ ВЕРХНЮЮ ЦВЕТНУЮ ПОЛОСУ |
216 | ; рисуем верхнюю цветную полосу |
215 | PUSH DE |
217 | PUSH DE |
216 | CALL COLOR_LINE |
218 | CALL COLOR_LINE |
217 | POP DE |
219 | POP DE |
218 | JR TRASCH |
220 | JR TRASCH |
219 | 221 | ||
220 | TWERH_RAMK EXX |
222 | TWERH_RAMK EXX |
221 | BIT 6,D |
223 | BIT B_WINFRAME,D |
222 | EXX |
224 | EXX |
223 | JR NZ,TRASCH |
225 | JR NZ,TRASCH |
224 | ; LD B,"┌" |
226 | ; LD B,"┌" |
225 | LD B,0+0XF2 ;ЛЕВЫЙ ВЕРХНИЙ УГОЛ |
227 | LD B,0+0xF2 ; левый верхний угол |
226 | CALL PRTSYMTXTMODE |
228 | CALL PRTSYMTXTMODE |
227 | ; LD B,"─" |
229 | ; LD B,"─" |
228 | LD B,1+0XF2 ;ВЕРХНИЙ КРАЙ |
230 | LD B,1+0xF2 ; верхний край |
229 | EXX |
231 | EXX |
230 | LD A,L |
232 | LD A,L |
231 | EXX |
233 | EXX |
232 | DEC A |
234 | DEC A |
233 | DEC A |
235 | DEC A |
Line 238... | Line 240... | ||
238 | INC D |
240 | INC D |
239 | EX AF,AF' |
241 | EX AF,AF' |
240 | DEC A |
242 | DEC A |
241 | JR NZ,WINT3 |
243 | JR NZ,WINT3 |
242 | ; LD B,"┐" |
244 | ; LD B,"┐" |
243 | LD B,2+0XF2 ;ПРАВЫЙ ВЕРХНИЙ УГОЛ |
245 | LD B,2+0xF2 ; правый верхний угол |
244 | CALL PRTSYMTXTMODE |
246 | CALL PRTSYMTXTMODE |
245 | POP DE |
247 | POP DE |
246 | TRASCH INC D |
248 | TRASCH INC D |
247 | LD (TADRSTR_Y),DE |
249 | LD (TADRSTR_Y),DE |
248 | LD A,D |
250 | LD A,D |
249 | LD (TXNEW),A |
251 | LD (TXNEW),A |
250 | LD A,(FLAGS) |
252 | LD A,(SYSFLAGS) |
251 | AND M_RUN_FAT_DSK |
253 | AND SYSFLAGS.M_RUN_FAT_DSK |
252 | JR NZ,TNOSET_MAIN |
254 | JR NZ,TNOSET_MAIN |
253 | ROMCALL MAIN_MEM13,ROM_RST83 |
255 | ROMCALL MAIN_MEM13,ROM_RST83 |
254 | TNOSET_MAIN LD BC,WIN_P6 |
256 | TNOSET_MAIN LD BC,WIN_P2 |
255 | LD A,(PAGE4READ) |
257 | LD A,(PAGE4READ) |
256 | OUT (C),A |
258 | OUT (C),A |
257 | LD L,(IX+0X0C) |
259 | LD L,(IX+_ADR_TXT_L) |
258 | LD H,(IX+0X0D) |
260 | LD H,(IX+_ADR_TXT_H) |
259 | XOR A |
- | |
260 | OUT (C),A |
261 | EVOPORT WIN_P2,RAM_NMI |
261 | EXX |
262 | EXX |
262 | BIT 4,D |
263 | BIT B_TEXT,D |
263 | EXX |
264 | EXX |
264 | RET NZ |
265 | RET NZ |
265 | ITPRINT_MESSAGE EXX |
266 | ITPRINT_MESSAGE EXX |
266 | LD HL,0 |
267 | LD HL,0 |
267 | LD (TEK_TEXT),HL |
268 | LD (TEK_TEXT),HL |
268 | LD BC,WIN_P6 |
269 | EVOPORT WIN_P2,RAM_NMI |
269 | XOR A |
- | |
270 | OUT (C),A |
- | |
271 | LD A,(PAGE4READ) |
270 | LD A,(PAGE4READ) |
272 | LD H,A |
271 | LD H,A |
273 | OUT (C),H |
272 | OUT (C),H |
274 | LD L,0 |
273 | LD L,0 |
275 | EXX |
274 | EXX |
Line 278... | Line 277... | ||
278 | EXX |
277 | EXX |
279 | LD A,(HL) |
278 | LD A,(HL) |
280 | INC HL |
279 | INC HL |
281 | AND A |
280 | AND A |
282 | JP Z,STOP_TPRINTMSG |
281 | JP Z,STOP_TPRINTMSG |
283 | TPRINT CP 0X20 |
282 | TPRINT CP 0x20 |
284 | JP NC,TPRINTA |
283 | JP NC,TPRINTA |
285 | CP 3 |
284 | CP 3 |
286 | JR Z,TNEXT |
285 | JR Z,TNEXT |
287 | CP 9 |
286 | CP 9 |
288 | JR NZ,TCOD0D |
287 | JR NZ,TCOD0D |
Line 294... | Line 293... | ||
294 | LD A,(TADRSTR_X) |
293 | LD A,(TADRSTR_X) |
295 | ADD A,B |
294 | ADD A,B |
296 | LD (TADRSTR_X),A |
295 | LD (TADRSTR_X),A |
297 | JP TNEXT |
296 | JP TNEXT |
298 | 297 | ||
299 | TCOD0D CP 0X0D |
298 | TCOD0D CP 0x0D |
300 | JR NZ,TCOD16 |
299 | JR NZ,TCOD16 |
301 | EXX |
300 | EXX |
302 | OUT (C),L |
301 | OUT (C),L |
303 | EXX |
302 | EXX |
304 | LD A,(TXNEW) |
303 | LD A,(TXNEW) |
Line 308... | Line 307... | ||
308 | INC A |
307 | INC A |
309 | LD (TADRSTR_Y),A |
308 | LD (TADRSTR_Y),A |
310 | LD E,A |
309 | LD E,A |
311 | JP TNEXT |
310 | JP TNEXT |
312 | 311 | ||
313 | TCOD16 CP 0X16 |
312 | TCOD16 CP 0x16 |
314 | JR NZ,TCOD17 |
313 | JR NZ,TCOD17 |
315 | LD E,(HL) |
314 | LD E,(HL) |
316 | INC HL |
315 | INC HL |
317 | LD D,(HL) |
316 | LD D,(HL) |
318 | INC HL |
317 | INC HL |
Line 320... | Line 319... | ||
320 | OUT (C),L |
319 | OUT (C),L |
321 | EXX |
320 | EXX |
322 | LD (TADRSTR_Y),DE |
321 | LD (TADRSTR_Y),DE |
323 | JP TNEXT |
322 | JP TNEXT |
324 | 323 | ||
325 | TCOD17 CP 0X17 |
324 | TCOD17 CP 0x17 |
326 | JR NZ,TCOD1 |
325 | JR NZ,TCOD1 |
327 | LD C,(HL) |
326 | LD C,(HL) |
328 | INC HL |
327 | INC HL |
329 | LD A,C |
328 | LD A,C |
330 | EXX |
329 | EXX |
Line 333... | Line 332... | ||
333 | LD (COLOR4SYM),A |
332 | LD (COLOR4SYM),A |
334 | JP TNEXT |
333 | JP TNEXT |
335 | 334 | ||
336 | TCOD1 CP 1 |
335 | TCOD1 CP 1 |
337 | JR NZ,TCOD2 |
336 | JR NZ,TCOD2 |
338 | LD D,(IX+0) |
337 | LD D,(IX+_X_COORD) |
339 | LD E,(IX+1) |
338 | LD E,(IX+_Y_COORD) |
340 | INC D |
339 | INC D |
341 | EXX |
340 | EXX |
342 | OUT (C),L |
341 | OUT (C),L |
343 | EXX |
342 | EXX |
344 | LD (TADRSTR_Y),DE |
343 | LD (TADRSTR_Y),DE |
Line 364... | Line 363... | ||
364 | JP TNEXT |
363 | JP TNEXT |
365 | 364 | ||
366 | TPRINT_A LD A,(RREG_A) |
365 | TPRINT_A LD A,(RREG_A) |
367 | ITPRINT_A EX AF,AF' |
366 | ITPRINT_A EX AF,AF' |
368 | ITPRINT_A1 EXX |
367 | ITPRINT_A1 EXX |
369 | LD BC,WIN_P6 |
368 | LD BC,WIN_P2 |
370 | LD A,(PAGE4READ) |
369 | LD A,(PAGE4READ) |
371 | LD H,A |
370 | LD H,A |
372 | LD L,0 |
371 | LD L,0 |
373 | EX AF,AF' |
372 | EX AF,AF' |
374 | EXX |
373 | EXX |
Line 384... | Line 383... | ||
384 | LD D,(HL) |
383 | LD D,(HL) |
385 | INC (HL) |
384 | INC (HL) |
386 | LD A,(COLOR4SYM) |
385 | LD A,(COLOR4SYM) |
387 | LD C,A |
386 | LD C,A |
388 | EXX |
387 | EXX |
389 | LD A,0XF7 |
388 | LD A,VMODE7_0 |
390 | OUT (C),A |
389 | OUT (C),A |
391 | EXX |
390 | EXX |
392 | LD H,E |
391 | LD H,E |
393 | LD L,0 |
392 | LD L,0 |
394 | LD E,D |
393 | LD E,D |
Line 399... | Line 398... | ||
399 | SRL H |
398 | SRL H |
400 | RR L |
399 | RR L |
401 | SRL E |
400 | SRL E |
402 | ADD HL,DE |
401 | ADD HL,DE |
403 | AND 1 |
402 | AND 1 |
404 | REPT 4 |
- | |
405 | RRCA |
403 | RRCA |
- | 404 | RRCA |
|
- | 405 | RRCA |
|
406 | ENDM |
406 | RRCA |
407 | ADD A,HIGH (CPU6+LSYM) |
407 | ADD A,HIGH (CPU2+LSYM) |
408 | LD D,A |
408 | LD D,A |
409 | LD E,LOW (CPU6+LSYM) |
409 | LD E,LOW (CPU2+LSYM) |
410 | ADD HL,DE |
410 | ADD HL,DE |
411 | EX AF,AF' |
411 | EX AF,AF' |
412 | LD (HL),A |
412 | LD (HL),A |
413 | LD A,C |
413 | LD A,C |
414 | INC A |
414 | INC A |
415 | JP Z,TRINTA0 |
415 | JP Z,TRINTA0 |
416 | LD A,H |
416 | LD A,H |
417 | XOR 0X30 |
417 | XOR 0x30 |
418 | LD H,A |
418 | LD H,A |
419 | LD A,D |
419 | LD A,D |
420 | AND 0X10 |
420 | AND 0x10 |
421 | REPT 4 |
421 | RRCA |
- | 422 | RRCA |
|
- | 423 | RRCA |
|
422 | RRCA |
424 | RRCA |
423 | ENDM |
- | |
424 | ADD A,L |
425 | ADD A,L |
425 | LD L,A |
426 | LD L,A |
426 | LD (HL),C |
427 | LD (HL),C |
427 | TRINTA0 EXX |
428 | TRINTA0 EXX |
428 | OUT (C),L |
429 | OUT (C),L |
Line 433... | Line 434... | ||
433 | STOP_TPRINTMSG EXX |
434 | STOP_TPRINTMSG EXX |
434 | OUT (C),L |
435 | OUT (C),L |
435 | EXX |
436 | EXX |
436 | RET |
437 | RET |
437 | 438 | ||
438 | ;D-X E-Y B-SYMBOL C-COLOR |
439 | ; D-X E-Y B-символ C-цвет |
439 | COLOR_LINE LD A,C |
440 | COLOR_LINE LD A,C |
440 | PUSH AF |
441 | PUSH AF |
441 | AND 7 |
442 | AND 7 |
442 | RLCA |
443 | RLCA |
443 | RLCA |
444 | RLCA |
Line 449... | Line 450... | ||
449 | RRCA |
450 | RRCA |
450 | AND 7 |
451 | AND 7 |
451 | OR H |
452 | OR H |
452 | LD H,A |
453 | LD H,A |
453 | LD A,C |
454 | LD A,C |
454 | AND 0XC0 |
455 | AND 0xC0 |
455 | OR H |
456 | OR H |
456 | LD C,A |
457 | LD C,A |
457 | LD B," " |
458 | LD B," " |
458 | EXX |
459 | EXX |
459 | LD A,L |
460 | LD A,L |
Line 479... | Line 480... | ||
479 | SRL H |
480 | SRL H |
480 | RR L |
481 | RR L |
481 | SRL E |
482 | SRL E |
482 | ADD HL,DE |
483 | ADD HL,DE |
483 | AND 1 |
484 | AND 1 |
484 | REPT 4 |
- | |
485 | RRCA |
485 | RRCA |
- | 486 | RRCA |
|
- | 487 | RRCA |
|
486 | ENDM |
488 | RRCA |
487 | ADD A,HIGH (CPU3+LSYM) |
489 | ADD A,HIGH (CPU3+LSYM) |
488 | LD D,A |
490 | LD D,A |
489 | LD E,LOW (CPU3+LSYM) |
491 | LD E,LOW (CPU3+LSYM) |
490 | ADD HL,DE ;HL=АДРЕС СИМВОЛА НА ТЕКСТМОДНОМ ЭКРАНЕ |
492 | ADD HL,DE ; HL=Адрес символа на текстмодном экране |
491 | LD E,H |
493 | LD E,H |
492 | LD A,H |
494 | LD A,H |
493 | XOR 0X30 |
495 | XOR 0x30 |
494 | LD D,A |
496 | LD D,A |
495 | LD A,E |
497 | LD A,E |
496 | AND 0X10 |
498 | AND 0x10 |
497 | REPT 4 |
499 | RRCA |
- | 500 | RRCA |
|
- | 501 | RRCA |
|
498 | RRCA |
502 | RRCA |
499 | ENDM |
- | |
500 | ADD A,L |
503 | ADD A,L |
501 | LD E,A |
504 | LD E,A |
502 | RET |
505 | RET |
503 | 506 | ||
504 | ;ПЕЧАТЬ СИМВОЛА НА ТЕКСТМОДНОМ ЭКРАНЕ |
507 | ; печать символа на текстмодном экране |
505 | ;D-X E-Y B-SYMBOL C-COLOR |
508 | ; D-X E-Y B-символ C-цвет |
506 | PRTSYMTXTMODE PUSH DE |
509 | PRTSYMTXTMODE PUSH DE |
507 | PUSH HL |
510 | PUSH HL |
508 | CALL TDISP_ATTR |
511 | CALL TDISP_ATTR |
509 | LD (HL),B |
512 | LD (HL),B |
510 | LD A,C |
513 | LD A,C |
511 | INC A |
514 | INC A |
512 | JR Z,PRTSYMTXTMODE0 |
515 | JR Z,.L1 |
513 | EX DE,HL |
516 | EX DE,HL |
514 | LD (HL),C |
517 | LD (HL),C |
515 | PRTSYMTXTMODE0 POP HL |
518 | .L1 POP HL |
516 | POP DE |
519 | POP DE |
517 | RET |
520 | RET |
518 | 521 | ||
519 | WINW_ZX EXX |
522 | WINW_ZX EXX |
520 | ; LD BC,RD_7FFD |
- | |
521 | ; IN A,(C) |
- | |
522 | READ_7FFD |
523 | READ_7FFD |
523 | AND 8 |
524 | AND 8 |
524 | RRCA |
525 | RRCA |
525 | RRCA |
526 | RRCA |
526 | RRCA |
527 | RRCA |
527 | RRCA |
528 | RRCA |
528 | LD D,A |
529 | LD D,A |
529 | LD BC,WIN_P6 |
530 | LD BC,WIN_P2 |
530 | LD A,(PAGE4READ) |
531 | LD A,(PAGE4READ) |
531 | OUT (C),A |
532 | OUT (C),A |
532 | LD A,(IX+2) |
533 | LD A,(IX+_V_SIZE) |
533 | ADD A,A |
534 | ADD A,A |
534 | ADD A,A |
535 | ADD A,A |
535 | ADD A,A |
536 | ADD A,A |
536 | LD E,A |
537 | LD E,A |
537 | EXX |
538 | EXX |
538 | LD C,(IX+3) |
539 | LD C,(IX+_H_SIZE) |
539 | LD L,(IX+1) |
540 | LD L,(IX+_Y_COORD) |
540 | LD H,0 |
541 | LD H,0 |
541 | ADD HL,HL |
542 | ADD HL,HL |
542 | ADD HL,HL |
543 | ADD HL,HL |
543 | ADD HL,HL |
544 | ADD HL,HL |
544 | ADD HL,HL |
545 | ADD HL,HL |
545 | EX DE,HL |
546 | EX DE,HL |
546 | LD IY,BUFTSC |
547 | LD IY,BUFTSC |
547 | ADD IY,DE |
548 | ADD IY,DE |
548 | WINW3 LD A,(IX+0) |
549 | WINW3 LD A,(IX+_X_COORD) |
549 | ADD A,(IY+0) |
550 | ADD A,(IY+0) |
550 | LD E,A |
551 | LD E,A |
551 | - | ||
552 | LD A,(IY+1) |
552 | LD A,(IY+1) |
553 | EXX |
553 | EXX |
554 | ADD A,D |
554 | ADD A,D |
555 | EXX |
555 | EXX |
556 | LD D,A |
556 | LD D,A |
557 | - | ||
558 | AND 7 |
557 | AND 7 |
559 | JR NZ,WINW4 |
558 | JR NZ,WINW4 |
560 | LD B,C |
559 | LD B,C |
561 | LD A,D |
560 | LD A,D |
562 | RRCA |
561 | RRCA |
563 | RRCA |
562 | RRCA |
564 | RRCA |
563 | RRCA |
565 | AND 3 |
564 | AND 3 |
566 | ADD A,0X58 |
565 | ADD A,0x58 |
567 | - | ||
568 | EXX |
566 | EXX |
569 | ADD A,D |
567 | ADD A,D |
570 | EXX |
568 | EXX |
571 | - | ||
572 | LD H,A |
569 | LD H,A |
573 | LD L,E |
570 | LD L,E |
574 | LD A,(IX+4) |
571 | LD A,(IX+_COLOR_WIN) |
575 | WINW5 LD (HL),A |
572 | WINW5 LD (HL),A |
576 | INC L |
573 | INC L |
577 | DJNZ WINW5 |
574 | DJNZ WINW5 |
578 | WINW4 LD B,C |
575 | WINW4 LD B,C |
579 | XOR A |
576 | XOR A |
Line 584... | Line 581... | ||
584 | INC IY |
581 | INC IY |
585 | EXX |
582 | EXX |
586 | DEC E |
583 | DEC E |
587 | EXX |
584 | EXX |
588 | JR NZ,WINW3 |
585 | JR NZ,WINW3 |
589 | BIT 7,(IX+6) |
586 | BIT B_ADR_PUNKT,(IX+_FLAGS) |
590 | JR Z,NIZ_RAMKA ;ОКНО БЕЗ НИЖНЕГО ЗАГОЛОВКА |
587 | JR Z,NIZ_RAMKA ; окно без нижнего заголовка |
591 | ;РИСУЕМ НИЖНЮЮ ЦВЕТНУЮ ПОЛОСКУ |
588 | ; рисуем нижнюю цветную полоску |
592 | LD DE,0XFFF0 |
589 | LD DE,0xFFF0 |
593 | ADD IY,DE |
590 | ADD IY,DE |
594 | LD A,(IX+0) |
591 | LD A,(IX+_X_COORD) |
595 | ADD A,(IY+0) |
592 | ADD A,(IY+0) |
596 | LD E,A |
593 | LD E,A |
597 | LD A,(IY+1) |
594 | LD A,(IY+1) |
598 | RRCA |
595 | RRCA |
599 | RRCA |
596 | RRCA |
600 | RRCA |
597 | RRCA |
601 | AND 3 |
598 | AND 3 |
602 | ADD A,0X58 |
599 | ADD A,0x58 |
603 | - | ||
604 | EXX |
600 | EXX |
605 | ADD A,D |
601 | ADD A,D |
606 | EXX |
602 | EXX |
607 | - | ||
608 | LD D,A |
603 | LD D,A |
609 | LD B,C |
604 | LD B,C |
610 | LD L,(IX+4) |
605 | LD L,(IX+_COLOR_WIN) |
611 | LD A,L |
606 | LD A,L |
612 | AND 7 |
607 | AND 7 |
613 | RLCA |
608 | RLCA |
614 | RLCA |
609 | RLCA |
615 | RLCA |
610 | RLCA |
Line 621... | Line 616... | ||
621 | AND 7 |
616 | AND 7 |
622 | OR H |
617 | OR H |
623 | WINWN1 LD (DE),A |
618 | WINWN1 LD (DE),A |
624 | INC E |
619 | INC E |
625 | DJNZ WINWN1 |
620 | DJNZ WINWN1 |
626 | LD DE,0X0E |
621 | LD DE,0x0E |
627 | ADD IY,DE |
622 | ADD IY,DE |
628 | JR CENTR_RAMK |
623 | JR CENTR_RAMK |
629 | 624 | ||
630 | NIZ_RAMKA BIT 6,(IX+6) |
625 | NIZ_RAMKA BIT B_ADR_NUMS_PUNKT,(IX+_FLAGS) |
631 | JR NZ,CENTR_RAMK ;ОКНО БЕЗ РАМКИ |
626 | JR NZ,CENTR_RAMK ; окно без рамки |
632 | ;РИСУЕМ НИЖНЮЮ РАМКУ |
627 | ; рисуем нижнюю рамку |
633 | DEC IY |
628 | DEC IY |
634 | DEC IY |
629 | DEC IY |
635 | LD L,(IX+0) |
630 | LD L,(IX+_X_COORD) |
636 | LD A,(IY+0) |
631 | LD A,(IY+0) |
637 | ADD A,L |
632 | ADD A,L |
638 | LD E,A |
633 | LD E,A |
639 | LD H,A |
634 | LD H,A |
640 | - | ||
641 | LD A,(IY+1) |
635 | LD A,(IY+1) |
642 | EXX |
636 | EXX |
643 | ADD A,D |
637 | ADD A,D |
644 | EXX |
638 | EXX |
645 | LD D,A |
639 | LD D,A |
646 | - | ||
647 | LD B,C |
640 | LD B,C |
648 | LD A,0XFF |
641 | LD A,0xFF |
649 | NR1 LD (DE),A |
642 | NR1 LD (DE),A |
650 | INC E |
643 | INC E |
651 | DJNZ NR1 |
644 | DJNZ NR1 |
652 | DEC E |
645 | DEC E |
653 | DEC D |
646 | DEC D |
654 | LD L,H |
647 | LD L,H |
655 | LD H,D |
648 | LD H,D |
656 | LD A,0X80 |
649 | LD A,0x80 |
657 | LD B,7 |
650 | LD B,7 |
658 | NR2 LD (HL),A |
651 | NR2 LD (HL),A |
659 | RLCA |
652 | RLCA |
660 | LD (DE),A |
653 | LD (DE),A |
661 | RRCA |
654 | RRCA |
662 | DEC H |
655 | DEC H |
663 | DEC D |
656 | DEC D |
664 | DJNZ NR2 |
657 | DJNZ NR2 |
665 | CENTR_RAMK BIT 6,(IX+6) |
658 | CENTR_RAMK BIT B_ADR_NUMS_PUNKT,(IX+_FLAGS) |
666 | JR NZ,WERH_COLOR ;ОКНО БЕЗ РАМКИ |
659 | JR NZ,WERH_COLOR ; окно без рамки |
667 | ;РИСУЕМ БОКОВЫЕ РАМКИ |
660 | ; рисуем боковые рамки |
668 | EXX |
661 | EXX |
669 | LD A,(IX+2) |
662 | LD A,(IX+_V_SIZE) |
670 | SUB 2 |
663 | SUB 2 |
671 | LD E,A |
664 | LD E,A |
672 | EXX |
665 | EXX |
673 | NR4 LD DE,0XFFF0 |
666 | NR4 LD DE,0xFFF0 |
674 | ADD IY,DE |
667 | ADD IY,DE |
675 | LD L,(IX+0) |
668 | LD L,(IX+_X_COORD) |
676 | LD A,(IY+0) |
669 | LD A,(IY+0) |
677 | ADD A,L |
670 | ADD A,L |
678 | LD E,A |
671 | LD E,A |
679 | - | ||
680 | LD A,(IY+1) |
672 | LD A,(IY+1) |
681 | EXX |
673 | EXX |
682 | ADD A,D |
674 | ADD A,D |
683 | EXX |
675 | EXX |
684 | LD D,A |
676 | LD D,A |
685 | LD A,E |
677 | LD A,E |
686 | - | ||
687 | LD H,D |
678 | LD H,D |
688 | ADD A,(IX+3) |
679 | ADD A,(IX+_H_SIZE) |
689 | DEC A |
680 | DEC A |
690 | LD L,A |
681 | LD L,A |
691 | LD A,0X80 |
682 | LD A,0x80 |
692 | LD B,8 |
683 | LD B,8 |
693 | NR3 LD (DE),A |
684 | NR3 LD (DE),A |
694 | RLCA |
685 | RLCA |
695 | LD (HL),A |
686 | LD (HL),A |
696 | RRCA |
687 | RRCA |
Line 699... | Line 690... | ||
699 | DJNZ NR3 |
690 | DJNZ NR3 |
700 | EXX |
691 | EXX |
701 | DEC E |
692 | DEC E |
702 | EXX |
693 | EXX |
703 | JR NZ,NR4 |
694 | JR NZ,NR4 |
704 | WERH_COLOR BIT 5,(IX+6) |
695 | WERH_COLOR BIT B_UPHEADER,(IX+_FLAGS) |
705 | JR Z,WERH_RAMK ;БЕЗ ВЕРХНЕГО ЗАГОЛОВКА |
696 | JR Z,WERH_RAMK ; без верхнего заголовка |
706 | ;РИСУЕМ ВЕРХНЮЮ ЦВЕТНУЮ ПОЛОСУ |
697 | ; рисуем верхнюю цветную полосу |
707 | LD L,(IX+1) |
698 | LD L,(IX+_Y_COORD) |
708 | LD H,0 |
699 | LD H,0 |
709 | ADD HL,HL |
700 | ADD HL,HL |
710 | ADD HL,HL |
701 | ADD HL,HL |
711 | ADD HL,HL |
702 | ADD HL,HL |
712 | ADD HL,HL |
703 | ADD HL,HL |
713 | EX DE,HL |
704 | EX DE,HL |
714 | LD IY,BUFTSC |
705 | LD IY,BUFTSC |
715 | ADD IY,DE |
706 | ADD IY,DE |
716 | LD A,(IX+0) |
707 | LD A,(IX+_X_COORD) |
717 | ADD A,(IY+0) |
708 | ADD A,(IY+0) |
718 | LD E,A |
709 | LD E,A |
719 | LD A,(IY+1) |
710 | LD A,(IY+1) |
720 | RRCA |
711 | RRCA |
721 | RRCA |
712 | RRCA |
722 | RRCA |
713 | RRCA |
723 | AND 3 |
714 | AND 3 |
724 | ADD A,0X58 |
715 | ADD A,0x58 |
725 | - | ||
726 | EXX |
716 | EXX |
727 | ADD A,D |
717 | ADD A,D |
728 | EXX |
718 | EXX |
729 | - | ||
730 | LD D,A |
719 | LD D,A |
731 | LD B,C |
720 | LD B,C |
732 | LD L,(IX+4) |
721 | LD L,(IX+_COLOR_WIN) |
733 | LD A,L |
722 | LD A,L |
734 | AND 7 |
723 | AND 7 |
735 | RLCA |
724 | RLCA |
736 | RLCA |
725 | RLCA |
737 | RLCA |
726 | RLCA |
Line 745... | Line 734... | ||
745 | WINWW1 LD (DE),A |
734 | WINWW1 LD (DE),A |
746 | INC E |
735 | INC E |
747 | DJNZ WINWW1 |
736 | DJNZ WINWW1 |
748 | JP RADUGA |
737 | JP RADUGA |
749 | 738 | ||
750 | WERH_RAMK BIT 6,(IX+6) |
739 | WERH_RAMK BIT B_ADR_NUMS_PUNKT,(IX+_FLAGS) |
751 | JR NZ,RADUGA ;ОКНО БЕЗ РАМКИ |
740 | JR NZ,RADUGA ; окно без рамки |
752 | ;РИСУЕМ ВЕРХНЮЮ РАМКУ |
741 | ; рисуем верхнюю рамку |
753 | WR4 LD DE,0XFFF0 |
742 | WR4 LD DE,0xFFF0 |
754 | ADD IY,DE |
743 | ADD IY,DE |
755 | LD L,(IX+0) |
744 | LD L,(IX+_X_COORD) |
756 | LD A,(IY+0) |
745 | LD A,(IY+0) |
757 | ADD A,L |
746 | ADD A,L |
758 | LD E,A |
747 | LD E,A |
759 | - | ||
760 | LD A,(IY+1) |
748 | LD A,(IY+1) |
761 | EXX |
749 | EXX |
762 | ADD A,D |
750 | ADD A,D |
763 | EXX |
751 | EXX |
764 | LD D,A |
752 | LD D,A |
765 | LD A,E |
753 | LD A,E |
766 | - | ||
767 | LD H,D |
754 | LD H,D |
768 | ADD A,(IX+3) |
755 | ADD A,(IX+_H_SIZE) |
769 | DEC A |
756 | DEC A |
770 | LD L,A |
757 | LD L,A |
771 | LD A,0X80 |
758 | LD A,0x80 |
772 | LD B,7 |
759 | LD B,7 |
773 | WR3 LD (DE),A |
760 | WR3 LD (DE),A |
774 | RLCA |
761 | RLCA |
775 | LD (HL),A |
762 | LD (HL),A |
776 | RRCA |
763 | RRCA |
Line 779... | Line 766... | ||
779 | DJNZ WR3 |
766 | DJNZ WR3 |
780 | LD A,L |
767 | LD A,L |
781 | SUB E |
768 | SUB E |
782 | LD B,A |
769 | LD B,A |
783 | INC B |
770 | INC B |
784 | LD A,0XFF |
771 | LD A,0xFF |
785 | WR5 LD (DE),A |
772 | WR5 LD (DE),A |
786 | INC E |
773 | INC E |
787 | DJNZ WR5 |
774 | DJNZ WR5 |
788 | RADUGA BIT 5,(IX+6) |
775 | RADUGA BIT B_UPHEADER,(IX+_FLAGS) |
789 | JR Z,RASCH |
776 | JR Z,RASCH |
790 | LD IY,BUFTSC |
777 | LD IY,BUFTSC |
791 | LD L,(IX+1) |
778 | LD L,(IX+_Y_COORD) |
792 | LD H,0 |
779 | LD H,0 |
793 | ADD HL,HL |
780 | ADD HL,HL |
794 | ADD HL,HL |
781 | ADD HL,HL |
795 | ADD HL,HL |
782 | ADD HL,HL |
796 | ADD HL,HL |
783 | ADD HL,HL |
Line 801... | Line 788... | ||
801 | LD D,A |
788 | LD D,A |
802 | RRCA |
789 | RRCA |
803 | RRCA |
790 | RRCA |
804 | RRCA |
791 | RRCA |
805 | AND 3 |
792 | AND 3 |
806 | ADD A,0X58 |
793 | ADD A,0x58 |
807 | - | ||
808 | EXX |
794 | EXX |
809 | ADD A,D |
795 | ADD A,D |
810 | EXX |
796 | EXX |
811 | - | ||
812 | LD H,A |
797 | LD H,A |
813 | LD A,(IX+0) |
798 | LD A,(IX+_X_COORD) |
814 | ADD A,(IX+3) |
799 | ADD A,(IX+_H_SIZE) |
815 | ADD A,L |
800 | ADD A,L |
816 | LD L,A |
801 | LD L,A |
817 | LD E,A |
802 | LD E,A |
818 | LD A,(IX+4) |
803 | LD A,(IX+_COLOR_WIN) |
819 | AND 0X47 |
804 | AND 0x47 |
820 | LD C,A |
805 | LD C,A |
821 | AND 0X40 |
806 | AND 0x40 |
822 | LD B,A |
807 | LD B,A |
823 | DEC L |
808 | DEC L |
824 | LD A,C |
809 | LD A,C |
825 | ADD A,5*8 |
810 | ADD A,5*8 |
826 | LD (HL),A ;5*8+7 |
811 | LD (HL),A ; 5*8+7 |
Line 862... | Line 847... | ||
862 | DEC L |
847 | DEC L |
863 | LD (HL),A |
848 | LD (HL),A |
864 | LD L,C |
849 | LD L,C |
865 | INC H |
850 | INC H |
866 | DJNZ RADUGA1 |
851 | DJNZ RADUGA1 |
867 | RASCH LD A,(IX+0) |
852 | RASCH LD A,(IX+_X_COORD) |
868 | LD L,(IX+1) |
853 | LD L,(IX+_Y_COORD) |
869 | ADD A,A |
854 | ADD A,A |
870 | ADD A,A |
855 | ADD A,A |
871 | ADD A,A |
856 | ADD A,A |
872 | LD H,A |
857 | LD H,A |
873 | INC H |
858 | INC H |
874 | EXX |
859 | EXX |
875 | XOR A |
- | |
876 | OUT (C),A |
860 | EVOPORT WIN_P2,RAM_NMI |
877 | EXX |
861 | EXX |
878 | LD A,H |
862 | LD A,H |
879 | LD (XNEW),A |
863 | LD (XNEW),A |
880 | LD (ADRSTR_Y),HL |
864 | LD (ADRSTR_Y),HL |
881 | EXX |
865 | EXX |
882 | LD A,(PAGE4READ) |
866 | LD A,(PAGE4READ) |
883 | OUT (C),A |
867 | OUT (C),A |
884 | EXX |
868 | EXX |
885 | LD L,(IX+0X0C) |
869 | LD L,(IX+_ADR_TXT_L) |
886 | LD H,(IX+0X0D) |
870 | LD H,(IX+_ADR_TXT_H) |
887 | EXX |
871 | EXX |
888 | XOR A |
- | |
889 | OUT (C),A |
872 | EVOPORT WIN_P2,RAM_NMI |
890 | EXX |
873 | EXX |
891 | BIT 4,(IX+6) |
874 | BIT B_TEXT,(IX+_FLAGS) |
892 | JP Z,IPRINT_MESSAGE |
875 | JP Z,IPRINT_MESSAGE |
893 | RET |
876 | RET |
894 | 877 | ||
895 | CLS LD HL,0 |
878 | CLS LD HL,0 |
896 | LD D,H |
879 | LD D,H |
897 | LD E,L |
880 | LD E,L |
898 | ADD HL,SP |
881 | ADD HL,SP |
899 | LD B,0X60 |
882 | LD B,0x60 |
900 | LD SP,0X5800 |
883 | LD SP,0x5800 |
- | 884 | CLS1 |
|
901 | CLS1 REPT 0X20 |
885 | REPT 0x20 |
902 | PUSH DE |
886 | PUSH DE |
903 | ENDM |
887 | ENDM |
904 | DJNZ CLS1 |
888 | DJNZ CLS1 |
905 | LD SP,HL |
889 | LD SP,HL |
906 | CLSSCR LD HL,0 |
890 | CLSSCR LD HL,0 |
907 | LD D,A |
891 | LD D,A |
908 | LD E,A |
892 | LD E,A |
909 | ADD HL,SP |
893 | ADD HL,SP |
910 | LD SP,0X5B00 |
894 | LD SP,0x5B00 |
911 | LD B,12 |
895 | LD B,12 |
- | 896 | CLS2 |
|
912 | CLS2 REPT 0X20 |
897 | REPT 0x20 |
913 | PUSH DE |
898 | PUSH DE |
914 | ENDM |
899 | ENDM |
915 | DJNZ CLS2 |
900 | DJNZ CLS2 |
916 | LD SP,HL |
901 | LD SP,HL |
917 | RRCA |
902 | RRCA |
918 | RRCA |
903 | RRCA |
919 | RRCA |
904 | RRCA |
920 | AND 7 |
905 | AND 7 |
921 | OUT (0XFE),A |
906 | OUT (0xFE),A |
922 | RET |
907 | RET |
923 | 908 | ||
924 | STOP_PRINTMSG LD BC,WIN_P6 |
909 | STOP_PRINTMSG |
925 | XOR A |
- | |
926 | OUT (C),A |
910 | EVOPORT WIN_P2,RAM_NMI |
927 | RET |
911 | RET |
928 | 912 | ||
929 | ;ПЕЧАТЬ ТЕКСТОВОЙ СТРОКИ С УПРАВЛЮЯЩИМИ КОДАМИ (ВНЕШНИЙ ВЫЗОВ) |
913 | ; печать текстовой строки с управляющими кодами (внешний вызов) |
930 | PRINT_MESSAGE LD HL,(RREG_L) |
914 | PRINT_MESSAGE LD HL,(RREG_L) |
931 | ;ПЕЧАТЬ ТЕКСТОВОЙ СТРОКИ С УПРАВЛЮЯЩИМИ КОДАМИ (ВНУТРЕННИЙ ВЫЗОВ) |
915 | ; печать текстовой строки с управляющими кодами (внутренний вызов) |
932 | IPRINT_MESSAGE LD A,(R_77) |
916 | IPRINT_MESSAGE LD A,(R_77) |
933 | AND 7 |
917 | AND 7 |
934 | CP 7 |
918 | CP 7 |
935 | JP Z,ITPRINT_MESSAGE |
919 | JP Z,ITPRINT_MESSAGE |
936 | CP 3 |
920 | CP 3 |
937 | RET NZ |
921 | RET NZ |
938 | ; LD BC,RD_7FFD |
- | |
939 | ; IN A,(C) |
- | |
940 | READ_7FFD |
922 | READ_7FFD |
941 | AND 8 |
923 | AND 8 |
942 | LD BC,BUFTSC |
924 | LD BC,BUFTSC |
943 | JR Z,IPM1 |
925 | JR Z,IPM1 |
944 | LD BC,BUFTSC1 |
926 | LD BC,BUFTSC1 |
945 | IPM1 LD (TEKBUFTSC),BC |
927 | IPM1 LD (TEKBUFTSC),BC |
946 | LD BC,WIN_P6 |
928 | LD BC,WIN_P2 |
947 | ;ПЕЧАТЬ ТЕКСТОВОЙ СТОРОКИ С УПРАВЛЯЮЩИМИ КОДАМИ (ВНУТРЕННИЙ ВЫЗОВ) |
929 | ; печать текстовой стороки с управляющими кодами (внутренний вызов) |
948 | NEXT LD A,(PAGE4READ) |
930 | NEXT LD A,(PAGE4READ) |
949 | OUT (C),A |
931 | OUT (C),A |
950 | LD A,(HL) |
932 | LD A,(HL) |
951 | INC HL |
933 | INC HL |
952 | AND A |
934 | AND A |
953 | JR Z,STOP_PRINTMSG |
935 | JR Z,STOP_PRINTMSG |
954 | PRINT CP 0X20 |
936 | PRINT CP 0x20 |
955 | JP NC,PRINTA |
937 | JP NC,PRINTA |
956 | COD03 CP 3 |
938 | COD03 CP 3 |
957 | JR NZ,COD9 |
939 | JR NZ,COD9 |
958 | LD D,0 ;ЦЕНТРОВКА СТРОКИ В ОКНЕ |
940 | LD D,0 ; центровка строки в окне |
959 | LD A,H |
941 | LD A,H |
960 | EX AF,AF' |
942 | EX AF,AF' |
961 | LD E,L |
943 | LD E,L |
962 | CEN2 LD A,(HL) |
944 | CEN2 LD A,(HL) |
963 | CP 0X20 |
945 | CP 0x20 |
964 | JR C,CEN3 |
946 | JR C,CEN3 |
965 | LD A,6 |
947 | LD A,6 |
966 | ADD A,D |
948 | ADD A,D |
967 | LD D,A |
949 | LD D,A |
968 | INC HL |
950 | INC HL |
969 | JR CEN2 |
951 | JR CEN2 |
970 | 952 | ||
971 | CEN3 XOR A |
953 | CEN3 |
972 | OUT (C),A |
954 | EVOPORT WIN_P2,RAM_NMI |
973 | LD A,(IX+3) |
955 | LD A,(IX+_H_SIZE) |
974 | ADD A,A |
956 | ADD A,A |
975 | ADD A,A |
957 | ADD A,A |
976 | ADD A,A |
958 | ADD A,A |
977 | SUB D |
959 | SUB D |
978 | SRL A |
960 | SRL A |
Line 986... | Line 968... | ||
986 | LD L,E |
968 | LD L,E |
987 | JP NEXT |
969 | JP NEXT |
988 | 970 | ||
989 | COD9 CP 9 |
971 | COD9 CP 9 |
990 | JR NZ,COD0D |
972 | JR NZ,COD0D |
991 | LD D,(HL) ;ТАБУЛЯЦИЯ НА N ПОЗИЦИЙ |
973 | LD D,(HL) ; табуляция на N позиций |
992 | INC HL |
974 | INC HL |
993 | LD A,D |
975 | LD A,D |
994 | ADD A,A |
976 | ADD A,A |
995 | ADD A,D |
977 | ADD A,D |
996 | ADD A,A |
978 | ADD A,A |
997 | LD D,A |
979 | LD D,A |
998 | XOR A |
- | |
999 | OUT (C),A |
980 | EVOPORT WIN_P2,RAM_NMI |
1000 | LD A,(ADRSTR_X) |
981 | LD A,(ADRSTR_X) |
1001 | ADD A,D |
982 | ADD A,D |
1002 | LD (ADRSTR_X),A |
983 | LD (ADRSTR_X),A |
1003 | JR NEXT |
984 | JR NEXT |
1004 | 985 | ||
1005 | COD0D CP 0X0D |
986 | COD0D CP 0x0D |
1006 | JR NZ,COD16 |
987 | JR NZ,COD16 |
1007 | XOR A |
- | |
1008 | OUT (C),A |
988 | EVOPORT WIN_P2,RAM_NMI |
1009 | LD A,(XNEW) ;ПЕРЕВОД СТРОКИ |
989 | LD A,(XNEW) ; перевод строки |
1010 | LD (ADRSTR_X),A |
990 | LD (ADRSTR_X),A |
1011 | LD A,(ADRSTR_Y) |
991 | LD A,(ADRSTR_Y) |
1012 | INC A |
992 | INC A |
1013 | LD (ADRSTR_Y),A |
993 | LD (ADRSTR_Y),A |
1014 | JP NEXT |
994 | JP NEXT |
1015 | 995 | ||
1016 | COD16 CP 0X16 |
996 | COD16 CP 0x16 |
1017 | JR NZ,COD17 |
997 | JR NZ,COD17 |
1018 | LD E,(HL) ;ПЕЧАТЬ В УКАЗАННОЙ ПОЗИЦИИ |
998 | LD E,(HL) ; печать в указанной позиции |
1019 | INC HL |
999 | INC HL |
1020 | LD D,(HL) |
1000 | LD D,(HL) |
1021 | INC HL |
1001 | INC HL |
1022 | XOR A |
- | |
1023 | OUT (C),A |
1002 | EVOPORT WIN_P2,RAM_NMI |
1024 | LD (ADRSTR_Y),DE |
1003 | LD (ADRSTR_Y),DE |
1025 | JP NEXT |
1004 | JP NEXT |
1026 | 1005 | ||
1027 | COD17 CP 0X17 |
1006 | COD17 CP 0x17 |
1028 | JR NZ,COD1 |
1007 | JR NZ,COD1 |
1029 | LD D,(HL) |
1008 | LD D,(HL) |
1030 | INC HL |
1009 | INC HL |
1031 | XOR A |
- | |
1032 | OUT (C),A |
1010 | EVOPORT WIN_P2,RAM_NMI |
1033 | LD A,D |
1011 | LD A,D |
1034 | LD (COLOR4SYM),A |
1012 | LD (COLOR4SYM),A |
1035 | JP NEXT |
1013 | JP NEXT |
1036 | 1014 | ||
1037 | ;КООРДИНАТА ПЕЧАТИ В ИСХОДНУЮ ПОЗИЦИЮ ОКНА |
1015 | ; координата печати в исходную позицию окна |
1038 | COD1 CP 1 |
1016 | COD1 CP 1 |
1039 | JP NZ,NEXT |
1017 | JP NZ,NEXT |
1040 | XOR A |
- | |
1041 | OUT (C),A |
1018 | EVOPORT WIN_P2,RAM_NMI |
1042 | LD A,(IX+0) |
1019 | LD A,(IX+_X_COORD) |
1043 | LD E,(IX+1) |
1020 | LD E,(IX+_Y_COORD) |
1044 | ADD A,A |
1021 | ADD A,A |
1045 | ADD A,A |
1022 | ADD A,A |
1046 | ADD A,A |
1023 | ADD A,A |
1047 | INC A |
1024 | INC A |
1048 | LD D,A |
1025 | LD D,A |
Line 1056... | Line 1033... | ||
1056 | CP 7 |
1033 | CP 7 |
1057 | JP Z,ITPRINT_A1 |
1034 | JP Z,ITPRINT_A1 |
1058 | CP 3 |
1035 | CP 3 |
1059 | RET NZ |
1036 | RET NZ |
1060 | EX AF,AF' |
1037 | EX AF,AF' |
1061 | LD BC,WIN_P6 |
1038 | LD BC,WIN_P2 |
1062 | LD HL,STOP_PRINTA |
1039 | LD HL,STOP_PRINTA |
1063 | ;ПЕЧАТЬ СИМВОЛА В "A" |
1040 | ; печать символа в "A" |
1064 | PRINTA EX AF,AF' |
1041 | PRINTA EX AF,AF' |
1065 | XOR A |
- | |
1066 | OUT (C),A |
1042 | EVOPORT WIN_P2,RAM_NMI |
1067 | PUSH HL |
1043 | PUSH HL |
1068 | LD H,A |
1044 | LD H,A |
1069 | EX AF,AF' |
1045 | EX AF,AF' |
1070 | LD L,A |
1046 | LD L,A |
1071 | ADD HL,HL |
1047 | ADD HL,HL |
Line 1083... | Line 1059... | ||
1083 | AND 7 |
1059 | AND 7 |
1084 | LD C,A |
1060 | LD C,A |
1085 | LD IY,SDVIG |
1061 | LD IY,SDVIG |
1086 | ADD IY,BC |
1062 | ADD IY,BC |
1087 | LD A,H |
1063 | LD A,H |
1088 | AND 0XF8 |
1064 | AND 0xF8 |
1089 | RRCA |
1065 | RRCA |
1090 | RRCA |
1066 | RRCA |
1091 | RRCA |
1067 | RRCA |
1092 | EX AF,AF' |
1068 | EX AF,AF' |
1093 | LD A,6 |
1069 | LD A,6 |
Line 1125... | Line 1101... | ||
1125 | EXX |
1101 | EXX |
1126 | LD L,A |
1102 | LD L,A |
1127 | LD H,0 |
1103 | LD H,0 |
1128 | JP (IY) |
1104 | JP (IY) |
1129 | 1105 | ||
- | 1106 | SDVIG |
|
1130 | SDVIG REPT 8 |
1107 | REPT 8 |
1131 | ADD HL,HL |
1108 | ADD HL,HL |
1132 | ENDM |
1109 | ENDM |
1133 | LD A,(DE) |
1110 | LD A,(DE) |
1134 | AND B |
1111 | AND B |
1135 | OR H |
1112 | OR H |
Line 1155... | Line 1132... | ||
1155 | LD A,H |
1132 | LD A,H |
1156 | RRCA |
1133 | RRCA |
1157 | RRCA |
1134 | RRCA |
1158 | RRCA |
1135 | RRCA |
1159 | AND 3 |
1136 | AND 3 |
1160 | OR 0X58 |
1137 | OR 0x58 |
1161 | LD H,A |
1138 | LD H,A |
1162 | LD (HL),E |
1139 | LD (HL),E |
1163 | PRINTA1 EXX |
1140 | PRINTA1 EXX |
1164 | XOR A |
- | |
1165 | OUT (C),A |
1141 | EVOPORT WIN_P2,RAM_NMI |
1166 | POP HL |
1142 | POP HL |
1167 | JP NEXT |
1143 | JP NEXT |
1168 | 1144 | ||
1169 | STOP_PRINTA DB 0 |
1145 | STOP_PRINTA DB 0 |
1170 | 1146 | ||
Line 1175... | Line 1151... | ||
1175 | DB %11110000,%00111111 |
1151 | DB %11110000,%00111111 |
1176 | DB %11111000,%00011111 |
1152 | DB %11111000,%00011111 |
1177 | DB %11111100,%00001111 |
1153 | DB %11111100,%00001111 |
1178 | DB %11111110,%00000111 |
1154 | DB %11111110,%00000111 |
1179 | 1155 | ||
1180 | ;РИСОВАЛКА ЦВЕТНОЙ ПОЛОСКИ В МЕНЮ |
1156 | ; рисовалка цветной полоски в меню |
1181 | COLOR_CURSOR LD HL,FLAGS |
1157 | COLOR_CURSOR LD HL,SYSFLAGS |
1182 | BIT B_VIDEO_MODE,(HL) |
1158 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
1183 | JP Z,COLORCURS4 |
1159 | JP Z,COLORCURS4 |
1184 | EVOPORT WIN_P3,0XF7 |
1160 | EVOPORT WIN_P3,VMODE7_0 |
1185 | LD B,(IX+3) |
1161 | LD B,(IX+_H_SIZE) |
1186 | LD DE,(COL_CURSOR) |
1162 | LD DE,(COL_CURSOR) |
1187 | CALL TRESTORE_CLINE |
1163 | CALL TRESTORE_CLINE |
1188 | COLORCURS6 LD A,(IX+7) |
1164 | COLORCURS6 LD A,(IX+_NUM_PKT) |
1189 | BIT 7,A |
1165 | BIT B_ADR_PUNKT,A |
1190 | JR Z,COLORCURS5 |
1166 | JR Z,COLORCURS5 |
1191 | LD L,(IX+8) |
1167 | LD L,(IX+_TEK_PKT_L) |
1192 | LD H,(IX+9) |
1168 | LD H,(IX+_TEK_PKT_H) |
1193 | LD A,(HL) |
1169 | LD A,(HL) |
1194 | COLORCURS5 LD D,(IX+0) |
1170 | COLORCURS5 LD D,(IX+_X_COORD) |
1195 | ADD A,(IX+1) |
1171 | ADD A,(IX+_Y_COORD) |
1196 | LD E,A |
1172 | LD E,A |
1197 | INC E |
1173 | INC E |
1198 | LD (COL_CURSOR),DE |
1174 | LD (COL_CURSOR),DE |
1199 | EVOPORT WIN_P3,0XF7 |
1175 | EVOPORT WIN_P3,VMODE7_0 |
1200 | LD B,(IX+3) |
1176 | LD B,(IX+_H_SIZE) |
1201 | CALL TSTORE_CLINE |
1177 | CALL TSTORE_CLINE |
1202 | LD A,(IX+5) |
1178 | LD A,(IX+_COLOR_CUR) |
1203 | AND 0XF8 |
1179 | AND 0xF8 |
1204 | LD C,A |
1180 | LD C,A |
1205 | PUSH HL |
1181 | PUSH HL |
1206 | PUSH DE |
1182 | PUSH DE |
1207 | PUSH BC |
1183 | PUSH BC |
1208 | LD (COL_CURSOR),DE |
1184 | LD (COL_CURSOR),DE |
1209 | CALL TDISP_ATTR |
1185 | CALL TDISP_ATTR |
1210 | LD A,D |
1186 | LD A,D |
1211 | XOR 0X10 |
1187 | XOR 0x10 |
1212 | LD H,A |
1188 | LD H,A |
1213 | LD A,D |
1189 | LD A,D |
1214 | AND 0X10 |
1190 | AND 0x10 |
1215 | REPT 4 |
1191 | RRCA |
- | 1192 | RRCA |
|
- | 1193 | RRCA |
|
1216 | RRCA |
1194 | RRCA |
1217 | ENDM |
- | |
1218 | ADD A,E |
1195 | ADD A,E |
1219 | LD L,A |
1196 | LD L,A |
1220 | TCOLORLINE2 EX DE,HL |
1197 | TCOLORLINE2 EX DE,HL |
1221 | LD A,(HL) |
1198 | LD A,(HL) |
1222 | AND 0XC7 |
1199 | AND 0xC7 |
1223 | OR C |
1200 | OR C |
1224 | LD (HL),A |
1201 | LD (HL),A |
1225 | INC HL |
1202 | INC HL |
1226 | DJNZ TCOLORLINE2 |
1203 | DJNZ TCOLORLINE2 |
1227 | POP BC |
1204 | POP BC |
1228 | POP DE |
1205 | POP DE |
1229 | POP HL |
1206 | POP HL |
1230 | RET |
1207 | RET |
1231 | 1208 | ||
1232 | ;РИСОВАНИЕ ЦВЕТНОЙ ПОЛОСЫ |
1209 | ; рисование цветной полосы |
1233 | ;D-X E-Y B-ДЛИНА C-ЦВЕТ |
1210 | ; D-X E-Y B-длина C-цвет |
1234 | TCOLOR_LINE PUSH HL |
1211 | TCOLOR_LINE PUSH HL |
1235 | PUSH DE |
1212 | PUSH DE |
1236 | PUSH BC |
1213 | PUSH BC |
1237 | LD (COL_CURSOR),DE |
1214 | LD (COL_CURSOR),DE |
1238 | CALL TDISP_ATTR |
1215 | CALL TDISP_ATTR |
1239 | LD A,D |
1216 | LD A,D |
1240 | XOR 0X10 |
1217 | XOR 0x10 |
1241 | LD H,A |
1218 | LD H,A |
1242 | LD A,D |
1219 | LD A,D |
1243 | AND 0X10 |
1220 | AND 0x10 |
1244 | REPT 4 |
1221 | REPT 4 |
1245 | RRCA |
1222 | RRCA |
1246 | ENDM |
1223 | ENDM |
1247 | ADD A,E |
1224 | ADD A,E |
1248 | LD L,A |
1225 | LD L,A |
Line 1255... | Line 1232... | ||
1255 | POP HL |
1232 | POP HL |
1256 | RET |
1233 | RET |
1257 | ; 00 01 02 03 04 05 06 |
1234 | ; 00 01 02 03 04 05 06 |
1258 | ;F1C0 E1C1 F1C1 E1C2 F1C2 E1C3 F1C3 |
1235 | ; F1C0 E1C1 F1C1 E1C2 F1C2 E1C3 F1C3 |
1259 | 1236 | ||
1260 | ;СОХРАНЕНИЕ ЧАСТИ ЭКРАНА ДЛЯ ВЫВОДА ЦВЕТНОЙ ЛИНИИ |
1237 | ; сохранение части экрана для вывода цветной линии |
1261 | ;D-X E-Y B-ДЛИНА |
1238 | ; D-X E-Y B-длина |
1262 | TSTORE_CLINE PUSH HL |
1239 | TSTORE_CLINE PUSH HL |
1263 | PUSH DE |
1240 | PUSH DE |
1264 | PUSH BC |
1241 | PUSH BC |
1265 | CALL TDISP_ATTR |
1242 | CALL TDISP_ATTR |
1266 | LD A,D |
1243 | LD A,D |
1267 | XOR 0X10 |
1244 | XOR 0x10 |
1268 | LD H,A |
1245 | LD H,A |
1269 | LD A,D |
1246 | LD A,D |
1270 | AND 0X10 |
1247 | AND 0x10 |
1271 | REPT 4 |
1248 | REPT 4 |
1272 | RRCA |
1249 | RRCA |
1273 | ENDM |
1250 | ENDM |
1274 | ADD A,E |
1251 | ADD A,E |
1275 | LD L,A |
1252 | LD L,A |
Line 1287... | Line 1264... | ||
1287 | POP BC |
1264 | POP BC |
1288 | POP DE |
1265 | POP DE |
1289 | POP HL |
1266 | POP HL |
1290 | RET |
1267 | RET |
1291 | 1268 | ||
1292 | ;ВОССТАНОВЛЕНИЕ ЧАСТИ ЭКРАНА ПОД ЦВЕТНОЙ ЛИНИЕЙ |
1269 | ; восстановление части экрана под цветной линией |
1293 | ;D-X E-Y B-ДЛИНА |
1270 | ; D-X E-Y B-длина |
1294 | TRESTORE_CLINE PUSH HL |
1271 | TRESTORE_CLINE PUSH HL |
1295 | PUSH DE |
1272 | PUSH DE |
1296 | PUSH BC |
1273 | PUSH BC |
1297 | LD B,(IX+3) |
1274 | LD B,(IX+_H_SIZE) |
1298 | LD DE,(COL_CURSOR) |
1275 | LD DE,(COL_CURSOR) |
1299 | CALL TDISP_ATTR |
1276 | CALL TDISP_ATTR |
1300 | LD A,D |
1277 | LD A,D |
1301 | XOR 0X10 |
1278 | XOR 0x10 |
1302 | LD H,A |
1279 | LD H,A |
1303 | LD A,D |
1280 | LD A,D |
1304 | AND 0X10 |
1281 | AND 0x10 |
1305 | REPT 4 |
1282 | REPT 4 |
1306 | RRCA |
1283 | RRCA |
1307 | ENDM |
1284 | ENDM |
1308 | ADD A,E |
1285 | ADD A,E |
1309 | LD L,A |
1286 | LD L,A |
Line 1321... | Line 1298... | ||
1321 | POP BC |
1298 | POP BC |
1322 | POP DE |
1299 | POP DE |
1323 | POP HL |
1300 | POP HL |
1324 | RET |
1301 | RET |
1325 | 1302 | ||
1326 | RESTORE_CLINE LD HL,FLAGS |
1303 | RESTORE_CLINE LD HL,SYSFLAGS |
1327 | BIT B_VIDEO_MODE,(HL) |
1304 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
1328 | JR NZ,TREST_CLINE |
1305 | JR NZ,TREST_CLINE |
1329 | LD DE,(COL_CURSOR) |
1306 | LD DE,(COL_CURSOR) |
1330 | LD HL,COLBUF |
1307 | LD HL,COLBUF |
1331 | LD C,(IX+3) |
1308 | LD C,(IX+_H_SIZE) |
1332 | LD B,0 |
1309 | LD B,0 |
1333 | LDIR |
1310 | LDIR |
1334 | RET |
1311 | RET |
1335 | 1312 | ||
- | 1313 | TREST_CLINE |
|
1336 | TREST_CLINE EVOPORT WIN_P3,0XF7 |
1314 | EVOPORT WIN_P3,VMODE7_0 |
1337 | LD B,(IX+3) |
1315 | LD B,(IX+_H_SIZE) |
1338 | LD DE,(COL_CURSOR) |
1316 | LD DE,(COL_CURSOR) |
1339 | JP TRESTORE_CLINE |
1317 | JP TRESTORE_CLINE |
1340 | 1318 | ||
1341 | COLORCURS4 LD DE,(COL_CURSOR) |
1319 | COLORCURS4 LD DE,(COL_CURSOR) |
1342 | LD HL,COLBUF |
1320 | LD HL,COLBUF |
1343 | LD C,(IX+3) |
1321 | LD C,(IX+_H_SIZE) |
1344 | ; BIT 2,(IY+55) ;ФАЙЛОВ БОЛЬШЕ ВЫСОТЫ ОКНА? |
1322 | ; BIT 2,(IY+55) ; файлов больше высоты окна? |
1345 | ; JR Z,COLCURS1 |
1323 | ; JR Z,COLCURS1 |
1346 | ; DEC C ;ЦВЕТНАЯ ПОЛОСКА НА 1 КОРОЧЕ |
1324 | ; DEC C ; цветная полоска на 1 короче |
1347 | COLCURS1 LD B,0 |
1325 | COLCURS1 LD B,0 |
1348 | LDIR |
1326 | LDIR |
1349 | SET_ADR_ATR LD HL,FLAGS |
1327 | SET_ADR_ATR |
- | 1328 | EVOPORT WIN_P3,VMODE7_0 |
|
- | 1329 | LD HL,SYSFLAGS |
|
1350 | BIT B_VIDEO_MODE,(HL) |
1330 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
1351 | JP NZ,COLORCURS6 |
1331 | JP NZ,COLORCURS6 |
1352 | LD A,(IX+7) |
1332 | BIT B_ADR_PUNKT,(IX+_NUM_PKT) |
1353 | BIT 7,A |
- | |
1354 | JR Z,COLCURS3 |
1333 | JR Z,COLCURS3 |
1355 | LD L,(IX+8) |
1334 | LD L,(IX+_TEK_PKT_L) |
1356 | LD H,(IX+9) |
1335 | LD H,(IX+_TEK_PKT_H) |
1357 | LD A,(HL) |
1336 | LD A,(HL) |
1358 | COLCURS3 ;LD B,A |
1337 | COLCURS3 LD H,(IX+_X_COORD) |
1359 | LD H,(IX+0) |
- | |
1360 | LD L,(IX+1) |
1338 | LD L,(IX+_Y_COORD) |
1361 | ADD A,L |
1339 | ADD A,L |
1362 | LD L,A |
1340 | LD L,A |
1363 | INC L |
1341 | INC L |
1364 | CALL ADRDIS |
1342 | CALL ADRDIS |
1365 | EX DE,HL |
1343 | EX DE,HL |
1366 | LD (COL_CURSOR),HL ;ПОЛОЖИЛИ АДРЕС ДЛЯ ВОССТАНОВЛЕНИЯ ЦВЕТА |
1344 | LD (COL_CURSOR),HL ; положили адрес для восстановления цвета |
1367 | LD DE,COLBUF |
1345 | LD DE,COLBUF |
1368 | LD B,(IX+3) |
1346 | LD B,(IX+_H_SIZE) |
1369 | ; BIT 2,(IY+55) ;ФАЙЛОВ БОЛЬШЕ ВЫСОТЫ ОКНА? |
1347 | ; BIT 2,(IY+55) ; файлов больше высоты окна? |
1370 | ; JR Z,COLCURS2 |
1348 | ; JR Z,COLCURS2 |
1371 | ; DEC B ;ЦВЕТНАЯ ПОЛОСКА НА 1 КОРОЧЕ |
1349 | ; DEC B ; цветная полоска на 1 короче |
1372 | COLCURS2 LD C,(IX+5) |
1350 | COLCURS2 LD C,(IX+_COLOR_CUR) |
1373 | LD A,(HL) |
1351 | .L1 LD A,(HL) |
1374 | LD (DE),A |
1352 | LD (DE),A |
1375 | LD (HL),C |
1353 | LD (HL),C |
1376 | INC L |
1354 | INC L |
1377 | INC E |
1355 | INC E |
1378 | DJNZ $-5 |
1356 | DJNZ .L1 |
1379 | RET |
1357 | RET |
1380 | 1358 | ||
1381 | ;H-X, L-Y |
1359 | ; H-X, L-Y |
1382 | ADRDIS LD C,A |
1360 | ADRDIS LD C,A |
1383 | LD A,L |
1361 | LD A,L |
1384 | AND 0X18 |
1362 | AND 0x18 |
1385 | OR 0X40 |
1363 | OR 0x40 |
1386 | EX AF,AF' |
1364 | EX AF,AF' |
1387 | LD A,L |
1365 | LD A,L |
1388 | AND 7 |
1366 | AND 7 |
1389 | RRCA |
1367 | RRCA |
1390 | RRCA |
1368 | RRCA |
Line 1397... | Line 1375... | ||
1397 | ADRATR LD A,H |
1375 | ADRATR LD A,H |
1398 | RRCA |
1376 | RRCA |
1399 | RRCA |
1377 | RRCA |
1400 | RRCA |
1378 | RRCA |
1401 | AND 3 |
1379 | AND 3 |
1402 | OR 0X58 |
1380 | OR 0x58 |
1403 | LD D,A |
1381 | LD D,A |
1404 | LD A,C |
1382 | LD A,C |
1405 | RET |
1383 | RET |
1406 | 1384 | ||
1407 | INC_H INC H |
1385 | INC_H INC H |
1408 | LD A,H |
1386 | LD A,H |
1409 | AND 7 |
1387 | AND 7 |
1410 | RET NZ |
1388 | RET NZ |
1411 | LD A,L |
1389 | LD A,L |
1412 | ADD A,0X20 |
1390 | ADD A,0x20 |
1413 | LD L,A |
1391 | LD L,A |
1414 | RET C |
1392 | RET C |
1415 | UMEHL1 LD A,H |
1393 | UMEHL1 LD A,H |
1416 | SUB 8 |
1394 | SUB 8 |
1417 | LD H,A |
1395 | LD H,A |
1418 | RET |
1396 | RET |
1419 | 1397 | ||
1420 | ;СДВИГ ОКНА ВВЕРХ |
1398 | ; сдвиг окна вверх |
1421 | SCRUP LD HL,FLAGS |
1399 | SCRUP LD HL,SYSFLAGS |
1422 | BIT B_VIDEO_MODE,(HL) |
1400 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
1423 | JP NZ,TSCRUP |
1401 | JP NZ,TSCRUP |
1424 | ;СДВИГ ОКНА ВВЕРХ (ZX) |
1402 | ; сдвиг окна вверх (ZX) |
1425 | PUSH IY |
1403 | PUSH IY |
1426 | PUSH IX |
1404 | PUSH IX |
1427 | EXX |
1405 | EXX |
1428 | LD A,(SCROLL_MODE) |
1406 | LD A,(SCROLL_MODE) |
1429 | LD E,A |
1407 | LD E,A |
1430 | EXX |
1408 | EXX |
1431 | LD L,(IX+1) |
1409 | LD L,(IX+_Y_COORD) |
1432 | INC L |
1410 | INC L |
1433 | CALL USTAN |
1411 | CALL USTAN |
1434 | ;СДВИГ ПИКСЕЛЕЙ ВВЕРХ |
1412 | ; сдвиг пикселей вверх |
1435 | SCRUP1 LD A,(IX+0X10) |
1413 | SCRUP1 LD A,(IX+0x10) |
1436 | ADD A,C |
1414 | ADD A,C |
1437 | LD L,A |
1415 | LD L,A |
1438 | LD H,(IX+0X11) |
1416 | LD H,(IX+0x11) |
1439 | LD A,(IX+0) |
1417 | LD A,(IX+0) |
1440 | ADD A,C |
1418 | ADD A,C |
1441 | LD E,A |
1419 | LD E,A |
1442 | LD D,(IX+1) |
1420 | LD D,(IX+1) |
1443 | PUSH BC |
1421 | PUSH BC |
Line 1446... | Line 1424... | ||
1446 | EXX |
1424 | EXX |
1447 | LD A,E |
1425 | LD A,E |
1448 | EXX |
1426 | EXX |
1449 | AND 1;A |
1427 | AND 1;A |
1450 | JR Z,SCRUP2 |
1428 | JR Z,SCRUP2 |
1451 | LD A,(IX+0X11) |
1429 | LD A,(IX+0x11) |
1452 | LD H,A |
1430 | LD H,A |
1453 | AND 7 |
1431 | AND 7 |
1454 | CP 7 |
1432 | CP 7 |
1455 | JR NZ,SCRUP2 |
1433 | JR NZ,SCRUP2 |
1456 | ;СДВИГ ВВЕРХ ЦВЕТОВОЙ СТРОКИ ПОСЛЕ ПЕРЕНОСА 7 ЛИНИЙ ЗНАКОРЯДА |
1434 | ; сдвиг вверх цветовой строки после переноса 7 линий знакоряда |
1457 | LD A,H |
1435 | LD A,H |
1458 | RRCA |
1436 | RRCA |
1459 | RRCA |
1437 | RRCA |
1460 | RRCA |
1438 | RRCA |
1461 | AND 3 |
1439 | AND 3 |
1462 | OR 0X58 |
1440 | OR 0x58 |
1463 | LD H,A |
1441 | LD H,A |
1464 | LD L,(IX+0X10) |
1442 | LD L,(IX+0x10) |
1465 | LD A,(IX+1) |
1443 | LD A,(IX+1) |
1466 | RRCA |
1444 | RRCA |
1467 | RRCA |
1445 | RRCA |
1468 | RRCA |
1446 | RRCA |
1469 | AND 3 |
1447 | AND 3 |
1470 | OR 0X58 |
1448 | OR 0x58 |
1471 | LD D,A |
1449 | LD D,A |
1472 | LD E,(IX+0) |
1450 | LD E,(IX+0) |
1473 | PUSH BC |
1451 | PUSH BC |
1474 | CALL LDIST |
1452 | CALL LDIST |
1475 | POP BC |
1453 | POP BC |
Line 1478... | Line 1456... | ||
1478 | DJNZ SCRUP1 |
1456 | DJNZ SCRUP1 |
1479 | SCRUP3 POP IX |
1457 | SCRUP3 POP IX |
1480 | POP IY |
1458 | POP IY |
1481 | RET |
1459 | RET |
1482 | 1460 | ||
1483 | ;СДВИГ ОКНА ВВЕРХ (TXT) |
1461 | ; сдвиг окна вверх (TXT) |
1484 | TSCRUP PUSH IY |
1462 | TSCRUP PUSH IY |
1485 | PUSH IX |
1463 | PUSH IX |
1486 | EVOPORT WIN_P3,0XF7 |
1464 | EVOPORT WIN_P3,VMODE7_0 |
1487 | LD A,(IX+2) |
1465 | LD A,(IX+_V_SIZE) |
1488 | SUB 3 |
1466 | SUB 3 |
1489 | LD B,A ;СКОЛЬКО СТРОК В ОКНЕ СКРОЛЛИРОВАТЬ |
1467 | LD B,A ; сколько строк в окне скроллировать |
1490 | LD C,(IX+3) ;ШИРИНА ОКНА |
1468 | LD C,(IX+_H_SIZE) ; ширина окна |
1491 | LD D,(IX+0) ;X КООРДИНАТА ЛЕВОГО ВЕРХНЕГО УГЛА ДЛЯ СКРОЛЛЕРА |
1469 | LD D,(IX+_X_COORD) ; X координата левого верхнего угла для скроллера |
1492 | LD E,(IX+1) |
1470 | LD E,(IX+_Y_COORD) |
1493 | INC E ;Y КООРДИНАТА ЛЕВОГО ВЕРХНЕГО УГЛА ДЛЯ СКРОЛЛЕРА |
1471 | INC E ; Y координата левого верхнего угла для скроллера |
1494 | LD A,E |
1472 | LD A,E |
1495 | ADD A,A |
1473 | ADD A,A |
1496 | ADD A,A |
1474 | ADD A,A |
1497 | EXX |
1475 | EXX |
1498 | LD C,A |
1476 | LD C,A |
1499 | LD B,0 |
1477 | LD B,0 |
1500 | LD IX,TBUFTSC |
1478 | LD IX,TBUFTSC |
1501 | ADD IX,BC ;IX=СПИСОК АДРЕСОВ НАЧАЛ СТРОК ДЛЯ СКРОЛЛЕРА |
1479 | ADD IX,BC ; IX=список адресов начал строк для скроллера |
1502 | EXX |
1480 | EXX |
1503 | LD A,C |
1481 | LD A,C |
1504 | AND 0XFE |
1482 | AND 0xFE |
1505 | NEG |
1483 | NEG |
1506 | LD H,A ;ШИРИНА ДЛЯ ЛЕВЫЙ СИМВОЛОВ |
1484 | LD H,A ; ширина для левый символов |
1507 | LD L,A ;ШИРИНА ДЛЯ ПРАВЫХ СИМВОЛОВ |
1485 | LD L,A ; ширина для правых символов |
1508 | BIT 0,C |
1486 | BIT 0,C |
1509 | JR Z,TSCRUP1 ;ЕСЛИ ШИРИНА ЧЕТНАЯ, НИЧЕГО НЕ ДЕЛАЕМ |
1487 | JR Z,TSCRUP1 ; если ширина четная, ничего не делаем |
1510 | DEC L |
1488 | DEC L |
1511 | DEC L |
1489 | DEC L |
1512 | BIT 0,D |
1490 | BIT 0,D |
1513 | JR NZ,TSCRUP1 |
1491 | JR NZ,TSCRUP1 |
1514 | LD A,H |
1492 | LD A,H |
Line 1521... | Line 1499... | ||
1521 | LD E,A |
1499 | LD E,A |
1522 | TSCRUP2 LD A,H |
1500 | TSCRUP2 LD A,H |
1523 | EXX |
1501 | EXX |
1524 | LD IY,LDI_END |
1502 | LD IY,LDI_END |
1525 | LD E,A |
1503 | LD E,A |
1526 | LD D,0XFF |
1504 | LD D,0xFF |
1527 | ADD IY,DE |
1505 | ADD IY,DE |
1528 | EXX |
1506 | EXX |
1529 | LD A,E |
1507 | LD A,E |
1530 | EXX |
1508 | EXX |
1531 | LD E,A |
1509 | LD E,A |
Line 1534... | Line 1512... | ||
1534 | LD H,(IX+5) |
1512 | LD H,(IX+5) |
1535 | LD A,E |
1513 | LD A,E |
1536 | ADD A,(IX+0) |
1514 | ADD A,(IX+0) |
1537 | LD E,A |
1515 | LD E,A |
1538 | LD D,(IX+1) |
1516 | LD D,(IX+1) |
1539 | CALL LDIST ;ПЕРЕНОС МОНОХРОМНОЙЙ СТРОКИ |
1517 | CALL LDIST ; перенос монохромнойй строки |
1540 | EXX |
1518 | EXX |
1541 | LD A,E |
1519 | LD A,E |
1542 | EXX |
1520 | EXX |
1543 | LD E,A |
1521 | LD E,A |
1544 | ADD A,(IX+4+100) |
1522 | ADD A,(IX+4+100) |
Line 1546... | Line 1524... | ||
1546 | LD H,(IX+5+100) |
1524 | LD H,(IX+5+100) |
1547 | LD A,E |
1525 | LD A,E |
1548 | ADD A,(IX+0+100) |
1526 | ADD A,(IX+0+100) |
1549 | LD E,A |
1527 | LD E,A |
1550 | LD D,(IX+1+100) |
1528 | LD D,(IX+1+100) |
1551 | CALL LDIST ;ПЕРЕНОС ЦВЕТНОЙ СТРОКИ |
1529 | CALL LDIST ; перенос цветной строки |
1552 | EXX |
1530 | EXX |
1553 | LD A,L |
1531 | LD A,L |
1554 | EXX |
1532 | EXX |
1555 | LD IY,LDI_END |
1533 | LD IY,LDI_END |
1556 | LD E,A |
1534 | LD E,A |
1557 | LD D,0XFF |
1535 | LD D,0xFF |
1558 | ADD IY,DE |
1536 | ADD IY,DE |
1559 | EXX |
1537 | EXX |
1560 | LD A,D |
1538 | LD A,D |
1561 | EXX |
1539 | EXX |
1562 | LD E,A |
1540 | LD E,A |
Line 1565... | Line 1543... | ||
1565 | LD H,(IX+7) |
1543 | LD H,(IX+7) |
1566 | LD A,E |
1544 | LD A,E |
1567 | ADD A,(IX+2) |
1545 | ADD A,(IX+2) |
1568 | LD E,A |
1546 | LD E,A |
1569 | LD D,(IX+3) |
1547 | LD D,(IX+3) |
1570 | CALL LDIST ;ПЕРЕНОС МОНОХРОМНОЙ СТРОКИ |
1548 | CALL LDIST ; перенос монохромной строки |
1571 | EXX |
1549 | EXX |
1572 | LD A,D |
1550 | LD A,D |
1573 | EXX |
1551 | EXX |
1574 | LD E,A |
1552 | LD E,A |
1575 | ADD A,(IX+6+100) |
1553 | ADD A,(IX+6+100) |
Line 1577... | Line 1555... | ||
1577 | LD H,(IX+7+100) |
1555 | LD H,(IX+7+100) |
1578 | LD A,E |
1556 | LD A,E |
1579 | ADD A,(IX+2+100) |
1557 | ADD A,(IX+2+100) |
1580 | LD E,A |
1558 | LD E,A |
1581 | LD D,(IX+3+100) |
1559 | LD D,(IX+3+100) |
1582 | CALL LDIST ;ПЕРЕНОС СТРОКИ ЦВЕТА |
1560 | CALL LDIST ; перенос строки цвета |
1583 | REPT 4 |
1561 | REPT 4 |
1584 | INC IX |
1562 | INC IX |
1585 | ENDM |
1563 | ENDM |
1586 | EXX |
1564 | EXX |
1587 | DJNZ TSCRUP2 |
1565 | DJNZ TSCRUP2 |
Line 1589... | Line 1567... | ||
1589 | POP IY |
1567 | POP IY |
1590 | RET |
1568 | RET |
1591 | 1569 | ||
1592 | ;0 2 4 6 8 |
1570 | ;0 2 4 6 8 |
1593 | ; 1 3 5 7 9 |
1571 | ; 1 3 5 7 9 |
1594 | ; ===== 3 НЕЧЕТ + 2 ЧЕТ |
1572 | ; ===== 3 нечет + 2 чет |
1595 | ;===== 2 НЕЧЕТ + 3 ЧЕТ |
1573 | ;===== 2 нечет + 3 чет |
1596 | ; ==== 2 НЕЧЕТ + 2 ЧЕТ |
1574 | ; ==== 2 нечет + 2 чет |
1597 | ;==== 2 НЕЧЕТ + 2 ЧЕТ |
1575 | ;==== 2 нечет + 2 чет |
1598 | ;0 2 4 6 8 |
1576 | ;0 2 4 6 8 |
1599 | ; 1 3 5 7 9 |
1577 | ; 1 3 5 7 9 |
1600 | 1578 | ||
1601 | ;C200 C201 C202 C203 C204 |
1579 | ;C200 C201 C202 C203 C204 |
1602 | ; D200 D201 D202 D203 D204 |
1580 | ; D200 D201 D202 D203 D204 |
1603 | ;---------------------------------------- |
1581 | ;---------------------------------------- |
1604 | ;C240 C241 C242 C243 C244 |
1582 | ;C240 C241 C242 C243 C244 |
1605 | ; D240 D241 D242 D243 D244 |
1583 | ; D240 D241 D242 D243 D244 |
1606 | 1584 | ||
1607 | ;СДВИГ ОКНА ВНИЗ |
1585 | ; сдвиг окна вниз |
1608 | TSCRDN DI |
1586 | TSCRDN DI |
1609 | PUSH IX |
1587 | PUSH IX |
1610 | PUSH IY |
1588 | PUSH IY |
1611 | EVOPORT WIN_P3,0XF7 |
1589 | EVOPORT WIN_P3,VMODE7_0 |
1612 | LD A,(IX+2) |
1590 | LD A,(IX+_V_SIZE) |
1613 | SUB 3 |
1591 | SUB 3 |
1614 | LD B,A ;СКОЛЬКО СТРОК В ОКНЕ СКРОЛЛИРОВАТЬ |
1592 | LD B,A ; сколько строк в окне скроллировать |
1615 | LD C,(IX+3) ;ШИРИНА ОКНА |
1593 | LD C,(IX+_H_SIZE) ; ширина окна |
1616 | LD D,(IX+0) ;X КООРДИНАТА ЛЕВОГО ВЕРХНЕГО УГЛА ДЛЯ СКРОЛЛЕРА |
1594 | LD D,(IX+_X_COORD) ; X координата левого верхнего угла для скроллера |
1617 | LD A,(IX+1) |
1595 | LD A,(IX+_Y_COORD) |
1618 | ADD A,(IX+2) |
1596 | ADD A,(IX+_V_SIZE) |
1619 | SUB 2 |
1597 | SUB 2 |
1620 | LD E,A ;Y КООРДИНАТА ЛЕВОГО ВЕРХНЕГО УГЛА ДЛЯ СКРОЛЛЕРА |
1598 | LD E,A ; Y координата левого верхнего угла для скроллера |
1621 | ADD A,A |
1599 | ADD A,A |
1622 | ADD A,A |
1600 | ADD A,A |
1623 | EXX |
1601 | EXX |
1624 | LD C,A |
1602 | LD C,A |
1625 | LD B,0 |
1603 | LD B,0 |
1626 | LD IX,TBUFTSC |
1604 | LD IX,TBUFTSC |
1627 | ADD IX,BC ;IX=СПИСОК АДРЕСОВ НАЧАЛ СТРОК ДЛЯ СКРОЛЛЕРА |
1605 | ADD IX,BC ; IX=список адресов начал строк для скроллера |
1628 | EXX |
1606 | EXX |
1629 | LD A,C |
1607 | LD A,C |
1630 | AND 0XFE |
1608 | AND 0xFE |
1631 | NEG |
1609 | NEG |
1632 | LD H,A ;ШИРИНА ДЛЯ ЛЕВЫЙ СИМВОЛОВ |
1610 | LD H,A ; ширина для левый символов |
1633 | LD L,A ;ШИРИНА ДЛЯ ПРАВЫХ СИМВОЛОВ |
1611 | LD L,A ; ширина для правых символов |
1634 | BIT 0,C |
1612 | BIT 0,C |
1635 | JR Z,TSCRDN1 |
1613 | JR Z,TSCRDN1 |
1636 | DEC L |
1614 | DEC L |
1637 | DEC L |
1615 | DEC L |
1638 | BIT 0,D |
1616 | BIT 0,D |
Line 1643... | Line 1621... | ||
1643 | TSCRDN1 LD A,D |
1621 | TSCRDN1 LD A,D |
1644 | SRL A |
1622 | SRL A |
1645 | LD D,A |
1623 | LD D,A |
1646 | ADC A,0 |
1624 | ADC A,0 |
1647 | LD E,A |
1625 | LD E,A |
- | 1626 | TSCRDN2 |
|
1648 | TSCRDN2 REPT 4 |
1627 | REPT 4 |
1649 | DEC IX |
1628 | DEC IX |
1650 | ENDM |
1629 | ENDM |
1651 | LD A,H |
1630 | LD A,H |
1652 | EXX |
1631 | EXX |
1653 | LD IY,LDI_END |
1632 | LD IY,LDI_END |
1654 | LD E,A |
1633 | LD E,A |
1655 | LD D,0XFF |
1634 | LD D,0xFF |
1656 | ADD IY,DE |
1635 | ADD IY,DE |
1657 | EXX |
1636 | EXX |
1658 | LD A,E |
1637 | LD A,E |
1659 | EXX |
1638 | EXX |
1660 | LD E,A |
1639 | LD E,A |
Line 1663... | Line 1642... | ||
1663 | LD H,(IX+1) |
1642 | LD H,(IX+1) |
1664 | LD A,E |
1643 | LD A,E |
1665 | ADD A,(IX+4) |
1644 | ADD A,(IX+4) |
1666 | LD E,A |
1645 | LD E,A |
1667 | LD D,(IX+5) |
1646 | LD D,(IX+5) |
1668 | CALL LDIST ;ПЕРЕНОС МОХОРОМНОЙ СТРОКИ |
1647 | CALL LDIST ; перенос мохоромной строки |
1669 | EXX |
1648 | EXX |
1670 | LD A,E |
1649 | LD A,E |
1671 | EXX |
1650 | EXX |
1672 | LD E,A |
1651 | LD E,A |
1673 | ADD A,(IX+0+100) |
1652 | ADD A,(IX+0+100) |
Line 1675... | Line 1654... | ||
1675 | LD H,(IX+1+100) |
1654 | LD H,(IX+1+100) |
1676 | LD A,E |
1655 | LD A,E |
1677 | ADD A,(IX+4+100) |
1656 | ADD A,(IX+4+100) |
1678 | LD E,A |
1657 | LD E,A |
1679 | LD D,(IX+5+100) |
1658 | LD D,(IX+5+100) |
1680 | CALL LDIST ;ПЕРЕНОС ЦВЕТНОЙ СТРОКИ |
1659 | CALL LDIST ; перенос цветной строки |
1681 | EXX |
1660 | EXX |
1682 | LD A,L |
1661 | LD A,L |
1683 | EXX |
1662 | EXX |
1684 | LD IY,LDI_END |
1663 | LD IY,LDI_END |
1685 | LD E,A |
1664 | LD E,A |
1686 | LD D,0XFF |
1665 | LD D,0xFF |
1687 | ADD IY,DE |
1666 | ADD IY,DE |
1688 | EXX |
1667 | EXX |
1689 | LD A,D |
1668 | LD A,D |
1690 | EXX |
1669 | EXX |
1691 | LD E,A |
1670 | LD E,A |
Line 1694... | Line 1673... | ||
1694 | LD H,(IX+3) |
1673 | LD H,(IX+3) |
1695 | LD A,E |
1674 | LD A,E |
1696 | ADD A,(IX+6) |
1675 | ADD A,(IX+6) |
1697 | LD E,A |
1676 | LD E,A |
1698 | LD D,(IX+7) |
1677 | LD D,(IX+7) |
1699 | CALL LDIST ;ПЕРЕНОС МОНОХРОМНОЙ СТРОКИ |
1678 | CALL LDIST ; перенос монохромной строки |
1700 | EXX |
1679 | EXX |
1701 | LD A,D |
1680 | LD A,D |
1702 | EXX |
1681 | EXX |
1703 | LD E,A |
1682 | LD E,A |
1704 | ADD A,(IX+2+100) |
1683 | ADD A,(IX+2+100) |
Line 1706... | Line 1685... | ||
1706 | LD H,(IX+3+100) |
1685 | LD H,(IX+3+100) |
1707 | LD A,E |
1686 | LD A,E |
1708 | ADD A,(IX+6+100) |
1687 | ADD A,(IX+6+100) |
1709 | LD E,A |
1688 | LD E,A |
1710 | LD D,(IX+7+100) |
1689 | LD D,(IX+7+100) |
1711 | CALL LDIST ;ПЕРЕНОС ЦВЕТНОЙ СТРОКИ |
1690 | CALL LDIST ; перенос цветной строки |
1712 | EXX |
1691 | EXX |
1713 | DJNZ TSCRDN2 |
1692 | DJNZ TSCRDN2 |
1714 | POP IY |
1693 | POP IY |
1715 | POP IX |
1694 | POP IX |
1716 | RET |
1695 | RET |
1717 | 1696 | ||
1718 | SCRDN LD HL,FLAGS |
1697 | SCRDN LD HL,SYSFLAGS |
1719 | BIT B_VIDEO_MODE,(HL) |
1698 | BIT SYSFLAGS.B_VIDEO_MODE,(HL) |
1720 | JP NZ,TSCRDN |
1699 | JP NZ,TSCRDN |
1721 | ;СКРОЛЛ ОКНА ВВЕРХ (ZX) |
1700 | ; скролл окна вверх (ZX) |
1722 | PUSH IX |
1701 | PUSH IX |
1723 | PUSH IY |
1702 | PUSH IY |
1724 | EXX |
1703 | EXX |
1725 | LD A,(SCROLL_MODE) |
1704 | LD A,(SCROLL_MODE) |
1726 | LD E,A |
1705 | LD E,A |
1727 | EXX |
1706 | EXX |
1728 | LD A,(IX+2) |
1707 | LD A,(IX+_V_SIZE) |
1729 | ADD A,(IX+1) |
1708 | ADD A,(IX+_Y_COORD) |
1730 | SUB 2 |
1709 | SUB 2 |
1731 | LD L,A |
1710 | LD L,A |
1732 | CALL USTAN |
1711 | CALL USTAN |
1733 | DEC IX |
1712 | DEC IX |
1734 | DEC IX |
1713 | DEC IX |
1735 | SCRDN1 LD A,(IX+0) |
1714 | SCRDN1 LD A,(IX+0) |
1736 | ADD A,C |
1715 | ADD A,C |
1737 | LD L,A |
1716 | LD L,A |
1738 | LD H,(IX+1) |
1717 | LD H,(IX+1) |
1739 | LD A,(IX+0X10) |
1718 | LD A,(IX+0x10) |
1740 | ADD A,C |
1719 | ADD A,C |
1741 | LD E,A |
1720 | LD E,A |
1742 | LD D,(IX+0X11) |
1721 | LD D,(IX+0x11) |
1743 | PUSH BC |
1722 | PUSH BC |
1744 | CALL LDIST |
1723 | CALL LDIST |
1745 | POP BC |
1724 | POP BC |
1746 | EXX |
1725 | EXX |
1747 | LD A,E |
1726 | LD A,E |
Line 1756... | Line 1735... | ||
1756 | LD A,H |
1735 | LD A,H |
1757 | RRCA |
1736 | RRCA |
1758 | RRCA |
1737 | RRCA |
1759 | RRCA |
1738 | RRCA |
1760 | AND 3 |
1739 | AND 3 |
1761 | OR 0X58 |
1740 | OR 0x58 |
1762 | LD H,A |
1741 | LD H,A |
1763 | LD L,(IX+0) |
1742 | LD L,(IX+0) |
1764 | LD A,(IX+0X11) |
1743 | LD A,(IX+0x11) |
1765 | RRCA |
1744 | RRCA |
1766 | RRCA |
1745 | RRCA |
1767 | RRCA |
1746 | RRCA |
1768 | AND 3 |
1747 | AND 3 |
1769 | OR 0X58 |
1748 | OR 0x58 |
1770 | LD D,A |
1749 | LD D,A |
1771 | LD E,(IX+0X10) |
1750 | LD E,(IX+0x10) |
1772 | PUSH BC |
1751 | PUSH BC |
1773 | CALL LDIST |
1752 | CALL LDIST |
1774 | POP BC |
1753 | POP BC |
1775 | SCRDN2 DEC IX |
1754 | SCRDN2 DEC IX |
1776 | DEC IX |
1755 | DEC IX |
1777 | DJNZ SCRDN1 |
1756 | DJNZ SCRDN1 |
1778 | POP IY |
1757 | POP IY |
1779 | POP IX |
1758 | POP IX |
1780 | RET |
1759 | RET |
1781 | 1760 | ||
1782 | ;УСТАНОВКИ ДЛЯ СКРОЛЛЕРА ОКНА |
1761 | ; установки для скроллера окна |
1783 | USTAN LD A,(IX+3) |
1762 | USTAN LD A,(IX+_H_SIZE) |
1784 | ADD A,A |
1763 | ADD A,A |
1785 | LD E,A |
1764 | LD E,A |
1786 | LD A,L |
1765 | LD A,L |
1787 | LD D,0 |
1766 | LD D,0 |
1788 | LD HL,LDI_END |
1767 | LD HL,LDI_END |
1789 | AND A |
1768 | AND A |
1790 | SBC HL,DE |
1769 | SBC HL,DE |
1791 | PUSH HL |
1770 | PUSH HL |
1792 | POP IY |
1771 | POP IY |
1793 | LD C,(IX+0) |
1772 | LD C,(IX+_X_COORD) |
1794 | LD L,A |
1773 | LD L,A |
1795 | LD A,(IX+2) |
1774 | LD A,(IX+_V_SIZE) |
1796 | SUB 3 |
1775 | SUB 3 |
1797 | ADD A,A |
1776 | ADD A,A |
1798 | ADD A,A |
1777 | ADD A,A |
1799 | ADD A,A |
1778 | ADD A,A |
1800 | LD B,A |
1779 | LD B,A |
Line 1806... | Line 1785... | ||
1806 | EX DE,HL |
1785 | EX DE,HL |
1807 | ADD IX,DE |
1786 | ADD IX,DE |
1808 | ADD IX,DE |
1787 | ADD IX,DE |
1809 | RET |
1788 | RET |
1810 | 1789 | ||
1811 | LDIST DB 0XFD |
1790 | LDIST JP (IY) |
1812 | JP (HL) |
- | |
1813 | REPT 80 |
1791 | REPT 80 |
1814 | LDI |
1792 | LDI |
1815 | ENDM |
1793 | ENDM |
1816 | LDI_END RET |
1794 | LDI_END RET |
1817 | 1795 |