mirror of
https://github.com/Tolik-Trek/Estex-DSS.git
synced 2026-06-15 09:21:47 +03:00
big_dir: F_FIRST ¨ F_NEXT ¯®ç⨠OK
-bugfix: fdd-drv.asm GetBPB RomanRom2 bug fix))
This commit is contained in:
parent
ef258143e7
commit
32dca48eaf
@ -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
|
||||
; 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
|
||||
;
|
||||
/*
|
||||
‹î¡ë¥ ¨§¬¥¥¨ï ¢ ¤¨à¥ªâ®à¨¨ ã¡ìîâ ¥ñ.
|
||||
*/
|
||||
@ -6,6 +6,7 @@ GetName: LD BC,#08FF ;!HARDCODE
|
||||
LD A,' '
|
||||
.loop: CP (HL)
|
||||
JR Z,.skip
|
||||
;
|
||||
LDI
|
||||
DJNZ .loop
|
||||
JR .extension
|
||||
@ -17,6 +18,7 @@ GetName: LD BC,#08FF ;!HARDCODE
|
||||
.extension: CP (HL)
|
||||
LD A,"."
|
||||
JR NZ,.copy_ext
|
||||
;
|
||||
XOR A
|
||||
.copy_ext: LD (DE),A
|
||||
INC DE
|
||||
@ -26,6 +28,7 @@ GetName: LD BC,#08FF ;!HARDCODE
|
||||
LD A,' '
|
||||
.loop2: CP (HL)
|
||||
JR Z,.exit
|
||||
;
|
||||
LDI
|
||||
DJNZ .loop2
|
||||
.exit: XOR A
|
||||
|
||||
@ -217,6 +217,13 @@ MediaCheck: CALL Open
|
||||
|
||||
;DE - ADDRESS
|
||||
GetBPB: LD IX,0
|
||||
; fix bug 14/01/2026. ¥á«¨ ¥â MBR, â® ¨ª ª¨å ¬ã⮪
|
||||
LD H,D
|
||||
LD L,E
|
||||
LD BC,BOOT_SECTOR.MBR_SIGNATURE
|
||||
ADD HL,BC
|
||||
LD (HL),C
|
||||
;
|
||||
LD HL,0
|
||||
PUSH DE
|
||||
PUSH AF
|
||||
@ -225,18 +232,38 @@ GetBPB: LD IX,0
|
||||
POP DE
|
||||
POP HL
|
||||
RET C
|
||||
;
|
||||
LD BC,BOOT_SECTOR.SectorsPerTrack
|
||||
ADD HL,BC
|
||||
LD E,(HL)
|
||||
PUSH DE
|
||||
; fix bug 14/01/2026. ¥á«¨ ¥â MBR, â® ¨ª ª¨å ¬ã⮪
|
||||
LD BC,BOOT_SECTOR.MBR_SIGNATURE - BOOT_SECTOR.SectorsPerTrack
|
||||
ADD HL,BC
|
||||
LD C,(HL)
|
||||
INC HL
|
||||
LD B,(HL)
|
||||
LD HL,#AA55
|
||||
SBC HL,BC
|
||||
LD A,DSS_Error.drv.UNKNOWN_FORMAT
|
||||
SCF
|
||||
RET NZ
|
||||
;
|
||||
PUSH DE ; D - drive, E - Sectors Per Track
|
||||
LD A,D
|
||||
LD C,BIOS.DRV_GET_PAR
|
||||
RST ToBIOS
|
||||
LD A,H
|
||||
POP HL
|
||||
PUSH HL
|
||||
LD H,A
|
||||
POP AF
|
||||
; !TEST
|
||||
;LD A,H ; A heads
|
||||
;POP HL ; H - drive, L - Sectors Per Track
|
||||
;PUSH HL
|
||||
;LD H,A ; H - heads, L - Sectors Per Track
|
||||
;POP AF ; A - drive
|
||||
;
|
||||
LD C,H ; C heads
|
||||
POP HL ; H - drive, L - Sectors Per Track
|
||||
LD A,H ; A - drive
|
||||
LD H,C ; H - heads, L - Sectors Per Track
|
||||
;
|
||||
LD C,BIOS.DRV_SET_PAR
|
||||
RST ToBIOS
|
||||
XOR A
|
||||
|
||||
@ -1,6 +1,23 @@
|
||||
;------------------[ „®áâ ñ¬ ⥪ãéãî ¤ âã ¨ BUILD++ ]-----------------[]
|
||||
LUA PASS1
|
||||
Console_build = increase_build("./SHELL/build.txt")
|
||||
if Console_build > 999 then
|
||||
Console_build = 999
|
||||
print("WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","\aWARNING! Build > 999\a")
|
||||
end
|
||||
ENDLUA IFNDEF INCREASE_BUILD
|
||||
DEFINE INCREASE_BUILD 0
|
||||
ELSE
|
||||
DEFINE+ INCREASE_BUILD 1
|
||||
ENDIF
|
||||
;------------------[ „®áâ ñ¬ ⥪ãéãî ¤ âã ¨ BUILD++ ]-----------------[]
|
||||
LUA PASS1
|
||||
if sj.get_define("INCREASE_BUILD") > "0" then
|
||||
Console_build = increase_build("./SHELL/build.txt")
|
||||
else
|
||||
Console_build = get_build("./SHELL/build.txt")
|
||||
end
|
||||
|
||||
if Console_build > 999 then
|
||||
Console_build = 999
|
||||
print("WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","WARNING! Build > 999","\aWARNING! Build > 999\a")
|
||||
@ -11,6 +28,20 @@
|
||||
ENDLUA
|
||||
;---------------------------------------------------------------------[]
|
||||
|
||||
;
|
||||
; Shell full version
|
||||
; ®¬¥à ¢¥àᨨ (0..9)
|
||||
CONSOLE_VERS EQU 1
|
||||
; ®¬¥à ¬®¤¨ä¨ª 樨 (0..99)
|
||||
CONSOLE_MODF EQU 2
|
||||
; ®¬¥à ¡¨«¤ (0..999)
|
||||
CONSOLE_BUILD EQU lua_BUILD
|
||||
;
|
||||
LUA ALLPASS
|
||||
sj.insert_label("lua_BUILD", Console_build)
|
||||
ENDLUA
|
||||
;---------------------------------------------------------------------[]
|
||||
|
||||
;
|
||||
; Shell full version
|
||||
; ®¬¥à ¢¥àᨨ (0..9)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user