This will not change much, but it may be useful for sane idling depending
on the way the running OS actually uses the interval timer for clock ticks.
Some discussion about this in #713
This change adds a small infinite loop program that will be used by
the simulator to establish a reasonable guess at the host's
performance in order to precalibrate the system timer.
- Integer addition of unsigned types could fail to set the
overflow flag, leading to errors in the SVR3 floating point
emulation library that rely on the overflow flag to detect
carry out of high bit on unsigned addition. This change
will correctly set the V flag if the high bit should be
carried out on an add.
This change adds support for the WE32106 Math Acceleration Unit (MAU).
The WE32106 is an IEEE-754 1985 compatible floating point math
acceleration unit that was an optional component on the 3B2/310 and
3B2/400.
The MAU is implemented using software floating point routines. As
always, there may be bugs, but the MAU currently passes extensive
floating point tests with exactly the same results as a real 3B2/400
equipped with a physical MAU, so I hope these are few.
- Extra queue and timer units on RQB, RQC, and RQD are now properly
initialized.
- PDP11 unit numbers are numbered:
device RQ 0-3
device RQB 4-7
device RQC 8-11
device RQD 12-15
- Fix incomplete migration to RTC structures indicated by Coverity
warnings. Some Coverity were minor warnings and not real issues.
- Add calibration recovery parameters for idle and catchup ticks
- Aggressively perform catchup ticks when in simulated idle paths
even when idling is disabled.
- All non internal clocks can have catch-up ticks triggered if they
register a tick unit.
- Catch-up ticks will be delivered to non tick acking simulators when
idling if regstered tick unit has been specified.
- Hosts with slow ticks can idle and keep sloppy OK time when
simulators have faster ticks
- Default to active calibration (ALWAYS) while idling (no skipping)
The original approach had separate parallel arrays for each relevant
state variable for each calibrated timer. That worked when there were
only a few state variables, the state info for a timer belongs in a
structure.
- Adjust calibration parameters to properly record catchup variables for
odd condition cases.
- Disable idle percentage calibration skipping until the correct set of
calibration variables are available.
- When a pre-calibrate operation has been performed, make the results
visible in the output of SHOW CLOCK
As discussed in #705 and #699