The 3B2 emulator did not have support for traps, rendering debugging
under the simulator fairly useless. This change adds support for
trap handling. The 'sdb' UNIX debugger under SVR3 should now work
correctly.
Two critical issues are fixed with this commit:
1. The MMU cache was being corrupted by writing the 'Last Used'
bit into the wrong half of the PD cache (low word vs. high word)
2. The MMU cache was being too aggressively flushed on SRAMA
write, because the wrong length was being used. In addition,
the code was walking off the end of the cache array when
flushing any section other than section 0, potentially causing
memory corruption.
This commit adds support for the following emulated hard disks:
HD30 30 MB CDC Wren 94155-36
HD72 73 MB CDC Wren II 94156-86
HD72C 72 MB Fujitsu M2243AS
HD135 161 MB Maxtor XT1190
This commit improves the integrated disk (ID) controller's behavior,
enabling full support for up to two 72MB (emulated WREN II)
integrated winchester disks.
- An overflow bug was causing INSFW and EXTFW to fail
on Windows hosts compiled with Microsoft Visual Studio.
This commit fixes the issue and causes 3B2 diagnostics
to pass under win32.
- This change adds support for storing time between boots in the Time
of Day clock. An effort has been made to keep the Time of Day clock
in sync with the wall clock between boots, so that user-set time
advances properly between boots.
- Added a couple of custom help routines for TOD and NVRAM.
I will be filling in more help routines as time permits.
Clock reset was not being handled gracefully at all, leading some
diagnostic tests not to pass, or not to pass consistently.
This change will "kick" the system clock whenever the timer divider is
reset, so the new divider is picked up immediately.