SAVEDIR, LOADDIR, OPENDIR

This commit is contained in:
Anatoliy Belyanskiy 2024-04-04 02:12:55 +10:00
parent b515b2429f
commit 53dbf83712
5 changed files with 551 additions and 523 deletions

View File

@ -1,11 +1,11 @@
; HL - ADDRESS
; DE - SIZE
; HL - BUFFER ADDRESS
; DE - BLOCK SIZE
; A - FM
READ: LD (.R_POINT),HL
LD (.S_POINT),HL
CALL SET_FM
RET C
CALL TSTSIZE
CALL .TEST_SIZE
;
LD A,D
OR E
@ -15,16 +15,15 @@ READ: LD (.R_POINT),HL
LD A,(IY+_sFM.DRIVE)
CALL OPENDSK
JP C,.ERR_1
;<3B> áçñâ ᬥ饭¨ï ¢ ᥪâ®à å
;<3B> áçñâ ᬥ饭¨ï ¢ ᥪâ®à å ;!HARDCODE sectro size
LD H,0 ;!HARDCODE max file size = 8 gb
LD L,(IY+_sFM.F_POSITION+3)
LD D,(IY+_sFM.F_POSITION+2)
LD E,(IY+_sFM.F_POSITION+1)
LD D,(IY+_sFM.F_POSITION+2)
LD L,(IY+_sFM.F_POSITION+3)
LD A,E
AND #01
LD B,A
LD C,(IY+_sFM.F_POSITION)
;OR A
RR L
RR D
RR E
@ -93,7 +92,7 @@ READ: LD (.R_POINT),HL
LD HL,0
CALL MOVE_FP.F_current
POP DE
.NOREAD:
.NOREAD: ;
.COD+1: LD A,0
OR A
RET
@ -144,16 +143,14 @@ READ: LD (.R_POINT),HL
LD (.R_POINT),DE
EXX
JP .ROV4
;
.ERR_3: POP HL
.ERR_2: POP HL
.ERR_1: POP BC
SCF
RET
TSTSIZE:
XOR A
;
.TEST_SIZE: XOR A
LD (READ.COD),A
LD L,(IY+_sFM.F_POSITION) ;FP LOW
LD H,(IY+_sFM.F_POSITION+1)
@ -168,8 +165,7 @@ TSTSIZE:
INC HL
;ADC HL,DE
;
.no_inc_hl:
EXX ;HL':HL - NEW FP
.no_inc_hl: EXX ;HL':HL - NEW FP
;
LD C,(IY+_sFM.FS_REC.F_SIZE)
LD B,(IY+_sFM.FS_REC.F_SIZE+1) ;SIZE LOW

View File

@ -79,6 +79,7 @@ FM_FIND: CP FMCOUNT+1
; A=0
OR (IY) ;+00 NAME
RET
;
.error: XOR A
LD A,DSS_Error.sys.INVALID_HANDLE
RET
@ -145,35 +146,20 @@ GET_FM: LD IY,0
; HL:IX - OFFSET POINTER
; A - FILE MANIPULATOR
MOVE_FP:
CALL SET_FM
MOVE_FP: CALL SET_FM
RET C
INC B
DEC B
JR Z,.F_start
DEC B
JR Z,.F_current
DEC B
JR Z,.B_end
LD A,DSS_Error.sys.INVALID_FUNCTION
SCF
RET
;from Start File
.F_start:
DJNZ .B_1
;from Start File
; B=0
LD C,B
.F_start: LD C,B
LD D,B
LD E,B
JP .DO
;from End File
.B_end: LD C,(IY + _sFM.FS_REC.F_SIZE)
LD B,(IY + _sFM.FS_REC.F_SIZE+1)
LD E,(IY + _sFM.FS_REC.F_SIZE+2)
LD D,(IY + _sFM.FS_REC.F_SIZE+3)
JP .DO
;from Current Position
.F_current:
LD C,(IY+_sFM.F_POSITION)
;
.B_1: DJNZ .B_2
;from Current Position
.F_current: LD C,(IY+_sFM.F_POSITION)
LD B,(IY+_sFM.F_POSITION+1)
LD E,(IY+_sFM.F_POSITION+2)
LD D,(IY+_sFM.F_POSITION+3)
@ -187,6 +173,21 @@ MOVE_FP:
LD (IY+_sFM.F_POSITION+3),H
XOR A
RET
;
.B_2: DJNZ .error
;from End File
.B_end: LD C,(IY + _sFM.FS_REC.F_SIZE)
LD B,(IY + _sFM.FS_REC.F_SIZE+1)
LD E,(IY + _sFM.FS_REC.F_SIZE+2)
LD D,(IY + _sFM.FS_REC.F_SIZE+3)
JP .DO
; B > 2
.error: LD A,DSS_Error.sys.INVALID_FUNCTION
SCF
RET
;;;;;;;;;
;FP COMPARE
; CY - FILE POINTER > SIZE

View File

@ -63,28 +63,23 @@
; DJNZ .GETN6
; RET
;---------------;---------------;---------------
GetName:
LD BC,#08FF ;!HARDCODE ¤«¨­  ¨¬¥­¨ + áçñâ稪
GetName: LD BC,#08FF ;!HARDCODE ¤«¨­  ¨¬¥­¨ + áçñâ稪
LD A,' '
.loop: CP (HL)
JR Z,.skip
LDI
DJNZ .loop
;;;;
JP .extension
;;;;
;
.skip: LD C,B
LD B,0
; CF=0
ADC HL,BC
;;;;
.extension:
CP (HL)
.extension: CP (HL)
LD A,"."
JR NZ,.copy_extension
JR NZ,.copy_ext
XOR A
.copy_extension:
LD (DE),A
.copy_ext: LD (DE),A
INC DE
RET Z ;no copy extension
; copy extension
@ -100,13 +95,11 @@ GetName:
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
; ’¥áâ ­  ¤®¯ãá⨬®¥ ¨¬ï ¨ ­ áâநâìáï ­  ¤¨áª.
; ¢å®¤: hl=áâப  ¨¬¥­¨
; ¢ë室: (TMPNAME)
GETWORD:
; !TEST
GETWORD: ; !TEST
INC HL
LD A,(HL)
DEC HL
@ -138,10 +131,8 @@ GETWORD:
RET NZ
INC HL
;
.dir_loop:
LD DE,TMPNAME
.dir_loop: LD DE,TMPNAME
LD BC,#0DFF
;
.loop: LD A,(HL)
INC HL
CP '\' ;
@ -164,8 +155,7 @@ GETWORD:
LD (TMPNAME),A
RET
;
.DIR_NAME:
XOR A
.DIR_NAME: XOR A
LD (DE),A
PUSH HL
LD HL,TMPNAME
@ -191,6 +181,7 @@ GETWORD:
; JR .loop
;
; <20>ãä¥à ¨¬¥­¨ 8.3 ä®à¬ â 
TMPNAME: DZ ' ' ; 12 ¯à®¡¥«®¢ ¨ 0 ;!FIXIT ª ¡ãä¥à ¬
;----------------------------------------------------------------------;
@ -262,89 +253,6 @@ OPENDSK:;!TEST DRV.Open
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
; ¢å®¤: HL - ¨¬ï ¤¨à¥ªâ®à¨¨
OPENDIR:;[x] some optimizations
;XOR A
;CALL SET_FM
LD IY,CORE_BUFFERS.FM_BUF
;
LD A,(HL)
OR A
JR NZ,.SUBDIR
.REROOT1:
LD DE,0
;[x] some optimizations
; LD (IY+_sFM.FIRST_CLUSTER_L),E
; LD (IY+_sFM.FIRST_CLUSTER_L+1),D
; [ ] fat32
EX DE,HL
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),HL
EX DE,HL
;
CALL LOADDIR
LD HL,WorkDirectory
LD (HL),'\'
INC HL
LD (HL),#00
; CF=0
;AND A
RET
.SUBDIR:
CP "."
JR NZ,.SUBDIR2
;!TEST ;[x] some optimizations
;LD A,(IY+_sFM.FIRST_CLUSTER_L) ;R005
; [ ] fat32
LD A,(CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L) ;R005
;
OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1) ;R005
JR NZ,.SUDI1 ;R005
INC HL ;R005
LD A,(HL) ;R005
OR A ;R005
DEC HL ;R005
JR Z,.REROOT1 ;R005
.SUDI1: EXX
LD HL,MASKARE
LD DE,MASKARE+1
LD BC,10 ;!HARDCODE
LD (HL),' '
LDIR
EXX
LD DE,MASKARE
.loop: LDI
LD A,(HL)
OR A
JR NZ,.loop
JR .SUBDIR3
.SUBDIR2:
CALL MASK.name
RET C
.SUBDIR3:
CALL FINDDIR
RET C
;!TEST ;[x] some optimizations
;LD (IY+_sFM.FIRST_CLUSTER_L),E
;LD (IY+_sFM.FIRST_CLUSTER_L+1),D
;LD DE,#4000 ;!HARDCODE
;LD (IY+_sFM.F_SIZE),E
;LD (IY+_sFM.F_SIZE+1),D
EX DE,HL
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),HL ; [ ] fat32
LD HL,#4000 ;!HARDCODE
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.F_SIZE),HL
EX DE,HL
;
JP LOADDIR
; CF=0
;AND A
;RET
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
; <20>८¡à §®¢ âì ¨¬ï 8.3 -> 11 ä®à¬ â
; ¢å®¤: hl = 8.3 ¨¬ï
@ -528,7 +436,6 @@ DIR_PATH_CHECK: LD A,(HL)
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
CHECK_NAME:
LD HL,MASKARE

View File

@ -170,6 +170,8 @@ SEARCH:
;----------------------------------------------------------------------;
; FIND "MASKAREA" IN DIRECTORY
; [ ] fat32
; ¢ë室: IY:DE - cluster number
FINDDIR:
SET_PAGE_X DIRPAGE
;
@ -238,6 +240,7 @@ FINDDIR:
LD A,DSS_Error.sys.PATH_NOT_FOUND
SCF
RET
;
.ADDSPEC:
LD HL,WorkDirectory+1
LD BC,WorkDirectory.DEPTH-1
@ -290,6 +293,10 @@ FINDDIR:
; ; JP IT_DIR
;
.IT_DIR: ; [ ] fat32
LD E,(IX + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H)
LD D,(IX + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1)
LD YH,D
LD YL,E
LD E,(IX + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L)
LD D,(IX + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1)
POP AF
@ -316,38 +323,121 @@ FINDDIR:
RET
;----------------------------------------------------------------------;
CHECK_ZERO_CLUSTER:
EX DE,HL
LD HL,(CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L) ;R005
LD A,L
OR H
LD HL,(CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_H)
OR L
OR H
EX DE,HL
RET
;----------------------------------------------------------------------;
; ¢å®¤: HL - ¨¬ï ¤¨à¥ªâ®à¨¨
; [x] fat32
OPENDIR: LD IY,CORE_BUFFERS.FM_BUF
LD A,(HL)
OR A
JR NZ,.SUBDIR
.REROOT: ; fat32
EX DE,HL
LD HL,(FatBuffer.RootDirStartCluster_L)
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),HL
LD HL,(FatBuffer.RootDirStartCluster_H)
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_H),HL
EX DE,HL
CALL LOADDIR
; CF=0
LD HL,WorkDirectory
LD (HL),'\'
INC HL
LD (HL),#00
;AND A
RET
;
.SUBDIR: CP "."
JR NZ,.SUBDIR2
; fat32
CALL CHECK_ZERO_CLUSTER
JR NZ,.no_root ;R005
; "cd ." or "cd .."
;R005
INC HL
LD A,(HL)
OR A
DEC HL
JR Z,.REROOT
;
.no_root: EXX
LD HL,MASKARE
LD DE,MASKARE+1
LD BC,10 ;!HARDCODE
LD (HL),' '
LDIR
EXX
LD DE,MASKARE
.loop: LDI
LD A,(HL)
OR A
JR NZ,.loop
JR .SUBDIR3
;
.SUBDIR2: CALL MASK.name
RET C
; fat32
.SUBDIR3: CALL FINDDIR
RET C
EX DE,HL
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_L),HL ; [ ] fat32
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.FIRST_CLUSTER_H),IY ; [ ] fat32
LD HL,#4000 ;!HARDCODE
LD (CORE_BUFFERS.FM_BUF + _sFM.FS_REC.F_SIZE),HL
;EX DE,HL
JP LOADDIR
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
; <20>à®ç¨â âì ᯨ᮪ ª â «®£ 
LOADDIR:
XOR A
LD H,A
LD L,A
LD IX,0
LD B,A ; ®â ­ ç «  ä ©« 
CALL MOVE_FP
SET_PAGE_X DIRPAGE
AND A
; [x] fat32 ;!TEST
LOADDIR: ;!TODO optimize
; XOR A ; FILE MANIPULATOR = 0
; LD H,A
; LD L,A
; LD IX,0
; LD B,A ; ®â ­ ç «  ä ©« 
; CALL MOVE_FP
; ;
; SET_PAGE_X DIRPAGE
; AND A
; PUSH AF
; ;!TEST no ldir
; ; ®ç¨áâ¨âì ª¥è ª â «®£ 
; ; LD HL,#C000
; ; LD DE,#C001
; ; LD BC,#3FFF
; ; LD (HL),L
; ; LDIR
; ;
; LD A,(FatBuffer.DRIVE) ; ­®¬¥à ¤¨áª 
; LD (IY+_sFM.DRIVE),A ; á®åà. ¢ ¤¥áªà¨¯â®à
; ; ­®¬¥à ¯¥à¢®£® ª« áâ¥à 
; ; [x] fat32
; LD A,(FatBuffer.FAT_TYPE)
; XOR 32
; JR Z,.read_dir
; ;!FIXIT ¯¥à¥¤¥« âì ­  à ¡®âã ¡¥§ IY
; LD A,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
; OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
CALL LOAD_SAVE_DIR_PREPARE
PUSH AF
;!TEST no ldir
; ®ç¨áâ¨âì ª¥è ª â «®£ 
; LD HL,#C000
; LD DE,#C001
; LD BC,#3FFF
; LD (HL),L
; LDIR
;
LD A,(FatBuffer.DRIVE) ; ­®¬¥à ¤¨áª 
LD (IY+_sFM.DRIVE),A ; á®åà. ¢ ¤¥áªà¨¯â®à
; ­®¬¥à ¯¥à¢®£® ª« áâ¥à 
; [ ] fat32
LD A,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
JP Z,.LoadRootDir
;
LD HL,DIRPAGE.buffer ; ªã¤ 
EX AF,AF'
JR Z,.LoadRootDir
.read_dir: LD HL,DIRPAGE.buffer ; ªã¤ 
LD DE,#4000 ; ᪮«ìª®
XOR A ; ¤¥áªà¨¯â®à
CALL READ ; ç⥭¨¥ ¨§ ä ©« 
@ -355,8 +445,8 @@ LOADDIR:
POP AF
OUT (SLOT3),A
RET
.LoadRootDir:
LD HL,(FatBuffer.RootDirFirstSector_H) ; áâ. à §àï¤
;
.LoadRootDir: LD HL,(FatBuffer.RootDirFirstSector_H) ; áâ. à §àï¤
LD IX,(FatBuffer.RootDirFirstSector_L) ; ­®¬¥à «®£. ᥪâ®à 
LD A,(FatBuffer.DirSizeInSectors)
LD B,32 ; !HARDCODE sector size 512. 16384/(sector 512). à §¬¥à root-ª â «®£ 
@ -372,11 +462,94 @@ LOADDIR:
RET
;----------------------------------------------------------------------;
LOAD_SAVE_DIR_PREPARE:
;!TODO optimize
XOR A ; FILE MANIPULATOR = 0
LD H,A
LD L,A
LD IX,0
LD B,A ; ®â ­ ç «  ä ©« 
CALL MOVE_FP
;
SET_PAGE_X DIRPAGE
AND A
EX AF,AF'
;
LD A,(FatBuffer.DRIVE)
LD (IY+_sFM.DRIVE),A
; [x] fat32
LD A,(FatBuffer.FAT_TYPE)
CP FAT_TYPE.x32 - 1
JR NC,.exit
;!FIXIT ¯¥à¥¤¥« âì ­  à ¡®âã ¡¥§ IY
LD A,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
.exit: EX AF,AF'
RET
;!TODO FAT procedures
;----------------------------------------------------------------------;
; ‘¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª.
; ¢å®¤: iy=áâàãªâãà  ¤¥áªà¨¯â®à 
; [x] fat32 ;!TEST
SAVEDIR: ;!TODO optimize
; XOR A ; FILE MANIPULATOR = 0
; LD H,A
; LD L,A
; LD IX,0
; LD B,A ; ®â ­ ç «  ä ©« 
; CALL MOVE_FP
; ;
; SET_PAGE_X DIRPAGE
; AND A
; PUSH AF
; ;
; LD A,(FatBuffer.DRIVE)
; LD (IY+_sFM.DRIVE),A
; ; [x] fat32
; LD A,(FatBuffer.FAT_TYPE)
; XOR 32
; JR Z,.save_dir
; ;!FIXIT ¯¥à¥¤¥« âì ­  à ¡®âã ¡¥§ IY
; LD A,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
; OR (IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
CALL LOAD_SAVE_DIR_PREPARE
PUSH AF
EX AF,AF'
JR Z,.SaveRootDir
.save_dir: LD HL,DIRPAGE.buffer
; à §¬¥à ᯨ᪠ ª â «®£  size_cash_directory
;!FIXIT ¥á«¨ ®­  ­ã¦­ , â® ¯à®¢¥à¨âì ­  ¡ £¨ (­ ¯à¨¬¥à, à §¬¥à ¤¨à४â®à¨¨ ¬¥­ìè¥ ¯à¨ ®âªàë⨨ ¨ ¡®«ìè¥ ¯®á«¥ ¯à ¢®ª)
; ª®£¤  ¡ã¤¥â ç⥭¨¥ ªã᪠¬¨ ª â «®£  ¢ ªíè, âãâ ¥éñ áçñâ稪 ¯à¨ªàãâ¨âì
.DIRSIZE+1: LD DE,0
XOR A
CALL WRITE
POP AF
OUT (SLOT3),A
RET
;
.SaveRootDir: LD HL,(FatBuffer.RootDirFirstSector_H)
LD IX,(FatBuffer.RootDirFirstSector_L)
LD A,(FatBuffer.DirSizeInSectors)
LD B,32 ;!HARDCODE sector size 512, Root Dir max size in sectors
SUB B
JR NC,.RTD1S
ADD A,B
LD B,A
.RTD1S: LD A,(FatBuffer.DRIVE)
LD DE,DIRPAGE.buffer
LD C,Dss.DRV.Write
RST ToDSS.DRV
POP AF
OUT (SLOT3),A
RET
;----------------------------------------------------------------------;
;----------------------------------------------------------------------;
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª  (ª â «®£ )
; ᪮¯¨à®¢ âì § ¯¨áì ¢ ᯨ᮪ ¤¨áª  (ª â «®£ ) de ix iy
; ¨ á¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª
; ¢å®¤: (HANDBUF) - § ¯¨áì ª â «®£ 
WRT_HND: SET_PAGE_X DIRPAGE
EX AF,AF'
;
@ -396,7 +569,7 @@ WRT_HND: SET_PAGE_X DIRPAGE
JR Z,.WRT_HN2
;ADD IX,BC
ADD HL,BC
JR NC,.loop
JR NC,.loop ;!FIXIT ª®«¨ç¥á⢮ § ¯¨á¥© ª â «®£  = áâà ­¨æ 
;
EX AF,AF'
OUT (SLOT3),A
@ -427,59 +600,6 @@ WRT_HND: SET_PAGE_X DIRPAGE
JP SAVEDIR
;----------------------------------------------------------------------;
;!TODO FAT procedures
;----------------------------------------------------------------------;
; ‘¡à®á¨âì ª¥è ª â «®£  ­  ¤¨áª.
; ¢å®¤: iy=áâàãªâãà  ¤¥áªà¨¯â®à 
; [ ] fat32
SAVEDIR:
XOR A
LD HL,0
LD IX,0
LD B,0
CALL MOVE_FP
;
SET_PAGE_X DIRPAGE
PUSH AF
;
LD A,(FatBuffer.DRIVE)
LD (IY+_sFM.DRIVE),A
;[ ] fat32
LD D,(IY+_sFM.FS_REC.FIRST_CLUSTER_L)
LD E,(IY+_sFM.FS_REC.FIRST_CLUSTER_L+1)
LD A,D
OR E
JP Z,.SaveRootDir
LD HL,DIRPAGE.buffer
; à §¬¥à ᯨ᪠ ª â «®£  size_cash_directory
;!FIXIT ¥á«¨ ®­  ­ã¦­ , â® ¯à®¢¥à¨âì ­  ¡ £¨ (­ ¯à¨¬¥à, à §¬¥à ¤¨à४â®à¨¨ ¬¥­ìè¥ ¯à¨ ®âªàë⨨ ¨ ¡®«ìè¥ ¯®á«¥ ¯à ¢®ª)
.DIRSIZE+1:
LD DE,0
XOR A
CALL WRITE
POP AF
OUT (SLOT3),A
AND A
RET
.SaveRootDir:
LD HL,(FatBuffer.RootDirFirstSector_H)
LD IX,(FatBuffer.RootDirFirstSector_L)
LD A,(FatBuffer.DirSizeInSectors)
LD B,32 ;!HARDCODE sector size 512
SUB B
JR NC,.RTD1S
ADD A,B
LD B,A
.RTD1S: LD A,(FatBuffer.DRIVE)
LD DE,DIRPAGE.buffer
LD C,Dss.DRV.Write
RST ToDSS.DRV
POP AF
OUT (SLOT3),A
AND A
RET
;----------------------------------------------------------------------;
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
; ­¥ ¨á¯®«ì§ã¥âáï
@ -490,7 +610,9 @@ SAVEDIR:
; OR A
; RET Z
; ॣ. D - ­®¬¥à ¤¨áª 
; [ ] fat32
RD_BPB: LD C,SLOT3
IN B,(C)
PUSH BC
@ -534,6 +656,8 @@ RD_BPB: LD C,SLOT3
LD E,A
LD (FatBuffer.FAT1_SEC_H),DE ; high word first sector FAT #1
LD (FatBuffer.FAT2_SEC_H),DE ; high word first sector FAT #1
LD (FatBuffer.RootDirStartCluster_L),DE
LD (FatBuffer.RootDirStartCluster_H),DE
LD (FatBuffer.SectorsPerFAT_H),A
;
;

View File

@ -1 +1 @@
953
956