sys: fixed a bug in GETROOT reported by Roman Boykov.

This commit is contained in:
Anatoliy Belyanskiy 2024-06-28 00:33:57 +10:00
parent ca0bdc7049
commit 8c1b27e2af

View File

@ -311,7 +311,7 @@ PART_TB: LD HL,(BOOT_BUFFER + BOOT_SECTOR.MBR_SIGNATURE)
LD IX,BOOT_BUFFER + BOOT_SECTOR.PARTITION_TABLE LD IX,BOOT_BUFFER + BOOT_SECTOR.PARTITION_TABLE
LD B, +(_sMBR_PARTITION_TABLE / _sMBR_PARTITION_RECORD) LD B, +(_sMBR_PARTITION_TABLE / _sMBR_PARTITION_RECORD)
; ;
LD HL,YEPDOS ;LD HL,YEPDOS
; ;
.part_loop: LD A,(IX + _sMBR_PARTITION_RECORD.FS_ID) .part_loop: LD A,(IX + _sMBR_PARTITION_RECORD.FS_ID)
; …‘‹ˆ ¤®¡ ¢¨âáï ¯®¤¤¥à¦ª  ¥éñ ­¥áª®«ìª¨å ⨯®¢ ”‘, â® ¯®¬¥­ïâì 1fs ­  2fs ; …‘‹ˆ ¤®¡ ¢¨âáï ¯®¤¤¥à¦ª  ¥éñ ­¥áª®«ìª¨å ⨯®¢ ”‘, â® ¯®¬¥­ïâì 1fs ­  2fs
@ -722,6 +722,10 @@ GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H)
LD IX,(FatBuffer.RootDirFirstSector_L) LD IX,(FatBuffer.RootDirFirstSector_L)
LD BC,(PARTITION_START_L) LD BC,(PARTITION_START_L)
LD DE,(PARTITION_START_H) LD DE,(PARTITION_START_H)
; [x] 28/04/2024. Bug with incorrect reading root dir. Found Roman "Romychs" Boykov.
ADD IX,BC
ADC HL,DE
;
LD A,(FatBuffer.FAT_TYPE) LD A,(FatBuffer.FAT_TYPE)
CP FAT_TYPE.x32 CP FAT_TYPE.x32
LD A,(FatBuffer.DirSizeInSectors) LD A,(FatBuffer.DirSizeInSectors)
@ -729,11 +733,10 @@ GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H)
; ;
LD A,(FatBuffer.SectorsPerCluster);!FIXIT ¯à®çâñâ ⮫쪮 ¯¥à¢ë© ª« áâ¥à ª â «®£  ­  FAT32 LD A,(FatBuffer.SectorsPerCluster);!FIXIT ¯à®çâñâ ⮫쪮 ¯¥à¢ë© ª« áâ¥à ª â «®£  ­  FAT32
.NEXTSEC: PUSH AF .NEXTSEC: PUSH AF
ADD IX,BC ; [x] 28/04/2024. Bug with incorrect reading root dir. Found Roman "Romychs" Boykov.
;JR NC,.skip_inc ;ADD IX,BC
;INC HL ;ADC HL,DE
ADC HL,DE ;
;.skip_inc: ;HL:IX
PUSH IX PUSH IX
PUSH HL PUSH HL
LD BC,1*256 + BIOS.DRV_READ LD BC,1*256 + BIOS.DRV_READ
@ -747,8 +750,13 @@ GETROOT: LD HL,(FatBuffer.RootDirFirstSector_H)
RET C RET C
RET NZ RET NZ
LD A,B LD A,B
;LD DE,0 ; next sector
LD BC,1 LD BC,1
; [x] 28/04/2024. Bug with incorrect reading root dir. Found Roman "Romychs" Boykov.
ADD IX,BC
ADC HL,BC
DEC HL
;
DEC A DEC A
JR NZ,.NEXTSEC JR NZ,.NEXTSEC
SCF SCF