Generate a PDP11 emulation test-set using simh.
Find a file
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
.github CMake: Win XP (v141_xp) VS install script 2023-10-24 12:46:51 -04:00
.travis CMake: Updates 2024-02-01 12:51:13 -05:00
3B2 CMake: Updates 2024-02-01 12:51:13 -05:00
alpha CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
ALTAIR CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
AltairZ80 AltairZ80: M2SIO, CPU, SIO and PMMI additions and fixes 2023-10-09 20:14:51 -04:00
B5500 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
BESM6 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
CDC1700 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
cmake CMake: Updates 2024-02-01 12:51:13 -05:00
display Various simulators: Set line endings to CRLF for consistency, remove stray tabs 2023-03-19 16:51:27 -04:00
doc AltairZ80: Add CTS command to M2SIO device 2023-07-30 09:23:44 -04:00
frontpanel FrontpanelTest: Win32 DisplayRegisters written should be DWORD and not int 2019-12-30 17:44:32 -08:00
GRI CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
H316 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
HP2100 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
HP3000 SCP: Move .git-commit-id.h to where used 2023-10-24 12:48:38 -04:00
I650 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
I1401 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
I1620 SCP: Move .git-commit-id.h to where used 2023-10-24 12:48:38 -04:00
I7000 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
I7094 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
Ibm1130 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
imlac CMake: Updates 2024-02-01 12:51:13 -05:00
Intel-Systems CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
Interdata CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
LGP CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
ND100 ND100: MMS-1 support (Memory Management 1) + other fixes for Nord-100. 2023-05-18 16:53:06 -04:00
NOVA CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
PDP1 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
PDP8 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
PDP10 CMake: Updates 2024-02-01 12:51:13 -05:00
PDP11 CMake: Updates 2024-02-01 12:51:13 -05:00
PDP18B CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
PDQ-3 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
S3 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
SAGE SAGE: Remove irrelevant platform #ifdefs and redundant includes 2023-05-27 14:57:46 -04:00
SDS CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
SEL32 SEL32: Do general code cleanup to remove unused code. 2023-10-09 20:34:56 -04:00
sigma sigma: Correct DP Sense Length error(Bob Supnik) 2023-06-24 13:34:06 -04:00
slirp CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
slirp_glue Various simulators: Set line endings to CRLF for consistency, remove stray tabs 2023-03-19 16:51:27 -04:00
SSEM CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
stub STUB: Fix "non-void function does not return a value" warning 2022-11-07 09:14:23 -05:00
swtp6800 CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
tt2500 CMake: Updates 2024-02-01 12:51:13 -05:00
TX-0 TX-0: Make ^E work in readin mode. 2023-10-09 20:17:13 -04:00
VAX CMake: Updates 2024-02-01 12:51:13 -05:00
Visual Studio Projects PDP11: RP11-C (RP02/03) disk implementation 2023-09-22 19:41:33 -04:00
.editorconfig SCP: Add .editorconfig which describes the project's long standing convention 2023-03-19 16:51:27 -04:00
.gitattributes GIT: Add .dck to .gitattributes for binary card deck images 2020-06-21 15:29:20 -07:00
.gitignore CMake build infrastructure II (#53) 2023-05-17 20:18:42 -04:00
.travis.yml makefile: Correct experimental/incomplete simulator list and add to CI build 2022-09-26 13:24:24 -10:00
0readme_39.txt SCP: Added debugging support for EXPECT and SEND activities. Fixed SEND buffer queuing bug. 2014-10-17 11:34:06 -07:00
0readme_ethernet.txt doc: Update info about pcap support for Ethernet simulation on Windows. 2022-02-04 20:56:45 -08:00
0readmeAsynchIO.txt Merge branch 'master' into AsyncTmxr 2013-01-21 16:52:42 -08:00
appveyor.yml appveyor.yml build, dep lib version number updates 2023-07-15 17:20:26 -04:00
build_mingw.bat makefile: Simpler build under MinGW. Detect attempt to build under Msys bash shell and issue error message 2015-01-12 16:19:18 -08:00
build_mingw_ether.bat ETHER: Remove support for statically linking libpcap on Linux and OS X platforms 2014-09-21 16:31:49 -07:00
build_mingw_noasync.bat makefile: Simpler build under MinGW. Detect attempt to build under Msys bash shell and issue error message 2015-01-12 16:19:18 -08:00
build_vstudio.bat Visual Studio Projects: Do parallel builds for multiple projects when VS > 2008 2019-12-28 14:54:46 -08:00
CMakeLists.txt CMake: Updates 2024-02-01 12:51:13 -05:00
descrip.mms Common code: various bugfixes; Mac "Classic" and OS/2 support has been removed 2023-01-31 14:49:35 -05:00
helpx SCP: Added hierarchical help capability (from Timothe Litt) 2013-11-22 06:08:03 -08:00
LICENSE.txt Initial descriptive files for Open SIMH 2022-05-30 14:38:25 -04:00
makefile CMake: Updates 2024-02-01 12:51:13 -05:00
README-CMake.md CMake: Updates 2024-02-01 12:51:13 -05:00
README.md Update README.md 2023-11-27 10:55:16 -05:00
scp.c SCP: Add'l memory sanitization fixes 2024-02-01 12:50:52 -05:00
scp.h SCP: Change declaration of get_yn() to have boolean argument and return value 2023-04-06 13:00:52 -10:00
scp_help.h SCP: Convert more SHOW and debug output to use sim_vm_interval_units 2020-03-08 11:43:30 -07:00
sim_BuildROMs.c BUILDROMS: Fix potential compiler warnings 2022-11-13 11:07:46 -05:00
sim_card.c SIM_CARD: Fixed to better detect mixed binary and ascii decks. 2023-10-09 20:27:42 -04:00
sim_card.h SIM_CARD: Fixed to better detect mixed binary and ascii decks. 2023-10-09 20:27:42 -04:00
sim_console.c Common code: various bugfixes; Mac "Classic" and OS/2 support has been removed 2023-01-31 14:49:35 -05:00
sim_console.h Common code: various bugfixes; Mac "Classic" and OS/2 support has been removed 2023-01-31 14:49:35 -05:00
sim_defs.h SCP: Move .git-commit-id.h to where used 2023-10-24 12:48:38 -04:00
sim_disk.c DISK: Do not allow to emit any "footers" 2023-10-24 16:26:26 -04:00
sim_disk.h DISK: Add SET NOAUTOSIZE - disable autosize when attaching existing containers 2022-02-14 15:06:34 -08:00
sim_ether.c ETHER: Add stub for clean compiles when building without network support 2022-09-19 12:17:48 -07:00
sim_ether.h ETHER: Increase the number of potential interfaces to 40 2023-04-02 12:37:38 -10:00
sim_fio.c FIO: Properly bound byte swap activity when reading on big endian hosts 2022-03-18 12:09:17 -07:00
sim_fio.h FIO: Add support to expand filename/path to a list of filenames 2022-02-06 11:04:39 -08:00
sim_frontpanel.c FRONTPANEL: Avoid theoretical potential buffer overrun 2021-01-30 22:46:17 -08:00
sim_frontpanel.h FRONTPANEL: sim_frontpanel API release 12 2018-01-12 10:07:15 -08:00
sim_imd.c sim_imd: Resolve warnings. 2023-04-01 07:01:08 -07:00
sim_imd.h sim_imd: Reconcile license with open-simh. 2022-10-09 09:10:27 -07:00
sim_rev.h SCP: Move .git-commit-id.h to where used 2023-10-24 12:48:38 -04:00
sim_scsi.c 3B2-700 Initial Public Release 2022-09-15 14:15:28 -07:00
sim_scsi.h 3B2-700 Initial Public Release 2022-09-15 14:15:28 -07:00
sim_serial.c SERIAL: Find more serial port names on Unix, remove unused ioctl code 2022-01-12 12:25:43 -08:00
sim_serial.h TMXR: Properly announce attach connection on serial lines when -V option is set 2017-10-30 18:24:19 -07:00
sim_sock.c SCP: Add'l memory sanitization fixes 2024-02-01 12:50:52 -05:00
sim_sock.h SOCK: Add support for parsing and evaluating Access Control Lists 2022-02-04 07:58:09 -08:00
sim_tape.c Common code: various bugfixes; Mac "Classic" and OS/2 support has been removed 2023-01-31 14:49:35 -05:00
sim_tape.h TAPE: export sim_tape_error_text 2022-03-14 15:28:39 -07:00
sim_timer.c TIMER: Properly report clock calibration inconsistency 2023-06-18 13:10:47 -04:00
sim_timer.h TIMER: Run simulator pre-calibration for a minimum of 100ms 2020-11-18 14:47:42 -08:00
sim_tmxr.c SCP: Coverity inspired changes 2022-03-06 02:11:57 -08:00
sim_tmxr.h SCP: Add command argument passed into library unit test routines 2022-02-07 04:21:16 -08:00
sim_video.c Memory sanitizer fixes 2023-07-16 16:35:58 -04:00
sim_video.h AltairZ80: Adds SOL20 and VDM1 devices 2023-03-19 16:47:38 -04:00
SIMH-SG.md Initial descriptive files for Open SIMH 2022-05-30 14:38:25 -04:00
SIMH-V4-status.md Fix UTF-8 encoding for five files 2023-03-30 09:31:06 -04:00
vcpkg.json CMake: Bump project version to 4.1.0 2023-07-31 13:04:33 -04:00

Open SIMH machine simulator

This is the codebase of SIMH, a framework and collection of computer system simulators.

SIMH was created by Bob Supnik, originally at Digital Equipment Corporation, and extended by contributions of many other people. It is now an open source project, licensed under an MIT open source license (see LICENSE.txt for the specific wording). The project gatekeepers are the members of the SIMH Steering Group. We welcome and encourage contributions from all. Contributions will be covered by the project license.

The Open SIMH code base was taken from a code base maintained by Mark Pizzolato as of 12 May 2022. From that point onward there is no connection between that source and the Open SIMH code base. A detailed listing of features as of that point may be found in SIMH-V4-status.

PLEASE NOTE

Do not contribute material taken from github.com/simh/simh unless you are the author of the material in question.

Coverity Scan Build Status