Question about which tools to use, bugs, the best way to implement a function, etc should go here. Don't forget to see if your question is answered in the wiki first! When in doubt post here.
ES:BX - I chose where to store the data based on a map that I saw. The map shows where everything is loaded into RAM. I just looked around for a big empty space.
DH,CH,CL - I chose these values based on the structure of an ISO 9660 filesystem. I'm trying to load the primary volume descriptor so that I can find out where the root directory is and where stage 2 is.
AH - This has to be 0x02.
AL - This is the size of the primary volume descriptor.
I can change some of these values if that's the problem.
The drive number is automatically stored in DL when the BIOS loads this code.
After the boot process has been initiated the INT 13 Extensions (functions 41-48) will access the CD using 800 byte sectors and the LBA address provided to INT 13 is an absolute sector number.
Isaac wrote:I tried that and it still fails. Is there any way I can know way it fails? Can I watch what goes on while I run the bootsector on qemu?
We have now determined that your original code is never going to work. So what code are you now using to do the Extended Read Sectors call? It's almost certain that your DAP isn't valid.