- Add 1752 Drum support. Allow shared subroutines across interrupt levels. - Document and add sample scripts for customizing MSOS5.
215 lines
9.4 KiB
Text
215 lines
9.4 KiB
Text
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.
|