This commit is contained in:
Anatoliy Belyanskiy 2024-05-18 01:30:26 +10:00
parent e5868883f8
commit 82ed30ef61
3 changed files with 24 additions and 17 deletions

View File

@ -56,7 +56,7 @@ DISKINF: LD C,B
; ;
EX DE,HL EX DE,HL
LD HL,FAT_STRING LD HL,FAT_STRING
1: LD C,5 ;!HARDCODE _sBOOT_SECTOR_PARAMS.ID_FAT.length LD C,5 ;!HARDCODE _sBOOT_SECTOR_PARAMS.ID_FAT.length
CALL .mCOPY_LOOP CALL .mCOPY_LOOP
; 12, 16 or 32 ; 12, 16 or 32
LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE) LD A,(CORE_BUFFERS.FatBuffer.FAT_TYPE)
@ -174,7 +174,6 @@ DISKINF: LD C,B
LDIR LDIR
RET RET
; ;
; ;
GetFreeSpace: LD A,1 GetFreeSpace: LD A,1
LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A LD (CORE_BUFFERS.FatBuffer.UPD_FSINFO),A

View File

@ -1 +1 @@
985 986

View File

@ -1,7 +1,7 @@
;/////////////////////////////////////////////////// ;///////////////////////////////////////////////////
; ;
; DIR. ‚뢮¤ ᯨ᪠ ä ©«®¢ ¨ ¯ ¯®ª ; DIR. ‚뢮¤ ᯨ᪠ ä ©«®¢ ¨ ¯ ¯®ª
; ; !TODO ã¡à âì ¡ £ ¥á«¨ ¢ ¯ à ¬¥âॠ¬ áª¨ 㪠§ ­ ¯ãâì ¤® ¯ ¯ª¨ ¨«¨ ¤ ¦¥ ¤® ¤à㣮£® ¤¨áª 
;/////////////////////////////////////////////////// ;///////////////////////////////////////////////////
cmd_dir: push de cmd_dir: push de
;;;; [ ] ¯®¤¤¥à¦ª  ¯ à ¬¥â஢ ;;;; [ ] ¯®¤¤¥à¦ª  ¯ à ¬¥â஢
@ -21,11 +21,12 @@ cmd_dir: push de
jr z,.skip jr z,.skip
LD DE,MAIN_MSG.CALCULATING LD DE,MAIN_MSG.CALCULATING
CALL MESSAGE CALL MESSAGE
;
.skip: ld c,Dss.CurDisk ; ã§­ âì ⥪. ¤¨áª .skip: ld c,Dss.CurDisk ; ã§­ âì ⥪. ¤¨áª
RST ToDSS RST ToDSS
ADD A,"A" ;ADD A,"A"
ld (root_path),a ; ­®¬¥à ¤¨áª  ;ld (root_path),a ; ­®¬¥à ¤¨áª 
SUB "A" ;SUB "A"
call read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©­ë© ­®¬¥à ¤¨áª  call read_disk_info ; ¯à®ç¨â âì ¬¥âªã ¨ á¥à¨©­ë© ­®¬¥à ¤¨áª 
; ;
pop de pop de
@ -41,11 +42,15 @@ cmd_dir: push de
ex de,hl ex de,hl
ld de,work_buffer1 ; 80 ld de,work_buffer1 ; 80
ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨ ld c,Dss.GSwitch ; ¢ë¤¥«¨âì ¯ à ¬¥âà ª®¬-áâப¨
;!TODO âãâ ¢ work_buffer1 «¥¦¨â ¯ãâì ¨/¨«¨/«¨¡® ¬ áª  ä ©« 
; ­ ¤® à §®¡à âì ¥ñ Dss.EX_Path ¢ë¤¥«¨âì ¥á«¨ ¥áâì ¤¨áª, ¯ãâì ¨ ¬ áªã, ¯®á«¥ 祣® 㦥
; ®â¯¥ç â뢠âì ¯ãâì ¢ è ¯ª¥, ã§­ ¢ âì CurDisk ª ª ¢ .skip ¢ëè¥. „¥« âì íâ® ¤® ¢ë§®¢ 
; ¯à®æ¥¤ãàë read_disk_info. ‹ãçè¥ ¤¥« âì íâ® ¯®á«¥ ¬¥âª¨ .skip
RST ToDSS RST ToDSS
; ;
ld a,(work_buffer1) ld a,(work_buffer1)
or a or a
jr nz,.skipMask ; § ¤ ­  ¬ áª  ¨¬¥­ jr nz,.skipMask ; § ¤ ­  ¬ áª  ¨¬ñ­
; ;
ld hl,mask_fname ; "*.*" ld hl,mask_fname ; "*.*"
ld de,work_buffer1 ld de,work_buffer1
@ -647,18 +652,19 @@ read_disk_info: OR #80
call hex16 call hex16
.get_label: ; ¨é¥¬ ¬¥âªã ¢ ª®à­¥ ”‘ à §¤¥«  .get_label: ; ¨é¥¬ ¬¥âªã ¢ ª®à­¥ ”‘ à §¤¥« 
; ãáâ. ª®à¥­ì ¤¨áª  ; ãáâ. ª®à¥­ì ¤¨áª 
ld hl,root_path ; "x:\",0 ; ld hl,root_path ; "x:\",0
ld c,Dss.ChDir ; ld c,Dss.ChDir
RST ToDSS ; RST ToDSS
; ¯®¨áª ¬¥âª¨ ; ¯®¨áª ¬¥âª¨
ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨ ;ld hl,mask_fname ; "*.*" ¨¬ï ¬¥âª¨
ld hl,SlashMaskFname ; "\*.*" ¨¬ï ¬¥âª¨
ld de,work_buffer1 ; ªã¤  ld de,work_buffer1 ; ªã¤ 
ld a,FAT_ATTR.VOLUME_ID ;  âਡãâ ¬¥âª¨ ⮬  ld a,FAT_ATTR.VOLUME_ID ;  âਡãâ ¬¥âª¨ ⮬ 
ld bc,Dss.F_First.FATname ; f_first, ä®à¬ â 11 ld bc,Dss.F_First.FATname ; f_first, ä®à¬ â 11
RST ToDSS RST ToDSS
push af ;push af
call restore_path ; ¢®ááâ. ⥪. ¯ãâì ;call restore_path ; ¢®ááâ. ⥪. ¯ãâì
pop af ;pop af
ld hl,work_buffer1 + BUFFER_FIND.REC_Name ; ­ ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first ld hl,work_buffer1 + BUFFER_FIND.REC_Name ; ­ ç «® ¬¥âª¨ ¢ ¡ãä¥à¥ f_first
jr nc,volume_label ; ¬¥âª  ¢ ª®à­¥¢®¬ ª â «®£¥ jr nc,volume_label ; ¬¥âª  ¢ ª®à­¥¢®¬ ª â «®£¥
; ¡¥àñ¬ ¬¥âªã ¨§ BPB ; ¡¥àñ¬ ¬¥âªã ¨§ BPB
@ -715,12 +721,14 @@ unknown_serial: ;
JP read_disk_info.get_label JP read_disk_info.get_label
; ;
;---------------;
SlashMaskFname: db '\' ;
; ¬ áª  ä ©«®¢ ; ¬ áª  ä ©«®¢
mask_fname: db "*.*",0 mask_fname: db "*.*",0
;---------------;
; ª®à¥­ì ¤¨áª  ; ª®à¥­ì ¤¨áª 
root_path: db 'X:\',0 ;root_path: db 'X:\',0
; ‘¥à¨©­ë© ­®¬¥à ¤¨áª  ; ‘¥à¨©­ë© ­®¬¥à ¤¨áª 
serial_string: db "xxxx-xxxx" serial_string: db "xxxx-xxxx"