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
- MicroVAX I, II and 3900 don't have a DONE bit in the clock status
register, so sim_rtcn_tick_ack() wasn't being called to acknowledge
clock ticks.
- Timer catchup tick criteria didn't work unless the host had a slow
clock tick.
As discussed in #705
Avoid the common situation on with this simulator whereby the programmatic
interval timer is being used for intervals which change often. The internal
calibrated timing routines depend on consistent rate for the calibrated device.
As discussed in #699
- Properly handle clock transitions when control flows back and forth
between instruction execution and simh commands.
- Changed Internal Timer from 10 Hz to the MAX(100Hz, HostOSClockHz)
- Changed default idle calibration percent to 50%
- Make sure that error cases (backwards and gap too big) properly advance
the real time while avoiding calibration.
- Fix selection of the calibrated clock.
- Fix logic that sets the idle percentage that controls calibration.
A device simulator is responsible for specifying exactly what categories of
packets it wants to receive. It should do that after having opened the device.
This change avoids collecting packets that aren't actually interesting until
after the device designates which packets it is interested in.
- Limit choices to explicitly either G-FLOAT or D-FLOAT for SET CPU INST=
- Compile in all instruction implementations and dynamically use the
enabled ones.
- Different VAX models had different groups of instructions which were
implemented in hardware vs trappng to the OS for emulation. Functionality
has been added to differentiate the various mix of instruction groups for
different models and to display both the groups and the actual instructions.
- Visibility to Instruction groups is provided by SHOW CPU INSTRUCTIONS
and the list of the active instructions implemented and emulated via
SHOW CPU -V INSTRUCTIONS.
- The MicroVAX I CPU handled some execution fault conditions differently
from other VAX systems these differences are now specifically handled.
- Add build time test support to MicroVAX I running EHKAA v1.13
suggested in #683
- Add more CPU debug details relating to exception and interrupt processing