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