Rev 1031 |
Rev 1041 |
Go to most recent revision |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
; LAST UPDATE: 13.11.2022 savelij
PAGE
TITLE "rst8service.a80 ROM_RST83"
include ../../macros.a80
include ../../define.a80
include ../../global_vars.a80
include ../../ports_ide.a80
include ../../ports_ngs.a80
include ../../sdcomand.a80
INIT_VAR BUF_TEKVOL
include ../../fat_vars.a80
include ../../bootsecfat.a80
include ../../evodos_vars.a80
include ../../tmpkeys.a80
include ../../nums_devices.a80
include ../../version.a80
include ../../cmd_cdhdd.a80
include ../../fat_dir.a80
include fat/sl811_equ.a80
include struct_mount.a80
USB_ENABLE EQU 0
CPU5 EQU CPU1
CPU6 EQU CPU2
WIN_A5 EQU WIN_A1
WIN_A6 EQU WIN_A2
WIN_P5 EQU WIN_P1
WIN_P6 EQU WIN_P2
_CMP_FONT EQU 0
TXTMODE_DEBUG EQU 0
H_FILES EQU 60
V_FILES EQU 25
MAGIC_COLOR EQU BLUE << 3 + WHITE + BR_INK
PHASE 0
JP $ ; 0000
DUPL 0x0008-$,0xFF
JP $ ; 0008
DUPL 0x0010-$,0xFF
JP $ ; 0010
DUPL ADR_SEL_ROM-$,0xFF
OUT (C),A ; 0014
NOP
RET
DUPL 0x0018-$,0xFF
JP $ ; 0018
DUPL 0x001C-$,0xFF
JP RST8_DOS
DUPL 0x0020-$,0xFF
JP CALL2RAMPAGE ; 0020
DUPL 0x0024-$,0xFF
JP RST8PAGE0 ; 0024
DUPL 0x0028-$,0xFF
JP $ ; 0028
DUPL CONT_RST8-$,0xFF ; 002C
JP NEXT_RST8
; ¯¥à¥å®¤ ¢ áâà ¨æã 4 á ¢®§¢à ⮬
DUPL 0x0030-$,0xFF
JP CALL2PAGE ; 0030
; ¯à®¤®«¦¥¨¥ ®¡à ¡®âª¨ ¦ â¨ï MAGIC
DUPL CONTINUE_MAGIC-$,0xFF ; 0034
JP CONT_MAGIC
DUPL 0x0038-$,0xFF ; 0038
; PUSH HL ; 11
; LD HL,(ADR_INT) ; 16
; EX (SP),HL ; 19
; RET ; 10=56
EI ; 4
RET ; 10=14
DUPL 0x003E-$,0xFF
EI
RET
; ¢ë室 ¨§ RST8
EXIT_RST8 LD BC,P4_EXIT_RST8 ; ¤à¥á ¢®§¢à â ¢ ¯®á«¥¤¥© áâà ¨æ¥ RAM
PUSH BC
LD BC,WIN_P0
XOR A
JP ADR_SEL_ROM
; ¢å®¤ RST 8 ¤«ï DOS
RST8_DOS LD HL,ERST8_DOS
JP NEXT_RST
; ¢ë室 RST 8 ¤«ï DOS
ERST8_DOS LD BC,WIN_A0
LD A,6
JP ADR_SEL_ROM
; ®¡à ¡®â稪 MAGIC
DUPL 0x0066-$,0xFF
NOP
CONT_MAGIC NOP
DI
LD HL,N_77
CALL CONVERT_BPORT
CALL STORE_AY ; á®åà ¥¨¥ á®áâ®ï¨ï ॣ¨áâ஢ ¨ § £«ã襨¥ AY
LD A,(CPU6+DEBUG_ONOFF)
BIT B_TRACE_DBG,A
JP NZ,DEBUGGER ; ¥á«¨ ªâ¨¢¥ ®â« ¤ç¨ª, â® ¯¥à¥å®¤ ¥£® § ¯ãáª
LD A,(N_BF)
AND M_BREAK_BF
JP Z,CONT_MAGIC2
LD HL,(NADRRET_L)
LD A,H
CP 5
JP NZ,CONT_MAGIC2
LD A,L
CP 0x6C
JP NC,CONT_MAGIC2
CP 0x67
JP C,CONT_MAGIC2
CALL MAINPAGE3_TAP
LD HL,(NREG_IXL)
LD (RREG_IXL),HL
LD HL,(NREG_E)
LD (RREG_E),HL
LD HL,(NREG_F)
LD (RREG_F),HL
ROMCALL EMULOADTAP,ROM_RST82
LD HL,(RREG_IXL)
LD (NREG_IXL),HL
LD HL,(RREG_E)
LD (NREG_E),HL
LD HL,0x56B
LD (NADRRET_L),HL
LD HL,(RREG_F)
LD (NREG_F),HL
JP CONTMAGIC3
DUPL 0x00FF-$,0xFF
DW 0x0038
; â ¡«¨æ ¯¥à¥å®¤®¢ ¤«ï RST 8
CODE_TABL DW AY_PRN_INIT_ ; 40
DW AY_PRN_A__ ; 41
DW AY_PRN_TOKEN_ ; 42
DW AY_PRN_SCR_ ; 43
DW TAPE_INIT_ ; 44
DW TAPE_EMUL_ ; 45
DW WINW_ ; 46
DW PRINT_MESSAGE_ ; 47
DW PRINT_A_ ; 48
DW SCRUP_ ; 49
DW SCRDN_ ; 4A
DW SET_MODE_ ; 4B
DW MATH ; 4C
DW VERSION_ ; 4D
DW RESERVED ; 4E
DW RESERVED ; 4F
DW COM_DEV ; 50
DW COM_FAT ; 51
DW SORT_FINDFILES ; 52
DW MOUNTER ; 53
DW INST_FATBOOT_ ; 54
DW CMOS_RW_ ; 55
DW SETUP_PAL_ ; 56
DW SETUP_FONT_ ; 57
ECODE_TABL
;===============
; ¢å®¤ ¢ ®á®¢®¥ ¬¥î MAGIC ¥á«¨ ¥ ¯¥à¥å¢ 祮 ®â« ¤ç¨ª®¬
CONT_MAGIC2 LD BC,CONF_128
; LD A,(N_7FFD)
READ_7FFD
AND ZX_SCREEN!0xFF
OUT (C),A ; ¢ª«î票¥ ®â®¡à ¦¥¨ï íªà 0
LD A,(N_77)
CALL CMP_SCRMODE ; ¯à®¢¥àª ¢¨¤¥®à¥¦¨¬ ¯à¥à¢ ®© ¯à®£à ¬¬ë
LD HL,EI_RET
LD (ADR_INT),HL ; § £«ãèª ¯à¥àë¢ ¨ï
ROMCALL STORE_TXTMODE,ROM_RST82 ; á®åà ¥¨¥ ⥪á⬮¤®£® íªà
ROMCALL SCAN_FONT,ROM_RST80 ; ç⥨¥ ⥪ã饣® § £à㦥®£® èà¨äâ
ROMCALL RD_SET_PAL,ROM_RST82 ; á®åà ¥¨¥ ¨ ãáâ ®¢ª ¯ «¨âàë ¤«ï MAGIC
;==========¢à¥¬ïª
IF _CMP_FONT=1
CALL CMP_FONT ; ¢à¥¬ïª , ¯à®¢¥àª áç¨â ®£® èà¨äâ
RLA
LD (CMP_FONT_FLAG),A
ENDIF
;==========¢à¥¬ïª
ROMCALL MAGIC_FONT,ROM_RST82 ; ãáâ ®¢ª ¢à¥¬¥®£® èà¨äâ ¤«ï MAGIC ०¨¬
CONT_MAGIC1 LD A,(CPU6+DEBUG_ONOFF)
BIT B_DBG_ACTIV,A
JP NZ,DEBUGGER ; ¥á«¨ ªâ¨¢¥ ®â« ¤ç¨ª, â® ¯¥à¥å®¤ ¥£® § ¯ãáª
JP RESTART_NMI
VERSION_ LD HL,VERSBIN >> 16
LD (RREG_C),HL
LD HL,VERSBIN & 0xFFFF
LD (RREG_E),HL
IFDEF DOS_FE
LD L,1 ; âॡã¥â ¯à®è¨¢ª¨ zxevo_fw.bin ¨§ standalone_base_trdemu
ELSE
LD L,0 ; ¯à®è¨¢ª ¥ ªà¨â¨ç
ENDIF
LD BC,FDD_EMU_PORT
IN H,(C) ; á®åà 塞 ⥪ã饥 § 票¥ ¯®àâ
LD E,%00001010
OUT (C),E ; § ¯¨á «¨ ç¨á«®
IN A,(C) ; ¯à®ç¨â «¨ ®¡à â®
CP E
JR Z,.L1
SET B_INCORRECTFPGA,L ; ¯à¨ ¥ ᮢ¯ ¤¥¨¨ § è¨â® zxevo_fw.bin ¥ ⮩ á¨á⥬ë
.L1 LD A,L
LD (RREG_A),A ; ¢ëáâ ¢¨«¨ ¢ A çâ® ¯®«ã稫®áì
OUT (C),H ; ¢®ááâ ®¢¨«¨ ⥪饥 § 票¥ ¯®àâ
RET
SETUP_FONT_
ROMCALL SETUP_FONT,ROM_RST81
RET
SET_MAP_
ROMCALL 0x40,ROM_ERS
RET
SETUP_PAL_
ROMCALL SETUP_PAL,ROM_RST82
RESERVED RET
AY_PRN_INIT_
ROMCALL AY_PRN_INIT,ROM_RST82
RET
AY_PRN_A__
ROMCALL AY_PRN_A_,ROM_RST82
RET
AY_PRN_TOKEN_
ROMCALL AY_PRN_TOKEN,ROM_RST82
RET
AY_PRN_SCR_
ROMCALL AY_PRN_SCR,ROM_RST82
RET
TAPE_INIT_
ROMCALL TAPE_INIT,ROM_RST82
RET
TAPE_EMUL_
ROMCALL TAPE_EMUL,ROM_RST82
RET
WINW_
ROMCALL WINW,ROM_RST82
RET
PRINT_MESSAGE_
ROMCALL PRINT_MESSAGE,ROM_RST82
RET
PRINT_A_
ROMCALL PRINT_A,ROM_RST82
RET
SCRUP_ LD A,(RREG_A)
LD (SCROLL_MODE),A
ROMCALL SCRUP,ROM_RST82
RET
SCRDN_ LD A,(RREG_A)
LD (SCROLL_MODE),A
ROMCALL SCRDN,ROM_RST82
RET
SET_MODE_
ROMCALL SET_MODE,ROM_RST82
RET
INST_FATBOOT_
ROMCALL UNP_MICRO_BOOT,ROM_RST80
RET
CMOS_RW_
ROMCALL CMOS_RW,ROM_RST82
RET
RST8PAGE0 LD HL,ERST8PAGE0
JP NEXT_RST
ERST8PAGE0 LD BC,WIN_A0
XOR A
JP ADR_SEL_ROM
SELECT_MAPPER
; LD A,(R_7FFD)
READ_7FFD
AND 0x10
RET NZ
LD A,-8
ADD A,L
LD L,A
RET
RESTART_NMI
ROMCALL CLS_TXTMODE8,ROM_RST82 ; ®ç¨á⪠⥪á⬮¤®£® íªà
EVOPORT WIN_A5,ROM_RST83 ; ¢ª«î票¥ í⮩ áâà ¨æë ROM ¢® 2 ®ª® ¯à®¥æ¨à®¢ ¨ï
LD HL,CPU5+TEXT_PORTREGS
ROMCALL PRTT_MSG,ROM_RST82 ; ¯¥ç âì ⥪áâ
ROMCALL PRT_PORTREGS,ROM_RST82 ; ¯¥ç âì ᮤ¥à¦¨¬®£® ¯®à⮢ áç¨â ®© ª®ä¨£ãà 樨
;==========¢à¥¬ïª
IF _CMP_FONT=1
LD HL,CPU5+TXT_VERIFY_FONT
ROMCALL PRTT_MSG,ROM_RST82 ; ¯¥ç âì ⥪áâ ® ¯à®¢¥àª¥ èà¨äâ
LD A,(CMP_FONT_FLAG)
RRA
LD HL,CPU5+TXT_VERIFY_OK ; ⥪á⠥᫨ ¢á¥ ᮢ¯ «®
JR NC,CONTMAGIC3_
LD HL,CPU5+TXT_VERIFY_ERR ; ⥪á⠥᫨ ¥ ᮢ¯ «®
CONTMAGIC3_
ROMCALL PRTT_MSG,ROM_RST82 ; ¯¥ç âì ®¡ ®è¨¡ª¥
ENDIF
;==========¢à¥¬ïª
EVOPORT WIN_A5,ROM_RST81 ; ¢ª«î票¥ ¤®¯®«¥¨© ¢ 1 ®ª® ¯à®¥æ¨à®¢ ¨ï
LD IX,MAIN_MENU
ROMCALL SETUP4SEL,ROM_RST82
ROMCALL ITWINW,ROM_RST82 ; ¢ë¢®¤ ®ª ⥪á⬮¤ë© íªà
ROMCALL ITSELECTOR,ROM_RST82
AND A
JR Z,CONTMAGIC2
DEC A
JR Z,RESTART_NMI
DEC A
JR Z,CONTMAGIC3
CONTMAGIC2 XOR A
IN A,(0xFE)
CPL
AND 0x1F
JR NZ,CONTMAGIC2 ; ¦¤¥¬ ®â¯ã᪠¨ï ª®¯®ª ª« ¢¨ âãàë
ROMCALL RESTORE_TXTMODE,ROM_RST82 ; ¢®ááâ ®¢«¥¨¥ ⥪á⬮¤®£® íªà
ROMCALL RESTORE_FONT,ROM_RST82 ; ¢®ááâ ®¢«¥¨¥ èà¨äâ
ROMCALL RESTORE_PAL,ROM_RST82 ; ¢®ááâ ®¢«¥¨¥ ¯ «¨âàë
CONTMAGIC3
; CALL RESTORE_AY ; ¢®ááâ ®¢«¥¨¥ à £¨áâ஢ AY
LD BC,EXITNMISERVICE
PUSH BC
LD BC,WIN_P0
XOR A
JP ADR_SEL_ROM
; ¯à®¤®«¦¥¨¥ ®¡à ¡®âª¨ RST8
NEXT_RST8 LD HL,EXIT_RST8
NEXT_RST PUSH HL
LD (INTERNAL_SP),SP
LD HL,R_77
CALL CONVERT_BPORT
CALL P5_READ_BYTE
LD A,(R_77)
CALL CMP_SCRMODE
LD HL,B1_CPU2
CALL SELECT_MAPPER
NEXT_RST1 LD B,(HL)
INC HL
LD A,(HL)
AND 8
LD A,B
JR Z,NEXT_RST2
OR 0xC0
NEXT_RST2 LD (PAGE4READ),A
LD A,(NEXTBYTERST8)
AND 0x3F
LD L,A
LD H,0
ADD HL,HL
LD DE,CODE_TABL
ADD HL,DE
LD E,(HL)
INC HL
LD D,(HL)
EX DE,HL
JP (HL)
; ¯¥à¥ª®ä¨£ãà æ¨ï ®ª® ¯à®¥æ¨à®¢ ¨ï
; áâà ¨æ ¯¥à¥¬¥ëå ¢ ®ª® 1, ®á®¢ ï ¯ ¬ïâì ¢ § ¢¨á¨¬®á⨠®â ¤à¥á ¢ ®ª 2 ¨ 3
RESETUP_WINS EXX
LD BC,WIN_P5
XOR A
OUT (C),A ; áâà ¨æ ¯¥à¥¬¥ëå ¢ ®ª® 1
LD HL,CPU3
ADD HL,SP
LD SP,HL ; á⥪ ⮦¥ ¢ ®ª® 1
LD HL,B1_CPU0-CPU5 ; ¤«ï 0 ¬ ¯¯¥à
CALL SELECT_MAPPER
RESETUPWINS1 EXX
LD BC,CPU6 ; ¤à¥á ç⥨ï/§ ¯¨á¨ 0x8000 ¢ëè¥
LD A,H ; ¯à®¢¥àª áâ à襣® ¡ ©â ¤à¥á
EXX
CP 0x40
JR C,RESETUPWINS2 ; ãáâ ®¢ª ¤«ï ®ª® 0,1
INC HL
INC HL
EXX
LD BC,CPU5 ; ¤à¥á ç⥨ï/§ ¯¨á¨ 0x4000 ¢ëè¥
EXX
CP 0x80
JR C,RESETUPWINS2 ; ãáâ ®¢ª ¤«ï ®ª® 1,2
INC HL
INC HL
EXX
LD BC,CPU0 ; ¤à¥á ç⥨ï/§ ¯¨á¨ ¡¥§ ¨§¬¥¥¨©
EXX
CP 0xC0
JR C,RESETUPWINS2 ; ãáâ ®¢ª ¤«ï ®ª® 2,3
INC HL
INC HL
EXX
LD BC,CPU3 ; ¤à¥á ç⥨ï/§ ¯¨á¨ 0x4000 ¨¦¥
EXX
LD B,HIGH (WIN_A6) ; áâ à訩 ¡ ©â ¤à¥á ¯®àâ ®ª 2
CALL RESETUPWINS4
LD DE,0xFFF8
ADD HL,DE ; ¤à¥á £¤¥ ª®ä¨£ áâà ¨æ ®á®¢®© ¯ ¬ï⨠«¥¦¨â
JR RESETUPWINS5
RESETUPWINS2 LD B,HIGH (WIN_A6) ; áâ à訩 ¡ ©â ¤à¥á ¯®àâ ®ª 2
CALL RESETUPWINS4
RESETUPWINS5 LD B,HIGH (WIN_A3) ; áâ à訩 ¡ ©â ¤à¥á ¯®àâ ®ª 3
CALL RESETUPWINS4
EXX
RET
RESETUPWINS4 LD E,(HL) ; ¡ ©â ¤«ï § ¯¨á¨ ¢ ¯®àâ
INC HL ; 㪠§ ¨¥ ¡ ©â ¤à¥á ¯®àâ
BIT 3,(HL)
JR NZ,RESETUPWINS3
SET 3,B
LD A,(HL)
AND 3
RRCA
RRCA
OUT (C),A ; á ç « ¯¨è¥¬ ¢ ¯®àâ xFF7
RES 3,B
RESETUPWINS3 INC HL
OUT (C),E ; ⥯¥àì ¯¨è¥¬ ¢ ¯®àâ x7F7
RET
; ç⥨¥ ¡ ©â ¨§ ®¡« á⨠¯ ¬ï⨠¢ë§¢ 襩 ¯à®£¨
P5_READ_BYTE PUSH HL
PUSH DE
PUSH BC
PUSH AF
LD A,(RADRRET_H) ; áâ à訩 ¡ ©â ¤à¥á ®âªã¤ ç¨â âì
CP 0x40
JR NC,READBYTE_03
; ¥á«¨ ¤à¥á çâ¥¨ï ¨¦¥ 0x4000
LD HL,B1_CPU0 ; ¡ ©âë ¨ ¤à¥á ¯®à⮢ 0 ¬ ¯¯¥à
CALL SELECT_MAPPER
READ_CPU0_01 LD D,(HL) ; ¡ ©â ¤«ï § ¯¨á¨ ¢ ¯®àâ
INC HL
LD A,(HL) ; áâ à訩 ¡ ©â ¤à¥á ¯®àâ 㦮© áâà ¨æë
AND HIGH (WIN_A5)
OR HIGH (WIN_P5) ; ¯à¥®¡à §®¢ «¨ áâ à訩 ¡ ©â ¤à¥á ¤«ï ¢ª«îç¥¨ï ¢ 1 ®ª¥
LD B,A
LD C,LOW (WIN_A0) ; BC = ¤à¥á ¯®àâ
LD A,(R_77)
LD E,0x3F
AND 0x10 ; ®¯à¥¤¥«ï¥¬ DOS ¨«¨ ¥ DOS
JR Z,READ_CPU0_02
DEC E
READ_CPU0_02 LD A,D
AND E
OUT (C),A ; ¢ª«îç ¥¬ ¯ £ã BASIC ¨«¨ DOS
LD DE,CPU5 ; ᬥ饨¥ ¤® 1 ®ª ¯à®¥æ¨à®¢ ¨ï
LD HL,(RADRRET_L) ; ¤à¥á ®âªã¤ ç¨â âì
ADD HL,DE ; ç¨â âì ç¥à¥§ 1 ®ª® ¯à®¥æ¨à®¢ ¨ï
LD A,(HL) ; ¯à®ç¨â «¨ ¡ ©â
SBC HL,DE ; ¢¥à㫨 ¤à¥á ¡ ©â
INC HL ; 㢥«¨ç¨«¨ ¤à¥á ¢®§¢à â
LD (RADRRET_L),HL ; ¢¥à㫨 ¤à¥á ¢®§¢à â
JR READBYTE_02
; ¥á«¨ ¤à¥á çâ¥¨ï ¢ëè¥ 0x4000
READBYTE_03 LD HL,B1_CPU0 ; ¡ ©âë ¨ ¤à¥á ¯®à⮢ 0 ¬ ¯¯¥à
CALL SELECT_MAPPER
READBYTE_01 LD A,(RADRRET_H) ; áâ à訩 ¡ ©â ¤à¥á ®âªã¤ ç¨â âì
AND 0xC0
LD C,A
RLCA
RLCA
RLCA
LD E,A
LD D,0 ; DE = ᬥ饨¥ ¢ â ¡«¨æ¥ ¡ ©â ¨ áâ à襣® ¡ ©â áâà ¨æë ç⥨ï
ADD HL,DE
LD D,(HL) ; ¡ ©â ¤«ï § ¯¨á¨ ¢ ¯®àâ
INC HL
LD A,(HL)
AND HIGH (WIN_A5)
OR HIGH (WIN_P5)
LD B,A
LD C,LOW (WIN_A5) ; BC = ¤à¥á ¯®àâ ¤«ï 1 ®ª ¯à®¥æ¨à®¢ ¨ï
LD HL,(RADRRET_L) ; ¤à¥á ®âªã¤ ç¨â âì
OUT (C),D ; ¢ª«î稫¨ áâà ¨æã ¤«ï çâ¥¨ï ¡ ©â
LD E,L ; ¬« ¤è¨© ¡ ©â ¤à¥á ç⥨ï
LD A,H
AND HIGH (WIN_A5)
OR HIGH (CPU5)
LD D,A ; áâ à訩 ¡ ©â ¤à¥á ç⥨ï
LD A,(DE) ; ¯à®ç¨â «¨ ¡ ©â
INC HL ; 㢥«¨ç¨«¨ ¤à¥á ¢®§¢à â
LD (RADRRET_L),HL ; ¢¥à㫨 ¤à¥á ¢®§¢à â
READBYTE_02 LD (NEXTBYTERST8),A ; ¯®«®¦¨«¨ ¯à®ç¨â ë© ¡ ©â
CALL MAIN_MEM13 ; ¢¥à㫨 áâà ¨æë ¢ 1 ¨ 3 ®ª® ¯à®¥æ¨à®¢ ¨ï
POP AF
POP BC
POP DE
POP HL
RET
LDIR_BYTES EXX
LD BC,INT_ONLY_RET
PUSH BC
LD BC,LDIR__BYTES
PUSH BC
LD BC,WIN_P0
XOR A
JP ADR_SEL_ROM
; ¢®ááâ ®¢«¥¨e áâà ¨æ ¢ ®ª å ¯à®¥æ¨à®¢ ¨ï 1 ¨ 3
MAIN_MEM13 LD HL,B1_CPU1 ; ¤«ï 0 ¬ ¯¯¥à
CALL SELECT_MAPPER
MAINMEM1 CALL MAINMEM3 ; ¢¥à㫨 ¤«ï 1 ®ª ¯à®¥æ¨à®¢ ¨ï
INC HL ; ¤ «¥¥ ¢®§¢à é ¥¬ ¤«ï 3 ®ª ¯à®¥æ¨à®¢ ¨ï
INC HL
CALL MAINMEM3
SET_7FFD DEC HL
BIT 3,(HL)
RET Z
DEC HL
BIT 7,(HL)
RET Z
READ_7FFD
LD D,A
LD E,0
LD HL,PAGES_7FFD_ALL
JR NZ,SET7FFD1
AND 0xE0
RRCA
RRCA
LD E,A
SET7FFD1 LD A,D
AND 7
OR E
LD E,A
LD D,0
ADD HL,DE
LD A,(HL)
OUT (C),A
RET
XXF7_7FFD MACRO B
PLUSIK := B
REPT 8
DB PLUSIK
PLUSIK := PLUSIK-1
ENDM
ENDM
PAGES_7FFD_ALL XXF7_7FFD 0xFF
XXF7_7FFD 0xEF
XXF7_7FFD 0xDF
XXF7_7FFD 0xCF
XXF7_7FFD 0xF7
XXF7_7FFD 0xE7
XXF7_7FFD 0xD7
XXF7_7FFD 0xC7
MAINPAGE3_TAP LD HL,B1_CPU3
CALL SELECT_MAPPER
CALL MAINMEM3
JR SET_7FFD
MAINMEM3 LD C,LOW (WIN_A0)
LD E,(HL)
INC HL
LD A,8
AND (HL)
LD A,E
JR Z,MAINMEM4
OR 0xC0
MAINMEM4 LD E,A
LD A,(HL)
OR 0x3F
LD B,A
LD A,0x40
OUT (C),A
RES 3,B
INC HL
OUT (C),E
INT_ONLY_RET RET
; ª®¢¥àá¨ï áç¨â ëå § 票© ¨§ ¯®à⮢ ª®ä¨£ãà 樨
; HL = ¤à¥á ®âªã¤ ¡à âì áç¨â ë¥ § ç¥¨ï ¤«ï ª®¢¥àᨨ
; DE = ¡¨âë 7,6 ¤«ï ¤¥ª®¤¨à®¢ ¨ï
; BC = ªã¤ ᪫ ¤ë¢ âì ¤¥ª®¤¨à®¢ ®¥
; A = áç¨â ®¥ § 票¥ ¤«ï ª®¢¥àᨨ ¤«ï ¯®àâ xx77
CONVERT_BPORT LD A,(HL)
PUSH AF
INC HL
INC HL
INC HL
LD E,(HL)
INC HL
LD D,(HL)
LD BC,8
LD A,C ; ª®¢¥àâ¨âì 8 ¡ ©â
ADD HL,BC
LD BC,B0_CPU0
LD IYL,HIGH (WIN_A3)&0xF8
CBPORT03 EX AF,AF'
LD A,(HL)
CP 0xC0
JR NC,CBPORT01
; ¥á«¨ ç¨á«® ¬¥¥¥, â® ¢®ááâ ¢«¨¢ âì ¢ ¯®àâë x7F7
LD (BC),A ; ®¬¥à áâà ¨æë ¤«ï § ¯¨á¨ ¢ ¯®à⠯ਠ¢®ááâ ®¢«¥¨¨
INC BC
LD A,IYL
ADD A,0x40
LD IYL,A
AND 0xF0
SRL E
SRL D
LD (BC),A ; áâ à訩 ¡ ©â ¤à¥á ¯®àâ
INC BC
JR CBPORT02
; ¥á«¨ ç¨á«® ¡®«ìè¥, â® ¢®ááâ ¢«¨¢ âì ¢ ¯®àâë xFF7
CBPORT01 LD A,(HL)
RLCA
RLCA
SRL D
RRA
SRL E
RRA
LD (BC),A ; ®¬¥à áâà ¨æë ¤«ï § ¯¨á¨ ¢ ¯®à⠯ਠ¢®ááâ ®¢«¥¨¨
INC BC
LD A,IYL
ADD A,0x40
LD IYL,A
LD (BC),A ; áâ à訩 ¡ ©â ¤à¥á ¯®àâ
INC BC
CBPORT02 DEC HL
EX AF,AF'
DEC A
JR NZ,CBPORT03
POP HL
LD L,0xBC
LD A,H
AND 0x0F
OR 0xA0
LD (BC),A ; ¡ ©â ¤«ï § ¯¨á¨ ¢ ¯®à⠯ਠ¢®ááâ ®¢«¥¨¨
INC BC
LD A,H
AND 0x80
RRCA
OR L
LD L,A
LD A,H
AND 0x60
RLCA
RLCA
RLCA
OR L
LD (BC),A ; áâ à訩 ¡ ©â ¤à¥á ¯®àâ
RET
READ_KEYS
RET
; ¤à ©¢¥à
include fat/mounter.a80
include fat/dev_drv.a80
include fat/ngs_sd_drv.a80
include fat/z_sd_drv.a80
include fat/nemo_drv.a80
include fat/read_fat.a80
include fat/usb_drv.a80
STORE_AY LD BC,0xFFFD
LD A,0xFE
OUT (C),A
; LD HL,AY_REGS2
CALL .L1
LD BC,0xFFFD
LD A,0xFF
OUT (C),A
; LD HL,AY_REGS1
.L1 LD DE,0xFFBF;C0
; LD A,0x0D
;.L2 LD B,D
; OUT (C),A
; LD B,E
; INI
; DEC A
; JP P,.L2
; DEC E
LD H,0
LD A,0x0D
.L3 LD B,D
OUT (C),A
LD B,E
OUT (C),H
DEC A
JP P,.L3
RET
;RESTORE_AY LD BC,0xFFFD
; LD A,0xFE
; OUT (C),A
; LD HL,AY_REGS2
; CALL .L1
; LD BC,0xFFFD
; LD A,0xFF
; OUT (C),A
; LD HL,AY_REGS1
;.L1 LD DE,0xFFC0
; LD C,0xFD
; LD A,0x0D
;.L2 LD B,D
; OUT (C),A
; LD B,E
; OUTI
; DEC A
; JP P,.L2
; RET
SYMS4SORT DB ".!#$%&'()-0123456789@ABCDEFGHIJKLMNOPQRSTUVWXYZ^_`{}~",0x7F
DB "
ð",0
X_OFFSET EQU 63
Y_OFFSET EQU 2
TEXT_PORTREGS DB 0x17,MAGIC_COLOR
DB 0x16,Y_OFFSET+0x01,X_OFFSET+0,"SP: PC:"
DB 0x16,Y_OFFSET+0x02,X_OFFSET+0,"IR:"
DB 0x16,Y_OFFSET+0x03,X_OFFSET+0,"AF: AF':"
DB 0x16,Y_OFFSET+0x04,X_OFFSET+0,"BC: BC':"
DB 0x16,Y_OFFSET+0x05,X_OFFSET+0,"DE: DE':"
DB 0x16,Y_OFFSET+0x06,X_OFFSET+0,"HL: HL':"
DB 0x16,Y_OFFSET+0x07,X_OFFSET+0,"IX: IY:"
DB 0x16,Y_OFFSET+0x08,X_OFFSET+0," INT IM"
DB 0x16,Y_OFFSET+0x0A,X_OFFSET+0," MAP 0 1"
DB 0x16,Y_OFFSET+0x0B,X_OFFSET+0,"CPU3:"
DB 0x16,Y_OFFSET+0x0C,X_OFFSET+0,"CPU2:"
DB 0x16,Y_OFFSET+0x0D,X_OFFSET+0,"CPU1:"
DB 0x16,Y_OFFSET+0x0E,X_OFFSET+0,"CPU0:"
DB 0x16,Y_OFFSET+0x10,X_OFFSET+0,"7FFD: FF:"
DB 0x16,Y_OFFSET+0x11,X_OFFSET+0,"EFF7: 7F:"
DB 0x16,Y_OFFSET+0x12,X_OFFSET+0," 77: 5F:"
DB 0x16,Y_OFFSET+0x13,X_OFFSET+0," BF: 3F:"
DB 0x16,Y_OFFSET+0x14,X_OFFSET+0," DOS: 1F:"
DB 0x16,Y_OFFSET+0x15,X_OFFSET+0,"BREAK:"
DB 0x16,1,0x10,0x17,0x32," EVO Magic Service beta ",0
TXT_VERIFY_FONT DB 0x16,0x18,0,0x17,0x22," VERIFY READING FONT ",0
TXT_VERIFY_OK DB " OK ",0
TXT_VERIFY_ERR DB "ERROR ",0
; ¯à®¢¥àª áç¨â ®£® ä®â
IF _CMP_FONT=1
CMP_FONT LD H,CMOS_BYTE_00
ROMCALL READCMOS,ROM_RST82
AND M_TYPE_FONT
LD HL,CP866_FONT
JR NZ,CMPFONT1
LD HL,ATM_FONT
CMPFONT1 LD DE,CPU1+OFFSET_BUFSYM
PUSH DE
ROMCALL UNPACK,ROM_RST80
POP DE
INC D
LD BC,0x700
LD HL,CPU1+OFFSET_FNTSAVE+0x100
CMPFONT2 LD A,(DE)
INC DE
CP (HL)
SCF
RET NZ
CPI
JP PE,CMPFONT2
XOR A
RET
ENDIF
CMP_SCRMODE LD HL,FLAGS
RES B_VIDEO_MODE,(HL)
AND 7
CP 3
RET Z
SET B_VIDEO_MODE,(HL)
RET
SD_CARD_LOST LD HL,FLAGS_DRV
LD A,B_NEW_SD
OR (HL)
LD (HL),A
PEC_ON M_SHADOW_BF
CALL MAIN_MEM13
LD IX,SDCARD_LOST
ROMCALL IWINW,ROM_RST82
JR $
include math.a80
include sortfiles.a80
FREE_MAIN EQU 0x3FF6-$
DUPL FREE_MAIN,0xFF
DW FREE_MAIN ; à §¬¥à ᢮¡®¤®£® ¬¥áâ
DB "RST_08"
DW DATA_VERS
DEPHASE
include addons.a80
include addon1.a80
include addon2.a80
include mainmenu.a80