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.
For the 11, include 2 KMCs, 0 initially enabled
For the 10, include 1 KMC and 4 DUPs. The KMC is not initially enabled.
The -10 only supports 2 DUPs, but I have a small patch that will allow it to run 4.
- Reworked the pdp11_dmc implementation to use the TMXR library for network I/O.
- Removed the need for a Primary or Secondary mode describing a DMC line setup/operation.
- Added additional unit to perform I/O polling activities to the DMC and DMP/DMV devices.
- Added Modem status information describing the link state to the register information provided.
- Added a command out queue to pass status information to the host.
The modem change bits are specified to:
o Reset when RXCSR is read, on bus init and device reset.
o Set when modem signals change
This corrects the implementation. Previously, the change bits were both set and cleared whenever modem status was polled, which happens every dup_svc poll.
Add # units/devices to show iospace. For the devices that use units to represent multiple CSR allocations, that helps make sense of the table.
Correct the KDP and DMC autoconfigure table for the 11/VAX.
Correct the DMC device entries in pdp11_sys to match Mark's versions.
Make the card reader work on TOPS-10 and TOPS-20.
Augmented Image ECO was not implemented.
Simplify UI by defining commands for the various options/models emulated based on the simulator being built.
Document, and make the help conditional on model where that reduces clutter.
Deal with <CR><LF> reading ASCII files (file is opened 'rb' in scp's attach ; it shouldn't be.
Add translation support for DEC 026/029 full 7-bit ASCII, an ANSI standard & used by TOPS-10/20.
Deliver EOF at the correct time(s).
Preliminary support for update to card image spec being negotiated with the author.
Thanks to Ian Hammond, Lou Ernst, Malcolm Macloud, and Jack Rubin,
In addition, I've added the CAPS11 bootstrap into the emulator module, so no more toggle-in required.
Lou Ernst reported that RT11 V5 does not work with the TA11, even on real hardware. The simulated TA11 does work under RT11 V4; it's included in the stock FB monitor.
One anomaly with RT11 V4 - after writing files to CT0: and then doing a DIRECTORY, all the files lengths are 0. The files are there. I can type them and DIFF them against their source.
It does not fix the problem that MMR1 is not used for floating point instructions.
I don't know if I will fix the FP MMR1 problem. It does not seem to impact running software. It is consistent with the architecture spec - just not with the actual J11 implementation. The J11 microcode has a variety of exception exits for FP conditions, and I have to trace which ones invoke fix-up, and which do not.