mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 17:31:47 +03:00
+ new func DELETE_LFS_RECORDS
This commit is contained in:
parent
bb5748091c
commit
453d3d6b68
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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
|
||||||
;
|
;
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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: ;
|
||||||
|
|||||||
@ -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
|
||||||
;
|
;
|
||||||
@ -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
|
||||||
;
|
;
|
||||||
|
|||||||
@ -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!!!';
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -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 ; ¬¥áïæ
|
||||||
|
|||||||
@ -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
|
||||||
|
|||||||
@ -1 +1 @@
|
|||||||
951
|
952
|
||||||
@ -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
|
||||||
Loading…
Reference in New Issue
Block a user