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