assembly - INT 0x13, AH=0x41 Passed, but INT 0x13, AH=0x48 Failed [solved] -
I apologize in advance, but this is another question about the code going to a boot sector.
I was able to successfully call [8.17 Check Extension Current (FN 41h)] without any problem; I saw a sign in BX, my version number in AH is 0x30 and the interface support in CX is Bitmap 5.
However, when I call [8.24 Check Extent Present (Fn 48-H)] with DS hard coded 0x07C0 and SI Hard to 0x0200 coded, 512 byte status after the boot sector sign In, and the original drive number in DL. The original drive number 0x80 is in any way and when I work hard for that value, I still get the flag set carrying it and the AH is returned as 0x01.
Then I am putting this code in the 8 GB boot sector of the USB flash drive. I suspect that due to small drive I could not use the LBA routine so I could not understand it on my own and I did not find in the specification whether 8 GB Threshold is complete or not.
Thank you. Resolve: Expanded disk parameter buffer size should be coded in the memory space by the DS: referred to by the SI: SI, and
When it says ("call"), it means that the memory location must be set to the function call.
PostScript: This function call is actually no place in the boot sector, however - in particular the FAT32 compatible boot sector is my belief that a protected mode disk driver can be used to format the volume before loading, Or to store some parameters, so that the software does not lose the disk, I had to eliminate the function call (1) to save space and (2) All necessary information should already BIOS parameter block (FAT type file system); The concept of setting the size of the parameter buffer clearly still applies, where the disk access packet size [DS: SI] is stored in the first word of the parameter buffer or the function will fail evenly.
Comments
Post a Comment