1 - Summarize repeated memory contents so that the memory range with a
given value only emits 2 lines of output
2 - Allow ^C (SIGINT) to potentially abort long running EXAMINE output
Discovered while getting standalone System Exerciser to run:
IO: DVT_NOTDEV macro incorrect, Device mapping algorithm creates false
dispatch points.
This mapped Multi Unit Controller and Single Unit Controller to same
device.
DP, DP, MT, RAD: Test for non-existent device returns wrong status.
DP, DK, MT: TIO status should return non-operational for unattached device.
Changing the CPU type or MEMORY size/configuration causes memory
resources mapped by other devices to be removed. This is not made
clear by "HELP CPU" and the user has no feedback that this is
happening.
This PR does the following:
1) HELP SET CPU shows that SET CPU MEMORY requires a value.
2) Feedback is provided if the value is omitted or not properly formatted.
3) Unmapped memory resources caused by a SET CPU command are displayed
on the SIMH console.
4) Adds a SET CPU RESIZEMEMORY command that resizes system memory
without unmapping other device memory resources.
Josh's Altair/IMSAI Replacement (JAIR) is a single board computer
(SBC) for the S100 bus. I created this device to assist a friend
with getting IMP and CBBS working on his JAIR. Without having a
JAIR myself, AltairZ80 to the rescue!
The following devices are added:
JAIR - The main JAIR board I/O and ROM
JAIRS0 - Serial Port 0 (COM1)
JAIRS1 - Serial Port 1 (COM2)
JAIRP - Parallel Port
This was a bit challenging because the JAIR uses an on-board SD
card with FAT file system to hold its BIOS and CP/M disk images.
The ATTACH command is used to mount SD card images to the
simulator. The simulator emulates the SD card interface for
read/writing SD card sectors. These images are easily mounted on
a Mac making moving files around easy. I do not know about Windows.
These same images can be written to an SD card and used with real
JAIR hardware, which may be useful for JAIR owners.
The serial and parallel ports fully support TMXR. Host serial ports
and sockets may be attached to these devices.
I am working on a GitHub repository containing an SD card image and
init script that will boot CP/M 2.2 on the JAIR simulator.
Is this device one that should be added to AltairZ80?
The Sol-20 provides 1K RAM at C800. This was discovered to be missing
when issuing a "SET CPU 24K" command. Without the CPU providing RAM
at C800, the Sol-20 would not function. This PR corrects the problem
by having the SOL20 device provide its own 1K RAM at C800.
- Make sure that asynchronous mode can't be changed if devices using
sim_ether are already attached.
- Add missing DEV_ETHER type flag for the only sim_ether using device
that didn't already have it.
I7010 updated to pass diagnostics.
I7080 updated to pass diagnostics.
I7090 updated to better pass 9IOT
updated to allow Stress and other applications to run better.
Updated card punch to allow input of card decks for overpunching.
- Without regard to whether the circular buffer data is otherwise in
use while instructions are executing.
- When a circular debug buffer is in use, avoid writing out the contents
with the periodic open file flushes and only do so on returns to the
sim> prompt and when debug is closed
A user observed that the TS11 would not run XXDP+, even though it ran
fine with the PDP11 operating systems, VMS, and XXDP V2. I traced this
back to a conceptual error in the implementation of some magtapes,
specifically the TS11, RH11/TM02-3, and the PDP10 TU45.
The issues is that beginning of tape, and being positioned in front of
the first record, are not necessarily the same. Following BOT, tape
drives record a ID burst If high density and an inter-record gap before
the first record. When the first record is read backwards or backspaced
over, the tape ends up at position 0 but should not show BOT. Most
simulated tape drives did this correctly, but a few used sim_tape_bot()
as a shortcut for BOT, and it's simply not correct.
BOT should be set at ATTACH, by a successful rewind, and by any reverse
operation when the tape is positioned in front of the first record.
BOT should be cleared by any successful movement operation, except
rewind.