1
0
mirror of https://github.com/simh/simh.git synced 2026-01-13 15:27:14 +00:00

522 Commits

Author SHA1 Message Date
Mark Pizzolato
31c211c502 makefile: Remove redundant -lSDL2 library declaration from altairz80 build
Some environments don't complain, macOS has started to complain about
this.
2025-10-24 17:41:27 -10:00
Mark Pizzolato
16ee39a139 SAGE: Change various Intel part devices to unique names
This avoids potential filename confusion between simulators when
building with separate compiles.
2025-10-24 15:42:54 -10:00
Lars Brinkhoff
f5f2930712 LINC: New emulator for the classic LINC.
This emulates the classic LINC.  The design was settled in 1965,
increasing memory to 2048 words, and adding a Z register, an overflow
flag, and an interrupt facility.
2025-10-12 18:34:50 -10:00
Mark Pizzolato
1bce78cf38 makefile: Cleanup build issues on some macOS and Android 2025-10-10 22:30:55 -10:00
Mark Pizzolato
4562c3cf17 makefile: Tolerate host platforms which no longer package libpcre
- Also provide better support for termux builds on different Android
  versions.
2025-10-10 19:16:51 -10:00
Mark Pizzolato
46c6398912 makefile: Fix prompting of adding missing packages in some cases 2025-09-01 16:01:11 -10:00
Lars Brinkhoff
02ebdd38d5 PDP8: Add Type 34 display support. 2025-08-28 10:41:22 -10:00
Mark Pizzolato
caea0c0970 ETHER: Add vmnet support for macOS Catalina 10.15.7 through Big Sur 11.7.10 2025-08-14 08:55:49 -10:00
Mark Pizzolato
d0950d17ba makefile: Cleanup redundant pthread library and simplify auto installs 2025-07-31 05:41:24 -10:00
Mark Pizzolato
f3f1809352 makefile: correct dependent package names for OpenSUSE Linux 2025-06-18 17:11:48 -10:00
Mark Pizzolato
44aef3392e ETHER: Properly determine interface MAC address under vmnet APIs
- Avoid using vmnet when compiler is gcc since completion routines
  are a clang only feature
2025-06-08 08:58:33 -10:00
Mark Pizzolato
5f6eed2119 makefile: Fix typo only a problem with 'make besm6' or 'make all' 2025-06-07 02:21:49 -10:00
Mark Pizzolato
61fe27cb47 ETHER: Add Apple vmnet support when running on macOS
Base vmnet support covers bridged network interfaces and locally
accessible TAP network connections. These reflect the vmnet bridged
and host behaviors which are leveraged under the covers, but configured
using the original sim_ether commands.  The resulting bridged case
behaves like the Windows network connections do (with direct access
to and from the local LAN as well as the host system) using the natural
interface name.  NAT behaviors are specifically supported using the
original SLiRP code since the vmnet support depends on simulators
primarily getting IPv4 addressing via DHCP, but essentially no simh
simulators actually had OS network code which used DHCP and all
merely used static network address setup.  The vmnet (shared/NAT)
support can't be configured to operate with the same DHCP and static
IP addresses provided by the original SLiRP implementation and to
avoid the need to specifically change hard coded simulator IPv4
addresses before things could work.

- Detect which network interfaces are WiFi (when possible) and thus
  not useful candidates for bridging.
- Cleanly report when running as root is needed.
- Avoid allowing network connections to interfaces which aren't
  actually connected to a network.
- Add support to explicitly set TAP network host side network
  interface's IPv4 address and netmask.  This optional support is
  provided specifically for the Apple vmnet case, but not for other
  platforms using TAP network connections due to the various ways
  that must be handled with external commands.
- Add host system's IPv4 address, netmask, media type and connection
  state to interface descriptions visible via SHOW ETHERNET.
  Some system environments may have a significant number of potential
  network interfaces, most of which aren't interesting to connect
  simulators to.  Knowing which interfaces are actually in useful
  states helps users select the correct device.

The vmnet aspect of this functionality was originally inspired by
Calvin Buckley's pull request to the open-simh repository.  That
solution wouldn't actually operate well certainly for NAT cases due
to the forced DHCP to non-configurable address blocks and the lack
of any way to support static addresses TCP or  UDP port mapping.
2025-06-06 14:51:46 -10:00
Mark Pizzolato
0da98bcd50 makefile: Build cleanly when local language isn't English
gcc version determination only works reliably when language is set
to english.

Fix #1215
2025-05-31 06:44:55 -10:00
Mark Pizzolato
bb6a21042e makefile: Add build support on Chimera Linux 2025-05-30 16:18:58 -10:00
Mark Pizzolato
8bc2bfce93 makefile: Add baseline HomeBrew support for Apple ARM platforms 2025-05-12 16:13:26 -10:00
Ken Rector
5421c9c22e 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-07-29 10:10:17 -10:00
Mark Pizzolato
d2cd594cde PDP11: Integrate RR (RP11) device with full sim_disk capabilities 2024-07-20 15:08:19 -10:00
Peter Schorn
c7df248f09 SIMH: Fix spelling errors in comments and strings 2024-07-16 12:04:53 -10:00
Mark Pizzolato
ebe8fe80c9 makefile: support more robust builds under Android termux 2024-06-21 11:37:04 -10:00
Patrick Linstruth
318f44eda5 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-05-23 15:15:29 -10:00
Patrick Linstruth
a79fc59d06 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-05-23 13:08:43 -10:00
Richard Cornwell
bcf854ee10 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:02:00 -10:00
Mark Pizzolato
997952e712 ETHER: Add build support leveraging libpcap shared object without pcap.h
Some host systems come with the libpcap shared object installed.  If that
is the case, since the default build behavior is to dynamically load libpcap,
builds can now potentially avoid a forced install of the libpcap-devel package.
2024-04-17 11:12:42 -10:00
Mark Pizzolato
b22fb8eefa makefile: Add package install support for Linux systems that have dnf 2024-04-17 11:08:10 -10:00
Lars Brinkhoff
b1389741e5 VAX: Add UW device to 8600 and 8200.
The VAXstation 100 "unibus window" interface board should work with
any Unibus VAX.
2024-04-04 17:34:38 -10:00
Patrick Linstruth
d19d3f9b8d 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-03-20 08:38:08 -10:00
Mark Pizzolato
6d7dea6200 makefile: Add AUTO_INSTALL_PACKAGES build option
If running as root on most platforms or running on macOS with Home
Brew package manager, any missing packages for maximal simulator
functionality can be automatically installed during the build.
2023-08-20 08:18:14 -10:00
Mark Pizzolato
6bf717976b makefile: Isolate pthreads and png dependencies to binaries that need them
- pthreads are needed for network capable systems and video capable simulators.
- png is only needed for video capable simulators.
2023-08-12 15:33:31 -10:00
Mark Pizzolato
1d8a141b73 makefile: Remove errant message display and standardize all build options
All options which are currently and previously described in the comments
as allowing {option-name}=1 to enable, are now enabled if {option-name}
is defined to be anything at all,
2023-08-08 01:45:51 -10:00
Mark Pizzolato
412385f978 makefile: Add option to automatically run brew for missing dependencies 2023-08-05 08:02:24 -10:00
Mark Pizzolato
f9dedad627 makefile: curl needs to be actively installed on some platforms
- Make missing curl or tar visible in simulator environment variables:
       SIM_CURL_CMD_AVAILABLE
and SIM_TAR_CMD_AVAILABLE
2023-07-29 08:09:48 -10:00
Mark Pizzolato
63028863e4 SCP: Default to dynamically loading LIBEDIT, LIBPCRE and LIBPNG 2023-07-27 06:28:53 -10:00
Mark Pizzolato
9932fd1610 makefile: Add support for building on OpenSUSE Linux 2023-07-27 06:19:48 -10:00
Mark Pizzolato
2dc0d099f2 makefile: Robustly find simulator test scripts
First look in the directory the first dependent file is located in, if
not found, then look in the first simulator specific include directory.
2023-07-20 14:47:25 -10:00
Mark Pizzolato
329a0f815b AppVeyor: Multi-Platform Parallel build with artifacts with no GitHub actions 2023-07-04 21:04:56 -10:00
Mark Pizzolato
37bc857bf1 makefile: Add current support to build on Android Termux environments 2023-06-17 06:15:25 -10:00
Mark Pizzolato
972cd95914 PDP11: Add extra RPB device as an additional Massbus device
Note: To avoid potential breakage of existing PDP11 configurations in
       the wild, which may expect RP on RHA, TU on RHB and RS on RHC,
       RPB is connected to RHD Massbus adapter.

- More robust recovery when Massbus configuration errors occur
- More complete RH{A,B,C,D} help
2023-05-22 11:36:52 -10:00
Mark Pizzolato
6e7cf79eb3 VAX750, VAX780, VAX8600: Add Extra Massbus for New RPB disks 2023-05-22 11:03:39 -10:00
Peter Allan
ef0f49204e VAX780: Add an additional Massbus to support RPB 2023-05-22 10:37:26 -10:00
Mark Pizzolato
d36d900968 makefile: Fix regression that skipped running per simulator specific tests 2023-05-22 07:46:51 -10:00
Mark Pizzolato
6045fea046 makefile: Remove dependency on which command 2023-05-22 03:23:23 -10:00
Lars Brinkhoff
d573965024 VAX: M7452 Unibus window module for VAXstation 100. 2023-05-09 07:07:39 -10:00
Mark Pizzolato
bc5dcedf1d MicroVAX1: Remove DMA devices which weren't supported on MicroVAX I
Removed TQ (TMSCP), TS (TSV11) and VH (DHV11) devices from this
simulator since these devices were never supported in release MicroVAX I
configurations.

Lacking a scatter/gather map, DMA devices needed to be written to
perform DMA into contigous buffers in low memory and then copy data
to user space buffers.  The MSCP protocol devices had specific support to
do scatter/gather transfers as part of the protocol.  The RL01/RL02 device
driver was modified to perform the appropriate buffer moves most likely
to prove the customer option to adjust their drivers actually worked.  In
any case, boot support for RL01/RL02 disks does not exist.
2023-04-30 14:54:04 -10:00
Howard M. Harte
525a409a60 AltairZ80: Add IBC Super Cadet / Middi Cadet support. 2023-04-26 10:02:35 -10:00
Anders Magnusson
7e18863e03 ND100: Initial support for Nord-100, implements the base instruction set.
Passes the test program INSTRUCTION-B.
2023-04-02 13:09:59 -10:00
Patrick Linstruth
796a3e1abc 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-29 14:19:51 -10:00
Mark Pizzolato
c7d01273df SCP: Add CheckSourceCode facility to validate simh project standards 2023-03-04 17:51:49 -10:00
Mark Pizzolato
a27f4be593 makefile: Added capability for extended per simulator link options (LNK_OPTS) 2023-01-29 15:50:06 -10:00
Mark Pizzolato
cd40bb2820 makefile: avoid using the file function to read the Make.Info file. 2023-01-27 09:02:16 -10:00