Rev 1120 | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1120 | Rev 1186 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | 1 | ||
2 | ; LAST UPDATE: 12.02.2024 savelij |
2 | ; LAST UPDATE: 14.02.2025 savelij |
3 | 3 | ||
4 | TITLE "addons.a80 ROM_RST82" |
4 | TITLE "addons.a80 ROM_RST82" |
5 | 5 | ||
6 | DRV_VAR EQU 0x4000 |
6 | DRV_VAR EQU 0x4000 |
7 | 7 | ||
8 | PHASE 0 |
8 | PHASE 0 |
9 | JP $ |
9 | JP $ |
10 | 10 | ||
11 | DUPL ADR_SEL_ROM-$,0xFF |
11 | DB ADR_SEL_ROM-$ DUP 0xFF |
12 | OUT (C),A |
12 | OUT (C),A |
13 | NOP |
13 | NOP |
14 | RET |
14 | RET |
15 | 15 | ||
16 | DUPL 0x0030-$,0xFF |
16 | DB 0x0030-$ DUP 0xFF |
17 | JP CALL2PAGE |
17 | JP CALL2PAGE |
18 | 18 | ||
19 | DUPL 0x0038-$,0xFF ; 0038 |
19 | DB 0x0038-$ DUP 0xFF ; 0038 |
20 | PUSH HL |
20 | PUSH HL |
21 | LD HL,(ADR_INT) |
21 | LD HL,(ADR_INT) |
22 | EX (SP),HL |
22 | EX (SP),HL |
23 | RET |
23 | RET |
24 | 24 | ||
Line 26... | Line 26... | ||
26 | RET |
26 | RET |
27 | 27 | ||
28 | JP UNPACK_DOS_FE |
28 | JP UNPACK_DOS_FE |
29 | JP INST_SONGLN |
29 | JP INST_SONGLN |
30 | 30 | ||
31 | DUPL 0x0080-$,0xFF |
31 | DB 0x0080-$ DUP 0xFF |
32 | binclude ../../dec40.bin |
32 | binclude ../../dec40.bin |
33 | 33 | ||
34 | DUPL 0x00FF-$,0xFF |
34 | DB 0x00FF-$ DUP 0xFF |
35 | DW 0x0038 |
35 | DW 0x0038 |
36 | 36 | ||
37 | ; ============================SD карта удалена============================ |
37 | ; ============================SD карта удалена============================ |
- | 38 | SDCARD_LOST |
|
38 | SDCARD_LOST DB 0x08,0x08,0x04,0x10,0x17,0,%00000000,0 |
39 | WINHDR 0x08,0x08,0x04,0x10,0x17,0,%00000000,0, \ |
39 | DW 0,0 |
- | |
40 | DW TXT_SDLOST,0,0,0 |
40 | 0,0,.TXT_SDLOST,0,0,0 |
- | 41 | ||
41 | TXT_SDLOST DB 0x17,0xFF,0x0D,3,"SD card lost",0x0D,3,"Press RESET",0 |
42 | .TXT_SDLOST DB "\x17\xFF\r\x03SD card lost\r\x03Press RESET",0 |
42 | ; ============================SD карта удалена============================ |
43 | ; ============================SD карта удалена============================ |
43 | 44 | ||
44 | ; ========================мышиный курсор в двух видах===================== |
45 | ; ========================мышиный курсор в двух видах===================== |
45 | SPRAR DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x50,0x03,0x48,0x01,0x4C,0x01,0x70,0x07,0x00 |
46 | SPRAR DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x50,0x03,0x48,0x01,0x4C,0x01,0x70,0x07,0x00 |
46 | SPRAR2 DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x70,0x03,0x78,0x01,0x7C,0x01,0x70,0x07,0x00 |
47 | SPRAR2 DB 0x3F,0x00,0x1F,0x40,0x0F,0x60,0x07,0x70,0x03,0x78,0x01,0x7C,0x01,0x70,0x07,0x00 |
47 | ; ========================мышиный курсор в двух видах===================== |
48 | ; ========================мышиный курсор в двух видах===================== |
48 | 49 | ||
49 | DUPL 0x0200-$,0xFF |
50 | DB 0x0200-$ DUP 0xFF |
50 | CHARS binclude altstd.bin |
51 | CHARS binclude altstd.bin |
51 | 52 | ||
52 | BUFTSC DW 0x4000,0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700 |
53 | BUFTSC DW 0x4000,0x4100,0x4200,0x4300,0x4400,0x4500,0x4600,0x4700 |
53 | DW 0x4020,0x4120,0x4220,0x4320,0x4420,0x4520,0x4620,0x4720 |
54 | DW 0x4020,0x4120,0x4220,0x4320,0x4420,0x4520,0x4620,0x4720 |
54 | DW 0x4040,0x4140,0x4240,0x4340,0x4440,0x4540,0x4640,0x4740 |
55 | DW 0x4040,0x4140,0x4240,0x4340,0x4440,0x4540,0x4640,0x4740 |
Line 209... | Line 210... | ||
209 | ; палитра для SPECTRUM режима |
210 | ; палитра для SPECTRUM режима |
210 | TRSTPAL DB 0x00,0x21,0x42,0x63,0x90,0xB1,0xD2,0xF3 |
211 | TRSTPAL DB 0x00,0x21,0x42,0x63,0x90,0xB1,0xD2,0xF3 |
211 | DB 0xE0,0xE1,0xE2,0xE3,0xF0,0xF1,0xF2,0xF3 |
212 | DB 0xE0,0xE1,0xE2,0xE3,0xF0,0xF1,0xF2,0xF3 |
212 | 213 | ||
213 | SETUP_PAL1 LD HL,(RREG_L) |
214 | SETUP_PAL1 LD HL,(RREG_L) |
214 | LD DE,EXTERN_PAL-CPU6 |
215 | LD DE,EXTERN_PAL-CPU2 |
215 | LD BC,0x10 |
216 | LD BC,0x10 |
216 | ROMCALL LDIR_BYTES,ROM_RST83 |
217 | ROMCALL LDIR_BYTES,ROM_RST83 |
217 | LD HL,EXTERN_PAL |
218 | LD HL,EXTERN_PAL |
218 | JR RESTOREPAL1 |
219 | JR RESTOREPAL1 |
219 | 220 | ||
Line 298... | Line 299... | ||
298 | DW Y_OFFSET + 7 + (X_OFFSET + 3 + 9 ) * 0x100 ; IY |
299 | DW Y_OFFSET + 7 + (X_OFFSET + 3 + 9 ) * 0x100 ; IY |
299 | DW Y_OFFSET + 8 + (X_OFFSET + 5 ) * 0x100 ; INT EI/DI |
300 | DW Y_OFFSET + 8 + (X_OFFSET + 5 ) * 0x100 ; INT EI/DI |
300 | DW Y_OFFSET + 8 + (X_OFFSET + 3 + 10 ) * 0x100 ; INT IM 1/2 |
301 | DW Y_OFFSET + 8 + (X_OFFSET + 3 + 10 ) * 0x100 ; INT IM 1/2 |
301 | DW Y_OFFSET + 11 + (X_OFFSET + 6 ) * 0x100 ; CPU3 MAP0 |
302 | DW Y_OFFSET + 11 + (X_OFFSET + 6 ) * 0x100 ; CPU3 MAP0 |
302 | DW Y_OFFSET + 11 + (X_OFFSET + 6 + 3 ) * 0x100 ; CPU3 MAP1 |
303 | DW Y_OFFSET + 11 + (X_OFFSET + 6 + 3 ) * 0x100 ; CPU3 MAP1 |
303 | DW Y_OFFSET + 12 + (X_OFFSET + 6 ) * 0x100 ; CPU6 MAP0 |
304 | DW Y_OFFSET + 12 + (X_OFFSET + 6 ) * 0x100 ; CPU2 MAP0 |
304 | DW Y_OFFSET + 12 + (X_OFFSET + 6 + 3 ) * 0x100 ; CPU6 MAP1 |
305 | DW Y_OFFSET + 12 + (X_OFFSET + 6 + 3 ) * 0x100 ; CPU2 MAP1 |
305 | DW Y_OFFSET + 13 + (X_OFFSET + 6 ) * 0x100 ; CPU5 MAP0 |
306 | DW Y_OFFSET + 13 + (X_OFFSET + 6 ) * 0x100 ; CPU5 MAP0 |
306 | DW Y_OFFSET + 13 + (X_OFFSET + 6 + 3 ) * 0x100 ; CPU5 MAP1 |
307 | DW Y_OFFSET + 13 + (X_OFFSET + 6 + 3 ) * 0x100 ; CPU5 MAP1 |
307 | DW Y_OFFSET + 14 + (X_OFFSET + 6 ) * 0x100 ; CPU0 MAP0 |
308 | DW Y_OFFSET + 14 + (X_OFFSET + 6 ) * 0x100 ; CPU0 MAP0 |
308 | DW Y_OFFSET + 14 + (X_OFFSET + 6 + 3 ) * 0x100 ; CPU0 MAP1 |
309 | DW Y_OFFSET + 14 + (X_OFFSET + 6 + 3 ) * 0x100 ; CPU0 MAP1 |
309 | DW Y_OFFSET + 16 + (X_OFFSET + 5 ) * 0x100 ; PORT 7FFD |
310 | DW Y_OFFSET + 16 + (X_OFFSET + 5 ) * 0x100 ; PORT 7FFD |
Line 351... | Line 352... | ||
351 | LD HL,(NREG_IXL) |
352 | LD HL,(NREG_IXL) |
352 | CALL PRINT_REGS ; IX |
353 | CALL PRINT_REGS ; IX |
353 | LD HL,(NREG_IYL) |
354 | LD HL,(NREG_IYL) |
354 | CALL PRINT_REGS ; IY |
355 | CALL PRINT_REGS ; IY |
355 | LD A,(INT_MODE) |
356 | LD A,(INT_MODE) |
356 | ADD A,"0" |
357 | ADD A,'0' |
357 | CALL PRINT_1NUM ; INT ON/OFF |
358 | CALL PRINT_1NUM ; INT ON/OFF |
358 | LD A,(NUM_IM) |
359 | LD A,(NUM_IM) |
359 | ADD A,"1" |
360 | ADD A,'1' |
360 | CALL PRINT_1NUM ; IM 1/2 |
361 | CALL PRINT_1NUM ; IM 1/2 |
361 | LD A,(B0_CPU3) |
362 | LD A,(B0_CPU3) |
362 | CALL PRINT_REG ; CPU3 MAP0 |
363 | CALL PRINT_REG ; CPU3 MAP0 |
363 | LD A,(B1_CPU3) |
364 | LD A,(B1_CPU3) |
364 | CALL PRINT_REG ; CPU3 MAP1 |
365 | CALL PRINT_REG ; CPU3 MAP1 |
365 | LD A,(B0_CPU2) |
366 | LD A,(B0_CPU2) |
366 | CALL PRINT_REG ; CPU6 MAP0 |
367 | CALL PRINT_REG ; CPU2 MAP0 |
367 | LD A,(B1_CPU2) |
368 | LD A,(B1_CPU2) |
368 | CALL PRINT_REG ; CPU6 MAP1 |
369 | CALL PRINT_REG ; CPU2 MAP1 |
369 | LD A,(B0_CPU1) |
370 | LD A,(B0_CPU1) |
370 | CALL PRINT_REG ; CPU5 MAP0 |
371 | CALL PRINT_REG ; CPU5 MAP0 |
371 | LD A,(B1_CPU1) |
372 | LD A,(B1_CPU1) |
372 | CALL PRINT_REG ; CPU5 MAP1 |
373 | CALL PRINT_REG ; CPU5 MAP1 |
373 | LD A,(B0_CPU0) |
374 | LD A,(B0_CPU0) |
Line 398... | Line 399... | ||
398 | AND 0x10 |
399 | AND 0x10 |
399 | RRCA |
400 | RRCA |
400 | RRCA |
401 | RRCA |
401 | RRCA |
402 | RRCA |
402 | RRCA |
403 | RRCA |
403 | ADD A,"0" |
404 | ADD A,'0' |
404 | CALL PRINT_1NUM |
405 | CALL PRINT_1NUM |
405 | IN A,(0xFF) |
406 | IN A,(0xFF) |
406 | AND %00111111 |
407 | AND %00111111 |
407 | CALL PRINT_REG |
408 | CALL PRINT_REG |
408 | IN A,(0x7F) |
409 | IN A,(0x7F) |
Line 441... | Line 442... | ||
441 | JP PRTT_A_ |
442 | JP PRTT_A_ |
442 | 443 | ||
443 | ; установка режимов |
444 | ; установка режимов |
444 | SET_MODE LD A,(RREG_A) |
445 | SET_MODE LD A,(RREG_A) |
445 | ISET_MODE AND A |
446 | ISET_MODE AND A |
446 | JR Z,SET_MODE4 ; если 0 то получение режима |
447 | JR Z,.L5 ; если 0 то получение режима |
447 | LD E,A |
448 | LD E,A |
448 | LD (TEK_MODES),A ; сохранили устанавливаемые режимы |
449 | LD (TEK_MODES),A ; сохранили устанавливаемые режимы |
449 | AND %00000111 |
450 | AND %00000111 |
450 | JR Z,.L4 |
451 | JR Z,.L4 |
451 | ; установка номера экрана |
452 | ; установка номера экрана |
Line 482... | Line 483... | ||
482 | EXX |
483 | EXX |
483 | .L3 LD A,E |
484 | .L3 LD A,E |
484 | RRCA |
485 | RRCA |
485 | RRCA |
486 | RRCA |
486 | AND 3 ; выделили биты режима памяти |
487 | AND 3 ; выделили биты режима памяти |
487 | JR Z,SET_MODE4 ; если 0 то режим памяти не меняем |
488 | JR Z,.L5 ; если 0 то режим памяти не меняем |
488 | ; смена режима памяти |
489 | ; смена режима памяти |
489 | DEC A |
490 | DEC A |
490 | LD HL,0x0000 ; память 1024К |
491 | LD HL,0x0000 ; память 1024К |
491 | JR Z,.L1 |
492 | JR Z,.L1 |
492 | DEC A |
493 | DEC A |
Line 501... | Line 502... | ||
501 | AND %11111011 |
502 | AND %11111011 |
502 | OR L |
503 | OR L |
503 | LD (R_EFF7),A |
504 | LD (R_EFF7),A |
504 | RET |
505 | RET |
505 | 506 | ||
506 | SET_MODE4 LD A,(TEK_MODES) |
507 | .L5 LD A,(TEK_MODES) |
507 | LD (RREG_A),A |
508 | LD (RREG_A),A |
508 | RET |
509 | RET |
509 | 510 | ||
510 | ; дефолтные значения для кмос |
511 | ; дефолтные значения для кмос |
511 | ; ED EC EB EA E9 E8 |
512 | ; ED EC EB EA E9 E8 |
Line 536... | Line 537... | ||
536 | PACK_DOS_FE binclude ../../page1/dos_fe_pack.rom |
537 | PACK_DOS_FE binclude ../../page1/dos_fe_pack.rom |
537 | DEPHASE |
538 | DEPHASE |
538 | 539 | ||
539 | FREE_ADDONS EQU 0x3FF6-$ |
540 | FREE_ADDONS EQU 0x3FF6-$ |
540 | 541 | ||
541 | DUPL FREE_ADDONS,0xFF |
542 | DB FREE_ADDONS DUP 0xFF |
542 | DW FREE_ADDONS ; размер свободного места |
543 | DW FREE_ADDONS ; размер свободного места |
543 | DB "ADDONS" |
544 | DB "ADDONS" |
544 | DW DATA_VERS |
545 | DW DATA_VERS |
545 | DEPHASE |
546 | DEPHASE |