mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 01:11:48 +03:00
доперепелить FINDDIR
This commit is contained in:
parent
c8b0f457c7
commit
48b9504b37
@ -23,7 +23,7 @@ F_FIRST_FN: CALL F_FIRST.INIT_VARS
|
||||
JR F_FIRST.begin
|
||||
;
|
||||
F_FIRST: CALL .INIT_VARS
|
||||
.begin: CALL SetPath_GetName
|
||||
.begin: CALL SetPath_GetName ;!FIXIT ¥ ¤ã¡«¨àã¥âáï «¨ ¯®á«¥ DIR_PATH_CHECK ¢ëè¥?
|
||||
;CALL LOADDIR
|
||||
RET C
|
||||
CALL MASK
|
||||
@ -31,6 +31,7 @@ F_FIRST: CALL .INIT_VARS
|
||||
LD A,(.SEARCH_ATTRIBUT)
|
||||
CALL SEARCH.Custom
|
||||
RET C
|
||||
; çâ®-â® è«®áì
|
||||
PUSH DE ; record index ¬®¦¥â ¨ ¥ 㦮
|
||||
LD HL,CORE_BUFFERS.MASKARE
|
||||
.DTABUF+1: LD DE,0
|
||||
@ -45,8 +46,7 @@ F_FIRST: CALL .INIT_VARS
|
||||
;LD BC,FAT_DIRECTORY_RECORD
|
||||
;ADD IX,BC
|
||||
LD (F_NEXT.CURHND),IX
|
||||
; record index ¬®¦¥â ¨ ¥ 㦮
|
||||
POP HL
|
||||
POP HL ; record index
|
||||
;!FIXIT ¥â ¯à®¢¥àª¨ ¯¥à¥¯®«¥¨¥
|
||||
; ¤¥¥¬áï, çâ® FAT ¡¥§ ª®á类¢
|
||||
;INC HL
|
||||
@ -66,6 +66,9 @@ F_FIRST: CALL .INIT_VARS
|
||||
LDIR
|
||||
.exit: LD A,F_NEXT.NO_NEXT.NO
|
||||
LD (F_NEXT.NO_NEXT),A
|
||||
.FindCounter+1: LD HL,0
|
||||
INC HL
|
||||
LD (.FindCounter),HL
|
||||
XOR A
|
||||
RET
|
||||
.FIND_M2: ;!TODO LFN
|
||||
@ -78,6 +81,8 @@ F_FIRST: CALL .INIT_VARS
|
||||
;
|
||||
.INIT_VARS: LD (.SEARCH_ATTRIBUT),A
|
||||
LD (.DTABUF),DE
|
||||
LD DE,0
|
||||
LD (.FindCounter),DE
|
||||
LD A,B
|
||||
LD (.FNDMODE),A
|
||||
RET
|
||||
@ -102,12 +107,23 @@ F_NEXT:
|
||||
;
|
||||
XOR A ; F_NEXT.NO_NEXT.YES
|
||||
LD (F_NEXT.NO_NEXT),A
|
||||
LD A,(HL)
|
||||
; ¯à®¢¥àª ०¨¬ ªãç¨ ä ©«®¢ ¨«¨ ¥ ¡®«ìè¥ 512
|
||||
LD A,(F_FIRST.FindCounter + 1) ; áâ à訩 ¡ ©â áçñâ稪
|
||||
CP 2
|
||||
JR C,.nextSearch
|
||||
;
|
||||
LD A,(F_FIRST.FNDMODE) ;!FIXIT big dir - ¥¯à ¢¨«ì® ¨á¯®«ì§®¢ âì íâ®, ¤® ®¢ãî ¯¥à¥¬¥ãî
|
||||
RLA
|
||||
LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
|
||||
CCF
|
||||
RET C
|
||||
; ;
|
||||
.nextSearch: LD A,(HL)
|
||||
PUSH HL
|
||||
CALL .NSEARCH
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
; çâ®-â® è«®áì
|
||||
PUSH DE
|
||||
EX DE,HL
|
||||
JP F_FIRST.FIND_S
|
||||
@ -124,10 +140,6 @@ F_NEXT:
|
||||
EXX
|
||||
;
|
||||
.CURHND+2: LD IX,0 ; ¤à¥á á«¥¤ãî饩 § ¯¨á¨ ¢ ªíè¥ ¤¨à¥ªâ®à¨¨
|
||||
;LD A,XH
|
||||
;OR XL
|
||||
;JP Z,SEARCH.error_too_many_files ; [ ] big dir
|
||||
;JP SEARCH.loop
|
||||
JP SEARCH.next_record
|
||||
;
|
||||
/*
|
||||
|
||||
@ -2119,9 +2119,10 @@ DELETE_LFN_RECORDS:
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
; <20>®¨áª § ¯¨á¨ ª â «®£ ¢ ᯨ᪥ ª â «®£
|
||||
; ¢å®¤: a = âਡãâ § ¯¨á¨
|
||||
; ¢å®¤: a = âਡãâ § ¯¨á¨ (.Custom)
|
||||
; (CORE_BUFFERS.MASKARE) - ¬ ᪠¤«ï ¯®¨áª
|
||||
; ¢ë室: de = ¨¤¥ªá § ¯¨á¨ ¢ ᯨ᪥ ª â «®£
|
||||
; (HANDBUF) = file's direcory record
|
||||
; (HANDBUF) = file's directory record
|
||||
; CF - ª â «®£ ¥ ©¤¥
|
||||
SEARCH:
|
||||
.Dir: ;LD A,FAT_ATTR.DIRECTORY
|
||||
@ -2212,11 +2213,10 @@ SEARCH:
|
||||
ADD IX,DE
|
||||
JR NC,.loop
|
||||
;
|
||||
.error_too_many_files:
|
||||
; [ ] big dir
|
||||
LD A,(F_FIRST.FNDMODE) ;!FIXIT big dir - ¥¯à ¢¨«ì® ¨á¯®«ì§®¢ âì íâ®, ¤® ®¢ãî ¯¥à¥¬¥ãî
|
||||
RLA
|
||||
JR NC,.ErrorTooManyFiles
|
||||
; LD A,(F_FIRST.FNDMODE) ;!FIXIT big dir - ¥¯à ¢¨«ì® ¨á¯®«ì§®¢ âì íâ®, ¤® ®¢ãî ¯¥à¥¬¥ãî
|
||||
; RLA
|
||||
; JR NC,.error_too_many_files
|
||||
;
|
||||
; CF=1
|
||||
; !FIXIT root dir in LOADDIR
|
||||
@ -2238,12 +2238,12 @@ SEARCH:
|
||||
SCF
|
||||
RET
|
||||
;
|
||||
.ErrorTooManyFiles:
|
||||
POP AF
|
||||
OUT (SLOT3),A
|
||||
LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
|
||||
SCF
|
||||
RET
|
||||
; .error_too_many_files:
|
||||
; POP AF
|
||||
; OUT (SLOT3),A
|
||||
; LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
|
||||
; SCF
|
||||
; RET
|
||||
;
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
@ -2770,7 +2770,7 @@ LOAD_SAVE_DIR_PREPARE:
|
||||
|
||||
|
||||
;----------------------------------------------------------------------;
|
||||
ASSERT 0, "TODO! GET_ADDR_IN_DIR_CACHE"
|
||||
; ASSERT 0, "TODO! GET_ADDR_IN_DIR_CACHE"
|
||||
;!TODO
|
||||
; .DIRSIZE ¯®¬¥è ¥â ¥á«¨ ¢ ªíè ¡ã¤¥â ¤à㣠ï áâà ¨æ ?
|
||||
; LOAD_SAVE_DIR_PREPARE ¢®§¬®¦® ¥ 㦥, 㦮 ⮫쪮 ãáâ ®¢¨âì ¯à ¢¨«ì®¥ ᬥ饨¥ ¢ FM
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
<EFBFBD>® ¯®«ë¬ ¤¨à¥ªâ®à¨ï¬.
|
||||
;[x] LOADDIR ¯®á«¥ READ ¢ë室¨âì á CF, ¥á«¨ ¯à®ç¨â ® 0
|
||||
;[ ] FINDDIR - ¯®ª à ¡®â ¥â ⮫쪮 á ⥬, çâ® ¡ë«® § £à㦥® ¢ ªíè ¨ ¬ «® ç⮠室¨â, ¥á«¨ áâà ¨æ ¡®«ìè¥ 1.
|
||||
;[ ] <20>¥à¥¤¥« âì WRITE_DIR_HANDLE ¤«ï à ¡®âë á «î¡®© § ¯¨áìî ¢ ª â «®£¥ (ᥩç á ¨é¥â ¯¥à¢ãî ¯ãáâãî, ç⮡ § ¯¨á âì ¢ ¥ñ)
|
||||
;[ ] ‚ᥠ¨§¬¥¥¨ï ¢ § ¯¨áïå ª â «®£ ¤¥« âì ¢ ¡ãä¥à¥ CORE_BUFFERS.HANDBUF ¨ á®åà ïâì ç¥à¥§ WRITE_DIR_HANDLE
|
||||
;[x] <20>¥à¥¬¥ ï DirBlock ¯®ª §ë¢ îé ï ª ª®© ¡«®ª ¤¨à¥ªâ®à¨¨ ¢ ªíè.
|
||||
@ -11,6 +12,7 @@
|
||||
|
||||
|
||||
<EFBFBD>¥à¥«®¯ â¨âì
|
||||
;[ ] FINDDIR
|
||||
;[ ] LOAD_SAVE_DIR_PREPARE
|
||||
;[ ] LOADDIR
|
||||
;[ ] SAVEDIR
|
||||
|
||||
@ -1 +1 @@
|
||||
531
|
||||
532
|
||||
Loading…
Reference in New Issue
Block a user