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

5010 Commits

Author SHA1 Message Date
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
Mark Pizzolato
8746040310 Visual Studio Projects: Force build to update to the latest windows-build
- windows-build now supports the latest Visual Studio 2017
- Temporarily Disable Appveyor logic saving build results until that's ready
2025-05-31 18:29:18 -07: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
Mark Pizzolato
af2a0f7caa VIDEO: Build cleanly if PNG support isn't available 2025-05-11 18:15:47 -10:00
John D. Bruner
729502aa9d SCP: treat SIGTERM and SIGHUP as equivalent 2025-05-09 19:55:09 -07:00
Mark Pizzolato
8b597d32aa Visual Studio Projects: Force build to update to the latest windows-build
windows-build now supports Visual Studio 2022 17.13.6
2025-04-26 18:33:07 -10:00
Peter Kooiman
ef8f4f53a2 simulators with global variables PC, SP and BC: Avoid name space collisions.
Avoid potential name space collision for the global variables PC, SP and BC
when readline is dynamically loaded.  For some unknown reason, ncurses
exports these internal variables which may be needed in the context of
how ncurses is used by readline implementations.  In any case, these
variable names are common in simulators, so there is an undesired
interaction between simulator internal variables and the simplest
solution is to rename these simulator global variables where they exist.
Another alternative is to merely declare these variables static when
they happen to only be referenced in a single simulator source module.
2025-04-09 13:56:27 -10:00
Mark Pizzolato
dab8053cf8 Non Unibus and Non Qbus VAXen: Fix error message in boot ROM device support 2025-04-06 23:45:06 -10:00
Mark Pizzolato
dd82ea0851 Non Unibus and Non Qbus VAXen: Properly handle the boot ROM device support
- Previously the Option ROM device (OR) logic improperly used the UNIT
  UNIT_ATT flag to indicate a devices with Option ROM support.  This
  bit has specific meaning to many SCP capabilities while there are
  numerous device specific fields in the UNIT structure which DEVICEs
  can use as needed.
- Enhance SCP SHOW output for Option ROM units to indicate the DEVICE
   which each enabled ROM is related to.

Fixes #1210
2025-04-06 14:17:54 -10:00
Mark Pizzolato
7222199448 Visual Studio Projects: Force build to update to the latest windows-build
windows-build now supports Visual Studio 2022 17.12
2025-03-28 09:11:21 -10:00
Mark Pizzolato
6ae1467470 SCP: Assure that sim_async_lock is always a recursive lock
This is needed for both the Intrinsic and basic pthreads cases.
2025-03-22 08:12:01 -10:00
Mark Pizzolato
33166dfcdf SCP: Fix potential multi threaded simulator activities when flushing log data
Avoid the potential by properly leveraging the range that the
recursive mutex which already properly serializes separate activities
to the debug log file.
2025-03-21 09:36:36 -10:00
Mark Pizzolato
fed5342f44 SCP: CONSOLE Cleanup and DBGSIGNAL help
- Add HELP language for SET CONSOLE DBGSIGNAL|NODBGSIGNAL.
- Remove obsolete sim_os_poll_kbd_ready platform specific routines
  which were only used with the never functional asynchronous TMXR
  code which has been otherwise removed everywhere else.
- Cleanup DBGSIGNAL related code comments

-
2025-03-20 17:12:50 -10:00
B. Scott Michel
474f84244d CONSOLE: Separate debug character from signal
Add the "DBGSIGNAL", "DBGSIG" options to enable sending the interrupt to
the user's debugger, which is presumably gdb.  Separates setting the
debugging interrupt character from the action so that it is possible to
turn debugger interrupts on and off:

     set console dbgint=1f dbgsignal
     set console nodbgsignal

Previously, this feature was only available if the compiler did not
define __OPTIMIZE__, which precludes optimized debugging code, i.e.,
compiling with "-O2 -g".
2025-03-20 16:29:35 -10:00
B. Scott Michel
0185df8fee CONSOLE: Remove Win32 console output overhead
Don't repeatedly call GetConsoleMode() on Win32 each time
sim_console_write() is called.

Use an output function pointer to invoke WriteConsoleA (console output)
or WriteFile (output is not a console). The console output destination
doesn't change during the lifetime of the simulator, so avoid
extraneous overhead for each character output (sometimes strings, but
mostly characters.)
2025-03-20 09:25:50 -10:00
Richard Cornwell
9b0d7a77d8 CONSOLE: On Windows fixed writing to Console when stdout is a file 2025-03-20 09:16:59 -10:00
Mark Pizzolato
bf83567e61 SCP: Add debugging support for shutdown activities 2025-03-18 17:14:02 -10:00
Mark Pizzolato
c4d3aadc68 TMXR: Make sure to add single line mux with a destination to open list 2025-03-17 14:51:11 -10:00
Patrick Linstruth
5cfa8662e9 AltairZ80: VDM1 correct boot code, IO addressing 2025-02-13 01:24:03 -10:00
Lars Brinkhoff
68034af94a H316: Convert IMP long leaders to short, and vice versa. 2025-01-30 11:45:05 -10:00
ken rector
389a8ade1f sigma: implement attention interrupt to sigma)mt.c 2025-01-30 12:24:29 -08:00
B. Scott Michel
fc03fd432e IMLAC: Type consistency warnings.
- Fix Type consistency warnings.
- CUR_AC -> AC (revert)
2024-12-09 09:54:25 -10:00
B. Scott Michel
b9553f672a TT2500: Debugging and reduce type slice warnings.
- Debug: Output the character received, if printable.
- Eliminate type slicing warnings (uint32 -> uint16)
2024-12-09 09:34:58 -10:00
Peter Schorn
9f595c066c AltairZ80: Support for disk images of Amstrad CPC 6128 with ULIfAC board 2024-11-26 07:43:03 -10:00
Mark Pizzolato
a6aaa0a84f ETHER: Add missing declaration when Ethernet support is unavailable 2024-11-11 20:10:50 -10:00
Mark Pizzolato
8b1f15f233 Visual Studio Projects: Force build to update to the latest windows-build 2024-10-25 20:15:27 -07:00
ken rector
0799544312 sigma: return corrrect CC on line disconnect 2024-10-25 17:24:02 -07:00
Mark Pizzolato
8469b30d85 Visual Studio Projects: Force build to update to the latest windows-build 2024-10-11 18:05:53 -10:00