Commit graph

4665 commits

Author SHA1 Message Date
Patrick Linstruth
b036821a68 AltairZ80: VDM1 correct boot code, IO addressing
Some checks failed
Build / cmake-builds (push) Has been cancelled
Build / makefile (macos-latest, besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60) (push) Has been cancelled
Build / makefile (macos-latest, id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha) (push) Has been cancelled
Build / makefile (macos-latest, microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38) (push) Has been cancelled
Build / makefile (macos-latest, microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094) (push) Has been cancelled
Build / makefile (macos-latest, pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax) (push) Has been cancelled
Build / makefile (macos-latest, scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130) (push) Has been cancelled
Build / makefile (ubuntu-latest, besm6 imlac tt2500 microvax3900 microvax1 rtvax1000 vaxstation3100m76 vaxstation4000m60) (push) Has been cancelled
Build / makefile (ubuntu-latest, id16 id32 sds lgp h316 cdc1700 swtp6800mp-a swtp6800mp-a2 tx-0 ssem b5500 sage pdq3 alpha) (push) Has been cancelled
Build / makefile (ubuntu-latest, microvax2 vax730 vax750 vax780 vax8200 vax8600 microvax2000 infoserver100 infoserver150vxt microvax3100 microvax3100e vaxstation3100m30 vaxstation3100m38) (push) Has been cancelled
Build / makefile (ubuntu-latest, microvax3100m80 vaxstation4000vlc infoserver1000 nova eclipse hp2100 hp3000 i1401 i1620 s3 altair altairz80 gri i7094) (push) Has been cancelled
Build / makefile (ubuntu-latest, pdp1 pdp4 pdp6 pdp7 pdp8 pdp9 pdp10 pdp10-ka pdp10-ki pdp10-kl pdp10-ks pdp11 pdp15 vax) (push) Has been cancelled
Build / makefile (ubuntu-latest, scelbi 3b2 i701 i704 i7010 i7070 i7080 i7090 sigma uc15 i650 sel32 intel-mds ibm1130) (push) Has been cancelled
2025-02-13 09:15:33 -05:00
Lars Brinkhoff
feb155fbc4 H316: Convert IMP long leaders to short, and vice versa.
This adds the modifiers CONVERT and NOCOVERT to the HI units.  When
enabled for a unit, 1822 messages will transparently be converted.
IMP-to-host messages are converted from the old, short (32-bit) format
to the new, long (96-bit) format.  Host-to-IMP messages are converted
in the other direction.

The motivation for this feature, is that the currently running IMP
software is from 1974 and only supports short leaders.  Some operating
systems are from a later era, and only support long leaders.
2025-01-17 16:35:53 -05:00
ken rector
33d6b089bb sigma: return corrrect CC on line disconnect 2025-01-13 12:10:15 -05:00
B. Scott Michel
bad1e0e565
IMLAC: Type consistency warnings. (#430)
* IMLAC: Type consistency warnings.

* Remove unintentional changes

* Remove extra braces

* CUR_AC -> AC (revert)
2025-01-13 12:09:25 -05:00
B. Scott Michel
458ab73c4f TT2500: Debugging and reduce type slice warnings.
- Debug: Output the character received, if printable.
- Eliminate type slicing warnings (uint32 -> uint16)
2025-01-13 12:07:29 -05:00
B. Scott Michel
3e9d8cf864 Github: Update runner names
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.
2025-01-13 12:06:09 -05:00
Peter Schorn
96de0f0da2 AltairZ80: Support for disk images of Amstrad CPC 6128 with ULIfAC board 2025-01-13 12:03:52 -05:00
Patrick Linstruth
2437b13fb1 AltairZ80: Adds "rom" option to "load -h"
Adds "rom" option to set pages to ROM when loading an Intel
HEX file.
2024-09-05 17:21:41 -04:00
Ken Rector
36605c4950 sigma: Update latest from Bob Supnik's v3.12-5
- 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
2024-09-05 17:21:04 -04:00
Ricardo Bánffy
9ef8bf57b4 Add note on MacPorts 2024-09-04 16:32:06 -04:00
Ricardo Bánffy
2bb425addf Add MacPorts as an option for the travis/deps.sh script 2024-09-04 16:32:06 -04:00
Tony Lawrence
c093bcdcf6 PDP11: RP11: Implement original RP11 controller flavor
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.
2024-09-04 13:39:47 -04:00
CRWolff
0e83a37a99 VAX: Mask QBus addresses to 22 bits for ka630/ka65x 2024-09-04 13:04:14 -04:00
CRWolff
4b73c8d81b Mask adapter channel from buffer address for QBus accesses 2024-09-04 13:04:14 -04:00
CRWolff
ccdc5d0711 Mask QBus addresses to 22 bits 2024-09-04 13:04:14 -04:00
f478ccf2
717410c8c1 Allow msys2 clang64 to compile. 2024-09-04 11:58:17 -04:00
Patrick Linstruth
65e8799872 AltairZ80: Adds CUTER PROM to SOL20 device
SET SOL20 VER=CUTER
2024-09-04 11:53:38 -04:00
Charles Horn
8546a8702f I1401: Fix minor typo in error msg 2024-09-04 11:52:11 -04:00
Peter Schorn
7b99876e1e AltairZ80: Fix 8080 and Z80 CPU 2024-09-04 11:45:18 -04:00
Tony Lawrence
c831460ecb PDP11: Fix to fix disassembly #331
As discussed in PR#331, the fix needed more fix with the proper
masks array.  This patch completes the fix.
2024-07-23 14:25:19 -04:00
Patrick Linstruth
8ed26d300b SCP: Remove unused variable from sim_timer.c 2024-07-14 19:14:21 -04:00
Peter Schorn
0f6bcb9682 SIMH: Fix spelling errors in comments and strings 2024-07-11 12:29:53 +02:00
Patrick Linstruth
e7b2431f11 VIDEO: Add vid_render_set_logical_size() stub
Fixes oversite of missing sim_video stub function.
2024-07-03 10:54:33 -04:00
Mark Pizzolato
294b04e9a6 Revert "Compile fix: replaced Uint8 by uint8."
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.
2024-06-30 07:34:37 -10:00
B. Scott Michel
103d1dd554 CMAKE: Regenerate, PDP10 needs USES_AIO
- 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.
2024-06-28 12:45:49 -04:00
B. Scott Michel
a011507fe9 MAKEFILE: Add zlib to macOS deps
Zlib is no longer packaged as part of macOS, now needs to be installed
by HomeBrew.
2024-06-28 12:45:49 -04:00
folkert van heusden
a944a4bc6d
Compile fix: replaced Uint8 by uint8. 2024-06-18 11:22:16 +02:00
Charles Anthony
aea2634940 IBM1130: Fix address computation overflow
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.
2024-06-17 14:04:19 -04:00
Patrick Linstruth
f1fb14d350 AltairZ80: Adds Cromemco TUART devices
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.
2024-06-17 14:02:59 -04:00
Steven A. Falco
5904fceddc The use of egrep is deprecated
On Fedora40, I get warnings that egrep is deprecated.  Replacing "egrep"
with "grep -E" eliminates the warnings, and is functionally identical.
2024-06-17 14:00:05 -04:00
Tony Lawrence
100f351575 PDP11: RP11: Interrupt on IE+RESET+GO
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.
2024-06-13 21:42:44 -04:00
Lars Brinkhoff
c6b9402f8c VAX: Add UW device to 8600 and 8200.
The VAXstation 100 "unibus window" interface board should work with
any Unibus VAX.
2024-06-08 14:45:06 -04:00
Patrick Linstruth
c55b964921 AltairZ80: Changes to JAIR devices
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
2024-06-08 13:55:57 -04:00
Patrick Linstruth
1e4a43d8f8 AltairZ80: Adds Cromemco DAZZLER and JS1 devices
Adds Cromemco Dazzler and JS1 joystick devices
Adds vid_render_set_logical_size() to sim_video.c
2024-06-08 13:55:30 -04:00
Richard Cornwell
5b3e28263c KA10: Removed tabs that got added by accident. 2024-06-08 13:54:58 -04:00
B. Scott Michel
c37d26a370 IBM 1130: GUI resource file, RegSanityCheck fix
- 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.
2024-06-08 13:51:23 -04:00
Olaf Seibert
c0b00f48e1 Avoid super-inefficient use of strlen(). 2024-06-08 19:43:58 +02:00
Olaf Seibert
b6ae88bd1c I650: Avoid allocating large card decks on the stack.
Allocate them dynamically instead.
2024-06-08 19:43:58 +02:00
Olaf Seibert
3ffd20c1fa Non-letters are not allowed in shell function names. 2024-06-03 16:48:50 -04:00
Richard Cornwell
4396394313 KA10: Remove unneeded file. 2024-05-21 17:06:39 -04:00
Richard Cornwell
1cb2f3b96c KA10: Fix divide error on KS10, add in some devices.
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.
2024-05-21 17:06:39 -04:00
Richard Cornwell
9515201238 I7000: Updated general card reader, printer and magtape
Card reader handle EOF correctly.
         Line printer proper handling of paging.
         Magtape clean up debug message.
         Update 7010, 7070, 7080 for EOF handling.
2024-05-21 17:06:39 -04:00
Richard Cornwell
fdbf79145a B5500: Cleanup some warning from CMAKE. 2024-05-21 17:06:39 -04:00
ken rector
debd1774ae sigma: Implement CM (Chaining Modifier) flag to IOP simulation in sigma_io.c 2024-05-21 16:01:43 -04:00
B. Scott Michel
c77bb2ea71 Github CI/CD: checkout@v4, macos matrix updates
- 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.
2024-05-21 15:59:01 -04:00
Ender Wiggin
8c1fb2ea3a Update deps.sh
Changed "arch" to "arch-linux"
2024-05-21 15:58:12 -04:00
Ender Wiggin
2102b01f2d Update deps.sh 2024-05-21 15:58:12 -04:00
Ender Wiggin
4edbd76c85 Added an option for Arch Linux.
Added an option that uses pacman to install everything, therefore making setup simpler for Arch users.
2024-05-21 15:58:12 -04:00
B. Scott Michel
191b2131e9 CMake: Make generate.py reusable
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.
2024-05-21 15:57:21 -04:00
Peter Schorn
24f145ad16 AltairZ80: Updated docs to include latest devices 2024-03-17 19:09:21 +01:00