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=" command, where 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.