Top secrets sources NedoPC pentevo

Rev

Rev 875 | Rev 961 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?


;LAST UPDATE: 29.02.2020 savelij

                TITLE "mounter.a80 ROM_RST83"

MOUNTER         CALL P5_READ_BYTE
                LD A,(NEXTBYTERST8)
                ADD A,A
                LD E,A
                LD D,0
                LD HL,TAB_MOUNTER
                ADD HL,DE
                LD A,(HL)
                INC HL
                LD H,(HL)
                LD L,A
                JP (HL)
               
TAB_MOUNTER     DW OPEN_MOUNT                           ;00 ¬®­â¨à®¢ ­¨¥ ®¡à § 
                DW RDWR_MOUNT                           ;01 ç⥭¨¥/§ ¯¨áì ¯à¨¬®­â¨à®¢ ­­ëå ®¡à §®¢
                DW FIND_MOUNTED                         ;02 ¯®¨áª ¬®­â¨à㥬ëå ®¡à §®¢ ¯à®¯¨á ­­ëå ¢ IMAGE.FNT
                DW GET_MOUNTED                          ;03 ¯®«ã祭¨¥ ¡ãä¥à  ®¯¨á â¥«¥© ¯à¨¬®­â¨à®¢ ­­ëå ®¡à §®¢
                DW CLOSEMOUNT                           ;04 ¤¥¬®­â¨à®¢ ­¨¥ ®¡à § 
                DW LOADIMAGE                            ;05 § £à㧪  ®¡à §  ¢ à ¬¤¨áª
                DW REST_NAMELOAD                        ;07 ¯®«ã祭¨¥ ®¯¨á â¥«ï ä ©«  § £à㦥­­®£® ¢ à ¬¤¨áª
                DW CMP_DRIVE                            ;08 ¯à®¢¥àª  ¯à¨¬®­â¨à®¢ ­­®£® ®¡à §  ­  㪠§ ­­®© ¡ãª¢¥
                DW GET_VIRT_BITS                        ;09 ¯®«ã祭¨¥ ¡¨â®¢ ᬮ­â¨à®¢ ­­ëå ¤¨áª®¢
                DW MOUNT_RAMDISK                        ;0A ¬®­â¨à®¢ ­¨¥ à ¬¤¨áª 
                DW SET_RAMDISK                          ;0B

NOFUNC          RET

;[§ £à㧪  ®¡à §  ¢ à ¬¤¨áª]
LOADIMAGE       LD IYL,INTERNAL
                CALL OPEN_FILE
                PUSH HL
                LD DE,SUPPORT_EXT
                CALL CP_EXT
                LD (EXT_TYPE),A
                LD HL,FILE_SRC
                LD DE,NAME_RAMDISK
                LD BC,0X20
                LDIR
                POP HL
                CP _TAP
                JR Z,LOAD_TAPE
                CP _FDI
                JP Z,LOAD_FDI
                CP _SCL
                JP Z,LOAD_SCL
                LD A,RAM_DATARAMD
ILD_IMG1        PUSH AF
                LD BC,WIN_P5
                OUT (C),A
                LD A,0X20
                LD HL,CPU5
                CALL READ_FILE
                JR C,ILD_IMG2
                POP AF
                INC A
                JR ILD_IMG1

LOAD_TAPE       LD A,RAM_TAPE
                JR ILD_IMG1

ILD_IMG2        POP AF
                LD A,(EXT_TYPE)
                SUB _TAP
                RET Z                                   ;¥á«¨ TAP â® ­  ¢ë室
;¤«ï TRD ®¡à §  £¥­¥à æ¨ï â ¡«¨æë ᥪâ®à®¢/¤®à®¦¥ª
                EVOPORT WIN_P5,RAM_DATARAMD             ;­ã¦­  áâà ­¨æ  ®âªã¤  ­ ç¨­ ¥âáï § £à㦥­­ë© ®¡à §
ILD_IMG3        LD HL,(CPU5+0X8E1)                      ;¯¥à¢ë© ᢮¡®¤­ë© â४ ᥪâ®à
                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,(CPU5+0X8E5)                      ;ª®«¨ç¥á⢮ ᢮¡®¤­ëå ᥪâ®à®¢
                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'
                EVOPORT WIN_P5,RAM_RAMDISK              ;­ã¦­  áâà ­¨æ  ­ ç «  à ¬¤¨áª , £¤¥ ¡ã¤¥â â ¡«¨æ  ®¯¨á â¥«¥©
                LD HL,CPU5
                PUSH HL
                LD DE,CPU5+1
                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,HIGH (CPU5)                        ;¢¥à­ã«¨ 㪠§ â¥«ì ¢ ­ ç «®
                INC E                                   ;¤«ï á«¥¤ãî饩 ¤®à®¦ª¨
                LD BC,0X40
                ADD HL,BC                               ;¯¥à¥å®¤ ª á«¥¤ãî饩 ¤®à®¦ª¥
                EX AF,AF'

                DEC A
                JR NZ,ELT2                              ;¯®¢â®à塞 ¤«ï ¢á¥å ¤®à®¦¥ª
;®¡é¨© ¢ë室 ¨§ § £à㧪¨ á ¢®§¢à â®¬ áâ ­¤ àâ­®© áâà ­¨æë ¢ ®ª­¥ ¯à®¥æ¨à®¢ ­¨ï 1
ELOAD_IMAGE     LD HL,CPU5+0X3FFF
                LD (HL),"R"
                DEC H
                LD (HL),"D"
                DEC H
;¯¥à¥­®á ¨¬¥­¨ ä ©«  § £à㦥­­®£® ¢ à ¬¤¨áª
                LD DE,NAME_RAMDISK
                LD B,8+3
.L1             LD A,(DE)
                LD (HL),A
                INC DE
                DEC H
                DJNZ .L1
                XOR A
                RET

ELT5            POP AF
                EVOPORT WIN_P5,RAM_RAMDISK
                JR ELOAD_IMAGE

;[¨­ä  ¤«ï ᮧ¤ ­¨ï 9 ᥪâ®à  ­®¢®£® ¤¨áª ]
DSKINFO         DB 0                                    ;+0xE1 ­®¬¥à ¯¥à¢®£® ᢮¡®¤­®£® ᥪâ®à 
                DB 1                                    ;+0xE2 ­®¬¥à ¯¥à¢®£® ᢮¡®¤­®£® â४ 
                DB 0X16                                 ;+0xE3 ⨯ ¤¨áª¥âë
                DB 0                                    ;+0xE4 ª®«¨ç¥á⢮ ä ©«®¢ ­  ¤¨áª¥â¥
SECFREE         DW 2544                                 ;+0xE5 ª®«¨ç¥á⢮ ᢮¡®¤­ëå ᥪâ®à®¢
                DB 0X10                                 ;+0xE7 ¨¤¥­â¨ä¨ª æ¨®­­ë© ª®¤ TRDOS
                DW 0                                    ;+0xE8 2 ¡ ©â  0
                DUPL 9,0X20                             ;+0xEA 9 ¡ ©â 0x20
                DB 0                                    ;+0xF3 1 ¡ ©â 0
                DB 0                                    ;+0xF4 ª®«¨ç¥á⢮ 㤠«¥­­ëå ä ©«®¢
                DB "RAMDISKO"                           ;+0xF5 ¨¬ï ¤¨áª¥âë
DSK_END

;[§ £à㧪  SCL ®¡à § ]
LOAD_SCL        EVOPORT WIN_P5,RAM_DATARAMD
                EVOPORT WIN_P3,RAM_MOUNTER
                LD A,RAM_DATARAMD
LOAD_IMAGE4     PUSH AF
                LD BC,WIN_P5
                OUT (C),A
                LD HL,CPU5+0X1000
                LD A,0X18
                CALL READ_FILE
                PUSH AF                                 ;á®åà ­¨«¨ ä« £ ®ª®­ç ­¨ï § £à㧪¨ ­  á«ãç © ®ª®­ç ­¨ï ®¡à § 
                LD HL,CPU5
                PUSH HL                                 ;á®åà ­¨«¨  ¤à¥á ­ ç «  ª â «®£ 
                LD (HL),L
                LD D,H
                LD E,L
                INC DE
                LD BC,0XFFF
                LDIR                                    ;§ ç¨á⪠ ®¡« á⨠¯¥à¢®© ¤®à®¦ª¨ ¤«ï ä®à¬¨à®¢ ­¨ï ª â «®£  ¤¨áª 
                LD HL,CPU5+0X1008                       ; ¤à¥á ª®«¨ç¥á⢠ ä ©«®¢ ¢ 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,DSKINFO
                LD DE,CPU5+0X8E1
                LD BC,DSK_END-DSKINFO
                LDIR
                EXX
                LD DE,2544                              ;áâ ­¤ àâ­ë© à §¬¥à ¤¨áª¥âë
                EX DE,HL
                AND A
                SBC HL,DE
                LD (CPU5+0X8E5),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 (CPU5+0X8E1),HL                      ;¯¥à¢ë© ᢮¡®¤­ë© â४ ¨ ᥪâ®à
                LD A,B
                LD (CPU5+0X8E4),A                       ;ª®«¨ç¥á⢮ ä ©«®¢ ­  ¤¨áª¥
                EXX
                POP DE                                  ;¢®ááâ ­®¢«¥­¨¥  ¤à¥á  ­ ç «  ¤ ­­ëå
                LD HL,CPU6                              ;ª®­¥æ ®ª­  ¯à®¥æ¨à®¢ ­¨ï
                AND A
                SBC HL,DE                               ;¯®«ã稫¨ ª®«¨ç¥á⢮ ¡ ©â ¤«ï ᤢ¨£ 
                LD B,H
                LD C,L
                LD HL,CPU5+0X1000                       ;­ ç «® ¤ ­­ëå ­  à ¬¤¨áª¥
                EX DE,HL
                LDIR                                    ;ᤢ¨­ã«¨, ¯®á«¥ ¯¥à¥­®á  DE= ¤à¥á ªã¤  ¤ «¥¥ £à㧨âì
                LD A,D
                CP HIGH (CPU6)-2
                JR NC,LOAD_IMAGE7
                EX DE,HL
                LD A,HIGH (CPU6)-1
                SUB H
                SRL A
                LD IXL,A
                CALL 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,ILD_IMG2                           ;¥á«¨ ä ©« 㦥 ª®­ç¨«áï, â® ¢ë室
                JR LOAD_IMAGE5

LOAD_IMAGE6     LD DE,CPU5
                LD BC,(NEXT4PAGE)
                LDIR
                EX AF,AF'
                JP C,ILD_IMG2
                EX DE,HL
                LD A,0X1F
                CALL READ_FILE
                JP C,ILD_IMG2
LOAD_IMAGE5     LD HL,CPU3+BUF_TEMPSEC
                PUSH HL
                LD A,1
                CALL READ_FILE
                EX AF,AF'
                              ;á¯àïâ «¨ ä« £ § £à㧪¨ ᥪâ®à 
                POP HL                                  ;¢®ááâ ­®¢¨«¨  ¤à¥á ªã¤  ᥪâ®à ¢ ¡ãä¥à § £à㧨«¨
                LD DE,(KUDA_HWOST)                      ;ªã¤  «®¦¨â ®áâ â®ª ¢ ®ª­¥
                LD BC,(OST_HWOST)                       ;᪮«ìª® ¯¥à¥­®á¨âì ¢ ª®­¥æ áâà ­¨æë
                LDIR
                POP AF
                INC A
                PUSH AF
                LD BC,WIN_P5
                OUT (C),A
                JR LOAD_IMAGE6

;[§ £à㧪  FDI]
LOAD_FDI        LD A,RAM_RAMDISK                        ;áâà ­¨æ  ­ ç «  à ¬¤¨áª 
                PUSH AF                                 ;á®åà ­¨«¨ ­  á⥪¥
                EVOPORT WIN_P5,RAM_RAMDISK
                EVOPORT WIN_P3,RAM_MOUNTER
                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,(CPU3+6)                           ;¢§ï«¨ ª®«¨ç¥á⢮ áâ®à®­
                DEC A
                LD A,(CPU3+4)                           ;¢§ï«¨ ª®«¨ç¥á⢮ ¤®à®¦¥ª
                JR Z,LOADFDI1
                ADD A,A                                 ;¥á«¨ áâ®à®­ 2, ⮠㬭®¦¨«¨ ª®«¨ç¥á⢮ ¤®à®¦¥ª ­  2
LOADFDI1        LD C,A                                  ;ª®«¨ç¥á⢮ ¤®à®¦¥ª
                LD HL,(CPU3+0X0A)
                LD (START_DATA),HL
                LD DE,CPU5                              ; ¤à¥á ¡ãä¥à  ­ ç «  ®¯¨á â¥«¥© ¤®à®¦¥ª
                LD HL,CPU3+0X0F                         ; ¤à¥á ­ ç «  ¢ë¡®àª¨ ®¯¨á â¥«¥© ¤®à®¦¥ª ¢ 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,(START_DATA)
                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,CPU3
                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
                PUSH BC
                LD BC,WIN_P5
                OUT (C),A
                POP BC
                PUSH AF
                BIT 1,H
                CALL NZ,LOAD1SECFDI
                EX AF,AF'
                LD DE,CPU5
                LD BC,(NACH_SECT)
                LDIR
                EX AF,AF'

                JP C,ELT5
                EX DE,HL
                LD A,0X1F
                CALL READ_FILE
                JP C,ELT5
                PUSH HL
                LD HL,CPU3
                PUSH HL
                LD A,1
                CALL READ_FILE
                POP HL
                POP DE
                LD BC,(OSTAT_SECT)
                LDIR
                JR LOADFDI5

LOADFDI_ERR     POP AF
                EVOPORT WIN_P5,RAM_RAMDISK
                CALL FORMAT_RAMDISK
                LD IX,LDFDIERROR
                SCF
                RET

FORMAT_RAMDISK  EVOPORT WIN_P5,RAM_DATARAMD
                LD HL,CPU5
                LD DE,CPU5+1
                LD BC,0XFFF
                LD (HL),L
                LDIR
                LD HL,DSKINFO
                LD DE,CPU5+0X8E1
                LD BC,DSK_END-DSKINFO
                LDIR
                JP ILD_IMG3

;[§ £à㧪  á«¥¤ãî饣® ᥪâ®à  § £®«®¢ª  FDI]
LOAD1SECFDI     PUSH HL
                PUSH BC
                PUSH DE
                PUSH AF
                LD HL,CPU3
                LD A,1
                CALL READ_FILE
                INC IXH
                POP AF
                POP DE
                POP BC
                POP HL
                RES 1,H
                RET

;[¬®­â¨à®¢ ­¨¥ ®¡à § ]
OPEN_MOUNT      LD A,(RREG_A)
OPEN_MOUNT_INT  LD (MOUNT_SYM),A                        ;­®¬¥à ¬®­â¨à㬮£® ¤¨áª 
                LD IYL,INTERNAL
                EVOPORT WIN_P5,RAM_MOUNTER              ;¢ª«î稫¨ áâà ­¨æã á ®¯¨á â¥«ï¬¨ ¯à¨¬®­â¨à®¢ ­­ëå ä ©«®¢
                LD A,(MOUNT_SYM)                        ;­®¬¥à ¬®­â¨à㬮£® ¤¨áª 
                ADD A,HIGH (BUF_PATHMOUNT+CPU5)
                LD D,A
                LD E,0                                  ;DE= ¤à¥á ¡ãä¥à  ¯ã⥩ ¯à¨¬®­â¨à®¢ ­­ëå ä ©«®¢
                LD A,(SETDVOL)                          ;­®¬¥à ⥪ã饣® ãáâனá⢠
                ADD A,HIGH (TEK_BUFPATH+CPU5)+4
                LD H,A
                LD L,E                                  ;HL= ¤à¥á ¯ã⨠­  ⥪ã饬 ãáâனá⢥
                LD BC,0X100
                PUSH DE
                LDIR                                    ;¯¥à¥­¥á«¨ ¯ãâì
                CALL READ_DIR                           ;¯à®ç¨â «¨ ®¯¨á â¥«ì ¬®­â¨à㥬®£® ä ©« 
                POP DE
                PUSH HL
OPENMOUNT05     LD A,(DE)
                INC DE
                AND A
                JR NZ,OPENMOUNT05
                DEC DE
                LD BC,0X8FF
OPENMOUNT01     LDI
                LD A,(HL)
                CP "!"
                JR C,OPENMOUNT03
                DJNZ OPENMOUNT01
                LD A,"."
                LD (DE),A
                INC DE
                JR OPENMOUNT06

OPENMOUNT03     INC HL
                DJNZ OPENMOUNT03
                DEC HL
                LD A,"."
                LD (DE),A
                INC DE
OPENMOUNT06     LD B,3
OPENMOUNT02     LDI
                LD A,(HL)
                CP "!"
                JR C,OPENMOUNT04
                DJNZ OPENMOUNT02
OPENMOUNT04     XOR A
                LD (DE),A
                POP HL
                LD A,(MOUNT_SYM)                        ;­®¬¥à ¬®­â¨à㬮£® ¤¨áª 
                PUSH HL
                LD B,A
                RRCA
                RRCA
                LD E,A
                LD A,B
                LD D,HIGH (MOUNT_DRIVES)
                LD IXH,D
                LD IXL,E                                ;IX= ¤à¥á ®¯¨á â¥«ï ¯à¨¬®­â¨à®¢ ­­®£® ä ©« 
                LD (IX+_MOUNT_Mount_Num),B              ;­®¬¥à ¬®­â¨à㥬®£® ¤¨áª®¢®¤ 
                LD BC,0X20
                LDIR
                INC A
                LD H,%11110111
OPENMOUNT1      RLC H
                DEC A
                JR NZ,OPENMOUNT1
                LD A,(CPU2+VIRT_BITS)
                AND H
                LD L,A
                LD A,H
                CPL
                OR L
                CALL WR_VIRT_BITS
                EVOPORT WIN_P5,RAM_MOUNTER              ;¢ª«î稫¨ áâà ­¨æã á ®¯¨á â¥«ï¬¨ ¯à¨¬®­â¨à®¢ ­­ëå ä ©«®¢
                POP HL
;HL= ¤à¥á ®¯¨á â¥«ï ¬®­â¨à㥬®£® ä ©« 
IOPEN_MOUNT     LD DE,FILE_EXT
                CALL CP_EXT
                LD (IX+_MOUNT_Ext_Type),C               ;⨯ ®¡à §  ¯® à áè¨à¥­¨î
                CALL ICOM_DEV
                DB _KOL_VOL
                LD (IX+_MOUNT_Vol_Type),A               ;⨯ à §¤¥« 
                LD (IX+_MOUNT_Vol_Num),D                ;­®¬¥à ¢ë¡à ­­®£® à §¤¥« 
                LD L,D
                LD H,0
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                LD DE,BUF_TABLVOL                       ; ¤à¥á â ¡«¨æë ­ ©¤¥­­ëå à §¤¥«®¢
                ADD HL,DE
                LD A,(HL)
                CP _SD_SDZ
                LD HL,COMSDZ
                JR Z,OPENMOUNT6
                CP _SD_SDG
                LD HL,COMSDG
                JR Z,OPENMOUNT6
                LD HL,COMHDDN
OPENMOUNT6      LD (IX+_MOUNT_Adr_Mnt_Drv),L
                LD (IX+_MOUNT_Adr_Mnt_Drv+1),H          ; ¤à¥á ¤à ©¢¥à  ¬®­â¨à㥬®£® ®¡à § 

                LD E,(IX+_MOUNT_FileSize+1)
                LD D,(IX+_MOUNT_FileSize+2)
                LD L,(IX+_MOUNT_FileSize+3)             ;LDE=à §¬¥à ä ©« /256
                LD A,(BYTSSEC)
                LD H,A
OPENMOUNT3      SRL L
                RR D
                RR E
                RRCA
                JR NC,OPENMOUNT3                        ;LDE=ª®«¨ç¥á⢮ ª« áâ¥à®¢
;A00 ᥪâ®à®¢ (256 ¡ ©â) -> 500 ᥪâ®à®¢ (512 ¡ ©â)
;ª« áâ¥à=1 ᥪâ®à       1280/8 ¡ ©â     è £=8
;ª« áâ¥à=2 ᥪâ®à       640/4 ¡ ©â      è £=4
;ª« áâ¥à=4 ᥪâ®à       320/2 ¡ ©â      è £=2
;ª« áâ¥à=8 ᥪâ®à®¢     160 ¡ ©â        è £=1
;ª« áâ¥à=16 ᥪâ®à®¢    80 ¡ ©â         è £=1
;ª« áâ¥à=32 ᥪâ®à      40 ¡ ©â         è £=1
;ª« áâ¥à=64 ᥪâ®à      20 ¡ ©â         è £=1
;ª« áâ¥à=128 ᥪâ®à®¢   10 ¡ ©â         è £=1
                LD IY,1<<8+INTERNAL
                LD A,H
                CP 8
                JR NC,OPENMOUNT5
                LD IYH,8
                RRCA
                JR C,OPENMOUNT5
                LD IYH,4
                RRCA
                JR C,OPENMOUNT5
                LD IYH,2
OPENMOUNT5      LD A,IYH
                LD (IX+_MOUNT_Cls_Step),A               ;è £ ª« áâ¥à®¢
                LD A,(IX+_MOUNT_Mount_Num)              ;­®¬¥à ¬®­â¨à㥬®£® ¤¨áª®¢®¤ 
                ADD A,A
                ADD A,A
                ADD A,HIGH (MOUNT_CLS+CPU5)
                LD H,A
                LD L,0
                LD C,(IX+_MOUNT_FstClusHI)
                LD B,(IX+_MOUNT_FstClusHI+1)
                LD E,(IX+_MOUNT_FstClusLO)
                LD D,(IX+_MOUNT_FstClusLO+1)
                JR OPENMOUNT9

OPENMOUNT7      DEC IYH
                JR NZ,OPENMOUNT8
OPENMOUNT9      LD A,(IX+_MOUNT_Cls_Step)               ;è £ ª« áâ¥à®¢
                LD IYH,A
                LD (HL),E
                INC H
                LD (HL),D
                INC H
                LD (HL),C
                INC H
                LD (HL),B
                DEC H
                DEC H
                DEC H
                INC L
OPENMOUNT8      PUSH HL
                CALL RDFATZP
                CALL LST_CLS
                POP HL
                JR NC,OPENMOUNT7
                RET

FILE_EXT        DZ "TRD"

;[ç⥭¨¥/§ ¯¨áì ¯à¨¬®­â¨à®¢ ­­®£® ®¡à § ]
;HL= ¤à¥á ç⥭¨ï/§ ¯¨á¨
;D=­®¬¥à â४ , E=­®¬¥à ᥪâ®à +1
;A=­®¬¥à ¤¨áª®¢®¤  (BIT 7=0-ç⥭¨¥, =1-§ ¯¨áì)
RDWR_MOUNT      LD A,(RREG_A)
                AND 3
                RRCA
                RRCA
                LD IXL,A
                LD IXH,HIGH (MOUNT_DRIVES)              ;IX=®¯¨á â¥«ì ¤¨áª®¢®¤®¢ A-D
                LD IYL,INTERNAL
                EVOPORT WIN_P5,RAM_FATVARS
                LD A,(SETDVOL)
                ADD A,HIGH (CPU5+BUF_ALLVOL)+4
                LD D,A
                LD E,0
                LD HL,BUF_TEKVOL
                LD BC,0X100
                LDIR
                LD A,(IX+_MOUNT_Vol_Num)
                ADD A,HIGH (CPU5+BUF_ALLVOL)+4
                LD H,A
                LD L,0
                LD DE,BUF_TEKVOL
                LD BC,0X100
                LDIR
                EVOPORT WIN_P5,RAM_MOUNTER
                LD HL,(GO_DEV)
                LD (IX+_MOUNT_Adr_Sel_Drv),L
                LD (IX+_MOUNT_Adr_Sel_Drv+1),H
                LD L,(IX+_MOUNT_Adr_Mnt_Drv)
                LD H,(IX+_MOUNT_Adr_Mnt_Drv+1)
                LD (GO_DEV),HL
                LD HL,(RREG_E)
                DEC L
                LD E,L
                LD L,H
                LD H,0
                LD D,H
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,HL
                ADD HL,DE                               ;HL=­®¬¥à ᥪâ®à  ¢ ä ©«¥ (256 ¡ ©â)
                PUSH HL
                LD A,(BYTSSEC)
RDWRMOUNT1      SRL H
                RR L
                RRCA
                JR NC,RDWRMOUNT1                        ;HL=­®¬¥à ª« áâ¥à 
;0XA00 ᥪâ®à®¢ (256 ¡ ©â) -> 0X500 ᥪâ®à®¢ (512 ¡ ©â)
;ª« áâ¥à=1 ᥪâ®à       1280/8 ¡ ©â     è £=8
;ª« áâ¥à=2 ᥪâ®à       640/4 ¡ ©â      è £=4
;ª« áâ¥à=4 ᥪâ®à       320/2 ¡ ©â      è £=2
;ª« áâ¥à=8 ᥪâ®à®¢     160 ¡ ©â        è £=1
;ª« áâ¥à=16 ᥪâ®à®¢    80 ¡ ©â         è £=1
;ª« áâ¥à=32 ᥪâ®à      40 ¡ ©â         è £=1
;ª« áâ¥à=64 ᥪâ®à      20 ¡ ©â         è £=1
;ª« áâ¥à=128 ᥪâ®à®¢   10 ¡ ©â         è £=1
                LD A,L
                EX AF,AF'
                LD A,(IX+_MOUNT_Cls_Step)
                DEC A
                JR Z,RDWRMOUNT6
                INC A
                ADD HL,HL
RDWRMOUNT2      SRL H
                RR L
                RRCA
                JR NC,RDWRMOUNT2
RDWRMOUNT6      LD A,(RREG_A)                           ;­®¬¥à ¤¨áª®¢®¤ 
                ADD A,A
                ADD A,A
                ADD A,HIGH (MOUNT_CLS+CPU5)
                LD H,A
                LD E,(HL)
                INC H
                LD D,(HL)
                INC H
                LD C,(HL)
                INC H
                LD B,(HL)                               ;BCDE=­®¬¥à ª« áâ¥à 
                LD A,(IX+_MOUNT_Cls_Step)               ;è £ ª« áâ¥à®¢
                DEC A
                JR Z,RDWRMOUNT3                         ;è £ ª« áâ¥à®¢ =1
                LD B,A                                  ;¬ áª  ᬥ饭¨ï ¢ â ¡«¨æ¥ ª« áâ¥à®¢
                EX AF,AF'

                AND B                                   ;A=ᬥ饭¨¥ ¢ â ¡«¨æ¥ ª« áâ¥à®¢
                LD B,(HL)                               ;¢®ááâ ­®¢«¥­¨¥ ­®¬¥à  ª« áâ¥à 
                JR Z,RDWRMOUNT3
RDWRMOUNT4      PUSH AF
                CALL RDFATZP
                POP AF
                DEC A
                JR NZ,RDWRMOUNT4
RDWRMOUNT3      CALL REALSEC                            ;ª®­¢¥àá¨ï ­®¬¥à  ª« áâ¥à  ¢ ­®¬¥à ᥪâ®à 
                POP HL
                PUSH HL
                SRL L
                LD A,(BYTSSEC)
                DEC A
                JR Z,RDWRMOUNT5
                AND L
                LD L,A
                LD H,0
                ADD HL,DE
                EX DE,HL
                LD HL,0
                ADC HL,BC
                LD B,H
                LD C,L
RDWRMOUNT5      CALL LOADLST                            ;ç⥭¨¥ ᥪâ®à  ¢ ¡ãä¥à
                POP BC
                LD A,C
                AND 1
                ADD A,H
                LD H,A
                LD BC,CPU3
                ADD HL,BC                               ; ¤à¥á ¡ãä¥à  ¢ ®ª­¥ 1
                CALL LDIR_SEC
                LD A,(RREG_A)                           ;ç⥭¨¥ ¨«¨ § ¯¨áì
                AND 0X80
                CALL NZ,LSTSAVE
                LD HL,RREG_H
                INC (HL)
                LD L,(IX+_MOUNT_Adr_Sel_Drv)
                LD H,(IX+_MOUNT_Adr_Sel_Drv+1)
                LD (GO_DEV),HL
                EVOPORT WIN_P5,RAM_FATVARS
                LD A,(SETDVOL)
                ADD A,HIGH (CPU5+BUF_ALLVOL)+4
                LD H,A
                LD DE,BUF_TEKVOL
                LD BC,0X100
                LD L,C
                LDIR
                LD (LSTLOAD+2),HL
                RET

LDIR_SEC        EX DE,HL                                ; ¤à¥á ¡ãä¥à  á®åà ­¨«¨ ¢ DE
                LD HL,(RREG_L)                          ;HL= ¤à¥á ¢ ®á­®¢­®© ¯ ¬ïâ¨
                CALL RESETUP_WINS                       ;¯¥à¥ª®­ä¨£ãà æ¨ï ®ª®­ ¯à®¥æ¨à®¢ ­¨ï
                ADD HL,BC                               ;¨§¬¥­¨«¨  ¤à¥á ç⥭¨ï/§ ¯¨á¨
                EX DE,HL                                ;HL= ¤à¥á ¡ãä¥à , DE= ¤à¥á ¢ ®á­®¢­®© ¯ ¬ïâ¨
                LD A,(RREG_A-CPU5)                      ;ç⥭¨¥ ¨«¨ § ¯¨áì
                AND 0X80
                JR Z,LDIRSEC6
                EX DE,HL                                ;¤«ï § ¯¨á¨ ¬¥­ï¥¬ ­ ¯à «¥­¨¥ ¯¥à¥­®á 
LDIRSEC6        LD BC,0X100
                LDIR
                LD HL,CPU5
                ADD HL,SP
                LD SP,HL                                ;¢¥à­ã«¨  ¤à¥á á⥪  ¢ ®ª­® 2
                ATMPORT WIN_A3,0X7F                     ;ã¡à «¨ ¢®§¬®¦­ãî § ¢¨á¨¬®áâì ¢ ®ª­¥ 3 ®â ¯®àâ  7FFD
                LD B,HIGH (WIN_A6)
                OUT (C),A                               ;ã¡à «¨ ¢®§¬®¦­ãî § ¢¨á¨¬®áâì ¢ ®ª­¥ 2 ®â ¯®àâ  7FFD
                XOR A
                LD B,HIGH (WIN_P6)
                OUT (C),A                               ;¢¥à­ã«¨ áâà ­¨æã ¯¥à¥¬¥­­ëå ¢ ®ª­® 2
                RET

TXT_MOUNTER     DZ "IMAGE.MNT"                          ;¨¬ï ¤«ï ¯®¨áª  ⥪á⮢®£® ä ©«  á 㪠§ ­¨¥¬ ª ¬®­â¨à®¢ ­¨î TRD
ETXT_MOUNTER

FIND_MOUNTED    LD A,(KOLDVOL)
                AND A
                JR NZ,FINDMNTD09
                LD IX,MOUNT_DRIVES
                LD DE,0X40
                LD B,4
FINDMNTD10      LD (IX+_MOUNT_Name),D
                ADD IX,DE
                DJNZ FINDMNTD10
                RET

FINDMNTD09      LD A,(SETDVOL)
                LD (SAVE_TEK_VOL),A                     ;á®åà ­¨«¨ ⥪ã饥 ãáâனá⢮
                CALL SAVE_FNDVOL                        ;á®åà ­¨«¨ ¯¥à¥¬¥­­ë¥ ⥪ã饣® ãáâனá⢠
                LD H,CMOS_BYTE_01
                ROMCALL READCMOS,ROM_RST82
                LD A,L
                AND M_AUTOMOUNT                         ;®¯à¥¤¥«¥­¨¥ ­ã¦­® «¨ ¨áª âì ä ©« IMAGE.MNT
                JP Z,FINDMNTD01
;¨é¥¬ ä ©« IMAGE.MNT ¤«ï  ¢â®¬®­â¨à®¢ ­¨ï
                LD IYL,INTERNAL
                LD A,(KOLDVOL)
                DEC A                                   ;¨áª âì ¡ã¤¥¬ ­  ¯®á«¥¤­¥¬ ­ ©¤¥­­®¬ à §¤¥«¥
                CALL SET_VOL_MNT                        ;¯¥à¥ª«î稫áì ­  ¢ë¡à ­­®¥ ãáâனá⢮
                LD HL,(ROOTCLS)
                LD (TEK_DIR),HL
                LD HL,(ROOTCLS+2)
                LD (TEK_DIR+2),HL                       ;¢ë¡à «¨ ª®à­¥¢®© ª â «®£ ¢ë¡à ­­®£® ãáâனá⢠
                CALL INIRTSC                            ;¨­¨æ¨ «¨§¨à®¢ «¨ ¥£® ¯¥à¥¬¥­­ë¥ ­  ROOTDIR
                LD HL,TXT_MOUNTER
                LD DE,BUF_256
                LD BC,ETXT_MOUNTER-TXT_MOUNTER
                LDIR                                    ;¯¥à¥­¥á«¨ ¨¬ï ä ©«  ¤«ï ¯®¨áª 
                CALL ICOM_FAT
                DB _FIND_NAME
                JP C,FINDMNTD01                         ;ä ©« IMAGE.MNT ­¥ ­ ©¤¥­
;ä ©« ­ ©¤¥­
                CALL OPEN_FILE                          ;®âªà뢠¥¬ ä ©«
                LD HL,FILE_SRC+0X1F
                LD A,(HL)
                DEC HL
                OR (HL)
                JP NZ,FINDMNTD01                        ;ä ©« ­¥ ¤®«¦¥­ ¡ëâì ¡®«¥¥ 512 ¡ ©â
                DEC HL
                LD A,(HL)
                CP 2
                JP NC,FINDMNTD01                        ;ä ©« ­¥ ¤®«¦¥­ ¡ëâì ¡®«¥¥ 512 ¡ ©â
                LD A,1                                  ;ç¨â âì ¡ã¤¥¬ 1 ᥪâ®à ¨§ ­ ©¤¥­­®£® ä ©« 
                LD B,(HL)
                DEC HL
                LD C,(HL)                               ;¢§ï«¨ ¤«¨­ã ä ©«  ¢ ¡ ©â å
                PUSH BC                                 ;á®åà ­¨«¨ ¤«ï ¤ «ì­¥©è¥£® ¨á¯®«ì§®¢ ­¨ï
                LD IYL,INTERNAL
                LD HL,OFFSET_BUFSYM+CPU6
                PUSH HL
                CALL READ_FILE                          ;¯à®ç¨â «¨ 1 ᥪâ®à ¨§ ä ©« 
                EVOPORT WIN_P5,RAM_MOUNTER
                POP HL
                POP BC
                ADD HL,BC
                LD (HL),0                               ;ãáâ ­®¢¨«¨ ¯à¨§­ ª ª®­æ  ä ©«  ¢ 0
                SBC HL,BC
FINDMNTD04      LD A,(HL)
                AND A
                JR Z,FINDMNTD01                         ;¢ë室¨¬ ¥á«¨ ä ©« ª®­ç¨«áï
                INC HL
                CP "!"
                JR C,FINDMNTD04                         ;¥á«¨ áâப  ª®­ç¨« áì ¯¥à¥­®á¨¬ íâã áâப㠢 ¡ãä¥à ¯®¨áª 
                DEC HL
                PUSH HL
                INC HL
                CP "a"                                  ;¯¥à¢ë© ᨬ¢®« áâப¨ ¡ãª¢  ãáâனá⢠
                JR C,FINDMNTD06                         ;¤®«¦­  ¡ëâì ⮫쪮 ᨬ¢®« ®â "A"
                CP 'z'+1
                JR NC,FINDMNTD06                        ;¤® "Z"
                AND 0XDF                                ;¯¥à¥¢¥«¨ ¡ãª¢ã ãáâனá⢠ ¢ ¢¥àå­¨© ॣ¨áâà, ¥á«¨ ­ã¦­®
FINDMNTD06      SUB "E"                                 ;FAT ãáâனá⢠ ­ ç¨­ îâáï á ¡ãª¢ë "E"
                JR C,FINDMNTD02
                EXX
                LD C,A                                  ;­®¬¥à ãáâனá⢠ £¤¥ ¨áª âì ä ©«
                LD A,(KOLDVOL)                          ;ª®«¨ç¥á⢮ ­ ©¤¥­­ëå à §¤¥«®¢
                CP C
                EXX
                JR C,FINDMNTD02
                LD A,(HL)
                INC HL
                CP ":"                                  ;à §¤¥«¨â¥«ì ®¡ï§ â¥«¥­
                JR NZ,FINDMNTD02
                LD A,(HL)
                INC HL
                CP "/"                                  ;à §¤¥«¨â¥«ì ®¡ï§ â¥«¥­
                JR NZ,FINDMNTD02
FINDMNTD07      LD A,(HL)
                INC HL
                CP "!"
                JR NC,FINDMNTD07                        ;¨é¥¬ ª®­¥æ áâப¨
                LD A,(HL)                               ;¡ãª¢  ¤¨áª®¢®¤  ­  ª®â®àãî ¬®­â¨à®¢ âì
                INC HL
                CP "a"
                JR C,FINDMNTD08
                CP 'z'+1
                JR NC,FINDMNTD08
                AND 0XDF                                ;¯¥à¥¢®¤¨ ¢ ¢¥àå­¨© ॣ¨áâà, ¥á«¨ ­ã¦­®
FINDMNTD08      SUB "A"
                JR C,FINDMNTD02
                CP 4
                JR NC,FINDMNTD02
                EXX
                LD B,A                                  ;­®¬¥à ¤¨áª®¢®¤  ­  ª®â®àë© ¬®­â¨à®¢ âì
                EXX
                LD A,(HL)
                INC HL
                CP ":"
                JR NZ,FINDMNTD02
                LD D,H
                LD E,L
                EX (SP),HL
                EX DE,HL
                SCF
                SBC HL,DE
                LD B,H
                LD C,L
                EX DE,HL
                EXX
                LD A,B
                EXX
                ADD A,HIGH (BUF_PATHMOUNT+CPU5)
                LD D,A
                LD E,0                                  ;DE= ¤à¥á ¡ãä¥à  ⥪á⮢®© áâப¨ ¬®­â¨à㥬®£® ¤¨áª®¢®¤ 
                DEC BC
                DEC BC
                LDIR                                    ;¯¥à¥­¥á«¨ áâபã
                XOR A
                LD (DE),A                               ;¯à¨­ã¤¨â¥«ì­®¥ § ¢¥à襭¨¥ áâப¨ ¬®­â¨à®¢ ­¨ï
                POP HL
                JR FINDMNTD04

FINDMNTD02      LD A,(HL)
                INC HL
                AND A
                JR Z,FINDMNTD01
                CP " "
                JR NC,FINDMNTD02
                POP DE
                JR FINDMNTD04

FINDMNTD01      EVOPORT WIN_P5,RAM_MOUNTER
                LD BC,0X400
                LD IX,MOUNT_DRIVES                      ;¡ãä¥à ®¯¨á â¥«¥© ¬®­â¨à㥬ëå ä ©«®¢
FINDMNTD2       PUSH BC
                CALL FINDMNTD0                          ;¨é¥¬ 㪠§ ­­ë© ä ©« ¤«ï ¬®­â¨à®¢ ­¨ï
                JR NC,FINDMNT5
                LD (IX+_MOUNT_Name),0                   ;¥á«¨ ä ©« ­¥ ­ ©¤¥­, â® ¯à¨­ã¤¨â¥«ì­® ¤¥¬®­â¨à㥬 ®¡à §
FINDMNT5        LD BC,0X40
                ADD IX,BC                               ;á«¥¤ãî騩 ®¯¨á â¥«ì ¬®­â¨à㥬®£® ä ©« 
                POP BC
                DJNZ FINDMNTD2
                LD A,IYH
                AND 0XF0                                ;áâ à訥 4 ¡¨â  ¯à¨¬®­â¨à®¢ ­­ë¥ ä ©«ë
                LD D,A
                LD A,(CPU2+VIRT_BITS)
                AND 0X0F                                ;¬« ¤è¨¥ 4 ¡¨â  ॠ«ì­ë© ¨ ¢¨àâã «ì­ë¥ ¯à¨¢®¤ë
                OR D                                    ;ᮢ¬¥á⨫¨ ¤«ï § ¯¨á¨ ®¡à â­®
                CALL WR_VIRT_BITS
                LD A,(SAVE_TEK_VOL)
                PUSH IY
                LD IYL,INTERNAL
                CALL SET_VOL_MNT                        ;¢®ááâ ­®¢¨«¨ ⥪ã饥 ¢ë¡à ­­®¥ ãáâனá⢮
                CALL INIRTSC                            ;¯à®¨­¨â¨«¨ ¥£® ¯¥à¥¬¥­­ë¥
                POP IY
                JP LOAD_FNDVOL                          ;¢¥à­ã«¨ ­  ¬¥áâ® ®¯¨á â¥«ì ãáâனá⢠

;[¯®¨áª ¬®­â¨à㥬®£® ä ©«  á ãáâ ­®¢ª®© ᮮ⢥áâ¢ãî饣® ¡¨â ]
FINDMNTD0       CALL FINDMNTD1
                EX AF,AF'
                LD A,IXL
                AND 0XC0
                RLCA
                RLCA                                    ;­®¬¥à ⥪ã饣® ¬®­â¨à㥬®£® ¤¨áª®¢®¤ 
                INC A
                LD B,A
                LD A,%11110111
                RLCA
                DJNZ $-1                                ;ãáâ ­®¢ª  ¬ áª¨ ¬®­â¨à㥬®£® ¤¨áª®¢®¤ 
                LD C,A                                  ;¬ áª 
                CPL
                LD B,A                                  ;¡¨â
                LD A,IYH
                AND C                                   ;á¡à®á¨«¨ ¡¨â ᬮ­â¨à®¢ ­­®£® ¤¨áª®¢®¤ 
                LD IYH,A
                EX AF,AF'

                RET C                                   ;¢ë室 ¥á«¨ ä ©« ­¥ ­ ©¤¥­
                LD A,IYH
                OR B                                    ;ãáâ ­®¢¨«¨ ¡¨â ¥á«¨ ä ©« ­ ©¤¥­
                LD IYH,A
                RET

;[á®åà ­¥­¨¥ ⥪ã饣® ¯ãâ¨]
STORE_PATH      PUSH AF
                EVOPORT WIN_P5,RAM_MOUNTER
                LD A,(SETDVOL)                          ;­®¬¥à ⥪ã饣® ãáâனá⢠
                ADD A,HIGH (TEK_BUFPATH+CPU5)+4         ;+áâ à訩 ¡ ©â  ¤à¥á  ¯ãâ¨
                LD H,A
                LD DE,BUF_256
                LD BC,0X100
                LD L,C
                LDIR
STOREPATH1      POP AF
                RET

;[¢®ááâ ­®¢«¥­¨¥ ⥪ã饣® ¯ãâ¨]
RESTORE_PATH    PUSH AF
                EVOPORT WIN_P5,RAM_MOUNTER
                LD A,(SETDVOL)                          ;­®¬¥à ⥪ã饣® ãáâனá⢠
                ADD A,HIGH (TEK_BUFPATH+CPU5)+4         ;+áâ à訩 ¡ ©â  ¤à¥á  ¯ãâ¨
                LD D,A
                LD HL,BUF_256
                LD BC,0X100
                LD E,C
                LDIR
RESTOREPATH1    POP AF
                RET

;[¯®¨áª ¬®­â¨à㥬®£® ä ©« ]
FINDMNTD1       LD A,IXL
                RLCA
                RLCA
                AND 3
                ADD A,HIGH (BUF_PATHMOUNT+CPU5)
                LD D,A
                LD E,0                                  ;DE= ¤à¥á ¡ãä¥à  áâப¨ ®¯¨á â¥«ï ¬®­â¨à㬮£® ä ©« 
                LD A,(DE)                               ;¢§ï«¨ ¡ãª¢ã ãáâனá⢠ £¤¥ ä ©« ¨áª âì
                INC DE
                INC DE
                INC DE
                AND A
                SCF
                RET Z
                SUB "E"                                 ;ª®­¢¥àá¨ï ¡ãª¢ë ¢ ­®¬¥à
                PUSH DE
                CALL SET_VOL_MNT                        ;¯¥à¥ª«î稫¨áì ­  íâ® ãáâனá⢮
                CALL STORE_PATH                         ;á®åà ­¨«¨ ⥪ã騩 ¯ãâì
                LD HL,(ROOTCLS)
                LD (TEK_DIR),HL
                LD HL,(ROOTCLS+2)
                LD (TEK_DIR+2),HL                       ;¯¥à¥è«¨ ¢ ª®à¥­ì ãáâனá⢠
                CALL INIRTSC                            ;¨­¨æ¨ «¨§ æ¨ï ¥£® ¯¥à¥¬¥­­ëå
                EVOPORT WIN_P5,RAM_MOUNTER
                POP HL
                CALL FNDBUF                             ;à á¯ ª®¢ª  ⥪á⮢®© áâப¨
FINDMNTD13      PUSH HL
                CALL POSTF02                            ;á¡à®á ⥪ã饣® ­®¬¥à  ä ©«  ¢ 0
                CALL FINDMNTD3                          ;¯®¨áª ¢ ⥪ã饩 ¤¨à¥ªâ®à¨¨
                POP DE
                JP C,RESTORE_PATH                       ;¢®ááâ ­®¢¨«¨ ⥪ã騩 ¯ãâì
                LD BC,0X0B
                ADD HL,BC
                LD A,(HL)
                SBC HL,BC
                AND 0X10
                JR Z,FINDMNTD23                         ;¥á«¨ íâ® ä ©« ­ ©¤¥­, â® ®­ ­ ©¤¥­
                PUSH DE
                CALL ENTER_DIR                          ;¨­ ç¥ ¢å®¤¨¬ ¢ ¤¨à¥ªâ®à¨î
                CALL POSTF02                            ;á¡à®á ⥪ã饣® ­®¨¥à  ä ©«  ¢ 0
                POP HL
                LD A,(HL)
                AND A
                SCF
                JP Z,RESTORE_PATH                       ;¢®ááâ ­®¢¨«¨ ⥪ã騩 ¯ãâì
                CALL FNDBUF                             ;à á¯ ª®¢ë¢ ¥¬ á«¥¤ãîéãî ç áâì áâப¨
                JR FINDMNTD13                           ;¯à®¤®«¦ ¥¬ ¯®¨áª

FINDMNTD23      LD A,IXL
                RLCA
                RLCA
                LD E,IXL
                LD D,IXH                                ;DE=ªã¤  ®¯¨á â¥«ì ¯¥à¥­®á¨âì
                LD (IX+_MOUNT_Mount_Num),A              ;­®¬¥à ¬®­â¨à㥬®£® ¤¨áª®¢®¤ 
                PUSH HL
                LD BC,0X20
                LDIR
                POP HL
                PUSH IY
                CALL IOPEN_MOUNT
                POP IY
                XOR A
                JP RESTORE_PATH                         ;¢®ááâ ­®¢¨«¨ ⥪ã騩 ¯ãâì

FINDMNTD4       CALL NXTLEGZ
FINDMNTD3       PUSH HL
                LD DE,FB_EXT
                CALL ICMP_NAME
                POP HL
                RET Z
                LD A,(HL)
                AND A
                JR NZ,FINDMNTD4
                SCF
                RET

;¯®«ã祭¨¥ ®¯¨á â¥«ï ä ©«  § £à㦥­­®£® ¢ à ¬¤¨áª
REST_NAMELOAD   LD HL,NAME_RAMDISK-CPU6
                LD DE,(RREG_L)
                LD BC,0X20
                JP LDIR_BYTES

;STOR_NAMELOAD  LD HL,(RREG_L)
;               LD DE,NAME_RAMDISK-CPU6
;               LD BC,0X20
;               JP LDIR_BYTES

GET_MOUNTED     EVOPORT WIN_P5,RAM_MOUNTER
                LD HL,MOUNT_DRIVES-CPU6
                LD DE,(RREG_L)
                LD BC,0X100
                JP LDIR_BYTES

CMP_DRIVE       EVOPORT WIN_P5,RAM_MOUNTER
                LD A,(RREG_A)
                AND 3
                RLCA
                RLCA
                LD L,A
                LD H,HIGH (MOUNT_DRIVES)
                LD A,(HL)
                AND A                                   ;¥á«¨ ­¥ ¯à¨¬®­â¨à®¢ ­,
                SCF                                     ;â® ¤¨áª  ­¥â
                JR Z,CMP_DRIVE1
                XOR A
CMP_DRIVE1      PUSH AF
                POP HL
                LD (RREG_F),HL
                RET

;[¤¥¬®­â¨à®¢ ­¨¥ ®¡à § ]
CLOSEMOUNT      EVOPORT WIN_P5,RAM_MOUNTER
                LD A,(RREG_A)
                LD B,A
                RRCA
                RRCA
                LD L,A
                LD H,HIGH (MOUNT_DRIVES)
                LD (HL),0
                LD A,B
                ADD A,HIGH (BUF_PATHMOUNT+CPU5)
                LD H,A
                LD L,0
                LD (HL),L
                INC B
                LD A,%11110111
                RLCA
                DJNZ $-1
                LD B,A
                LD A,(CPU2+VIRT_BITS)
                AND B
                JP WR_VIRT_BITS

;[à á¯ ª®¢é¨ª ¯ã⨠ª ä ©«ã]
;HL= ¤à¥á ⥪á⮢®© áâப¨
FNDBUF          LD BC,0X0802
                LD DE,FB_EXT
FNDBUF4         LD A,(HL)
                INC HL
                CP "."
                JR Z,FNDBUF2
                CP "/"
                JR Z,FNDBUF5
                LD (DE),A
                INC DE
                DJNZ FNDBUF4
                LD A,(HL)
                AND A
                RET Z
                INC HL
                JR FNDBUF3

FNDBUF5         LD A,C
                AND A
                RET Z
FNDBUF2         LD A,B
                AND A
                JR Z,FNDBUF3
                LD A," "
                LD (DE),A
                INC DE
                DJNZ $-2
FNDBUF3         LD B,3
                DEC C
                DEC HL
                LD A,(HL)
                CP "/"
                JR Z,FNDBUF4
                INC HL
                JR FNDBUF4

;[¯®«ã祭¨¥ ⥪ã饣® á®áâ®ï­¨ï ¡¨â®¢ ᬮ­â¨à®¢ ­­ëå ¤¨áª®¢®¤®¢ ¨ à ¬¤¨áª ]
GET_VIRT_BITS   LD HL,MOUNT_DRIVES
                LD E,0                          ;§¤¥áì ¡ã¤ãâ ¡¨âë ᬮ­â¨à®¢ ­­ëå ¤¨áª®¢®¤®¢
.L2             LD A,(HL)
                AND A
                JR Z,.L1
;               SCF
                SET 4,E
.L1             RR E
                LD A,0X40
                ADD A,L
                LD L,A
                JR NZ,.L2
; VIRT_BITS - ¢ 3-0 ¡¨â å ¡¨âë ¯à¨¬®­â¨à®¢ ­­å ®¡à §®¢ ¤«ï ¤¨áª®¢ D-A
                CALL GET_VIRTREAL
                AND 3
                INC A
                LD B,A
                LD A,%00001000
.L3             RLCA
                DJNZ .L3
                OR E
; A xxxx0000 - ¡¨âë à ¬¤¨áª 
; E 0000xxxx - ¡¨âë ¯à¨¬®­â¨à®¢ ­­ëå ®¡à §®¢

;[ª®¯¨à®¢ ­¨¥ ãáâ ­®¢®ª ¢¨àâã «/ॠ« ¤«ï EVO-DOS]
WR_VIRT_BITS    PUSH BC
                PUSH HL
        IFDEF DOS_FE
                LD L,A
                AND 0X0F                        ; ¯à¨¬®­â¨à®¢ ­­ë¥ ¤¨áª¨
                LD H,A
                LD A,L
                RRCA
                RRCA
                RRCA
                RRCA
                AND 0X0F                        ; à ¬¤¨áª
                OR H
                LD BC,FDD_EMU_PORT
                OUT (C),A
                LD A,L
        ENDIF
                LD (CPU2+VIRT_BITS),A           ; ¢­ãâ७­ïï ¯¥à¥¬¥­ ï
                LD (RREG_A),A                   ; ¢®§¢à é ¥¬®¥ §­ ç¥­¨¥ ¢ ॣ¨áâॠA
                EX AF,AF'
                EVOPORT WIN_P2,RAM_EVODOS
                EX AF,AF'

                LD (CPU2+COPY_VIRT_BITS),A      ; ª®¯¨ï ¯¥à¥¬¥­­®© ¤«ï í¬ã«ï
                XOR A
                OUT (C),A
                POP HL
                POP BC
                RET

;[¬®­â¨à®¢ ­¨¥ à ¬¤¨áª ]
MOUNT_RAMDISK   CALL GET_VIRTREAL
                AND 3
                JR SET_RAMDISK.L1

; ®âª«î祭¨¥/ãáâ ­®¢ª  à ¬¤¨áª 
; A = >3 - ®âª«î祭¨¥ à ¬¤¨áª 
;     0..3 - ­®¬¥à à ¬¤¨áª 
; VIRT_BITS - 7-4 ¡¨â ®¤¨­ ãáâ ­®¢«¥­­ë© ¡¨â -> à ¬¤¨áª
SET_RAMDISK     LD A,(RREG_A)
                CP 4
                JR C,.L1
                LD A,(CPU2+VIRT_BITS)
                AND 0X0F
                JR WR_VIRT_BITS

.L1             INC A
                LD B,A
                LD A,%00001000
.L2             RLCA
                DJNZ .L2
                LD L,A
                LD A,(CPU2+VIRT_BITS)
                AND 0X0F
                OR L
                JR WR_VIRT_BITS

GET_VIRTREAL    LD H,VIRT_REAL_DRIVE
                ROMCALL READCMOS,ROM_RST82
                AND 0X0F
                RET