To: Users From: Richard Cornwell Subj: IBM 701 Simulator Usage Date: 01-May-2006 COPYRIGHT NOTICE The following copyright notice applies to both the SIMH source and binary: Original code published in 1993-2007, written by Robert M Supnik Copyright (c) 1993-2007, Robert M Supnik IBM 701 simulator written by Richard Cornwell Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL ROBERT M SUPNIK OR RICHARD CORNWELL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. Except as contained in this notice, the name of Robert M Supnik or Richard Cornwell shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from both Robert M Supnik and Richard Cornwell. This memorandum documents the IBM 701 simulator. The IBM 701 also know as "Defense Calculator" was introduced by IBM on April 7, 1953. This computer was start of IBM 700 and 7000 line. Memory was 2048 36 bit words. Each instruction could be signed plus or minus, plus would access memory as 18 bit words, minus as 36 bit words. There was a expansion option to add another 2048 words of memory, but I can't find documentation on how it worked. Memory cycle time was 12 microseconds. The 701 was withdrawn from the market October 1, 1954 replaced by 704 and 702. A total of 19 machines were installed. 1. Simulator Files To compile the IBM 701, you must define USE_INT64 and I701 as part of the compilation command line. sim/ scp.h sim_console.h sim_defs.h sim_fio.h sim_rev.h sim_tape.h scp.c sim_fio.c sim_tape.c sim/i7090/ i7090_defs.h i701_cpu.c 701 CPU, Channel, interface i7090_chan.c i701_sys.c i7090_cdr.c 701 specific peripherals i7090_cdp.c i7090_lpr.c i7090_drum.c i7000_defs.h Generic 7000 peripherals. i7000_chan.c i7000_mt.c 2. IBM 701 Features The IBM 701 simulator is configured as follows: device simulates name(s) CPU 701 CPU with 2KW of memory CH 704 devices. MT 729 magnetic tape controller, channel A (required) CR 711 card reader CP 721 card punch LP 716 line printer DR0 733 drum The 701 simulator implements several unique stop condition: - undefined CPU instruction - divide check on a divide and halt instruction - write select of a write protected device The LOAD command will load a card binary image file into memory. An octal dump file, or a psuedo assembly code. 2.1 CPU Memory size is 2KW on a standard CPU. CPU registers include the visible state of the processor as well as the control registers for the interrupt system. name size comments IC 15 program counter AC 38 accumulator MQ 36 multiplier-quotient SW1..SW6 1 sense switches 1..6 SW 6 sense switches SL1..4 1 sense lights 1..4 ACOVF 1 AC overflow indicator DVC 1 divide check indicator IOC 1 I/O check indicator The CPU can maintain a history of the most recently executed instructions. This is controlled by the SET CPU HISTORY and SHOW CPU HISTORY commands: SET CPU HISTORY clear history buffer SET CPU HISTORY=0 disable history SET CPU HISTORY=n enable history, length = n SHOW CPU HISTORY print CPU history SHOW CPU HISTORY=n print first n entries of CPU history 2.2 I/O Channels (CH) The channel device on the 701 is only used by simulator, and has no controls or registers. 2.3 Peripherals 2.3.1 711 Card Reader (CR) The card reader (CR) reads data from a disk file. Cards are simulated as ASCII lines with terminating newlines. Card reader files can either be text (one character per column) or column binary (two characters per column). The file type can be specified with a set command: SET CR FORMAT=TEXT sets ascii text mode SET CR FORMAT=BINARY sets for binary card images. SET CR FORMAT=BCD sets for BCD records. SET CR FORMAT=CBN sets for column binary BCD records. SET CR FORMAT=AUTO Automaticly determines format. or in the ATTACH command: ATT CR attaches a file The card reader can be booted with the: BOOT CR loads first 3 words of card. Error handling is as follows: error processed as not attached report error and stop end of file out of cards OS I/O error report error and stop 2.3.2 721 Card Punch (CP) The card reader (CP) writes data to a disk file. Cards are simulated as ASCII lines with terminating newlines. Card punch files can either be text (one character per column) or column binary (two characters per column). The file type can be specified with a set command: SET CR FORMAT=TEXT sets ascii text mode SET CR FORMAT=BINARY sets for binary card images. SET CR FORMAT=BCD sets for BCD records. SET CR FORMAT=CBN sets for column binary BCD records. SET CR FORMAT=AUTO Automaticly determines format. or in the ATTACH command: ATT CP attaches a file Error handling is as follows: error processed as not attached report error and stop OS I/O error report error and stop 2.3.3 716 Line Printer (LP) The line printer (LP) writes data to a disk file as ASCII text with terminating newlines. Currently set to handle standard signals to control paper advance. SET LP NO/ECHO Sets echoing to console of lineprinter output. Error handling is as follows: error processed as not attached report error and stop OS I/O error report error and stop The Printer supports the following SPRA n selection pulses for controlling spacing (spacing occurs before the line is printed): SPRA 2 Single space. SPRA 1 To top of form. SPRA 3 Double space. SPRA 4 Triple space. SPRA 9 Suppress linefeed after print. SPT Will skip if any printer line has been pulsed. Defualt with no SPRA is to single space before printing. 2.3.4 729 Magnetic Tape (MTA) There are 10 tape devices. Each individual tape drive support several options: MTA used as an example. SET MTn ONLINE Sets the mag tape drive online. SET MTn OFFLINE Sets the mag tape drive offline and not ready. SET MTn REWIND Sets the mag tape to the load point. SET MTn LOCKED Sets the mag tape to be read only. SET MTn WRITEENABLE Sets the mag tape to be writeable. SET MTn LOW Sets mag tape to low density. SET MTn HIGH Sets mag tape to high density. Options: Density LOW/HIGH does not change format of how tapes are written. And is only for informational purposes only. Tape drives can be booted with: BOOT MTn 2.3.4 733 Drum (DR) Up to 16 units can be attached to the CPU. Each drum is 2048K words in size. They are all stored in one file. SET DR0 UNITS=n Drum unit 0 can be booted with: BOOT DR0 2.6 Symbolic Display and Input The IBM 701 simulator implements symbolic display and input. Display is controlled by command line switches: -c display as BCD character -m display instruction mnemonics Input parsing is controlled by the first character typed in or by command line switches: ' or -c BCD character " or -s BCD string alphabetic instruction mnemonic numeric octal number Instruction input uses standard 701 assembler syntax. There is one basic instruction classes, memory reference. opcode address