IBM 701 Simulator Usage
01-Jan-2007
Copyright © 2007, Richard Cornwell
Copyright © 1993-2007, Robert M Supnik
COPYRIGHT NOTICE and LICENSE are at the end of this document.
Contents
- Introduction
- Simulator Files
- IBM 701 Features
- Stop conditions
- CPU
- I/O Channel (CH)
- Peripherals
- Symbolic Display and Input
- Sim Load
- Character Codes
- COPYRIGHT NOTICE and LICENSE
Introduction
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.
Simulator Files
To compile the IBM 701, you must define USE_INT64 and I701 as part of the compilation command line.
Subdirectory | File | Contains |
---|---|---|
I7000 | i7000_defs.h | IBM 7000 simulators general definitions |
i701_defs.h | IBM 701 simulator specific definitions | |
i7000_chan.c | Generic channel interface. | |
i701_cpu.c | 701 CPU, Channel, interface | |
i701_chan.c | 701 Channel. | |
i701_sys.c | 701 System interface | |
i7090_cdr.c | 711 Card reader | |
i7090_cdp.c | 721 Card punch | |
i7090_lpr.c | 716 Line printer | |
i7090_drum.c | 733 Drum memory interface. | |
i7000_mt.c | 729 Tape controller |
IBM 701 Features
The IBM 701 simulator is configured as follows:
Device Name(s) | Simulates |
---|---|
CPU | 701 CPU with 2KW of memory |
CH | 701 Channel Device |
MT | 729 Magnetic Tape Controller |
CDR | 711 Card Reader |
CDP | 721 Card Punch |
LP | 716 Line Printer |
DR0 | 733 Drum |
The LOAD command will load a card binary image file into memory. An octal dump file, or a pseudo assembly code.
Stop conditions
The 701 simulator implements several unique stop conditions:
- undefined CPU instruction
- divide check on a divide and halt instruction
- write select of a write protected device
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
I/O Channel (CH)
The channel device on the 701 is only used by simulator, and has no controls or registers.
Peripherals
Card Reader (CDR)
The card reader (CDR) 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 CDR FORMAT=TEXT Sets ASCII text mode
SET CDR FORMAT=BINARY Sets for binary card images
SET CDR FORMAT=BCD Sets for BCD records
SET CDR FORMAT=CBN Sets for column binary BCD records
SET CDR FORMAT=AUTO Automatically determines format.
or in the ATTACH command:
ATTACH CDR file Attaches a file
ATTACH CDR -f <format> <file> Attaches a file with the given format.
ATTACH CDR -s <file> Added file onto current cards to read.
ATTACH CDR -e <file> After file is read in, the reader will receive an end of file flag.
The card reader can be booted with:
BOOT CDR 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 |
721 Card Punch (CDP)
The card reader (CDP) 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 CDP FORMAT=TEXT Sets ASCII text mode
SET CDP FORMAT=BINARY Sets for binary card images.
SET CDP FORMAT=BCD Sets for BCD records.
SET CDP FORMAT=CBN Sets for column binary BCD records.
SET CDP FORMAT=AUTO Automatically determines format.
or in the ATTACH command:
ATTACH CDP <file> Attaches a file
ATTACH CDP -f <format> <file> Attaches a file with the given format.
Error handling is as follows:
error | processed as |
---|---|
not attached | report error and stop |
OS I/O error | report error and stop |
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 line-printer output.
SET LP LINESPERPAGE=n Sets number of lines per page on printer.
The Printer supports the following SPRA n selection pulses for controlling spacing (spacing occurs before the line is printed):
SPRA | Action |
---|---|
SPRA 1 | Slew to top of form. |
SPRA 2 | Single space. |
SPRA 3 | Double space. Before printing line. |
SPRA 4 | Triple space. Before printing line. |
SPRA 9 | Suppress linefeed after print. Prints characters 73-120 |
SPT | Will skip if any printer line has been pulsed. |
Default with no SPRA is to single space before printing.
Error handling is as follows:
error | processed as |
---|---|
not attached | report error and stop |
OS I/O error | report error and stop |
729 Magnetic Tape (MT)
These come in groups of 10 units each. MT0 is unit 10.
Each individual tape drive support several options: MTA used as an example.
SET MT*n* REWIND Sets the mag tape to the load point.
SET MT*n* LOCKED Sets the mag tape to be read only.
SET MT*n* WRITEENABLE Sets the mag tape to be writable.
SET MT*n* LOW Sets mag tape to low density.
SET MT*n* 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 MT*n* Read in first three words of record.
733 Drum (DR)
Up to 16 units can be attached to the CPU, all are on pseudo channel 0. Each drum is 2048K words in size. They are all stored in one file.
SET DR0 UNITS=n Set number of units to of storage to attach.
Drum unit 0 can be booted with:
BOOT DR0n Read in first three words of record.
Symbolic Display and Input
The IBM 701 simulator implements symbolic display and input. These are controlled by the following switches to the EXAMINE and DEPOSIT commands:
-m Display/Enter Symbolic Machine Code
-c Display/Enter BCD Characters
<none> Display/Enter Octal data
The symbolic input/display supports 1 format for instruction display:
- <opcode>,<sign><octal address>,<opcode>,<sign><octal address>
A negative address specifies the lower 18 bits of the given memory location.
Sim Load
The load command looks at the extension of the file to determine how to load the file.
Ext | Load action and format |
---|---|
.crd | Loads a card image file into memory. Standard 709 format + 1 card loader. |
.oct | Loads an octal deck: address <blank> octal <blank> octal... |
.sym | Loads a 709 symbolic deck. |
address instruction.. address BCD string address OCT octal octal |
Character Codes
This is the mapping between character codes used by the simulator:
COPYRIGHT NOTICE and LICENSE
The following copyright notice applies to the SIMH source, binary, and documentation:
Original code published in 1993-2007, written by Robert M Supnik
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 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 names of the authors shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization from each author.