Code: Select all
mov dl, byte[DiskNumber]
mov si, AddressPacket
mov byte[si + SDiskAddressPacket.mSizeOfPacket], 16
mov byte[si + SDiskAddressPacket.mReserved], 0
mov word[si + SDiskAddressPacket.mReadSectorCount], 1
mov word[si + SDiskAddressPacket.mTargetOffset], 0x10000 - 2048
mov word[si + SDiskAddressPacket.mTargetSegment], 0x3F
mov dword[si + SDiskAddressPacket.mSectorIndex], 1
mov dword[si + SDiskAddressPacket.mSectorIndexHigh], 0
call IO_ExtendedReadSectors16 ; call INT 13 Function 42
jc FailReadDiskFailed16
but just stopped after launch.
NOT fault occured, NOT returned failed signal with carry flag.
Just stucked.
Then had been tested other cases and recognized that cannot put in last approximately* 60bytes of a segment.
(*sometimes worked 59bytes from end of segment.)
Why this happened? Is it normal case?
Thanks!