Commit graph

439 commits

Author SHA1 Message Date
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
Mark Pizzolato
5b288b0d98 PDP11, VAX: Enhance help SET RQn FORMAT description 2014-09-29 03:08:59 -07:00
Mark Pizzolato
cad8bf1cfc Compiler suggested cleanups - Johnny Billquist 2014-07-23 13:59:51 -07:00
Mark Pizzolato
4c55f1af0c VAX: Make sure that Ultrix 1.X specific behaviors are only in effect with that OS 2014-07-17 10:04:40 -07:00
Mark Pizzolato
4d817f1deb VAX: Added support for the DEQNA device on Ultrix 1.x. Henry Bent observed that the deqna driver in this OS counted on older DEQNA firmware which automatically enabled interrupts after a software reset.
CPU Idle detection for this OS is now supported and the combination of SET CPU IDLE=ULTRIX-1.X and explicitly using a DEQNA device (SET XQ TYPE=DEQNA) will enable the automatic enabling of device interrupt generation.
2014-07-14 12:29:53 -07:00
Mark Pizzolato
e9b312f26a PDP11, VAX: Added Ethernet packet transmission throttling support to XQ and XU devices.
Migrated the XQ help to the hierarchical help model.  This is a work in progress which will eventually merge much from 0readme_ethernet.txt into the device help.
2014-06-06 15:03:31 -07:00
Mark Pizzolato
753e4dc925 PDP10, PDP11, VAX: Fix buffer leak while generating NAK messages 2014-06-03 12:09:43 -07:00
Mark Pizzolato
a6161c16b1 PDP10, PDP11, VAX: Fix out of order packet numbers after processing some NAK data. Also restart outgoing packet flow consistently if an output stall occurred. 2014-06-01 14:06:46 -07:00
Mark Pizzolato
959ebe7210 PDP10, PDP11, VAX: Fixed DMC/DMR DDCMP implementation to only send a single NAK when a data packet arrives out of order. 2014-05-31 13:26:46 -07:00
Mark Pizzolato
a8a0182f74 PDP10, PDP11, VAX: Fixed Sync Data corruption Troll to actually discard transmit packets which it thinks it wants to. 2014-05-31 13:24:49 -07:00
Mark Pizzolato
779e2437bd PDP10, PDP11, VAX: Fix DMC/DMR DDCMP implementation to not crash due to buffer exhaustion while generating NAK packets for missing packets. 2014-05-30 11:30:07 -07:00