The big change is the new 68881 maths FPU emulation. It’s completely new code in this version. As the author, Pruten mentions:
it should be the “most accurate” 68881 emulator (with regard to chip behavior) ever written, as far as I can tell. I can’t find another open source emulator that even attempts to emulate FPU exceptions, probably because Motorora’s documentation is terrible. Rife with typos and errors, and lacking descriptions for lots of edge cases. It’s also a superset of IEEE 754, so it’s tricky to get softfloat, a strict IEEE 754 implementation, to implement all the weird extra behaviors in the 68881.
On the flipside however:
It will also be much slower than the old version, since the new FPU uses integer-based softfloat. The transcendental instructions will be emulated by running whatever the best natively available function is, and then blindly copying the result to the dest FPU register. Since the FPU is the last big piece of shoebill that requires x86, this should allow it to compile on other architectures, like maybe PPC
I’ve only recently rebuilt the emulator with only the addition of the SLiRP code that I’ve been able to debug from Cockatrice III (who said that I was wasting my time? At a minimum I ‘fixed’ up SLiRP to make it more stable), and kicked out a Win32 build (source/binary).
I’ve just had it running doing a simple shell script after disabling the UI. So far it’s 15 hours of uptime…
8:43am up 15:02, 3 users, load average: 0.00 0.01 0.01
Which is nice.
I should add, to disable the UI in A/UX it’s best to edit the inittab and change
co::respawn:/etc/getty console co_9600
And now you’ll get a “text” login.
I guess the real test will be to see if it makes it through the night.
And yes it did!
5:40pm up 1 day, 2 users, load average: 0.00 0.00 0.00
I’ll let it run a little longer but this is like a new record. Although at the same time, I’m not hammering the poor thing.
# netstat -ni
Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Coll
ae0 1500 10.0.2 10.0.2.15 4232 0 3551 0 0
lo0 1536 127 127.0.0.1 157 0 157 0 0