+ new func DELETE_LFS_RECORDS

This commit is contained in:
Anatoliy Belyanskiy 2024-04-17 03:02:12 +10:00
parent bb5748091c
commit 453d3d6b68
16 changed files with 105 additions and 61 deletions

View File

@ -400,8 +400,8 @@ GETROOT: LD HL,(DIR_FRH)
; ;
SEARCH: LD C,17 ;HANDELS PER SECTOR 512/32 + 1 SEARCH: LD C,17 ;HANDELS PER SECTOR 512/32 + 1
LD IX,DIR-#0020 LD IX,DIR - FAT_DIRECTORY_RECORD
.SKIPNAM: LD DE,#0020 .SKIPNAM: LD DE,FAT_DIRECTORY_RECORD
ADD IX,DE ADD IX,DE
DEC C DEC C
RET Z RET Z
@ -428,7 +428,7 @@ SEARCH: LD C,17 ;HANDELS PER SECTOR 512/32 + 1
LD E,XL LD E,XL
LD HL,HANDBUF LD HL,HANDBUF
EX DE,HL EX DE,HL
LD BC,#0020 LD BC,FAT_DIRECTORY_RECORD
LDIR LDIR
XOR A XOR A
INC A INC A

View File

@ -26,7 +26,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 + _sFAT_DIRECTORY_RECORD.ATTRIBUT) LD A,(HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT)
;LD B,(IY+_sFM.ATTRIBUT) ;LD B,(IY+_sFM.ATTRIBUT)
;PUSH BC ;PUSH BC
;CALL CLOSE ;CALL CLOSE

View File

@ -55,7 +55,7 @@ CLOSE_FN:
; ;
;!TEST 9/11/23 record index ;!TEST 9/11/23 record index
; LD HL,DIR ; LD HL,DIR
; LD DE,#0020 ; LD DE,FAT_DIRECTORY_RECORD
; LD C,(IY+_sFM.HANDLE) ; LD C,(IY+_sFM.HANDLE)
; LD B,(IY+_sFM.HANDLE+1) ; LD B,(IY+_sFM.HANDLE+1)
; JR .CLOSE2 ; JR .CLOSE2
@ -75,7 +75,7 @@ CLOSE_FN:
;PUSH HL ;PUSH HL
;SET_PAGE_X DIRPAGE ;SET_PAGE_X DIRPAGE
;POP HL ;POP HL
LD BC,#0020 ;!HARDCODE LD BC,FAT_DIRECTORY_RECORD
LDIR LDIR
OUT (SLOT3),A OUT (SLOT3),A
CALL SAVEDIR CALL SAVEDIR

View File

@ -54,14 +54,14 @@ CREATE: ;!TEST Current Dir ;[x] 15/10/23
; ;
; ;
;no_file_found ;no_file_found
.DO: ; _sFAT_DIRECTORY_RECORD.NAME + .EXT .DO: ; FAT_DIRECTORY_RECORD.NAME + .EXT
LD HL,MASKARE LD HL,MASKARE
LD DE,HANDBUF LD DE,HANDBUF
LD BC,11 LD BC,11
LDIR LDIR
EX DE,HL EX DE,HL
.TMP+1: LD A,0 .TMP+1: LD A,0
; _sFAT_DIRECTORY_RECORD.ATTRIBUT ; FAT_DIRECTORY_RECORD.ATTRIBUT
LD (HL),A LD (HL),A
INC HL INC HL
LD BC,#0A00 ;!HARDCODE LD BC,#0A00 ;!HARDCODE

View File

@ -32,15 +32,16 @@ DEL_FN: ;!TEST
.DELETE: .DELETE:
SET_PAGE_X DIRPAGE SET_PAGE_X DIRPAGE
EX AF,AF' EX AF,AF'
LD (IX + _sFAT_DIRECTORY_RECORD.NAME),#E5 ; ¯à¨§­ ª 㤠«¥­¨ï ä ©«  CALL DELETE_LFN_RECORDS ; [ ] 㤠«¥­¨¥ § ¯¨á¨ LFN
LD (IX + FAT_DIRECTORY_RECORD.NAME),#E5 ; ¯à¨§­ ª 㤠«¥­¨ï ä ©« 
; fat32 ; fat32
LD E,(IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) ; ü ¯¥à¢®£® ª« áâ¥à  LD E,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) ; ü ¯¥à¢®£® ª« áâ¥à 
LD D,(IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1) LD D,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1)
LD A,E LD A,E
OR D OR D
EXX EXX
LD E,(IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L) ; ü ¯¥à¢®£® ª« áâ¥à  LD E,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L) ; ü ¯¥à¢®£® ª« áâ¥à 
LD D,(IX+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1) LD D,(IX+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1)
OR D OR D
OR E OR E
; ;

View File

@ -42,7 +42,7 @@ F_FIRST:
.FIND_S: .FIND_S:
INC DE INC DE
;!TODO «ãçè¥ âã⠨ᯮ«ì§®¢ âì ª ª ¢ record index ¤«ï ¯¥à¥¡®à  ª â «®£  > #4000 bytes ;!TODO «ãçè¥ âã⠨ᯮ«ì§®¢ âì ª ª ¢ record index ¤«ï ¯¥à¥¡®à  ª â «®£  > #4000 bytes
LD BC,#0020 ;!HARDCODE à §¬¥à ®¤­®© § ¯¨á¨ ª â «®£  LD BC,FAT_DIRECTORY_RECORD
ADD IX,BC ADD IX,BC
LD (F_NEXT.CURHND),IX LD (F_NEXT.CURHND),IX
LD HL,HANDBUF+12 ;!HARDCODE LD HL,HANDBUF+12 ;!HARDCODE

View File

@ -60,7 +60,7 @@ MKDIR:
LDIR LDIR
EX DE,HL EX DE,HL
LD A,FAT_ATTR.DIRECTORY ;  âਡãâ § ¯¨á¨ ª â «®£  LD A,FAT_ATTR.DIRECTORY ;  âਡãâ § ¯¨á¨ ª â «®£ 
; _sFAT_DIRECTORY_RECORD.ATTRIBUT ; FAT_DIRECTORY_RECORD.ATTRIBUT
LD (HL),A LD (HL),A
INC HL INC HL
LD BC,#0800 ; b=áç¥â稪 LD BC,#0800 ; b=áç¥â稪
@ -68,7 +68,7 @@ MKDIR:
.loop1: LD (HL),C .loop1: LD (HL),C
INC HL INC HL
DJNZ .loop1 DJNZ .loop1
; _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H ; FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H
; fat32 § ¯¨áì áâ à襣® ­®¬¥à  ª« áâ¥à  .FIRST_CLUSTER_H ; fat32 § ¯¨áì áâ à襣® ­®¬¥à  ª« áâ¥à  .FIRST_CLUSTER_H
POP DE POP DE
PUSH DE ; áâ à訩 ­®¬¥à ᥪâ®à  PUSH DE ; áâ à訩 ­®¬¥à ᥪâ®à 
@ -83,12 +83,12 @@ MKDIR:
POP DE ; ¬« ¤è¨© ­®¬¥à ᥪâ®à  POP DE ; ¬« ¤è¨© ­®¬¥à ᥪâ®à 
PUSH DE PUSH DE
PUSH BC PUSH BC
; _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L ; FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L
LD (HL),E LD (HL),E
INC HL INC HL
LD (HL),D LD (HL),D
INC HL INC HL
; _sFAT_DIRECTORY_RECORD.F_SIZE ; FAT_DIRECTORY_RECORD.F_SIZE
LD BC,#0400 ; b=áç¥â稪 LD BC,#0400 ; b=áç¥â稪
.loop2: LD (HL),C .loop2: LD (HL),C
INC HL INC HL
@ -106,9 +106,9 @@ MKDIR:
.loop3: INC HL .loop3: INC HL
LD (HL),C LD (HL),C
DJNZ .loop3 DJNZ .loop3
; ᪮¯¨à®¢ âì ¡ ©âë 11..31 _sFAT_DIRECTORY_RECORD ; ᪮¯¨à®¢ âì ¡ ©âë 11..31 FAT_DIRECTORY_RECORD
INC HL INC HL
LD DE,HANDBUF+_sFAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª   âਡã⮢ ä ©«  LD DE,HANDBUF+FAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª   âਡã⮢ ä ©« 
EX DE,HL EX DE,HL
LD BC,21 ; !HARDCODE LD BC,21 ; !HARDCODE
LDIR LDIR
@ -126,7 +126,7 @@ MKDIR:
SET_PAGE_X DIRPAGE SET_PAGE_X DIRPAGE
PUSH AF PUSH AF
; ;
LD DE,DIRPAGE.buffer + _sFAT_DIRECTORY_RECORD.ATTRIBUT ;  âਡãâë § ¯¨á¨ LD DE,DIRPAGE.buffer + FAT_DIRECTORY_RECORD.ATTRIBUT ;  âਡãâë § ¯¨á¨
; ;
LD A,(DIRPAGE.buffer) LD A,(DIRPAGE.buffer)
CP "." CP "."
@ -134,14 +134,14 @@ MKDIR:
; ;
;LD IX,HANDBUF ;LD IX,HANDBUF
XOR A XOR A
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),A LD (HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L),A
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1),A LD (HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1),A
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H),A LD (HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H),A
LD (HANDBUF + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1),A LD (HANDBUF + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1),A
LD DE,HANDBUF + _sFAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª   âਡã⮢ ä ©«  LD DE,HANDBUF + FAT_DIRECTORY_RECORD.ATTRIBUT ; ï祩ª   âਡã⮢ ä ©« 
.copy_dir_record: .copy_dir_record:
EX DE,HL EX DE,HL
LD BC,HANDBUF.SIZE - _sFAT_DIRECTORY_RECORD.ATTRIBUT ; 21 LD BC,HANDBUF.SIZE - FAT_DIRECTORY_RECORD.ATTRIBUT ; 21
LDIR LDIR
POP AF POP AF
OUT (SLOT3),A OUT (SLOT3),A
@ -151,7 +151,7 @@ MKDIR:
LD E,L LD E,L
INC DE INC DE
LD (HL),0 LD (HL),0
LD BC,512-65 ;!HARDCODE LD BC,512-65 ;!HARDCODE sector size
LDIR LDIR
; ;
POP HL ; áâ à訩 ­®¬¥à ᥪâ®à  POP HL ; áâ à訩 ­®¬¥à ᥪâ®à 
@ -182,7 +182,7 @@ MKDIR:
JR Z,.skip_clean JR Z,.skip_clean
; ;
LD DE,CORE_BUFFERS.SECBUF+1 LD DE,CORE_BUFFERS.SECBUF+1
LD BC,511 ;!HARDCODE LD BC,511 ;!HARDCODE sector size
LD (HL),0 LD (HL),0
LDIR LDIR
.skip_clean: ; .skip_clean: ;

View File

@ -61,12 +61,17 @@ RENAME: ;!TEST Current Dir ;[x] 15/10/23
RET C RET C
SET_PAGE_X DIRPAGE SET_PAGE_X DIRPAGE
EX AF,AF'
;
LD HL,MASKARE LD HL,MASKARE
LD D,XH LD D,XH
LD E,XL LD E,XL
LD BC,11 LD BC,11
LDIR LDIR
;
CALL DELETE_LFN_RECORDS ; [ ] 膉𠼻平言 <20>祠嶁 LFN
;
EX AF,AF'
OUT (SLOT3),A OUT (SLOT3),A
JP SAVEDIR JP SAVEDIR
; ;

View File

@ -39,9 +39,9 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23
CALL SEARCH.Dir CALL SEARCH.Dir
RET C RET C
; fat32 ; fat32
LD HL,(HANDBUF+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) LD HL,(HANDBUF+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H)
EXX EXX
LD HL,(HANDBUF+_sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L) LD HL,(HANDBUF+FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L)
PUSH IX ;!TODO record index. ¢®§¬®¦­®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ­¨æë PUSH IX ;!TODO record index. ¢®§¬®¦­®, çâ® ¬®¦¥â á«®¬ âìáï, ¥á«¨ ¡®«ìè¥ áâà ­¨æë
; ;
;!TODO <20>à®æ¥¤ãà  ¯®«­®£® ¢ëç¨â뢠­¨ï ª â «®£  (¢á¥ ª« áâ¥àë). Œ®¦­® § ¤¥©á⢮¢ âì ¢ ¤àã£¨å ¬¥áâ å ;!TODO <20>à®æ¥¤ãà  ¯®«­®£® ¢ëç¨â뢠­¨ï ª â «®£  (¢á¥ ª« áâ¥àë). Œ®¦­® § ¤¥©á⢮¢ âì ¢ ¤àã£¨å ¬¥áâ å
@ -83,13 +83,13 @@ RMDIR: ;!TEST Current Dir ;[x] 15/10/23
JR Z,.next_record JR Z,.next_record
CP #E5 ;!HARDCODE ¡ ©â 㤠«¥­¨ï ä ©«  CP #E5 ;!HARDCODE ¡ ©â 㤠«¥­¨ï ä ©« 
JR Z,.next_record JR Z,.next_record
LD DE,_sFAT_DIRECTORY_RECORD.ATTRIBUT ; ᬥé. ¤® ¡ ©â   âਡã⮢ LD DE,FAT_DIRECTORY_RECORD.ATTRIBUT ; ᬥé. ¤® ¡ ©â   âਡã⮢
ADD HL,DE ADD HL,DE
LD A,(HL) LD A,(HL)
SBC HL,DE SBC HL,DE
AND FAT_ATTR.VOLUME_ID AND FAT_ATTR.VOLUME_ID
JP Z,.error ;DIR NOT EMPTY JP Z,.error ;DIR NOT EMPTY
.next_record: LD DE,#0020 .next_record: LD DE,FAT_DIRECTORY_RECORD
ADD HL,DE ADD HL,DE
DJNZ .check_dir_loop DJNZ .check_dir_loop
; ;

View File

@ -28,15 +28,15 @@
//SPRINTER EQU 2000 //SPRINTER EQU 2000
includelua 'Shared_includes/lua/Functions.lua' includelua 'Shared_includes/lua/Functions.lua'
INCLUDE 'defines.inc' include 'shared_includes/structures/FileSystem.inc'
include 'shared_includes/constants/sp2000.inc' include 'shared_includes/constants/sp2000.inc'
INCLUDE 'defines.inc'
include 'Structures.inc'
include 'shared_includes/constants/standart_colors.inc' include 'shared_includes/constants/standart_colors.inc'
include 'shared_includes/constants/bios_equ.inc' include 'shared_includes/constants/bios_equ.inc'
include 'shared_includes/constants/dss_equ.inc' include 'shared_includes/constants/dss_equ.inc'
include 'shared_includes/structures/FileSystem.inc'
include 'shared_includes/macroses/accelerator.z80' include 'shared_includes/macroses/accelerator.z80'
include 'shared_includes/macroses/macros.z80' include 'shared_includes/macroses/macros.z80'
include 'Structures.inc'
INCLUDE 'VERSION.INC' INCLUDE 'VERSION.INC'
INCLUDE 'DSS_MACROSES.Z80' INCLUDE 'DSS_MACROSES.Z80'
@ -609,7 +609,10 @@ DRV_CONTENT:
ENT ENT
DRV_CONTENT.SIZE EQU $-DRV_CONTENT DRV_CONTENT.SIZE EQU $-DRV_CONTENT
DISPLAY "END ADDRESS: ",/H,$ BIN_END_ADDRESS EQU $
DISPLAY "END ADDRESS: ",/H,BIN_END_ADDRESS
DISPLAY "Memory leacks when > ",/H, #4000+SUBLOAD_SIZE*512 DISPLAY "Memory leacks when > ",/H, #4000+SUBLOAD_SIZE*512
ASSERT $ < (#4001+SUBLOAD_SIZE*512),'-> Memory leack!!!'; ASSERT $ < (#4001+SUBLOAD_SIZE*512),'-> Memory leack!!!';
ASSERT DRV_CONTENT.SIZE < #4001,'-> Drivers code size > #4000!!!'; ASSERT DRV_CONTENT.SIZE < #4001,'-> Drivers code size > #4000!!!';

View File

@ -9,6 +9,41 @@
;R07 17-12-1999 DNS BUG FIX SIGNATURE #55AA AT 510 OFFSET ;R07 17-12-1999 DNS BUG FIX SIGNATURE #55AA AT 510 OFFSET
;--------------------------------------------------------------- ;---------------------------------------------------------------
;----------------------------------------------------------------------; ;----------------------------------------------------------------------;
; [ ] 㤠«¥­¨¥ § ¯¨á¨ LFN
;
; ¢å®¤: IX = ⥪ãé ï § ¯¨áì ¢ áâà ­¨æ¥ á ª â «®£®¬ FAT
; ¤«ï ª®â®à®© ­ ¤® 㤠«¨âì § ¯¨á¨ LFS
DELETE_LFN_RECORDS:
PUSH IX
LD A,XH
AND #C0
SUB 1
LD C,A
; ॣ¨áâॠC ¬ áª  ¤«ï ®¯à¥¤¥«¥­¨ï ¢ë室  §  ¯à¥¤¥«ë áâà ­¨æë
;
.find_LFN: LD DE, -(FAT_DIRECTORY_RECORD)
LD A,FAT_ATTR.LFS_Entry
;
.loop: ADD IX,DE
LD A,XH
CP C
JR Z,.beyond_boundaries
;
LD A,FAT_ATTR.LFS_Entry
CP (IX+FAT_DIRECTORY_RECORD.ATTRIBUT)
JR NZ,.exit
LD (IX+FAT_DIRECTORY_RECORD.NAME),#E5
JR .loop
;
.exit: AND A
.beyond_boundaries: ; !TODO ¯®¤£à㧪  ¤à㣮© ç á⨠ª â «®£ . ¯®ª  § £«ã誠
POP IX
RET
;----------------------------------------------------------------------;
; <20>®¨áª § ¯¨á¨ ª â «®£  ¢ ᯨ᪥ ª â «®£  ; <20>®¨áª § ¯¨á¨ ª â «®£  ¢ ᯨ᪥ ª â «®£ 
; ;
; ¢å®¤: a =  âਡãâ § ¯¨á¨ ; ¢å®¤: a =  âਡãâ § ¯¨á¨
@ -43,12 +78,12 @@ SEARCH:
; LD DE,0 ; LD DE,0
; EXX ; EXX
; ;
.loop: LD A,(IX+_sFAT_DIRECTORY_RECORD.NAME) .loop: LD A,(IX+FAT_DIRECTORY_RECORD.NAME)
OR A OR A
JR Z,.error_file_not_found JR Z,.error_file_not_found
CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤­ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥­ë CP #E5 ;!HARDCODE #E5 - § ¯¨áì ¢ ¤¨à¥ªâ®à¨¨ ᢮¡®¤­ , â ª ª ª ä ©«/¤¨à¥ªâ®à¨ï ¡ë«¨ 㤠«¥­ë
JR Z,.next_record JR Z,.next_record
LD A,(IX+_sFAT_DIRECTORY_RECORD.ATTRIBUT) LD A,(IX+FAT_DIRECTORY_RECORD.ATTRIBUT)
AND C AND C
JR NZ,.next_record JR NZ,.next_record
LD HL,MASKARE LD HL,MASKARE
@ -93,7 +128,7 @@ SEARCH:
; INC DE ; INC DE
; EXX ; EXX
; ;
LD DE,#0020 ;!HARDCODE LD DE,FAT_DIRECTORY_RECORD
ADD IX,DE ADD IX,DE
JR NC,.loop JR NC,.loop
.error_too_many_files: .error_too_many_files:
@ -122,7 +157,7 @@ SEARCH:
; CALL LOADDIR ; CALL LOADDIR
; POP DE ; POP DE
; LD HL,DIR ; LD HL,DIR
; LD BC,#0020 ; LD BC,FAT_DIRECTORY_RECORD
;G_HAND2: ;G_HAND2:
; LD A,D ; LD A,D
; OR E ; OR E
@ -178,12 +213,12 @@ FINDDIR:
PUSH AF PUSH AF
LD IX,DIRPAGE.buffer LD IX,DIRPAGE.buffer
.big_loop: .big_loop:
LD A,(IX + _sFAT_DIRECTORY_RECORD.NAME) LD A,(IX + FAT_DIRECTORY_RECORD.NAME)
OR A OR A
JR Z,.error JR Z,.error
CP #E5 CP #E5
JR Z,.next_step JR Z,.next_step
LD A,(IX + _sFAT_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,MASKARE
@ -201,10 +236,10 @@ FINDDIR:
INC DE INC DE
DJNZ .loop DJNZ .loop
; ;
LD A,(IX + _sFAT_DIRECTORY_RECORD.NAME) LD A,(IX + FAT_DIRECTORY_RECORD.NAME)
CP "." CP "."
JP NZ,.ADDSPEC JP NZ,.ADDSPEC
LD A,(IX + _sFAT_DIRECTORY_RECORD.NAME + 1) LD A,(IX + FAT_DIRECTORY_RECORD.NAME + 1)
CP "." CP "."
JP NZ,.IT_DIR JP NZ,.IT_DIR
LD HL,WorkDirectory LD HL,WorkDirectory
@ -231,7 +266,7 @@ FINDDIR:
JP .IT_DIR JP .IT_DIR
; ;
.next_step: .next_step:
LD BC,#0020 ;!HARDCODE LD BC,FAT_DIRECTORY_RECORD
ADD IX,BC ADD IX,BC
JR NC,.big_loop JR NC,.big_loop
; ;
@ -293,12 +328,12 @@ FINDDIR:
; ; JP IT_DIR ; ; JP IT_DIR
; ;
.IT_DIR:; fat32 .IT_DIR:; fat32
LD E,(IX + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H) LD E,(IX + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H)
LD D,(IX + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1) LD D,(IX + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_H+1)
LD YH,D LD YH,D
LD YL,E LD YL,E
LD E,(IX + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L) LD E,(IX + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L)
LD D,(IX + _sFAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1) LD D,(IX + FAT_DIRECTORY_RECORD.FIRST_CLUSTER_L+1)
POP AF POP AF
OUT (SLOT3),A OUT (SLOT3),A
AND A AND A
@ -534,7 +569,7 @@ WRT_HND: SET_PAGE_X DIRPAGE
; LD DE,0 ; LD DE,0
; EXX ; EXX
; ;
LD BC,#0020 LD BC,FAT_DIRECTORY_RECORD
.loop: ;LD A,(IX+00) .loop: ;LD A,(IX+00)
LD A,(HL) LD A,(HL)
OR A OR A

View File

@ -1233,12 +1233,12 @@ WRITE_DATE_TIME_TO_DIRECTORY_RECORD:
CALL SYSTIME ; ã§­ âì ⥪. ¤ âã ¨ ¢à¥¬ï CALL SYSTIME ; ã§­ âì ⥪. ¤ âã ¨ ¢à¥¬ï
CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã CALL MK_TIME ; § ª®¤¨à®¢ âì ¢à¥¬ï/¤ âã
POP HL POP HL
; _sFAT_DIRECTORY_RECORD.TIME ; FAT_DIRECTORY_RECORD.TIME
LD (HL),E ; de=¢à¥¬ï LD (HL),E ; de=¢à¥¬ï
INC HL INC HL
LD (HL),D LD (HL),D
INC HL INC HL
; _sFAT_DIRECTORY_RECORD.DATE ; FAT_DIRECTORY_RECORD.DATE
LD (HL),C ; ¤¥­ì LD (HL),C ; ¤¥­ì
INC HL INC HL
LD (HL),B ; ¬¥áïæ LD (HL),B ; ¬¥áïæ

View File

@ -37,7 +37,7 @@
; .DATE: WORD #0000 ;+ #18 +24 DATE ; .DATE: WORD #0000 ;+ #18 +24 DATE
; .FIRST_CLUSTER_L: WORD #0000 ;+ #1A +26 START CLUSTER ; [ ] fat32 ; .FIRST_CLUSTER_L: WORD #0000 ;+ #1A +26 START CLUSTER ; [ ] fat32
; .F_SIZE: DWORD #00000000 ;+ #1C +28 SIZE FILE ; .F_SIZE: DWORD #00000000 ;+ #1C +28 SIZE FILE
.FS_REC _sFAT_DIRECTORY_RECORD .FS_REC FAT_DIRECTORY_RECORD
; from Core ; from Core
.F_POSITION DWORD #00000000 ;+ #20 +32 FILE POSITION (FP) .F_POSITION DWORD #00000000 ;+ #20 +32 FILE POSITION (FP)
.DIR_CLUSTER_L WORD #0000 ;+ #24 +36 DIRECTORY CLUSTER LOW .DIR_CLUSTER_L WORD #0000 ;+ #24 +36 DIRECTORY CLUSTER LOW

View File

@ -1 +1 @@
951 952

View File

@ -129,7 +129,7 @@ ENVADDR EQU #E400
;FAT_CACHE EQU #C000 ;FAT_CACHE EQU #C000
FMCOUNT EQU 10 ; Š®«¨ç¥á⢮ ä ©«®¢ëå ¬ ­¨¯ã«ïâ®à®¢ FMCOUNT EQU 10 ; Š®«¨ç¥á⢮ ä ©«®¢ëå ¬ ­¨¯ã«ïâ®à®¢
HANDBUF.SIZE EQU 32 ; !HARDCODE _sFAT_DIRECTORY_RECORD HANDBUF.SIZE EQU FAT_DIRECTORY_RECORD
;----------------------------------------------------; ;----------------------------------------------------;
; ;

@ -1 +1 @@
Subproject commit 17acd882094d59946a9cd430a03e736e36fea49b Subproject commit 73f764ccd1ab8de8dea7eef3b4f5cd27e2ea8dab