1
0
mirror of https://github.com/simh/simh.git synced 2026-01-11 23:52:58 +00:00

141 Commits

Author SHA1 Message Date
Mark Pizzolato
912f421144 CONSOLE: Add general support for SET CONSOLE SPEED=nnn
The original SET CONSOLE SPEED=nnn was added to a allow direct wired
terminal connected to a host system serial port to be a simulator's console.
The current change generalizes all console I/O such that speed is a reliable
option for direct console connections as well as serial and telnet connections.

The simple recipe to get well behaved console output speed is:
1) call tmxr_set_console_units() in the reset routine of the console DEVICE.
2) In the code path that engages console output do something similar
    to this as appropriate for the system being simulated:
        void txdb_wr (int32 data)
        {
        tto_unit.buf = data & 0377;
        tto_csr = tto_csr & ~CSR_DONE;
        CLR_INT (TTO);
        sim_activate (&tto_unit, tto_unit.wait);
        }

3) In the output unit's service routine the console output unit's service
    routine do something similar to this as appropriate for the system
    being simulated:
        t_stat tto_svc (UNIT *uptr)
        {
        int32 c;

        c = sim_tt_outcvt (tto_unit.buf, TT_GET_MODE (uptr->flags));
        if (c >= 0) {
            t_stat r;

            if ((r = sim_putchar_s (c)) != SCPE_OK) {           /* output; error? */
                sim_activate (uptr, uptr->wait);                /* retry */
                return ((r == SCPE_STALL)? SCPE_OK: r);         /* !stall? report */
                }
            }
        tto_csr = tto_csr | CSR_DONE;
        if (tto_csr & CSR_IE)
        SET_INT (TTO);
        }
The almost all of the current simh simulators already are implemented
with logic like the above example.  These will work just fine with the
newly regulated console speed.
2025-06-24 09:57: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
bb6a21042e makefile: Add build support on Chimera Linux 2025-05-30 16:18:58 -10:00
Mark Pizzolato
4059e7d9f1 README: Update with current info 2024-04-06 12:54:59 -10:00
Mark Pizzolato
df96d1dbe1 SCP: Reject throttling setting when throttling was previously enabled 2023-10-13 09:37:20 -10:00
Mark Pizzolato
62c0daf8f8 README: Update with current info 2023-09-09 13:03:59 -10:00
Mark Pizzolato
2f1ab2ec6b DISK: Polishing various functionality 2023-08-30 06:17:35 -10:00
Mark Pizzolato
63028863e4 SCP: Default to dynamically loading LIBEDIT, LIBPCRE and LIBPNG 2023-07-27 06:28:53 -10:00
Mark Pizzolato
1e2c3efac0 APPVEYOR: Assure that build failures don't try to save binaries 2023-07-16 10:00:50 -10:00
Mark Pizzolato
9cdfb0cae3 MicroVAX I: Cleanup magic boot support for both MicroVMS and VAX/VMS 2023-07-09 21:45:38 -10:00
Mark Pizzolato
4cbaa13522 README: Correct Ubuntu/Debian build dependencies (Daichi Tamaki) 2023-06-27 13:55:17 -10:00
Mark Pizzolato
2156bf4192 README: Update current features 2023-06-27 13:23:53 -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
Bill Wenrich
28b3c67d05 README: Correct build dependencies for Fedora 2023-05-22 03:18:52 -10:00
Mark Pizzolato
d0a1b135a7 DISK: Make sure RAW device unload actually detaches from unit 2023-04-30 15:14:54 -10:00
Mark Pizzolato
ac8e5d23b8 README: Update current features
Revise windows-build dependency version
2023-01-09 15:45:08 -10:00
Mark Pizzolato
135e69c4a1 SCP: Add SET CONSOLE TELNET=CONNECT to open a window running telnet to console 2022-12-30 21:34:07 -10:00
Mark Pizzolato
4975fbe59c SCP: Document all simulator defined environment variables in help and sim_doc 2022-12-22 09:49:10 -10:00
Mark Pizzolato
adeba9f7a4 README: Update current status and setup instructions 2022-12-13 16:39:56 -10:00
Mark Pizzolato
0801e2e7d7 README: Add CI Badge for github Actions 2022-12-02 18:04:56 -10:00
Mark Pizzolato
2da54fbacd README: Update for current status 2022-11-27 12:23:03 -10:00
Mark Pizzolato
aa5304b7b4 README: Update to describe additional differences with open-simh 2022-11-07 10:56:37 -10:00
Mark Pizzolato
bff443b9b0 makefile: Add alternate build option to compile source files separately
Invoking make with BUILD_SEPARATE=1 on the make command line or
defined as an exported environment variable will cause simulator source
files to be compiled separately.  This option avoids long simulator build
times when actively developing changes or new modules to a simulator.
2022-11-05 12:24:56 -10:00
Mark Pizzolato
13677e83af README: Update with latest open_simh differences 2022-10-29 08:45:43 -10:00
Mark Pizzolato
46be5f5bf0 SCP: Reliably report useful help for HELP BOOT on all simulators 2022-10-21 12:20:53 -10:00
Mark Pizzolato
0de0359ad0 PDP11 and All VAXen: Support dynamic fetching of ROM or other boot code
Simulators built with DONT_USE_INTERNAL_ROM defined will not have hte
binary of the needed ROM or boot components build into the simulator
binaries.  However, they will automatically and transparently fetch the
neeeded ROM or boot code from the web when these binary files aren't
available locally.
2022-10-19 15:06:55 -10:00
Mark Pizzolato
0c2d33727b DISK: Extend documentation for metadata management
- Update README to describe differences with open-simh
- Allow SET NOAUTOSIZE and SET AUTOSIZE
- Document deprecation and possibly non functionality of MinGW
  Windows build support
2022-10-07 08:39:25 -10:00
Mark Pizzolato
5ccefb4163 DISK: Add AUTOZAP as a global and per unit option
This removes disk metadata on disk container files at detach time.
2022-10-02 18:32:35 -10:00
Mark Pizzolato
8bd8692384 README: Update open-simh differences and 0readme_ethernet.txt for correctness 2022-09-27 14:30:18 -10:00
Mark Pizzolato
6fe6b38228 PDP11: Add new device to support DL11-C/DL11-D/DL11-E/DLV11-J
These devices could coexist with KL11/DL11-A/DL11-B/DL11-E/DL11-F but sit
at different bus address locations.
2022-07-26 18:41:48 -07:00
Mark Pizzolato
8da65638df VIDEO: Avoid disabling screen saver until a video display is active 2022-07-15 07:37:17 -10:00
Mark Pizzolato
e246888e99 makefile, README: Update MacOS required libraries to include pcre 2022-07-14 18:40:12 -10:00
Mark Pizzolato
d8ebf7d25a README: Update to reflect current changes and Open SIMH differences 2022-07-07 08:18:21 -10:00
Mark Pizzolato
7b1d8fb34c README: Update to reflect current changes and Open SIMH differences 2022-07-01 09:41:00 -10:00
Mark Pizzolato
8eae7bb4a6 README: Update MacOS dependency information 2022-06-26 14:41:31 -07:00
Mark Pizzolato
b91a9d2bd6 README: Update to reflect current changes and Open SIMH differences 2022-06-16 18:20:54 -07:00
Mark Pizzolato
5448965f70 DISK: Add 2.11 BSD and Net BSD file system recognizers
Both NetBSD and OpenBSD have identical partition information
Report both names when such a file system is found
2022-06-15 15:51:18 -07:00
Mark Pizzolato
e0700d3b7c DISK: Add support for ISO 9660 file system detection
Any attach of an ISO 9660 file system is done Read Only since that
file system is logically non-writable.

Related to #1094
2022-03-19 17:18:54 -07:00
Mark Pizzolato
4d4a7b2fed README: Update to add Jim Bevier's SEL32 simulator 2022-03-03 17:45:31 -08:00
Mark Pizzolato
66c737d12f README: Add Richard Cornwell's new PDP10-KS simulator 2022-02-28 07:18:12 -08:00
Paul Koning
5cd1e8b7ac TMXR, PDP11, PDP10, VAX: Add DDCMP sync framer support
This adds support for the "framer" device, which is a USB-connected
device built around a Raspberry Pico that connects to a synchronous
line, either RS-232 or DEC "integral modem" coax connection.  It
implements the framing portion of DDCMP: clock recovery for the
integral modem case, byte sync, and DDCMP frame handling including
CRC.  The actual DDCMP protocol state machine, with its handling of
sequencing, timeout and retransmit, etc. is left to the host
software.  All the design files for the framer may be found at
https://github.com/pkoning2/ddcmp .

This commit adds code to drive the framer from the TMXR library,
allowing it to be used either from simulated DMC-11 or simulated
DUP-11 devices.  Both have been tested, using RSTS/E, RSX-11/M+, and
TOPS-20.

Fixed the one-digit limit on eth<n> device names, the limit is now 2.
2022-01-08 14:24:42 -08:00
Mark Pizzolato
c73474df8d README: Correct Ubuntu build dependencies
This is a trivial correction since if dependencies are missing at build
time what is missing is and how to fix it is properly described in
build time messages.

As reported in #1081
2021-10-06 23:38:08 -07:00
Mark Pizzolato
730af85397 README: Add missing file system detection type 2021-08-17 15:20:39 -07:00
Mark Pizzolato
60a3c52e12 README.md: Clarify wording relating to building with MinGW32
As reported in #1039
2021-04-27 08:54:23 -07:00
Mark Pizzolato
dceadb393e SCP: Add internal & cross platform support for tar and curl commands 2020-10-20 02:50:34 -07:00
Roberto Sancho Villa
08027162ca I650: Update IBM 650 simulator to Release 4
- Integration with updated sim_card API
- Addition of MT (Mag Tape) device
- Addition of DSK (Disk) device
- Build time simulator test
2020-05-15 05:57:01 -07:00
Author: Richard Cornwell
c686f75894 KA10: Added support for KL10A/B. 2020-03-09 23:07:47 -07:00
Mark Pizzolato
7581b92f9d SCP: Add a RUNLIMIT command to bound simulator execution time 2020-01-08 11:49:22 -08:00
Mark Pizzolato
56ed67e2bf Visual Studio Projects: Provide a command line VS build procedure
Similar to the build_ming.bat procedure which will invoke MinGW to
biuild siimulators, this procedure will rebuild all of SIMH simulators using
Visual Studio.

If this procedure is not invoked from a Developer Command Prompt
then the VS2008 tools are preferred if VS2008 is installed,
otherwise the installed Visual Studio tools will be used
prefering newer Visual Studio versions over older ones.

If this procedure is invoked from a Developer Command Prompt
then the tool chain provided with the command prompt is used
to build the simh projects.

A single argument to this procedure may be the word Debug, which
will cause Debug binaries to be build rather than the Release
binaries which is the default.
2019-12-21 09:37:51 -08:00
Lars Brinkhoff
65c098ed1c Windows CI build on AppVeyor. 2019-09-17 09:27:10 +02:00