Speedcoding (DRAFT)
February 9, 2025
This is a transcription of the manual for the Speedcoding interpreted high-level programming language, also known variously as Speedcode and SpeedCo I. This version is dated September 10, 1953. This was taken from a PDF scanned by the Computer History Museum. Their website also contains an earlier version of the same manual.
This manual is entitled IBM speedcoding system for the type 701 electronic data processing machines, INTERNATIONAL BUSINESS MACHINES CORPORATION.
Foreword
The IBM Type 701 Speedcoding System was designed to minimize the amount of time spent in problem preparation. It is applicable to small computing problems and to many large computing problems. Because programming for the IBM Electronic Data Processing Machines, Type 701 and Associated Equipment, is developing rapidly and because it is advantageous to make changes in the system easily and informally, this manual will be obsoleted fairly often, and new revisions published.
It is hardly possible to assign credit for the IBM Speedcoding System because the group in IBM which developed the system has benefited from the suggestions of so many. Historically, the ingenious development of general purpose systems for the IBM Card Programmed Calculator certainly influenced the basic thinking. Once the IBM 701 was announced, scientists concerned with preparing for these machines actively considered the problem of reducing problem preparation. Many useful and provocative ideas in this area were discussed in Poughkeepsie, New York, during the week of August 25-28, 1952, when representatives from the following organizations met to consider programming ideas: Boeing Airplane Company, Douglas Aircraft Company (El Segundo and Santa Monica), General Electric Company, International Business Machines Corporation, Lockheed Aircraft Corporation, Los Alamos Scientific Laboratory, National Bureau of Standards, U. S. Naval Ordnance Laboratory, U. S. Naval Ordnance Test Station (Inyokern), North American Aviation, Inc., United Aircraft Corporation, Bell Telephone Laboratories, RAND Corporation, U. S. Atomic Energy Commission. At that meeting there were specific discussions of systems analogous to Speedcoding.
The group at IBM which developed the Speedcoding System undertook to do so after discussing such systems with Dr. Willard Bouricius, head of the Type 701 Planning Group at Los Alamos Scientific Laboratory. This group, under the direction of Mr. Bengt Carlson, had completed a program with objectives similar to those of Speedcoding. Many discussions were held with Mr. Stuart Crossman's group at United Aircraft, particularly with Mr. Walter Ramshaw, whose assistance was extremely helpful in organizing and collating information and text.
Finally, appreciation is expressed to those at IBM who have been most closely associated with the Speedcoding project since its beginning in January, 1953. These are: Mr. John Backus, who supervised the project, Mr. Harlan L. Herrick, Mr. Donald A. Quarles, Jr., Mr. Sherwood Skillman, Mr. John Pulos, and Miss Lucy A. Siegel. The project was carried out under the general direction of Mr. John Sheldon.
Contents
- General Information
- Storage
- Computing
- Addition and Subtraction
- Multiplication
- Division
- Elementary Arithmetic Operations:
- Control
- Operations
- Elementary Mathematical Functions
- Input-Output Components
- Punched Cards
- Instruction Card Form
- Data Card Form
- Card Reader
- Magnetic Tape
- Writing on Tape
- Reading from Tape
- Tape Skipping
- Tape Rewinding
- Tape Status
- Magnetic Drums
- Loading Procedures for Lengthy Programs
- Printer
- Transfer Operations
- Transfer (
tr) - Transfer Plus (
trpl) - Transfer Minus (
trmn) - Transfer Zero (
trz) - Transfer Plus, Minus and Zero
- Sense and Transfer (
sntrp,sntrq) - Other Transfer Operations
- Transfer (
- Address Modification
- Transfer and Increase Operations
- Transfer and Decrease Operations
- Set RA, Set RB, Set RC
- Skip RA, Skip RB, Skip RC
- Examples Involving Address Modifications
- Address Counter
- Address Modification: General
- Combined Use of Address Counter and R-Quantities
- Checking
- Listing
- Timing
- Execution Time for OP1
- Execution Time for OP2
- Appendix
TYPE 701 SPEEDCODING SYSTEM
General Information
SpeedCo I is the name of a system—an integrated combination of a large-scale digital computer and a method by which that computer may readily be programmed to solve scientific and engineering problems.
The computer used is the IBM Type 701. Its internal high-speed memory on cathode-ray tubes will be referred to as the electrostatic memory. When the amount of storage available in the electrostatic memory is not large enough, magnetic drums are used to store and supply large blocks of information for ready access at frequent intervals. The drum memory is also capable of retaining its contents while the power is turned off, so that intermediate results remain available overnight when the machine is shut down. Any part of the information on the drums may be selectively altered by SpeedCo I at any time.
If a larger secondary memory is needed, or if information is to be filed away for future reference, magnetic tapes may be used instead of magnetic drums. Magnetic tape is a storage and input-output medium that provides compactness, allows rapid reading and writing, and can be re-used many times.
To achieve greater computing efficiency, the machine works internally in the binary number system. The user of SpeedCo I will find, however, that this fact does not in any way affect the programming. During SpeedCo I operation all numbers introduced into the machine and all results printed by the machine are expressed in the decimal number system. SpeedCo I automatically performs all necessary conversions between the decimal and binary number systems.
The programs may be written and introduced into the computer in various ways. Usually the instructions are key-punched on cards and read into the machine. If the program is to be preserved for future use, it can then be recorded on tape and filed away in compact form. To prepare the machine for calculation, the appropriate magnetic tapes are inserted in the tape units, and the cards containing the instructions and data of the problem are placed in the hopper of the card reader. Pushing a button then causes the machine to store the program and data of the problem and start calculating. From then on, operation of the computer is fully automatic, with all its components under complete control of the program, although it is possible for the operator to interrupt the calculation manually at any time.
The primary unit of information handled by SpeedCo I consists of 72 binary digits and is called a word.
Storage
Information may be stored in electrostatic storage, on magnetic drums, and on magnetic tape. The following description covers, in general terms, the nature and extend of each of these storage media.
Electrostatic Storage
The heart of the machine is the electrostatic storage unit, through which all information to and from all other components of the machine must pass. Electrostatic storage consists of a bank of cathode-ray tubes. Information is stored on the screens of the tubes through the presence or absence of charged spots at certain locations on the screens. In this way a certain number of binary digits (or bits) may be stored on each tube. SpeedCo I provides for 714 words of this sort of storage.
The principal advantages of electrostatic storage over other types are the very small time necessary to extract information from any given location and send it to the computing unit, and the fact that the programmer has random access to any electrostatic storage location. Information is lost when the power is turned off.
Magnetic Drum Storage
Additional storage capacity is provided by two magnetic drums. These drums are rotating cylinders surfaced with a material that can be magnetized locally. Binary digits are stored on a drum through the presence or absence of small magnetized areas at certain locations on the surface of the drum. Each drum has a storage capacity of 1024 words. Information is transmitted to and from drum storage only through electrostatic storage. When such a transfer of information occurs, the machine is said to write on or read from the drum.
Any part of the information on a drum can be selectively altered by SpeedCo I at any time. Because access to individual words on a drum is slow compared to electrostatic storage access, it is more efficient to use the drums for storing large blocks of information. After the first word of such a block has been located, the remaining words are read at the rate of 400 per second. Magnetic drums will retain stored information even when the power is turned off.
Magnetic Tapes
There is also a tape-storage section which includes four magnetic tape units. Each tape, which may be up to 1400 feet long, is wound on a reel. The tape itself is a non-metallic, oxide-coated band one-half inch wide. Binary information is recorded on tape by means of magnetized spots. A block of words recorded consecutively on a tape is called a record or a unit record. The amount of information contained on each tape depends on the lengths of the individual records, because there is a certain amount of space between successive records to allow for starting and stopping the tape. It is possible to store approximately 140,000 words on each tape. The machine can read or write on a tape only through the medium of electrostatic storage. On the average, about 10 milliseconds are needed for the tape to accelerate to its reading or writing speed, after which the reading or writing of a unit record takes place at the rate of 625 words per second. Because the tapes are removable, a library of standard programming and mathematical tables may be kept on tapes.
Computing
The numbers handled by SpeedCo I are expressed in scientific, or floating-point, notation. Every number read, stored, computed, or printed is of the form
where
All numbers that are of direct concern to the programmer (that is, all numbers read into or printed by the machine) are expressed in the decimal system. For these numbers the following relationships apply:
For less restricted input, see Appendix B
Note particularly that the absolute value of the decimal exponent of any quantity read into or printed by the machine may not be greater than 236. Any attempt to read or print an exponent that does not fall in this range will result in an automatic machine stop.
The fractional part
Numbers that do not come to the direct attention of the programmer (that is, numbers handled inside the machine) are expressed in the binary system. For these numbers the corresponding relationships are:
As has been pointed out above, the necessary conversions between the decimal information read into and printed by the machine and the binary information used inside the machine are performed automatically by SpeedCo I. Note, however, that SpeedCo I permits the binary quantities inside the machine a much greater magnitude range than is permitted those quantities to be converted to decimal and printed. In this connection the programmer should not attempt to print any quantity whose decimal exponent is larger, in absolute value, than 236.
It is important to note that because of the intrinsic error involved in
conversion from the decimal floating-point form to the binary floating-point
form, the programmer should not expect an exact correspondence between his
decimal input and the resulting binary numbers stored in the machine. For
example, the floating-decimal number with fractional part
Numbers are stored in the various memory organs of the machine as shown in Figure 1.
Because
| Bit Positions | Item |
|---|---|
| 1 | Sign of the quantity |
| 2 - 36 | Fractional part |
| 37 | Sign of the exponent |
| 38 - 54 | Exponent |
| 55 - 72 | These bit positions are not used |
Each portion of the electrostatic memory capable of storing a word is called a storage location or a memory cell. These locations are numbered. The number associated with any particular location is called its address. In SpeedCo I the 714 locations available to the programmer are numbered from 300 to 1013, inclusive.
In describing a program, it is frequently necessary to refer to a particular location in memory. These references are often conveniently abbreviated by referring merely to the address itself. For instance, the phrase "x is stored at a" is customarily used in place of the more precise phrase "the quantity x is located in that memory cell whose address is the integer a." The same phrase is often further abbreviated to:
Similarly, it is often necessary to refer to the word stored in a particular memory cell. This word is usually referred to as "the contents of a" or "the quantity at a" where in both cases the precise phrase abbreviated is "the quantity located in that memory cell whose address is the integer a." The symbolic abbreviation used here is:
To cause SpeedCo I to carry out a numerical calculation, the programmer must
supply four pieces of information. The first of these, referred to as
OP1 tells the machine which numerical operation it is to perform. The
second and third, designated
This information having been supplied, SpeedCo I then selects the two numbers
located at memory cells
The following paragraphs describe the elementary arithmetic operations in general terms. The actual methods and instructions necessary for performing these operations are explained later.
Addition and Subtraction
The addition operation is performed as follows.
The exponent at
The fractional parts are then added algebraically. Next the machine checks the
fractional part of the result. If the absolute value of this fractional part is
in the range equal to or greater than one-half and less than one, the fractional
part and the exponent are stored at
Subtraction proceeds in exactly the same way—except, of course, that the
fractional part at
Both addition and subtraction may also be performed, if the programmer so
desires, by using the absolute value of the quantity at
Multiplication
Two computations are performed. In one, the fractional part at
If this absolute value is equal to or greater than one-half, the product of the
fractional parts is then the fractional part of the product, and the sum of the
exponents is the exponent of the product. These numbers are therefore stored at
Two multiplication operations are available. The one forms the product with its correct algebraic sign. The other forms the negative of the product.
Division
Here also two computations are performed. In one, one-half of the fractional
part at
Two division operations are available. The one forms the quotient with its correct algebraic sign. The other forms the negative of the quotient.
If during any division operation the fractional part of the divisor happens to be zero, the calculator will stop and a signal light called the Divide-Check light will light up on the operator's panel.
Elementary Arithmetic Operations: General
Note that each of the above ten operations takes two numbers already expressed in the standard floating-binary form previously specified, performs upon them the desired elementary arithmetic operations, and then adjusts the result so that it, too, is in the standard form.
Note also that the result returned to memory by any one of these operations is not rounded—except in the case of division, where either a 35-bit or a 34-bit rounded quotient is obtained.
Control
SpeedCo I is a stored program system in which the programmer's instructions to the machine are all stored in the machine's memory before the calculation begins. The procedure leading to this result is:
-
The programmer analyzes his problem and breaks its solution down into the basic steps thatSpeedCo I can perform.
-
By means of an alphamerical code, determined by the design of SpeedCo I, he translates these steps into a form that can be interpreted by the machine. Each of these steps, which will here after be referred to as an instruction, is then stored in the machine's memory.
-
Data necessary for the solution of the problem are also stored in the memory of the machine.
-
Upon completion of this storing process, calculation automatically begins with the execution of the instruction which is at that time in electrostatic memory cell 300. From this point on the machine operates without any further intervention on the part of the programmer, automatically locating and executing all succeeding instructions of the program.
A complete analysis of the SpeedCo I instruction system follows.
Program Counter
The numerical representation of an instruction occupies the space of one word in memory. SpeedCo I instructions may temporarily be stored on drums or tape, but at the time they are to be used they must be in electrostatic storage.
A program contains a set of instructions, usually to be executed in sequence, which will cause the machine to compute a desired result. These instructions are ordinarily introduced into consecutively-numbered storage locations in the order in which they are to be executed. The reasons for this follow.
Each time an operation is to be performed, the machine looks up the instruction in electrostatic memory, executes it, and then goes back to the memory for the next instruction. The order in which instructions are executed is controlled by the program counter. This counter contains the address of the instruction currently being executed. After each execution, the number in this counter is automatically increased by one. Consequently, the machine automatically takes its next instruction from that electrostatic storage location whose address is one higher than the address of the cell from which the current instruction was obtained. In this way the machine continues to execute instructions in the sequence in which they were stored in memory.
This normal sequence of instructions can be altered by means of certain transfer operations explained below. By means of these operations, any electrostatic storage location from 300 to 1013 inclusive can be designated as the source of the next instruction. The transfer operation used accomplishes this result by placing into the program counter the address of the designated storage location. Following this, the machine looks up and executes the instruction in the designated memory cell; thereafter, execution of the program proceeds sequentially from this new electrostatic storage location. Under these circumstances, a transfer of control is said to have occurred.
An important observation about stored program technique should be noted. Instructions are stored in the machine just like numerical data; the only distinction between the two is the way they are interpreted by the machine. Hence the addresses that are part of SpeedCo I instructions may be modified while they are in the machine through the use of special operations. Thus, one part of a program may modify an other instruction of the same program by directing the machine to compute a new address, or new addresses, for the instruction to be modified.
A further consequence of the fact that both data and instructions are stored in the machine's memory in the form of binary words is that if, for any reason, a transfer operation enters the address of a piece of data into the program counter, the data at that location will be interpreted as if it were an instruction. Exactly what will happen when SpeedCo I attempts to execute this instruction is in general quite unpredictable, but certainly such misuse of a transfer operation is bound to result in erroneous calculations.
A further similar difficulty will arise if a transfer operation enters any address from 0 to 299 or 1014 to 1023 into the program counter. During SpeedCo I operation these electrostatic-storage regions are always occupied by a block of control information. If it were not for this control information, the 701 would operate under the guidance of its own built-in control circuits only, and would therefore behave as a fixed-point binary calculator. The combination of the built-in 701 circuitry and the control information (stored in electrostatic memory cells 0 to 299 and 1014 to 1023) enables SpeedCo I to read and print in the decimal system, to calculate on a floating-point basis and to perform those other SpeedCo I operations that are not part of the machine's built-in order code.
Because this control information has been stored in these electrostatic locations, it is necessary that SpeedCo I programs be so written as to use only those memory cells with addresses from 300 to 1013 inclusive. In particular, a transfer operation that enters any number not in this interval (300 to 1013) into the program counter, is always in error, since it will cause the control information at that location to be interpreted as if it were an instruction. Here too it is impossible to predict exactly what will happen when SpeedCo I attempts to execute this instruction, but it is again true that the results will be erroneous.
Instruction Layout
Each operation that SpeedCo I can execute is assigned an alphabetical-code designation and a numerical-code designation. The alphabetical designations have been chosen on a mnemonic basis, and consist of combinations of from two to five letters each. These alphabetical designations are solely a programming convenience, however, because the calculator is not able to recognize them. If the programmer has prepared his program using these alphabetical designations, his instruction cards must first be processed on standard IBM sorting and gang punching equipment. The effect of this preliminary processing will be to punch in the cards of his instruction deck the numerical code designations that correspond to the various alphabetical code designations used in his program. This having been accomplished, the instruction cards are then ready to be loaded by SpeedCo I, because the machine uses the numerical designations to identify the desired operations.
If the programmer is willing to forego the mnemonic advantages of the alphabetical code, there is no reason why he cannot prepare his program entirely in numerical form, specifying each desired operation by giving its numerical designation. This procedure has the advantage of making the preliminary sorting and gang-punching operations referred to above unnecessary.
Each numerical code designation is a three-digit integer. The complete list of all SpeedCo I operations, together with their alphabetical and numerical code designations, appears in the section entitled Operations.
In general, each SpeedCo I instruction may specify two distinct operations, referred to as OP1 and OP2. A summary of the OP2 operations is as follows: elementary arithmetic operations, computation of square root, evaluation of elementary trigonometric and exponential functions, transfers of information between tapes or drums and electrostatic storage, and final-result printing.
The addresses
Frequently it is desirable to be able to execute the same series of instructions
a number of times, each time increasing or decreasing any or all of the
addresses
A summary of the OP2 operations follows: conditional and unconditional transfers of control, address-modification operations, and error-checking operations.
Each instruction also contains an address portion designated
Finally, every instruction contains a portion designated L. The numbers coded here, together with the positions of certain switches on the operator's panel, control a detailed listing of the entire program—instructions, intermediate results and final results. This feature is extremely helpful in tracking down programming errors when the program is first being tested.
Instructions are stored in the various memory organs of the machine as shown in Figure 2.
| Bit Positions | Item |
|---|---|
| 1 | Sign of instruction (automatically supplied by SpeedCo I) |
| 2 | Always zero |
| 3 - 5 | R-code |
| 6 | Always zero |
| 7 - 18 | OP₁ |
| 19 - 26 | OP₂ |
| 27 - 36 | D |
| 37 | Always zero |
| 38 - 47 | A |
| 48 - 57 | B |
| 58 - 59 | Always zero |
| 60 - 62 | L |
| 63 - 72 | C |
Operations
Following is a list of all SpeedCo I operations. For convenient reference, the descriptions are given in abbreviated form. Complete descriptions of all these operations appear in other sections.
OP1 Operations
| Alphabetical Code | Numerical Code | Name | Description | |
|---|---|---|---|---|
| ADD | 658 | Add | ||
| SUB | 696 | Subtract | ||
| ADDAB | 699 | Add absolute | ||
| ABADD | 703 | Absolute add | ||
| SUBAB | 707 | Subtract absolute | ||
| ABSUB | 711 | Absolute subtract | ||
| MPY | 715 | Multiply | ||
| NGMPY | 731 | Negative multiply | ||
| DIV | 734 | Divide | ||
| NGDIV | 748 | Negative divide | ||
| SQRT | 782 | Square root | ||
| SINE | 780 | Sine | ||
| ARTAN | 781 | Arc tangent | ||
| EXP | 783 | Exponential | ||
| LN | 784 | Logarithm | ||
| MOVE | 690 | Move | The block of information stored in electrostatic cells |
|
| WRTPJ | 532 | Write tape | The block of information stored in electrostatic cells |
|
| WRTPK | 533 | Write tape |
||
| WRTPL | 534 | Write tape |
||
| WRTPM | 535 | Write tape |
||
| RFTPJ | 435 | Read forward tape | The first B - A + 1 words of the next block of information stored on the designated tape are read and stored in electrostatic cells |
|
| RFTPK | 437 | Read forward tape |
||
| RFTPL | 439 | Read forward tape |
||
| RFTPM | 441 | Read forward tape |
||
| RBTPJ | 416 | Read backward tape | The first |
|
| RBTPK | 417 | Read backward tape |
||
| RBTPL | 418 | Read backward tape |
||
| RBTPM | 419 | Read backward tape |
||
| SFTPJ | 556 | Skip forward tape | The designated tape is advanced (without being read) to the end of the next block of information. (Notes 1 and 4.) | |
| SFTPK | 557 | Skip forward tape |
||
| SFTPL | 558 | Skip forward tape |
||
| SFTPM | 559 | Skip forward tape |
||
| SBTPJ | 546 | Skip backward tape | The designated tape is backspaced (without being read) to the beginning of the preceding block of information. (Notes 2 and 5.) | |
| SBTPK | 547 | Skip backward tape |
||
| SBTPL | 548 | Skip backward tape |
||
| SBTPM | 549 | Skip backward tape |
||
| RWTPJ | 572 | Rewind tape | The designated tape is rewound to its starting position. The most recent previous instruction affecting the same tape may have been anything except WRITE. | |
| RWTPK | 574 | Rewind tape |
||
| RWTPL | 576 | Rewind tape |
||
| RWTPM | 578 | Rewind tape |
||
| EFTPJ | 564 | End file tape | The next 6 feet of the designated tape are erased. This erased length identifies the end of the tape during future tape reading operations. The most recent previous instruction affecting the same tape must be WRITE. | |
| EFTPK | 566 | End file tape |
||
| EFTPL | 568 | End file tape |
||
| EFTPM | 570 | End file tape |
||
| WDRP | 497 | Write drum | The block of information stored in electrostatic cells |
|
| WDRQ | 498 | Write drum |
||
| RFDRP | 526 | Read forward drum | The block of information stored on the designated drum starting at drum address |
|
| RFDRQ | 528 | Read forward drum |
||
| 580 | The block of data stored in electrostatic cells |
|||
| EJECT | 767 | Eject | The printer paper is ejected. (See Appendix C.) | |
| NOOP | 751 | No operation | No operation. |
Note 1:
The most recent previous instruction affecting the same tape must be either READ FORWARD, READ BACKWARD, SKIP FORWARD, SKIP BACKWARD or REWIND.
Note 2:
The most recent previous instruction affecting the same tape must be either READ FORWARD, READ BACKWARD, SKIP FORWARD, SKIP BACKWARD or END FILE.
Note 3:
If the recomputed check sum fails to agree with the check sum on the tape, the program skips the next two instructions.
Note 4:
If the designated tape is already at the end-of-file gap when this instruction is given, the program skips the next instruction.
Note 5:
If the designated tape is already at the beginning-of-file gap when this instruction is given, the program skips the next instruction.
OP2 Operations
| Alphabetical Code | Numerical Code | Name | Description | |
|---|---|---|---|---|
| TR | 104 | Transfer | Control is unconditionally transferred to electrostatic cell D. | |
| TRPL | 109 | Transfer plus | Control is transferred to electrostatic cell D if |
|
| TRMN | 115 | Transfer minus | Control is transferred to electrostatic cell D if |
|
| TRZ | 112 | Transfer zero | Control is transferred to electrostatic cell D if the fractional part of |
|
| SNTRP | 117 | Sense and transfer P | Control is transferred to electrostatic cell D if operator’s panel sense switch P (or Q) is down. (These sense switches, P and Q, are numbered 4 and 5, respectively, on the operator’s panel.) | |
| SNTRQ | 120 | Sense and transfer Q | ||
| TIA | 128 | Transfer and increase | ||
| TIB | 126 | Transfer and increase |
||
| TIC | 125 | Transfer and increase |
||
| TIAB | 130 | Transfer and increase |
||
| TIBC | 127 | Transfer and increase |
||
| TIAC | 129 | Transfer and increase |
||
| TIABC | 131 | Transfer and increase |
||
| TDA | 133 | Transfer and decrease | Same as the corresponding transfer-and-increase operations except that each of the designated R-quantities is decreased by one. | |
| TDB | 135 | Transfer and decrease |
||
| TDC | 132 | Transfer and decrease |
||
| TDAB | 137 | Transfer and decrease |
||
| TDBC | 134 | Transfer and decrease |
||
| TDAC | 136 | Transfer and decrease |
||
| TDABC | 138 | Transfer and decrease |
||
| SETRA | 139 | Set | The designated R-quantity is replaced by the D address. | |
| SETRB | 250 | Set |
||
| SETRC | 145 | Set |
||
| SKRA | 152 | Skip | The program skips the next instruction if the designated R-quantity is equal to the D address. | |
| SKRB | 159 | Skip |
||
| SKRC | 162 | Skip |
||
| RADDA | 199 | Reset and add A | The designated address of the instruction located at D is added into the address counter after this counter has been reset to zero. | |
| RADDB | 202 | Reset and add B | ||
| RADDC | 205 | Reset and add C | ||
| RADD | 208 | Reset and add D | ||
| ADDA | 177 | Add A | The designated address of the instruction located at D is added to the contents of the address counter. | |
| ADDB | 184 | Add B | ||
| ADDC | 190 | Add C | ||
| ADDD | 193 | Add D | ||
| SUBA | 211 | Subtract A | The designated address of the instruction located at D is subtracted from the contents of the address counter. | |
| SUBB | 216 | Subtract B | ||
| SUBC | 221 | Subtract C | ||
| SUBD | 226 | Subtract D | ||
| STA | 251 | Store A | The designated address of the instruction located at D is replaced by the contents of the address counter. | |
| STB | 252 | Store B | ||
| STC | 235 | Store C | ||
| STD | 244 | Store D | ||
| SKIP | 165 | Skip | The program skips the next instruction if the D address is equal to the contents of the address counter. | |
| PRCH | 232 | Prepare check | This operation must always be given prior to the first use of the start-check operation. | |
| STCH | 253 | Start check | This operation causes the instruction of which it is a part to become the first instruction in a checking loop, that is, in a sequence of instructions which will be performed twice to check for machine errors. | |
| ECHTR | 254 | End check and transfer | This operation causes the instruction of which it is a part to become the last instruction in a checking loop. The first time it is encountered it causes a transfer to D, where D is usually the location of the preceding start-check operation. The second time it is encountered it compares the results of the two passes through the loop. If the results are the same the next instruction is skipped. If there is a discrepancy this skip does not occur. | |
| STOP | 232 | Stop and transfer | Upon encountering this instruction the calculator stops. If it is then restarted by the operator, the first instruction executed is a transfer of control to D. At the time of the stop, the address D is visible (in binary) on the accumulator register lights on the operator's panel. | |
| 000 | No operation |
(Note that the alphabetical code for no OP1 is NOOP, and for no OP2 is simply a blank.)
Elementary Mathematical Functions
SpeedCo I provides for the direct computation of the following elementary mathematical functions: square root, sine, arc tangent, exponential, and natural logarithm.
For each of these operations the programmer must specify the appropriate
alphabetical or numerical OP1 code, the address A of the independent
variable, and the address
The present available set of these five elementary functions is designed to give at least seven significant decimal digits of accuracy. For details as to the range of the argument and accuracy of approximation, see Appendix A.
Problems may arise where the accuracy provided is inadequate. In such cases it is possible to modify the SpeedCo I control information to obtain greater accuracy. Such modifications may, however, increase the storage requirements for this control information. Hence the programmer must balance the advantages of greater precision against the disadvantage that the electrostatic storage capacity may decrease from the 714 words now available with the present approximations.
Descriptions of alternative sets of approximations will be added to the appendix as they become available.
Input-Output Components
The card reader, printer, magnetic tapes and magnetic drums are all classified as input-output components of the machine, because they all share the common property of being able to automatically receive information from, or transmit information to, electrostatic storage. In fact, it must be remembered that, whenever information is transmitted from one component of the machine to another, it must pass through electrostatic storage.
Any machine component capable of automatically transmitting information both to and from electrostatic storage (such as tapes and drums) may be regarded as an auxiliary storage (as distinguished from the electrostatic working storage). However, the common input-output terminology will be used in this section.
The computer has full automatic control over all input-output components. As will be seen from what follows, this control is exercised by means of the stored program.
Punched Cards
SpeedCo I uses punched cards as its primary input medium because of their great flexibility and because of the availability of apparatus for key-punching, verifying, and duplicating. Errors in key-punching are easily detected and corrected. Input data may readily be prepared on several key-punches simultaneously, and the cards may then be collected for entry into the computer. Cards are particularly desirable for manual access to a file because they can easily be separated, and their contents can be printed on them.
Instruction Card Form (Figure 3)
SpeedCo I instructions are initially entered into the calculator by means of punched cards, one instruction being punched per card. The punching fields are shown in Figure 4.
Note that the instruction card form provides space for both the alphabetical and the numerical OP1 and OP2 code designations. If the program has been written using the alphabetical designations, the following procedure applies: (1) the alphabetical designations are key-punched from the programmer's manuscript into card columns 15-19 and 35-39; (2) after the key punching has been verified, a sort and gang-punch process is carried out which punches the corresponding numerical designations into columns 46-48 and 49-51.
If, on the other hand, the program was written using the numerical designations for OP1 and OP2, these numerical designations have only to be key punched and verified. In this case the alphabetical fields (columns 15-19 and 35-39) are left blank, and no sorting and gang-punching operations are necessary.
Note that the Type 701 is controlled by the numerical code punching only, the alphabetical punching being unintelligible to the machine. For this reason, SpeedCo I instruction cards should never be fed into the Type 701 with only the alphabetical OP1 and OP2 code designations punched. All columns, except those specifically designated to be blank or not used and except the alphabetical operation codes, must have a single numerical punch.
Data Card Form
Data are initially entered into the calculator by means of punched cards, five or fewer pieces of data being punched per card. The punching fields are shown in Figure 5.
A sign must be specified for each fractional part and each exponent. In each case the sign is punched over the least significant digit of the fractional part or exponent to which it applies. A 12 punch means plus, and an 11 punch means minus. If the word count is less than 5, the irrelevant signs need not be punched, but the card itself must be filled out with zeros or, at least, some single numerical punch for each irrelevant column.
In no case may the absolute value of an exponent exceed 236.
Card Reader
The process of loading the data and instructions of a program into the calculator is carried out as follows.
The data and instruction cards are key-punched and verified, and any necessary sort-and-gang-punch operations are performed. The programmer will be supplied with a certain constant deck of cards labelled SPEEDCODING I. (This deck will contain all of the control information necessary to cause the 701 to operate according to the SpeedCo I system. The last card of this deck will be labelled Transfer Control Card.) From this constant deck and his own variable deck he will make up a single deck by inserting his variable deck between the last and the next-to-last card of the constant deck, and adding three blank cards after the last card of the constant deck. The resulting deck is then placed in the hopper of the card reader, and the card-reader start button is depressed to ready the card reader. The calculator is then started by pressing the load button on the operator's panel. No further manual intervention is necessary, subsequent operation being entirely automatic.
The cards in the hopper feed through the card reader, and the information on them is transmitted to electrostatic storage. SpeedCo I then directs and controls the conversion of the decimal information read from the cards
In the case of instruction cards, the information is converted to binary and assembled in the standard binary instruction form given in the section entitled Control. In the case of data cards, the conversion process involves not only the change from decimal to binary, but also includes the change from the powers-of- ten punched on the cards to the powers-of-two employed within the calculator. This converted data is then assembled in the standard floating-binary-number form given in the section on Computing. In both cases the converted information is stored in electrostatic memory at the designated locations. The execution of the problem then automatically begins with execution of the instruction stored at location 300.
During this read-in process the card reader operates at the rate of 150 cards per minute. Hence data is read and converted at the rate of 750 numbers per minute, while the rate for instructions is 150 per minute.
All calculations made in the process of converting the decimal information on the cards to the required binary form are automatically checked. Any discrepancy causes the machine to stop and give an error indication.
Magnetic Tape
Magnetic tapes may be used either as a high-capacity long-term memory or as input from a previous problem that had stored its results on tape. Input data from cards, including programs, can be transcribed by the computer on tape to conserve storage space or to save time when the data must be repeatedly entered into the computer.
There are four tape units designated by the letters
Information is recorded on tape in six channels that run parallel to the length of the tape. A bit of information is represented by a magnetized spot in a channel. A set of six bits recorded in a line perpendicular to the six channels will be referred to as a group of bits. Twelve groups recorded serially on a tape are needed to store one binary word of 72 bits.
A seventh channel on the tape serves to check the reading and writing in the other six channels by the so-called redundancy-check principle. That is, either a 0 or a 1 is recorded in the seventh channel so that across the seven channels there is an odd number of 1's in each set of seven bits. When the tape is read, the number of 1's is automatically checked. If the number is even, the calculator stops, and a signal light on the operator's panel called the tape-check light is turned on.
If the number of 1's is odd (as it should be when correct), the machine continues the reading process. It should be emphasized that the operation of this seventh channel is completely automatic and requires no attention whatever on the part of the programmer.
A schematic diagram of how a word of 72 bits is recorded on tape is shown in Figure 6. Each x denotes a binary 1 or 0 recorded in that position on the tape. The 72 bits recorded in the six recording channels represent the full word. The tape moves in the direction of the arrow. The group numbered 1 contains the first six bits of the word. The remaining eleven groups contain the following bits of the word in groups of six. Thus, group 2 contains bits 7 through 12 of the word, etc.
Writing on Tape
The general procedure for writing a file of information on tape is as follows.
A write-tape instruction is given. This instruction causes the selected tape to
be started in motion and causes it to record, as one unit record, the
information stored in that block of consecutively-numbered electrostatic memory
cells which begins at cell
For example, consider the following write-tape instruction:
| OP1 | A | B | C |
|---|---|---|---|
| WRTPK | 0301 | 0387 | — |
This instruction will cause the block of information stored in electrostatic
cells 301 to 387 inclusive to be written, as a unit record, on tape
The writing process requires that all previous magnetic marks be erased from that portion of the tape being written on. To accomplish this, an erasing apparatus precedes the recording apparatus by approximately two inches. As the tape moves under the impetus of the write-tape instruction, the erasing apparatus is continually active, while the recording apparatus does not operate until told to do so by SpeedCo I.
If the write-tape instruction is given when the tape unit is in the rewound condition (i.e., in position to write a file of records), the actual writing on tape is delayed eight-tenths of a second. The erase circuits, however, are functioning during this time, and the result is a blank portion of tape called the beginning-of-file gap.
As soon as the beginning-of-file gap has been written, the recording process
begins. The selected tape unit takes the word located at A and records it on
the tape as 12 six-bit groups in the manner shown in the diagram above. Next
the word at
During this process two other operations have also been taking place. First, as
each group of bits was recorded on tape, the corresponding redundancy bit was
automatically computed and recorded. Second, as the successive words of the
record being written were selected from electrostatic storage a calculation was
carried on that resulted in the formation of a weighted sum of all the binary
information comprising the record. This sum (called the check sum) is then
automatically recorded on the tape immediately behind the word taken from
location
Note that the length of the unit record is variable, the number of words
recorded being given by the expression
Note that the write-tape instruction makes no use of the address
The first unit record of the file has now been written. To write a second unit record, a second write-tape instruction is programmed. In this way a series of records may be recorded. Note again that the records may be of variable size if desired.
The complete recording on a tape consists of a number of unit records that make up a file of information.
Tapes can be re-used many times, and a new file can be written over an old file, the old one being erased in the process. Each time a new file is written, it is started at the beginning of the tape, and only one usable file of unit records can be on a tape at one time. Different files, however, will have different lengths, so that there is a possibility that beyond the last record of the most recent record file, bits may be left over from a previous use of the tape. These residual bits of information may not be properly spaced in relation to the record just written. This may result in an error on a later reading of the new record.
To avoid having to erase the entire tape every time, and for certain control purposes to be mentioned later, an instruction called end file tape has been provided. This instruction, which must be given after writing any file, erases a further section of tape after the last unit record. The section of tape erased in this way is called an end-of-file gap.
For example, to end a file of records just written on tape
| OP1 | A | B | C |
|---|---|---|---|
| EFTPK | — | — | — |
In this instruction the addresses A, B and C are irrelevant to the execution of the instruction.
Figure 7 shows schematically how a typical file of information is recorded on tape. The arrow designates the forward direction of tape motion. Writing can be done only when the tape is moving forward. A beginning-of-file gap is followed by a number of unit records with intervening end-of-record gaps. Note that these gaps are of a fixed length regardless of the lengths of the unit records themselves. Finally, an end-of-file gap appears after the last unit record. Note, too, that the machine operates so that the lengths of the two gaps at each end of a file are equal to each other, but are longer than the intervening end-of-record gaps.
To recapitulate, there are three kinds of gaps in the recording of information on tape:
- The normal spacing between successive groups of six bits within a unit record.
- The longer gap between unit records. This gap is long enough to allow the tape to start and stop between records.
- The still longer gaps at the ends of the file.
Reading from Tape
The general procedure for reading a file of information from tape is as follows.
Assume that the tape is in position to read the first unit record of the file. A
read-forward-tape instruction is given. This instruction causes the selected
tape to be started in motion and causes it to transmit the first
For example, consider the following read-forward-tape instruction:
| OP1 | A | B | C |
|---|---|---|---|
| RFTPK | 0851 | 0885 | — |
If the first unit record of the file contains 35 words (in establishing the number of words in a unit record on tape, the check sum is not included in the count), this instruction will cause those 35 words to be read from tape K and stored blockwise in electrostatic memory cells 851 to 885 inclusive. If, on the other hand, the first unit record contains more than 35 words, this instruction will cause the first 35 of these words to be read from the tape and stored in the designated memory cells.
In detail, the read-forward process proceeds as follows. The selected tape
transmits the first word to electrostatic memory where it is stored at
During this process two other operations have also been taking place. First, as each group of bits was read from the tape, the corresponding redundancy bit was also read and checked. Any discrepancy in this redundancy check will stop the calculator and light the tape-check light.
Second, as the successive words of the record being read were transmitted to electrostatic storage, the check sum was recomputed and compared with the check sum read from the tape. Any discrepancy in this comparison will cause the calculator to ignore the next two instructions of the program and skip to the third instruction following the read-forward-tape instruction.
Note that both of these checking procedures are carried out for the entire unit
record being read, even in those cases where only part of the record is being
stored in electrostatic memory. In such cases the storing process is
discontinued after the
Note also that since the reading process is always continued to the end of the record, even when only part of the record is stored in electrostatic memory, the tape always stops at the end-of-record gap; this concludes the record just read.
Because the read-forward-tape instruction makes no use of the address
If for any reason the A and B addresses of a read-forward-tape instruction are
so chosen that
The process described above reads the first unit record of the file. The remaining records of the file may be read in the same way. After the last unit record of the file has been read, the tape is positioned at the end-of-file gap.
If, at this time, another read-forward-tape instruction is given, the designated tape unit starts up and attempts to read another unit record. Instead of a unit record, however, it finds the end-of-file gap. This causes the calculator to ignore the next instruction of the program and skip to the second instruction following the read-forward-tape instruction. The programmer may then take advantage of this automatic skip to go into a new phase of the program. This end-of-file skip cannot be obtained from a blank tape; at least one unit record must be written on the tape to distinguish the normal space at the start of the file from the end-of-file gap obtained by use of the end-file-tape instruction.
It should be emphasized, however, that this is not the only function of the end-of-file gap (see section entitled Writing on Tape). Even if the program is so written as to make no use whatever of the end-of-file skip feature, it is still necessary to give an end-file-tape instruction after writing a file on tape.
Any OP2 operation may be used with a read-forward-tape instruction. However, it is important to note that SpeedCo I is so constructed that such an OP2 operation will only be executed if neither the check-sum-discrepancy skip nor the end-of-file skip has occurred.
In certain types of programs it is convenient to be able to read the unit records which make up a file on tape in the reverse order from the order in which they are written. To facilitate such tape reading programs, the read- backward-tape instruction has been provided as part of SpeedCo I.
The read-backward-tape instruction is very similar to the read-forward-tape instruction.
They differ only in the following respects. When read backward tape is given, the designated tape is first backspaced one unit record. During this back spacing no reading, checking or storing takes place. The unit record is then read in the forward direction and checked, exactly as in the read-forward-tape case. The designated tape then backspaces once more—again without reading, checking or storing. After execution of the read-backward-tape instruction, the tape stops at the end-of-record gap that precedes, on the tape, the unit record just read.
For example, assume that the tape to be read is stopped at the end-of-record gap between the fourth and fifth unit records on the tape. The instruction read forward tape will read and store the fifth record. and the tape will stop at the end-of-record gap between the fifth and sixth unit records. If the instruction given had been a read-backward-tape instruction, however, the fourth record would have been read and stored, and the tape would have stopped at the end-of-record gap between the third and fourth unit records.
Note that the addresses
The redundancy-check process and the check-sum calculation are carried out for the entire unit record involved, even though only part of the record may be stored.
If any discrepancy is detected in the redundancy check, the calculator will stop, and the tape-check light will be turned on. If the recomputed check sum fails to agree with the check sum read from the tape, the calculator will skip the next two instructions.
If
In all three of the above cases the error is detected during the second (or read-forward) phase of the read-backward-tape instruction. For this reason the tape comes to rest, not at the end-of-record gap that precedes the record read, but at the end-of-record gap that follows the record read. The final back- spacing, which is normally part of the read-backward-tape instruction, does not take place when one of these three error conditions is encountered.
The
When reading a tape backward, an end-of-file gap is recognized just as in reading forward. After the unit record at the beginning of the file has been read backward, the tape will be positioned at the beginning-of-file gap. A further read-backward-tape instruction causes the tape unit to treat the beginning-of-file gap as if it were an end-of-file gap, and the calculator skips the next instruction.
As in the case of a read-forward-tape instruction, any OP2 operation may be used with a read-backward-tape instruction, but the OP2 operation will only be executed if neither the check-sum-discrepancy skip nor the end-of-file skip has occurred.
Tape Skipping
Cases will frequently arise where the unit records of a file on a tape must be read in a more-or-less random order. The instructions read forward tape and read backward tape do not by themselves conveniently permit such tape reading, because the instruction read forward tape reads only the record which immediately follows the end-of-record gap at which the tape is stopped, while the instruction read backward tape reads only the record which immediately precedes this same end-of-record gap. In order to facilitate random tape reading, therefore, the instructions skip forward tape and skip backward tape have been provided.
The instruction skip forward tape advances the designated tape one unit record, the tape stopping at the end-of-record gap following the one at which it was stopped when the instruction was given. No reading or checking is performed.
The instruction skip backward tape backspaces the designated tape one unit record, the tape stopping at the end-of-record gap preceding the one at which it was stopped when the instruction was given. Again, no reading or checking is performed.
For example, suppose that the last operation involving tape
The two skip-backward-tape-
The instructions skip forward tape and skip backward tape both embody an end-of-file skip feature. If skip forward tape is given when the designated tape is stopped at the end-of-file gap, or if skip backward tape is given when the tape is stopped at the beginning-of-file gap, the calculator ignores the next instruction and proceeds immediately to the execution of the second instruction following the tape skip instruction.
Any OP2 operation may be used with a skip-for ward-tape or skip-backward-tape instruction. However, it is important to note that such an OP2 operation will only be executed providing an end-of-file skip has not occurred.
The
After the instruction skip forward tape or skip backward tape has been given and interpreted and the actual tape motion has begun, the calculator proceeds with the interpretation and execution of the following instructions of the program without waiting for the tape to come to a stop. If a subsequent instruction calls for the same tape while it is still in motion, the program is automatically delayed until the tape stops.
Tape Rewinding
The instruction rewind tape is used to cause the designated tape to return to the starting point of its file of records.
When writing a file of unit records on a tape, the instruction rewind tape should not be given until after the instruction end file tape has been used to terminate the file.
The
After the instruction rewind tape has caused the rewinding action to begin, the calculator proceeds to the following instructions of the program without waiting for the tape to stop. If a subsequent instruction calls for the same tape before the actual rewinding is complete, the program is then automatically delayed until the tape comes to a stop.
Tape Status
It is not possible both to read and write on a single passage of a tape in one direction through the tape unit. If information is being written on a tape, the file should first be completed by writing an end-of-file gap before the information is read. The tape can then be read backward immediately, or it can be rewound and then read in the forward direction. When a tape has been used for reading, it must first be rewound before any new information can be written on it.
Circuits associated with each tape unit remember whether the tape is being read or written. When the circuits are set up for reading, the tape unit is said to be in read status; when the circuits are set up for writing, the tape unit is said to be in write status. If the tape unit is in neither read status nor write status, it is said to be in neutral status.
When a tape unit is in read status, it may be used only for reading and skipping; when in write status, it may be used only for writing. If the instruction write tape is given for a tape unit that is in read status, the instruction is not executed, the calculator stops, and the copy-check light is turned on. Similarly, if any one of the instructions read forward tape, read backward tape, skip forward tape, or skip backward tape is given for a tape unit that is in write status, the instruction is not executed, the calculator stops, and the copy-check light is turned on.
If the instruction end file tape is given for a tape unit that is in read status, the instruction is not executed, and the tape remains stationary.
Any write, read or skip instructions will be executed in the normal manner, if the tape called for is in neu tral status. After the execution of a normal write instruction, the tape unit used will be left in write status. After the execution of a normal read or skip instruction, the tape unit used will be left in read status. Irrespective of its previous status, the execution of a rewind instruction will always restore a tape unit to neutral status. An end-file-tape instruction will return the tape to neutral status only if it was origininally in write status.
Figure 8 shows the status that will result when each one of the tape instructions is given under all possible conditions.
rewind tape will be executed with the tape unit in any status. However, rewind tape should not be given while the unit is in write status, end file tape, which resets the tape unit to neutral, should always precede rewind tape in those cases where the tape was originally in write status.
A rewind-tape instruction must always be given before writing on a tape previously in read status, even after reading backward all the way to the beginning-of-file gap.
Once a tape has been rewound, further rewind-tape instructions may be given, but they will be ignored as long as the tape remains rewound.
After an end-of-file gap has been written, the tape unit will be in neutral status. At this point the programmer must not give any of the instruction read forward tape, skip forward tape , write tape, or end file tape (each of which would move the tape further forward) although the neutral status would permit such meaningless action. Only read backward tape, skip backward tape , or rewind tape can follow end file tape.
When a tape is being read or skipped in the forward direction and the end-of-file gap has once been sensed, no further read-forward-tape or skip-forward-tape instructions (which would move the tape further forward) should be given. Only read backward tape, skip backward tape, or rewind tape can follow the detection of an end-of-file gap. Similarly, after sensing the beginning-of-file gap on reading or skipping backward, or after giving the instruction rewind tape, the programmer must not give read backward tape or skip backward tape.
Magnetic Drums
The magnetic drum storage is divided into two blocks of 1024 words each, with
addresses consisting of the integers from 0 to 1023. Each block will be referred
to as a drum. The two drums are designated by the letters
Information is usually recorded on the drum as blocks of words called unit records. The words of a unit record are stored in locations with consecutive addresses, although the first word of a record may be placed at any drum address. The following paragraphs describe the process of writing a unit record on a drum.
A write-drum instruction is given. This causes the designated drum to be
connected to the calculator and causes it to record, as one unit record, the
information stored in that block of consecutively-numbered electrostatic memory
cells which begins at cell
For example, consider the following write-drum instruction:
| OP1 | A | B | C |
|---|---|---|---|
| WRDRQ | 0947 | 1013 | 0032 |
This instruction will cause the block of information stored in electrostatic
cells 947 to 1013, inclusive, to be written on drum
The instruction write drum also includes a checking feature that operates as follows. After the block of information from electrostatic storage has been written on the drum, and before the calculator goes on to the next instruction of the program, the information just written on the drum is read back into electrostatic storage and checked, word for word, against the in formation originally in electrostatic storage. If there is no discrepancy, the calculator proceeds to the interpretation and execution of the next instruction of the program. If, on the other hand, the calculator detects any discrepancy between the original information and the information read back from the drum, the next two instructions of the program are ignored, and the calculator skips to the third instruction following the write-drum instruction. Hence, if the calculator does not skip the two instructions following the write-drum instruction, the programmer is assured that the drum writing process has been correctly performed.
Any OP2 operation may be used with a write-drum instruction. However, it is important to note that such an OP2 operation will only be executed if a check-sum-discrepancy skip has not occurred.
The drum reading operation is very similar. It is carried out as follows. A
read-forward-drum instruction is given. This causes the designated drum to be
connected to the calculator and causes it to transmit to electrostatic storage
that block of
Upon its transmittal to electrostatic memory, this information is stored in that
block of consecutively-numbered electrostatic memory cells which begins at cell
For example, consider the following read-forward-drum instruction:
| OP1 | A | B | C |
|---|---|---|---|
| RFDRQ | 0811 | 0820 | 0041 |
This instruction will cause the block of information stored on drum Q, beginning at drum address 41 and ending at drum address 50, to be transmitted to electrostatic storage and stored in electrostatic cells 811 to 820 inclusive.
No checking features are included in the drum-reading operation.
Note that a unit record written on a drum does not preserve its identity as a unit record, there being no end-of-record gaps to mark its beginning and end. For instance, the information read in the above read-forward-drum example would be the 10th through the 19th words of the unit record written in the preceding write-drum example, unless another write-drum instruction involving this region of the drum had intervened.
If only a single word is to be written or read, the electrostatic address of this word must be used as both the A and the B addresses of the instruction concerned.
Drum reading and writing have none of the status limitations that affect tape reading and writing, nor is there anything in drum reading and writing which corresponds to the end-of-file features of tape reading and writing.
The programmer must not attempt to read or write beyond drum address 1023. For example, it is not possible to write a 7-word record beginning at drum address 1022 and ending at drum address 4.
Loading Procedures for Lengthy Programs
In the section entitled Card Reader a procedure is described for loading short programs into the calculator. This procedure does not apply, however, to programs which involve more than 714 words of instructions and data. In such cases, the additional storage capacity of tapes or drums must be utilized. This is done in the following way.
During the writing of the program the programmer subdivides it into a number of blocks, each of which requires no more than 714 words of storage to accommodate all of its input data, its instructions, its output data and any erasable storage needed to retain intermediate results temporarily.
The punched cards that contain the instructions and data of the problem are then grouped in blocks in the same way, the cards of each block being separated from those of the next block by means of a control card. This control card contains information that completely specifies a tape-writing or drum-writing operation.
The layout of the loading control card is as follows:
With one important exception, the loading process is the same as in the simpler case already described. That is, the programmer inserts his variable deck of instruction, data and loading control cards between the last and the next-to-last cards of the constant deck labelled speedcoding i, adds three blanks, puts this resulting deck in the hopper of the card reader, depresses the start button of the card reader and the load button on the operator's panel