IBM 701 Programmers Model

The IBM 701 had two programmer accessable registers. The Multiplier Quotient (MQ) and the Accmulator (AC). The AC contained two extra overflow bits to improve numeric accuracy. The machine use signed magnitude arithmetic, so S bit was sign.

IBM 701 Registers

Memory was access as either full word or half word. If the sign of the instruction was negative, access was to full word address. If it was positive, then it refered to either the right or left half of the word. The half word was adjusted so that it always occupied bits S,1-17 and the lower half was set to zero.

IBM 701 Memory

The machine had a total of 33 instructions. Each instruction was 18 bits long and was accessed via a half word operation. memory.

IBM 701 Instruction Format

The opcodes decode as follows:

NameNumericoperations
STOP0Stops the processor
TR1IC <- EA
TR OV2If overflow then IC <- EA
TR +3If AC > 0 then IC <- EA
TR 04If AC is 0 then IC <- EA
SUB5AC <- AC - (EA)
R SUB6AC <- 0; AC <- -(EA)
SUB AB7AC <- AC - |(EA)|
NO OP8No operation
ADD9AC <- AC + (EA)
R ADD10AC <- 0; AC <- (EA)
ADD AB11AC <- AC + |(EA)|
STORE12(EA) <- AC
EXTR-13(EA) <- (EA) & AC
STORE A+13(EA)<6:17> <- AC<6:17>
STORE MQ14(EA) <- MQ
LOAD MQ15MQ <- (EA)
MPY16AC,MQ <- AC * (EA)
MPY R17AC,MQ <- AC * (EA);RND
DIV18AC,MQ <- AC,MQ / (EA)
RND19If MQ bit 1 is 1 then AC <- AC + 1
L LEFT20AC,MQ <- AC,MQ shift left EA
L RIGHT21AC,MQ <- AC,MQ shift right EA
A LEFT22AC,MQ <- AC,MQ shift left EA
A RIGHT23AC,MQ <- AC,MQ shift right EA
READ24Start read on device EA
READ B25Start read backwords on device EA
WRITE26Start write on device EA
WRITE EOF27Write EOF on device EA
REWIND28Rewind device EA
SET DR29drum addr <- EA
SENSE30See below
COPY31See below

For COPY the EA indicated either the location to load the data word or the location to write the data word. Depending on whether the device was in read or write mode. COPY go to next instruction if data copy was successfull. It would skip on instruction on end of file or any error. And it would skip two instructions on end of record. Note all I/O operations destroy the contents of the MQ registers as this was used to assemble data from devices.

For READ, WRITE, etc I/O instructions the EA refered to the device to operate on:

DeviceOctalDecimalto
Drums200128131
Tapes400256257
Line Printer1000512 
Card Punch20001024 
Card Reader40002048 

A SENSE on a device would skip if the device had an error on it. Device codes 64 cleared the sense lights. Codes 65 to 68 set the corrosponding sense light. Codes 70 to 74 skiped if the corrosponding sense switch was set.

Read or write to drums required that the address to be modified be set with the SET DR instruction. Not issuing this would cause the drum to start at address 0. The address was incremented after each copy.