Fix CHS sector-by-sector read loop
Some checks failed
Builds / ExectOS (amd64, debug) (push) Failing after 32s
Builds / ExectOS (amd64, release) (push) Failing after 29s
Builds / ExectOS (i686, debug) (push) Failing after 41s
Builds / ExectOS (i686, release) (push) Failing after 40s

This commit is contained in:
2025-10-10 19:05:23 +02:00
parent 56a1a811b9
commit fdbe157c18

View File

@@ -121,7 +121,7 @@ VerifyBiosParameterBlock:
ja FsError ja FsError
ReadExtraCode: ReadExtraCode:
/* Read second VBR sector with extra boot code */ /* Read second VBR sector with extra boot code (1 sector starting from sector 2) */
movl HiddenSectors - Start(%bp), %eax movl HiddenSectors - Start(%bp), %eax
addl $0x02, %eax addl $0x02, %eax
movw $0x01, %cx movw $0x01, %cx
@@ -151,6 +151,10 @@ ReadSectors:
ReadCHS: ReadCHS:
/* Read sectors using CHS */ /* Read sectors using CHS */
popal
CHSLoop:
/* Read sector by sector using CHS */
pushw %cx pushw %cx
pushal pushal
xorl %edx, %edx xorl %edx, %edx
@@ -176,7 +180,7 @@ ReadCHS:
movw %es, %dx movw %es, %dx
addw $0x20, %dx addw $0x20, %dx
movw %dx, %es movw %dx, %es
loop ReadCHS loop CHSLoop
popw %es popw %es
ret ret