Multiple rules with the same match string are processed in the order the EXPECT
commands are entered. NOEXPECT will remove all pending EXPECT rules which
have the match string provided on the NOEXPECT line.
These changes facilitate more robust parameter type checking and helps
to identify unexpected coding errors.
Most simulators can now also be compiled with a C++ compiler without
warnings.
Additionally, these changes have also been configured to facilitate easier
backporting of simulator and device simulation modules to run under the
simh v3.9+ SCP framework.
The SHOW FEATURES will enumerate all devices in a simulator and for each of
them display the device specific description if one is available.
This change allows the description to be optionally visible for a single device
displayed with SHOW DEVICE.
The previous change in handling or SCPE_EXPECT transformed it to SCPE_OK
to avoid unexpected exiting or condition trapping. This didn't allow the
SCPE_EXPECT reason to be display if verbose mode was on.
The exploit purpose of an EXPECT command is to return control to the SCP
interpreter when data output matches the expect condition; This will then
allow either related action commands specified on the EXCEPT command to
be performed or subsequent commands in the running command file.
Prior logic attempted to load the desired file from the current default directory and if that failed wrote the in memory boot code image to the desired file and then retried the desired load..
A user can still explicitly load a ROM image with a "LOAD -R romfile.bin" command prior to a BOOT attempt if they want to test or otherwise run with a different ROM.
Altered the calling sequences to fprint_sym and parse_sym in ex_reg and dep_reg to merge user-defined register flags with the radix in the addr parameter. This allows the print and parse routines to identify the register or determine how it is to be handled. These are called in lieu of the standard print and parse routines if a register has REG_VMIO or at least one user-defined flag set.
Problem was the console storage output buffer was masked with a WMASK instead of a BMASK (it is only a 8 bit register).
Also, the input interrupt processing cleared the output interrupt state instead of the input interrupt state. This would only be a problem when interrupts are actually used instead of polled I/O.
This reverts commit 7c7b44e409.
The prior commit didn't work for static initializers. There are other ASCII dependencies in simh. They should all be solved together or not at all.
Added -Q switch to suppress version check messages
Added -D switch to disable the detach_all at the beginning of a restore and any actual attach operations during the restore