Top secrets sources NedoPC pentevo

Rev

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