Adam Sulmicki wrote:
Any ideas? It seems unlikely that the bochs stuff would be
that fragile so I must be missing something.
It is :/
Yes you are correct. It _is_ much more fragile than I thought. The boot POST area is limited in size. Looking through the code you will find many references to intxx_relocated because it was too big to fit in the boot POST area.
I solved my problem by relocating the expansion ROM BIOS routine and my PCI config code into another area of the bios and then calling them as subroutines.
I also had a problem with the way I was doing my PCI config reads and writes. The term 'Register' in a PCI config space read/write actually means 'which block of 4 bytes' So to access the command register (bytes 4 and 5) I had to use 0x09004 rather than 0x09010 in eax.
I now have both heads up and going... X works fine now except that the mouse dosen't work so it seems I have some more IRQ work to sort out.