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

5039 Commits

Author SHA1 Message Date
Sergey Svishchev
bcdc992cca VIDEO: handle error conditions and uninitialized displays when taking a screenshot. 2025-09-28 04:21:07 -10:00
Mark Pizzolato
b838d94282 SCP: Fix output produced when EXAMINE an array register
This problem was a latent bug introduced when summarized array register
output was added back in 2013 or 2018.

This fixes the problem reported in https://github.com/open-simh/simh/issues/499
2025-09-25 09:40:19 -10:00
Sergey Svishchev
45fe20a34b PDP11: Changes for Terak 8510/a simulator:
Accept devices mapped at IOPAGEBASE -- text buffer/character generator
memory on video board starts at 160000.

Clear invalid PSW bits in trap handler -- system acceptance test writes
PSW 113705 to vector 34 (TRAP instruction).
2025-09-12 10:23:51 -10:00
Richard Cornwell
dd31ce6e75 KA10: Update PI Panel to properly display the MI register. 2025-09-12 10:11:16 -10:00
Richard Cornwell
1673c85fc8 KA10: Update DD and TYM drivers to remove compile warning. 2025-09-12 10:09:04 -10:00
Mark Pizzolato
7619e27394 ETHER: Avoid theoretical buffer overrun defining SIM_ETHER_CAPABILITIES 2025-09-06 12:40:39 -10:00
Mark Pizzolato
46c6398912 makefile: Fix prompting of adding missing packages in some cases 2025-09-01 16:01:11 -10:00
Mark Pizzolato
ea37ca9ff5 SCP: Add a -F option to SET <dev> DISABLE command to force detach and cancel 2025-09-01 09:55:30 -10:00
Howard M. Harte
0bccaaab66 AltairZ80: wd179x: Better support for 5.25-inch floppies. 2025-08-30 21:14:48 -10:00
Lars Brinkhoff
4d57b9b44e Imlac: Add Freeway game to tests.
Paper tape image provided by Zachary Harper @sparky-z.
2025-08-30 21:05:58 -10:00
Lars Brinkhoff
5b07ac973e Imlac: Model MSB and LSB accumulators.
- Improve debug output.
- Add support for Alpha display processor.
   Details figured out by Zachary Harper @sparky-z from reading the
   listing "FREEWAY CROSSING PROGRAM".
2025-08-30 21:02:24 -10:00
Lars Brinkhoff
f9b39fb87f Imlac: Make display rate adjustable. 2025-08-30 21:00:34 -10:00
Lars Brinkhoff
64449f8950 Imlac: Better parsing of load switches.
"load -s" loads a "special tty" image file, just like a plain "load" will.
An unknown switch will raise an error.
2025-08-30 20:47:12 -10:00
Mark Pizzolato
716b8117e1 SCP: Add Regex comparison condition to the IF command 2025-08-30 20:09:08 -10:00
Mark Pizzolato
f4dbd05b59 CONSOLE: enable Log, and Debug to use caseindependent STDOUT and STDERR
- Avoid tmios debug output when not on macOS
2025-08-30 19:59:31 -10:00
Lars Brinkhoff
5c39a0d6e1 PDP8: Add the ICBM video game.
This is DECUS 5-277, a PDP-5 video game written by Len Berger, using
the Type 34 display.
2025-08-28 10:42:08 -10:00
Lars Brinkhoff
02ebdd38d5 PDP8: Add Type 34 display support. 2025-08-28 10:41:22 -10:00
Mark Pizzolato
b305252bff PDP11, VAX730, VAX750: Fix TU58 device support (TDC and console TD devices)
- Cleanup TD console device attach logic
- Properly initialize the TDC devices

Fix #1220
2025-08-28 08:46:48 -10:00
Mark Pizzolato
903bf30280 ETHER: Fixed hanging SHOW ETHER on some platforms 2025-08-15 18:15:24 -10:00
Prince-Stolas
ea3aaf7724 I1401: Reverted tape mark behaviour as revision was wrong
I talked to Van Snyder and he told me about this "fix" he wanted
introduced in SimH i1401. The fix was needed to get a program running.
The program not working was likely due to a transcription error, not
the emulator. That "fix" thus introduced a bug, this change fixes it..

The bug: Currently SimH i1401 doesn't deposit a group mark in core
memory after reading a tape mark. It only deposits the tape mark.
This is wrong. The tape mark should be followed by a group mark.
2025-08-15 17:06:51 -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
df31a5b7f9 CONSOLE: Fix DBGINT support for behaviors with gdb and lldb
Input of the WRU character reliably causes return from the running
simulator.

- DBGINT works with gdb as a debugger with the default being the next
  character after the WRU value.  ^F when WRU is default ^E.
- lldb does not support DBGINT signaling.  Only Control-C causes
  break back to lldb.

Currently, a bug in lldb exists that causes console character input of the
CR character (^M) to actually be received as LF (^J).  A bug report has
been submitted to the llvm project describing the problem.
2025-08-14 08:45:58 -10:00
Mark Pizzolato
9fbd3e222e SCP: Search for startup simh.ini in reasonable platform specific locations 2025-08-14 08:42:44 -10:00
Mark Pizzolato
fe8f7e4e46 NOVA, PDP18B, PDP8, PDP11: Some of the remaining changes from simh v3.12-5 2025-08-07 16:13:09 -10:00
Bob Supnik
ecc4df6e6d PDP11: MASSBUS controller clear vs rhwc register 2025-07-31 13:30:08 -10:00
Mark Pizzolato
d0950d17ba makefile: Cleanup redundant pthread library and simplify auto installs 2025-07-31 05:41:24 -10:00
Mark Pizzolato
4915cdb4a7 ETHER: Support older versions of vmnet on macOS 2025-07-30 18:14:45 -10:00
David Ellis
e8e900a3cd PDP11: Fix typo in SYSTEM DR register description 2025-07-26 17:12:48 -10:00
Mark Pizzolato
e300c26b4e ETHER: Properly close file during running as root check 2025-07-26 17:12:48 -10:00
Mark Pizzolato
18c594004e TMXR: Properly reference incoming socket in tmxr_close_master
A "ringing" (pending incoming) connection is only possible when a
listening socket exists.
2025-07-01 05:44:11 -10:00
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
e1d0f3b267 Visual Studio Projects: Force build to update to the latest windows-build 2025-06-18 17:14:06 -10:00
Mark Pizzolato
f3f1809352 makefile: correct dependent package names for OpenSUSE Linux 2025-06-18 17:11:48 -10:00
Mark Pizzolato
7bf227f02d ETHER: Properly report WiFi devices in SHOW ETHERNET output on Windows 2025-06-12 04:07:42 -10:00
Mark Pizzolato
0c46000d7a ETHER: Avoid another possible string truncation gcc warning 2025-06-08 16:05:25 -10:00
Mark Pizzolato
a212909a6c ETHER: Avoid possible string truncation gcc warning 2025-06-08 13:42:18 -10:00
Mark Pizzolato
41c11df753 CI/CD: Only run builds for now. Avoid saving build results. 2025-06-08 08:59:57 -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
Lars Brinkhoff
fd60c6b0f7 Imlac: Add support for Alpha display processor. 2025-06-06 03:00:51 -10:00
Lars Brinkhoff
02e63a1f97 Imlac: Improve debug output. 2025-06-06 03:00:51 -10:00
Lars Brinkhoff
8e0b432f1a Imlac: Model X/Y MSB and LSB. 2025-06-06 03:00:51 -10:00
Lars Brinkhoff
1c792f8309 Imlac: Set core memory size.
This adds new modifiers to the CPU device: 4k, 8k, and 16k.
2025-06-06 03:00:51 -10:00
Lars Brinkhoff
a3777d6235 Imlac: Add support for loading paper tapes.
"load -p" loads a paper tape image.
2025-06-06 03:00:51 -10:00
Lars Brinkhoff
7e6e3ba50c Imlac: Add support for load -s.
This loads a "special tty" image file, just like a plain "load" will.
2025-06-06 03:00:51 -10:00
Thalia Archibald
4f157b9318 PDP11: Document CIS register-form instructions
Only the string instructions document the registers used by the
register-form instructions. Also document the BCD register-form
instructions. Although, the operands have already been loaded into the
special-purpose instructions before the op switch, I think this
documentation is useful.
2025-06-06 02:56:55 -10:00
Thalia Archibald
f27e40130a PDP11: Fix L2DR and L3DR comments
These instructions are referred to as L2Dr and L3Dr in the PDP-11/24
System Technical Manual (https://www.vt100.net/manx/details/1,23) and
their opcode strings call them L2DR and L3DR. These comments seem to be
a simple typo.
2025-06-06 02:56:55 -10:00
Mark Pizzolato
b30465f779 IBM1130: Remove stray tab characters left in prior commit 2025-06-05 05:46:19 -10:00
Mark Pizzolato
f3c61c315a Visual Studio Projects: Force build to update to the latest windows-build
- windows-build now supports the latest Visual Studio 2022 17.14.3

Fix: #1216

#1216 reports problem with 17.14.2, but MS had already released 17.14.3
as of 5/28/2025, so that version is what is now supported.

This whole array VS2022 problems comes from the fact that Release
builds of certain static libraries are rejected at link time as
incompatible with those libraries produced by any prior Visual Studio
version.  This problem has existed for a very long time (going back to
at least VS2017).  The earlier strategy implemented with simh builds
was to not support the latest Visual Studio tool set until it stopped
changing.  That was sort of OK when Visual Studio versions changed
every 2 years, but since VS2022 was dragging on with frequent changes
support for intermediate versions was added some 3 years back.
2025-06-01 03:09:23 -10:00