Commit graph

35 commits

Author SHA1 Message Date
Trevor Warwick
24260f0613 QBus VAX and PDP11: Add support for HDLC framing to DUP11/DPV11
Fix minor formatting glitches and remove unused variable.
2022-08-04 16:46:56 +01:00
Trevor Warwick
1ab955be30 QBus VAX and PDP11: Add support for HDLC framing to DUP11/DPV11
This commit extends the existing DUP11/DPV11 support to add support for HDLC framing. There
is no requirement to support bit/byte stuffing, so the aim is simply to encapsulate/decapsulate
the datalink frame provided by the host driver.

DDCMP has been regression tested on VMS, RSX and TOPS20, and the HDLC mode was developed
and tested with VAX/VMS DECnet Phase V, only using the HDLC datalink implementation.

In theory this support is sufficient to allow Phase IV/V P.S.I and even VMS/SNA to be used,
but these remain to be demonstrated.
2022-08-03 10:38:17 +01:00
Trevor Warwick
2a38dd802b QBus VAX and PDP11: Add support for DPV11 in DDCMP mode
This commit extends the existing DUP11 support to add simulation for a DPV11 in DDCMP mode.

It has been tested with DECnet-VAX Phase V, which has the only host driver I know of. Note
that you may see a few CRC errors logged with high traffic levels, these are due to a couple of
bugs in the VMS driver, for which I'm looking at developing a patch.

Regression testing has been done on the DUP11 on VMS, RSX and TOPS20, which all seemed to work
as well as previously.
2022-06-14 18:32:12 +01:00
Trevor Warwick
6e0e5a714d PDP11 & Unibus VAX, PDP10: Fix DUP device support for use by internal KMC for TOPS-20
This fixes a regression caused by commit b41acb3
2022-06-07 17:16:21 +01:00
Trevor Warwick
775e2f1f79 PDP11, Qbus & Unibus VAX: Fix DUP device loopback on device reset
- When the DUP TXCSR DEVICE_RESET bit is set, which clears the MAISEL bits, any
existing tmxr loopback must also be removed.
2022-05-18 16:38:10 +01:00
Trevor Warwick
b41acb30c1 PDP11, Qbus & Unibus VAX: Extend DUP device for DECnet Phase V support
- This involves adding some trailing characters to received DDCMP frames
  to meet host driver expectations (simulation then behaves more like a
  real synchronous device). 1 SYN is enough for VMS, but RSX needs a few
  when there is no abutting frame.
- The VMS driver implements the CRC performance option in section 5.1.2
  of the DDCMP spec., and thus relies on receiving a valid character after
  the CRC on a received frame.
2022-05-16 18:18:26 +01: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
3bf02304da PDP11: Populate remaining internal device help from pdp11_doc.doc 2021-08-14 23:21:31 -07:00
Mark Pizzolato
0dfe18cd94 PDP11, PDP10: Silence Coverity warning in DUP device (KDP) 2019-10-20 23:48:05 -07:00
Mark Pizzolato
fa77969c57 All: Fix various Coverity complaints 2019-04-03 09:32:54 -07:00
Mark Pizzolato
009e5061e2 PDP11, PDP10: Fix DUP Modem signal change logic (COVERITY) 2017-03-10 11:55:30 -08:00
Mark Pizzolato
5531ccb175 ALL: Massive 'const' cleanup
These changes facilitate more robust parameter type checking and helps
to identify unexpected coding errors.

Most simulators can now also be compiled with a C++ compiler without
warnings.

Additionally, these changes have also been configured to facilitate easier
backporting of simulator and device simulation modules to run under the
simh v3.9+ SCP framework.
2016-05-15 15:25:33 -07:00
Mark Pizzolato
73d7aee71f SCP: Add printf style format argument validation for all functions which take printf arguments.
These include: sim_printf(), sim_messagef(), Fprint() and sim_debug().

Fix current use of these functions which had invalid arguments.
2015-10-09 04:12:25 -07:00
Mark Pizzolato
ef9d1adce1 PDP10, PDP11, VAX: const cleanup 2015-02-13 06:18:24 -08:00
Mark Pizzolato
549779fb10 PDP10, PDP11, VAX: Adjusted KDP, DUP and DMR/DMC devices to be better behaved when the simulated system is idling.
This may not completely fix the problem identified in issue #99, but it should help
2014-12-19 08:41:10 -08:00
Mark Pizzolato
74482ce448 PDP10, PDP11, VAX: Make sure that the DMC and DUP devices produce the right messages when an attach is attempted to an already attached line 2014-04-06 16:42:10 -07:00
Mark Pizzolato
b5d5ef7b56 PDP10, PDP11: Fix DUP device to properly activate polling on simulator startup (after reset) if any DUP devices are attached. 2014-04-02 13:08:48 -07:00
Mark Pizzolato
edb475fcc1 PDP10, PDP11, VAX: Fix DMC & DUP unit attach strings for multi-line device configurations. 2014-04-02 08:47:35 -07:00
Mark Pizzolato
6ce8d99cd8 SCP: Added generic output routine sim_printf to output to stdout and sim_log (and sim_deb when enabled)
The goals here being to simplify calling code while getting consistent output delivered everywhere it may be useful.

Modified most places which explicitly used sim_log or merely called printf to now avoid doing that and merely call sim_printf().
2014-03-28 08:20:05 -07:00
Mark Pizzolato
e81de979f6 PDP11, PDP10, VAX: Start device connection polling on device reset when any units are attached 2014-03-27 05:12:44 -07:00
Mark Pizzolato
fe005f7d36 PDP10, PDP11, VAX: Fix DUP and DMC devices which couldn't be disabled after having been enabled. 2014-03-19 02:06:10 -07:00
Mark Pizzolato
02cb5c2d88 Compiler suggested cleanups.
Mostly silencing noise warnings, but bugs were found in sim_console.c and pdp11_dmc.c
2014-02-14 17:07:45 -08:00
Mark Pizzolato
b1fb809210 PDP10, PDP11, VAX: Added the DDCMP corruption troll to the DDCMP layer and removed it from the KDP device.
Now all DDCMP capable devices KDP, DUP and DMC/DMR have access to packet corruption generation to simulate real world imperfect data lines for protocol testing.
2014-02-10 17:22:19 -08:00
Mark Pizzolato
9ab6c4d1c1 SOCKET: Extended TMXR packet capabilities to disable the Nagle algorithm when TCP packets transports are used. 2014-01-23 09:31:05 -08:00
Mark Pizzolato
55c5d20517 PDP10,PDP11,VAX: Addition of inter operable DUP11, DMC11 and KDP11 devices
This is the results of external KDP development activities.  The KDP side done by Timothe Litt and DMC and DUP by Mark Pizzolato

Additionally, other PDP10 updates from Timothe Litt
2013-11-25 07:00:17 -08:00
Mark Pizzolato
780adc3ca9 Added missing STRSYN from DDCMP dup setup 2013-06-02 16:08:06 -07:00
Mark Pizzolato
596cb3f580 Added needed DUP interfaces to allow use by KMC11/KDP. 2013-06-02 13:19:23 -07:00
Mark Pizzolato
486ef58595 Compiler warning cleanup 2013-06-01 23:04:45 -07:00
Mark Pizzolato
4d34547b05 Cleanup DUP11 implementation and refactor for shared use by another device (KMC11). 2013-05-31 11:58:09 -07:00
Mark Pizzolato
a61dec6544 Add initial sharable DDCMP support 2013-05-29 12:37:51 -07:00
Mark Pizzolato
27dac1ade2 Added rate limit support (SET DUPn SPEED=bps). 2013-05-29 05:33:51 -07:00
Mark Pizzolato
4ba152db79 Fix packet transmit overrun behaviors which caused DECnet circuit failures. 2013-05-28 17:35:49 -07:00
Mark Pizzolato
4019e670e0 Fixed CRC implementation, CRC state bit presentation and added register declarations 2013-05-28 12:18:32 -07:00
Mark Pizzolato
c3750e6444 Added logic to act on the state and transitions of the RCVEN bit of the receiver CSR. 2013-05-28 01:03:58 -07:00
Mark Pizzolato
89bd58a6fa Addition of DUP11 simulation to all Unibus simulators (PDP11, PDP10, and all Unibus VAXen) 2013-05-27 16:24:18 -07:00