Subversion Repositories pentevo

Rev

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