Rev 1067 |
Blame |
Compare with Previous |
Last modification |
View Log
| Download
| RSS feed
| ?url?
; LAST UPDATE: 24.02.2023 savelij
; § £à㧪 ¢ë¡à ®£® èà¨äâ
LOAD_FONT LD HL,FONTS
LD DE,CMP4FONTS
JR FATBOOT4
; § £à㧪 tap ä ©«
EMULTAPLOAD LD HL,TAPES
LD DE,CMP4TAPES
JR FATBOOT4
; § £à㧪 ¯®«®£® rom ä ©« ¤«ï ®¡®¢«¥¨ï 512KB
LOAD4FLASH_FULL LD HL,ROMS
LD DE,CMP4ROMS
LD A,8
LD (CMP_ROMSIZE),A
JR FATBOOT4
; § £à㧪 USER ROM ä ©« ¤«ï ®¡®¢«¥¨ï 64KB
LOAD4FLASH_CUST LD HL,ROMS
LD DE,CMP4ROMS
LD A,1
LD (CMP_ROMSIZE),A
JR FATBOOT4
; § £à㧪 ®¡à § à ¬¤¨áª
COPYIMAGE LD HL,IMAGES
LD DE,CMP4IMAGE
JR FATBOOT4
; § £à㧪 HOBETA ä ©« ¤«ï § ¯ãáª
FATBOOT LD HL,HOBETA
LD DE,CMP4HOBETA
FATBOOT4 LD (GDE_EXT_FILES),HL
LD (CMP_FOUNDED),DE
SELECT_DEVICE DI
LD HL,ERS_FLAGS
SET B_RUN_FAT,(HL) ; à ¡®â âì ¡ã¤¥¬ á FAT
RST8 _COM_DEV,_KOL_VOL
LD A,E
AND A
JP Z,_STUPID
LD HL,ADR_CAT-0x100 ; ¤à¥á ªã¤ ¯®«®¦¨âì â ¡«¨æã ©¤¥ëå à §¤¥«®¢
RST8 _COM_DEV,_GET_FNDVOLUME ; ¯®«ã票¥ â ¡«¨æë ©¤¥ëå à §¤¥«®¢
LD B,E ; áç¥â稪 ª®«¨ç¥á⢠©¤¥ëå à §¤¥«®¢
LD IX,SEL_FAT_DEV ; ¤à¥á ®¯¨á â¥«ï ®ª ¢ë¡®à à §¤¥«®¢
LD (IX+_NUM_PKT),D ; ®¬¥à ¯ãªâ ¢ ®ª¥
LD (IX+_TEK_PKT_L),D ; ®¬¥à ⥪ã饣® ¯ãªâ
LD (IX+_NUM_KOL_L),E ; ª®«¨ç¥á⢮ ¯ãªâ®¢ ¢ ®ª¥
INC E
INC E
LD (IX+_V_SIZE),E ; ãáâ ®¢¨«¨ ¢ëá®â㠢뢮¤¨¬®£® ®ª
LD DE,6 ; è £ ¯® â ¡«¨æ¥ ©¤¥ëå à §¤¥«®¢ -2
EXX
LD HL,TXT_FAT_SEL
LD DE,SEL_FAT_DRV ; ¤à¥á £¤¥ ¡ã¤¥â ä®à¬¨à®¢ âìáï ⥪áâ ®ª ¢ë¡®à à §¤¥«®¢
LD BC,ETXT_FAT_SEL-TXT_FAT_SEL
LDIR
EX DE,HL
EXX
FATBOOT1 EXX
LD (HL),0x0D
INC HL
LD (HL),3
INC HL
EXX
LD A,(HL) ; ¢§ï«¨ ®¬¥à à §¤¥«
INC HL
LD C,(HL) ; MASTER ¨«¨ SLAVE
INC HL
ADD A,C
ADD A,C
SUB 4 ; -4, ¨¡® ¤¨áª®¢®¤ë ¥ ãç¨âë¢ îâáï
EXX
EX DE,HL
LD HL,TXT4MENU_DEVICE ; ¤à¥á â ¡«¨æë ⥪áâ ® à §¤¥« å
LD C,A
ADD A,A
ADD A,A
ADD A,C
ADD A,A
ADD A,A ; 㬮¦¥® 20
LD C,A
LD B,0
ADD HL,BC ; ¯®«ã稫¨ ¤à¥á ®âªã¤ ⥪áâ ¢§ïâì
LD BC,20 ; ¤«¨ ¯¥à¥®á 20 ¡ ©â
EXX
LD A,L
EXX
RRCA
RRCA
RRCA
AND 0x1F
ADD A,"E" ; ¡ãª¢ ©¤¥®£® ãáâனáâ¢
LD (DE),A
INC DE
LDIR ; ¯¥à¥®á ⥪áâ ¨§ ¢ë¡à ®© â ¡«¨æë
EXX
LD A,(HL) ; ⨯ à §¤¥«
EXX
LD C,A
ADD A,A
ADD A,A
ADD A,C ; 㬮¦¥® 5
LD HL,TXT4MENU_TYPE ; ¤à¥á â ¡«¨æë ⥪áâ ⨯®¢ à §¤¥«®¢
LD C,A
ADD HL,BC
LD C,5
LDIR ; ¯¥à¥®á ⥪áâ ¨§ ¢ë¡à ®© â ¡«¨æë
EX DE,HL
EXX
ADD HL,DE
DJNZ FATBOOT1
EXX
LD (HL),0
INC HL
LD B,(IX+_V_SIZE)
DEC B
DEC B
LD C,B
LD A,"E"
LD (IX+_ADR_HOTKEY_L),L
LD (IX+_ADR_HOTKEY_H),H ; ¤à¥á â ¡«¨æë £®àïç¨å ª« ¢¨è ¢ë¡®à FAT ãáâனáâ¢
LD (HL),B
INC HL
FATBOOT3 LD (HL),A ; ä®à¬¨à®¢ ¨¥ â ¡«¨æë £®àïç¨å ª« ¢¨è
INC HL
INC A
DJNZ FATBOOT3
LD (SELFATDEVEXE),HL ; ¯®«®¦¨«¨ ¤à¥á â ¡«¨æë ¤à¥á®¢ ¢ë§®¢ ¢ë¡à ®£®
LD B,C
FATBOOT2 LD (HL),LOW (SEL_FAT) ; ä®à¬¨à®¢ ¨¥ â ¡«¨æë ¤à¥á®¢ ¢ë§ë¢®¢
INC HL
LD (HL),HIGH (SEL_FAT)
INC HL
DJNZ FATBOOT2
LD A,C
EXX
DEC A
JR Z,SEL_FAT
RST8 _WINW
JP _RULILKA ; ¢®§¢à é ¥¬áï ª ®¡é¥¬ã ã¯à ¢«¥¨î
FILES_BROWSE LD HL,SUPPORT_EXT
LD DE,CMP4TAPES
DI
LD (GDE_EXT_FILES),HL
LD (CMP_FOUNDED),DE
LD HL,ERS_FLAGS
SET B_RUN_FAT,(HL)
JR SEL_FILES
; ¯¥à¥ª«î票¥ ãáâனá⢠¨ ¢ë¢®¤ ©¤¥®£® ¥¬
SEL_FAT DI
LD A,(IX+_TEK_PKT_L) ; ¢§ï«¨ ®¬¥à ¢ë¡à ®£® ãáâனáâ¢
RST8 _COM_DEV,_SET_VOL ; ¢ë¡à «¨ ãáâனá⢮ ¯® ®¬¥àã
SEL_FILES
RST8 _COM_DEV,_KOL_VOL
LD A,E
AND A
JP Z,_STUPID
CALL SEARCH_FILE
; ¥á«¨ ä ©« ©¤¥ ⮫쪮 ®¤¨
; LD HL,1
; AND A
; SBC HL,BC ; ©¤¥® çâ®-â® ®¤®?
; JR NZ,SEL_FAT1 ; ¥á«¨ ©¤¥® >1, â® ¯à®¤®«¦ ¥¬
; PUSH BC ; á®åà ¨«¨ ª®«¨ç¥á⢮ ©¤¥®£®
; LD BC,(ADR_CAT_FAT) ; ¢§ï«¨ ®¬¥à ¥¤¨á⢥®£® ©¤¥®£®
; LD A,6
; RST8 _COM_FAT,_POS_FILES
; LD HL,BUF_FILEITEM
; RST8 _COM_FAT,_READ_DIR ; ¯®«ã稫¨ ®¯¨á ⥫ì
; POP BC ; ¢¥à㫨 ª®«¨ç¥á⢮ ©¤¥®£®
; LD DE,0x0B
; ADD HL,DE
; LD A,(HL) ; ¢§ï«¨ ä« £®¢ë© ¡ ©â ⮣® ç⮠諨
; AND 0x10
; LD HL,0 ; ¥á«¨ § ¯ã᪠¥¬, â® ®¬¥à 0 ¨§ ©¤¥®£®
; JR Z,RUN_HOB1 ; ¥á«¨ íâ® ä ©« áà §ã § ¯ã᪠¥¬
;SEL_FAT1
LD IX,FAT_FILES ; ¥á«¨ ¤¨à , â® ¢ë¢®¤¨¬ ¢ ®ª®
JP OUT_HOB
; § ¯ã᪠¢ë¡à ®£® ª®¤®¢®£® ä ©« ¨§ HOBETA ä ©« ¨«¨ ¢å®¤/¢ë室 ¢ ¤¨àë
RUN_HOB DI
CALL SHUT2AY ; ¡ã¬ª «ª ¢ AY
LD L,(IX+_TEK_PKT_L)
LD H,(IX+_TEK_PKT_H) ; HL = ®¬¥à ¢ë¡à ®£® ä ©«
RUN_HOB1 LD DE,ADR_CAT_FAT
ADD HL,HL
ADD HL,DE ; ®âªã¤ ®¬¥à ä ©« ¢§ïâì
LD C,(HL)
INC HL
LD B,(HL) ; ¯®«ã稫¨ ⥪ã騩 ¢ë¡à ë© ®¬¥à
LD (NUMFAT_SELECT),BC
LD A,6
RST8 _COM_FAT,_POS_FILES ; ãáâ ®¢ª ¢ãâ॥£® 㪠§ ⥫ï FAT ¤à ©¢¥à
LD HL,BUF_FILEITEM
RST8 _COM_FAT,_READ_DIR ; ¯®«ã稫¨ ®¯¨á â¥«ì ¯® ãáâ ®¢«¥®¬ã ®¬¥àã
LD DE,0x0B ; 㦥 ¡ ©â ¯® ᬥ饨î
ADD HL,DE ; ¤«ï ®¯à¥¤¥«¥¨ï ä ©« ¨«¨ ¤¨à¥ªâ®à¨ï
LD A,(HL) ; ¨§ í⮣® ¡ ©â 㦥 ®¤¨ ¡¨â
SBC HL,DE
AND 0x10 ; ¯à®¢¥à¨«¨
JP Z,GO_RUN_HOB ; ¥á«¨ íâ® ä ©«, â® § ¯ã᪠¥¬ ª®¤®¢ë© ¡«®ª
RST8 _COM_FAT,_ENTER_DIR ; ¢å®¤¨¬ ¢ ¢ë¡à ãî ¤¨à¥ªâ®à¨î
PUSH HL ; á®åà ¨«¨ ¤à¥á £¤¥ ®¯¨á â¥«ì ¢ë¡à ®£® ä ©« «¥¦¨â
LD HL,BUF_RDPATH
RST8 _COM_FAT,_GET_PATH ; ¯®«ãç¨âì ¯ãâì ª ä ©«ã ¯®á«¥ ¢å®¤ ¢ ¤¨à¥ªâ®à¨î
LD A,(HL) ; ¢§ï«¨ ¡ãª¢ã ãáâனá⢠⥪ã饣® ¯ãâ¨
SUB "E" ; ¯à¥®¡à §®¢ «¨ ¢ ®¬¥à ãáâனáâ¢
LD D,A
LD E,0
LD HL,BUF_LEVDIR
SRL D
RR E
SRL D
RR E
ADD HL,DE
EX (SP),HL ; á®åà ¨«¨ ¤à¥á ®¯¨á ⥫ï FAT ãáâனá⢠, ¢®ááâ ®¢¨«¨ ¤à¥á ®¯¨á ⥫ï ä ©«
LD A,(HL) ; ¡ã¤¥¬ ¯à®¢¥àïâì ¯¥à¢ë© ᨬ¢®« ¨¬¥¨ ¯à¥¤ë¤ã饣® ®¯¨á ⥫ï
POP HL ; ¢®ááâ ®¢¨«¨ ¤à¥á ®¯¨á ⥫ï FAT ãáâனáâ¢
CP "." ; ¥á«¨ ¯¥à¢ë© ᨬ¢®« ¨¬¥¨ ¥ ".", â® á®åà 塞 ⥪ã騥 § ç¥¨ï ®ª®èª ¨
JR NZ,SNYT0 ; ¢å®¤¨¬ ¢ ¤¨àã
LD C,(HL) ; ¯à¨ ¢ë室¥ ¨§ ¤¨à¥ªâ®à¨¨ ¢®ááâ ¢«¨¢ ¥¬ ¯®§¨æ¨¨ ¢ ®ª¥
INC HL
LD B,(HL)
INC HL
PUSH HL
ADD HL,BC
DEC HL
LD A,(HL)
DEC HL
LD C,(HL)
DEC HL
LD B,(HL)
POP DE
AND A
SBC HL,DE
EX DE,HL
DEC HL
LD (HL),D
DEC HL
LD (HL),E
LD (IX+_TEK_PKT_L),C
LD (IX+_TEK_PKT_H),B
LD (IX+_NUM_PKT),A
CALL SEARCH_FILE ; ¯®¨áª ¯® ¬ ᪥ ¢ ¤¨à¥ªâ®à¨¨ ¢ ª®â®àãî ¢®è«¨
LD (IX+_NUM_KOL_L),C
LD (IX+_NUM_KOL_H),B ; ãáâ ®¢¨«¨ ª®«¨ç¥á⢮ ©¤¥ëå ¯® ¬ ᪥ ä ©«®¢ ¢ í⮩ ¤¨à¥ªâ®à¨¨
JP REOUT_HOB ; ¢ë¢¥«¨ ®¢®¥ ᮤ¥à¦¨¬®¥ ®ª
; ¯à¨ ¢å®¤¥ ¢ ¤¨àã á®åà ¥¨¥ ⥪ãé¨å ¤ ëå ®ª
SNYT0 LD C,(HL)
INC HL
LD B,(HL) ; BC = ᬥ饨¥ ¤® ¯¥à¢®© ᢮¡®¤®© ï祩ª¨
INC HL
PUSH HL ; HL = ¤à¥á ç « á ¬¨å ï祥ª
ADD HL,BC ; HL = ¤à¥á ¯¥à¢®© ᢮¡®¤®© ï祩ª¨
LD D,(IX+_TEK_PKT_H)
LD E,(IX+_TEK_PKT_L)
LD A,(IX+_NUM_PKT)
LD (HL),D
INC HL
LD (HL),E
INC HL
LD (HL),A
INC HL
POP DE ; DE = ¤à¥á ç « á ¬¨å ï祥ª
AND A
SBC HL,DE
EX DE,HL
DEC HL
LD (HL),D
DEC HL
LD (HL),E
LD C,(IX+_NUM_KOL_L)
LD B,(IX+_NUM_KOL_H)
CALL SEARCH_FILE
JP OUT_HOB
; BCDE = (ADR) - BCDE
BCDEHLM LD A,(HL)
INC HL
SUB E
LD E,A
LD A,(HL)
INC HL
SBC A,D
LD D,A
LD A,(HL)
INC HL
SBC A,C
LD C,A
LD A,(HL)
SBC A,B
LD B,A
RET
SELMOUNT LD HL,BUF_FILEITEM+0x1C
LD BC,0x0A
LD DE,0
CALL BCDEHLM
JP NZ,LOADIMAGE ; ®¡à § ¬¥ìè¥ ¨«¨ ¡®«ìè¥ áâ ¤ à⮣®, § £à㧪 ¢ à ¬¤¨áª
; à §¬¥à TRD ®¡à § áâ ¤ à⮣® à §¬¥à
LD HL,ERS_FLAGS
BIT B_VIEW_IMG,(HL)
LD IX,RUN_IMAGE ; ®ª® ¢ë¡®à § £à㧪¨/¬®â¨à®¢ ¨ï
RST8 _WINW
JP _RULILKA
RUNIMG_A XOR A
JR RUNIMG_ALL
RUNIMG_B LD A,1
JR RUNIMG_ALL
RUNIMG_C LD A,2
JR RUNIMG_ALL
RUNIMG_D LD A,3
; § ¯ã᪠Basic ä ©« á ¯à¨ã¤¨â¥«ìë¬ ¯¥à¥ª«î票¥¬ ¢¨àâ㠫쮣® ¨ ॠ«ì®£® ¤¨áª®¢®¤ 㪠§ ë© ®¬¥à
RUNIMG_ALL PUSH AF
RST8 _MOUNTER,_LOADIMAGE
POP AF
PUSH AF
RST8 _MOUNTER,_SET_VIRTREAL
POP AF
CALL SETUP_DRIVE
LD HL,ERS_FLAGS
BIT B_VIEW_IMG,(HL)
JP Z,RESTART
RES B_VIEW_IMG,(HL)
JP RUNMOUNT
; ⮫쪮 § £à㧪 ®¡à §
LOADIMAGE
RST8 _MOUNTER,_LOADIMAGE
LD HL,ERS_FLAGS
BIT B_VIEW_IMG,(HL)
JP Z,RESTART
RES B_VIEW_IMG,(HL)
JP START_IMG
MOUNT_A XOR A
; § ¯ã᪠Basic ä ©« á ¯à¨ã¤¨â¥«ìë¬ ¯¥à¥ª«î票¥¬ ¢¨àâ㠫쮣® ¨ ॠ«ì®£® ¤¨áª®¢®¤ 㪠§ ë© ®¬¥à
MOUNT_ALL PUSH AF
RST8 _MOUNTER,_OPEN_MOUNT ; !!!
POP AF
PUSH AF
RST8 _MOUNTER,_SET_VIRTREAL
POP AF
CALL SETUP_DRIVE
LD HL,ERS_FLAGS
BIT B_VIEW_IMG,(HL)
JP Z,RESTART
RES B_VIEW_IMG,(HL)
JP RUNMOUNT
MOUNT_B LD A,1
JR MOUNT_ALL
MOUNT_C LD A,2
JR MOUNT_ALL
MOUNT_D LD A,3
JR MOUNT_ALL
SEL4COPY_A XOR A
JR SEL4COPY
SEL4COPY_B LD A,1
JR SEL4COPY
SEL4COPY_C LD A,2
JR SEL4COPY
SEL4COPY_D LD A,3
SEL4COPY LD C,1
CALL FTR_DOS
RST8 _COM_FAT,_OPEN_FILE
LD HL,0
LD (TRD_5CF4),HL
LD HL,BUF_FILEITEM
LD BC,(NUMFAT_SELECT)
RST8 _COM_FAT,_READ_DIR
LD BC,(BUF_FILEITEM + 0x1D)
LD DE,0x40
CALL DIVIDE16
LD (FILESIZE_BLOCKS),BC
LD IX,WINCOPY_IMAGE
RST8 _WINW
LD A,0x11
CALL SET_7FFD
XOR A
.L1 PUSH AF
LD HL,0xC000
LD A,0x20
RST8 _COM_FAT,_READ_FILE
PUSH AF
LD HL,0xC000
LD DE,(TRD_5CF4)
LD BC,0x4006
CALL FTR_DOS
POP HL
POP AF
CALL DRAW_PROGRESS ; à¨á®¢ ¨¥ ¨¤¨ª â®à ª®¯¨à®¢ ¨ï
INC A
BIT 0,L
JR Z,.L1
; ä ©« ª®ç¨«áï
.L2 LD A,0x10
CALL SET_7FFD
JP RESTART
; § ¯ãáª, § £à㧪 ¨«¨ ¬®â¨à®¢ ¨¥ ä ©«®¢
GO_RUN_HOB
RST8 _COM_FAT,_OPEN_FILE
LD DE,8
ADD HL,DE
PUSH HL
LD HL,(BUF_FILEITEM+8)
LD DE,"RT"
AND A
SBC HL,DE
POP HL
JP Z,SELMOUNT ; ¯¥à¥å®¤ § £à㧪ã TRD ®¡à §
LD A,(HL)
CP "$"
JR Z,GORUNHOB1 ; ¯¥à¥å®¤ § £à㧪ã HOBETA
CP "S"
JP NZ,LOAD_IMAGE ; ¯¥à¥å®¤ § £à㧪ã SCL ®¡à §
INC HL
LD A,(HL)
DEC HL
CP "P"
JR Z,GORUNHOB1 ; ¯¥à¥å®¤ § £à㧪ã SPG
CP "N"
LD A,(HL)
JP NZ,LOAD_IMAGE ; ¯¥à¥å®¤ § £à㧪㠮¡à §
GORUNHOB1
RST8 _COM_DEV,_KOL_VOL ; § ¯à®á ã ¬¥¥¤¦¥à ãáâனá⢠® ⥪ã饬 ãáâனá⢥
LD A,D ; ¢§ï«¨ ®¬¥à ⥪ã饣® ãáâனáâ¢
LD HL,ADR_CAT_FAT
RST8 _COM_DEV,_GET_FNDVOLUME
ADD A,A
ADD A,A
ADD A,A
LD C,A
LD B,0
ADD HL,BC
LD A,(HL) ; ¢§ï«¨ ⨯ à §¤¥«
; SUB 4 ; ¯à®¯ã᪠¥¬ ¤¨áª®¢®¤ë
LD D,A ; ®¬¥à ⥪ã饣® ãáâனáâ¢
INC HL
LD E,(HL) ; ¢§ï«¨ ¬¥á⮯®«®¦¥¨¥ ®á¨â¥«ï (MASTER/SLAVE)
PUSH DE
LD HL,0x5800
LD DE,0x5801
LD BC,0x02FF
LD (HL),L
LDIR ; § ç¥à¨«¨ íªà ¤«ï ¬ ᪨஢ª¨ § ¯ã᪠«ª¨
LD HL,RUN_CODE
LD DE,0x5D3B
LD BC,ERUN_CODE-RUN_CODE
LDIR
CALL MEMSET ; ¢ëáâ ¢¨«¨ ०¨¬ ª®¬¯
CALL FOR_RUN
LD HL,0x4200 ; ªã¤ ᪮¯¨à®¢ âì ¯¥à¥¬¥ë¥ FAT ⥪ã饣® ¢ë¡à ®£® à §¤¥«
RST8 _INST_FATBOOT
POP DE
LD (0x42FE),DE
JP 0x4300
; § £à㧪 èà¨äâ ¤«ï ⥪á⬮¤
LOAD_FNT LD HL,ADR_CAT
LOAD_FNT1 LD A,4
RST8 _COM_FAT,_READ_FILE
PEC_ON M_FONT_BF
LD HL,ADR_CAT
LD DE,0
LD BC,0x800
LDIR
PEC_OFF M_FONT_BF
JP RESTART
; § £à㧪 FDI ®¡à §
LOAD_FDI LD A,E
CP "N"
JR Z,LOAD_FNT ; ¯¥à¥å®¤ § £à㧪ã ä®â
LD HL,ERS_FLAGS
SET B_LOAD_IMG,(HL)
LD A,RAM_RAMDISK ; áâà ¨æ ç « à ¬¤¨áª
PUSH AF ; á®åà ¨«¨ á⥪¥
CALL SET4MBPAGE ; ¢ª«î稫¨ ¥¥
LD HL,FDI_TABLE_CYL
LD DE,FDI_TABLE_CYL+1
LD BC,0x3FFF
LD (HL),0
LDIR ; ®ç¨á⪠áâà ¨æë á ®¯¨á ⥫ﬨ ¤®à®¦¥ª
LD IXH,0xFF
CALL LOAD1SECFDI ; ¯à¨ã¤¨â¥«ì ï § £à㧪 ¯¥à¢®£® ᥪâ®à
LD A,(0xC006) ; ¢§ï«¨ ª®«¨ç¥á⢮ áâ®à®
DEC A
LD A,(0xC004) ; ¢§ï«¨ ª®«¨ç¥á⢮ ¤®à®¦¥ª
JR Z,LOADFDI1
ADD A,A ; ¥á«¨ áâ®à® 2, ⮠㬮¦¨«¨ ª®«¨ç¥á⢮ ¤®à®¦¥ª 2
LOADFDI1 LD C,A ; ª®«¨ç¥á⢮ ¤®à®¦¥ª
LD HL,(0xC00A)
LD (START_DATA),HL
LD DE,0x4000 ; ¤à¥á ¡ãä¥à ç « ®¯¨á ⥫¥© ¤®à®¦¥ª
LD HL,0xC00F ; ¤à¥á ç « ¢ë¡®àª¨ ®¯¨á ⥫¥© ¤®à®¦¥ª ¢ FDI § £®«®¢ª¥
LOADFDI3 BIT 1,H
CALL NZ,LOAD1SECFDI ; ¥á«¨ ¢ë諨 § ¯à¥¤¥«ë ᥪâ®à ¬¥ï¥¬ 㪠§ â¥«ì ¨ £à㧨¬ á«¥¤ãî騩 ᥪâ®à ¢ ¡ãä¥à
LD A,(HL) ; ¡¨âë 8-15 á¬¥é¥¨ï ¤®à®¦ª¨ ®â ç «
AND 0x3F ; ¢§ï«¨ ¤«ï 8-13 ¡¨âë - ᬥ饨¥ ¢ ¡«®ª å ¢ áâà ¨æ¥
LD (DE),A ; ã«®¦¨«¨ ᬥ饨¥ ¢ ¡«®ª å ¢ áâà ¨æ¥
LD A,(HL) ; ¢§ï«¨ ¡¨âë 14-15
INC HL ; á«¥¤ãî騩 ¡ ©â FDI § £®«®¢ª
INC D ; §¤¥áì ¯®«®¦¨¬ ᬥ饨¥ ¢ áâà ¨æ å ¤® 㦮© ¤®à®¦ª¨
BIT 1,H
CALL NZ,LOAD1SECFDI ; ¥á«¨ ¢ë諨 § ¯à¥¤¥«ë ᥪâ®à ¬¥ï¥¬ 㪠§ â¥«ì ¨ £à㧨¬ á«¥¤ãî騩 ᥪâ®à ¢ ¡ãä¥à
LD B,A ; á®åà ¨«¨ ã¦ë¥ 14-15 ¡¨âë
LD A,(HL) ; ¢§ï«¨ 16-23 ¡¨âë á¬¥é¥¨ï ¤®à®¦ª¨ ®â ç «
RL B
RLA
RL B
RLA
LD (DE),A ; 㪫 ¤ª ¡¨â®¢ á¬¥é¥¨ï ®¬¥à áâà ¨æë
INC D
REPT 4
INC HL
ENDM
BIT 1,H
CALL NZ,LOAD1SECFDI ; ¥á«¨ ¢ë諨 § ¯à¥¤¥«ë ᥪâ®à ¬¥ï¥¬ 㪠§ â¥«ì ¨ £à㧨¬ á«¥¤ãî騩 ᥪâ®à ¢ ¡ãä¥à
LD B,(HL) ; ¢§ï«¨ ª®«¨ç¥á⢮ ᥪâ®à®¢ ¤®à®¦ª¥
LD A,B
AND A
JP Z,LOADFDI_ERR
INC HL
INC HL
LOADFDI4 INC HL
BIT 1,H
CALL NZ,LOAD1SECFDI ; ¥á«¨ ¢ë諨 § ¯à¥¤¥«ë ᥪâ®à ¬¥ï¥¬ 㪠§ â¥«ì ¨ £à㧨¬ á«¥¤ãî騩 ᥪâ®à ¢ ¡ãä¥à
LDI ; ¯¥à¥®á ®¬¥à ᥪâ®à
DEC DE
INC C
INC D
BIT 1,H
CALL NZ,LOAD1SECFDI ; ¥á«¨ ¢ë諨 § ¯à¥¤¥«ë ᥪâ®à ¬¥ï¥¬ 㪠§ â¥«ì ¨ £à㧨¬ á«¥¤ãî騩 ᥪâ®à ¢ ¡ãä¥à
LD A,(HL) ; ¢§ï«¨ à §¬¥à ᥪâ®à
EX DE,HL
LD (HL),1
AND A
JR Z,LOADFDI2
LD (HL),2
DEC A
JR Z,LOADFDI2
LD (HL),4
DEC A
JR Z,LOADFDI2
LD (HL),8
LOADFDI2 EX DE,HL
INC D
REPT 5
INC HL
ENDM
DJNZ LOADFDI4 ; ¢®§¢à é ¥¬áï ¤«ï ¯à®¤®«¦¥¨ï, ¯®ª ᥪâ®à ¤®à®¦ª¨ ¥ ª®ç âáï
LD D,0x40
INC E
DEC C
JR NZ,LOADFDI3 ; ¢®§¢à é ¥¬áï ¤«ï ¯à®¤®«¦¥¨ï ¯®ª ¥ ª®ç âáï ¤®à®¦ª¨
DEC HL
BIT 1,H
CALL NZ,LOAD1SECFDI ; ¥á«¨ ¢ë諨 § ¯à¥¤¥«ë ᥪâ®à ¬¥ï¥¬ 㪠§ â¥«ì ¨ £à㧨¬ á«¥¤ãî騩 ᥪâ®à ¢ ¡ãä¥à
PUSH HL
LD A,H
AND 1
LD B,A
LD C,L
LD A,IXH
ADD A,A
ADD A,B
LD B,A
LD HL,0
START_DATA EQU $-2
AND A
SBC HL,BC
EX DE,HL
POP HL
LD A,D
AND A
JR Z,LOADFDI7
LOADFDI8 INC H
BIT 1,H
CALL NZ,LOAD1SECFDI ; ¥á«¨ ¢ë諨 § ¯à¥¤¥«ë ᥪâ®à ¬¥ï¥¬ 㪠§ â¥«ì ¨ £à㧨¬ á«¥¤ãî騩 ᥪâ®à ¢ ¡ãä¥à
DEC D
JR NZ,LOADFDI8
LOADFDI7 ADD HL,DE
BIT 1,H
CALL NZ,LOAD1SECFDI ; ¥á«¨ ¢ë諨 § ¯à¥¤¥«ë ᥪâ®à ¬¥ï¥¬ 㪠§ â¥«ì ¨ £à㧨¬ á«¥¤ãî騩 ᥪâ®à ¢ ¡ãä¥à
PUSH HL ; á®åà ¨«¨ ¤à¥á ç «® ç « ᥪâ®à®¢
LD DE,0xC000
AND A
SBC HL,DE
LD (OSTAT_SECT),HL ; ᪮«ìª® ¡ ©â ¯¥à¥¥á⨠¨§ 墮áâ ᥪâ®à ¢ ¡ãä¥à¥ ¢ ç «® áâà ¨æë
LD B,H
LD C,L
LD HL,0x200
SBC HL,BC
LD (NACH_SECT),HL ; ᪮«ìª® ¡ ©â ¯¥à¥¥á⨠¨§ ç « ᥪâ®à ¢ ¡ãä¥à¥ ¢ ª®¥æ áâà ¨æë
POP HL ; ¢®ááâ ®¢¨«¨ á¤à¥á ç « ᥪâ®à®¢, ¤ «¥¥ § £à㧪 ¢á¥å ᥪâ®à®¢ ¢ ¯ ¬ïâì
LOADFDI5 POP AF
INC A
CALL SET4MBPAGE
PUSH AF
BIT 1,H
CALL NZ,LOAD1SECFDI
EX AF,AF'
LD DE,0x4000
LD BC,0
NACH_SECT EQU $-2
LDIR
EX AF,AF'
JP C,ELOAD_IMAGE
EX DE,HL
LD A,0x1F
RST8 _COM_FAT,_READ_FILE
JP C,ELOAD_IMAGE
PUSH HL
LD HL,0xC000
PUSH HL
LD A,1
RST8 _COM_FAT,_READ_FILE
POP HL
POP DE
LD BC,0
OSTAT_SECT EQU $-2
LDIR
JR LOADFDI5
LOADFDI_ERR LD A,RAM_RAMDISK
CALL SET4MBPAGE
LD HL,0x7FFF
LD (HL),0
DEC H
LD (HL),0
LD A,ZXSTD_CPU1
CALL SET4MBPAGE
LD SP,(LD_FILE_SP)
POP IY
POP IX
JP LDFDI_ERROR
; ᮧ¤ ¨¥ â ¡«¨æë ®¯¨á ⥫¥© ¤«ï ¯ãá⮣® à ¬¤¨áª
CREATE_TRD640 PUSH IX
PUSH IY
LD (LD_FILE_SP),SP
LD SP,ADR_CAT
JR ELT4
CREATE_RAMTABL PUSH IX
PUSH IY
LD (LD_FILE_SP),SP
LD SP,ADR_CAT
; ᮧ¤ ¨¥ â ¡«¨æë ®¯¨á â¥«ï ¤«ï § £à㦥ëå TRD ¨ SCL ®¡à §®¢
END_LOAD_TRD LD A,RAM_DATARAMD ; 㦠áâà ¨æ ®âªã¤ ç¨ ¥âáï § £àã¦¥ë© ®¡à §
CALL SET4MBPAGE
LD HL,(0x48E1) ; ¯¥à¢ë© ᢮¡®¤ë© â४ ᥪâ®à
LD A,L
LD L,H
LD H,0
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
OR L
LD L,A ; ª®«¨ç¥á⢮ § ïâëå ᥪâ®à®¢ á ¤¨à¥ªâ®à¨¥©
LD DE,(0x48E5) ; ª®«¨ç¥á⢮ ᢮¡®¤ëå ᥪâ®à®¢
ADD HL,DE
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL ; H = ª®«¨ç¥á⢮ ¤®à®¦¥ª
LD A,H
CP 0xA0
JR NC,ELT3
ELT4 LD A,0xA0
ELT3 EX AF,AF'
LD A,RAM_RAMDISK ; 㦠áâà ¨æ ç « à ¬¤¨áª , £¤¥ ¡ã¤¥â â ¡«¨æ ®¯¨á ⥫¥©
CALL SET4MBPAGE
LD HL,0x4000
PUSH HL
LD DE,0x4001
LD BC,0x3FFF
LD (HL),L
LDIR ; ®ç¨á⨫¨ áâà ¨æã
POP DE ; ¤à¥á ç «
LD HL,0 ; ᬥ饨¥ ¢ ¡«®ª å ¨ áâà ¨æ å
EX AF,AF'
ELT2 EX AF,AF'
LD BC,0x1000 ; áç¥â稪 ®¬¥à®¢ ᥪâ®à®¢ ¨ ¨å ®¬¥à
LD A,L
RRCA
RRCA
LD (DE),A ; ᬥ饨¥ ¢ ¡«®ª å ¤®à®¦ª¨ ¢ áâà ¨æ¥
INC D
LD A,H
LD (DE),A ; ᬥ饨¥ ¢ áâà ¨æ å ¤® ¤®à®¦ª¨
INC D
ELT1 INC C
LD A,C
LD (DE),A ; ®¬¥à ᥪâ®à
INC D
LD A,2
LD (DE),A ; à §¬¥à ᥪâ®à
INC D
DJNZ ELT1 ; ¢®á¨¬ ¢ â ¡«¨æ㠢ᥠ®¬¥à ᥪâ®à®¢ á à §¬¥à ¬¨
LD D,0x40 ; ¢¥à㫨 㪠§ â¥«ì ¢ ç «®
INC E ; ¤«ï á«¥¤ãî饩 ¤®à®¦ª¨
LD BC,0x40
ADD HL,BC ; ¯¥à¥å®¤ ª á«¥¤ãî饩 ¤®à®¦ª¥
EX AF,AF'
DEC A
JR NZ,ELT2 ; ¯®¢â®à塞 ¤«ï ¢á¥å ¤®à®¦¥ª
; ®¡é¨© ¢ë室 ¨§ § £à㧪¨ á ¢®§¢à ⮬ áâ ¤ à⮩ áâà ¨æë ¢ ®ª¥ ¯à®¥æ¨à®¢ ¨ï 1
ELOAD_IMAGE LD A,RAM_RAMDISK
CALL SET4MBPAGE
LD HL,0x7FFF
LD (HL),"R"
DEC H
LD (HL),"D"
CALL SET_RAMD_NAME
LD A,ZXSTD_CPU1
CALL SET4MBPAGE
LD SP,0
LD_FILE_SP EQU $-2
POP IY
POP IX
LD HL,ERS_FLAGS
BIT B_VIEW_IMG,(HL)
RET Z
RES B_VIEW_IMG,(HL)
; § £à㧪 ª â «®£ TR-DOS ¨ ¯®¨áª ¢ë¡à ®£® ¨ § ¯ã᪠¢ë¡à ®£® BASIC ä ©«
START_IMG LD H,VIRT_REAL_DRIVE
CALL READCMOS
AND 3
LD C,A
PUSH AF
RST8 _MOUNTER,_CLOSEMOUNT ; !!!
POP AF
RUNMOUNT PUSH AF
AND 3
CALL SETUP_DRIVE ; ¯¥à¥ª«î票¥ TR-DOS 㪠§ ë© ®¬¥à
RST8 _MOUNTER,_GET_VIRT_BITS
POP AF
LD C,1
CALL FTR_DOS;TO_DOS4BAS
LD HL,ADR_CAT
LD DE,0
LD BC,0x0905
CALL FTR_DOS;TO_DOS4BAS ; § £à㧪 TR-DOS ¤¨àë
DI
LD IX,WIN_FILES
LD B,(IX+8)
INC B
LD IX,ADR_CAT
LD DE,0x10
NEXT_BAS LD A,(IX+8)
ADD IX,DE
CP "B"
JR NZ,NEXT_BAS
DJNZ NEXT_BAS
PUSH IX
POP HL
SBC HL,DE
LD IX,WIN_FILES
JP RUNFILE1
SET_RAMD_NAME DEC H
XOR A
LD (HL),A
LD BC,CONF_128
OUT (C),A
PUSH HL
LD HL,TXT_NONE
LD DE,IN_RAMDISK
LD BC,ETXT_NONE-TXT_NONE
LDIR
LD HL,ERS_FLAGS
BIT B_LOAD_IMG,(HL)
LD BC,CONF_128
LD A,0x10
OUT (C),A
POP HL
RET Z
LD DE,BUF_FILEITEM
LD B,8
CALL SRN1
LD B,3
SRN1 LD A,(DE)
LD (HL),A
DEC H
INC DE
DJNZ SRN1
RET
; § £à㧪 á«¥¤ãî饣® ᥪâ®à § £®«®¢ª FDI
LOAD1SECFDI PUSH HL
PUSH BC
PUSH DE
PUSH AF
LD HL,0xC000
LD A,1
RST8 _COM_FAT,_READ_FILE
INC IXH
POP AF
POP DE
POP BC
POP HL
RES 1,H
RET
; ¢ª«î票¥ ¢ 1 ®ª® ¯à®¥æ¨à®¢ ¨ï § ¤ ®© áâà ¨æë
SET4MBPAGE PUSH BC
LD B,A
PEC_ON M_SHADOW_BF
LD A,B
LD BC,WIN_P1
OUT (C),A
LD B,A
PEC_OFF M_SHADOW_BF
LD A,B
POP BC
RET
LOADIMAGE4 PUSH IX
PUSH IY
LD (LD_FILE_SP),SP
LD SP,ADR_CAT
LD A,RAM_TAPE
; § £à㧪 TRD ¨«¨ TAP ®¡à §
LOADIMAGE3 PUSH AF
CALL SET4MBPAGE
LD HL,0x4000
LD A,0x20
RST8 _COM_FAT,_READ_FILE
JR C,END_LOAD_TAP
POP AF
INC A
JR LOADIMAGE3
END_LOAD_TAP XOR A
CALL SET4MBPAGE
LD H,A
LD L,A
LD (0x4000),HL
LD (0x4002),A
LD A,ZXSTD_CPU1
CALL SET4MBPAGE
LD SP,(LD_FILE_SP)
POP IY
POP IX
LD H,CMOS_BYTE_00
CALL READCMOS
OR M_EMUL_TAPE
LD L,A
CALL WRITECMOS
AND M_AUTO_TAPE
JP Z,RESTART
JP TAPELOAD1
LOAD_IMAGE DI
LD D,A ; ¯¥à¢ë© ᨬ¢®« à áè¨à¥¨ï
INC HL
LD E,(HL) ; ¢â®à®© ᨬ¢®« à áè¨à¥¨ï
CP "B"
JR NZ,LOADIMAGE1_
LD A,E
CP "M"
JR Z,LOADIMAGE2 ; BMP
LOADIMAGE1_ CP "T" ; TAP ¨«¨ TRD ?
JR NZ,LOADIMAGE1
LD A,E
CP "A"
JP Z,LOADIMAGE4 ; TAP
LOADIMAGE1 LD A,D
CP "R"
LD HL,FLASHER
JR Z,LOAD_IMAGE8 ; TRD
LOADIMAGE2 LD HL,RESTART
LOAD_IMAGE8 PUSH HL
PUSH IX
PUSH IY
LD (LD_FILE_SP),SP
LD SP,ADR_CAT
LD A,D
CP "S" ; íâ® SCL ä ©«?
JR Z,LOAD_IMAGE2
CP "F" ; íâ® FDI ä ©«?
JP Z,LOAD_FDI
CP "B" ; íâ® BMP ä ©«?
JP Z,BMPVIEW
CP "T" ; íâ® TRD ä ©«?
JR NZ,LOAD_ROM
LD HL,ERS_FLAGS
SET B_LOAD_IMG,(HL)
LD A,RAM_DATARAMD
; § £à㧪 TRD ¨«¨ TAP ®¡à §
LOAD_IMAGE1 PUSH AF
CALL SET4MBPAGE
LD HL,CPU1
LD A,0x20
RST8 _COM_FAT,_READ_FILE
JP C,END_LOAD_TRD
POP AF
INC A
JR LOAD_IMAGE1
LOAD_ROM CP "R" ; íâ® ROM ä ©«?
JP NZ,ELOAD_IMAGE
LD A,RAM_FLASHER
CALL LOAD_IN_PAGE
LD SP,(LD_FILE_SP)
POP IY
POP IX
RET
LOAD_IN_PAGE PUSH AF
CALL SET4MBPAGE
LD HL,CPU1
LD A,0x20
RST8 _COM_FAT,_READ_FILE
JR C,LOADINPAGE1
POP AF
INC A
JR LOAD_IN_PAGE
LOADINPAGE1 POP AF
LD A,ZXSTD_CPU1
JP SET4MBPAGE
; ¬¥î ¢ë¡®à ª ªãî ¡ãª¢ã ¤¨áª SCL ®¡à § ¯¥à¥ª«îç¨âì
LOAD_IMAGE2 LD IX,LOAD_SCL
RST8 _WINW
JP _RULILKA
SCL_A XOR A
JR SCL_ALL
SCL_B LD A,1
JR SCL_ALL
SCL_C LD A,2
JR SCL_ALL
SCL_D LD A,3
SCL_ALL PUSH AF
RST8 _MOUNTER,_SET_VIRTREAL
POP AF
; § £à㧪 SCL ®¡à §
LOAD_SCL_IMAGE LD HL,DSKINFO
LD DE,ADR_CAT+0xF00
LD BC,DSK_END-DSKINFO
LDIR ; á®åà ¥¨¥ ¨äë ¤«ï ᮧ¤ ¨ï § £®«®¢ª ¤¨áª¥âë
LD HL,ERS_FLAGS
SET B_LOAD_IMG,(HL)
LD A,RAM_DATARAMD
LOAD_IMAGE4 PUSH AF
CALL SET4MBPAGE ; ¢ª«î稫¨ ¯¥à¢ãî áâà ¨æã ®âªã¤ à ¬¤¨áª ç¨ ¥âáï
LD HL,0x5000
LD A,0x18
RST8 _COM_FAT,_READ_FILE
PUSH AF ; á®åà ¨«¨ ä« £ ®ª®ç ¨ï § £à㧪¨ á«ãç © ®ª®ç ¨ï ®¡à §
LD HL,0x4000
PUSH HL ; á®åà ¨«¨ ¤à¥á ç « ª â «®£
LD (HL),L
LD D,H
LD E,L
INC DE
LD BC,0xFFF
LDIR ; § ç¨á⪠®¡« á⨠¯¥à¢®© ¤®à®¦ª¨ ¤«ï ä®à¬¨à®¢ ¨ï ª â «®£ ¤¨áª
LD HL,0x5008 ; ¤à¥á ª®«¨ç¥áâ¢ ä ©«®¢ ¢ SCL ®¡à §¥
LD A,(HL) ; ¢§ï«¨ ª®«¨ç¥á⢮ ä ©«®¢ ª ª áç¥â稪
INC HL ; ¯¥à¥è«¨ ¯¥à¢ë© ®¯¨á ⥫ì ä ©«
EXX
LD HL,0 ; ®¬¥à ¡á®«î⮣® ᥪâ®à
LD D,L ; ¯à¨à 饨¥ ᥪâ®à®¢ ¥ ¬®¦¥â ¡ëâì ¡®«¥¥ 255 ᥪâ®à®¢
LD B,A ; á®åà ¥¨¥ ª®«¨ç¥áâ¢ ä ©«®¢
EXX
POP DE ; ¢¥à㫨 ¤à¥á ç « ª â «®£ ¤¨áª
LOAD_IMAGE3 EX AF,AF'
LD BC,0x0D
LDIR ; ¯¥à¥¥á«¨ 13 ¡ ©â ⥫ ®¯¨á ⥫ï
LD A,(HL) ; § ¡à «¨ à §¬¥à ä ©« ¢ ᥪâ®à å
LDI ; ¯¥à¥¥á«¨ ¥é¥ ¡ ©â
EXX
LD E,A
PUSH HL ; á®åà ¨«¨ ⥪饥 § 票¥ ®¬¥à ᥪâ®à
ADD HL,DE ; 㢥«¨ç¨«¨ ⥪饥 § 票¥ à §¬¥à ä ©« ¢ ᥪâ®à å
EXX
EX (SP),HL
LD A,L
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
INC H
AND 0x0F
LD L,A
EX (SP),HL
POP BC ; ¢®ááâ ®¢¨«¨ ⥪騩 ®¬¥à ᥪâ®à
EX DE,HL
LD (HL),C
INC HL
LD (HL),B ; ã«®¦¨«¨ ¯®á«¥ ⥪ã饣® ®¯¨á ⥫ï
INC HL
EX DE,HL
EX AF,AF'
DEC A
JR NZ,LOAD_IMAGE3 ; ¥á«¨ ä ©«ë ¥ ª®ç¨«¨áì ¯à®¤®«¦ ¥¬
PUSH HL ; á®åà ¨«¨ ¤à¥á ç « ¤ ëå
LD HL,ADR_CAT+0xF00
LD DE,0x48E1
LD BC,DSK_END-DSKINFO
LDIR
EXX
LD DE,2544 ; áâ ¤ àâë© à §¬¥à ¤¨áª¥âë
EX DE,HL
AND A
SBC HL,DE
LD (0x48E5),HL ; ª®«¨ç¥á⢮ ᢮¡®¤ëå ᥪâ®à®¢
EX DE,HL
LD A,L
ADD HL,HL
ADD HL,HL
ADD HL,HL
ADD HL,HL
INC H
AND 0x0F
LD L,A
LD (0x48E1),HL ; ¯¥à¢ë© ᢮¡®¤ë© â४ ¨ ᥪâ®à
LD A,B
LD (0x48E4),A ; ª®«¨ç¥á⢮ ä ©«®¢ ¤¨áª¥
EXX
POP DE ; ¢®ááâ ®¢«¥¨¥ ¤à¥á ç « ¤ ëå
LD HL,0x8000 ; ª®¥æ ®ª ¯à®¥æ¨à®¢ ¨ï
AND A
SBC HL,DE ; ¯®«ã稫¨ ª®«¨ç¥á⢮ ¡ ©â ¤«ï ᤢ¨£
LD B,H
LD C,L
LD HL,0x5000 ; ç «® ¤ ëå à ¬¤¨áª¥
EX DE,HL
LDIR ; ᤢ¨ã«¨, ¯®á«¥ ¯¥à¥®á DE = ¤à¥á ªã¤ ¤ «¥¥ £à㧨âì
LD A,D
CP 0x7E
JR NC,LOAD_IMAGE7
EX DE,HL
LD A,0x7F
SUB H
SRL A
LD IXL,A
RST8 _COM_FAT,_READ_FILE
LD DE,0x8000
EX DE,HL
LOAD_IMAGE7 AND A
SBC HL,DE ; ¯®«ã稫¨ ᪮«ìª® ¡ ©â ®áâ «®áì ¤® ª®æ ®ª
LD (OST_HWOST),HL
LD (KUDA_HWOST),DE
LD DE,0
EX DE,HL
SBC HL,DE
LD A,1
AND H
LD H,A
LD (NEXT4PAGE),HL
POP AF ; ¢®ááâ ®¢¨«¨ ä« £ ¯®á«¥¤¥© § £à㧪¨
JP C,END_LOAD_TRD ; ¥á«¨ ä ©« 㦥 ª®ç¨«áï, â® ¢ë室
JR LOAD_IMAGE5
LOAD_IMAGE6 LD DE,0x4000
LD BC,0
NEXT4PAGE EQU $-2
LDIR
EX AF,AF'
JP C,END_LOAD_TRD
EX DE,HL
LD A,0x1F
RST8 _COM_FAT,_READ_FILE
JP C,END_LOAD_TRD
LOAD_IMAGE5 LD HL,ADR_CAT
PUSH HL
LD A,1
RST8 _COM_FAT,_READ_FILE
EX AF,AF' ; á¯àïâ «¨ ä« £ § £à㧪¨ ᥪâ®à
POP HL ; ¢®ááâ ®¢¨«¨ ¤à¥á ªã¤ ᥪâ®à ¢ ¡ãä¥à § £à㧨«¨
LD DE,0
KUDA_HWOST EQU $-2 ; ªã¤ «®¦¨âì ®áâ ⮪ ¢ ®ª¥
LD BC,0
OST_HWOST EQU $-2 ; ᪮«ìª® ¯¥à¥®á¨âì ¢ ª®¥æ áâà ¨æë
LDIR
POP AF
INC A
PUSH AF
CALL SET4MBPAGE
JR LOAD_IMAGE6
; ¯à®¢¥àª § £®«®¢ª HOBETA ä ©«
; ¢ë室¥: ä« £ =1-¥ ᮮ⢥áâ¢ã¥â
CMP4HOBETA SUB 1
RET NZ
LD A,(BUF_RDSEC+8)
CP "C" ; ¯à®¢¥àª çâ® íâ® ª®¤®¢ë© ¡«®ª, ¥ çâ®-â® ¤à㣮¥
SCF
RET NZ
PUSH DE ; á®åà ¨«¨ ¤à¥á ᪫ ¤¨à®¢ ¨ï ¤«ï ¤ «ì¥©è¥© ¯à®¢¥àª¨
LD BC,BUF_RDSEC ; ¢®§¢à é ¥¬áï ¢ ç «® ᥪâ®à
CALL HOB_CRC ; áç¨â ¥¬ CRC HOBETA § £®«®¢ª
LD A,(BC)
INC BC
LD E,A
LD A,(BC)
LD D,A ; ¢ "DE" à ááç¨â ®¥ CRC HOBETA § £®«®¢ª
AND A ; ¢ "HL" ¢§ï⮥ ¨§ ᬥ饨ï +0x0F ®â ç « ä ©«
SBC HL,DE ; áà ¢¨¢ ¥¬
POP DE ; ¥á«¨ ¥ ᮢ¯ «® â® ¢®§¬®¦® íâ® ¥ HOBETA
SCF
RET NZ ; ¯à®¯ã᪠¥¬ ä ©«
EXX
LD HL,(BUF_RDSEC+9)
DEC HL ; ¤«ï § £à㧪¨ ¬ ᨬ㬠40960 ¡ ©â (160 ᥪâ®à®¢)
LD DE,(BUF_RDSEC+0x0B)
ADD HL,DE ; ¯à®¢¥à塞 ¢ë室 § ¯à¥¤¥«ë ®§ã
EXX ; ¥á«¨ ¢ë«¥â § ¯à¥¤¥« ®§ã
RET C ; ¯à®¯ã᪠¥¬ ä ©«
EXX
LD HL,(BUF_RDSEC+9)
LD DE,0x6000 ; ¯à®¢¥à塞 ¤à¥á § £à㧪¨
AND A ; ¤à¥á § £à㧪¨ ¥ ¤®«¦¥ ¡ëâì ¨¦¥ 0x6000
SBC HL,DE
EXX ; ¥á«¨ ¤à¥á § £à㧪¨ ¨¦¥ 0x6000
RET
; ¢å®¤¥: BC - ¤à¥á § £®«®¢ª
; ¢ë室¥: HL - HOBETA CRC
HOB_CRC LD A,0x0F
LD HL,0
EXX
LD E,0
EXX
HOBCRC1 EX AF,AF'
LD A,(BC)
LD E,A
LD D,A
ADD HL,DE
EXX
LD A,E
INC E
EXX
LD E,A
LD D,0
ADD HL,DE
EX AF,AF'
INC BC
DEC A
JR NZ,HOBCRC1
RET
CMP4FONTS LD DE,(BUF_FILEITEM+0x1C)
LD HL,(BUF_FILEITEM+0x1E)
LD A,H
OR L
OR E
SCF
RET NZ
LD A,D
CP 8
SCF
RET NZ
AND A
RET
CMP4ROMS LD DE,(BUF_FILEITEM+0x1C)
LD HL,(BUF_FILEITEM+0x1E)
LD A,H
OR D
OR E
SCF
RET NZ
LD A,L
CP 8
CMP_ROMSIZE EQU $-1
SCF
RET NZ
CMP4ROMS1 AND A
RET
CMP4FDI EXX
LD HL,BUF_RDSEC
LD A,(HL)
CP "F"
SCF
RET NZ
INC HL
LD A,(HL)
CP "D"
SCF
RET NZ
INC HL
LD A,(HL)
CP "I"
SCF
RET NZ
INC HL
INC HL
LD A,(HL) ; ª®«¨ç¥á⢮ 樫¨¤à®¢
CP 0x57
CCF
RET C
INC HL
LD A,(HL) ; ¤®«¦¥ ¡ëâì 0
AND A
SCF
RET NZ
INC HL
LD A,(HL) ; ª®«¨ç¥á⢮ áâ®à®
AND A
SCF
RET Z
CP 3
CCF
RET C
INC HL
LD A,(HL) ; ¤®«¦® ¡ëâì 0
AND A
SCF
RET NZ
EXX
AND A
RET
CMP4IMAGE CP 3
JR Z,CMP4FDI
CP 4
JR Z,CMP4BMP
SUB 1
RET Z ; ¤«ï TRD ¯à®¢¥àª ¥ 㦪
; ¤«ï SCL ¯à®¢¥àª «¨ç¨ï á«®¢ "SINCLAIR" ¢ ¯¥à¢ëå 8 ¡ ©â å
EXX
LD HL,BUF_RDSEC
LD DE,SIGN_SCL
LD B,8
CMP4IMAGE1 LD A,(DE)
CP (HL)
SCF
RET NZ
INC DE
INC HL
DJNZ CMP4IMAGE1
EXX
AND A
CMP4TAPES RET
CMP4BMP EXX
LD HL,BUF_RDSEC
LD A,"B"
SUB (HL)
SCF
RET NZ
INC HL
LD A,"M"
SUB (HL)
SCF
RET NZ
LD HL,(BUF_RDSEC+0x12)
LD DE,320
AND A
SBC HL,DE
SCF
RET NZ
LD HL,(BUF_RDSEC+0x16)
LD DE,200
AND A
SBC HL,DE
SCF
RET NZ
LD A,(BUF_RDSEC+0x1C)
CP 4
SCF
RET NZ
EXX
AND A
RET
SEARCH_FILE LD A,1
LD HL,(GDE_EXT_FILES)
RST8 _COM_FAT,_SET_MASK_EXT
LD DE,ADR_CAT_FAT ; ¤à¥á ¡ãä¥à ªã¤ ᪫ ¤¨à®¢ âì ©¤¥®¥
RST8 _COM_FAT,_FIND_FILEITEM
LD H,A ; ®¬¥à áâà ¨æë £¤¥ ©¤¥®¥ ¡à âì
LD A,B
OR C
JR NZ,SEARCHF1
PUSH IX
LD IX,NOBASIC
RST8 _WINW
POP IX
RST8 _COM_DEV,_KOL_VOL
DEC E
JP Z,NO_BAS
JP SELECT_DEVICE
SEARCHF1 PUSH BC
PUSH HL
RST8 _SORT_FINDFILES
PEC_ON M_SHADOW_BF
POP AF
LD BC,WIN_P1
OUT (C),A
LD HL,CPU1
LD DE,ADR_CAT_SCRH ; ¤à¥á ¡ãä¥à ᪫ ¤¨à®¢ ¨ï ¯® ¬ ᪥
LD BC,0x1000
LDIR
LD BC,WIN_A1
LD A,0x7A
OUT (C),A
PEC_OFF M_SHADOW_BF
POP BC
LD DE,ADR_CAT_FAT
LD HL,ADR_CAT_SCRH ; ¤à¥á ¡ãä¥à ᪫ ¤¨à®¢ ¨ï ¯® ¬ ᪥
SEARCHF3 PUSH BC
LD C,(HL)
INC HL
LD B,(HL)
DEC HL
LD A,6
RST8 _COM_FAT,_POS_FILES
PUSH HL
LD HL,BUF_FILEITEM
RST8 _COM_FAT,_READ_DIR
PUSH DE
LD DE,0x0B
ADD HL,DE
LD A,(HL)
AND 0x10
JR NZ,SEARCHF4
RST8 _COM_FAT,_OPEN_FILE
LD HL,BUF_RDSEC
LD A,1
RST8 _COM_FAT,_READ_FILE
LD HL,BUF_FILEITEM
CALL CP_EXT
CALL 0
CMP_FOUNDED EQU $-2
SEARCHF4 POP DE
POP HL
JR NC,SEARCHF5
INC HL
INC HL
JR SEARCH6
SEARCHF5 LDI
LDI
SEARCH6 POP BC
DEC BC
LD A,B
OR C
JR NZ,SEARCHF3
LD HL,ADR_CAT_FAT
EX DE,HL
SBC HL,DE
SRL H
RR L
LD B,H
LD C,L
RET
CPETR3 PUSH BC
PUSH DE
PUSH HL
LD C,0
LD DE,VIEW_IMAGES
JR GDE_EXT_FILES.L1
CP_EXT PUSH BC
PUSH DE
PUSH HL
LD C,0
LD DE,0
GDE_EXT_FILES EQU $-2
.L1 LD A,(DE)
AND A
JR Z,.L3
INC C
PUSH DE
PUSH HL
CALL COMPARF
POP HL
POP DE
JR Z,.L2
INC DE
INC DE
INC DE
JR .L1
.L2 LD A,C
.L3 AND A
POP HL
POP DE
POP BC
RET
COMPARF PUSH DE
LD DE,8
ADD HL,DE
POP DE
LD B,3
.L1 LD A,(DE)
CP "A"
JR C,.L2
AND %11011111
.L2 CP (HL)
RET NZ
INC HL
INC DE
DJNZ .L1
RET
; ¯à®è¨¢ â¥«ì ¯§ã á ¨¤¨ª 樥© ¯à®æ¥áá
FLASHER LD BC,PENT_CONF
XOR A
OUT (C),A
PEC_ON M_SHADOW_BF
LD BC,0xFF77
LD A,0xA3
OUT (C),A ; ¯à¨ã¤¨â¥«ì®¥ ¢ª«î票¥ âãà¡® ०¨¬ 7
LD A,(CMP_ROMSIZE)
DEC A
JR NZ,FLASHER6
LD IX,UPDATE_CUSTOM
RST8 _WINW
LD SP,ADR_CAT
PEC_ON M_SHADOW_BF+M_FLASH_BF
LD BC,WIN_A0
LD A,0x7F
OUT (C),A ; ®âª«î票¥ ¯§ã ¢ ®ª¥ 0
call rom_read_id ; ç⥨¥ ID 稯
ex de,hl
xor a ;áâ¨à ¥¬ ⮫쪮 稯ë á ¡«®ª ¬¨ ¯® 64ª
ld hl,0xe220
sbc hl,de
jr z,FLASHER_CUST_ERASE
xor a
ld hl,0xa401
sbc hl,de
jr nz,FLASHER_CUST_PROG
FLASHER_CUST_ERASE
LD E,0
LD HL,0
CALL ERASE_BLK ; áâ¨à ¨¥ CUSTOM ROM áâà ¨æë
FLASHER_CUST_PROG
LD A,RAM_FLASHER
LD E,0
CALL FLASH_64KB ; ¯à®£à ¬¬¨à®¢ ¨¥ CUSTOM ROM áâà ¨æë
JP EFLASHER
FLASHER6 LD IX,ERASE_ROM ; ¢ë¢®¤ ®ª ® áâ¨à ¨¨ FLASH
RST8 _WINW
LD IX,UPDATE_WIN ; ¢ë¢®¤ ®ª ®¡ ®¡®¢«¥¨¨ FLASH
RST8 _WINW
LD IX,ERASE_ROM
LD SP,ADR_CAT
PEC_ON M_SHADOW_BF+M_FLASH_BF ; à §à¥è¥¨¥ ¯à®£à ¬¬¨à®¢ ¨ï FLASH
LD BC,WIN_A0
LD A,0x7F
OUT (C),A ; ®âª«î票¥ rom ¢ ®ª¥ 0
LD A,3
CALL SETWIN_INDICAT ; ãáâ ®¢ª ¨¤¨ª â®à ¯à®æ¥áá
call erase_all_chip
; LD E,0
; LD HL,0
;FLASHER4 CALL ERASE_BLK ; áâ¨à ¨¥ ¡«®ª 64
; CALL INC_INDICAT ; ®¡®¢«¥¨¥ ¨¤¨ª â®à ¯à®æ¥áá
; INC E ; á«¥¤ãî騩 ¡«®ª
; BIT 3,E
; JR Z,FLASHER4
LD IX,UPDATE_WIN
LD A,RAM_FLASHER ; áâà ¨æ ç « § £à㦥®£® ROM ä ©«
LD E,0
FLASHER3 CALL FLASH_64KB ; ¯à®è¨¢ ¨¥ ®¤®© 64 áâà ¨æë
INC E ; á«¥¤ãîé ï 64ª¡ áâà ¨æ
BIT 3,E
JR Z,FLASHER3
EFLASHER LD BC,WIN_P3
XOR A
OUT (C),A ; ¢ª«î票¥ RAM ¢ ®ª¥ 3
LD A,(CPU3+0x20)
XOR B
LD (CPU3+0x20),A ; ¬¥ï¥¬ ¡ ©â ¤«ï àã襨ï CRC ª®âà®«ï ¨ ¯®«®£® २¨â
LD A,(CPU1+BUF_TABLVOL+0xFE)
XOR B
LD (CPU1+BUF_TABLVOL+0xFE),A ; «®£¨ç® ¤«ï DEVICE MANAGER
PEC_OFF M_FLASH_BF
LD HL,0x79ED ; OUT (C),A
LD (0xFFFE),HL ; 㪫 ¤ª ª®¬ ¤ë OUT (C),A
LD BC,0xBC77
LD A,2
JP 0xFFFE
; ¯à®è¨¢ ¨¥ ®¤®© 64 áâà ¨æë
; ¢å®¤: A = ®¬¥à 16 áâà ¨æë ®âªã¤ ¡à âì ¡ ©âë ¤«ï ¯à®è¨¢ ¨ï
; E = ®¬¥à ¯à®è¨¢ ¥¬®© 64 áâà ¨æë
FLASH_64KB LD HL,0
PUSH AF
LD A,E
ADD A,2
CALL SETWIN_INDICAT ; ®¡®¢«¥¨¥ ¨¤¨ª â®à ¯à®æ¥áá
POP AF
FLASHER2 PUSH AF
LD BC,WIN_P0
OUT (C),A ; ¢ª«î票¥ áâà ¨æë RAM ®âªã¤ ¡à âì ¡ ©âë ¤«ï ¯à®è¨¢ ¨ï
PUSH IX
LD IX,0
FLASHER1 LD A,(IX) ; ¢§ï«¨ ¡ ©â ¤«ï ¯à®è¨¢ ¨ï
INC A
JR Z,FLASHER5 ; ¥á«¨ ¡ ©â = 0xFF, â® ¥ ¯à®è¨¢ ¥¬
DEC A
CALL PGM_BYTE ; ¯à®è¨«¨ ¡ ©â
FLASHER5 INC IX
INC HL
LD A,H
AND 0x0F
OR L
CALL Z,INC_INDICAT ; ®¡®¢¨«¨ ¨¤¨ª â®à ¥á«¨ ¯à®è¨«¨ 4
LD A,IXH
AND 0x40
JR Z,FLASHER1 ; ¯à®¤®«¦ ¥¬ ¯®ª ¥ ª®ç¨âáï áâà ¨æ ¢ë¡®àª¨ ¡ ©â
POP IX
POP AF
INC A ; á«¥¤ãîé ï áâà ¨æ ®âªã¤ ¡ ©âë ¡à âì ¤«ï ¯à®è¨¢ ¨ï
LD D,A ; ¢à¥¬¥® á®åà ¨«¨
LD A,H ; ¯à®¢¥àª ®ª®ç ¨¥ 64 áâà ¨æë
AND A
LD A,D ; ¢®ááâ ®¢¨«¨
JR NZ,FLASHER2
RET