OK, nailed down another bug that resulted in plasma shooting out of my power
supply. :)
Our nexus/monitor code isn't dealing with floating point stuff at all. We don't
save/resore FPU status. And the CR0.NE bit was clear in the monitor so IRQ13
reporting is used. Since we redirect IRQs, plex86 was passing it on to Linux,
not to mention not restoring the FPU regs properly. Not a good thing.
I just virtualized ESC0..ESC7 and ignored them for now. Need to deal with
this better later. OK, here's how far I get with Linux. It's bailing
with HLT with EFLAGS.IF==0. There's some stuff I know I'm not doing
right, like when the page table is read, I don't update the A/D bits.
Just let the read pass through. Need to fix stuff like this.
Now that I nailed down a few nasties I've been hunting for a while,
I will clean up my code and crank out a release. Not really
useful for anything, but ...
-Kevin
===================================================================
Memory: sized by int13 0e801h
Console: 16 point font, 400 scans
Console: colour VGA+ 80x25, 1 virtual console (max 63)
Calibrating delay loop.. ok - 419.43 BogoMIPS
Memory: 13752k/16384k available (396k kernel code,
384k reserved, 412k data)
Swansea University Computer Society NET3.035 for Linux 2.0
NET3: Unix domain sockets 0.13 for Linux NET3.035.
Checking 'hlt' instruction... Ok.
Linux version 2.0.36 (uli@uli) (gcc version 2.7.2.1
) #8 Sat Jul 17 23:50:53 MEST 1999