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 |