Commit graph

470 commits

Author SHA1 Message Date
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
Peter Schorn
0f6bcb9682 SIMH: Fix spelling errors in comments and strings 2024-07-11 12:29:53 +02: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
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
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
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
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
Patrick Linstruth
3b4333dfcc ALTAIRZ80: Adds JAIR devices to simulator
Josh's Altair/IMSAI Replacement (JAIR) is a single board computer
(SBC) for the S100 bus. I created this device to assist a friend
with getting IMP and CBBS working on his JAIR. Without having a
JAIR myself, AltairZ80 to the rescue!

The following devices are added:

JAIR   - The main JAIR board I/O and ROM
JAIRS0 - Serial Port 0 (COM1)
JAIRS1 - Serial Port 1 (COM2)
JAIRP  - Parallel Port

This was a bit challenging because the JAIR uses an on-board SD
card with FAT file system to hold its BIOS and CP/M disk images.
The ATTACH command is used to mount SD card images to the
simulator. The simulator emulates the SD card interface for
read/writing SD card sectors. These images are easily mounted on
a Mac making moving files around easy. I do not know about Windows.
These same images can be written to an SD card and used with real
JAIR hardware, which may be useful for JAIR owners.

The serial and parallel ports fully support TMXR. Host serial ports
and sockets may be attached to these devices.

I am working on a GitHub repository containing an SD card image and
init script that will boot CP/M 2.2 on the JAIR simulator.

Is this device one that should be added to AltairZ80?
2024-02-01 12:52:41 -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
Tony Lawrence
28354d99dc MAKEFILE: Use correct links to open-simh repo 2023-10-24 12:42:43 -04:00
Tony Lawrence
a8c5f7c88b PDP11: RP11-C (RP02/03) disk implementation 2023-09-22 19:41:33 -04:00
Tony Lawrence
f3e2c45d23 MAKEFILE: cleanup junk characters from 2c89387 2023-07-15 17:12:58 -04:00
Tony Lawrence
2c8938711c MAKEFILE: Move CYGWIN library search out of VIDEO section; sync compiler flags with MSVC 2023-06-18 13:08:03 -04:00
Lars Brinkhoff
af9c7b5ebc VAX: M7452 Unibus window module for VAXstation 100. 2023-05-04 13:28:11 +02:00
Howard M. Harte
15d2b89573 AltairZ80: Add IBC Super Cadet / Middi Cadet support. 2023-04-25 21:00:06 -07:00
Anders Magnusson
b40f7efde8 ND100: Initial support for Nord-100, implements the base instruction set.
Passes the test program INSTRUCTION-B.
2023-03-31 14:41:47 -04:00
Patrick Linstruth
cf9fac614c AltairZ80: Adds SOL20 and VDM1 devices
This PR adds support for the Processor Technology VDM-1 display adapter and Sol-20 computer system. The VDM-1 was integrated into the Sol-20 but has been separated out into its own device.

This PR adds the following devices to the AltairZ80 simulator:

VDM1 - Processor Technology VDM-1 display adapter
SOL20 - Processor Technology SOL20 with SOLOS ROMs
SOL20K - SOL20 Keyboard (callback from VDM1)
SOL20T - SOL20 Tape (reads/writes cassette file images)
SOL20S - SOL20 Serial Port (TMXR capable)
SOL20P - SOL20 Printer Port (TMXR capable)
2023-03-19 16:47:38 -04:00
Timothe Litt
cf45e06f65 Include Windows build in CI and deploy
- Builds x86 and x64 regular snapshots.
   x64: Mon      Wed     Fri
   x86:      Tue     Thu     Sat
   ARM: Mon          Thu         Sun (ARM not enabled)

 - Builds x64 on closed pull request, Release

 - Manual trigger allows selection of ref, platform,
   architecture, config, disposition

 - Releases and daily snapshots are deployed automagically

 - VS Project 2022 files updated for ARM, but not setup for
   cross-builds (BuildROMs) or tested on ARM (no hardware)

 - Fix makefile tests for cygwin
2023-02-26 22:22:01 -05:00
Jim Bevier
4e159a04ed SEL32: Add IPU device support using pthreads on Linux and Windows.
SEL32: Update makefile and SEL32.vsproj file to add IPU device.
SEL32: Update README.md file.
SEL32: Do a general code cleanup.
2023-02-07 20:30:54 -05:00
Bob Supnik
4562408a5f Common code: various bugfixes; Mac "Classic" and OS/2 support has been removed 2023-01-31 14:49:35 -05:00
Tony Lawrence
a06ab20512 TIMER: Support 1ms timer resolution in Cygwin 2022-11-23 11:24:31 -05:00
Patrick Linstruth
e2d422c2d3 AltairZ80: Add support for Morrow Micro Decision
Moved MMD and MMDM devices under Morrow Devices comment.
2022-11-23 11:22:51 -05:00
Howard M. Harte
70c2038d5c AltairZ80: Add DJHDC to makefile. 2022-11-15 12:21:58 -05:00
Howard M. Harte
4d84c563c2 AltairZ80: Add Tarbell Double-Density controller to makefile. 2022-11-15 12:21:58 -05:00
Mark Pizzolato
39d33c4cc9 makefile: Add WARNINGS=ALLOWED make option and change default optimize to -O2
The CI build specifies OPTIMIZE=-O3 and runs with the default where warnings
are converted to errors.
2022-11-05 16:45:48 -04:00
Paul Koning
d1e9358a63 makefile: don't use -fwhole-program
The GCC documentation explicitly says not to use that option
when -flto is used, and since that is the only place where
the makefile was using it, remove it to conform to the
documented rules.
2022-11-02 09:21:05 -04:00
Mark Pizzolato
9cfa212e60 makefile: Add OPTIMIZE= command option to change default from -O3 2022-10-30 17:12:05 -10:00
Mark Pizzolato
1792303a9e makefile: Make non debug builds with -O3 and LTO under gcc with -fwhole-program
- Add missing BUILD_ROMS dependency to pdp11 simulator.  ROMs don't change
  often so this usually didn't matter, but it should be a dependency.
2022-10-30 02:35:43 -10:00
Lars Brinkhoff
eb359b962f PDP11: Add MB11. 2022-10-29 14:15:41 -04:00
Lars Brinkhoff
6a384854cf PDP11: Add Logo TV raster display. 2022-10-29 14:15:41 -04:00
Mark Pizzolato
bf13a64d9e makefile: Add explicit option LTO=1 to enable Link Time Optimization builds
When building compiler optimized binaries with the gcc or clang compilers,
invoking GNU make with LTO=1 on the command line will cause the build
to use Link Time Optimization to maximally optimize the results.
Link Time Optimization can report errors which aren't otherwise detected
and will also take significantly longer to complete.
2022-10-28 15:15:59 -10:00
Mark Pizzolato
cfc59c517f makefile: Make gcc and clang warnings fail builds on compile warnings
This change allows CI builds to fail without detailed viewing of build output
for gcc and clang builds (all modern compilers).  Thus forcing PR submitters
to find these problems before PRs are merged.  This is done  by compiling
with -Werror for these compilers.

We don't know how to do this for other compilers which may be able to use
the makefile, so warnings there will still proceed to build successfully.
2022-10-26 10:57:52 -04:00
Lars Brinkhoff
65410851d5 PDP11: DH11 device. 2022-10-18 07:28:28 +02:00
Howard M. Harte
1110802bb1 AltairZ80: M68K: Changes for SIMH.
Build: Compiled with VS 2022, Clang, gcc.
Test: Boot and run CP/M-68K from: https://schorn.ch/cpm/zip/cpm68k.zip
2022-10-08 00:25:04 -07:00
Howard M. Harte
9fa55d0013 AltairZ80: M68K: Move Musashi to m68k directory.
The M68K CPU is from https://github.com/kstenerud/Musashi.  Move into
its own directory to facilitate easier synchronization with upstream
Musashi.
2022-10-08 00:24:49 -07:00
Paul Koning
110183e258 simh ui: replace "readline" by "editline".
This avoids infecting SIMH with the GPL license, since readline,
very surprisingly, is GPL rather than LGPL.

The replacement package is "editline", which has a useable license.
2022-10-01 16:38:55 -04:00
Mark Pizzolato
ca420668d7 makefile: Correct experimental/incomplete simulator list and add to CI build 2022-09-26 13:24:24 -10:00
Mark Pizzolato
060f55d23e makefile: Assure that besm6 simulator builds on recent macOS versions
Extend set of paths searched for font files since common fonts have
moved on macOS versions since besm6 simulator support was added.
2022-09-19 12:19:05 -07:00
B. Scott Michel
dc320a84da makefile: Adjust syntax of variable insertions for conversion to cmake 2022-09-19 12:18:30 -07:00
Seth Morabito
9b62da6567 3B2-700 Initial Public Release
This commit introduces dozens of changes to make the 3B2-700 simulator
fully functional and ready for wider use. In addition to 3B2-700
availability, this commit includes a tremendous amount of refactoring
of the 3B2-400 and common code to make the project structure easier to
maintain and reason about.

One final important change: ROM files are no longer included in the
source code. 3B2 ROM images must be obtained separately and loaded
into the simulator before boot.

Changes:

- The 3b2 target has been aliased to 3b2-400
- The formerly named 3b2-600 project has become 3b2-700
- SCSI QIC tape support has been added to sim_scsi.c
- Header files have been reworked to reduce complexity of includes
- Common code has been consolidated
- Timer code has been unified
2022-09-15 14:15:28 -07:00
Richard Cornwell
60d2eaf42b Updated Makefile and Visual Studio project to include extra devices on KL10. 2022-06-21 09:51:19 -04:00
Paul Koning
88ce8f7072 Merge remote-tracking branch 'origin/pr/5' 2022-06-11 15:30:52 -04:00
Lars Brinkhoff
2faf59733f Sample stub simulator. 2022-06-11 12:43:22 +02:00
Bill Beech
44428e53b6 SWTP6800: Update to simulators
- General cleanup of codebase
- Fixed condition codes m6800.c  from Roberto Sancho Villa
- Add additional FDC lfd-400 from Roberto Sancho Villa
- Add additional OS's (FLEX 1.0, FDOS 1.0, DOS68, MiniDOS, and MiniDOS-MPX)
  to software support
- Add additional disk formats to software support dc-4.c  from Roberto
  Sancho Villa
- Add CPU history
- Fix LOAD/DUMP to support binary and hex
- Fix fprintf_sym to disassemble 6800 code correctly
- Add EXAMINE/DEPOSIT to CPU Memory
- Fixed disasm to space the register
- Add SET_FLAG(IF) to IRQ – fixed error in handling IRQ from
  Roberto Sancho Villa
2022-06-09 14:28:04 -07:00
Mark Pizzolato
910bbc2d7e Unibus and Qbus VAXen: Add DUP-11/DPV-11 device
These devices start disabled and will be that way in essentially all
working systems, but there apparently was a DECnet Phase V
support for this device, so it is added to all systems. The DPV
should now be readily testable.

As mentioned in #1152.  That PR will fix the DUP device.

This commit is explicitly released from any license restriction
mentioned in the LICENSE.txt of the github.com/simh/simh
master branch changes.
2022-06-05 13:06:04 -07:00
Mark Pizzolato
87597ea7f4 makefile: Add imlac and tt2500 to the all target. 2022-03-05 04:34:46 -08:00
Mark Pizzolato
7aba63028c makefile: Remove include file from the SEL32 source file list 2022-03-04 09:06:23 -08:00
Mark Pizzolato
7c41688261 makefile: Report testing arguments at build startup 2022-03-03 17:41:54 -08:00
AZBevier
4991701ee6 SEL32: Add new SEL32 simulator. 2022-03-03 16:25:48 -07:00