mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
fix bug in ATTRIB for 64 kb cluster
This commit is contained in:
parent
e6aa5aa304
commit
058f5e4859
@ -1,9 +1,9 @@
|
|||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
; INPUT: HL - "C:\DIR1\DIR2\filename.ext",#00
|
||||||
; A - ATTRIB
|
; A - ATTRIB
|
||||||
; B - MODE
|
; B - MODE:
|
||||||
; B = #00 GET ATTRIB
|
; 0 GET ATTRIB
|
||||||
; B = #01 SET ATTRIB
|
; 1 SET ATTRIB
|
||||||
; OUTPUT: A - ATTRIB
|
; OUTPUT: A - ATTRIB
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
||||||
@ -15,6 +15,10 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
POP BC
|
POP BC
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
|
; á«ãç © çâ¥¨ï ¤«ï ®¡å®¤ ¯à®¢¥àª¨ CHECK_64kb_CLUSTER
|
||||||
|
LD A,1
|
||||||
|
LD (OPEN_FN.TMP),A
|
||||||
|
;
|
||||||
LD A,C
|
LD A,C
|
||||||
;
|
;
|
||||||
;
|
;
|
||||||
@ -27,7 +31,7 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
CALL .OPENATR ;R002
|
CALL .OPENATR ;R002
|
||||||
RET C
|
RET C
|
||||||
;!TEST ;[x] 16/11/23 optimize get attribute
|
;!TEST ;[x] 16/11/23 optimize get attribute
|
||||||
LD A,(HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
LD A,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
||||||
;LD B,(IY+_sFM.ATTRIBUT)
|
;LD B,(IY+_sFM.ATTRIBUT)
|
||||||
;PUSH BC
|
;PUSH BC
|
||||||
;CALL CLOSE
|
;CALL CLOSE
|
||||||
@ -46,7 +50,6 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
LD (OPEN_FN.TMP),A
|
LD (OPEN_FN.TMP),A
|
||||||
;
|
;
|
||||||
CALL .OPENATR ;R002
|
CALL .OPENATR ;R002
|
||||||
;!TEST ;[x] 16/11/23 optimize get attribute
|
|
||||||
CALL NC,OPEN_FN.FM
|
CALL NC,OPEN_FN.FM
|
||||||
;
|
;
|
||||||
POP BC
|
POP BC
|
||||||
@ -60,27 +63,22 @@ ATTRIB: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
RET C
|
RET C
|
||||||
LD A,B
|
LD A,B
|
||||||
RET
|
RET
|
||||||
;R002
|
;
|
||||||
|
;
|
||||||
; ¢ë室: ¥á«¨ CF = 0, â® DE = record index
|
; ¢ë室: ¥á«¨ CF = 0, â® DE = record index
|
||||||
;!TEST 9/11/23 record index
|
;!TEST 9/11/23 record index
|
||||||
.OPENATR: ;!TEST ;[x] 16/11/23 optimize get attribute
|
.OPENATR: CALL SetPath_GetName ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
;LD (OPEN.TMP),A ; à ¡. ï祩ª (§¤¥áì âਡãâ § ¯¨á¨)
|
|
||||||
;
|
|
||||||
CALL SetPath_GetName ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
|
||||||
RET C
|
RET C
|
||||||
; [ ] 26/06/2024
|
; ¥á«¨ íâ® ¥ ç⥨¥, â® ¯à®¢¥à塞 à §¬¥à ª« áâ¥à
|
||||||
CALL CHECK_64kb_CLUSTER
|
LD A,(OPEN_FN.TMP)
|
||||||
|
AND A
|
||||||
|
CALL Z,CHECK_64kb_CLUSTER
|
||||||
RET C
|
RET C
|
||||||
;
|
;
|
||||||
CALL MASK
|
CALL MASK
|
||||||
RET C
|
RET C
|
||||||
LD A,FAT_ATTR.NoVolID
|
LD A,FAT_ATTR.NoVolID
|
||||||
;!TEST ;[x] 16/11/23 optimize get attribute
|
|
||||||
JP SEARCH.Custom
|
JP SEARCH.Custom
|
||||||
;CALL SEARCH.Custom
|
|
||||||
;RET C ; § ¯¨áì ¥ ©¤¥
|
|
||||||
;JP OPEN.FM ; ¯®¨áª ᢮¡. ¤¥áªà¨¯â®à
|
|
||||||
;
|
|
||||||
;
|
;
|
||||||
; [ ] ; !TODO ¤«ï ª®¬ ¤ë LABEL ¢ Shell
|
; [ ] ; !TODO ¤«ï ª®¬ ¤ë LABEL ¢ Shell
|
||||||
; 1. ¯à®¢¥à¨âì çâ® ¢ HL 㪠§ ⮫쪮 ¬¥âª ¢ ª ¢ëçª å
|
; 1. ¯à®¢¥à¨âì çâ® ¢ HL 㪠§ ⮫쪮 ¬¥âª ¢ ª ¢ëçª å
|
||||||
|
|||||||
@ -28,7 +28,7 @@ CHDIR_FN:
|
|||||||
;
|
;
|
||||||
CHDIR: CALL SetPath_GetName ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
CHDIR: CALL SetPath_GetName ; â¥áâ ¤®¯ãáâ. ¨¬ï ¨ áâà. ¤¨áª
|
||||||
RET C
|
RET C
|
||||||
LD HL,TMPNAME
|
LD HL,CORE_BUFFERS.TMPNAME
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
OR A
|
OR A
|
||||||
RET Z
|
RET Z
|
||||||
|
|||||||
@ -57,8 +57,8 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23 ;CREATE_FN:
|
|||||||
;
|
;
|
||||||
;no_file_found
|
;no_file_found
|
||||||
.DO: ; FAT_DIRECTORY_RECORD.NAME + .EXT
|
.DO: ; FAT_DIRECTORY_RECORD.NAME + .EXT
|
||||||
LD HL,MASKARE
|
LD HL,CORE_BUFFERS.MASKARE
|
||||||
LD DE,HANDBUF
|
LD DE,CORE_BUFFERS.HANDBUF
|
||||||
LD BC,11
|
LD BC,11
|
||||||
LDIR
|
LDIR
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
|
|||||||
@ -125,7 +125,7 @@ EX_PATH: EXX
|
|||||||
EXX
|
EXX
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
.PAT0: LD DE,TMPBUF
|
.PAT0: LD DE,TMPBUF
|
||||||
LD BC,#0D01 ;!HARDCODE áç¥â稪¨
|
LD BC,256*TMPBUF.Size + 1 ; áç¥â稪¨
|
||||||
.PAT1: LD A,(HL)
|
.PAT1: LD A,(HL)
|
||||||
CALL UPPER ; a..z -> A..Z
|
CALL UPPER ; a..z -> A..Z
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
@ -226,12 +226,17 @@ EX_PATH: EXX
|
|||||||
SET PATH_PR,A
|
SET PATH_PR,A
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
JP .PAT0
|
JP .PAT0
|
||||||
;!TODO ¯¥à¥¥áâ¨/§ ¬¥¨âì ®¡é¨©
|
;
|
||||||
TMPBUF: DB " ",#00 ; 12 ¯à®¡¥«®¢
|
|
||||||
|
;TMPBUF: DB " ",#00 ; 13 ¯à®¡¥«®¢ + 0
|
||||||
|
;TMPBUF: DB " ",#00 ; 12 ¯à®¡¥«®¢ + 0
|
||||||
|
TMPBUF EQU CORE_BUFFERS.TMPNAME
|
||||||
|
.Size EQU CORE_BUFFERS.TMPNAME.Size
|
||||||
NM_DRIVE: DW NM_DRIVE_A
|
NM_DRIVE: DW NM_DRIVE_A
|
||||||
NM_NAME: DW NM_NAME_A
|
NM_NAME: DW NM_NAME_A
|
||||||
NM_EXTN: DW NM_EXTN_A
|
NM_EXTN: DW NM_EXTN_A
|
||||||
NM_PATH: DW NM_PATH_A
|
NM_PATH: DW NM_PATH_A
|
||||||
|
;!TODO ¯¥à¥¥áâ¨/§ ¬¥¨âì ®¡é¨© ¡ãä¥à
|
||||||
NM_DRIVE_A: BLOCK 9,0
|
NM_DRIVE_A: BLOCK 9,0
|
||||||
NM_NAME_A: DB " ",#00 ; 12 能恣市恥
|
NM_NAME_A: DB " ",#00 ; 12 能恣市恥
|
||||||
NM_EXTN_A: DB " ",0
|
NM_EXTN_A: DB " ",0
|
||||||
|
|||||||
@ -235,7 +235,7 @@ RETFAR: LD B,DSS_Error.sys.UNEXPECTED_APP_TRMN
|
|||||||
; …᫨ à áè. ä ©« § ¤ ®, áà ¢¨âì ¥£® á "exe".
|
; …᫨ à áè. ä ©« § ¤ ®, áà ¢¨âì ¥£® á "exe".
|
||||||
;-------------------------------------------------
|
;-------------------------------------------------
|
||||||
TST_EXT: LD HL,EXE_EXT ; "EXE"
|
TST_EXT: LD HL,EXE_EXT ; "EXE"
|
||||||
LD DE,MASKARE+8
|
LD DE,CORE_BUFFERS.MASKARE.Ext
|
||||||
LD B,3
|
LD B,3
|
||||||
LD A,(DE)
|
LD A,(DE)
|
||||||
CP ' '
|
CP ' '
|
||||||
@ -478,7 +478,7 @@ M_PSP: LD HL,(CORE_BUFFERS.EXEBUFF.LD_ADDR)
|
|||||||
LD (HL),A
|
LD (HL),A
|
||||||
INC HL
|
INC HL
|
||||||
.YP_ESLA: EX DE,HL
|
.YP_ESLA: EX DE,HL
|
||||||
LD HL,TMPNAME
|
LD HL,CORE_BUFFERS.TMPNAME
|
||||||
.loop: LD A,(HL)
|
.loop: LD A,(HL)
|
||||||
LDI
|
LDI
|
||||||
CP ' '+1
|
CP ' '+1
|
||||||
|
|||||||
@ -31,7 +31,7 @@ F_FIRST: CALL .INIT_VARS
|
|||||||
LD A,(.SEARCH_ATTRIBUT)
|
LD A,(.SEARCH_ATTRIBUT)
|
||||||
CALL SEARCH.Custom
|
CALL SEARCH.Custom
|
||||||
RET C
|
RET C
|
||||||
LD HL,MASKARE
|
LD HL,CORE_BUFFERS.MASKARE
|
||||||
.DTABUF+1: LD DE,0
|
.DTABUF+1: LD DE,0
|
||||||
LD BC,FAT_DIRECTORY_RECORD.ATTRIBUT ; ª®¯¨à㥬 .NAME ¨ .EXT
|
LD BC,FAT_DIRECTORY_RECORD.ATTRIBUT ; ª®¯¨à㥬 .NAME ¨ .EXT
|
||||||
LDIR
|
LDIR
|
||||||
@ -43,13 +43,13 @@ F_FIRST: CALL .INIT_VARS
|
|||||||
LD BC,FAT_DIRECTORY_RECORD
|
LD BC,FAT_DIRECTORY_RECORD
|
||||||
ADD IX,BC
|
ADD IX,BC
|
||||||
LD (F_NEXT.CURHND),IX
|
LD (F_NEXT.CURHND),IX
|
||||||
LD HL,HANDBUF + FAT_DIRECTORY_RECORD.RESERVED_NT
|
LD HL,CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.RESERVED_NT
|
||||||
LD BC,HANDBUF.SIZE - FAT_DIRECTORY_RECORD.RESERVED_NT
|
LD BC,CORE_BUFFERS.HANDBUF.SIZE - FAT_DIRECTORY_RECORD.RESERVED_NT
|
||||||
LDIR
|
LDIR
|
||||||
LD A,(HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
LD A,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
INC DE
|
INC DE
|
||||||
LD HL,HANDBUF
|
LD HL,CORE_BUFFERS.HANDBUF
|
||||||
.FNDMODE+1: LD A,0
|
.FNDMODE+1: LD A,0
|
||||||
OR A
|
OR A
|
||||||
JR NZ,.FIND_M2
|
JR NZ,.FIND_M2
|
||||||
@ -87,7 +87,7 @@ F_NEXT:
|
|||||||
RET Z
|
RET Z
|
||||||
LD (F_FIRST.DTABUF),DE
|
LD (F_FIRST.DTABUF),DE
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD DE,MASKARE
|
LD DE,CORE_BUFFERS.MASKARE
|
||||||
LD BC,11 ;!HARDCODE
|
LD BC,11 ;!HARDCODE
|
||||||
LDIR
|
LDIR
|
||||||
|
|
||||||
|
|||||||
@ -13,13 +13,14 @@ MKDIR:
|
|||||||
CCF
|
CCF
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
; Entry point ;!TEST Current Dir ;[x] 15/10/23
|
; Entry point
|
||||||
.B: PUSH HL
|
.B: PUSH HL
|
||||||
CALL DIR_PATH_CHECK
|
CALL DIR_PATH_CHECK
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
CALL .START
|
CALL .START
|
||||||
PUSH AF
|
PUSH AF
|
||||||
|
;Current Dir
|
||||||
LD HL,CORE_BUFFERS.CurrentDirectory
|
LD HL,CORE_BUFFERS.CurrentDirectory
|
||||||
CALL CHDIR
|
CALL CHDIR
|
||||||
POP AF
|
POP AF
|
||||||
@ -36,6 +37,7 @@ MKDIR:
|
|||||||
;!TEST optimization à ¥¥ SetPath_GetName 㦥 § £à㧨« ¤¨à¥ªâ®à¨î
|
;!TEST optimization à ¥¥ SetPath_GetName 㦥 § £à㧨« ¤¨à¥ªâ®à¨î
|
||||||
;CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
;CALL LOADDIR ; ¯à®ç¨â âì ᯨ᮪ ª â «®£
|
||||||
;
|
;
|
||||||
|
;[ ] cdfs
|
||||||
CALL SEARCH.Dir ; ¯®¨áª § ¯¨á¨ ª â «®£ ¢ ᯨ᪥ ¤¨áª
|
CALL SEARCH.Dir ; ¯®¨áª § ¯¨á¨ ª â «®£ ¢ ᯨ᪥ ¤¨áª
|
||||||
; [x] fixed a bug with incorrect search when there were too many files in the directory 12/03/2024
|
; [x] fixed a bug with incorrect search when there were too many files in the directory 12/03/2024
|
||||||
; LD A,DSS_Error.sys.DIR_EXISTS
|
; LD A,DSS_Error.sys.DIR_EXISTS
|
||||||
@ -59,8 +61,8 @@ MKDIR:
|
|||||||
;
|
;
|
||||||
CALL WRITE_TO_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
CALL WRITE_TO_FAT ; § ¯¨á âì ¢ ª¥è FAT- ®¬¥à ª« áâ¥à
|
||||||
CALL WRITE_FAT_TABLE ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
CALL WRITE_FAT_TABLE ; ¯®¤ª«. ¡ ªã ª¥è FAT ¨ § ¯¨á âì ¥£® ¤¨áª
|
||||||
LD HL,MASKARE
|
LD HL,CORE_BUFFERS.MASKARE
|
||||||
LD DE,HANDBUF
|
LD DE,CORE_BUFFERS.HANDBUF
|
||||||
LD BC,11
|
LD BC,11
|
||||||
LDIR
|
LDIR
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
@ -113,7 +115,7 @@ MKDIR:
|
|||||||
DJNZ .loop3
|
DJNZ .loop3
|
||||||
; ᪮¯¨à®¢ âì ¡ ©âë 11..31 FAT_DIRECTORY_RECORD
|
; ᪮¯¨à®¢ âì ¡ ©âë 11..31 FAT_DIRECTORY_RECORD
|
||||||
INC HL
|
INC HL
|
||||||
LD DE,HANDBUF+FAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
LD DE,CORE_BUFFERS.HANDBUF+FAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD BC,21 ; !HARDCODE
|
LD BC,21 ; !HARDCODE
|
||||||
LDIR
|
LDIR
|
||||||
@ -139,14 +141,14 @@ MKDIR:
|
|||||||
;
|
;
|
||||||
;LD IX,HANDBUF
|
;LD IX,HANDBUF
|
||||||
XOR A
|
XOR A
|
||||||
LD (HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),A
|
LD (CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),A
|
||||||
LD (HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1),A
|
LD (CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1),A
|
||||||
LD (HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H),A
|
LD (CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H),A
|
||||||
LD (HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1),A
|
LD (CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1),A
|
||||||
LD DE,HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
LD DE,CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª âਡã⮢ ä ©«
|
||||||
.copy_dir_record:
|
.copy_dir_record:
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD BC,HANDBUF.SIZE - FAT_DIRECTORY_RECORD.ATTRIBUT ; 21
|
LD BC,CORE_BUFFERS.HANDBUF.SIZE - FAT_DIRECTORY_RECORD.ATTRIBUT ; 21
|
||||||
LDIR
|
LDIR
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
|
|||||||
@ -44,8 +44,8 @@ OPEN_FN: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
;
|
;
|
||||||
LD D,YH
|
LD D,YH
|
||||||
LD E,YL
|
LD E,YL
|
||||||
LD HL,HANDBUF
|
LD HL,CORE_BUFFERS.HANDBUF
|
||||||
LD BC,HANDBUF.SIZE
|
LD BC,CORE_BUFFERS.HANDBUF.SIZE
|
||||||
LDIR
|
LDIR
|
||||||
.TMP+1: LD A,0
|
.TMP+1: LD A,0
|
||||||
LD (IY+_sFM.ACCESS_MODE),A
|
LD (IY+_sFM.ACCESS_MODE),A
|
||||||
|
|||||||
@ -71,7 +71,7 @@ RENAME: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
SET_PAGE_X DIRPAGE
|
SET_PAGE_X DIRPAGE
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
;
|
;
|
||||||
LD HL,MASKARE
|
LD HL,CORE_BUFFERS.MASKARE
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
LD BC,11
|
LD BC,11
|
||||||
|
|||||||
@ -42,10 +42,10 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23
|
|||||||
CALL LOADDIR
|
CALL LOADDIR
|
||||||
CALL SEARCH.Dir
|
CALL SEARCH.Dir
|
||||||
RET C
|
RET C
|
||||||
; fat32
|
; fat32 ; [ ] CDFS
|
||||||
LD HL,(HANDBUF+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H)
|
LD HL,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H)
|
||||||
EXX
|
EXX
|
||||||
LD HL,(HANDBUF+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L)
|
LD HL,(CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L)
|
||||||
PUSH IX ;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
PUSH IX ;!TODO record index. ¢®§¬®¦®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ¨æë
|
||||||
;
|
;
|
||||||
;!TODO <20>à®æ¥¤ãà ¯®«®£® ¢ëç¨âë¢ ¨ï ª â «®£ (¢á¥ ª« áâ¥àë). Œ®¦® § ¤¥©á⢮¢ âì ¢ ¤àã£¨å ¬¥áâ å
|
;!TODO <20>à®æ¥¤ãà ¯®«®£® ¢ëç¨âë¢ ¨ï ª â «®£ (¢á¥ ª« áâ¥àë). Œ®¦® § ¤¥©á⢮¢ âì ¢ ¤àã£¨å ¬¥áâ å
|
||||||
|
|||||||
@ -216,7 +216,6 @@ SAVETXT: PUSH AF
|
|||||||
.NOSAVET: POP AF
|
.NOSAVET: POP AF
|
||||||
RET
|
RET
|
||||||
;-----------------------------------------------------------------------
|
;-----------------------------------------------------------------------
|
||||||
|
|
||||||
BACKTXT: PUSH AF
|
BACKTXT: PUSH AF
|
||||||
.VMODE+1: LD A,#00
|
.VMODE+1: LD A,#00
|
||||||
;BIT 7,A
|
;BIT 7,A
|
||||||
|
|||||||
@ -70,7 +70,7 @@ SetPath_GetName:
|
|||||||
RET NZ
|
RET NZ
|
||||||
INC HL
|
INC HL
|
||||||
;
|
;
|
||||||
.dir_loop: LD DE,TMPNAME
|
.dir_loop: LD DE,CORE_BUFFERS.TMPNAME
|
||||||
LD BC,#0DFF
|
LD BC,#0DFF
|
||||||
.loop: LD A,(HL)
|
.loop: LD A,(HL)
|
||||||
INC HL
|
INC HL
|
||||||
@ -88,20 +88,20 @@ SetPath_GetName:
|
|||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.done: XOR A
|
.done: XOR A
|
||||||
LD (TMPNAME),A
|
LD (CORE_BUFFERS.TMPNAME),A
|
||||||
RET
|
RET
|
||||||
;
|
;
|
||||||
.DIR_NAME: XOR A
|
.DIR_NAME: XOR A
|
||||||
LD (DE),A
|
LD (DE),A
|
||||||
PUSH HL
|
PUSH HL
|
||||||
LD HL,TMPNAME
|
LD HL,CORE_BUFFERS.TMPNAME
|
||||||
CALL OPENDIR
|
CALL OPENDIR
|
||||||
POP HL
|
POP HL
|
||||||
RET C
|
RET C
|
||||||
JR .dir_loop
|
JR .dir_loop
|
||||||
;
|
;
|
||||||
; <20>ãä¥à ¨¬¥¨ 8.3 ä®à¬ â
|
; <20>ãä¥à ¨¬¥¨ 8.3 ä®à¬ â
|
||||||
TMPNAME: DZ ' ' ; 12 ¯à®¡¥«®¢ ¨ 0 ;!FIXIT ª ¡ãä¥à ¬
|
;TMPNAME: DZ ' ' ; 12 ¯à®¡¥«®¢ ¨ 0 ;!FIXIT ª ¡ãä¥à ¬
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
|
|
||||||
@ -218,8 +218,8 @@ OPENDSK: ;!TEST DRV.Open
|
|||||||
; DE - 11 bytes filename
|
; DE - 11 bytes filename
|
||||||
; RET: C=2 FILE WITHOUT EXTENTION
|
; RET: C=2 FILE WITHOUT EXTENTION
|
||||||
; C=1 FILE WITH EXTENTION
|
; C=1 FILE WITH EXTENTION
|
||||||
MASK: LD HL,TMPNAME
|
MASK: LD HL,CORE_BUFFERS.TMPNAME
|
||||||
.name: LD DE,MASKARE
|
.name: LD DE,CORE_BUFFERS.MASKARE
|
||||||
.custom: PUSH HL
|
.custom: PUSH HL
|
||||||
PUSH DE
|
PUSH DE
|
||||||
LD H,D
|
LD H,D
|
||||||
@ -399,7 +399,7 @@ DIR_PATH_CHECK: LD A,(HL)
|
|||||||
|
|
||||||
|
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
CHECK_NAME: LD HL,MASKARE
|
CHECK_NAME: LD HL,CORE_BUFFERS.MASKARE
|
||||||
.custom: LD BC,11 ;!HARDCODE
|
.custom: LD BC,11 ;!HARDCODE
|
||||||
LD A,"?"
|
LD A,"?"
|
||||||
CPIR
|
CPIR
|
||||||
|
|||||||
@ -69,26 +69,20 @@ RST_0x10: JP RST_10
|
|||||||
RST_0x18: PUSH AF
|
RST_0x18: PUSH AF
|
||||||
PUSH BC
|
PUSH BC
|
||||||
DRV_PG_NUMBER+2:
|
DRV_PG_NUMBER+2:
|
||||||
LD BC,0*256+SLOT0
|
LD BC,SLOT0 + 0*256
|
||||||
JP PORTAL.out_MAIN
|
JP PORTAL.out_MAIN
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;NOT USED
|
;FS API
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
_mInfoBLOCK #20-$,#FF
|
_mInfoBLOCK #20-$,#FF
|
||||||
RST_0x20: JP RST_20
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
|
RST_0x20: PUSH AF
|
||||||
|
PUSH BC
|
||||||
////////////////////////////////////////////////////////////////////////
|
FS_PG_NUMBER+2: LD BC,SLOT0 + 0*256
|
||||||
RST_20:
|
JP PORTAL.out_MAIN
|
||||||
RST_28:
|
|
||||||
NOPS: LD A,DSS_Error.sys.INVALID_FUNCTION
|
|
||||||
SCF
|
|
||||||
RET
|
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
@ -101,6 +95,15 @@ RST_0x28: JP RST_28
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
RST_28:
|
||||||
|
NOPS: LD A,DSS_Error.sys.INVALID_FUNCTION
|
||||||
|
SCF
|
||||||
|
RET
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;MOUSE API
|
;MOUSE API
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
_mInfoBLOCK #30-$,#FF
|
_mInfoBLOCK #30-$,#FF
|
||||||
@ -171,6 +174,20 @@ RST_10: PUSH HL
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
; in: C - áâà ¨æ ¤«ï ¯®¤ª«î票ï
|
||||||
|
; out: A - áâà ¨æ ª®â®à ï ¡ë« ¯®¤ª«îç¥
|
||||||
|
SET_PAGE_X: LD B,high BANKTBL
|
||||||
|
LD A,(BC)
|
||||||
|
LD B,A
|
||||||
|
LD C,SLOT3
|
||||||
|
IN A,(SLOT3)
|
||||||
|
OUT (C),B
|
||||||
|
RET
|
||||||
|
////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;DRIVE PAGE SWITCH
|
;DRIVE PAGE SWITCH
|
||||||
////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////
|
||||||
_mInfoBLOCK #80-$,0
|
_mInfoBLOCK #80-$,0
|
||||||
@ -194,6 +211,14 @@ CLEAR_BUFFER_AND_INIT_PROC:
|
|||||||
LD BC,CLEAR_ZONE.size - 1
|
LD BC,CLEAR_ZONE.size - 1
|
||||||
LD (HL),A
|
LD (HL),A
|
||||||
LDIR
|
LDIR
|
||||||
|
;!TODO ¯¥à¥¥á⨠¢ _sBuffers ¢ ç «® ¥éñ ¡ãä¥àë á ¯à®¡¥« ¬¨ ¢ ç «¥ à ¡®âë
|
||||||
|
LD HL,CORE_BUFFERS.TMPNAME
|
||||||
|
LD DE,CORE_BUFFERS.TMPNAME + 1
|
||||||
|
LD BC,CORE_BUFFERS.TMPNAME.Size - 1
|
||||||
|
LD A," "
|
||||||
|
LD (HL),A
|
||||||
|
LDIR
|
||||||
|
;
|
||||||
LD HL,':'*256 + 'X'
|
LD HL,':'*256 + 'X'
|
||||||
LD (CORE_BUFFERS.CurrentPath),HL
|
LD (CORE_BUFFERS.CurrentPath),HL
|
||||||
LD A,'\' ;
|
LD A,'\' ;
|
||||||
@ -321,7 +346,7 @@ DSS_API_TABLE:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
;!FIXIT ª ¡ãä¥à ¬
|
;!FIXIT ª ¡ãä¥à ¬
|
||||||
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï DSS
|
; Œ áᨢ «®£. ®¬¥à®¢ ¡ ®ª à áè¨à¥¨ï DSS
|
||||||
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
|
BANKTBL: BLOCK USING_MEMPAGES+1,#FF ; +1 ¤«ï COREPAGE
|
||||||
@ -333,16 +358,24 @@ MASKARE: BLOCK 8,0 ;
|
|||||||
BLOCK 3,0 ; à áè.
|
BLOCK 3,0 ; à áè.
|
||||||
BLOCK 21,0 ; 11+21=32
|
BLOCK 21,0 ; 11+21=32
|
||||||
;
|
;
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
DISPLAY "DOS-MAIN end address: ",/H,$-1
|
DISPLAY "DOS-MAIN end address: ",/H,$-1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
BANKTBL EQU ($ & #FF00) + (1<?($ & #FF)) * #100
|
||||||
|
.Size EQU USING_MEMPAGES + 2
|
||||||
;> > > > > > > > > > > > > > > > BUFFERS < < < < < < < < < < < < < < < <
|
;> > > > > > > > > > > > > > > > BUFFERS < < < < < < < < < < < < < < < <
|
||||||
CLEAR_ZONE.start EQU $
|
CLEAR_ZONE.start EQU BANKTBL + BANKTBL.Size
|
||||||
MODULE CORE_BUFFERS
|
MODULE CORE_BUFFERS
|
||||||
BUFFERSplace _sBuffers=$
|
BUFFERSplace _sBuffers = CLEAR_ZONE.start
|
||||||
|
TMPNAME EQU BUFFERSplace.TMPNAME
|
||||||
|
.Size EQU 8+1+3+1 ; <20>ãä¥à ¨¬¥¨ 8.3 + 0
|
||||||
|
HANDBUF EQU BUFFERSplace.HANDBUF
|
||||||
|
.SIZE EQU FAT_DIRECTORY_RECORD
|
||||||
|
MASKARE _sMASKARE = BUFFERSplace.MASKARE
|
||||||
FM_BUF _sFM = BUFFERSplace.FileManipulator
|
FM_BUF _sFM = BUFFERSplace.FileManipulator
|
||||||
.Size EQU _sFM
|
.Size EQU _sFM
|
||||||
.FullSize EQU FMCOUNT*FM_BUF.Size
|
.FullSize EQU FMCOUNT*FM_BUF.Size
|
||||||
@ -387,17 +420,30 @@ CLEAR_ZONE.size EQU _sBuffers
|
|||||||
DISPLAY "CLEAR_ZONE.End ", /H, CLEAR_ZONE.start + CLEAR_ZONE.size
|
DISPLAY "CLEAR_ZONE.End ", /H, CLEAR_ZONE.start + CLEAR_ZONE.size
|
||||||
DISPLAY "--- --- --- --- --- --- --- ---"
|
DISPLAY "--- --- --- --- --- --- --- ---"
|
||||||
|
|
||||||
|
|
||||||
|
EXPORT BANKTBL
|
||||||
|
EXPORT CLEAR_ZONE.start
|
||||||
|
EXPORT CLEAR_ZONE.size
|
||||||
EXPORT CORE_BUFFERS.BUFFERSplace
|
EXPORT CORE_BUFFERS.BUFFERSplace
|
||||||
|
EXPORT CORE_BUFFERS.HANDBUF
|
||||||
|
EXPORT CORE_BUFFERS.HANDBUF.SIZE
|
||||||
|
EXPORT CORE_BUFFERS.MASKARE
|
||||||
|
EXPORT CORE_BUFFERS.TMPNAME
|
||||||
EXPORT CORE_BUFFERS.FM_BUF
|
EXPORT CORE_BUFFERS.FM_BUF
|
||||||
|
EXPORT CORE_BUFFERS.FM_BUF.Size
|
||||||
|
EXPORT CORE_BUFFERS.FM_BUF.FullSize
|
||||||
EXPORT CORE_BUFFERS.FS_Buffer
|
EXPORT CORE_BUFFERS.FS_Buffer
|
||||||
EXPORT CORE_BUFFERS.EXEBUFF
|
EXPORT CORE_BUFFERS.EXEBUFF
|
||||||
EXPORT CORE_BUFFERS.XSTACK
|
EXPORT CORE_BUFFERS.XSTACK
|
||||||
|
EXPORT CORE_BUFFERS.XSTACK.Spoint
|
||||||
EXPORT CORE_BUFFERS.BUFFER
|
EXPORT CORE_BUFFERS.BUFFER
|
||||||
EXPORT CORE_BUFFERS.SECTOR_BUFFER
|
EXPORT CORE_BUFFERS.SECTOR_BUFFER
|
||||||
EXPORT CORE_BUFFERS.MemoryTable
|
EXPORT CORE_BUFFERS.MemoryTable
|
||||||
|
EXPORT CORE_BUFFERS.CurrentPath
|
||||||
EXPORT CORE_BUFFERS.CurrentDirectory
|
EXPORT CORE_BUFFERS.CurrentDirectory
|
||||||
|
EXPORT CORE_BUFFERS.CurrentDirectory.DEPTH
|
||||||
EXPORT CORE_BUFFERS.WorkDirectory
|
EXPORT CORE_BUFFERS.WorkDirectory
|
||||||
;
|
EXPORT CORE_BUFFERS.WorkDirectory.DEPTH
|
||||||
;> > > > > > > > > > > > > > > > BUFFERS < < < < < < < < < < < < < < < <
|
;> > > > > > > > > > > > > > > > BUFFERS < < < < < < < < < < < < < < < <
|
||||||
|
|
||||||
|
|
||||||
@ -413,7 +459,7 @@ CLEAR_ZONE.size EQU _sBuffers
|
|||||||
ASSERT "Warning! ENVVALUE != BUFFER"
|
ASSERT "Warning! ENVVALUE != BUFFER"
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
DISPLAY "FAT MODULE SIZE: ",/A,FAT_MODULE_SIZE
|
DISPLAY "MODULE SIZE: ",/A,MODULE_SIZE
|
||||||
DISPLAY "DEPLOY end address: ",/H,$
|
DISPLAY "DEPLOY end address: ",/H,$
|
||||||
DISPLAY "Space for DRV-MAIN: ",/A,#4000-$," bytes."
|
DISPLAY "Space for DRV-MAIN: ",/A,#4000-$," bytes."
|
||||||
|
|
||||||
|
|||||||
@ -30,18 +30,25 @@
|
|||||||
ENDM
|
ENDM
|
||||||
;
|
;
|
||||||
|
|
||||||
|
; ;
|
||||||
|
; MACRO SET_PAGE_X new_page
|
||||||
|
; LD A,(BANKTBL + new_page)
|
||||||
|
; LD B,A
|
||||||
|
; LD C,SLOT3
|
||||||
|
; IN A,(SLOT3)
|
||||||
|
; OUT (C),B
|
||||||
|
; ENDM
|
||||||
|
; ;
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
MACRO SET_PAGE_X new_page
|
MACRO SET_PAGE_X new_page
|
||||||
LD A,(BANKTBL+new_page)
|
LD C,new_page
|
||||||
LD B,A
|
CALL SET_PAGE_X
|
||||||
LD C,SLOT3
|
|
||||||
IN A,(SLOT3)
|
|
||||||
OUT (C),B
|
|
||||||
ENDM
|
ENDM
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
;
|
;
|
||||||
; MACRO BUFFER_KEYINTER
|
; MACRO BUFFER_KEYINTER
|
||||||
; _mInfoALIGN 256,0
|
; _mInfoALIGN 256,0
|
||||||
|
|||||||
@ -1,18 +1,8 @@
|
|||||||
;[BEGIN]
|
|
||||||
;//MODULE: FAT
|
|
||||||
;//CREATE: 19-05-1998 AUTHOR: Denis Parinov
|
|
||||||
;//UPDATE: 24-10-1999 DNS Restore module
|
|
||||||
;---------------------------------------------------------------
|
|
||||||
;Rev Date Name Description
|
|
||||||
;---------------------------------------------------------------
|
|
||||||
;R08 14-11-2002 DNS IMPROVE BPB-FUNCTION
|
|
||||||
;R07 17-12-1999 DNS BUG FIX SIGNATURE #55AA AT 510 OFFSET
|
|
||||||
;RY01 16-11-1999 DNS ERROR READING FAT CHAIN
|
|
||||||
;RX01 10-02-1999 DNS UPGRADE FAT CASH
|
|
||||||
;---------------------------------------------------------------
|
|
||||||
; [ ] RST_FS
|
; [ ] RST_FS
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
FAT_MODULE_START EQU $
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
|
; MODULE FAT_FS
|
||||||
|
MODULE_START EQU $
|
||||||
|
|
||||||
|
|
||||||
SET_FSInfo: LD A,(CORE_BUFFERS.FS_Buffer.FAT_TYPE)
|
SET_FSInfo: LD A,(CORE_BUFFERS.FS_Buffer.FAT_TYPE)
|
||||||
@ -65,6 +55,7 @@ READ_BPB: LD C,Dss.DRV.GetBPB
|
|||||||
WRITE_FSinfo: LD IX,(CORE_BUFFERS.FS_Buffer.FSINFO_Sector)
|
WRITE_FSinfo: LD IX,(CORE_BUFFERS.FS_Buffer.FSINFO_Sector)
|
||||||
LD HL,0
|
LD HL,0
|
||||||
;JR WRITE_SECTOR
|
;JR WRITE_SECTOR
|
||||||
|
;
|
||||||
; ‡ ¯¨á âì ᥪâ®à ¨§ SECTOR_BUFFER
|
; ‡ ¯¨á âì ᥪâ®à ¨§ SECTOR_BUFFER
|
||||||
; ‚室: HL:IX = Logical Block (sector)
|
; ‚室: HL:IX = Logical Block (sector)
|
||||||
WRITE_SECTOR: LD BC,1*256 + Dss.DRV.Write
|
WRITE_SECTOR: LD BC,1*256 + Dss.DRV.Write
|
||||||
@ -176,7 +167,7 @@ SEARCH:
|
|||||||
OR D
|
OR D
|
||||||
JR NZ,.next_record
|
JR NZ,.next_record
|
||||||
;
|
;
|
||||||
.found_attr: LD HL,MASKARE
|
.found_attr: LD HL,CORE_BUFFERS.MASKARE
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
LD B,11
|
LD B,11
|
||||||
@ -199,9 +190,9 @@ SEARCH:
|
|||||||
; EXX
|
; EXX
|
||||||
PUSH IX
|
PUSH IX
|
||||||
;
|
;
|
||||||
LD HL,HANDBUF
|
LD HL,CORE_BUFFERS.HANDBUF
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD BC,HANDBUF.SIZE
|
LD BC,CORE_BUFFERS.HANDBUF.SIZE
|
||||||
LDIR
|
LDIR
|
||||||
;!TEST 9/11/23 record index
|
;!TEST 9/11/23 record index
|
||||||
POP DE
|
POP DE
|
||||||
@ -308,7 +299,7 @@ FINDDIR: SET_PAGE_X DIRPAGE
|
|||||||
LD A,(IX + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
LD A,(IX + FAT_DIRECTORY_RECORD.ATTRIBUT)
|
||||||
AND FAT_ATTR.DIRECTORY
|
AND FAT_ATTR.DIRECTORY
|
||||||
JR Z,.next_step
|
JR Z,.next_step
|
||||||
LD HL,MASKARE
|
LD HL,CORE_BUFFERS.MASKARE
|
||||||
LD D,XH
|
LD D,XH
|
||||||
LD E,XL
|
LD E,XL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
@ -489,13 +480,13 @@ OPENDIR: LD IY,CORE_BUFFERS.FM_BUF
|
|||||||
JR Z,.REROOT
|
JR Z,.REROOT
|
||||||
;
|
;
|
||||||
.no_root: EXX
|
.no_root: EXX
|
||||||
LD HL,MASKARE
|
LD HL,CORE_BUFFERS.MASKARE
|
||||||
LD DE,MASKARE+1
|
LD DE,CORE_BUFFERS.MASKARE+1
|
||||||
LD BC,10 ;!HARDCODE
|
LD BC,10 ;!HARDCODE
|
||||||
LD (HL),' '
|
LD (HL),' '
|
||||||
LDIR
|
LDIR
|
||||||
EXX
|
EXX
|
||||||
LD DE,MASKARE
|
LD DE,CORE_BUFFERS.MASKARE
|
||||||
.loop: LDI
|
.loop: LDI
|
||||||
LD A,(HL)
|
LD A,(HL)
|
||||||
OR A
|
OR A
|
||||||
@ -630,8 +621,8 @@ WRT_HND:
|
|||||||
.WRT_HN2: ;LD D,XH
|
.WRT_HN2: ;LD D,XH
|
||||||
;LD E,XL
|
;LD E,XL
|
||||||
EX DE,HL
|
EX DE,HL
|
||||||
LD HL,HANDBUF
|
LD HL,CORE_BUFFERS.HANDBUF
|
||||||
LD BC,HANDBUF.SIZE
|
LD BC,CORE_BUFFERS.HANDBUF.SIZE
|
||||||
LDIR
|
LDIR
|
||||||
EX AF,AF'
|
EX AF,AF'
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
@ -2784,6 +2775,6 @@ CHECK_64kb_CLUSTER:
|
|||||||
;
|
;
|
||||||
;----------------------------------------------------------------------;
|
;----------------------------------------------------------------------;
|
||||||
|
|
||||||
FAT_MODULE_SIZE EQU $-FAT_MODULE_START
|
MODULE_SIZE EQU $ - MODULE_START
|
||||||
;//MODULE: FAT
|
; ENDMODULE
|
||||||
;[END]
|
;ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ;
|
||||||
@ -20,6 +20,12 @@ RD_BPB: CALL READ_BPB ; [ ] cdfs
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
;ロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロロ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
INCLUDE "FAT.ASM"
|
INCLUDE "FAT.ASM"
|
||||||
INCLUDE "CDFS.ASM"
|
INCLUDE "CDFS.ASM"
|
||||||
|
|
||||||
|
|||||||
@ -117,8 +117,18 @@
|
|||||||
ENDS
|
ENDS
|
||||||
;
|
;
|
||||||
|
|
||||||
|
STRUCT _sMASKARE
|
||||||
|
.Name BLOCK 8,0 ; ¨¬ï ä ©«
|
||||||
|
.Ext BLOCK 3,0 ; à áè.
|
||||||
|
.Data BLOCK 21,0 ; 11+21=32
|
||||||
|
ENDS
|
||||||
|
|
||||||
|
; <EFBFBD>ãä¥à ¨¬¥¨ 8.3 ä®à¬ â
|
||||||
;
|
;
|
||||||
STRUCT _sBuffers
|
STRUCT _sBuffers
|
||||||
|
.TMPNAME BLOCK 8+4+1,0 ; <EFBFBD>ãä¥à ¨¬¥¨ 8.3 + 0
|
||||||
|
.HANDBUF BLOCK FAT_DIRECTORY_RECORD,0
|
||||||
|
.MASKARE _sMASKARE
|
||||||
.FileManipulator _sFM ; 44 bytes + 44 bytes * (FMCOUNT-1)
|
.FileManipulator _sFM ; 44 bytes + 44 bytes * (FMCOUNT-1)
|
||||||
.FM_RESERVE BLOCK _sFM * (FMCOUNT-1),0 ;
|
.FM_RESERVE BLOCK _sFM * (FMCOUNT-1),0 ;
|
||||||
.FS_Buffer _sFS_Buffer
|
.FS_Buffer _sFS_Buffer
|
||||||
|
|||||||
@ -131,7 +131,7 @@ ENVADDR EQU #E400
|
|||||||
;FAT_CACHE EQU #C000
|
;FAT_CACHE EQU #C000
|
||||||
|
|
||||||
FMCOUNT EQU 10 ; Š®«¨ç¥á⢮ ä ©«®¢ëå ¬ ¨¯ã«ïâ®à®¢
|
FMCOUNT EQU 10 ; Š®«¨ç¥á⢮ ä ©«®¢ëå ¬ ¨¯ã«ïâ®à®¢
|
||||||
HANDBUF.SIZE EQU FAT_DIRECTORY_RECORD
|
;HANDBUF.SIZE EQU FAT_DIRECTORY_RECORD
|
||||||
;----------------------------------------------------;
|
;----------------------------------------------------;
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|||||||
@ -69,7 +69,7 @@ DEPLOY: ;Allocate memory
|
|||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
PUSH AF
|
PUSH AF
|
||||||
IN A,(SLOT0)
|
IN A,(SLOT0)
|
||||||
LD (DRV_CONTENT + DRV_PAGE.MAIN_PAGE_NUMBER),A ;!TEST
|
LD (DRV_CONTENT + DRV_PAGE.MAIN_PAGE_NUMBER),A
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
;
|
;
|
||||||
LD A,C
|
LD A,C
|
||||||
@ -97,6 +97,18 @@ DEPLOY: ;Allocate memory
|
|||||||
LDIR
|
LDIR
|
||||||
IN A,(SLOT3)
|
IN A,(SLOT3)
|
||||||
LD (DRV_PG_NUMBER),A
|
LD (DRV_PG_NUMBER),A
|
||||||
|
; [ ] CDFS prepare
|
||||||
|
/*
|
||||||
|
SET_PAGE_X FSPAGE
|
||||||
|
;
|
||||||
|
LD HL,FS_CONTENT
|
||||||
|
LD DE,#C000
|
||||||
|
LD BC,FS_CONTENT.SIZE
|
||||||
|
LDIR
|
||||||
|
IN A,(SLOT3)
|
||||||
|
LD (FS_PG_NUMBER),A
|
||||||
|
*/
|
||||||
|
;
|
||||||
POP AF
|
POP AF
|
||||||
OUT (SLOT3),A
|
OUT (SLOT3),A
|
||||||
AND A
|
AND A
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user