Commit graph

449 commits

Author SHA1 Message Date
Mark Pizzolato
318dbb7aee PDP11: Add descriptions to DL and PCLK devices 2015-12-29 10:00:44 -08:00
Mark Pizzolato
ea4d9a16a4 PDP11, VAX: Add a small delay when the receiver is enabled.
Buggy device driver code exists which enables the receiver before
properly establishing receive buffers.  That code worked most of the
time on real hardware since it was hard for the device to receive a
packet and try to deliver it before the driver actually setup the receive
buffer descriptor list.  Discussion in #220.
2015-12-22 05:21:50 -08:00
Mark Pizzolato
619e33466b PDP11, VAX: Move DZ input character silo into device to properly rate limit received data
Previously, the input silo was modeled by using the pending input data in
the TMXR line buffer.  This was fine when bps rate limiting wasn't happening.
In order to properly pace arriving data from multiple lines the silo is now
implemented in a way which more precisely reflects the original hardware.
2015-12-19 11:42:26 -08:00
Mark Pizzolato
9f7a66a7a2 PDP11: Fix Unibus boot of RSX-11M+ systems from RQ devices
The RSX-11M+ boot driver expects a slower response from the simulated
UDA50 controller.  This response is only in during the MSCP initialization
sequence, so normal protocol interactions  for read and write I/O are
unchanged.  Updated value determined by John Forcast.  Fixes #216.
2015-12-17 06:38:31 -08:00
Mark Pizzolato
de0d251c75 TIMER, SCP: Change the sim_activate_after APIs to pass the delay value as uint32.
Also change all sim_defs.h structure declarations and references of sim_
structures to use the typedef names everywhere.
2015-12-10 06:33:59 -08:00
Mark Pizzolato
109c197faa PDP11, VAX: Remove visibility of internal DZ unit structure. 2015-12-08 03:43:37 -08:00
Mark Pizzolato
d370cb1400 PDP11, VAX: Add reasonable output character delay before DZ interrupt generation. 2015-12-07 18:49:45 -08:00
Mark Pizzolato
88dde792b7 PDP11, VAX: Add device debug help information descriptions 2015-12-06 18:01:20 -08:00
Mark Pizzolato
fc001cad1f VAX, PDP11: Fix DZ device to also regulate input speeds when data is arriving on multiple lines. 2015-11-29 08:28:15 -08:00
Mark Pizzolato
0938d31e59 PDP11, VAX: MUX input rate limiting works correctly with input arriving on multiple lines concurrently. 2015-11-28 12:49:54 -08:00
Mark Pizzolato
f60390ce89 Compiler suggested cleanup
Cast the results of unit pointer subtraction to int so it can be printed with a %d format specifier.
2015-11-25 05:21:55 -08:00
Mark Pizzolato
62e36241a4 PDP11, VAX: Support multiplexer input speeds greater than 9600bps for console, DZ, VH, DL and DC devices
Each of the speeds greater than 9600bps deliver a character in less than
1ms.  Computing inter-character delays in microseconds therefore can't
be precise enough to be well behaved.  Measuring the inter-character
delays in instructions (scalled by the calibrated clock) gets us the needed
precision.
2015-11-25 04:25:21 -08:00
Mark Pizzolato
972b3fccbb PDP11, VAX: Fix DZ and VH devices to have input rate limiting align with the programmed port speed. 2015-11-23 07:21:32 -08:00
Mark Pizzolato
833ba71c3b PDP11, VAX: Enhance VH, DZ, DL and DCI devices to provide input rate limiting. Fix #246
Data arriving on simulated serial ports can arrive faster than the OS running
on the simulated system can deliber it to user mode programs.  This happens
when chunks of data are delivered to the mux from a network connection.
This can be due to a file transfer program (kermit) running on the other end
of a network connection and the packet size being delivered exceeds the
simulated OS's type ahead buffer size OR from users who paste arbitrary
blocks of data into a telnet or console session.
2015-11-19 08:56:06 -08:00
Mark Pizzolato
9b45833687 VAX, PDP11: Add support to, by default, limit console input data to about 9600bps.
This is necessary to avoid kernel type ahead buffer overruns when a user
pastes a chunk of data into a console session as described in issue #246

Other console input speeds can be set with SET CONSOLE SPEED=nnn
2015-11-18 10:51:37 -08:00
Mark Pizzolato
ab8151cdcc Compiler suggested cleanup 2015-10-15 14:19:03 -07:00
Mark Pizzolato
6bf92de3db All VAX: Also return correct Unibus/Qbus vectors for devices with more than one vector. Fix #241 2015-10-14 13:12:51 -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
ed57f061e2 All VAX: Always return the correct Qbus/Unibus interrupt vector bits for all devices. Fix #239
Vector values contained in device information blocks are the true bus relative vector values.  CPU specific biased vector values are produced by the respective vector fetching logic and vector values are limited to 9 bits with <1:0> = 0 as specified in both the Unibus and Qbus documents.
2015-10-08 04:43:21 -07:00
Mark Pizzolato
a6c5e7e632 VAX, PDP11: In the TU tape simulator, correct the wording of the help language. Fixes #228 2015-09-23 06:35:54 -07:00
Mark Pizzolato
9f59823ae3 PDP11, all VAX: Add TU58 device simulator with support for 32 drives plus the VAX 730 and 750 console devices 2015-09-22 15:06:12 -07:00
Mark Pizzolato
176540f639 PDP11, VAX: Correct MSCP & TMSCP register access debug output to mention correct register names and data being written on register writes 2015-09-08 11:17:52 -07:00
Mark Pizzolato
8bb494036c PDP11: Add provision in the DL device simulation to support bursts of input data to avoid reporting character overruns on the serial port.
Overruns can happen on simulated MUX lines using TCP since multiple characters can arrive in a single network packet.  Overruns still are reported if previous input characters haven't been read within 500ms.  Edmund Marr reported this problem.
2015-09-03 05:09:19 -07:00
Mark Pizzolato
77152c6e20 MUX: Fix for connection establishment logic for virtual null modem connections.
Test case provided by Ed Marr using PDP11 DL devices.
2015-08-18 09:52:49 -07:00
Mark Pizzolato
fa407e678b PDP10, PDP11, VAX, MUX: Fix allowed line attach syntax to accept UDP in any order among attach arguments 2015-05-23 17:08:51 -07:00
Mark Pizzolato
29fe0e6c8d PDP10, PDP11, VAX: Fix DMC/DMR attach setup when UDP transport is used. 2015-05-23 05:24:23 -07:00
Mark Pizzolato
47e61b5bdd PDP11: Adjust I/O wait time so that reasonable behavior occurs under heavy I/O load. 2015-05-22 07:48:04 -07:00
Mark Pizzolato
230e588b5d ALL: Merge with Supnik-Current 2015-05-10 06:05:11 -07:00
Mark Pizzolato
41978eca80 All: Convert from C runtime library perror() to sim_perror so that all messages will arrive in the same place(s). 2015-04-03 19:56:37 -07:00
Mark Pizzolato
66dba79418 ALPHA, ALTAIR, AltairZ80, I7094, NOVA, PDP1, PDP10, PDP11, PDP18B, PDP8, SAGE, sigma, swtp6800, TX-0, VAX: Change tabs to spaces which had crept in over time 2015-03-30 10:24:24 -07:00
Mark Pizzolato
cc442a85cc PDP11: Avoid console input buffer overrun when polling for new console input 2015-03-27 04:11:53 -07:00
Mark Pizzolato
4da7f5e028 PDP11: FP fix from Bob Supnik: MMR1 does not track register changes (Johnny Billquist) Fix #44 2015-03-26 14:32:34 -07:00
Mark Pizzolato
26ef9b566a PDP11, VAX: const cleanup 2015-02-21 12:48:35 -08:00
Mark Pizzolato
e768629009 SCP: Added the capability for EXAMINE command output to be written directly to a socket. 2015-02-21 12:40:36 -08:00
Mark Pizzolato
ef9d1adce1 PDP10, PDP11, VAX: const cleanup 2015-02-13 06:18:24 -08:00
Mark Pizzolato
1fb209c275 SOCKETS: Cleanup, simplify and extend the sim_sock API set.
Cleanup/Simplification by:
	1) removing irrelevant master flag variable from sim_close_sock and thus sim_err_sock
	2) change previous boolean feature arguments (datagram, nodelay, reuseaddr) to flag bits in a single option argument.  This allows for features to be added by new flag bits which don't change the calling signatures.
	3) changed all status returns to be int (vs t_stat) with success being 0 and error being -1
	4) removed unneeded simh specific type references to allow sim_sock to be used by n
Extended API by providing flags to influence socket setup/behavior:
	SIM_SOCK_OPT_REUSEADDR	Retains prior behavior when sim_switches had -U set
	SIM_SOCK_OPT_DATAGRAM	UDP socket setup provided for when prior datagram argument was specified
	SIM_SOCK_OPT_NODELAY		TCP Nagle disable provided for when prior nodelay argument was specified
	SIM_SOCK_OPT_BLOCKING	Blocking socket mode (detault is non blocking)
2015-02-11 09:41:18 -08:00
Mark Pizzolato
0bf40c2777 VAX, XQ: Removed unneeded variable declaration which caused linker warning using icc compiler 2015-02-11 06:37:57 -08:00
Mark Pizzolato
8cbe4ba0bd VAX: Properly inline memory reference functions for performance. Fix #169 2014-12-31 13:25:49 -08:00
Mark Pizzolato
7256e0908c PDP11: Simplified idle call logic to leave the idle decision to sim_idle().
Removed the unused references to wait_enable which the comments suggest was related to an old style idle.
2014-12-19 08:45:47 -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
18daed6551 PDP11, VAX: Enrich the debug output for the TS device simulation. 2014-12-14 13:14:05 -08:00
Mark Pizzolato
368a5f6998 PDP11, VAX780: Fix DEUNA handling of incoming packets which are dropped into multiple receive buffers.
Make sure to properly support multiple receive buffers by correctly setting the data length read and the appropriate buffer descriptor status bits for each buffer descriptor that is used to hold a packet.
2014-11-12 14:28:27 -08:00
Mark Pizzolato
2b81dd4710 PDP11, VAX: Fix DEQNA emulation to properly indicate receive buffer length for the last segment when dropping incoming packets into multiple buffer descriptors. 2014-11-11 17:32:51 -08:00
Mark Pizzolato
235ce92ff2 PDP11: Correct proper boot support for PDP11 devices when booting via a Remote Console Master session 2014-10-28 10:19:39 -07:00
Mark Pizzolato
178116c978 PDP11: Added proper boot support for PDP11 devices when booting via a Remote Console Master session 2014-10-28 10:06:30 -07:00
Mark Pizzolato
c548b34772 Compiler suggested cleanups. 2014-10-27 17:14:28 -07:00
Mark Pizzolato
611a7e94f0 SCP: Added a Remote Console Master Mode.
This capability will allow a GDB RSB stub to be created to support dynamic debugging of code running in a simulator.

This capability will also allow a complete front panel emulation system to operate a simulator.

This capability is engaged in a simulator by:
     sim> set remote telnet=remoteconsoleport#
     sim> set console telnet=consoleport#
     sim> set remote master

Master mode will provide a TCP session which accepts SCP commands that allow full control of the simulator.
2014-10-26 15:15:31 -07:00
Mark Pizzolato
3256c10c77 General cleanup migrate to using sim_printf vs separate calls to printf and fprintf(sim_log). 2014-10-22 17:12:14 -07:00
Mark Pizzolato
3951ad2432 Cleanup of unneeded global extern declarations 2014-10-10 08:18:15 -07:00
Mark Pizzolato
9c5df04de4 PDP11, VAX: Make sure to initialize amount of data processed for incoming packets which get read into multiple buffer descriptors 2014-10-09 11:15:11 -07:00