Commit graph

253 commits

Author SHA1 Message Date
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
Richard Cornwell
5b3e28263c KA10: Removed tabs that got added by accident. 2024-06-08 13:54:58 -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
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
Richard Cornwell
e425c75d0d KA10: Fix RH10/20 to allow access to registers during transfer. 2024-02-01 16:53:53 -05:00
Richard Cornwell
e0b08b3894 KA10: Fix random hang on DP disk drives. 2024-02-01 16:53:53 -05:00
Richard Cornwell
fc7b65cb47 KA10: Poll quicker for Chaosnet packet when there's traffic. 2024-02-01 16:53:53 -05:00
B. Scott Michel
d9d0e8bd74 CMake: Updates
Issue #294: "apple silicon build problem(s?)": If the "--flavor/-f" flag
is not specified on the command line, then complain loudly, print help
and exit. The script used to default to "Unix Makefiles".

Updates:

- Add missing "-DHAVE_LIBPNG" compiler command line define when the PNG
  library is detected/present for screen capture support.

- Add "clang64" to the list of MinGW64 platforms for which the
  .travis/deps.sh script can install build dependencies.

- Add PThread4W_FOUND to the condition that sets async I/O for Win32
  when using vcpkg for build dependencies.

- Add vs2022-x64, vs2019-x64 and vs2017-x64 build environments to
  build 64-bit Windows executables.

- Use simulator AIO only where needed by the simulator (i.e., the
  simulator calls/uses AIO_CHECK_EVENT in sim_instr())

  - Add "USES_AIO" flag to add_simulator() to mark a simulator that
    acutally uses asynchronous I/O.

  - Build "_aio" SIMH core library variants that have AIO turned on,
    link with the "_aio" variant when a simulator sets USES_AIO.

  - Emit a warning message when WITH_ASYNC is False (CMake configuration
    option) to notify the user/developer that some functionality will be
    crippled.

  Affected simulator builds: 3b2 family, PDP-6, PDP-11, VAX family,
  IMLAC and TT2500. The makefile and cmake/generate.py also updated
  to remain in sync with CMake.

  N.B.: Simulators still link with the underlying platform's threading
  library. SEL32 requires pthreads or equivalent threading library,
  independent of AIO.

- cmake/cmake-builder.sh

  - New "--no-aio" flag: Build simulators without async I/O.

  - New "--no-aio-intrinsics" flag: Don't build async I/O using compiler
    compare-exchange, atomic load intrinsics.

- cmake/cmake-builder.ps1

  - New "-noaio" flag: Build simulators without async I/O.

  - New "-noaiointrinsics" flag: Don't build async I/O using compiler
    compare-exchange, atomic load intrinsics.

CMake 3.28.1 INTERFACE_LINK_LIBRARIES behavior change: The file name
must now be an absolute path. Relative paths no longer accepted.
Internally, SIMH enforces this if CMAKE_VERSION >= 3.19, when REAL_PATH
was first implemented.
2024-02-01 12:51:13 -05:00
Richard Cornwell
8b9613ae81 KA10: Fixed OWGBP on KL10B. 2023-10-09 20:27:43 -04:00
Richard Cornwell
9141eea016 KA10: Allow single step over XCT, byte and extend instructions. 2023-10-09 20:27:43 -04:00
Richard Cornwell
f247a0ca1f KA10: Add -m option to load .exe files to load monitors. 2023-10-09 20:27:43 -04:00
Richard Cornwell
3da3de331e KA10: Fixed nopage read/write to always refer to memory. 2023-10-09 20:27:43 -04:00
Richard Cornwell
19c6b30e8e KA10: Moved over older changed to ITS and WAITS devices. 2023-10-09 20:27:43 -04:00
Richard Cornwell
0c77f8c832 KA10: Fixed depositing symbolic into register and symbolic of reg 17 2023-10-09 20:27:42 -04:00
Richard Cornwell
73918ddc12 KA10: Fixed PUSH for extended addressing on KL. 2023-10-09 20:27:42 -04:00
Richard Cornwell
fe0bc2ee14 KA10: Fixed to allow EDDT to work correctly on KL10. 2023-10-09 20:27:42 -04:00
Richard Cornwell
f8a51de903 KA10: Fixed save command on Tops 10 7.0x. 2023-10-09 20:27:42 -04:00
B. Scott Michel
8b14bb69be
CMake build infrastructure II (#53)
* CMake build infrastructure

The squashed commit that builds and packages releases for the SIMH
simulator suite with CMake, version 3.14 or newer.

See README-CMake.md for documentation.
2023-05-17 20:18:42 -04:00
Peter Schorn
27bd6b81aa Fix UTF-8 encoding for five files 2023-03-30 09:31:06 -04:00
Richard Cornwell
4b8a6f8d2c KA10: Fixed DPY 340 second interrupt on KA10. 2023-03-29 10:08:06 -04:00
Richard Cornwell
1921b58996 KA10: Fixed TM10A to request first word at issue of write instruction. 2023-01-21 23:07:58 -05:00
Richard Cornwell
b487b3a7c2 KA10: Fixed issue with ITS KA quantum clock interrupt.
Start of support for PiDP10 front panel.
      Moved interrupt checking from check_irq_level to clear_interrupt.
      Pending interrupts now saved in IOB_PI.
      Cleanup of KL10 Timer interrupts.
      Minor code cleanup.
2023-01-18 21:11:49 -05:00
Richard Cornwell
1294ef1e83 KA10: Fixed IMP address determination for KS, code cleanup. 2023-01-18 18:02:14 -05:00
Richard Cornwell
cd40b302e6 KA10: Fixed Chaosnet devices to work properly under ITS. 2023-01-18 18:01:32 -05:00
Richard Cornwell
b52438a675 KA10: Added support for Address Stop (lars) 2022-10-23 17:56:02 -04:00
Richard Cornwell
7cd0d1093b KA10: Moved CH11 interface to BR5. 2022-09-23 09:21:05 -04:00
Richard Cornwell
aec04ef956 KA10: Removed duplicate register. 2022-07-08 17:48:04 -04:00
Richard Cornwell
8bbec61483 KA10: Removed REG_UNIT. 2022-06-21 19:32:53 -04:00
Richard Cornwell
46a5532404 KA10: Added default disable for devices that could be on KL10. 2022-06-21 09:50:05 -04:00
Richard Cornwell
264ca2ef6b KA10: IMP Code support for Tenex. 2022-06-21 09:48:47 -04:00
Richard Cornwell
bad0394323 KA10: Code cleanup for Dectape device. Needed for Tenex support. 2022-06-21 09:47:52 -04:00
Richard Cornwell
d216297a06 KA10: Fixed DK10 to properly interrupt. 2022-06-21 09:47:02 -04:00
Richard Cornwell
25f053e45d KA10: Added switch for DF10 vs DF10C.
Fix bug in interrupt handling in KI when EPT not at 0.
      Fix bug with handling of CCW_COMP flag on DF10 devices.
2022-06-21 09:43:17 -04:00
Bob Supnik
28fd79ef06 All LP and CD devices: Removed use of ftell for pipe compatibility
Merge changes from v3.12-2
2022-06-16 16:13:46 -07:00
Bob Supnik
8d49d8c297 All Tape DEVICES: Added extra case points for new MTSE definitions
Merge changes from v3.12-2
2022-06-16 16:13:46 -07:00
Richard Cornwell
406c6af944 KA10: Fixed FE printer support on Tops 20. 2022-03-25 19:16:56 -04:00
Richard Cornwell
4b5386ea75 KA10: Fixed running of OPR on Tops10 and Tops 20. 2022-03-25 19:16:35 -04:00
Richard Cornwell
3d3675edbc KA10: Clean up coverity error. 2022-03-15 21:30:55 -04:00
Richard Cornwell
b566ea356f KA10: Cleanup some extended addressing issues with KL10B.
Clean up coverity errors.
2022-03-12 15:48:49 -05:00
Mark Pizzolato
070e0b3f22 PDP10: Fix LP DEVICE attach logic remove redundant code done by SCP 2022-03-11 16:25:08 -08:00
Richard Cornwell
9b2f13d443 KA10: Fixed some coverity errors. 2022-03-10 19:12:46 -05:00
Richard Cornwell
3dd0d03321 KA10: Fixed some compiler warnings on MACOS. 2022-03-06 23:20:19 -05:00
Richard Cornwell
730fa4b228 KA10: Removed stray tab. 2022-02-26 13:29:42 -05:00
Richard Cornwell
7a24b6ef4b KA10: Fix so KS10 ITS will build. 2022-02-26 11:48:45 -05:00
Richard Cornwell
a45c6c6e4f KA10: Fixed bug with page fault during ILDB/IDBP
Set KMC default state to disabled.
2022-02-24 08:37:12 -05:00
Richard Cornwell
d435ae3028 KA10: Fixed BLTUB/BLTBU instructions. 2022-02-21 15:24:24 -05:00
Mark Pizzolato
dc7754206f PDP10: Fix inadvertent overlapped unit status bits 2022-02-20 11:26:14 -08:00
Richard Cornwell
91aee9b39f KA10: Release 3 of PDP10 simulators. KS10 support added.
Added KS10 support.
    CPU Redid instruction decode to improve performance
    Triple-I display cleanup.
    Normalized end of line to DOS/Unix.
    KL10 FE, Cleanup issues with TTY devices hanging simulator..
    Fixed errors in RH20 device.
    RP and TU drives more independent of RH controller.
2022-02-19 20:25:44 -05:00
Mark Pizzolato
49b6e52d48 PDP11, VAX scsi systems: Migrate DEV_DISK devices using common autosize code 2022-02-11 15:26:21 -08:00