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