- 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
- 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.