blob: 4739c9ed4eb24913b8ec5054e7e81e720f6132d3 [file] [log] [blame] [raw]
CDC 1700 Simulator
==================
1. Overview.
The CDC 1700 was a 16-bit mini-computer produced by the Control Data
Corporation with deliveries beginning in May 1966.
2. Hardware
This simulator provides support for a subset of available peripherals,
mostly from the early period of its release:
device name Hardware
CPU 1714 CPU with 4KW, 8KW, 16KW or 32KW of memory
1705 Multi-Level Interrupt and Direct Storage Access
Bus
Optional extensions:
64KW of memory with indirect addressing changes
Character addressing option
RTC 10336-1 Real-time clock
Default tick interval is 10mSec, can be changed with
"set rtc rate=<rate>" command, where <rate> is
{1usec|10usec|100usec|1msec|10msec|100msec|1second}.
[ Equipment address: 0xD]
DCA Data channels providing DMA access to non-DMA
DCB peripherals. The configuration is currently fixed
DCC with DCA providing access to the magtape controller
if it is configured as a 1732-A.
TTI 1711-A Half-duplex console terminal.
TTO [Equipment address: 0x1, Station address: 1]
PTR 1721-A Paper tape reader
[Equipment address: 0x1, Station address: 2]
PTP 1723-A Paper tape punch
[Equipment address: 0x1, Station address: 4]
MT 1732-A or 1732-3 Magtape controller, 3 9-track drives
(MT0 - MT2) and 1 7-track drive (MT3). The type of
the controller may be changed using the command
"set mt type={1732-A|1732-3}". The 1732-A controller
supports 200, 556 and 800 BPI on the 9 track drives
and allows DMA access via a 1706 Buffered Data
Channel (device DCA). The 1733-3 controller supports
556, 800 and 1600 BPI on the 9 track drives and
includes DSA (DMA) access built into the controller.
Access via a 1706 Buffered Data Channel is not
available.
[Equipment address: 0x7]
LP 1740 or 1742-30 Line printer (Upper case only). The
type of the printer may be changed with the command
"set lp type={1740|1742}; The 1742-30 is compatible
with the 1742-120 but not allow the print train
configuration to be loaded by software.
[Equipment address: 0x4]
DP 1738-B Disk pack controller. Supports up to 2
disk pack drives:
853 drive - 3072000 bytes
854 drive - 6236160 bytes
[Equipment address: 0x3]
CDD 1733-2 Cartridge disk pack controller. Supports up to
4 cartridge disk drives. Each drive supports a fixed
and a removeable disk:
856-2 drive - 2260608 bytes
856-4 drive - 4543488 bytes
[Equipment address: 0x3]
DRM 1752 Drum memory controller with 64 - 1024 tracks of
drum memory (each track is 3072 words).
[Equipment address: 0x2]
Notes:
DP and CDD use the same equipment address so only 1 of them may be
enabled (default is for CDD to be enabled).
Both controllers use checkwords (CRC) for validating the consistency
of the data stored on disk. The DP controller exports a single status
bit indicating whether the checkword is valid or not (the simulator
always sets this to valid). The CDD controller also exports a single
status bit which is handled in the same way as the DP controller.
It also makes the actual checkword value available. The simulator
always returns a checkword value of 0 so any attempt to verify the
checkword (such as some diagnostics) will fail.
3. Loading Software
The simulator implements 2 mechanisms for loading software which
follow the hardware mechanisms provided by the real hardware:
- Magtape bootstraps toggled in through the front panel
- Autoload mechanism for disk drives
3.1 Magtape bootstraps
Software may be loaded from a magtape drive by using the SIMH command
"boot mtx" (currently only drive 0 is supported) which loads an appropriate
bootstrap into memory. This bootstrap loads the next record from the tape and
starts execution of the loaded code.
3.1.1 Default bootstrap
The default bootstrap is used for loading operating system distribution
tapes and is loaded at location 0. Register A is set according to the amount
os memory installed in the system:
- 0x5000 if 32KW or greater is installed
- 0x4000 if 24KW or 28KW is installed
- 0x2000 if less than 24KW is installed
3.1.2 SMM17 bootstrap
SMM17 is the System Maintenance Monitor and uses a tailored bootstrap
which is loaded into the highest addressed 4KW module installed in the system.
The following switches may be used with the "boot" command for special
handling:
-S load the SMM17 bootstrap rather than the default bootstrap
-D configure the SMM17 bootstrap to use Buffered Data Channel #1
to access the magtape controller
3.2 Disk autoload
The autoload mechanism loads track 0 from logical drive 0 of a disk or
drum controller to memory location 0, it does not start execution of the loaded
code (some of the diagnostics code relies on this). DP, CDD and DRM controllers
support the autoload command ("autoload dp", "autoload cdd" or "autoload drm")
which is normally followed by a "run 0" command to start execution of the
loaded code.
4. Operating The Simulator
4.1 CPU
The control panel of a physical CDC 1700 system has a number of
switches which control the operation of the CPU. In the simulator, these
switches can be turned on and off with the commands "set cpu xxx" and
"set cpu noxxx". By default, all the switches are off.
4.1.1 Selective Stop (set cpu sstop/nosstop)
The Selective Stop switch controls how the "Selective Stop (SLS)"
instruction executes. If the switch is Off, SLS executes as a no-operation.
If the switch is On, SLS executes as a halt instruction. Continuing after
the halt causes the CPU to execute the instruction following SLS.
4.1.2 Selective Skip (set cpu sskip/nosskip)
The Selective Skip switch controls how the SWS and SWN skip
instruction execute. SWS will skip if the switch is set and SWN will skip if
the switch is not set. Both the Selective Stop and Selective Skip switches
are used extensively to control execution of the System Maintenance Monitor.
4.1.3 Protect (set cpu protect/noprotect)
Each word of memory on the CDC 1700 series consists of 18-bits; 16-bits
of data/instructions, a parity bit (which is not implemented in the simulator)
and a program protect bit. If the Protect switch is Off, any program may
reference any word of memory. If the Protect switch is On, there are a set of
rules which control how memory accesses work and when to generate a program
protect violation - see one of the 1700 reference manuals on bitsavers.org for
exact details.
The simulator fully implements CPU protect mode allowing protected
operating systems such as MSOS 5 to execute. It does not support peripheral
protect operation which allows unprotected programs to directly access
some unprotected peripherals.
Operating systems and other programs which run with the Protect
switch on usually start up with the Protect switch off, manipulate the
protect bits in memory (using the CPB/SPB instructions) and then ask the
operator to set the Protect switch on.
4.2 Teletype
The console teletype on some of the earlier models of the CDC 1700
series had a "Manual Interrupt" button so that the operator could get the
attention of the operating system. Later models used a display terminal and
used the "Control+G" key conbination to generate a Manual Interrupt. The
Simulator follows this convention of using the "Control+G" key combination.
The actual key combination may be changed by issuing the command
"deposit tti intrkey xx" where xx is desired key code in hex.
5. Software
There is some software available at bitsavers.org in the
bits/CDC/1700_Cyber18 directory, see CDC1700-Diagnostics.txt and
CDC1700-MSOS.txt for more details.
6. Cyber-18
The CDC 1700 later morphed into the Cyber-18 series. This series
included an enhanced instruction set using unused bits from the 1700
instruction encoding. The simulator can detect these instructions and can be
configured to stop if it tries to execute such an instruction
(set cpu debug=enhanced). Due to a lack of detailed documentation it it
unlikely that the enhanced instruction set will ever be completely implemented.