diff --git a/BOOT/DSSBOOT.ASM b/BOOT/DSSBOOT.ASM index de7bf5c..bee178c 100644 --- a/BOOT/DSSBOOT.ASM +++ b/BOOT/DSSBOOT.ASM @@ -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