This commit is contained in:
Tolik 2026-03-27 01:11:17 +10:00
parent 192559b49a
commit 997efb0d41
2 changed files with 35 additions and 10 deletions

@ -1 +1 @@
Subproject commit b9c54c9a1e027b35fba71efa26378a555cfd75db
Subproject commit e1233b24a06f9be0c80349b47ab34cfceacc2486

View File

@ -79,7 +79,8 @@ main: DI
JR NZ,.next0
DEC HL
.next0: DEC DE ;and correct it (-1)
LD (BPB.hide_sectors+2),HL ;!FIXIT 趡 能悄摎恕兩?
;!FIXIT çñ ¯à®¨á室¨â? ­¥â £ à ­â¨¨, çâ® ¤®á ¡ã¤¥â ¢ë¤ ¢ âì á«¥¤ãî騩 ᥪâ®à ¢ á«¥¤ãîé¨å ¢¥àá¨ïå
LD (BPB.hide_sectors+2),HL
LD (BPB.hide_sectors),DE
LD HL,buff
PUSH HL
@ -854,7 +855,7 @@ CALCULATED_FAT_PARAMETERS:
.Number_of_FATs: BYTE 2 ; predefined ;
.FilesInRootDIR: WORD 0 ; FAT32 constant ; [ ] FAT ; [x] FAT32
.SectorsPerDrive: WORD 0 ; FAT32 constant ; [x] +-
.DRIVE_TYPE: WORD 0 ; ;
.DRIVE_TYPE: WORD 0 ; ; [x] +-
.SectorsPerFAT16: WORD 0 ; FAT32 constant ;
.HEADS WORD 0 ;
.HIDDEN WORD 0 ; ®â ­ ç «  MBR, extMBR ;
@ -892,14 +893,16 @@ CALCULATED_FAT_PARAMETERS:
reserved_sectors = ( ((.HIDDEN + min_last_sector) & #0F)>0 ) * #10) - .HIDDEN
;;;;;;;;;;;;;;;;;
*/
FORMAT_FAT32:
////////////////////////////////////////////////////////////////////////
FORMAT_FAT32: LD (.Save_SP),SP
; Ž¯à¥¤¥«¥­¨¥ ¯ à ¬¥â஢ ­®á¨â¥«ï ¨ ¢ë¡®à FAT
.STEP1: ; íâ  ¤®«¦­  ¡ëâì ®¡é¥© ¤«ï § ¯®«­¥­¨ï £¥®¬¥âਨ ¤¨áª 
LD A,VARIABLES.CurrentDrive
LD BC,Dss.DRV.GenIOCTL.GetParams
RST ToDSS.DRV
;
;!TODO CHECK ERROR
JR C,.ERROR
;!TODO CHECK ERROR ­¥¯®¤å®¤ï騩 ¤¨áª
;
EX AF,AF'
AND #F0
@ -930,8 +933,7 @@ FORMAT_FAT32:
LD E,H
LD D,A
CALL AUTO_CHOOSE_FAT_PARAMS
;!FIXIT
; RET C
JR C,.ERROR
;
LD A,C
LD (CALCULATED_FAT_PARAMETERS.FAT_TYPE),A
@ -951,17 +953,40 @@ FORMAT_FAT32:
; ­  á«ãç ©, ¥á«¨ â ¡«¨ç­ë© ª« áâ¥à ¬¥­ìè¥ á¥ªâ®à 
LD A,1
.BPS_OK: CALL C,DIV16_POWER2
;!FIXIT
; RET C
JR C,.ERROR
;
LD (CALCULATED_FAT_PARAMETERS.SectorsPerCluster),A
;
CALL GET_DRIVE_TYPE
JR C,.ERROR
;
LD A,B
LD (CALCULATED_FAT_PARAMETERS.DRIVE_TYPE),A
.ERROR: ;
.Save_SP+1: LD SP,0
;!TODO
;
RET
////////////////////////////////////////////////////////////////////////
;!TODO ¤®¤¥« âì ¤«ï ¤¨áª¥â
;;;;;;;;
GET_DRIVE_TYPE: LD A,(CALCULATED_FAT_PARAMETERS.BPB_PHISICAL_DRIVE_NUMBER)
CP DRIVE_CODES.SPRINTER.ATA
LD B,BOOT_SECTOR.Hard_Drive
RET Z
; ¤¨áª¥âë ¨ ª®£¤ -­¨¡ã¤ì ATAPI
SCF
RET
;;;;;;;;
; -> DE - 4 ¨ 5 ¡ ©âë à §¬¥à  à §¤¥« .
; ¤®«¦­® ¡ëâì ãáâ ­®¢«¥­® §­ ç¥­¨¥ VOLUME_SIZE_BYTES.