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