Subversion Repositories pentevo

Rev

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

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