On Wed, 2005-10-19 at 13:59 +0100, Nick Barker wrote:
I now have some more information on running the VGA bios through the emulator on the epia-m
I have implemented both real mode and emulated VGA initialisation. The real mode brings up the vga properly, whilst the emulation does not. The emulated version runs to completion and also returns with Carry Flag set which I'm assuming means that it has given up trying.
Using TSC, a performance counter set to count instructions, and a simple instruction counter in the main loop of the emulator, I have come up with the following statistics for the vga initialisation sequence:
Real Mode
CPU Clocks = 691,530,971 (600Mhz processor = 1.1 seconds approx) Instructions executed = 16,481,875
Interestingly this gives a clocks/instruction ratio of about 43, which we can put down to intensive I/O and which must stall the processor by many clock cycles per I/O.
Emulation mode
CPU Clocks = 4,618,464,706 (= 7.7 seconds approx) Instructions executed = 1,946,308,181 Emulated instructions = 13,756,300
Did you try the user space testbios? As you probably have known, the VGA BIOS tend to poll some register to wait for some envent, usually this lead to the same wall-clock time.