- When sim_interval is negative (vs 0), more "time" has passed than
when the first unit event on the queue was supposed to fire. To
properly handle this and dispatch this and other events which should
have fired, time is temporarily backed up to when it was supposed
to have fired and the event is dispatched. If it schedules other
events those will then properly be scheduled relative to the time is
has fired. This approach avoids events slipping forward in time.
- Add unit test to exercise event dispatching activities.
The OS may signal SIGTERM more than once before ultimately
issuing a SIGKILL. The initial SIGTERM will stop execution and
initiate optional simulator cleanup. Ignoring follow up SIGTERMs
will allow as much cleanup as possible to be achieved and thus
allow the simulator to complete its cleanup and exit or ultimately
exit die due to receipt of SIGKILL.
Likewise for SIGHUP on hosts that can issue SIGHUP.
The paradigm of using a "weak" linker reference to find what was
previously the vm_init_routine() doesn't work reliably on all compile
environments supported by the simulators. This has been reported
in #794 and it came up again in #862. This change assures that
it will not come up again AND it reliably solves the problem with
Visual Studio compilers (and linker) that randomly chooses whether
to have the desired effect or not.
Of the 82 simulators which are currently part of simh, only these
three used the sim_vm_init() interface, so removing it had relatively
minor impact.
This allowed user entered S to match the SAMPLEOUT command instead
of STEP. That then identified a bug in the intended socket output
processing to attempt to be written to the undefined debug file.
As discussed in #854
Previously, numeric values incorrectly had a string representation of
"". This allowed arbitrary equality comparisons to succeed in unexpected
ways.
Reported by Robert Sancho Villas
- Previously invoking a simulator with -T was the only way to invoke the
library tests for ALL devices. That still works now with the additional
flexibility to invoke a specific device's test from the sim> prompt.
- Adding TESTLIB help text encountered a maximum constant string length
limit in the C compiler. Reworked to allow multiple strings which are then
concatenated on the first HELP command invocation.
Sequential devices (LPT, PTR , PTP, etc.) can be positioned to EOF.
Readable devices will encounter EOF on the next I/O operation.
Writable devices will append. Either APPEND or EOF produce
the same result independent of whether the device is opened for
oread or write.