mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-11-15 11:40:52 +03:00
big_dir: F_FIRST ¨ F_NEXT ¯®ç⨠OK
-bugfix: fdd-drv.asm GetBPB RomanRom2 bug fix))
This commit is contained in:
1 parent
ef258143e7
commit
32dca48eaf
4 files changed
+92
-38
No files matched your search
+25
-32
@@ -29,7 +29,6 @@ F_FIRST: CALL .INIT_VARS
|
||||
LD A,(CORE_BUFFERS.FS_Buffer.DirBlock)
|
||||
AND A
|
||||
CALL NZ,LOADDIR ;!FIXIT check error
|
||||
;
|
||||
CALL MASK
|
||||
RET C
|
||||
;
|
||||
@@ -47,15 +46,9 @@ F_FIRST: CALL .INIT_VARS
|
||||
LD (DE),A
|
||||
; ¯à¨ ¯à릪¥ áî¤ á⥪¥ ¤®«¦¥ «¥¦ âì record index
|
||||
.FIND_S: INC DE
|
||||
;!TODO «ãçè¥ âã⠨ᯮ«ì§®¢ âì ª ª ¢ record index ¤«ï ¯¥à¥¡®à ª â «®£ > #4000 bytes
|
||||
;LD BC,FAT_DIRECTORY_RECORD
|
||||
;ADD IX,BC
|
||||
LD (F_NEXT.CURHND),IX
|
||||
POP HL ; record index
|
||||
;!FIXIT ¥â ¯à®¢¥àª¨ ¯¥à¥¯®«¥¨¥
|
||||
; ¤¥¥¬áï, çâ® FAT ¡¥§ ª®á类¢
|
||||
;INC HL
|
||||
LD (F_NEXT.RecordIndex),HL
|
||||
LD (F_NEXT.RecordIndex),HL ; ¥â ¯à®¢¥àª¨ ¯¥à¥¯®«¥¨¥. ¤¥¥¬áï, çâ® FAT ¡¥§ ª®á类¢
|
||||
;
|
||||
LD HL,CORE_BUFFERS.HANDBUF + FAT_DIRECTORY_RECORD.RESERVED_NT
|
||||
LD BC,CORE_BUFFERS.HANDBUF.SIZE - FAT_DIRECTORY_RECORD.RESERVED_NT
|
||||
@@ -67,27 +60,34 @@ F_FIRST: CALL .INIT_VARS
|
||||
.FNDMODE+1: LD A,0
|
||||
AND %0111'1111
|
||||
JR NZ,.FIND_M2
|
||||
;
|
||||
LD BC,11 ;!HARDCODE
|
||||
LDIR
|
||||
.exit: LD A,F_NEXT.NO_NEXT.NO
|
||||
LD (F_NEXT.NO_NEXT),A
|
||||
.FindCounter+1: LD HL,0
|
||||
INC HL
|
||||
DEC HL
|
||||
LD (.FindCounter),HL
|
||||
XOR A
|
||||
RET
|
||||
; CF=0
|
||||
;XOR A
|
||||
RET
|
||||
;
|
||||
.FIND_M2: ;!TODO LFN
|
||||
;CP 2
|
||||
;CALL NC,GetName_LFN
|
||||
;CALL C,GetName
|
||||
CALL GetName
|
||||
;
|
||||
CALL GetName
|
||||
JR .exit
|
||||
;
|
||||
.INIT_VARS: LD (.SEARCH_ATTRIBUT),A
|
||||
LD (.DTABUF),DE
|
||||
LD DE,0
|
||||
LD (.FindCounter),DE
|
||||
LD DE,0 ; [ ] big dir for new directory read functions
|
||||
RLA
|
||||
JR C,.setCounter
|
||||
;
|
||||
LD DE,512 ; for old directory read functions
|
||||
.setCounter: LD (.FindCounter),DE
|
||||
LD A,B
|
||||
LD (.FNDMODE),A
|
||||
RET
|
||||
@@ -112,17 +112,14 @@ F_NEXT:
|
||||
;
|
||||
XOR A ; F_NEXT.NO_NEXT.YES
|
||||
LD (F_NEXT.NO_NEXT),A
|
||||
; ¯à®¢¥àª ०¨¬ ªãç¨ ä ©«®¢ ¨«¨ ¥ ¡®«ìè¥ 512
|
||||
LD A,(F_FIRST.FindCounter + 1) ; áâ à訩 ¡ ©â áçñâ稪
|
||||
CP 2
|
||||
JR C,.nextSearch
|
||||
; ¯à®¢¥àª ०¨¬. ªãç ä ©«®¢ ¨«¨ ¥ ¡®«ìè¥ 512?
|
||||
LD BC,(F_FIRST.FindCounter)
|
||||
LD A,B
|
||||
OR C
|
||||
LD A,DSS_Error.sys.TOO_MANY_FILES_IN_DIR
|
||||
SCF
|
||||
RET Z
|
||||
;
|
||||
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
|
||||
@@ -139,16 +136,12 @@ F_NEXT:
|
||||
EX AF,AF'
|
||||
CPL
|
||||
LD C,A
|
||||
;!TEST 9/11/23 record index
|
||||
EXX
|
||||
.RecordIndex+1: LD DE,0 ; record index ¬®¦¥â ¨ ¥ 㦮
|
||||
EXX
|
||||
EXX
|
||||
.RecordIndex+1: LD DE,0 ; record index ¬®¦¥â ¨ ¥ 㦮
|
||||
EXX
|
||||
;
|
||||
.CURHND+2: LD IX,0 ; ¤à¥á á«¥¤ãî饩 § ¯¨á¨ ¢ ªíè¥ ¤¨à¥ªâ®à¨¨
|
||||
LD DE,SEARCH.for_F_NEXT
|
||||
PUSH DE ; ¢ë室 ¢ SEARCH ¨§ SEARCH_RECORD_IN_DIR_CACHE
|
||||
JP SEARCH_RECORD_IN_DIR_CACHE.next_record
|
||||
;
|
||||
/*
|
||||
‹î¡ë¥ ¨§¬¥¥¨ï ¢ ¤¨à¥ªâ®à¨¨ ã¡ìîâ ¥ñ.
|
||||
*/
|
||||
;
|
||||
Reference in new issue
Block a user