Update maOS the macos-14 runner name to macos-latest. Reduce the
runner's output when dealing with the leftover Python3 artifacts in
/usr/local.
Add the ubuntu-latest runner to the Ubuntu matrix.
- Add new CP and CR devices
- COC: Zero delay from SIO to INIT state Detect and UEN on 0xFF order
- COC: Moved SIO int pending test to devices
- DK: Zero delay from SIO to INIT state
- DP: Added case points for RDEES, dp_aio_status
- DP: Zero delay from SIO to INIT state
- defs: Added chaining modifier flag
- defs: Fixed DVT_NODEV definition
- defs: Added chan_chk_dvi definition
- io: Added chaining modifier flag
- LP: Zero delay from SIO to INIT state
- LP: Added INIT test for illegal command
- LP: Moved SIO interrupt test to devices
- MT: Zero delay from SIO to INIT state
- PT: Zero delay from SIO to INIT state
- PT: Moved SIO interrupt test to devices
- RAD: Zero delay from SIO to INIT state
- RAD: Fixed nx unit test
- RAD: Fixed write protect test
- TT: Zero delay from SIO to INIT state
- TT: Moved SIO int pending test to devices
Studying RSX11M source code I found out that the original RP11
controller (vs. -C and -E later versions) was still supported
in the software, and notably UMD (User Mode Diagnostics) was
still capable of handing it and dealing with its testing,
even in much later OS versions (compared to when the original
RP11 was phased out).
The change in this commit basically implements that flavor
(which only supported the RP02 drives), and also makes a few
minor fixes / cleanups for the device code, here and there.
The default mode for the RP11 controller remains the more widely
used -C/-E version, but if so desired, it can be downgraded to
support its predecessor with the "SET RR <type>" command now.
The "error" that the original change "fixed" was actually in the cmake
build system and not in the sim_ws.c code.
The Uint8 type is specific to SDL2 APIs.
- Periodic "python cmake/generate.py" to sync with makefile changes.
- Ensure that AIO_CCDEFS (makefile) and USES_AIO (CMake generate.py) are
present for PDP-10 simulators. Otherwise, user gets a warning message
when the simulator starts about network support and asynchronous I/O.
In sim_instr(), the effective address is computed; for the case of TAG
(index register addressing), the contents of the specified index register
is added to the effective address, but the result is not masked to 16
bits as per the hardware functionality.
Adding a a 16 bit mask operation fixes the issue.
Adds the following devices to AltairZ80:
TUART0: Cromemco FDC controller TUART console port at I/O address 0x00.
TUART1: Cromemco TU-ART port A at I/O address 0x20.
TUART2: Cromemco TU-ART port B at I/I address 0x50.
These devices are fully TMXR capable.
Recent analysis of the 2.9BSD kernel revealed that RP11 was
expected to interrupt on control RESET function if IE bit was
also set. Documentation was not very clear of the fact, saying
in one place that RESET+GO does not interrupt (which is not
contradictory with the above because it does not mention IE).
In other place, however, it says that IE always causes interrupt
when DONE is asserted. Thus, since RESET does assert DONE, an
interrupt should be posted if IE is set. The autoconfig binary
from 2.9BSD uses this feature of RP11 to check the presence
of the controller.
Formerly RESET was always clearing RPCS with DONE unconditionally,
and that reset IE as well. This patch makes sure that the IE bit
is preserved, and if set, it posts an interrupt when RESET asserts
DONE.
I was having problems with the JAIR device keeping up with received
data at 57.6K.
This PR makes the following changes to the JAIR devices:
- Refactors the service routines into STAT, TX and RX units
- Adds a 128-byte input ring buffer
- Corrects a null pointer exception
- Adds overrun status bit implementation
- Removes a tab with spaces
- Add the missing ibm1130.rc GUI resource file to the Windows build so
that the GUI renders correctly.
- Set the add_simulator TEST_ARGS to "-g" to fix an edge case Heisenbug
encountered during Github CI/CD tests where ibm1130 appears to hang
indefinitely on the Windows runners.
The cause is the GUI's Pump() thread function being prematurely
terminated before all GUI resources are acquired. The net result is an
infinite loop in the MS C runtime trying to exit the process with
unstable internal state. (Separate patch: synchronization across main
and Pump() threads to ensure resource acquisition completes.)
This issue never shows (cannot show) up on non-Windows platforms or
the SIMH makefile.
- Ibm1130/ibm1130_cr.c
- Fix printf() warnings (format should be long, not int)
- Signed/unsigned mismatch, size_t for array indexing
- Comment out the unused trim() function.
- Ibm1130/ibm1130_cpu.c, ibm1130_gui.c: Remove undefined static functions.
Fix divide of 0 on KS10 processor.
Fix write access for auxiliary processor memory.
Updated support new PIDP10 panel.
Allow eight Unibux ports on the TEN device.
Added GE DATANET-760 device to PDP6
Removed USER mode restriction for idle detection.
Added Data Disc 6600 Television Display System.
- Per Github messages, upgrade checkout@v3 to checkout@v4 due to an
upgrade to Node.js.
- macos-11 is now a defunct image runner. Homebrew packages either have
to compile from source or no longer install correctly.
- Update the macos compile matrix. Set CPACK_SUFFIX environment variable
to indicate macOS hardware platform: macos-14 is M1, whereas macos-12
and macos-13 are x86_64.
- Added notes with respect to the matrix.strategy runner images. The
makefile builds use "-latest" because they don't produce artifacts,
while (*) the CMake builds enumerate the images for which artifacts (+)
are produced and the runner image's name is part of the artifact.
(*) "Whilst" for the rest of the Anglosphere.
(+) "Artefact" for the rest of the Anglosphere.
Make generate.py resuable outside of open-simh, as suggested and
motivated by Richard Cornwell's simulator repository.
- Make the "experimental" rule optional. Do not generate a Python
"KeyError" if the rule is missing.
- Add documentation on how to use the CMake infrastructure outside
of open-simh: Customize the packaging.py script, season to taste.
- Update the KA10 simulator customization, moving it to its own
Python script, simgen/pdp10_simulator.py. Preparatory move that
anticipates additional frontpanel and display options.
- generate.py option "--skip-orphans": Skip the orphaned simulator
check (i.e., don't cross-reference the simulators in packaging.py
with what was scraped from the makefile.)
- Add "TEST_ARGS" argument to CMake's add_simulator function so that the
IBM 1130 simulator can pass to "-g" on the command line to disable the
GUI when running RegisterSanityCheck, i.e.:
ibm1130 RegisterSanityCheck -g
This fixes an edge case Heisenbug encountered during Github CI/CD
tests where ibm1130 appears to hang indefinitely on the Windows
runners.
The cause is the GUI's Pump() thread function being prematurely
terminated before all GUI resources are acquired. The net result is an
infinite loop in the MS C runtime trying to exit the process with
unstable internal state. (Separate patch: synchronization across main
and Pump() threads to ensure resource acquisition completes.)
This issue never shows up on non-Windows platforms or the SIMH makefile.
- cmake/generator.py, cmake/simgen: Add a "test_args" keyword argument
to the BasicSimulator constructor that holds the tests argument
parameter emitted as the "TEST_ARGS" argument to a simulator's
add_simulator(). Ensure that the IBM 1130 emits 'TEST_ARG "-g"' in its
add_simulator().
- scp.c: reset_all_p() adds 'P' to the existing switches, versus saving
sim_switches and ONLY setting the 'P' power-up reset switch. Net effect
is that the IBM 1130 simulator actually sees the 'G' flag that inhibits
the GUI during the console device reset.
IO: DVT_NOTDEV macro incorrect, Device mapping algorithm creates false dispatch points.
This mapped Multi Unit Controller and Single Unit Controller to same device.
DP, DP, MT, RAD: Test for non-existent device returns wrong status.
DP, DK, MT: TIO status should return non-operational for unattached device.
- Fix comma separator code segmentation fault: "ndigit - 3" can become a
very large unsigned number for ndigit < 3.
- dir_cmd: Allocate WildName from heap to reduce stack pressure.
- Github CI/CD: Remnant symlink issue reappeared, afflicting the
makefile-based build. For better or worse, the workaround is now
dependent on specific Python versions that must be removed, unlinked
and any remnant symlinks that HomeBrew decided it needed to install in
/usr/local/bin. The Python upgrade is triggered by the sdl2_ttf
package.
According to the Github image maintainers, this is an old, known issue
in macOS images that originates inside of Homebrew.
cmake/cmake-builder.ps1 added quotes to arguments that contained spaces,
so that arguments printed correctly for progress output. This introduced
excess quotes that caused CMake (and likely other MS apps) confusion or
argument misinterpretation.
Instead of CMake seeing a single "Visual Studio 17 2022", CMake was
actually seeing "\"Visual Studio 17 2022\"".
This patch only adds the additional quotes when reporting progress or
emitting debug output. Otherwise, command line arguments are passed
unmolested.