Commit graph

69 commits

Author SHA1 Message Date
Mark Pizzolato
46500ec75e PDP11, Unibus and Qbus VAX: Fix character completion with differing line speeds 2020-02-18 14:51:59 -08:00
Mark Pizzolato
545c505f44 PDP11, Unibus and Qbus VAX: Fix VH interrupt delivery
- A hang during transition from DMA to programmed I/O.  Force
- Change to single character DMA operations before network transmit
2020-02-17 02:51:02 -08:00
Mark Pizzolato
e52d65d8e4 PDP11, Unibus and Qbus VAX: Properly identify line generating xmit interrupts
As mentioned in #782
2020-02-13 11:11:58 -08:00
Mark Pizzolato
6f1a01d6fa PDP11, VAX: Fix vh_rd debug register decode (Ed Marr) 2018-09-04 01:15:41 -07:00
Mark Pizzolato
2d35feb973 PDP11, VAX: Cause all VH lines to drop DTR on a master or bus reset
As mentioned in #609
2018-08-28 17:51:31 -07:00
Mark Pizzolato
2008f3f6ec PDP11, VAX: Avoid potential operator precedence confusion 2018-08-27 12:11:27 -07:00
Mark Pizzolato
6a015d3ef9 PDP11, all VAX: VH device modem signal fixup
As reported in #609
2018-08-24 14:33:04 -07:00
Mark Pizzolato
c833c933ed PDP11, all VAX: better manage VH input FIFO empty transition status (Ed Marr) 2018-08-16 15:30:39 -07:00
Mark Pizzolato
9316978403 VAX, PDP11: Silence Coverity identified VH warning 2018-08-04 08:25:32 -07:00
Mark Pizzolato
c7abd314d9 VAX780, PDP11 (all Unibus systems): Fix VH DHU11 device output activity
- Implement a per line transmit FIFO to properly reflect the DHU real hardware
- Output is rate limited based on the programmed port speeds
- Properly abort programmed output

As reported and discussed in #600 and #588
2018-08-02 12:53:26 -07:00
Mark Pizzolato
8b1a2ba759 PDP11, VAX: Leverage tmxr_txdone_ln() API to get best timing with multiple lines
Potentially affecting #587 #588
2018-07-12 10:16:39 -07:00
Mark Pizzolato
44bfd68a45 PDP11, VAX: Fix DMA output timing to properly track programmed speeds
Always start DMA activity when TBUFAD2 is written, either FAST (vh_wait/10)
or slow vh_wait.

Possibly related to #578 and #588 issues
2018-07-07 22:06:52 -07:00
Mark Pizzolato
aea7f208cf PDP11, VAX: Rework VH transmit start and completion timing
Programmed and DMA I/O now presents data into the line output queue and
schedules all refill and/or I/O completion in the unit service routine.
2018-06-23 11:37:01 -07:00
Mark Pizzolato
91bd90c368 PDP11, VAX: Change VH programmed I/O to consistently complete after delay
previously, programmed I/O was initiated and completed as the time it was
initiated.  Now that output is rate limited to the port selected speeds the
output buffer can fill and I/O be dropped when the buffer was full.  Now all
output is setup in the register write path and completed in the unit service
path.  A separate transmit service unit now performs all transmit I/O
completion activity.
2018-06-21 08:42:05 -07:00
Mark Pizzolato
7cd9b89546 PDP11, VAX: Fix VH output rate throttling as buffer fills
As reported in #588
2018-06-14 00:31:01 -07:00
Mark Pizzolato
f5ca960b82 TMXR: Disable ATTACH speed for devices which program port speed 2018-03-13 02:14:06 -07:00
Sergey Svishchev
2bf538f59c PDP11, All VAX: fix CID: 1415573, 1415452 "Operands don't affect result"
Character length of 5 is stored as 0.
2017-03-09 18:33:40 -08:00
Mark Pizzolato
7d432406b6 PDP11, PDP10, all VAX: General extern cleanup.
Remove explicit redundant extern declarations in source files that are
defined in processor include files.
2017-02-04 19:37:20 -08:00
Mark Pizzolato
8661cf1a06 PDP11, All VAX: Add bitfield decode for VH registers 2017-01-05 08:26:47 -08:00
Mark Pizzolato
3d159936c6 PDP11, All VAX: Added extended debugging options to the VH device 2017-01-03 12:57:12 -08:00
Mark Pizzolato
257738a4e0 PDP11, all VAX: Extend debug options to track timing activities 2016-12-24 09:52:05 -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
488e747886 PDP11, VAX: Assure that DMA output to non-connected lines completes normally
Also make all scheduled timing behaviors consistent and not performed by
the input polling unit which may have different scheduling characteristics
to reflect input speed rate limiting.
2016-03-30 09:59:09 -07:00
Mark Pizzolato
bcf6e288b2 PDP11, DH11, DHU11: Fix startup initialization delay in DHU mode
Excessive delay would be reported on Ultrix as:

     "Warning: DHU device failed to exit self-test"

As discussed in #296
2016-03-29 17:22:55 -07:00
Mark Pizzolato
88dde792b7 PDP11, VAX: Add device debug help information descriptions 2015-12-06 18:01:20 -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
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
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
dcbb89499e PDP11,VAX: Fix bug which scheduled the wrong unit when more than one VH device is configured, Fix #113 2014-02-14 11:21:42 -08:00
Mark Pizzolato
0e11dfea98 PDP11/VAX: Fix VH device to properly be displayed when the number of lines changes and to avoid problems in debug mode. 2014-02-04 11:29:25 -08:00
Timothe Litt
91c7d26095 SHOW IOSPACE, again
Show IOSPACE doesn't always get the number of devices right due to device creativity.

o The distinction between UNIT and DEVICE has blurred
o MUX devices merge several physical devices into one device/unit
o Dynamic device sizing has made things more volatile.

This edit solves the problem for SHOW IOSPACE by adding an (optional) word to the DIBs.
The word contains the amount of IO space consumed by each instance of the physical device that's being emulated.
E.G., if it's a DZ11, the device is the DZ11 module, or 8 lines, even though the MUX device may support 32.

This enables SHOW IOSPACE to determine the number of physical devices being emulated, which is what folks need when configuring software.  The word may have other uses - in a generic dynamic device sizing routine - which is why the amount of IOSPACE per device was chosen rather than the 'number of physical devices.'

The edit should not make any existing device regress.  If the new word (ulnt) is zero (not initialized), SHOW IOSPACE will default to the number of units in the device, or if there's no device (CPUs), 1 as before.  If it is present, the number of devices is the calculated as total allocation/allocation-per-device.

The edit updates all the devices that seem to require this treatment, and all the processors that define the UNIBUS/QBUS DIBs.
2013-07-11 15:39:15 -04:00
Mark Pizzolato
651780c481 Remove stray tab characters which crept in over time 2013-06-03 06:29:01 -07:00
Mark Pizzolato
76fccce27d Fix for Issue #53 for DC, DL, and VH multiplexer devices 2013-05-16 11:04:43 -07:00
Mark Pizzolato
d964df4eea Compiler suggested cleanups 2013-05-09 14:02:48 -07:00
Mark Pizzolato
9faef6ea89 Added separate debugging ability to trace line connect/disconnect activities to better debug virtual null modem cable activities. 2013-05-06 07:50:09 -07:00
Mark Pizzolato
56be3b060f Added register definitions and descriptions to the pdp11_vh device 2013-02-05 07:57:25 -08:00
Mark Pizzolato
610ecaaa93 Adding mode device help 2013-02-05 06:49:39 -08:00
Mark Pizzolato
28b90552b7 Revised all VAX simulator devices to have proper help information defined to make "HELP dev SHOW" and "HELP dev SET" most useful. 2013-02-02 16:29:38 -08:00
Mark Pizzolato
cbe11147fc Created a way for devices to have a description presentation routine and if it is supplied for its output to be visible with a SHOW SYSTEM command. Provided device description routines for devices used in the VAX simulators 2013-01-25 12:04:25 -08:00
Mark Pizzolato
e3207c2009 Compiler suggested cleanups 2013-01-23 05:07:44 -08:00
Mark Pizzolato
57cbb6fe0c Changed to use sim_clock_coschedule and sim_activate_after where appropriate 2013-01-22 16:12:36 -08:00
Mark Pizzolato
83c1d80194 Merge branch 'master' into AsyncTmxr
Conflicts merged and missing changes in new modules added as needed for clock co-scheduling.
2013-01-21 16:52:42 -08:00
Mark Pizzolato
d12bc07d3a Fix clang compiler identified typos 2013-01-15 10:58:09 -08:00
Mark Pizzolato
e1ad710821 Added imbedded help to the pdp11_dz and pdp11_vh devices 2013-01-15 10:20:32 -08:00
Mark Pizzolato
7f57ce2c88 Added help context to pdp11_dz and pdp11_vh 2013-01-10 13:37:31 -08:00
Mark Pizzolato
7b6f7a9871 Set device flags indicating DEV_DISK, DEV_TAPE, DEV_MUX and DEV_ETHER for all simulator devices which use the sim_disk, sim_tape, sim_tmxr, and sim_ether libraries 2013-01-07 12:47:24 -08:00
Mark Pizzolato
b2ed63f31a Removed IOBA_FLOAT and replaced with IOBA_AUTO 2012-12-28 12:15:08 -08:00