Hi,
I wrote some code that boots from a floppy and runs some pci bus scans etc. It works fine on vmware and bochs but not on virtualbox.
In virtualbox when I print the data from a large string array after a certain memory location (actually 36 sectors past 0x7c00) the string index points to data at the start of the boot sector.
I then rewrote the boot code to replace the ah=2, int0x13 (reading 50 sectors) BIOS call with the lba-chs algorithm from brokenthorn to call the same bios function reading one sector in a loop. It worked then on VirtualBox.
Has anyone else noticed this, is it a bug or am I missing something else?
Bug in VirtualBox's BIOS ?
-
- Member
- Posts: 5588
- Joined: Mon Mar 25, 2013 7:01 pm
Re: Bug in VirtualBox's BIOS ?
This is not a bug. BIOSes are not required to support crossing a cylinder boundary, reading more than 127 sectors at a time, crossing the ES boundary, or crossing a DMA (64k) boundary.
A common 1.44MB floppy disk has 36 sectors per cylinder.
A common 1.44MB floppy disk has 36 sectors per cylinder.
Re: Bug in VirtualBox's BIOS ?
Do you know if bioses are required to be able access any random sector on a 1.44 floppy ?
I want to rely on loading everything off a floppy without having to write a driver.
I want to rely on loading everything off a floppy without having to write a driver.
Re: Bug in VirtualBox's BIOS ?
The BIOS will be able to read all of the floppy. But if you cross cylinder boundaries, you will have to use multiple BIOS calls to ensure compatibility with BIOSes that don't support multi track reads.