Subversion Repositories pentevo

Rev

Rev 1041 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
507 savelij 1
 
1120 savelij 2
; LAST UPDATE: 14.10.2023 savelij
507 savelij 3
 
764 savelij 4
PAGE   
831 savelij 5
        TITLE "rst8service.a80 ROM_RST83"
764 savelij 6
 
507 savelij 7
                include ../../macros.a80
585 savelij 8
                include ../../define.a80
507 savelij 9
                include ../../global_vars.a80
781 savelij 10
                include ../../ports_ide.a80
516 savelij 11
                include ../../ports_ngs.a80
12
                include ../../sdcomand.a80
961 savelij 13
 
14
 INIT_VAR BUF_TEKVOL
573 savelij 15
                include ../../fat_vars.a80
961 savelij 16
 
702 savelij 17
                include ../../bootsecfat.a80
764 savelij 18
                include ../../evodos_vars.a80
795 savelij 19
                include ../../tmpkeys.a80
831 savelij 20
                include ../../nums_devices.a80
839 savelij 21
                include ../../version.a80
952 savelij 22
                include ../../cmd_cdhdd.a80
961 savelij 23
                include ../../fat_dir.a80
831 savelij 24
                include fat/sl811_equ.a80
764 savelij 25
                include struct_mount.a80
507 savelij 26
 
831 savelij 27
USB_ENABLE      EQU 0
28
 
643 savelij 29
CPU5            EQU CPU1
30
CPU6            EQU CPU2
31
WIN_A5          EQU WIN_A1
32
WIN_A6          EQU WIN_A2
33
WIN_P5          EQU WIN_P1
34
WIN_P6          EQU WIN_P2
35
 
646 savelij 36
_CMP_FONT       EQU 0
548 savelij 37
TXTMODE_DEBUG   EQU 0
38
 
761 savelij 39
H_FILES         EQU 60
40
V_FILES         EQU 25
585 savelij 41
 
1031 savelij 42
MAGIC_COLOR     EQU BLUE << 3 + WHITE + BR_INK
585 savelij 43
 
1031 savelij 44
        PHASE 0
45
                JP $                            ; 0000
507 savelij 46
 
1031 savelij 47
                DUPL 0x0008-$,0xFF
48
                JP $                            ; 0008
507 savelij 49
 
1031 savelij 50
                DUPL 0x0010-$,0xFF
51
                JP $                            ; 0010
507 savelij 52
 
1031 savelij 53
                DUPL ADR_SEL_ROM-$,0xFF
54
                OUT (C),A                       ; 0014
507 savelij 55
                NOP
56
                RET
57
 
1031 savelij 58
                DUPL 0x0018-$,0xFF
59
                JP $                            ; 0018
507 savelij 60
 
1031 savelij 61
                DUPL 0x001C-$,0xFF
585 savelij 62
                JP RST8_DOS
573 savelij 63
 
1031 savelij 64
                DUPL 0x0020-$,0xFF
65
                JP CALL2RAMPAGE                 ; 0020
507 savelij 66
 
1031 savelij 67
                DUPL 0x0024-$,0xFF
68
                JP RST8PAGE0                    ; 0024
585 savelij 69
 
1031 savelij 70
                DUPL 0x0028-$,0xFF
71
                JP $                            ; 0028
507 savelij 72
 
1031 savelij 73
                DUPL CONT_RST8-$,0xFF           ; 002C
585 savelij 74
                JP NEXT_RST8
75
 
1031 savelij 76
; 室  ࠭ 4  ⮬
77
                DUPL 0x0030-$,0xFF
78
                JP CALL2PAGE                    ; 0030
507 savelij 79
 
1031 savelij 80
; த ࠡ⪨  MAGIC
81
                DUPL CONTINUE_MAGIC-$,0xFF      ; 0034
585 savelij 82
                JP CONT_MAGIC
507 savelij 83
 
1031 savelij 84
                DUPL 0x0038-$,0xFF              ; 0038
85
;               PUSH HL                         ; 11
86
;               LD HL,(ADR_INT)                 ; 16
87
;               EX (SP),HL                      ; 19
88
;               RET                             ; 10=56
585 savelij 89
 
1031 savelij 90
                EI                              ; 4
91
                RET                             ; 10=14
585 savelij 92
 
1031 savelij 93
                DUPL 0x003E-$,0xFF
623 savelij 94
                EI
95
                RET
96
 
1031 savelij 97
; 室  RST8
98
EXIT_RST8       LD BC,P4_EXIT_RST8              ;    ᫥ ࠭ RAM
507 savelij 99
                PUSH BC
100
                LD BC,WIN_P0
101
                XOR A
585 savelij 102
                JP ADR_SEL_ROM
507 savelij 103
 
1031 savelij 104
; 室 RST 8  DOS
585 savelij 105
RST8_DOS        LD HL,ERST8_DOS
573 savelij 106
                JP NEXT_RST
107
 
1031 savelij 108
; 室 RST 8  DOS
585 savelij 109
ERST8_DOS       LD BC,WIN_A0
573 savelij 110
                LD A,6
111
                JP ADR_SEL_ROM
112
 
1031 savelij 113
; ࠡ稪 MAGIC
114
                DUPL 0x0066-$,0xFF
761 savelij 115
                NOP
548 savelij 116
CONT_MAGIC      NOP
585 savelij 117
                DI
118
                LD HL,N_77
119
                CALL CONVERT_BPORT
1031 savelij 120
                CALL STORE_AY                   ; ࠭ ﭨ ॣ஢  襭 AY
643 savelij 121
                LD A,(CPU6+DEBUG_ONOFF)
761 savelij 122
                BIT B_TRACE_DBG,A
1031 savelij 123
                JP NZ,DEBUGGER                  ; ᫨ ⨢ ⫠稪,  室   
678 savelij 124
                LD A,(N_BF)
761 savelij 125
                AND M_BREAK_BF
678 savelij 126
                JP Z,CONT_MAGIC2
127
                LD HL,(NADRRET_L)
128
                LD A,H
129
                CP 5
130
                JP NZ,CONT_MAGIC2
131
                LD A,L
1031 savelij 132
                CP 0x6C
678 savelij 133
                JP NC,CONT_MAGIC2
1031 savelij 134
                CP 0x67
678 savelij 135
                JP C,CONT_MAGIC2
548 savelij 136
 
680 savelij 137
                CALL MAINPAGE3_TAP
678 savelij 138
                LD HL,(NREG_IXL)
139
                LD (RREG_IXL),HL
140
                LD HL,(NREG_E)
141
                LD (RREG_E),HL
142
                LD HL,(NREG_F)
143
                LD (RREG_F),HL
1031 savelij 144
        ROMCALL EMULOADTAP,ROM_RST82
678 savelij 145
                LD HL,(RREG_IXL)
146
                LD (NREG_IXL),HL
147
                LD HL,(RREG_E)
148
                LD (NREG_E),HL
1031 savelij 149
                LD HL,0x56B
678 savelij 150
                LD (NADRRET_L),HL
151
                LD HL,(RREG_F)
152
                LD (NREG_F),HL
153
                JP CONTMAGIC3
154
 
1031 savelij 155
                DUPL 0x00FF-$,0xFF
156
                DW 0x0038
549 savelij 157
 
1031 savelij 158
; ⠡ 室  RST 8
159
CODE_TABL       DW AY_PRN_INIT_                 ; 40
160
                DW AY_PRN_A__                   ; 41
161
                DW AY_PRN_TOKEN_                ; 42
162
                DW AY_PRN_SCR_                  ; 43
163
                DW TAPE_INIT_                   ; 44
164
                DW TAPE_EMUL_                   ; 45
165
                DW WINW_                        ; 46
166
                DW PRINT_MESSAGE_               ; 47
167
                DW PRINT_A_                     ; 48
168
                DW SCRUP_                       ; 49
169
                DW SCRDN_                       ; 4A
170
                DW SET_MODE_                    ; 4B
171
                DW MATH                         ; 4C
172
                DW VERSION_                     ; 4D
173
                DW RESERVED                     ; 4E
174
                DW RESERVED                     ; 4F
175
                DW COM_DEV                      ; 50
176
                DW COM_FAT                      ; 51
177
                DW SORT_FINDFILES               ; 52
178
                DW MOUNTER                      ; 53
179
                DW INST_FATBOOT_                ; 54
180
                DW CMOS_RW_                     ; 55
181
                DW SETUP_PAL_                   ; 56
182
                DW SETUP_FONT_                  ; 57
585 savelij 183
ECODE_TABL
549 savelij 184
 
585 savelij 185
;===============
186
 
1031 savelij 187
; 室  ᭮  MAGIC ᫨  墠祭 ⫠稪
678 savelij 188
CONT_MAGIC2     LD BC,CONF_128
680 savelij 189
;               LD A,(N_7FFD)
1031 savelij 190
        READ_7FFD
1041 savelij 191
                AND M_ZX_SCREEN ! 0xFF
1031 savelij 192
                OUT (C),A                       ; 祭 ⮡ࠦ ࠭ 0
678 savelij 193
                LD A,(N_77)
1031 savelij 194
                CALL CMP_SCRMODE                ; ஢ઠ ० ࢠ ணࠬ
678 savelij 195
                LD HL,EI_RET
1031 savelij 196
                LD (ADR_INT),HL                 ; 誠  뢠
197
        ROMCALL STORE_TXTMODE,ROM_RST82         ; ࠭ ⥪⬮ ࠭
198
        ROMCALL SCAN_FONT,ROM_RST80             ; ⥭ ⥪饣 㦥 
199
        ROMCALL RD_SET_PAL,ROM_RST82            ; ࠭  ⠭   MAGIC
200
;==========६ﭪ
952 savelij 201
        IF _CMP_FONT=1
1031 savelij 202
                CALL CMP_FONT                   ; ६ﭪ, ஢ઠ ⠭ 
678 savelij 203
                RLA
204
                LD (CMP_FONT_FLAG),A
952 savelij 205
        ENDIF
1031 savelij 206
;==========६ﭪ
207
        ROMCALL MAGIC_FONT,ROM_RST82            ; ⠭ ६   MAGIC ०
678 savelij 208
CONT_MAGIC1     LD A,(CPU6+DEBUG_ONOFF)
761 savelij 209
                BIT B_DBG_ACTIV,A
1031 savelij 210
                JP NZ,DEBUGGER                  ; ᫨ ⨢ ⫠稪,  室   
678 savelij 211
                JP RESTART_NMI
212
 
834 savelij 213
VERSION_        LD HL,VERSBIN >> 16
214
                LD (RREG_C),HL
1031 savelij 215
                LD HL,VERSBIN & 0xFFFF
834 savelij 216
                LD (RREG_E),HL
977 savelij 217
        IFDEF DOS_FE
218
                LD L,1                          ; ॡ 訢 zxevo_fw.bin  standalone_base_trdemu
219
        ELSE
220
                LD L,0                          ; 訢  筠
221
        ENDIF
222
                LD BC,FDD_EMU_PORT
223
                IN H,(C)                        ; ࠭塞 ⥪饥 祭 
224
                LD E,%00001010
225
                OUT (C),E                       ; ᠫ ᫮
226
                IN A,(C)                        ; ⠫ ⭮
227
                CP E
228
                JR Z,.L1
229
                SET B_INCORRECTFPGA,L           ;   ᮢ  zxevo_fw.bin  ⮩ ⥬
230
.L1             LD A,L
231
                LD (RREG_A),A                   ; ⠢  A  稫
232
                OUT (C),H                       ; ⠭ ⥪饥 祭 
833 savelij 233
                RET
234
 
1031 savelij 235
SETUP_FONT_
236
        ROMCALL SETUP_FONT,ROM_RST81
702 savelij 237
                RET
238
 
1031 savelij 239
SET_MAP_
240
        ROMCALL 0x40,ROM_ERS
593 savelij 241
                RET
242
 
1031 savelij 243
SETUP_PAL_
244
        ROMCALL SETUP_PAL,ROM_RST82
623 savelij 245
RESERVED        RET
246
 
1031 savelij 247
AY_PRN_INIT_
248
        ROMCALL AY_PRN_INIT,ROM_RST82
585 savelij 249
                RET
250
 
1031 savelij 251
AY_PRN_A__
252
        ROMCALL AY_PRN_A_,ROM_RST82
585 savelij 253
                RET
254
 
1031 savelij 255
AY_PRN_TOKEN_
256
        ROMCALL AY_PRN_TOKEN,ROM_RST82
585 savelij 257
                RET
258
 
1031 savelij 259
AY_PRN_SCR_
260
        ROMCALL AY_PRN_SCR,ROM_RST82
585 savelij 261
                RET
262
 
1031 savelij 263
TAPE_INIT_
264
        ROMCALL TAPE_INIT,ROM_RST82
585 savelij 265
                RET
266
 
1031 savelij 267
TAPE_EMUL_
268
        ROMCALL TAPE_EMUL,ROM_RST82
585 savelij 269
                RET
270
 
1031 savelij 271
WINW_
272
                ROMCALL WINW,ROM_RST82
585 savelij 273
                RET
274
 
1031 savelij 275
PRINT_MESSAGE_
276
        ROMCALL PRINT_MESSAGE,ROM_RST82
585 savelij 277
                RET
278
 
1031 savelij 279
PRINT_A_
280
        ROMCALL PRINT_A,ROM_RST82
585 savelij 281
                RET
282
 
623 savelij 283
SCRUP_          LD A,(RREG_A)
284
                LD (SCROLL_MODE),A
1031 savelij 285
        ROMCALL SCRUP,ROM_RST82
585 savelij 286
                RET
287
 
623 savelij 288
SCRDN_          LD A,(RREG_A)
289
                LD (SCROLL_MODE),A
1031 savelij 290
        ROMCALL SCRDN,ROM_RST82
585 savelij 291
                RET
292
 
1031 savelij 293
SET_MODE_
294
        ROMCALL SET_MODE,ROM_RST82
585 savelij 295
                RET
296
 
1031 savelij 297
INST_FATBOOT_
298
        ROMCALL UNP_MICRO_BOOT,ROM_RST80
585 savelij 299
                RET
300
 
1031 savelij 301
CMOS_RW_
302
        ROMCALL CMOS_RW,ROM_RST82
585 savelij 303
                RET
304
 
305
RST8PAGE0       LD HL,ERST8PAGE0
306
                JP NEXT_RST
307
 
308
ERST8PAGE0      LD BC,WIN_A0
309
                XOR A
310
                JP ADR_SEL_ROM
311
 
680 savelij 312
SELECT_MAPPER  
313
;               LD A,(R_7FFD)
1031 savelij 314
        READ_7FFD
315
                AND 0x10
605 savelij 316
                RET NZ
317
                LD A,-8
585 savelij 318
                ADD A,L
319
                LD L,A
320
                RET
321
 
1031 savelij 322
RESTART_NMI
323
        ROMCALL CLS_TXTMODE8,ROM_RST82          ; ⪠ ⥪⬮ ࠭
324
        EVOPORT WIN_A5,ROM_RST83                ; 祭 ⮩ ࠭ ROM  2  ஥஢
643 savelij 325
                LD HL,CPU5+TEXT_PORTREGS
1031 savelij 326
        ROMCALL PRTT_MSG,ROM_RST82              ;  ⥪
327
        ROMCALL PRT_PORTREGS,ROM_RST82          ;  ᮤন ⮢ ⠭ 䨣樨
328
;==========६ﭪ
952 savelij 329
        IF _CMP_FONT=1
643 savelij 330
                LD HL,CPU5+TXT_VERIFY_FONT
1031 savelij 331
        ROMCALL PRTT_MSG,ROM_RST82              ;  ⥪  ஢થ 
605 savelij 332
                LD A,(CMP_FONT_FLAG)
333
                RRA
1031 savelij 334
                LD HL,CPU5+TXT_VERIFY_OK        ; ⥪ ᫨  ᮢ
605 savelij 335
                JR NC,CONTMAGIC3_
1031 savelij 336
                LD HL,CPU5+TXT_VERIFY_ERR       ; ⥪ ᫨  ᮢ
337
CONTMAGIC3_
338
        ROMCALL PRTT_MSG,ROM_RST82              ;   訡
952 savelij 339
        ENDIF
1031 savelij 340
;==========६ﭪ
341
        EVOPORT WIN_A5,ROM_RST81                ; 祭   1  ஥஢
585 savelij 342
                LD IX,MAIN_MENU
1031 savelij 343
        ROMCALL SETUP4SEL,ROM_RST82
344
        ROMCALL ITWINW,ROM_RST82                ; 뢮   ⥪⬮ ࠭
345
        ROMCALL ITSELECTOR,ROM_RST82
585 savelij 346
                AND A
347
                JR Z,CONTMAGIC2
348
                DEC A
349
                JR Z,RESTART_NMI
350
                DEC A
351
                JR Z,CONTMAGIC3
548 savelij 352
CONTMAGIC2      XOR A
1031 savelij 353
                IN A,(0xFE)
548 savelij 354
                CPL
1031 savelij 355
                AND 0x1F
356
                JR NZ,CONTMAGIC2                ;  ᪠  
357
        ROMCALL RESTORE_TXTMODE,ROM_RST82       ; ⠭ ⥪⬮ ࠭
358
        ROMCALL RESTORE_FONT,ROM_RST82          ; ⠭ 
359
        ROMCALL RESTORE_PAL,ROM_RST82           ; ⠭ 
1035 savelij 360
CONTMAGIC3
361
;               CALL RESTORE_AY                 ; ⠭ ࠣ஢ AY
573 savelij 362
                LD BC,EXITNMISERVICE
507 savelij 363
                PUSH BC
364
                LD BC,WIN_P0
365
                XOR A
585 savelij 366
                JP ADR_SEL_ROM
507 savelij 367
 
1031 savelij 368
; த ࠡ⪨ RST8
550 savelij 369
NEXT_RST8       LD HL,EXIT_RST8
573 savelij 370
NEXT_RST        PUSH HL
550 savelij 371
                LD (INTERNAL_SP),SP
585 savelij 372
                LD HL,R_77
373
                CALL CONVERT_BPORT
374
                CALL P5_READ_BYTE
573 savelij 375
                LD A,(R_77)
585 savelij 376
                CALL CMP_SCRMODE
605 savelij 377
                LD HL,B1_CPU2
585 savelij 378
                CALL SELECT_MAPPER
379
NEXT_RST1       LD B,(HL)
380
                INC HL
381
                LD A,(HL)
382
                AND 8
383
                LD A,B
384
                JR Z,NEXT_RST2
1031 savelij 385
                OR 0xC0
585 savelij 386
NEXT_RST2       LD (PAGE4READ),A
573 savelij 387
                LD A,(NEXTBYTERST8)
1031 savelij 388
                AND 0x3F
550 savelij 389
                LD L,A
390
                LD H,0
391
                ADD HL,HL
392
                LD DE,CODE_TABL
393
                ADD HL,DE
394
                LD E,(HL)
395
                INC HL
396
                LD D,(HL)
397
                EX DE,HL
398
                JP (HL)
399
 
1031 savelij 400
; ४䨣  ஥஢
401
; ࠭ ६   1, ᭮   ᨬ     2  3
585 savelij 402
RESETUP_WINS    EXX
643 savelij 403
                LD BC,WIN_P5
585 savelij 404
                XOR A
1031 savelij 405
                OUT (C),A                       ; ࠭ ६   1
585 savelij 406
                LD HL,CPU3
407
                ADD HL,SP
1031 savelij 408
                LD SP,HL                        ; ⥪ ⮦   1
409
                LD HL,B1_CPU0-CPU5              ;  0 
585 savelij 410
                CALL SELECT_MAPPER
411
RESETUPWINS1    EXX
1031 savelij 412
                LD BC,CPU6                      ;  ⥭/  0x8000 
413
                LD A,H                          ; ஢ઠ 襣  
585 savelij 414
                EXX
1031 savelij 415
                CP 0x40
416
                JR C,RESETUPWINS2               ; ⠭   0,1
585 savelij 417
                INC HL
418
                INC HL
419
                EXX
1031 savelij 420
                LD BC,CPU5                      ;  ⥭/  0x4000 
585 savelij 421
                EXX
1031 savelij 422
                CP 0x80
423
                JR C,RESETUPWINS2               ; ⠭   1,2
585 savelij 424
                INC HL
425
                INC HL
426
                EXX
1031 savelij 427
                LD BC,CPU0                      ;  ⥭/  
585 savelij 428
                EXX
1031 savelij 429
                CP 0xC0
430
                JR C,RESETUPWINS2               ; ⠭   2,3
585 savelij 431
                INC HL
432
                INC HL
433
                EXX
1031 savelij 434
                LD BC,CPU3                      ;  ⥭/  0x4000 
585 savelij 435
                EXX
1031 savelij 436
                LD B,HIGH (WIN_A6)              ; 訩     2
585 savelij 437
                CALL RESETUPWINS4
1031 savelij 438
                LD DE,0xFFF8
439
                ADD HL,DE                       ;   䨣 ࠭ ᭮  
585 savelij 440
                JR RESETUPWINS5
441
 
1031 savelij 442
RESETUPWINS2    LD B,HIGH (WIN_A6)              ; 訩     2
585 savelij 443
                CALL RESETUPWINS4
1031 savelij 444
RESETUPWINS5    LD B,HIGH (WIN_A3)              ; 訩     3
585 savelij 445
                CALL RESETUPWINS4
446
                EXX
548 savelij 447
                RET
448
 
1031 savelij 449
RESETUPWINS4    LD E,(HL)                       ;     
450
                INC HL                          ; 㪠    
585 savelij 451
                BIT 3,(HL)
452
                JR NZ,RESETUPWINS3
453
                SET 3,B
454
                LD A,(HL)
455
                AND 3
456
                RRCA
457
                RRCA
1031 savelij 458
                OUT (C),A                       ; ᭠砫 襬   xFF7
585 savelij 459
                RES 3,B
460
RESETUPWINS3    INC HL
1031 savelij 461
                OUT (C),E                       ; ⥯ 襬   x7F7
585 savelij 462
                RET
463
 
1031 savelij 464
; ⥭     맢襩 ண
585 savelij 465
P5_READ_BYTE    PUSH HL
573 savelij 466
                PUSH DE
467
                PUSH BC
548 savelij 468
                PUSH AF
1031 savelij 469
                LD A,(RADRRET_H)                ; 訩   㤠 
470
                CP 0x40
573 savelij 471
                JR NC,READBYTE_03
1031 savelij 472
; ᫨  ⥭  0x4000
473
                LD HL,B1_CPU0                   ;    ⮢ 0 
585 savelij 474
                CALL SELECT_MAPPER
1031 savelij 475
READ_CPU0_01    LD D,(HL)                       ;     
573 savelij 476
                INC HL
1031 savelij 477
                LD A,(HL)                       ; 訩    㦭 ࠭
643 savelij 478
                AND HIGH (WIN_A5)
1031 savelij 479
                OR HIGH (WIN_P5)                ; ८ࠧ 訩    祭  1 
573 savelij 480
                LD B,A
1031 savelij 481
                LD C,LOW (WIN_A0)               ; BC =  
573 savelij 482
                LD A,(R_77)
1031 savelij 483
                LD E,0x3F
484
                AND 0x10                        ; ।塞 DOS   DOS
573 savelij 485
                JR Z,READ_CPU0_02
486
                DEC E
487
READ_CPU0_02    LD A,D
488
                AND E
1031 savelij 489
                OUT (C),A                       ; 砥  BASIC  DOS
490
                LD DE,CPU5                      ; ᬥ饭  1  ஥஢
491
                LD HL,(RADRRET_L)               ;  㤠 
492
                ADD HL,DE                       ;  १ 1  ஥஢
493
                LD A,(HL)                       ; ⠫ 
494
                SBC HL,DE                       ; 㫨  
495
                INC HL                          ; 㢥稫  
496
                LD (RADRRET_L),HL               ; 㫨  
573 savelij 497
                JR READBYTE_02
498
 
1031 savelij 499
; ᫨  ⥭  0x4000
500
READBYTE_03     LD HL,B1_CPU0                   ;    ⮢ 0 
585 savelij 501
                CALL SELECT_MAPPER
1031 savelij 502
READBYTE_01     LD A,(RADRRET_H)                ; 訩   㤠 
503
                AND 0xC0
573 savelij 504
                LD C,A
505
                RLCA
506
                RLCA
507
                RLCA
508
                LD E,A
1031 savelij 509
                LD D,0                          ; DE = ᬥ饭  ⠡   襣  ࠭ ⥭
573 savelij 510
                ADD HL,DE
1031 savelij 511
                LD D,(HL)                       ;     
573 savelij 512
                INC HL
513
                LD A,(HL)
643 savelij 514
                AND HIGH (WIN_A5)
515
                OR HIGH (WIN_P5)
573 savelij 516
                LD B,A
1031 savelij 517
                LD C,LOW (WIN_A5)               ; BC =    1  ஥஢
518
                LD HL,(RADRRET_L)               ;  㤠 
519
                OUT (C),D                       ; 稫 ࠭  ⥭ 
520
                LD E,L                          ; 訩   ⥭
573 savelij 521
                LD A,H
643 savelij 522
                AND HIGH (WIN_A5)
523
                OR HIGH (CPU5)
1031 savelij 524
                LD D,A                          ; 訩   ⥭
525
                LD A,(DE)                       ; ⠫ 
526
                INC HL                          ; 㢥稫  
527
                LD (RADRRET_L),HL               ; 㫨  
528
READBYTE_02     LD (NEXTBYTERST8),A             ;  ⠭ 
529
                CALL MAIN_MEM13                 ; 㫨 ࠭  1  3  ஥஢
548 savelij 530
                POP AF
573 savelij 531
                POP BC
532
                POP DE
533
                POP HL
548 savelij 534
                RET
535
 
573 savelij 536
LDIR_BYTES      EXX
537
                LD BC,INT_ONLY_RET
507 savelij 538
                PUSH BC
573 savelij 539
                LD BC,LDIR__BYTES
540
                PUSH BC
541
                LD BC,WIN_P0
542
                XOR A
585 savelij 543
                JP ADR_SEL_ROM
507 savelij 544
 
1031 savelij 545
; ⠭e ࠭   ஥஢ 1  3
546
MAIN_MEM13      LD HL,B1_CPU1                   ;  0 
585 savelij 547
                CALL SELECT_MAPPER
1031 savelij 548
MAINMEM1        CALL MAINMEM3                   ; 㫨  1  ஥஢
549
                INC HL                          ;  頥  3  ஥஢
573 savelij 550
                INC HL
585 savelij 551
                CALL MAINMEM3
552
SET_7FFD        DEC HL
553
                BIT 3,(HL)
554
                RET Z
555
                DEC HL
556
                BIT 7,(HL)
557
                RET Z
1031 savelij 558
        READ_7FFD
585 savelij 559
                LD D,A
560
                LD E,0
561
                LD HL,PAGES_7FFD_ALL
562
                JR NZ,SET7FFD1
1031 savelij 563
                AND 0xE0
573 savelij 564
                RRCA
565
                RRCA
585 savelij 566
                LD E,A
567
SET7FFD1        LD A,D
568
                AND 7
569
                OR E
570
                LD E,A
571
                LD D,0
572
                ADD HL,DE
573
                LD A,(HL)
573 savelij 574
                OUT (C),A
575
                RET
576
 
585 savelij 577
XXF7_7FFD       MACRO B
578
PLUSIK := B
579
                REPT 8
580
                DB PLUSIK
581
PLUSIK := PLUSIK-1
582
                ENDM
583
                ENDM
584
 
1031 savelij 585
PAGES_7FFD_ALL  XXF7_7FFD 0xFF
586
                XXF7_7FFD 0xEF
587
                XXF7_7FFD 0xDF
588
                XXF7_7FFD 0xCF
585 savelij 589
 
1031 savelij 590
                XXF7_7FFD 0xF7
591
                XXF7_7FFD 0xE7
592
                XXF7_7FFD 0xD7
593
                XXF7_7FFD 0xC7
585 savelij 594
 
680 savelij 595
MAINPAGE3_TAP   LD HL,B1_CPU3
596
                CALL SELECT_MAPPER
597
                CALL MAINMEM3
598
                JR SET_7FFD
599
 
643 savelij 600
MAINMEM3        LD C,LOW (WIN_A0)
601
                LD E,(HL)
585 savelij 602
                INC HL
603
                LD A,8
604
                AND (HL)
605
                LD A,E
606
                JR Z,MAINMEM4
1031 savelij 607
                OR 0xC0
585 savelij 608
MAINMEM4        LD E,A
609
                LD A,(HL)
1031 savelij 610
                OR 0x3F
585 savelij 611
                LD B,A
1031 savelij 612
                LD A,0x40
605 savelij 613
                OUT (C),A
614
                RES 3,B
585 savelij 615
                INC HL
616
                OUT (C),E
548 savelij 617
INT_ONLY_RET    RET
618
 
1031 savelij 619
;  ⠭ 祭  ⮢ 䨣樨
620
; HL =  㤠  ⠭ 祭  ᨨ
621
; DE =  7,6  ஢
622
; BC = 㤠 ᪫뢠 ஢
623
;  A = ⠭ 祭  ᨨ   xx77
585 savelij 624
CONVERT_BPORT   LD A,(HL)
625
                PUSH AF
626
                INC HL
627
                INC HL
628
                INC HL
629
                LD E,(HL)
630
                INC HL
631
                LD D,(HL)
632
                LD BC,8
1031 savelij 633
                LD A,C                          ;  8 
585 savelij 634
                ADD HL,BC
573 savelij 635
                LD BC,B0_CPU0
1031 savelij 636
                LD IYL,HIGH (WIN_A3)&0xF8
548 savelij 637
CBPORT03        EX AF,AF'
638
                LD A,(HL)
1031 savelij 639
                CP 0xC0
548 savelij 640
                JR NC,CBPORT01
1031 savelij 641
; ᫨ ᫮ ,  ⠭   x7F7
642
                LD (BC),A                       ;  ࠭      ⠭
573 savelij 643
                INC BC
644
                LD A,IYL
1031 savelij 645
                ADD A,0x40
573 savelij 646
                LD IYL,A
1031 savelij 647
                AND 0xF0
573 savelij 648
                SRL E
548 savelij 649
                SRL D
1031 savelij 650
                LD (BC),A                       ; 訩   
573 savelij 651
                INC BC
548 savelij 652
                JR CBPORT02
653
 
1031 savelij 654
; ᫨ ᫮ ,  ⠭   xFF7
548 savelij 655
CBPORT01        LD A,(HL)
656
                RLCA
657
                RLCA
658
                SRL D
659
                RRA
660
                SRL E
661
                RRA
1031 savelij 662
                LD (BC),A                       ;  ࠭      ⠭
573 savelij 663
                INC BC
664
                LD A,IYL
1031 savelij 665
                ADD A,0x40
573 savelij 666
                LD IYL,A
1031 savelij 667
                LD (BC),A                       ; 訩   
573 savelij 668
                INC BC
548 savelij 669
CBPORT02        DEC HL
670
                EX AF,AF'
671
                DEC A
672
                JR NZ,CBPORT03
573 savelij 673
                POP HL
1031 savelij 674
                LD L,0xBC
573 savelij 675
                LD A,H
1031 savelij 676
                AND 0x0F
677
                OR 0xA0
678
                LD (BC),A                       ;       ⠭
573 savelij 679
                INC BC
680
                LD A,H
1031 savelij 681
                AND 0x80
573 savelij 682
                RRCA
683
                OR L
684
                LD L,A
685
                LD A,H
1031 savelij 686
                AND 0x60
573 savelij 687
                RLCA
688
                RLCA
689
                RLCA
690
                OR L
1031 savelij 691
                LD (BC),A                       ; 訩   
573 savelij 692
                RET
693
 
585 savelij 694
READ_KEYS
507 savelij 695
                RET
696
 
1031 savelij 697
; ࠩ
585 savelij 698
                include fat/mounter.a80
699
                include fat/dev_drv.a80
700
                include fat/ngs_sd_drv.a80
701
                include fat/z_sd_drv.a80
702
                include fat/nemo_drv.a80
703
                include fat/read_fat.a80
831 savelij 704
                include fat/usb_drv.a80
573 savelij 705
 
1035 savelij 706
STORE_AY        LD BC,0xFFFD
707
                LD A,0xFE
596 savelij 708
                OUT (C),A
1035 savelij 709
;               LD HL,AY_REGS2
710
                CALL .L1
711
                LD BC,0xFFFD
712
                LD A,0xFF
713
                OUT (C),A
714
;               LD HL,AY_REGS1
715
.L1             LD DE,0xFFBF;C0
716
;               LD A,0x0D
717
;.L2            LD B,D
718
;               OUT (C),A
719
;               LD B,E
720
;               INI
721
;               DEC A
722
;               JP P,.L2
723
;               DEC E
596 savelij 724
                LD H,0
1031 savelij 725
                LD A,0x0D
1035 savelij 726
.L3             LD B,D
596 savelij 727
                OUT (C),A
728
                LD B,E
729
                OUT (C),H
730
                DEC A
1035 savelij 731
                JP P,.L3
596 savelij 732
                RET
733
 
1035 savelij 734
;RESTORE_AY     LD BC,0xFFFD
735
;               LD A,0xFE
736
;               OUT (C),A
737
;               LD HL,AY_REGS2
738
;               CALL .L1
739
;               LD BC,0xFFFD
740
;               LD A,0xFF
741
;               OUT (C),A
742
;               LD HL,AY_REGS1
743
;.L1            LD DE,0xFFC0
744
;               LD C,0xFD
745
;               LD A,0x0D
746
;.L2            LD B,D
747
;               OUT (C),A
748
;               LD B,E
749
;               OUTI
750
;               DEC A
751
;               JP P,.L2
752
;               RET
596 savelij 753
 
1031 savelij 754
SYMS4SORT       DB ".!#$%&'()-0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`{}~",0x7F
628 savelij 755
                DB "",0
596 savelij 756
 
548 savelij 757
X_OFFSET        EQU 63
758
Y_OFFSET        EQU 2
1031 savelij 759
TEXT_PORTREGS   DB 0x17,MAGIC_COLOR
760
                DB 0x16,Y_OFFSET+0x01,X_OFFSET+0,"SP:      PC:"
761
                DB 0x16,Y_OFFSET+0x02,X_OFFSET+0,"IR:"
762
                DB 0x16,Y_OFFSET+0x03,X_OFFSET+0,"AF:     AF':"
763
                DB 0x16,Y_OFFSET+0x04,X_OFFSET+0,"BC:     BC':"
764
                DB 0x16,Y_OFFSET+0x05,X_OFFSET+0,"DE:     DE':"
765
                DB 0x16,Y_OFFSET+0x06,X_OFFSET+0,"HL:     HL':"
766
                DB 0x16,Y_OFFSET+0x07,X_OFFSET+0,"IX:      IY:"
767
                DB 0x16,Y_OFFSET+0x08,X_OFFSET+0," INT      IM"
768
                DB 0x16,Y_OFFSET+0x0A,X_OFFSET+0,"  MAP  0 1"
769
                DB 0x16,Y_OFFSET+0x0B,X_OFFSET+0,"CPU3:"
770
                DB 0x16,Y_OFFSET+0x0C,X_OFFSET+0,"CPU2:"
771
                DB 0x16,Y_OFFSET+0x0D,X_OFFSET+0,"CPU1:"
772
                DB 0x16,Y_OFFSET+0x0E,X_OFFSET+0,"CPU0:"
773
                DB 0x16,Y_OFFSET+0x10,X_OFFSET+0,"7FFD:   FF:"
774
                DB 0x16,Y_OFFSET+0x11,X_OFFSET+0,"EFF7:   7F:"
775
                DB 0x16,Y_OFFSET+0x12,X_OFFSET+0,"  77:   5F:"
776
                DB 0x16,Y_OFFSET+0x13,X_OFFSET+0,"  BF:   3F:"
777
                DB 0x16,Y_OFFSET+0x14,X_OFFSET+0," DOS:   1F:"
1120 savelij 778
                DB 0x16,Y_OFFSET+0x15,X_OFFSET+0,"BREAK: "
779
                DB 0x16,Y_OFFSET+0x16,X_OFFSET+0,"TURBO: "
1031 savelij 780
                DB 0x16,1,0x10,0x17,0x32," EVO Magic Service beta ",0
585 savelij 781
 
1031 savelij 782
TXT_VERIFY_FONT DB 0x16,0x18,0,0x17,0x22,"  VERIFY READING FONT ",0
549 savelij 783
TXT_VERIFY_OK   DB " OK    ",0
784
TXT_VERIFY_ERR  DB "ERROR  ",0
548 savelij 785
 
1031 savelij 786
; ஢ઠ ⠭ 䮭
952 savelij 787
        IF _CMP_FONT=1
585 savelij 788
CMP_FONT        LD H,CMOS_BYTE_00
1031 savelij 789
        ROMCALL READCMOS,ROM_RST82
761 savelij 790
                AND M_TYPE_FONT
585 savelij 791
                LD HL,CP866_FONT
761 savelij 792
                JR NZ,CMPFONT1
585 savelij 793
                LD HL,ATM_FONT
646 savelij 794
CMPFONT1        LD DE,CPU1+OFFSET_BUFSYM
585 savelij 795
                PUSH DE
1031 savelij 796
        ROMCALL UNPACK,ROM_RST80
585 savelij 797
                POP DE
798
                INC D
1031 savelij 799
                LD BC,0x700
800
                LD HL,CPU1+OFFSET_FNTSAVE+0x100
585 savelij 801
CMPFONT2        LD A,(DE)
802
                INC DE
803
                CP (HL)
804
                SCF
805
                RET NZ
806
                CPI
807
                JP PE,CMPFONT2
808
                XOR A
809
                RET
952 savelij 810
        ENDIF
516 savelij 811
 
585 savelij 812
CMP_SCRMODE     LD HL,FLAGS
764 savelij 813
                RES B_VIDEO_MODE,(HL)
585 savelij 814
                AND 7
815
                CP 3
816
                RET Z
764 savelij 817
                SET B_VIDEO_MODE,(HL)
585 savelij 818
                RET
507 savelij 819
 
628 savelij 820
SD_CARD_LOST    LD HL,FLAGS_DRV
821
                LD A,B_NEW_SD
822
                OR (HL)
823
                LD (HL),A
1031 savelij 824
        PEC_ON M_SHADOW_BF
585 savelij 825
                CALL MAIN_MEM13
826
                LD IX,SDCARD_LOST
1031 savelij 827
        ROMCALL IWINW,ROM_RST82
585 savelij 828
                JR $
829
 
789 savelij 830
                include math.a80
790 savelij 831
                include sortfiles.a80
789 savelij 832
 
1031 savelij 833
FREE_MAIN       EQU 0x3FF6-$
831 savelij 834
 
1031 savelij 835
                DUPL FREE_MAIN,0xFF
836
                DW FREE_MAIN                    ; ࠧ ᢮ 
507 savelij 837
                DB "RST_08"
585 savelij 838
                DW DATA_VERS
1031 savelij 839
        DEPHASE
573 savelij 840
 
841
                include addons.a80
585 savelij 842
                include addon1.a80
843
                include addon2.a80
801 savelij 844
                include mainmenu.a80