PX18_1103A_Progr_Sep56 PX18 1103A Progr Sep56
PX18_1103A_Progr_Sep56 PX18_1103A_Progr_Sep56
User Manual: PX18_1103A_Progr_Sep56
Open the PDF directly: View PDF .
Page Count: 311
Download | |
Open PDF In Browser | View PDF |
UNIVAC SCIENTIFIC GENERAL-PURPOSE COMPUTER SYSTEM PROGRAMMING PX 18 SEPTEMBER 1956 DIVISION OF SPERRY RAND CORPORATION TABLE OF CONTENTS Page PX 33 INTRODUCTION PX 34 DESCRIPTION OF THE COMPUTER l. 2. 3. 4. 5. 6. PX 35 . ..· · General . Principal. Registers· a. X Register. b. Q Register. · c. Accumulator · Storage Devices a. Addressed Storage Locations b. Magnetic Drum Storage System. · c. Magnetic Core Storage System. d. A and Q as Storage Media. Control Components a. Program Address Counter b. Program Control Registers · c. Master Clock. d. Main Pulse Distributor. · e. Main Control Translator f. Command Timing Circuits g. Program Interrupt Control · Representation of Numerical Values. Arithmetic Operations · a. General . b. Addition and Subtraction. c. Multiply Sequence d. Divide Sequence •• · · ···· · · ·· ···· · · · · · ·· ·· ·· · · · ·· · ·· · · · · · · · · ···· ·· · ········ .. · ···· ···· ····· ········· ···· ····· ···· ···· · · ··········· ····· ···· ····· ···· . · · · · ·· ·· ·· ·······.. · ····· · ···· ··· · 1 4 4 4 4 5 5 6 8 8 8 8 9 9 10 10 10 10 11 12 12 14 16 18 REPERTOIRE OF INSTRUCTIONS 1. 2. General. • • • • . • . . ••• Presentation of Instructions • • . • • . a. Transmissive Instructions •. b. Replace. Instructions c. Split Instructions • • . • d. Q-Controlled Ins truct ions • • • • • e. Sequenced Instructions • . • • • . . • f. One-Way Conditional Jump Instructions. g. Two-Way Conditional Jump Instructions •• h. One-Way Unconditional Jump Instructions i. External Equipment Instructions • • • • j. Stop Instructions . • . • • . • • • • • • PX 36 SEQUENTIAL PRESENTATION OF INSTRUCTIONS PX 37 INSTRUCTION EXECUTION TIMES PX 18 i 1 2 2 4 4 5 5 6 7 7 8 9 TABLE OF CONTENTS (cont.) Page PX 38 INPUT AND OUTPUT SYSTEMS l. .······ ,~ 2. 3. 4. 5. . . • 6. 7. ··· · · · · 11 ···· · · · · · · 22 ···· 6 ···· 6 ···· 8 · · · · · · · · · · · · · 10 ·· ·· ·· 10 · ······· 12 · 16 ···· ···· ···· 16 ···· ·· 16 · 22 ···· · · · · · · · · · 32 32 · 34 ··· ···· · · · · · · · · · 36 ··· ·· ····· · · · · 39 ····· 42 ········ 42 ····· ···· 48 ···· · · ······ · · · · · 58 61 · · · · · · · · 67 ········ · · ···· General · .. a. Standard Equipment. b. Optional Equipment. · Information Transfer. Photoelectric Paper Tape Reader General :::t. ·· · · b. Programming for Input · (~ Operation · · High-Speed Paper Tape Punch · Electric Typewriter · Punched Card Input/Output Sy.s tern. Genera 1 i:l. b. Programming for Input and Output. I~ Operation Univac Line Printer ;a. General · Jo. Programming for Output. · IC. Format Switchboard. · d. Operation · Magnetic Tape System .• ;a. General Description lb. Operation Theory. c. Tape Operat ion Timir.g d. Operation e. Improper Programminr or Operation 0 PX 39 OPE&~TING l. 2. 3. 4. THE COMPUTER .· ··· ·· General · Operation 8. General · b. Normal Mode of Operclt ion. c. Test Mode of Operation. d. Jump and Stop Selections. · e. Manual Interrupt Selection. · .Restoration of Operation After Stops. · a. Programmed Stops. b. Force Stop. · c. Emergency Stops · · d. Fault Conditions. · Manual Reading and Writing. a. Manual Writing from the Q Register. b. Manual Reading from the Q Register. c. Program Correction. d. Manual Block Trans fE~r ···· ···· ·· · · ·· ···· ··· ······· ········ · ······ ······ ··········· ·· ·· ··· ····· · · · ·· · · · · · · · · · ·· · · ··· ·· ······ ·· ·· ···· · ·· · · · · · · · · · PX 18 ii 1 4 4 4 7 8 8 9 9 9 9 10 12 12 13 14 14 TABLE OF CONTENTS (cont.) Page PX 40 CODING FOR THE COMPUTER 1. 2. Summary of Machine Characteristics Writing a Program. · a. Introduction · b. Instruction Notation c. Loops. ;, d. Subroutines. · e. Relative Addressing. f. Mechanics of Coding. · g. Debugging a Program. ··· h. Operating Procedure. · Number Notation. a. Introduction · · · · · b. Radix Conversion · · c. Scaling. · · · · · · d. Multiple Precision · e. Choice of Number Notation. Notes on the Instructions in the Univac Scientific Repertoire. · · a. Operations Involving the Accumulator b. Shift Instructions · · Operations. · c. Round Off and, Scale ·Down d. Accumulative Overflow. · ·· e. Divide Overflow. f. Repeat Instruction ······· · ···· · .·· 3. 4. PX 41 · ········ ···· ····· ········ ···· ···· · ··· ···· ···· ···· ···· ········ · ·· ····· ···· ····· · · · ····· · · ··· ····· ····· ···· ·· · ······ ········ ············· ······ ···· ·· · ·· ···· · ···· · ····· · · 1 7 7 7 8 10 21 23 26 33 36 36 37 41 45 45 45 46 48 50 51 52 53 APPENDIX A - NUMBER SYSTEMS 1. 2. 3. ..· ····· ······ General. Change of Base · a. Conversion of Integers b. Conversion of Fractions. Representation of Signed Numbers · · · ·.. 4 7 ········· PX 42 APPENDIX B - TABLE OF POWERS OF TWO PX 43 APPENDIX C - DECIMAL TO OCTAL CONVERSION TABLE PX 18 iii 1 3 10 LIST OF ILLUSTRATIONS Figure PX 34 1. PX 38 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. PX 39 1. 2. 3. 4. PX 40 1. Page DESCRIPTION OF THE COMPUTER Simplified Block Diagram of the Univac Scientific General-Purpose Computer System • • • . . • • • 3 INPUT AND OUTPUT SYSTEMS Photoelectric Paper Tape Reader • High-Speed Paper Tape Punch . • Electric Typewriter • • • • • • . • • . . Card Unit, Punch Card Input/Output System •. Tabulating Card Fields, Columns, and Rows. An Example of Punched Card Alphabetical and Digital Representation. . . • . . . • . . ••. Univac Line Printer . • • . . . . . . . . • . • . . • . . Optional Format for Line Printer Output • • . . . • • • . Write Sequence. • . • . . . • • . . .•.• Read Forward Backward Sequence. . . . . • Move Forward or Backward Sequence . 7 11 13 · 17 18 19 · 33 · 40 · 54 · 55 • 56 OPERATING THE COMPUTER Supervisory Supervisory supervisory Supervisory Control Control Control Control Panel, Panel, Panel, Panel, Overall View • Center Section . Right Section •• Left Section •. 2 3 5 6 CODING FOR THE COMPUTER Programmer's Simplified Block Diagram • . . . • . . . . . . PX 18 v 4 INTRODUCTION A computer is a device whic6 is capable of (1) accepting data and instructions to perform operations on this data, (2) executing the specified operations, and (3) producing the results of the operations. More specifically, a general-purpose digital computer is capable of executing the basic arithmetic operations, performing internal data handling operations and logical operations, receiving data from a source external to the computer, and transmitting data to external media of representation. Any problem which can be solved by numerical technique& can be handled and solved by computer operations. The given problem must be analyzed and resolved into a collection of smaller problems, each of which can be solved by the application of the basic computer operations. A general-purpose digital computer comprises electrical circuits, electronic and magnetic devices, and an associated power supply. Data which is to be manipulated internally is given a numerical representation. Such numbers are represented internally by a state or a condition of a component of the computer. Operations are performed upon the data by applying signals, effecting a change in its condition, to the device which holds the numerically coded data. The function assigned to such a signal is determined according to the change effected in the condition of the component. Data manipulations are performed by an ordered sequence of such impulses upon the components of the computer. The instigation of these impulses, and the regulation of the order in which they are initiated, are the functions of the control portions of a computer. An operation (permissible to a particular computer) occurs when a portion of control detects a directive to begin the pre-determined sequence of steps necessary to effect the operation. Major directives (computer instructions) are given the computer in a prescribed coded numerical form by the operator of the computer. These directives, and the data which is to be manipulated in a computer operation, may be set aside within the computer, temporarily or for later use, in the storage section. When the information is needed, it is recalled from storage and placed in the appropriate section of the computer. If an arithmetic or logical operation is indicated, data is placed in the arithmetic section of the computer. Here the desired manipulations of the numbers are effected, and temporary storage for results is provided. The i(l)t outeut portion of the computer consists of the components necessary to prOVIde insertion of coded data and directives into the computer and (2) present externally the results of computations carried out by the computer. The power system of the computer provides regulated voltages to the four major sections of the computer discussed above. Discussions of computer systems have led to the establishment of a computer "language". Certain basic terms in this language are discussed subsequently. PX 33 1 INT~ODUCTION STAGE - Electronic device which may be in unique states (conditions). The number of the ~tates possible to the device determines the radix of the number system allowable to representation by the computer. It is possible for a stage in the Univac Scientific to have two unique stable states: a state which is assigned to represent "0", End a state which is assigned to represent "1". Thus, the racix of the number system used in the Univac Scientific is two; the number system is the binary system. A 'stage may receivE~ as input electrical signals (pulses) which set it to its "1" state, set it to its "0" state, or reverse its present state. Signals derived 'from the stage indicate the state of the stage and are interpreted as a "1" olltput or a "ott output. This simple system of input and output to and from a bi-stable stage provides a means of adding, subtracting, and directly complementing binary numbers. REGISTER - A quantity of stages. The regulation number of stages determines the modulus cf the number system allowable to representation by the computer system. The nature of a register allows its use as a storage device for information. Frequently, other storage devices for information are also referred to as "registers". ADDRESS - A coded number which designates specifically some particular computer register or other internal storage location or device. Information is referenced by its address. Portions of computer control are responsible for directing information to or from an addressed location. BIT - A binary digit, "0" or "1", represented in the computer by a state of a bi-stable medium of representation. WORD OPERAND Information coded for computer representation as a series of bits. The normal word length is considered to be 36 bits. - A word representing co~ed data which is involved in computer operations or results from computer operations. INSTRUCTION- A 36 bit word which is a coded directive to the control section to initiate and oversee n prescribed sequence of steps necessary to effect a particular arithmetic, logical, nr input output operation. Portions of a computer instruction deSIgnate the operands which are involved in, and necessary for, the execution of the particular operation. OPERATION CODE - The coded portion of the instruction which "describes" to computer control which particular operation is to be executed. INSTRUCTION- An explanation of wl1at the execution of each instruction FUNCTION accomplishes, with the locations specified of (1) any operands used during this ex(~cution and (2) any pertinent results derived from this exe<~ution. PROGRAM - A sequence of coded computer instructions and necessary operands for the solution of a problem. fiX 33 2 INTRODUCTION INPUT OUTPUT - systems providing the means of communication between the computer and the operator. Input and output operations involve units of external equipment control, certain of the computer registers, and portions of the computer control section. STORAGE - consists of devices in which information is set aside for immediate or future use. Each storage location in the Univac Scientific has a unique. address. Each location in the storage section of the computer is an arrangement of 36 bistable elements; hence, each location "is capable of storing 36 binary digits. AHITHMETIC - a section where arithmetical and logical operations are performed and operands and results temporarily stored. CONTROL - consists of components which direct the operations of the computer. PX 33 3 DESCRIPTION OF THE COMPUTER 1. GENERAL The basic concept of the solution of a problem on a computer is presented in the following paragraphs. First, the computer instructions and their functions must be studied in order to gain a thorough understanding of the capabilities and restrictions of each instruction. When this has been achieved, the problem to be solved is reduced to a sequence of simplified steps, the arithmetic and logical operations of which can be solved by application of the instructions. The Univac Scientific has in its repertoire 41 instructions, each of which is represented by 36 bits, i35 ... iO. The left-most six bits of an instruction, i35 ... i30, represent its operation code. The remaining 30 bits are grouped as i29 ... i15 and i14 •.. iO. These bits are designated as the u address portion and v address portion of the instruction, respectively. These are the portions of the instruction which represent the operands (by referencing their location in storage, for the most part) with which the operation is concerned. A program is prepared by arranging the instructions in the order in which their operations are desired. The instructions are not written in binary but are coded in octal, each octal digit representing three binary digits. Thus, twelve octal digits represent an instruction; two digits represent the operation code; five digits, the u addr~ss; and five digits, the v address. For example, the instruction termed "Transmit Positive", whose function is in general "Replace the information at a certain specified location v with the information from another specified location u," is coded abstractly as 11 uv. With specific locations assigned to u and v, for instance, those with the numerical assignments of 01000 and 00100, the instruction is written in octal as 11 01000 00100. This represents the binary notation of 001001000001000000000000000001000000. This instruction, as coded, directs the computer to "replace the content of location 00100 with the content of location OlOOa'. When the program has been prepared, the coded list of instructions, operands, and any other data comprising it, are prepared for "loading", i.e., entrance into the computer. An input procedure results in the program being stored in the computer at a series of consecutive locations, the first of which must be specified during the input procedure. Each instruction and operand which was coded as a 12 octal digit number is stored at an individual location as a 36 binary digit number. Operands referenced by instructions must be stored at the address specified by the instruction. For instance, the information to be transferred from one location to another by the Transmit Positive instruction, coded as 11 01000 00100, must actually be in storage at the location addressed as 01000. During its execution, a program is usually in storage in a "rapid PX 34 1 DESCRIPTIO~ OF THE COMPUTER access" (high speed) type of storaqe, but it mayor may not be placed there initially during the loading process. Rapid access storage allows the fastest possible execution of a program SiJ1Ce it provides the quickest acquisition of a word from storage when it is needed. The order in which the instructions are taken from storage and executed is regulated by the computer control :;ection. Instructions are chosen for execution according to the content of a IS-bit register in the control section. This register holds the storage address of the instruction to be executed. To start the execution of a program', the address of the instruction to be first executed is placed in this register. A controlled series of electrical impulses then (1) "review" the state of the components of the register, determining its content, (2) direct the process of referencing this location, (3) detect the information stored at this address, and (4) transfer it to a 36-bit register in control reserved for holding an ins,truction during its execution. An instruction remains in this register until it is replaced by the instruction to be executed next. The address of thi~ instruction is again taken from the 15-bit address register. This 15-bit control register has a "counting" facility. Normally, the number represented ir. the register is advanced by one after each reference to storage is made. This procedure results in the automatic acquisition of instructions for execution from consecutive storage locations. The presence of the 36 bits of an instruction in the control register reserved for it, authorizes and enables control to direct the execution of the instruction. The particular state of the six left-most stages of the register (those holding the operation code of the instruction) allows a certain sequence of pulses to be released to a portion of the control circuitry~ Each pulse in this sequence initiates a series of pre-determined operations. The particular series inaugurated depends upon the combination of bits comprising the operation code. When, during the series of operations, the information at the u or v addressed portion of the instruction is needed, a review occurs of the states of the stages 29 through 15, or 14 through 0, of the register holding the instruction. The process then is to determine this address, reference it, and transfer the data from this location to the regis.ter where the data is needed. All computer operations depend primarily on sequences of pulses originating in the control section. The pulses are :issued regularly from a "clock source" at the rate of one every two microsecond~;. Their release, and the time of their release, to various portions of the control section and to other sections of the computer depends upon the current status of computer operation. This conditional initiation of any sort of a computer operation effects an orderly progression of the steps involved in the execution of an instruction and a series of instructions. The basic functional make-up of the Univac Scientific General-Purpose Computer System is illustrated i.n Figu:re 1 in which the major sections, input output, arithmetic, storage, and cO.ltrol are delineated. A brief discussion of some of the components of the storage, arithmetic, and control sections follows in the subsequent paragraphs. A discussion of the input output systems is found later in the text. PX 34 DESCRIPTION OF THE COMPUTER PHOTO ELECTRIC TAPE READER HIGH SPEED PUNCH ELECTRIC TYPEWRITER ,11 TYPEWRITER REGISTER HIGH SPEED PUNCH REGISTER I INPUT OUTPUT REGISTER A OPTIONAL INPUT OUTPUT EQUIPMENT I INPUT OUTPUT SYSTEMS INPUT OUTPUT REGISTER B I~ I~ ACCU M ULATOR Q REGISTER ARITHMETIC - --"- X REGISTER MAGNETIC CORE MAGNETIC DRUM CO NTROL Solid lines connecting blocks indicate the routing of binary information. Dashed lines carry binary information used for storage reference purposes. Information may be routed in both directions unless arrows on a line indi.cate a one-way transfer. Lines which carry control signals between the above blocks are not shown on this diagram. Figure 1. Simplified Block Diagram of the Univac Scientific General-Purpose Computer System PX 34 3 DESCRIPTION OF TIlE COMPUTER 2. PRINCIPAL REGISTERS A large quantity of registers, PJ~oviding static storage of information, is necessary in the computer to facilit;)te the enumerable computer operations. The number of stages comprising a relJister depends upon the function that is served by the register. For instance, a register intended to hold a computer instruction consists of 36 stages; a register intended to hold a 15 binary digit address consists of 15 stages. Operations which use in some fashion the content of a register affect all the stages 6f the register simultaneously. This is described as the "parallel mode" of operation, as opposed to the "serial mode". In the serial mode of operat.ion any sampling, setting, or reversing the states of the stages of a register, Ilroceeds cyclicly one stage at a time. In addition to the various contrcll registers which are involved in the execution of an instruction, there are three other principal registers which are involved quite frequently. These registers are listed below~ a. X REGISTER. - The X Register is used during the execution of any instruction whose u or v add)~ess references an addressable location. The information addressed by u or v is transmitted from its location to the X Register, and from -:he X Register to the desired position in the computer. Thus the X Reuister serves as a transmission register for most internal routing of information. In addition the X Register functions as a component of the arithmetic section of the computer. For the corresponding arithmetic register, the X Register holds the addend, subtrahend, multiplieand, and divisor. In general, the X Register, abbreviated as X, is a 36-stage register capable of temporary storage of 36 bits of information. b. Q REGISTER. - The Q Register functions as a component of the arithmetic section and also serves as an addressable storage device. The Q Register, designated as Q, cc)mprises 36 stages, affording temporary storage to 36 bits of information. For the corresponding arithmetic operations, the Q Register holds the multiplier, quotient, and 10~Jical multiplier. The Q Register derives its nomenclature from the us{~ of this register for the assembly of the quotient during a div ide operation. The Q Register has "shift left" with "end-around shift" facilities. When a "shift left once" operation is completed, each stage of the register is in the state whieh was reflected by the stage immediately to the right of it before the operation began. The right-most stage of the register is set to the state of the left-most stage. In other words, the binary digits held in a register are displaced to the left, as many places as is specified by the shift operation, with the leftmost bi t being shifted in a eircular fashion to the right end of the register. c. ACCUMULATOR. - The Accumulator functions as a component of the arithmetic section and also serve~; as an addressable storage device. The Accumulator, referred to by the letter A, comprises 72 stages, ~~4 PX 4 DESCRIPTION OF THE COMPUTER affording temporary storage to 72 bits of information. Because the Accumulator is capable of holding twice the number of bits of an ordinary storage register, it is often referred to as a "double-length" register. The left-most 36 stages of the Accumulator are referred to collectively as AL; the right-most 36, as AR. For the corresponding arithmetic operations, the Accumulator holds the sum, difference, product, dividend, and (at the end of a divide operation) remainder. The Accumulator derives its nomenclature from the use of this register for the accumulation of sums. The double length feature of this register allows the formation of sums of more than 36 bits. It also allows the formation of the full product of any two 36 bit numbers, regardless of their numerical value; and conversely, it allows the formation of a quotient whose numerical value is the greatest possible (in absolute value) to represent in a 36-bit register. The Accumulator also has the "circular shift left" property described for the Q Register. The 72 bits held in the register are displaced to the left, as many places as is specified by the shift operation, with the left-most bit being shifted in a circular fashion to the right end of the register. The contents of a register, i.e., the bits represented by the states of its stages, is designated by enclosing the symbol for the register in parenthesis. For example, the 36-bit content of the X Register is denoted as (X); the content of the 36 right-hand stages of the Accumulator is denoted as (AR). 3. STORAGE DEVICES The information which is held in storage consists of instructions which are to be executed and the operands needed by these instructions for their execution. The location of each instruction or operand is referred to as its "address". a~ ADDRESSED STORAGE LOCATIONS. - There are four classes of storage locations which are individually addressed: Magnetic Drum Storage, MD; Magnetic Core Storage System, MCS; the Accumulator, A; and the Q Register, Q. These classes have the following addresses assigned to them: Storage Class MCS-O MCS-l MCS-2 Illegal Addresses Q A MD MD MD MD (Group (Group (Group (Group 4) 5) 6) 7) Octal Equivalents of Addresses 00000-07777 10000-17777 20000-27777 30000-30777 31000-31777 32000-37777 40000-47777 50000-57777 60000-67777 70000-77777 PX 34 5 Storage Space: Number of Words 4096 4096 optional 4096 optional 1 1 double length 4096 4096 4096 4096 DESCRIPTICN OF THE COMPUTER The banks of Magnetic Core StoraJe, MCS-l and MCS-2, are optional to the computer system. If this storage is not provided, the addresses assigned to MCS-l and/or MCS-2 are illegal addresses. Additional storage, in which the information is not individually addressed, is provided by up to ten Uniservo magnetic tape units. Information is acquired from storage in MCS, MD, A, or Q by first determining the storage class of the address of the instruction or operand desired. Following this, the address is translnitted to the locating control of the proper storage class where the specific storage location is found (if the storage class is MC or MD). Then the information at this location is transmitted to the X Register. Operations of this kind are referred to as "reading" operations. "Writing" operations, or the transfer of :lnformation to a storage location, are accomplished in a similar manner with the information in the X Register being placed at a storage address as located by the control circuitry~ b. MAGNETIC DRUM STORAGE SYSTEM (MDL - The Magnetic Drum Storage System provides medium-access binary storage. Digital information is stored in the form of magnetized areas on the surface of a continuously rotating cylinder called a magnetic drum. The medium of storage is a magnetized bipole having either of two polarity orientations in the lateral (or peripheral) direction. For all practical purposes, information recorded on the drum is stored permanently. It may, however, be removed by special erase techniques, or it may be replaced by/simply writing new information over it. Reading from the drum does not in any way alter the contents of the location read. Each individual storage location is identified by specifying its angular and axial coordinates on the drum surface. The 36 bits of a word are stored at 36 individual axial positions on the drum. A drum group has angular storage space available in normal drum operation for 4096 36-bit words. A total of four drum groups results in an MD storage capacity of 16,384 words. When a word or a portion of a word is to be transmitted to or from the magnetic drum, all the bits to be transmitted are handled simultaneously, i.e., in parallel. Information may be recorded or read in ,any given area only once during each drum revolution, resulting in a maximum access time of 34 millisec6nds. The first octal digit of an MD address (4, 5, 6, or 7) specifies the drum group or axial location of a word. The remaining four octal digits specify the angular address (0 through 7777 octal) of the word in the designated group. The angular locations during a revolution of the drum are counted and recorded by the Angular Index Counter. An MD reference made during a computer operation is translated according to a chosen "interlace", and held in an address interlace chassis~ When coincidence is detected between these two MD addresses, the reading or writing operation occurs. According to the pre-selected interlace, the reading or writing occurs at a regulated interval from the actual drum location originally referenced. Interlaces of 4, 8, 16, 32, or 64 are available. The address held in the address interlace chassis is the modular product (in binary) of the angular portion of the MD address referenced, and the power of two specified by the interlace. If an interlace of four is chosen, coincidence occurs between consecutive MD references and the address of every fourth MD location, etc. For example, if an interlace of eight is chosen, an MD reference listed below in the left-hand column results in the selection of the MD location PX 34 6 DESCRIPTION OF THE COMPUTER listed below in the right-hand column. Original Reference As held in the Address Interlace Chassis 40000 40001 40002 40000 40010 40020 40777 41000 41001 47770 40001 40011 41777 47771 47000 47001 40007 40017 47777 47777 The variable interlace system allows the selection of the minimum computer time for consecutive MD read and write operations. The time required for one drum revolution is 34 milliseconds. Thus, the time which elapses between the positioning of physically adjacent drum locations for read or write operations is approximately eight microseconds. An interlace of "1" would mean that references to two consecutive MD addresses would have to be made in less than eight microseconds for the drum to be properly positioned for the second read or write operation before a complete drum revolution has ensued. If the references are made in less than 32 microseconds, a four interlace effects the minimum time possible for the MD read or write operations. The interlace which is in effect is indicated by an illuminated light on the upper right section of the Supervisory Control Panel of the computer. The preceding paragraphs were written with the normally addressable MD storage locations in mind. Each drum group has, in addition to the previously mentioned 4096 locations for storage, a "reserve space" of 160 locations which are not normally addressable. Communication is established with these locations, and broken with the rest of the drum locations, by setting the NORMAL/ABNORMAL DRUM switch on the lower right section of the Supervisory Control Panel to ABNORMAL. This will allow the detection of coincidence with reserve space locations zero through 0237 (octal). When the normally addressed portion of the drum is in position for reading or writing, the Angular Index Counter counts from zero to 7777 (octal) but no coincidence tests are made. When the reserve PX 34 7 DESCRIPTION OF THE COMPUTER space on the drum is in position for reading or writing, the Angular Index Counter counts from zero to 0237 (oct.al) and checks for coincidence with addresses in the address interlace chassis. The MD references made for Abnormal drum reading or writing must be properly coded so that their form in the interlace chassis will be octal --0000 through -0237. (The first octal digit may be 4, 5, 6, or 7 depending upon the drum group to be addressed.) c. MAGNETIC CORE STORAG~ SYSTEM (MCS). - Each bank of the Magnetic Core Storage System provides rapid-access storage for 4096 36-bit words. Each core is a bistable element capable of stOl~ing a "1" or a "0", dependent upon the direction of magnetization of the core. The cores are arranged in a 64 x 64 matrix with 36 such matrices. The 36 digits of a given word are represented by the state of 36 corresponding cores, one in each of the 36 matrices. Reading and writing operations of a word, or portion of a word, are performed in a parallel mode with a simultaneous tr~lnsmission of bits. Certain sequences of pulses on wires through the cores, p]~oducing magnetizing forces of a certain polarity, are used to perform the reading and writing operations. Reading from MC does not in any way alter the contents of the location read. Magnetic Core Storage is non-volatile; comparable to non-volatile storage in the Magnetic Drum Storage System. d. A AND Q AS STORAGE MEDIA. - The Accumulator and Q Register are available as temporary storage registers since they may be addressed. The Q Register is normally addressed as octal 31000 al":hough any of the addresses 31000-31777 are permissible. Similarly, the Accumulator is normally addressed as 32000 with the addresses 32000-37777 being permissible. 4. CONTROL COMPONENTS. Each of the function groupings of the computer, input and output, storage, and arithmetic, has individual control systems which direct the operations of the section under their influence. 'rhese control systems are in turn directed in their operations by the main computer control. This overall influence exerted by computer control is necessary for time-wise reasons: an established sequence of internal actions is essential for the processing of any coded information. The computer control initiates and superintends these patterns of actions during their performance. The main control section receives the instructions which the computer is to carry out; it interprets them, and directs their execution with the operands specified. The computer must be man~ally started, but can be either automatically or manually stopped. (In addition to being automatically controlled by a program of instructions, the computer can be manually controlled from the Supervisory Control Panel which contains all the necessary controls and indicators for manually operating the equipment.) The principal components of the control section are as follows. a. PROGHAM ADDRESS COUNTER. - The Program Address Counter, PAK, is a 15stage additive register. During computation PAK generates the consecutive addresses of the programmed instructions to be executed. The address in PAK is normally referred to each time an instruction word is to be obtained from the PX 34 DESCRIPTION OF THE COMPUTER computer memory. The starting address for a computation may be manually inserted into PAK before the START (operation) button is pushed. If this is done, computation will begin by picking up the instruction stored at that address. If PAK is not manually pre-set, it will automatically be set to MD address 40000Q During the normal termination of an instruction, the next instruction to be executed (the address of which is held at that time in PAK) is extracted from storage; and the content of PAK is advanced by one. Thus, during the termination of the instruction at address y, the instruction at y + I (the address held in PAK) is extracted from storage, and PAK is advanced to y + 2. If the instruction at address y indicated that the sequential acquisition of instructions be disrupted by a jump to an instruction not stored at a consecutive address, this instruction's address is inserted into PAK previous to the termination operations. The program interrupt feature of the Univac Scientific, discussed in a later paragraph, interrupts the normal process of acquiring the address of the next instruction from PAK. The generation of consecutive binary numbers in PAK is restricted by the following conditions in its physical structure. There is no communication between the stages PAKl2 and PAKII unless the stage PAKl4 contains a value of one. Thus, PAKl2 will not be affected by the advance of PAK after the contents of PAKII ..• PAKO reach the value of 212_1 (7777 octal). The next advance of PAK, after such a value is reached, results in the contents of the stages PAKII •.• PAKO being changed to zeroes. If PAKl4 does contain a one, the contents of PAK may be increased until the contents of PAKl3 ••• PAKO reach the value of 2 14 -1. Then, since ~here is no communication between the stages PAKl3 .•• PAKO being changed to zeros with the value of one being left un. disturbed in PAKI4. This "closed loop" system effects the generation of successive MCS addresses in PAK as follows: the addresses of each bank of MC can be advanced to (octal) -7777, with the next advance of PAK resulting in its contents becoming (octal) -0000. If any of the Magnetic Drum addresses, regardless of the group, are represented in PAK, the addresses can be generated consecutively to 77777 with the next advance of PAK resulting in its contents becoming 40000. b. PROGRAM CONTROL REGISTERS. - The Program Control Registers, PCR, receive each instruction and temporarily store it during its execution. The registers consist of the Main Control Register, MCR, the U Address Counter, UAK, and the V Address Counter, VAK. Each instruction sent to PCR consists of a 6-bit operation code which is stored in MCR, a IS-bit u address portion which is stored in UAK, and a IS-bit v address portion which is stored in VAK. Each instruction is obtained from some 36-bit storage location as specified by the Program Address Counter, PAK. The physical structures of UAK and VAK are similar to that of PAK. An additional restriction on the generation of consecutive binary numbers in UAK and VAK is as follows. If an A or Q address is in UAK or VAK, it is not possible to advance the content of the stages zero through eight of UAK or VAK beyond 29 -1 (octal 777). Thus, A or Q addresses are generated from octal 32000 to 32777 to 32000 and from octal 31000 to 31777 to 31000, respectively. The generation of consecutive MC and MD addresses is the same as in PAK. c~ MASTER CLOCK. - All the activities which take place within the computer, except for certain ones in the output sections, are synchronized by a central PX 34 9 DESCRIPTION OF THE COMPUTER timing system, called the Master Clock. During NORMAL computer operation, the clock generates 500 kc clock pulses based on timing pulses from the Magnetic Drum Storage System, and after exerting certain controlling influences over them, supplies them to circuits throughout the computer. During TEST operations, a 500 kc oscillator may be used instead of the drum as the basic source of timing pulses. d. MAIN PULSE DISTRIBUTOR. - The Main' Pulse Distributor, MPD, receives clock pulses and distributes them ill sequences of from four to eight pulses to the Command Timing Circuits. The d:lstributor supplies each of the pulses sequentially on its e.igbt output lines. In an eight pulse cycle, all of the output lines are used, and the pulses are designated, in the order of their generation, MPO through MP7. The s(!lection of a particular cycle is made on the basis of the operation code held in the Main Control Register, MCR. Each code selects the sequence which will permit the performance of the generation in the least possible time. e. MAIN CONTROL TRANSLATOR. - The principal translator of the Main Control Translator, MGT, receives a 6-bit operation code from the Main Control Register and produces accordingly a single operation code ftenable". In the COluluand Timing Circuits, the enable from MC:~ is used in the selection of the sequence of commands which are needed to exeeute the instruction currently in the Main Control Register. In the Main Pulse Distributor, the MCT enable is used in the selection of the sequence of main pulses required for the operation. f. COMMAND TIMING CIRCUITS. - The Command Timing Circuits, CTC, produce a discrete sequence of commands which execute the specified operation. The commands initiated are chosen by combilling the operation code enable from the Main Control Translator and the pulse cy(:le received from the Main Pulse Distributor. A pulse cycle consists of two or more of the pulses MPO through MPS, and MP6 and MP7. It initiates the commands which execute the operation on pulses MPO through MPS; reads the instruction to be executed next from storage into the X Register on MP6; then transfers the instruction from X to PCR on MP7. g. PROGHAM INTERRUPT CONTROL •.. An interrupt selection interferes wi th the execution of the normal termination commands occurring on MP6. The normal termination commands take the addreHs of the next instruction to be executed from PAK and then advance PAK. Witll the interrupt in effect, the address 00002 in Rapid Access Storage, F3, is cho~jen as the address of the next instruction to be executed. This instruction i~i read from storage to the X Register. On MP7 the normal transfer of the content of X to PCR is made. This puts the instruction at F3 in position for execution and leaves the address in PAK undisturbed. Thus, for example, if the interrupt becomes effective during the execution of an instruction at address y, the address y + 1 in PAK (or u or v if the instruction being executed calls for a jump) is undisturbed during MP6, and (F3) is taken as the next instrllction. By appropriate programming, the content of PAK may be inserted in a temporary storage location and later referred to in such a way as to return operation to the instruction stored at the address in PAK. The selection of an interrupt i~; effective only on an MP6 generated during the normal termination commands. Tl1is means that the selection of an interrupt during the repeated execution of an instruction is not effective until the PX 34 10 DESCRIPTION OF THE COMPUTER repeating is brought to a conclusion, either by the execution of the instruction n times or by the occurrence of a jump. (This is discussed in more detail under the Repeat instruction, Sequential Presentation of Instructions section.) The interrupt selection may be made manually from the Supervisory Control Panel or as a function of input output operations. Selecting an interrupt option during input output operations is discussed later in the Input Output section. Briefly, an interrupt selection may be made for input output operations by appropriate programming or a manual setting on the piece of external equipment involved. 5. REPRESENTATION OF NUMERICAL VALUES The bi-stable characteristic of the elements of the computer dictates the use of binary number notation in the representation of information. However, the computer cannot determine whether an array of bits is an instruction, data with numerical value, or data coded in some arbitrary fashion. If an array of digits is confronted in a register normally reserved for holding an instruction, the computer will try to treat it as an instruction; if an array of bits is confronted in an arithmetic operation, the computer will deal with it as having numerical value. The computer treatment of an array of bits in arithmetic operations assumes the assignment of a numerical value to the bits as follows: the left-most bit of an array determines the sign of the number; a "1" designates a negative value; a "0" designates a positive value. The remaining bits of the array determine the absolute value of the number. One's complement notation is used for expressing the negative of a quantity. The one's complement of a binary digit is the digit subtracted from the value of one. The one's complement of a digit represented by the state of a bi-stable element is formed by merely reversing the state of the element. In a number system which includes all the possible combinations of "O's" and "l's" from 000 ••. 000 to III ••• Ill, positive quantities are represented by the combinations in which the left-most bit is zero, 000 ••• 000 to 011 ••• Ill. The negatives of these quantities are represented by their one's complement, the combinations in which the left-most bi t is one, III ••• III to 100 ••• 000. This left-most bit is termed the sign-bit of the number. The bits representing a number are held in an arrangement of bi-stable elements, such as the stages of a register. The designation of the left-most element of k elements is given the subscript k-l; the designation of the adjacent element is given the subscript k-2; and continuing to the right, the designation of the right-most element is given the subscript O. For example, the 36 stages of the Q Register are designated as Q35, Q34, ••• , Ql, QO. In general, the stage Sk-l of a k stage register holds the sign bit of a number, and the absolute value of the number is determined by the contents of stages Sk-2' .•• '~O. If the sign bit is "0", the bits in stages Sk-2, .... ,SO are the coefficients ai of a binary number ak_22k-2 + ak_32k-3 +..• a 12 l + a020. If the sign bit is "1", the one's complement of the bits in stages Sk-2, .... ,SO are the coefficients of the absolute value of the number. (The term "most significant bit" is given to the first digit from the left which differs from the digits to its left~) The values possible to represent in k bi-stable elements are in the range with the limits of ± (2 k- l -l), inclusive. In a PX 34 11 DESCHIPTION OF THE COMPUTER 36 stage register, the limits are ±C2.35_1); in the 72-stage Accumulator, the limits are ±C271_1). The modulus of 1 number system represented by k stages is 2k. However~ if "plus zero" and "minus zero" are treated as a unique quantity, as is the case in the Univac Scientific, the modulus is 2k -l. The assumption of the binary point to the right of the right-most bit means that all numbers are considered ,as integers. This does not mean, however, that numerical operations are restricted tl) integers only or to integers in these ranges. A binary number s may be exp:ress edt as s = s 12 s2 • If s 1 and s2 may be expressed as integers with values in the range appropriate for their placement in the computer, sl and s2 may represent in the computer the number s. Numerical operations involving sand t (t = t 2 t 2) are performed machine-wise by the 1 proper arithmetical procedures involving sl and tl," and s2 and t2. Fractions may be represented machine-wise by integral values of sl and s2; s2 being negative. If s is scaled to its maximum representation by 36 bits such that 235 >lsIf~ 234 , the number s is said to be "normalized tt • To summarize the preceding discus:;ion, numerical quantities, represented in the computer by k hi-stable elements, are integers of a binary number system. A negative number N of this system is represented in one's complement notation as 2k_1 - INI. The range of integer:; I possible to represent in a 36 stage register is in the 6. 72-s~age Accumulator, ARITHMETIC OPERATIONS. a. GENERAL. - The modulus of the one's complement binary system, as involved in arithmetic operations in ~~he computer, is 2k_l where kis the number of stages in the registers involved in the operations. If the registers involved in the operations consist of 36 stages, the modulus of the number system is 236 _1. If the Accumulator is involved in the operations, the modulus of the system is 272 _1. This modulus of 2k_:l (instead of 2k) results from the generation during arithmetic operations of 8 unique representation of zero, i.e., each bi-stable element in the "0" state. The generation of a negative zero representation, i.e., each bi-stable element in the "1" state, is not possible. When an instruction necessitates 1~he transmittal to the Accumulator of a 36-bit integer, the conditions are establi~hed during the operation that change the modulus of the integer from 236 _1 to 2 2_ 1• This is effected by assuming the existence of 36 bits to the left of the sign-bit. This "72-bit" integer is then transmitted to the Accumulato]~. The final modular contents of A reflects the value of the "72-bit" inteuer according to the nature of the transmitting operation. If it is desired that the one's complement signed value of the 36-bit integer be retained, the Ol)eration assumes that each of the simulated 36 left-hand bits has the value of the sign bit. Such an extension of a 36-bit number is designated as a double lengt.h extension, D(L), where L is the location address of the 36-bit number and (L) is the content of that address. If it is desired that the value of the machine expression of the 36-bit integer be left undisturbed by the transmitting opera1.ion, the value of the sign-bit of (L) is disregarded, and the assumption is made that 36 zeroes exist to the left of the sign-bit of the number. This "72-bittt number is designated as SCL), a split double-length extension. PX 34 12 DESCRIPTION OF THE COMPUTER When one of the above transmissions to the Accumulator is required, the 36bit integer is first placed in the X register (by the operations of whichever instruction is being executed). (The only means of information transfer to or from A is via X.) Then, according to the instruction being executed, a machine sequence is performed which adds or subtracts one of the double length extensions to or from the content of the Accumulator. Most of the arithmetic operations in the computer are accomplished by combinations of such computer commands as listed below. The commands themselves, which are internal computer directives, are instigated as the result of computer control interpreting a particular instruction operation code. Some of the more commonly used commands are as follows: Clear X Complement X Clear Q Shift Q Clear Clear Clear Shift A AR AL A Commands which direct transmissions between X, Q, and A A series of subcommands which in different combinations accomplish the following: Add D(X) to A Subtract D(X) from A Split Add X to A, i.e., Add S(X) to A Split Subtract X from A, i.e., Subtract S(X) from A (1) CLEAR X, Q, OR A. - Commands which direct the clearance of any register result in each stage of the register being set to its zero state. (2) COMPLEMENT X. - The command which directs the complementation of the cOntent of the X Register reverses the state of each stage of the register. The complement of the content of X is denoted as (X'l (3) SHIFT Q OR A. - These commands effect the left shift of the bits in the register the number of places prescribed by the instruction and established internally in a shift counter. A shift left of k places is equivalent to a right shift of 36-k or 72-k places. A left shift effects a modular multiplication by a power of two. A "right shift" is equivalent to a modular division by a power of two. The word modular is emphasized because of the circular shifting feature which effects the shift of the bit represented in the left-most stage to the right-most stage. The operations of addition and subtraction are treated subsequently. PX 34 13 DESCR 1PT 10:'1 OF THE COMPUTER b. ADDITION AND SUBTRACTION. - The fundamental arithmetic operation of the computer is subtraction. The Accumulator is termed a subtractive Accumulator because all additions and subtractio.ls arE- performed by a subtractive process. The ini,tia 1 c.ontent of A, (A) i, is the minuend, and the fina 1 content of A, (A)f' is the remainder. This subtral~tive process is used as the basis of all arithmetic operations involving addition and subtraction. This prevents, as the result of an arithmetic operation, the representation of zero by a one in each stage of the Accumulator. The process of subtraction neces:~itates an ability to borrow from a lefthand digit or digits. Machine-wise ·this is made possible by the parallel construction of the stages of the ACCUmlJlator. The end-around borrow as ,discussed in Appendix A. of this volume, is a feature of subtraction in the Accumulator: a borrow propagated past the stage A'71 is applied to the stage AO. The number to be added to, or subtracted from, the content <:>f the Accumulator is placed in the X Register. Thl~n, according to the operation desired, a sequence of actions occurs which lea 1res in the Accumulator the desired answer. If a subtraction sequence is execute(l, the remainder is reflected in the final content of the Accumulator as the initial content of the Accumulator minus one of the double-length extensions of the content of X, i.e., (A). - D(X) 1 or If an addition sequence is executed, the sum is reflected in the final content of the Accumulator as the initial content of the accumulator minus the complement of one of the double-length extensions of the content of X, i.e., (A) • D(X )' (A)·1 S (X) t 1 or = • Any references in this text to the acldition of a number to the Accumulator should thus be interpreted as the pr(tcess of subtracting the complement of the number from the Accumulator. Actually, the machine subtraction sequences use procedures of an addition sequence after an appropriate complementation of (X). The general procedures of the fOtlr addition and subtraction sequences are listed below with examples of the opE!rations given to the left. The examples use an X Register of four stages and an Accumulator of eight stages. These sequences use the same internal subcommands in different combinations according to the operation desired and the content of the X Register. PX 34 14 DESCRIPTION OF THE COMPUTER ADD X TO A Assume the existence of D(X) Subtract complement of D(X) from A SPLIT ADD X TO A Assume the existence of S(X) Subtract complement of S(X) from A (A )i (X) 1. D(X)i D(X)i' = 0000 = = 1111 = 0000 0110 1100 1100 0011 minus (A)f = 0000 0000 0000 0110 0011 0011 (A) 1. (X) 1. S(X )i S(X) i ' = 0000 = = 0000 = 1111 0110 1100 1100 0011 0000 1111 0001 0001 0110 0011 0011 1 0010 (A) 1. = 0000 (X )i = (X' ).1 = D(X' ). = 0000 D(X' )~, = 1111 1 0110 1100 0011 0011 1100 0000 1111 0000 = 0000 0110 1100 1010 1 1001 (A) 1. = 0000 (X) 1. = S(X)i = 0000 S(X)·· = 1111 [S(X) ~.] • = 0000 0110 1100 1100 0011 1100 0000 0000 1111 0110 1100 1010 1 1001 minus borrow (A)f SUBTRACT X FROM A Complement (X) Assume the existence of D(X) Subtract complement of D(X) from A = minus borrow (A)f SPLIT SUBTRACT X FROM A Asstime the existence of S(X) Complement S(X) Subtract complement of S(X) from A minus borrow (A)f PX 34 15 = 1111 (:=+6 ) (:=-3 ) (:=+3 ) (:=+6 ) (:=+12 ) (:=+18) (:=+6 ) (:=-3 ) (:=+9 ) (==+6 ) (:=+12 ) (==-6 ) DESCRIPTI01~ OF THE COMPUTER c. MULTIPLY SEQUENCE. - Multiplication performed machine-wise uses the shifting facilities of the Accumulator and the Q Register, and the Add X to A sequence. The execution of an instruction which orders a machine multiplication places the multiplier in the Q Register, Q, places the multiplicand in the X Register, X, and forms the product in the Accumulator, A. The product is formed by adding the multiplicand, or D(X) machine-wise, the appropriate number of times, as determined by the ~its of the multiplier, (Q), into the Accumulator. The procedure is as follows. Repeat 36 times: Shift (A) left one place. If the current (Q~15) is 1, add D(X) to.(AL Shift (Q) left one place. 1. 2. 3. The result would be the formation of the sum {{CQ35 • O(Xl) 2 + Q34 • O(Xl} 2 + ... + Ql • O(Xl} 2 + QO • O(Xl. Thus, the multiplication of a number in X by a number in Q results in a sum in the Accumulator of An example of the multiplication process follows, using four bit Q and X registers and an eight bit Accumulat,)r. The machine-wise formation of a sum by complementation and subtraction is n,)t shown. (X) (Q) = 0011, = 0101, multiplicand of decimal 3 multiplier of decimal 5 Stages of A initial content of A o 0 0 0 000 o 0 0 0 o o shift (A) left add D(X) to (A) 000 0 0 0 0 0 0 1 1 001 1 0 0 0 o 1 shift (A) left o o o 0 0 0 0 0 0 0 0 0 o 1 100 o 0 0 0 shift (A) left 0 ,~--;;.... 1 0 1 III 0 shift (A) left add D(X) to (A) final content of A (product = decimal 15) 1 1 The procedures above form the pr(~uct of the actual binary numbers in Q and If the multiplier and multiplicand are positive, the product formed by the process, (Q)(X), will be the desired product. If the multiplier, Mq , is negative, the content of Q is 236 - 1 - IMql , ahd the product formed by the x. PX 34 16 DESCRIPTION OF THE COMPUTER computer ~~ 236 (X) - (X) - 1M I(X). Since the product desired is - I Mql (X), a correctiv~. of ~he product f~rmed by the computer is necessary. The correction. -2 36 (X) + (X), is made during the Multiply Sequence by (1), subtracting O(X) from A before the first performance of "Shift A left one place" (providinu the correction -2 36 (X) since a shift left of 36 places follows the subtraction); and (2), adding D(X) to (A) after the last performance of "Shift Q left one place", providing the correction +(X). An example of multiplication with a negative multiplier is given below. o 0 0 0 o 000 1 1 1 1 1 1 1 1 (X) = 0011, multiplicand of decimal 3 (Q) = 1010, multiplicand of decimal -5 000 0 001 1 1 100 initial content of A subtract D(X) from (A) 1 001 shift (A) left add D(X) to (A) 000 0 1 1 1 1 o0 1 1 1 1 1 1 100 1 shift (A) left 1 1 1 1 o o o shift (A) left add D(X) to (A) o 000 1 1 1 1 1 110 000 o 1 III 1 100 0 1 1 0 1 1 1 1 0 110 1 o0 1 1 o0 0 0 shift (A) left add D(X) to (A) final content of A (product = -15) A multiplication with a negative multiplicand requires no correction. A multiplication with both multiplier and multiplicand negative requires the same correction cited above. If the instruction being executed is such that the product of (Q) and (X) is to be added to a number already in the Accumulator, the content of A is shifted 36 places to the left preceding any of the multiply operations. This positions the most significant digits of (A) in AR in readiness for the additions of the multiplicand toA and the shifting operations. Prior to the actual multiplication operations of the MultiRly Sequence, the initial content of A is tested for the condition 271 > I(A)il~270. If this is evidenced by (A)35 f:. (A)34' an A Fault is indicated on the Supervisory Control Panel, and machine operations are stopped. This condition indicates the possibility of an "overflow" during the Multiply Sequence, i.e., the modular sums resulting from the additions of D(X) to (A) may reach the positive or negative value capacity of A,2 71 - 1 or 1 - 271; and, as the result of continuing additions, become a number, S :: 1 - 271 or S~ 271 - 1, thus destroying the cumulative effect desired. PX 34 17 DESCRIPTION OF THE COMPUTER d, DIVIDE SEQUENCE. - The machillB proeess of division, as ordered by the Divide instruction, employs the Accum~lator, the X Register, and the Q Register in such a manner that The 72-bit dividend is initially contained in the Accumulator; the divisor is placed in the X Register, and the quotient. is formed in the Q Register with the remainder of the division left in A. The division process utilizes the shifting facilities of Q and A and the operations which add and subtract D(X) into A. In general, the steps of the Divide Sequence are as follows. 1. Shift (A) left 36 places. Repeat the following steps 36 tines: 2. Shift (A) left once 3. Set (QO) to zero or one 4. Add or subtract D(X) into A 5. Shift Q left one. The operation performed insteps 3 and 4 is determined by a relationship between appropriate digits of the dividend and divisor. The basic pri~ciple of the Divide Sequence is as follows: decrease a postive dividend ~~ the product of the divisor and descending powers of two, beginning with 2 J, until a negative number results; increase this remainder by the product of the divisor and successive descending powers of two until a positive number results; decrease this number, etc. Continue this procedure until the product of the divisor and 20 has been added or subtracted, yielding the final remainder. Note that the product mentioned above may in itself be positive or negative depending on the sign of the divisor. Each time a product is subtracted r a one is inserted in the right-most stage of the Q aegister and subsequently shifted left once; and each time a product is added, the contents of Q, as it stands, are shifted left once. After the final shifting of those bits inserted in Q, the register will contain a correct value of the quotient although a negative final remainder as derived above may necessitate an increase or decrease in the value of the quotient. If the final remainder of the above procedure is negative, the remainder is increased by the absolute value of the divisor and the quotient adjusted accordingly by increasing or decreasing its value by one. The examples below illustrate the basic principle of the Divide Sequence. The examples use four bit Q and X registers and an eight bit Accumulator. The machine processes of shifting the bits in the Accumulator and the Q Register, which facilitate the division machinewise, are not shown. Also, the machinewise formation of sums and differences by complementation and subtraction is not shown. PX 34 10 DESCRIPTION OF THE COMPUTER Exam121e 1 Dividend is 0000 1110, (A ).Divisor is 0100, (X) 0000 010 1110 0001 1111 0000 0000 0000 0000 1110 0000 1101 0000 1101 1000 0110 0100 0010 (=14) (= 4) +14 -( +32) -18 +(+16) plus D(X) -22 - 2 +(+ 8) plus D(X) _21 + 6 -(+ 4) minus D(X) - 20 + 2 Remainder = Dividend 3= minus D(X)-2 In this example the quotient is derived as follows: the divisor- is such that it may be subtracted from ·the dividend 23 -22_21+2 0 times, or in binary 1000 -0100 -0010 +0001 0011 (=3) which is the content of the Q Register after the final shifting of the bits inserted into it_ Thus, the final results of this division are Quotient is 0011, (Q)f Remainder is 0000 0010, (A)f (::;3) (=2 ) Example 2 (=14) (=-3) Dividend.is 0000 1110, (A) 1Divisor is 1100, (X) 0000 1110 1111 1111 0000 1111 1111 1111 1111 1110 0111 0101 0011 0010 1001 1011 1100 1110 Dividend plus D(X)-2 3 = +14 +(-24) -10 minus D(X)-22 -( -12) + 2 plus D(X) -21 +(-6) -4 minus D(X)-2 0 -(-3) Remainder = -1 In this example the quotient is derived as f~llows: the divisor is such that it may be subtracted from the dividend -2 3+2 -21+20 times, or in binary -1000 +0100 -0010 +0001 1010 (=-5) PX 34 19 DESCRIPTION OF THE COMPUTER which is the content of the Q Register after the final shifting of the bits inserted into it. Thus, the results of the division process thus far are Quotient is 1010, (Q) Remainder is 1111 1110, (A) (=-5) (=-1) but, since the remainder resulting from this division is negative, the value of the divisor is subtracted from it, and the quotient is subsequently increased by a value of one. Thus, the final results of the division process are a Quotient of 1011, (Q)1' Remainder of 0000 0010, (A)f (=-4) (=+2) If the dividend is negative, the procedure for dividing is essentially the same, with the dividend being first increased to a positive number, then decreased, etc. During the division sequence (but before the quotient is adjusted for a negative remainder, if such is the case) machine divide checks are made which determine if the value of the quotient should be an integer which would exceed the capacity, 235 -l~ I ~1-225, of the Q Hegister. If such is the case, an A Fault is indicated on the Supervisory Control Panel, and the machine operations are stopped. Since these divide checks are made before any final adjustments to a (negative) remainder and quotient, the division process as illustrated previously, but with a negative dividend, could result in an inaccurate value for the quotient if a negative remainder was left during a division in which the quotient was 235 _1 or 1-235. To take care of such cases in such a way that the division will be stopped by a divide check, an initial correction and an end correction are made during all divisions with negative dividends. These are illustrated by the following example in which the division without the initial correction (which decreases the dividend by the value of the divisor) would result in an inaccurate quotient. The division in the example below would not be carried to completion but would be stopped, as is shown, by the occurrence of the divide check A-Fault. Example 3 Dividend is 1110 1001, (A).I (=-22) (=-3) Divisor is 1100, (X) Dividend 1110 1001 -22 1111 Il0q ~lus DeX),initial correction +(- 3) 1110 0110 -25 _ (-24) rrinus D(X)·2 3 1110 DIll. 1111 lII() - 1 -( -12) minus D(X)-2 2 1111 001~ 0000 1011 +11 20 DESCRIPTION OF THE COMPUTER In this division the process would be stopped, after the subtraction of D(X) ·22 from the previous remainder, since the quotient derived thus far would indicate that the divisor can be subtracted from the dividend 23 + 22 + (±21 ±2 0 ) times, the value of which in all cases exceeds the value possible to the quotient. If this division were performed by the Divide Sequence wi thout initial correction above, it would proceed as follows: 1110 1110 0000 1111 1111 1111 1111 1111 1111 1001 0111 0010 0011 0101 1001 1011 1100 1110 Dividend minus D(X) .2 3 plus D(X) • 22 minus D(X ). 21 minus D(X ). 20 makin~J the -22 -( -24) -+ 2 +( -12) -10 -(- 6) - 4 -(- 3) - 1 • Thus, the division indicates that the divisor can be subtracted +2 3 _2 2+2 1+2 0 (=7) times from the dividend leaving a remainder of -1. The correction to the quotient for this negative remainder would be plus (=7) 0111 Quotient, (Q) 1 10nO Incorrect value of quotient (=-7) Thus, the final contents of the Q Register would be the number above with no indication of the overflow of the modular value allowable to the quotient. PX 34 21 REPERTOIRE OF INSTRUCTIONS 1. GENERAL The logic of the Univac Scientific computer is specified as a two-address logic. This means t~at two references are provided for the execution of an operation, and an instruction to perform this operation is coded accordingly. The references may be the addresses of operands or other instructions in storage, the address at which a result is to be stored, or they may have a special designation as noted subsequently. An instruction word in the computer consists of 36 bits, i35 the following composition: Operation code, O.C. i 35 ••• i 30 , six bits First execution address, u i29 ••• i15, 15 bits iO' with Second execution address, v A programmed instruction is coded using octal notation. by octal digits as follows: -O.C. (i35··· i 30) It is represented 'two octal digits u (i 29 ···i 15 ) five octal digits representing the bits u 14. • • Uo v (i14··· i O) five octal digits representing the bits v 14. • • Vo According to the function of the instruction, the portions u and v of the word, represented in octa 1 notation, may be d'es ignated as follows: j one-digit octal number as represented by the left-most binary digits of u, u14, u13, u12 n four-digit octal number as represented by the binary digits ull' u 10' ••• Uo k number of shifts as represented by the right-most binary digits of v, v6, v5' ••• vO; or in one case, as represented by the right-most binary digits of u, u6' u5, ••• , uO. The functions of the instructions in which j, n, and k occur in place of a storage address will explain their purpose. Following are other symbols used in the explanation of the functions of the instructions. PX 35 1 REPEHTOIHE OF INSTRUCTIONS a. Parentheses are used to denote content(s) of, thus: (u) (Q) (A) (AU) (A L ) b. = 36-bit = 36-bit = 72-bit = 36-bit = 36-bit word word word word word at in in in in address u Q A AR AL Lower case letters: qn is the bit represented by the stage Qn, 35~n~O an is the bit representeel by the stage An, 71~ n~O c. A prime denotes a complement; such as (Q)' is the complement of the 36-bit word in Q. d. Double length extensions: D(u) is a 72-bit word whose right-hand 36 bits are (u) and whose left-hand 36 bi1s are all alike and equal to the left-most bit of (u). S(u) is a 72-bit word whose right-hand 36 bits are (u) and whose left-hand 36 bits are all zeros. D(Q), D(X), seQ), and sex) are similarly defined. L(Q)(u) is a 72-bit word whose left-hand 36 bits are zeros and each of whose right-hand 36 bits is detelmined by the bit-by-bit product of the corresponding bits of (u) and (Q). L(Q)'(v) is a 72-bit wore: whose left-hand 36 bits are zeros and each of whose right-hand 36 bits is determined by the bit-by-bit product of the corresponding bits of (v) and the c(mplement of (Q). 2. PRESENTATION OF INSTRUCTIONS. The Ijsting of the Univac Scientific repertoire of instructions which follows has the instructions groupee. according to a basic similarity in their functions or operations. The simil~.rity may be due to the use which is made of the u and v address portions of the instruction, or it may be because a group of instructions uses complex inte-rn~.l sequences. The instructions are presented with their functions, octal codes, ~.nd the alphabetic notations which represent them. a. TRANSMISSIVE INSTRUCTIONS. _. This group of instructions uses the u address portion of the instruction as an "acquisition" address (with one exception), lNhich designates the location from which information is to be obtained. This information may the~ be involved in some sort of operation, depending upon the function of the ~'articular instruction. The v address portion of the instruction specifies the location to which the information from u, or the information resulting from any operation executed, is transmitted. 3~) PX 2 REPERTOIRE OF INSTRUCTIONS The original content of the location specified by u is not disturbed in any way by the acquisition of information from the location. The original content of the location specified by v is replaced by the information transmitted to it. The instructions are as follows. lluv: TRANSMIT POSITIVE (TPuv): Replace (v) with (u). 12uv: TRANSMIT MAGNITUDE (TMuv): Replace (v) with the absolute magnitude of (u). 13uv: TRANSMIT NEGATIVE (TNuv): 15uv: TRANSMIT U ADDRESS (TUuv): Replace the IS bits of (v) designated by (v29 ••• vlS) with the corresponding bits of (u), leaving the remaining 21 bits of (v) undisturbed. . 16uv: TRANSMIT V ADDRESS (TVuv): Replace the right-hand IS bits of (v) designa'ted by (v14 ••• vO) with the corresponding bits of (u), leaving the remaining 21 bits of (v) undisturbed. Replace (v) with the complement of (u). 22jkv: LEFT TRANSMIT (LTjkv): Left circular shift (A) by k places, k being u6 ••• uo. Then replace (v) with (A L) if j = 0, or replace (v) with (AR) if j = 1. 35uv: ADD AND TRANSMIT (ATuv): Add -D(u) to (A). Then replace (v) with (A R ). 36uv: SUBTRACT AND TRANSMIT (STuv): (v) with (A R). Subtract D(u) from (A). Then replace The first five instructions listed, TPuv, TMuv, TNuv, TUuv, and TVuv, do not involve 'any of the arithmetic registers except the X Register in their execution (unless u or v is A or Q). The information is acquired from u and placed in X where it mayor may not be manipulated according to the function of the instruction. The desired content of X is then transmitted to the vaddressed location. The instructions TUuv and TVuv are intended for the modification of the u and v address portions of other instructions in storage. The remaining three instructions in the list, LTjkv, ATuv, STuv, involve the Accumulator in their execution whether it is addressed or not. The Left Transmit instruction provides the only means of coding a transmission directly from AL. Any other transmissions made from A to a 36-bit storage location take the content of the 36-r igh t -mas t stages of A, (AR). The sum or difference formed in the Accumulator by ATuv or STuv is not disturbed by the transmission of (AR) to v. The 36-bit number stored in v may be interpreted as a different quantity than the sum or difference left in A if "overflow" occurred during the addition or subtraction into the sign-bit stage A35. The quantity in A must be ~ 235 -1 in absolute value if it is to reflect the sum or difference correctly in a 36-bit storage location. If the sum or difference is used directly from A in further operations, an overflow past the stage A34 need not be disturbing. In this case, a check should be made for an overflow past the stage A70, i.e., the sum should be ~ 271_1 in absolute value. 35 PX 3 REPERTOIRE OF INSTRUCTIONS b. REPLACE INSTRUCTIONS. - This group of instructions uses the u-address portion of the instruction as an acquisition address and later places information back at the u-addressed location, destroying its original content. The v-addressed portions of the instruction are used to reference operands ~r hold a shift count .. The instructions are as follows. 21uv: HEPLACE ADD (RAuv): Form in A the sum of D(u) and D(v). replace (u) with (A R). Then 23uv: HEPLACE SUBTRACT (RSuv): Form in A the difference D(u) minus D(v). Then replace (u) with (AR). 27uv: CONTROLLED COMPLEMENT (CC;uv): Replace (A R) with (u) leaving (AL) undisturbed. Then complement those bits of (AR) that correspond to ones in (v). then replace (u) with (AR). 54uk: LEFT SHIFT IN A (rAuk): Replace (A) wi th D( u). Then left circular s:Pift (A) by k places and replace (u) with (AR). If u is the address of the Accumulator, the first step is omitted, so that the initial content of A is shifted. 55uk: LEFT SHIFT IN Q (LQuk): Replace (Q) with (u). Then left circular shi.ft (Q) by k places and replace (u) with (Q). The content of A is left undisturbed by the transmission of (AR) to u as effected by the first four instructions above. The content of Q is undisturbed by the transmission to u during the Left Shift in Q instruction. The sum or difference formed by RAuv or RSuv must be ~ 235 _1 in absolute value if the quantity stored at a 36-bit location u is to reflect the proper value. Note that the function of instrl1ction CCuv may be thought of as "Replace the content of u with the bit-by-bit sum of (u) and (v), disregarding any carries propagated". c. SPLIT INSTRUCTIONS. - The following group of instructions uses the u address of the instruction as an ~lcquisition address and assumes in the X Register the split extension of the content of the specified location. SeX) is then added or subtracted into the accumulator after which the content of.A may be shifted. These instructions make it possible to effect a change in (AR) without disturbing (AL). The instructions are as follows. 31uk: SPLIT POSITIVE ENTRY (SPuk): Form S(U) in A. Then left circular shift (A) by k places, k being v6 ••• vO and vI4 ••• v7 being zero. 32uk: SPLIT ADD (SAuk): Add S(u) to (A). Then left circular shift (A) by k places, k being v6 ••• vO and vI4 ••• v7 being zero. PX 3!5 4 REPERTOIRE OF INSTRUCTIONS 3auk: SPLIT NEGATIVE ENTRY (SNuk): Form in A the complement of S(u). Then left circular shift (A) by k places, k being v6 ••• vO and vI4 ••• v7 being zero. 34uk: SPLIT SUBTRACT (SSuk): Subtract S(u) from (A). Then left circular shift (A) by k places, k being v6 ••• vo and vI4 ••• v7 being zero. d. Q-CONTROll..ED INSTRUCTIONS. - These instructions use the u address as an acquisition address and transmit to the v-addressed location the final content of ARe The final content of AR is effected by the content of the Q Register which is used as a tt~ask". The "l's" in the information acquired from the u-addressed location are retained only when there are "l's" in the corresponding stages of Q. The instructions are: 5Iuv: Q-CONTROLLED TRANSMIT (QTuv): replace (v) with (AR). Form in A the number L(Q)( u). 52uv; Q-CONTROLLED ADD (QAuv): replace (v) with (AR). 53uv: Q-CONTROLLED SUBSTITUTE (QSuv): Form in Q the quantity L(Q)(u) plus L(Q)'(v). Then replace (v) with (AR). This effects the replacement of selected bits of (v) with the corresponding bits of (u) in those places corresponding to one's in Q. Add to (A) the number UQ )(u). Then Then e. SEQUENCED INSTRUCTIONS. - The following instructions use complex sequences of computer operations. 7luv: MULTIPLY (MPuv): Form in A the 72-bit product of (u) and (v), leaving in Q t~e multiplier (u). 72uv: MULTIPLY ADD (MAuv): Add to (A) the 72-bit product of (u) and (v), leaving in Q the multiplier ,(u). 73uv: DIVIDE (DVuv): Divide the 72-bit number in A by (u), putting the quotient in Q, and leaving in A a non-negative remainder R. Then replace (v) by (Q). The quotient and remainder are defined by: (A ) i = (u) • (Q) + R, wher e 0 S R < I(u )I. (A ) ide not est he in i t i a 1 content of A. 74uv: SCALE FACTOR (SFuv); Replace (A) with D(u) (unless u is A). Then left circular shift (A) by 36 places and continue shifting until a34 ~ a 35 • Replace the right-hand 15 bits of (v) with the number of left circular shifts, k, which would be necessary to return (A) to its original position. 75jnw: REPEAT (RPjnw): This instruction calls for the next instruction, which will be called NIuv, to be executed n times, its "u" and nv tt addresses being modified or not according to the value of j. Normally n executions are made and the progra~ is continued by the execution of the inst~uction stored at a fixed address FI, 00000 or 40001. The procedure is: PX 35 5 HEPERTOIHE OF INSTRUCTIONS (1) Replace the right-hand 15 bits of (Fl) with the address w (2) Execute (3) If If If If (4) On completing n executions, take (Fl) as the next instruction. (5) If the repeated instruction is a jump or stop instruction, the occurrence of a jump or stop terminates the repetition. In addition, if NIuv is a Threshold Jump or an Equality Jump, and the jump to address v occurs, (Q) is replaced by the quantity, j, n-r where r is the number of executions that has taken place. NIuv, the next instruction in the program n times j = 0, do not change u and v j = 1, add one to v after each execution j = 2, add one to u after each execution j = 3, add one to u and v after each execution. The instructions MPuv and MAuv use the Multiply Sequence explained in the section General Description, Arithmetic Operations. Note the overflow indication feature of the Multiply Add instrw~tion. If an overflow (into the signbit stage, A71) of the sum of the product of u and v and the c~rrent cOntent of A is possible, a computer fault is incurred. The computer fault is indicated by the illumination of a light on the Supervisory Control Panel. The Divide instruction use~ the Divide Sequence, also explained in the section General Description, Arithmetic Operations. The Scale Factor instruction is useful in ttnormalizing" a number, i.e., scaling a number to its maximum representation in 36 stages so that the most significant bit is held in the stage adjacent to the stage holding the sign bit. The Repeat instruction is an Extremely useful feature of the computer. Consider, for example, its effectiveness in performing a "block" transfer, i.e., the transfer of a group of words from their storage at one set of consecutive locat ions to another set of consec;utive locat ions. The instruct ion Transmit Positive (TPuv) causes the word at, address u to be transmitted to address v. The simple two-instruction routin€~ RP TP 3,n ul Transfer n words (Ul)~ vI' (u2) -+- v2, ••• , (un) -..... vn effects a block transfer of n worc[s from register ul through un to registers vI through v n • If the transmission are from registers ui in Magnetic Drum Storage to registers vi in Rapid tlccess Storage, the transfer rate is about 31,000 words per second. Another example of the effectiveness of the Repeat instruction is provided by its use preceding a Multiply Acld instruction to form the product accumulation of a l b l + a2 b2 + a3 b3 + an bn • f. ONE-WAY CONDITIONAL JUMP INSTRUCTIONS. - These instructions acquire a word from the location specified 11Y the u address and, if a condition involving' this word is satisfied, effect a jump to the instruction at the location specified by the v address. PX 35 6 REPERTOIRE OF INSTRUCTIONS The instructions are as follows. 4luv: INDEX JUMP (IJuv): Form in A the diff"erence D(u) minus one. Then if a7l is one, continue the present sequence of instructions; if a7l is zero, replace (u) with (AR) and take (v) as NI. 42uv: THRESHOLD JUMP (TJuv): If D(u) is greater than (A), take (v) as NI; if not, continue the present sequence. In either case, leave (A) in its initial state. 43uv: EQUALITY JUMP (EJuv): If D(u) equals (A), take (v) as NI; if not, continue the present sequence. In either case leave (A) in its initial state. Note- that a positive quantity acquired from u by the Index Jump instruction, and decreased by the value of one, is retur-ned to storage in u until the quantity becomes negative. This provides a means of "counting", and (u) is sometimes referred to as a "counter". This feature is extremely useful in performing an iterative cycle which is to be repeated a prescribed number of times. The instructions TJuv and EJuv are made more useful by the feature which leaves the content of A in its initial state after the comparison tests' are made. g~ TWO-WAY CONDITIONAL JUMP INSTRUCTIONS. - These instructions use both the , u- and v-addressed portions of the instruction to specify an instruction to be executed next. the direction of the jump depends on the condition of a quantity which is tested in the Accumulator or the Q Register. Since either the u and v address is available to be used as an acquisition address, the ,quantity must be placed in A or Q previous to the execution of one of these jump instruction$. These instructions are ts follows. 44uv: Q' JUMP (QJuv): If q35 is one, take (u) as NI; if q35 is zero, take (v) as NI. Then, in either case, left circular shift (Q) by one place. 46uv: SIGN JUMP (SJuv): take (v) as NI. 4'7uv: ZERO JUMP (ZJuv): If (A) IS not zero, take (u) as NI; zero, take (v) as NI. If a7l is one, take (u) as NI; if a 7l is zero, if (A) is Note that a zero condition (of q35' a 7l , or the content of A) always causes a jump to the v-addressed instruction. , h. ONE-WAY UNCONDITIONAL JUMP INSTRUCTIONS. - This group of instructions does not depend upon some condition being iatisfied by a machine word to cause a jump. The instructions are as follows. 14--: INTERPRET (IP--): Let Y represent the address from which CI was obtained. Replace the right-hand 15 bits of (F l ) with the quantity Y + 1. Then take (F 2 ) as NI. PX 35 7 REPERTOIRE OF INSTRUCTIONS 37uv: RETURN JUMP (RJuv): Let y represent the address from which CI was obtained. Replace the rj.ght-hand 15 bits of (u) with the quantity y + 1. Then take (v) as NI. 45jv: M~NUALLY SELECTIVE JUMP (MJjv): If the number j is 0, take (v) as NI. If j is 1, 2, or 3, and the correspondingly numbered MJ selecting switch on the control panel is ~et to "jump", take (v) as NI; if this switch is not set to "jump", continue the present sequence. Note that the jump instituted by the Manual Jump instruction with a j of 1, 2, or 3 is conditional with regard to a manual selection. The Return Jump instruction pro\'ides a means of (1) interrupting the sequence of instructions being executed currently and (2) returning to this sequence after jumping out of it. This is effected if the instruction at u is a Manual Jump instruction, and it if; executed at some time following the execution of the instruction at v. The execution of the Interpret F~ Return Jump with u FI and v = = ~~nstruction is equivalent to executing a i. EXTERNAL EQUIPMENT INSTRUCTIONS. - The following instructions provide for input to and output from the cortputer. Input information is transmitted to the location specified by the v add]~ess of an input instruction; during output operations, the information to be 1~ransrnitted to external equipment is acquired from the v-addressed location. The use of these instructions is explained in detail in the section of this· volume, Input and Output Systems. The instructions are as follows" 61-v: PRINT (PR-v): Replace (TWR) with the right-hand six bits of (v). Cause the typewriter to perform the operation specified by the 6-bit code. 63jv: PUNCH (PUjv): Replace (HPR) with the right-hand six bits of (v). Gause the punch to respond to (HPR). If j = 0, omit seventh level hole, if j = 1, include :;eventh level hole. 17-v: EXTERNAL FUNCTION (EF-v): As indicated by (v) select a unit of external equipment and instruct it to perform the designated function. '16jv: EXTERNAL READ (ERjv): and zeros in v3S ••• v8; 77jv: EXTERNAL WRITE (EWjv): If j =: 0, replace (IDA) with the right-hand eight bits of (v), if j ::: 1, replace (lOB) with (v). j = 0, replace (v) with (lOA) in v7 ••• vO if j =: 1, replace (v) with (lOB). 1:[ PX 35 REPERTOIRE OF INSTRUCTIONS j. STOP INSTRUCTIONS. - The following instructions cause a stop of computer operation and are self-explanatory: 56jv: MANUALLY SELECTIVE STOP (MSjv): If j is 0, stop computer operation, indicating the stop by the illumination of a light on the Supervisory Control Panel. If j is 1, 2, or 3 and the correspondingly numbered MS selecting switch is set to ttstoptt, stop computer operation, indicating the stop by the illumination of "a light on the Supervisory Control Panel. Whether or not a stop occurs, (v) is NI. 57--: PROGRAM STOP (PS--): Stop computer operation, indicating the stop by the illumination of a light on the Supervisory Control Panel. PX 35 9 SEQUENTIAL PRESENTATION OF INSTRUCTIONS In the following pages the instructions are presented with their representative octal operation codes in numerical order. The purpose of this presentation is to give the programmer a simplified representation of the detailed operations which the computer performs during, and necessary to, the execution of each instruction. The events listed under each instruction occur as a result of the c9ntrol section receiving and sensing the operation code of the instruction. These events do not necessarily designate a machine.operation but represent the actions taken by the machine in executing an instruction. The order in which these events are listed is in accordance, for the most part, with the time-wise sequence of machine operations which they represent. In some instructions the desire for a simplified presentation overruled the desire for a sequential presentation if such was not necessary for accuracy in determining the contents of the various registers at any time during the execution of the instruption. The deviations from machine operation sequences in any of the presentations do not cause a misrepresentation of th"e actual operations of the machine. The columns in which the events are listed differentiate the events in accordance with their primary function in the execution of the instruction. An event listed in the Procurement of Operands column brings an operand out of storage (MC, Mfr, Q. or A) into the X Register in preparation for some operation upon it or placement in another register. An event listed in the Operations column may describe arithmetic and/or logical machine operations or may be the clearance of a register in preparation for such operations. An event listed in the third column, Storage of Results, indicates the final placement of a result of actions described in the first and/or second columns. The symbols and abbreviations used in the presentation of the instructions have been listed previously except for those listed below. The definitions of the following notations do not explain machine operations but the effect of machine operations. C1ear A R e pIa c e Clear X Replace Complement PAK Replace Complement X Replace F l---=~ PAK jn~PAK PAK~X the the the the con ten t s 0 f e a c h s tag e 0 f the A( C urn u1a tor wit h a z er o. contents of each stage of the X Register with a zero. contents of each stage of PAK with its complement. contents of each stage of X with its complement. Replace the contents of the 15 stages of the Program Address Counter with the MC or MD storage address as designated by u or v. A special case of the above with the MC address specified as being octal 00000, (or MD address 40001). Replace the contents of the 15 stages of PAK with the bits designated as jn. Replace the contents of the 15 stages of PAK with the contents of the right-most stages of the X Register. Replace the contents of the 15 right-most stages of the X Register (X ... X )' with the address held in PAK. o 14 PX 36 1 SEQUENTIAL PRESENTATION OF INSTRUCTIONS w~X (IDA )-+-X (IOB)+X (PAK)~X Replace the contents of the 15 right-most stages of the X Register, (X 14 ... X ), with the address designated as w. o Replace the contents of the right-most stages of the X Register with the shift count k. Replace the contents of the eight right-most stages of X with (IDA). Replace the contents of the 36 stages of X with (lOB) Replace the contents of the 36 stages of X with the contents of the address held in PAK.' (u)-+X If u is an Me or MD address, replace the contents of the X Register with the contents of the MC or lVlD location specified by u. If u is an address of the Q Register, replace the contents of the X Register with the contents of the Q Register. If u is an address of the Accumulator, replace the contents of the X Register with the contents of AR Inless otherwise noted. If v is the address of an MC or MD location or Q or A, replacement operations occur as above with v being the transmitting register. ( X)~IOA Replace the contents of the eight stages of lOA with the contents of the right-most eight stages of the X Register. Replace the contents of the 36 stages of lOB with the contents of the X Register. Replace the contents of the 36 stages of PCR with the contents of the X Register. (X)-+ lOB (X)-. u If u is an MC or MD address, re~lace the contents of the MC or MD location specified by u with the contents of the X Register. If u is an address of the Q Register, replace the contents of Q with the contents of the X Register. If u or v is an address of the Accumulator, replacement operations do not occur except in instructions 11, 12, 13, 22, 55, 73, and 76. In these instructions, the replacement is performed by Clear A and Add D(X) to A. A replacement operation (X) ........ A occurring in the instructions not listed above would effect undesirable alterations in the contents of A. If v is the address of an MC or MD location or Q or A, replacement operations occur as above with v being the receiving register. If the receiving r,~gister has an MC or MD address, replace with the contents of the stages Xn .•. Xn l only the contents of the correspondiBg stages of the 2 receiving register,leaving the remaining stagl~s undisturbed. A partial replacement of Q or A is not permissible. A special case of the above with the stages of X being specifiel as being the :right--most 15 and the MC address specified as being 00000 (or MD address 40001). PX ~36 2 SEQUENTIAL PRESENTATION OF INSTRUCTIONS The contents of the transmitting register are not disturbed in any of the above replacement operations. It should be remembered that the Add D(X) to (A) and Add S(X) to (A) operations cited are performed machine-wise by complementation and subtraetion. PX 36 3 SEQUENTIAL PRESEyrATION OF INSTRUCTIONS Instruction Reference Events The events listed below normally conclude the execution of all computer instructions, except the Repeat instruction, when they are not immediately preceded by the Repeat instruction. Also, a number of instructions which are preceded by the Repeat instruction are terminated by these events. (Refer to the Repeat instruction and the Termination of a Repeat Sequence.) It is understood that these events follow in sequential order the events listed for each appropriate instruction. As a result, the execution of the current instruction is terminated, and the cDmputer is prepared for the execution of the next instruction whose address is acquired from PAK, the Program Address Counter. This address is determined according to the function of the current instruction if this function indicates that the normal sequence of instructions be interrupted. The contents Df the location whose address is held in PAK is placed in PCR, the Program Control Register, where it is interpreted as the next instruction to be executed. OPERATIONS PROCUREMENT OF OPERANDS -----:::: STORAGE OF RESULTS d ( PAK~·X Advance PAK by one <. Interrupt Termination Sequence The Pr 0 9ram I nt err up t f eat ureo f the 1] n i v a c Sci en t i f i cpr 0 v ide s "a me a ns "0 f interrupting the usual acquisition of instructions as depicted above. When the "interrupt" becomes effective, the first two events listed above do not occur; instead the first instruction which is normally terminated by the instruction reference events above is terminated by the following events: (00002 }-.... X (X)~ PCR. These steps set the instruction at F3 (00002) into peR as the next instruction to be executed and leave the address of the instruction normally executed next in PAK. If the instruction at F3 is a Return Jump instruction, the address at PAK is stored at some appropriate computer location u before the jump to the v address of RJuv is made. If the Repeat instruction, or an instruction preceded by the Repeat instruction, is being executed when the "interrupt" is selected, the events above terminate the instruction stored at Fl unless a jump (or stop) is called for during the Repeat Sequence. If this IS the case, the events above terminate the jump instruction, and the address to which the jump was to be made remains in PAK. PX 36 SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: 11 Transmit Positive, TPuv Replace (v) with (u) PHOCUREMENT OF OPERANDS OPERATIONS STORAG,E OF RESULTS (u)~X (X)---+v If v is A Clear A Add D(X) to PX 36 5 (A) SEQUENTIAL PRESENrATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: 12 Transmit Absolute Magnitude, TMuv Replace (v) with the absolute magnitude of (u) PROCUREMENT OF OPERANDS OPEEATIONS STORAGE OF RESULTS Complement (X) if negative (X)-+-v If vis A, Clear A Add D(X) to (A) PX 36 6 SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: 13 Transmit Negative, TNuv Replace (v) with the complement of (u) -PROCUREMENT OF OPERANDS OPERATIONS STORAGE OF RESULTS (u)~X Complement (X) (x)~v If v is A, Clear A Add D(X) to PX 36 7 (A) SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: 14 Interpret, IP Let Y represent the address from which CI was obtained. the right-hand 15 bits of (Fl) with the quantity Y + 1. take (F2) as the next instruction. Replace Then Fl is storage address COOOO, F2 is storage address 00001. PROCUREMENT OF OPERANDS OPE RAT I O:\JS Clear X PAK (i.e., Y + 1)~X Set PAK to F2 PX 36 o STORAGE OF RESULTS SEQUENTIAL PRESENTATION OF INSTRUCTIONS INSTRUCTION: FUNCTION: Transmit U Address, TUuv Replace the 15 bits of (v) designated by (v29 ... v15) with the corresponding bits of (u), leaving the remaining 21 bits of (v) undisturbed. PROCUREMENT OF OPERANDS OPERATIONS STORAGE. OF RESULTS (u)-~X (X29· .. X15)---+ v v = Q or A not permissible PX 36 9 SEQUENTIAL PRESEI~TATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: 16 Transmit V Address, TVuv Replace the right-hand 15 bits of (v) dEsignated by (V14 ... VO) with the correspondinu bits of (u), leaving the remaining 21 bits of (v) undisturbed. ---- PROCUREMENT OF OPERANDS 1-------------- -----------.--------------r------------. OPEFATIONS STORAGE OF RESULTS ----------..---------------+----------~ (u) -+X (X14.· .XO)-+v v = Q or A not permissible PX ~-)6 10 SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: 17 External Function, EF-v As indicated by (v) select a unit of external equipment and instruct it to perform the designated function. PROCUREMENT OF OPERANDS OPERATIONS (v)~X If previous operations involving (lOB) are completed (X) ~IOB According to (lOB). select external equIpment and instruct it to perform a function. PX 36 11 STORAGE OF RESULTS SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: 21 Replace Add, HAuv Form in A the sum of D(u) and D(v). PROCUREMENT OF OPERANDS OPERATIONS Then replace (u) with (AR)· STORAGE OF RESULTS Clear A Add D(X) to (A) Add D(X) to (A) L ____ (X)-+ u Omit if u is A PX :36 12 SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION,: 22 Left Transmi t, LTj kv FUNCTION: Left circular shift (A) by k places, k being u6 •.• uO. Then replace (v) with (AL) if j=O, or replace (v) with (AR) if j=l. PROCUREMENT OF OPERANDS OPERATIONS STORAGE OF RESULTS Shift (A) left k places If j is 0, (AL) ~ X If j is 1, (A R) ~ X X~v If v is A Clear A Add Dwhere they are present in corresponding (X5· •• XO) Perform typewrit.er operation as specified by (TWR). 40 STORAGE OF RESULTS SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERAT ION CODE: 6:3 INSTRUCTION: Punch, PUjv FUNCTION: Replace (HPR) with the right-hand six bits of (v). Cause the punch to respond to (HPR). If j = 0, omit seventh level hole; if j = I include seventh level hole. PROCUREMENT OF OPERANDS STORAGE OF RESULTS OPERATIONS -(v) -+X If HPR is clear, place a HPR6 if j = 1 and place (HPRS ..• HPRO) where they present in corresponding Punch (HPR) PX 36 41 one in ones in are (XS· · · XO) SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: 71 INSTRUCTION: Multiply, MPuv FUNCTION: Form in A the 72-bit product of (u) and (v), leaving in Q the multiplier (u). PROCUREMENT OF OPERANDS OPERATIONS (u)~X Clear A (X)-~Q (v) ~x Form in A the product of (Q) and (X) PX 36 42 STORAGE OF RESULTS SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: 72 INSTRUCTION: Multiply Add, MAuv FUNCTION: Add to (A) the 72-bit product of (u) and (v), leaving in Q the multiplier (u). PROCUREMENT OF' OPERANDS OPERATIONS STORAGE OF RESULTS -(Ul)---+X (X)~Q Shift (A) left 36 places (v)~X Add to (A) shifted the product of (Q) and (X) -- PX 36 43 SEQUENTIAL PRESE\JTATION OF INSTRUCTIONS OPERATION CODE: 73 INSTRUCTION: Divide, DVuv FUNCTION: Divide the 72-bit nL.mber in A by eu), putting the quotient in Q, and leaving in A a non-negative remainder, R. Then replace (v) by (Q). The quctient and ~emainder are defined by ( A) i = (u). ( Q) +R wh ere 0 ~ R < I( u) I. (A ) ide not est he initial contents of A. PROCUREMENT OF OPERANDS STORAGE OF RESULTS OPERATIONS (u) - + X Clear Q Divide (A) by (X), placing the quotient in Q and leaving R in A (Q) -+X J ______ _ (X)~v If v is A, Clear A Add D(X) to _ _ _ _ _ _ _ _ PX 36 44 (A) ------L.---~ SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: 74 INSTRUCTION: Scale Factor, SFuv FUNCTION: Replace (A) with D(u) unless u is A. Then left circular shift (A) 36 places and continue shifting until a35 ~ a34. Replace the righthand 15 bits of (v) with the number of left shifts, k, necessary to return the final contents of A, or (A)f, to the original position. The range of k if u is A is O~ k ~~ 71 . if u is MC, MD, or Q, k may be 0 or 37S k S 71. Effectively, the initial contents of A, or (A)i, which may be D(u) or D(Q) after the above replacement, are positioned in AR (with the sign bit represented by A35 and the most significant bit by A34) so that (A)f = (A)i.2S. If OSkS36, the Scale Factor s = -k; if 37S k S 71, s = 72 -k. Note that for 0 < k S 36, thi s posi t ioning scales (A) i "down"; for 37S k ::= 71, (A) i are scaled "up". If k = 0, (A)i were properly positioned before any shifting operations; if k = 37, (A)i are all ones or zero. I PROCUREMENT OF OPERANDS OPERATIONS STORAGE OF RES ULTS Clear X (u)~ X Omit if u is A Clear A Omit if u is A Add D(X) to A Shift (A) left 36 places and continue shifting until a35 ~ a34 Clear X k~X (X14 ... XO) -~v v = Q or A not permissi ble PX 36 45 SEQUENTIAL PRESE~TATION OF INSTRUCTIONS OPERATION CODE: 75 INSTR UCT I ON: Repeat, RPjnw FUNCTION: This instruction calls for the next instruction, NIuv, to be executed n times, 0~;n~2.L2-1, its u and v addresses being modified or not according to the value of j. Normally n executions are made, and the program is continued by the execution of the instruction stored at a fixed address Fl· The instruction usually stored at FI is MJjv, calling for a jump to its v address, which according to the workings of the Repeat instruction means that (w) of RPjnw will be taken as the next instruction t~ be executed. The u and v addresses of the repeated instruction are advanced according to the value of j as follows. If j = 0, neither the u nor the v execution address of the repeated instruction is advanced. j = 1, the v execution address of the repeated instruction is advanced after each execution. j = 2, the u execution address of the repeated instruction is advanced after each execution. j = 3, both the u and v execution addresses of the repeated instruction are advanced after each execution. During a repeat sequence, PAK is used as a counter to record the number of times the instruction is executed. PROCUREMENT OF OPERANDS DPERATIONS Clear X W~X (PAK) jn -~ ~ X PAK Complement PAl( (X) -+ peR Begin Repeat !iequence: Advance (PAID and investigate its content!;. If n = 0, pl~oceed to Normal Rt~peat Termination If n :f 0, execute NI n times,* advancing u and v addresses according to j *See Exceptions, discussed later. PX 36 46 STORAGE OF RESULTS SEQUENTIAL PRESENTATION ,OF INSTRUCTIONS Intermediate Steps following each execution of an instruction whose repeat is possible. FUNCTION: Test for n executions of repeated instruction. Proceed to Normal Repeat Termination if n executions have occurred. If not, repeat instruction. PROCUREMENT OF OPERANDS OPERATIONS STORAGE OF RESULTS Advance PAK by one Test PAK for condition indicating n executions of repeated instruction and proceed accordingly. Normal Repeat Termination FUNCTION: ExceptiOI:J Terminate the repeat sequence when an instruction has been executed n times by taking (F l ) as the next instruction. (See (F l)---'X (X)~PCR I Abnormalities: 1. If the fixed address Fl is not a Jump instruction, the address of the instruction to be executed fol owing the instruction stored in Fl is determined by the modified complement of j from the Repeat instruction. Thls is the number that remains stored in PAK at the end of a repeat sequence that has a Normal Termination. If, in 75jnw, j was 0, the address will be 40000; if j was 1, the address will be 70000; if j was 2, the address will be 60000; if j was 3, the address will be 50000. 2.. In addition to values j = 0, 1, 2, and 3, the value j in 75jnw may also be 4, 5, 6, or 7. An· instruction following a Repeat instruction where j = 4, 5, 6, or 7 will be repeated indefinitely unless its execution produces a jump or stop operation or a jump termination. If these latter conditions do not occur the u and v execution addresses of the repeated instruction will be advanced depending on j; if j = 4, neither address is advanced; if j = 5, the v address is advanced; if j = 6, the u address is advanced; if j = 7, both addresses are advanced. If u or v are MD addresses, they may be advanced from 40000 through 77777, and the next advance signal after 77777 will start the address sequence over from 40000. If u or v are MC, Q, or A addresses, they may be advanced 4095, 511 and 511 addresses from their respective first addresses, and the next advance signal will start their address sequence over from their respective first address. 3. If a Repeat instruction is immediately followed by a second Repeat instruction, the second will supersede the first, and the address of the repeated instruction is determined by the number stored in PAK. This address is the complement of "jn-l" which remains stored in PAK from the first Repeat instruction. PX 36 47 SEQUENTIAL PRESENTATION OF INSTRUCTIONS TERMINATION OF A REPEAT SEQUENCE The first step of the Repeat Sequence is to determine whether the value of n in the Repeat instruction is zero or not. If n is zero (indicating that no execution of the instruction following the Repeat instruction is to be made), the attempted Repeat Sequence is immediately terminated according to the Normal Repeat Termination. If n f:. 0, the instruc:ion, regardless of what it is, is executed. The Repeat Sequence is concluded by a Normal Repeat Termination, after n executions, except when the instruction following RPjnw is one of the following. Exceptions: (1) If the Interpret (14--), Return Jump (37uv), Q Jump (44uv), Sign Jump (46uv), Zero Jump (47uv), Manually Selected Stop (56jv), or Program Stop (57--) instruction is to be executed after a Repeat instruction, the attempted Repeat Sequence is automatically terminated. These instructions are thus executed as if no Repeat instruction preceded them and terminated by the normal Instruction Reference Events. (2) If either the Index Jump (4Iuv) or Manually Selected Jump (45jv) is to be executed following a Repeat instruction, they may be repeated n times as specified if no jump operation is called for in the course of their execution. If a jump operation is called for, :he instruction is terminated according to the normal Instruction Reference Events, and the content of the jump address is taken for the NI. (No count of the number of times the instruction was executed is retained, however.) If no jump operation is called for in n executions of these instructicins, a Normal Repeat Termination is executed and (F ) is taken for the NI. l (3) If either the Threshold Jump (42uv) or the Equality Jump (43uv) is to be executed following a Repeat instruction, they can be repeated or not depending on whether or not in their execution the threshold or equality conditions are reached and a jump operation is called for. If a jump operation is called for before or exactly after n executions, the Repeat Sequence of these instructions is term:inated by a' special Jump Termination (see the following page. Note that the Jump Termination is followed by the normal Instruction Reference Events.) The Jump Termination stores the quantity j, n-r in Q and takes the contents of the jump address for the ~I. The (Q) can then be used to determine how many times the instruction was executed. If n executions of these instructions are performed and the threshold or equality conditions requiring a jump do not occur, the repeat sequence of these instructions is terminated by the Normal Repeat Termination and (F l ) is taken for the NI. (4) If the "interrupt" is selected during the execution of a Repeat instruction or an instruction being repeated, the Interrupt Termination sequence concludes the execution of those instructions in paragraphs (1), (2) and (3) above which are stated to be concluded by the normal Instruction Reference Events. When the content of FL is taken as the next instruction, the Interrupt Termination sequence concludes the execution of the instruction at Fl. The Interrupt Termination sequence referred to is found on the page listing the normal Instruction Reference Events. PX 36 4U SEQUENTIAL PRESENTATION OF INSTRUCTIONS Jump Termination for repeated instructions 42uv and 43uv. FUNCTION: When a jump condition, as specified by one of the instructions above, is reached before or immediately after n executions, the steps listed below, followed by the normal Instruction Reference Events, terminate the execution of the instruction. PROCUREMENT OF' OPERANDS OPERATIONS (PAK)--+X (X)--+Q v--+PAK PX 36 49 STORAGE OF RESULTS SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: 76 External Read, ERjv If j = 0, replace (v7 ... YO) with (lOA) and (v35 ... v8 ) with zeros; if j = 1, replace (v) witl (lOB). (This instruction must be preceded by an External Function instructing the equipment to transmit information to lOB.) PROCUREMENT OF OPERANDS OPERATIONS STORAGE OF RESULTS Clear X If IDA or lOB has received informat:Lon from external equipment (IDA) or (IOB)--..X Clear lOA or lOB (X)--.v If v is A, Clear A Add D(X) to A If lOA is involved, note that when v is a 36-bit register, the eight right-most bits of v are (lOA) and the left-most 28 bits are zeros; when v is A, the eight right-most bits of A are (lOA) and the remaining 64 bits are zeros. PX 36 50 SEQUENTIAL PRESENTATION OF INSTRUCTIONS OPERATION CODE: INSTRUCTION: FUNCTION: External Write, EWjv If j = 0, replace (lOA) with the right-hand eight bits of (v); if j = 1, replace (lOB) with (v). Notify external equipment of this transmission to lOA or lOB. (This instruction must be preceded by an External Function. instructing the equipment to sense the information from lOA or lOB.) PROCUREMENT OF OPERANDS OPERATIONS (v) --'X If previous operations involving (lOA) or (lOB) are completed or lOB Transmit (lOA) or (lOB) to external equipment (X)~IOA PX 36 51 STORAGE OF RESULTS 77 INSTRUCTION EXECUTION TIMES , OPERATION CODE: INSTRUCTION: Q-Jump, ,QJuv Sign Jump, SJuv NON-REPEATED u REPEATED* or v u or v MC 9 MC 3 A sec A SCC Q Q OPERATION CODE: INSTRUCTION: Manual Jump, MJjv NON-REPEATED v I MC A 9 SCC REPEATED~~ v Q MC I A SCC 3 JUMP v 44 46 JUMP~:~ irrelevant v 9 irrelevant 5N NO JUMP NO JUMP *See preliminary discussion PX 37 13 Q 45 INSTRUCTION EXECUTION TIMES On the following pages the instructions are presented with accompanying tables which give the time required for the execution of each instruction, the execution being repeated or not repeated. The time required for the execution of an instruction is dependent upon the storage references, where such are made, by the u and/o'r v addresses. The tables for the instructions, with such references applicable and practical, list individually the execution tImes of each instruction with its u and/or v addresses referencing an MC register, the Accumulator, or the Q Register. (All execution times assume that the instructions are stored in MC.) The specified times are measured, unless otherwise stated, from MPO to MPO. Each number in a table is the number of clock ..Q.ulse periods (two microseconds each) required for the execution of a particular coded instruction. Included in the determination of the computer time for an instruction repeated n times are the times required by the Repeat instruction and, in most cases, the instruction stored at Fl. This total time is given by the sum, 27+R +p, where Rn is the execution time of the instruction repeated n times and p isnthe execution time of the instruction stored at Fl. If n is zero, R is zero and, in all cases, the total computer time is 27 + p and the next in~truc tion is taken from Fl. When certain of the instructions are repeated, the total computer time does not include the time p. These instructions are Interpret 14--; Return Jump, 37uv; Q-Jump, 44uv; Sign Jump, 46uv; Zero Jump, 47uv: Manually Selective Stop, 56uv; and Program Stop, 57--. These instructions are executed only once at t~ most regardless of an n 1. The next instructions to be executed will not be taken from Fl. Other exceptions to including the time p in the total computer time are made under certain conditions when the following instructions are repeated: Index Jump, 41uv; Manually Selective Jump, 45jv; Threshold Jump, 42uv; and Equality Jump, 43uv. The time p is not added when, during the repeated n executions of these instructions, the jump requirement is met before or during the nth execution of the instruction. The occurrence of the jump eliminates the procedure of taking the next instruction to be executed from Fl· Execution times for repeating certain of the instructions are not given if a repeat of such instructions has no practical use. The following notations are used in the tables of execution times. SCC Storage Class Control indicates the coded u and/or v addresses being used are not permissible. Execution time not given for a possible instruction at a Q address. PX 37 1 INSTRUCTIOI~ N EXECUTION TIMES Number of executions of the repeated instruction. (Ui) Denotes bit in stage i, (:35 addressed as u. (Ui)j Contents of ui ms Milliseconds. d~ring ~ i ~ 0), of register repeat j, j = I ... N. .?X 37 2 INSTRUCTION EXECUTION TIMES OPERATION CODE: 11 Transmit Positive, TPuv INSTRUCTION: REPEATED NON-REPEATED v MC A Q MC 19 17 15 MC 12N+l A 15 14 12 A 8N +1 Q 16 15 13 Q 9N +1 MC OPERATION CODE: INSTRUCTION: Transmit Magnitude, TMuv NON-REPEATED REPEATED v v u MC A Q u MC MC 19 18 16 MC 12N+1 A 16 15 13 A 9N+l Q 17 16 14 Q 10N+l PX 37 3 12 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: 13 Transmit Negative, TNuv NON-REPEATED REPEATED v MC A Q u MC 19 17 15 MC A 15 14 12 A 8N+l Q 16 15 13 Q 9N+1 MC 12N+l OPERATION CODEINSTRUCTION: Interpret, IP-NON-REPEATED u and v irrelevant 15 PX 37 4 14 INSTRUCTION EXECUTION TIMES OPERATION CODE:: INSTRUCTION: 15 16 Transmit U Address, TUuv Transmit V Address, TVuv NON-REPEATED REPEATED MC A Q MC 19 see see Me A 15 sce sec A 8N+l Q 16 see see Q 9N+l MC 12N+l A Q see see 1 OPERATION eODE: INSTRueTION: External Function, EF-v NON-REPEATED Me A Q 14 11 12 computer operating time, not including a lockout time if lOB is currently in use for output operations. PX 37 5 17 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: Replace Add, RAuv NON-REPEATED REPEATED Me A Q 30 27 28 MC A 23 20 21 A 18N Q 25 22 23 Q 19N MC 21 MC A Q 23N+l 20N+l 21N+l OPERATION CODE: 22 INSTRUCTION: Left Transmit, LTjkv NON-REPEATED REPEATED j 16+k 15+k MC v MC- - -A- - Q- - - -v- - 13+k (9+k)N+l OPERATION CODE: INSTRUCTION: Replace Subtract, RSuv NON-REPEATED REPEATED MC A Q MC :n 28 29 MC A 24 21 22 A 19N Q 26 23 24 Q 20N MC PX 37 A Q 24N+l 21N+l 22N+l 23 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: Controlled Complement, CCuv NON-REPEATED REPEATED MC A Q MC 26 23 24 MC A 19 16 17 A 14N Q 21 18 19 Q 15N MC A Q 19N+l 16N+l 17N+l OPERATION CODE: INSTRUCTION: 27 Split Positive Entry, SPuk Split Add, SAuk NON-REPEATED MC 16 + k A 13 + k Q 14 + k REPEATED MC (10 + k) N where k is not altered by the Repeat Sequence. For k=O and 1 use value of k=2. PX 37 7 31 32 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: Split Negative Entry, SNuk Split Subtract, SSuk NON-REPEATED MC 17 + k A 14 Q 15 + k REPEATED MC + k (11 + k) N where k is not altered by the Repeat Sequence. For k=O and 1, use value of k=2. OPERATION CODE: INSTRUCTION: 33 34 Add and Transmit, ATllV NON-REPEATED REPEATED MC MC 22 18 19 A 19 15 16 Q 20 16 17 PX 37 A MC 15N+1 13N A 12N+1 Q 13N+ 1 Q 13N 35 INSTRUCTION EXECUTION TDIES OPERATION eODE: 36 Subtract and Transmit, STuv INSTRUCTION: REPEATED NON-REPEAT Me Me A Q A Me 23 19 20 Me 16N+l 14N A 20 16 17 A 13N+l Q 21 17 18 Q 14N+l Q 14N OPERATION eODE: Return Jump, RJuv INSTRUeTION: NON-REPEATED Me A Me 18 see A see see Q see see REPEATED~c Me A Me 12 see see A sec see sec see Q sec see see Q OSee preliminary discussion PX 37 9 Q 37 INSTRUCTION'EXECUTION TIMES OPERATION CODE: 41 Index Jump, IJu\r INSTRUCTION: REPEATED* NON-REPEATED MC A MC ~~7 SCC A 20 Q 22 MC A MC 18r+3 SCC SCC A 14 SCC SCC Q 16 SCC Q Q where r = number of executions up to the occurrence of the jump . .JUMP~~ NON-REPEATED REPEATED irrelevant irrelevant MC 22 MC 18N A 19 A 15N Q 20 Q 16N NO JUMP *See preliminary discussion PX 3'7 10 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: Threshold Jump, TJuv NON-REPEATED " 42 REPEATED~:~ v u MC A MC 21 SCC MC 15r+5 SCC A 18 SCC A 17 SCC Q 19 SCC Q 18 SCC MC Q A Q where r = number of executions up to the occurrence of the jump. The jump will occur during the first execution if u is A or Q., JUMP* NON-REPEATED REPEATED irrelevant irrelevant MC 21 MC 15N A 18 A 12N Q 19 Q 13N NO JUMP *See preliminary discu~sion PX 37 11 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: 43 Equality Jump, EJuv NON-REPEATED REPEATED~!~ MC MC A MC 27 SCC MC 2lr+5 SCC A 24 SCC A 23 SCC - Q 25 SCC Q 24 SCC - Q A Q where r = number of executions up to the occurrence of the jump. The jump will occur during the first execution if u is A or Q. REPEATED NON-REPEATED irrelevant irrelevant MC 27 MC 2lN A 24 A 18N Q 25 Q 19N NO .JUMP *See preliminary discussion PX 37 12 INSTRUCTICIN EXECUTION TIMES OPERATION CODE: INSTRUCTION: Zero Jump, ZJuv REPEATED~:~ NON-REPEATED u or v u or v MC 15 MC 9 A SCC A SCC Q Q OPERATION CODE: INSTRUCTION: 47 Q-Controlled Trapsmit l QTuv REPEATED NON-REPEATED MC A Me A Q Me 22 18 19 Me 15N+1 13N A 19 15 16 A 12N+1 Q 20 16 17 Q 13N+-1 *See preliminary discussion PX :37 14 Q 13N 51 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: Q-Controlled Add, QAuv NON-REPEATED REPEATED MC A Q MC 23 19 20 MC 16N+1 14N A 20 16 17 A 13N+1 Q 21 17 18 Q 14N+l MC A Q 14N OPERATION CODE: INSTRUCTION: 52 Q-Controlled Substitute, QSuv REPEATED NON-REPEATED Me MC A Q Me 37 30 32 Me 30N+1 25N A 34 27 29 A 27N +1 Q 35 28 30 Q 28N +1 PX 37 15 A Q 26N 53 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: 54 Le ft S h i ft inA, LA uk NON-REPEATED Q A MC MC 22 + k 18 + k 19 + k A 16 + k L6 + k SCC Q 18 + k SCC 18 + k REPEATED MC (15 + k) N+1 where k is not altered by the Repea": Sequence. *v is coded with bits v~ ••• vo repre;ienting k and bits v14 ••. v7 completing an MC, A, or Q address. If v IS an A address, (u) shifted remain in A; if v is a Q address, the final (AR) are transmi":ted to Q. PX ~~7 16 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: 55 Left Shift in Q, LQuk NON-REPEATED MC A Q MC 21 + k 20 + k 18 + k A 18 + k 18 + k sec Q 17 + k sec 17 + k REPEATED MC Me (14 + k ) N+1 where k is not altered by the Repeat Sequence. ~~where v is coded with bits v6.· .v o representing k and hi ts v14 ••. v7 completing an Me, A~ or Q address. If v is an A address, (u) shifted are transmitted tiQ A; if v is a Q address, (u) shifted remain in Q. PX 37 17 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: 56 Manually Selective Stop, MSjv NON-REPEATED Vf,C Q - ..._A - - - -Q- - - - - --- sec 9 NO STOP v irrelevant -5 STOP OPERATION CODE: INSTRUCTION: Program Stop, PS·-- NON-REPEATED u and v irrelevant u and v irrelevant -6 1 *See preliminary discussion PX ~i7 1U 57 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: Print, PR-v Punch, PUjv NON-REPEATED v 61 63 REPEATED MC A Q 17 15 16 ~ I computer operating time, not including a possible lockout time due to external equipment cycle times of Approximately 105 ms for typewriter 16.7 ms for Punch 13N A Q ION lIN computer operating time, not including lockout times due to external equipment cycle times. Approximate overall times in ms: Maximum Punch 16.7 (N-l)+12.5 Typewriter l05N Minimum Punch 16.7(N-l) Typewriter 105 (N-l) (cycle times listed are not maximum lockout times) PX 37 19 INSTRUCTIO~I EXECUTION TIMES OPERATION CODE: INSTRUCTION: Multiply, MPuv NON-REPEATED MC MC A Q -----------~)8 55 56 A ~)5 52 53 Q ~)6 53 54 35 + 7 (u35 ) each plus 2(u o ) +4L (u·) 1 i=l REPEATED Subtract 36 from corresponding execution times of Multiply Add instruction. PX 37 20 71 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: Multiply Add, MAuv NON-REPEATED Add 36 to corresponding execution times of Multiply instruction. REPEATED MC A Q MC 88N 85N 86N A 85N 82N 83N Q 86N 83N 84N Minimum times where (u3S)j and (uO)j are zeroes and the additional time required for (U34 ... ul)j of ones is given by the summation below the table. N ( ,LUi 34 ) each plus 4.~ J =1 1 =1 j MC A Q MC 237N 234N 233N A 234N 23lN 232N Q 235N 232N 233N Maximum times where (u35 ... uO)j are all ones. If the contents of (u3S ... uO)j are known: U = MC, v = MC 88 N + u = Q, j~l {2(UQ)j + 7(u3S) j + 4 v = Q 35 84N + N{ 2(qO) + 7(q35) + 4 ~ i=l PX 37 21 ~l (ui) j} 72 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: Divide, DVuv NON-REPEATED MC A Q 241 240 238 REPEATED MC N MC MC 234 N + 4 2: (a 71 )j +1 j=l A 238 237 235 Q 239 238 236 add to each 4(a71) Maximum time (in case of a preliminary negative remainder) NON-REPEATED Me A Q 2~m 237 235 REPEATED MC N MC MC I 231N + 4 2: j=l A 2~15 234 232 Q 2~~,6 235 233 add to each 4(a71) Minimum time PX :37 '> 2 ,- 73 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: 74 Scale Factor, SFuv NON-REPEATED REPEATED if v=A or Q, SCC fault MC MC +Y MC 61 A 58 + Y Q 1 59 + MC (54 + Y )N+1 y where Y = (36-k) mod 72 and k is the scale factor 0 S k S 71. k = 37, use value of k = 38. For OPERATION CODE: INSTRUCTION NON-REPEATED~:~ REPEATED If the RP instruction is repeated, the second one takes precedence over the first. 27 + Rn + p where p is the execution time of the terminal jump at Fl and Rn is the execution time of the repeated instruction. (If n = 0, Rn = 0) *See preliminary discussion PX 37 23 75 INSTRUCTION EXECUTION TIMES OPERATION CODE: INSTRUCTION: 76 External Read, ERjv REPEATED NON-REPEATED MC A Q MC I ~Ie::' 14 12 8N+l computer operating time, not including a lockout time if lOB, or lOA, has not yet received the information being "read". computer operating time, not including lockout times. OPERATION CODE: INSTRUCTION: External Write EWjv NON-REPEATED REPEATED MC A Q MC A Q 14 11 12 ION 7N 8N computer operating time, not including a lockout t:ime if lOB, or lOA, is currently in use for output ope rat ions. computer operating time, not including lockout times. PX 37 24 77 INPUT AND OUTPUT SYSTEMS 1. GENERAL. The Input and Output Systems of the Univac Scientific computer provide the means of communication between the computer and the operator. To achieve this communication three things are essential to each input or output system: a medium for external representation of information; external equipment which is capable of (for output) receiving information internally represented and presenting it -in its particular external medium of representation, or (for input) sensing external information as it is represented by its particular medium of representation and presenting it to the computer; a means of transmitting and controlling this transfer of information between the external equipment and the computer. a. STANDARD EQUIPMENT. - The Univac Scientific Computer System includes equipment which utilizes punched paper tape as a means of presenting and receiving information. The Photoelectric Paper Tape Reader senses information punched on paper tape and presents it to the computer; the High Speed Paper Tape Punch receives information from the computer and presents it externally on punched paper tape. The Electric Typewriter is used to create punched paper tape coded to represent typewriter functions and characters. This code is presented to the computer using the tape reader. Typewriter coded information within the computer is presented externally through the typewriter which senses the code and performs accordingly the typewriter function. Typed copy is prepared on standard 8 1/2 by 11 inch typewriter paper and may consist of letters, numbers, signs or symbols, and punctuation marks, spaced in any chosen typewriter format. Paper tape is described in rows and columns: a single column of positions across the width of a tape is called a frame; frames are divided parallel to the length of the tape into seven levels. Six of these levels are used primarily to represent information to be placed in computer storage; the seventh is used to present loading directions to the computer. A hole punched in any of the six lower levels represents a o~e; the absence of a hole represents a zero. The tape is thus coded according to binary number notation although the digit grouping may represent decimal numbers, bioctal numbers, or typewriter codes. If the tape is punched to represent a 36-bit operand, i35 .•. i O ' the bits representing the word are positioned on the tape as follows: LOADING . . LEVELS 7 CODE . . L35 1. 29 I. 23 1.17 L" '-5 6 2 DIRECTION OF 00000000000 (FEED HOLES) TAPE MOVEMENT 3 4 5 PX 38 1 INFUT AND OUTPUT SYSTEMS As shown, six frames are needed to represent a 36-bit word. If the word is a bioctal-coded computer instruction, the digits punched on tape represent the operation code and u and v addresses of the instruction as follows. o. '''''J~ / ',,'1;)" / ',,~" --------u - C. ...... ·--·-·---v-·-----+- _._-_._+- ---_.'~rV . ..,:')0 / '''~ ·'..l/" '''~ - - (OCTAL CODING) / / .~~ - '",t14 ''vt'!" b. OPTIONAL EQUIPMENT. - Other input and/or output equipment which is optional with the computer system represents information externally on punched tabulating cards, magnetic tape, or as printed copy. c. INFORMATION TRANSFER. (1) INPUT OUTPUT REGISTERS. - Information transmission in and out of the computer is performe.d as a function of coded computer instructions. It is routed via a buffer (temporary storage) register and the X Register in its transmission between external equipment and an addressed computer location. The buffer registers used are determined by the selection of external equipment for receiving or loading information. The buffer registers are: the High Speed Punch Register, HPR; the Typewriter Register, TWR: the Input-Output Register A, lOA; the Input-Output Register B, lOB. Since HPR and TWR each provide communication with a specific piece of external equipment, a discussion of these registers is included in the discussion of the proper external equipment. The Input-Output Registers A and B are, respectively, eight stage and 36 stage registers. They are used to provide communication between the computer and the input and/or output equipment for which no specific buffer register has been provided. (2) EXTERNAL INSTRUCTIONS. - Info:rmation transfer to external equipment, via the buffer registers, is initiated by computer instructions which direct the flow of information from an addressed computer location, via the X Register, to the buffer register. The presence of the information in the buffer register allows, under the proper conditions, the external equipment to sense the content of the buffer register and to translate this information and present it externally. Information transfer via the buffer registers from external equipment to the computer is similarly directed by a computer instruction. The information is routed under the proper conditions from the external equipment, via a buffer register and the X Register, to an addressed computer location. The information as represented externally is translated appropriately to its machine representation. The computer instructions which direct the flow of information are: 2 INPUT AND OUTPUT SYSTEMS PUNCH, PUjv, operation code 63 Addressed computer location ~ X Register ~ HPR-+ Punch PRINT, PR-v, operation code 61 Addressed computer location""':X Register -+TWR -;..Typewriter EXTERNAL WRITE, EWjv, operation code 77 Addressed computer location equipment ~ X Register -+ lOA or lOB -+ external EXTERNAL READ, ERjv, operation code 76 External equipment -+ lOA or lOB -+ X l1egister -;. addressed computer location. Since no reference to a specific piece of external equipment is made by the External Read and Write instructions which use the lOA and lOB buffer registers for information transfer, a means of selecting the appropriate piece of equipment must also be provided. The External Function instruction, EF-v, uses the lOB register for this purpose. This instruction places ones, as located at address v, in selected stages of lOB and directs lOB Control to then interpret the content of lOB and to accordingly select and initiate a function of external equipment. EXTERNAL FUNCTION, EF-v, operation code 17 Addressed computer location ~X Register~ lOB Initiate external equipment function according to (lOB) (3) LOCKOUT CONDITIONS. - During the execution of each of these external equipment instructions, a "lockout" test is made to see if a previous use, if such is the case, of the particular register involved is completed. This is necessary before the current instruction can be completed and before the next instruction can be placed in computer control in readiness for its execution. If the necessary requirements are not met, a lockout condition exists which effectively stops computer operating time. For output operations a lockout condition exists if the control circuitry of the particular buffer register being referenced by the output instruction has not yet received an indication that the register has been cleared of previous information being routed to external equipment. The condition continues to exist, temporarily stopping computer operations, until the register is cleared, after which the current information may be received by it (machine operations being resumed), and the execution of the instruction completed. The steps involved in an output operation are sequential within the groups as listed below. PX 38 3 INPUT AND OUTPUT SYSTEMS Under computer control (for output) Content of computer register ~X register TEST FOR LOCKOUT (X) -+ buffer register, INITIATE LOCKOUT Under external equipment control (for output) Sense content of buffer regi.ster Resume signal-Clear buffer register, NULLIFY LOCKOur INITIATION or CLEAR LOCKOUT IF ESTABLISHED Computer operations continue after the initiate lockout step unless a second computer output operation in,rolving the same register is begun before the resume signals from external equipment control are received by the computer. If this is the case, the LOCKOUT condition is ESTABLISHED and computer operation is halted at the test lockout step. Computer operation is resumed at its stopping point when the resume signals ilre received from external equipment. For input operations a lockout condition exists if the control circuitry of the particular buffer register being referenced by the input instruction has not yet received an indication t.hat the register has received the input information from external equipment. This condition continues to exist, temporarily stopping computer operations, until the information is received, after which computer operations are resumed and the instruction completed. The steps involved in an input operation are ~equential within the groups as listed below. Under external equipment control, (for input) Input information ~ buffer register NULLIFY LOCKOUT IN IT IAT ION or CLEAR LOCKOUT IF ESTABLISHED Under computer control (for in~,ut) TEST FOR LOCKOUT Content of buffer register -:~ X Clear buffer register, INITJATE LOCKOUT Content of X...;.. computer storage • During input operations, a LOCKOUT condition is ESTABLISHED if the computer instruction for input is sensed by computer control before the input information is received by the buffer register referenced by the instruction. If the input information is received by the buffE~r register before the execution of the input instruction is begun, the lockout irlitiation condition (left by any previous execution of an input instruction rE'ferencing the same register) is nullified, and the input instruction may be eXE'cuted without lockout delay; but if an input instruction (referencing a re{rister whose previous clearance set up a lockout initiation condition) is attempted before input information is received by the buffer register, a lockout is establiShed. In this case, computer operations are halted at the test lockout step and resumed when the input information is received. PX 3(3 4 INPUT AND OUTPUT SYSTEMS (4) INPUT OUTPUT COMPUTER FAULTS. - Certain conditions may arise during input and output operations which could cause erroneous transmissions to and from external equipment. These conditions do not result in lockouts but cause camputer,faults which halt computer operation. These faults ~esult from operations involving the Input Output Registers A and B and are indicated on the Supervisory Control Panel, lower left portion of the center section. Since they are classified as Type B computer faults (explained in the section, Operating the Computer), they are also indicated on the control panel in the center section, lower righthand corner, as an lOB fault. These faults, listed subsequently, are generated because of timing requirements which have not been taken into consideration or because of faulty external equipment. An lOB (or IDA) Read Fault, Class I, occurs if information is received by lOB (IDA) from external equipment before the control circuitry of the register has received a signal to dispose of information placed there during previous input operations. In other words, if the steps Under external equipment control (for input) Input information~ buffer register NULLIFY LOCKOUT INITIATION or CLEAR LOCKOUT IF ESTABLISHED occur a second time before the steps Under computer control (for input) TEST FOR LOCKOUT Content of buffer register~ X Clear buffer register, INITIATE LOCKOUT Content of X~ Computer storage, an rOB (lOA) Read Fault, Class I, is generated. An lOB (or lOA) Read Fault, Class II, occurs if lOB (or lOA) receives information from external equipment before the control circuitry of the buffer register has received an indication that previous output operations involving it have been completed. In other words, if the steps Under computer control (for output) Content of computer register~X register TEST FOR LOCKOUT (X)~uffer register, INITIATE LOCKOUT are followed by the steps Under external equipment control (for input) Input information ~ buffer register NULLIFY LOCKOUT INITIATION or CLEAR LOCKOUT IF ESTABLISHED, an rOB (lOA) Read Fault, Class II, is generated. PX 38 5 INPUT AND OUTPUT SYSTEMS d. PROGRJ\M INTERRUPT FEATURE. - The program interrupt feature, discussed previously in the General Description and Sequential Presentation of Instructions sections, permits signals from external equipment to activate the interrupt control and provides automatic :interruption of a computer program when the external equipment is ready to communicate with the computer. The instruction at F3, which is acquired for executic)n by the interrupt feature, could provide a jump (Return Jump) to a subroijtine which is coded for input or output operations involving the piece of external equipment which instigated the interrupt. Upon completion of the subroutine, a jump would be programmed, returning operation to the program which was interrupted. This use of the interrupt allows to a certain extent a disregard of the timing restrictions intrinsic to input and output operations from and to that external equipment which may send an interrupt signal to the computer. Those pieces of external equipment which m~iy thus generate the interrupt signal do so (with the proper conditions) each time the equipment is ready to receive or transmit information. The interruption of the current program must be accomplished, and the input or output SUbI'outine must be executed, within the time allowed by the external equipment fOI the computer processing of information. Factors could be present in the progIam being currently executed by the computer which could cause a delay of the interrupt being carried out and consequently delay the necessary input or output operations from being executed within the time limit. Such factors could be an extensive repeat sequence in process at the time the interrupt is activated, or a reference to a drum address which could require up to the maximum access time of 34 milliseconds. In order for the interrupt signal to be sent to computer (interrupt) control, an interrupt line (where it is provided) must be activated in the piece of external equipment itself. This is done by a switch-setting on the equipment, or by programming an External Function instruction with an lOB Select Interrupt bi t. 2. PHOTOELECTRIC PAPER TAPE READER. a. GENERAL. - The Photoelectric Paper Tape Reader (shown in Figure 1), in conjunction with the lOA and lOB registers and associated control circuitry, provides a means of input of information to the computer. The media of information representation is seven-level punched paper tape. The tape reader has a single reading station composed of a column of seven photocells associated with the seven levels of a tape frame as the tape moves through the reader. (Also punched in the tape are feed holes, p3rallel to the length of the tape, between levels two and three.) The six (or seven) bi ts representl~d by each frame are sensed s imul taneous ly and transmitted to the six (or seven) lower order stages of lOA. The representation of ones in the tape frame is ac'cually transmitted by a signal received by the correspond ing stage of lOA. The :C'epres enta t ions of zeros are "transmi t ted" by the absence of such a signal. Thu:; lOA must initially be clear for an accurate representation of the contents of a fl:ame before such transmissions occur. The transfer of information from lOA to an addressed computer location, via the X Register, is accomplished by programm:Lng an External Read instruction, ERjv with j = 0, to be executed each time lOA rnceives the contents of a frame from the tape reader. I I X 3U {] INPUT AND OUTPUT SYSTEMS Figure 1. Photoelectric Paper Tape Reader PX 38 7 INPUT AND OUTPUT SYSTEMS The six lower levels of the punched tape (6, 1, ••• , 5) contain information to be placed at an addressed computer location and may contain loading instructions directing the insertion of information into storage; or the seventh level of the tape may be punched to effect the proper disposal in the computer of the information in the lower six levels. In either case the loading directions in the sixth or seventh levels of consecutive frames must be interpreted within the computer to achieve the designated storage of information. Typical coding, as punched in the seventh level of a tape, for loading directions is shown on the following diagram. Sprocket or feed holes are not shown on this diagram. IN'SERT ADDRESS • ENTER DATA __ 1__ J - J-• • I I I I I I I I I (,14 I I -:L' • , ! ! LI2LS Lo - ,-............... CHECK ADDRESS _--1' . . -J ETC,_C-- L~ • ~35 ,, \..5 \..35 i.1I ! ---- ENTER DATA "\ FIRST WORD ,, ill I I I I I SECOND WORD I I ,, ,, ,, " t..o • • v5 • ", 1.,0 ' I I 1.,14 I I : I I • • •• J 1.,12 1I61"O These distributions of holes, ab represented by "one's" in the computer, are interpreted as follows. (1) INSERT ADDRESS.- The adclress designated by i 14 ••• iO to be placed at an clddressed location WhICh will serve as a "dummy" PAK. (2) ENTER DATAe - (3) CHECK ADDRESS. - The address designated by iI4 ••• iO should be id~n tical 1.0 the address currently held in the "dummy" PAK. The first word, i::\5 ••• iO' is to be placed at the addres~: held in tfie above "dummy" PAK. Success ive words Hre to be placed at consecutive addresses. b. PROGRAMMING FOR INPUT. - Information loading from the tape reader is controlled by using the External Function instruction to place bits in selected stages of lOB. The three stages in ~lhich a combination of ones must be placed are, with their corresponding interpretations, as follows. IOB33 Select Tape Reader IOB 16 Start Tape Header lOB 15 Stop Tape Reader PX 3;9 0 INPUT AND OUTPUT SYSTEMS The "Select Tape Reader" stage must contain a one for all operations affecting the tape reader. The combinations of one's in lOB which effect control of the tape reader are as follows. Start (Free Run) - IOB33 and IOB16 coded as EF-v,(v) being 10 00002 00000 (octal). This combination causes the reader to start and continue running with the six (or seven) bits of each consecutive tape frame being transmitted to IDA. Stop - IOB33 and IOB15, coded as EF-v, (v) This combination causes the reader to stop upon six (or seven) bits of the tape frame sensed by the interpretation, by the control circuitry of being 10 00001 00000 (Octal). the transmission to IDA of the the reader immediately followiry the reader, of (lOB) as a stop. Step Tape Reader - IOB33 , IOB16, and IOB15, coded as EF-v, (v) being 10 00003 00000 (octal). This combination causes the reader to start, transmit to IDA the six (or seven) bits of the first frame of tape it senses, and stop. The normal rate of tape speed through the reader is approximately 200 frames per second, but, as a function of line voltage, it may be ~s high as 230 frames per second. Thus the time interval between the sensing of successive frames of tape may vary from 4.3 to 5 milliseconds. Timing factors to be taken into consideration for the three controlled operations of the tape reader are as follows. (1) Start (Free Run). - Information is being transmitted from the tape to IDA at the rate of one frame every 4.3 milliseconds (assuming for synchronization the shortest time). The contents of IDA should be transmitted to the X Register, using the External Read instruction, at corresponding time intervals for the most efficient use of computer time. The execution of the External Read instruction clears IDA after its contents have been transmitted to X. If another External Read is programmed before the contents of the next frame have been received from the reader, machine operations are temporarily halted by a lockout condition until IDA receives information. If information is transmitted to IDA from the tape reader before IDA has been cleared of the contents of the preceding tape frame, a B Fault occurs and is indicated by the 10 Fault light on the Supervisory Control Panel. (2) Stop. - To insure that the reader is stopped so that the next tape frame whose contents are transmitted to IDA is the last frame desired to be sensed by the reader, the External Function instruction coded for a reader stop should be programmed to be executed at least one millisecond before the sensing of the last desired frame. This can be done by programming it timewise to follow within three milliseconds of the previous External Read. After the reader is stopped, an External Read instruction must be programmed to transmit the contents of IDA to the X Register. If the stop is made during tape loading operations and IDA will not be used before the reader is again started, the External Read may be programmed to precede the start instruction. If the stop instruction is not executed before the transmis s ion to IDA of th.e contents of the las t desired frame, and a read instruction is not programmed to transmit this content of IDA to X, a B Fault will be indicated. The computer will be stopped when IDA is to receive the contents of the next frame which must be sensed before a stop will actually occur. PX 33 9 INPUT AND OUTPUT SYSTEMS When a stop occurs, a three millisecond time delay, allowing the reader to stop physically, is generated in the reader control circuitry. This time delay prevents the reader_from being started for three milliseconds. Thus, a start instruction, if programmed to be executed during this period, is not effective until the three millisecond period has elapsed. (3) Step. - During step operctions the first frame sensed by the reader is the frame which allows the reader stop to be performed. The contents of the first tape frame are transmitted to the lOA register. Thus, consecutively programmed step instructions must each be followed by an External Ii:ead instruction with the first preceded by an External Read if lOA js not initially clear. There is a fivemillisecond time lapse bE'tween successive frames at the operating speed of the reader. A three-millisecond delay is generated by the stop reader operation, arrl approximately a one-millisecond delay is generated by the reader start operation. Therefore, approximately nine milliseconds are cor.sumed in a step instruction. c. OPERATION. - Manual operations necessary to the functioning of the Photoelectric Tape Reader consist of j.nserting the tape to be read in the tape passage of the reader and depressing momentarily the Start button on the reader itself or the Tape Reader Start buttofl on the lower left section of the Supervisory Control Panel of the computer. Depressing either of these buttons turns on the reader power; similarly, deprE~ssing either the Stop button on the reader or the control panel turns off the reclder power. After the reader power is on, an input routine for the reader may bE! initiated which includes instructions to start the reader, read the (lOA) to ae:dressed computer locations, and process the information being loaded accordin~r to the coded loading directions. 3. HIGH-SPEED PAPER TAPE PUNCH. The High-Speed (Paper Tape) Punch output system consists of the High-Speed Punch Register, HPR, the High-Speed Punch Control, and the punch (as shown in Figure 2) which presents information on seven-level punched paper tape at the rate of 60 frames per second. The Hi{rh-Speed Punch Register is a seven-stage buffer register which temporarily stores digits in their transmission between the computer and the punch. The high-speed punch control circuitry senses the contents of HPR and energizes the puneh to perforate the tape frame in the levels whose corresponding stages in HPR con1;ain representations of ones. After information is received from HPR, the tape is advanced through the punch by one frame, placing the next tape frame in position to receive information. The transmission of information to the punch is initiated by the coded computer Punch instruction, PUjv, operat:Lon code 63. This instruction directs the transmission, via the X Register, of the contents of the right-hand six stages of v to the first six stages of HPR. Actually, only the representations of ones in stages X5 ..• X are transmitted to the corresponding stages of HPR~ A j of one is transmittQd directly to the selrenth stage of HPR. According to the contents of HPR6 ••• HPRO' holes may be punched in the corresponding tape levels, 7, 6, 1, •.. , 5. To transmit from address v a word of 36 bits so that each group of six bits is punched in its cc)rrect relative tape position, the Punch instruction must be executed six time~i, each execution being preceded by a PX 30 10 INPUT AND OUTPUT SYSTEMS Figure 2. High Speed Paper Tape Punch PX 38 11 INPUT AND OUTPUT SYSTEMS Shift instruction. The word must be shifted at the v address of PUjv six times, the first shift operation positioning the six most significant bits of the word in the six right-most stages of v, and each succeeding shift operation positioning the next most significant S:LX bits in the right-most stages of v. The High-Speed Paper Tape Punch is ready for operation when the tape is properly positioned in the punch with a "leader" of blank tape preceding the first punching position. This leader may be fed through the punch by depressing either the tape feed button on the (~omputer control panel or on the punch. The punch is started in continuous cyclns of operation by setting both the toggle switch on the punch and the tape punch toggle switch on the lower left section of the Supervisory Control Panel of the computer to their ON positions. Either switch in its OFF position prohibit~; punch operation. The time duration of a punch cycle is 16.7 milliseconds. The first punch instruction initiated during a punch cycle n does not make an efJ:ective punch refereJ;lce, (HPR)------- Punch, until the beginning of the next cyc:le and requires the first 12.5 ms of this succeeding cycle, n + 1, for the conpletion of its punch reference. Thus HPR is not ready to receive additional output information until the last 4.2 ms of the cycle n + 1. If a second punch instruction is initiated before such an indication of readiness is given to HPR, a computer lockout w~ll occur stopping the computer until 4.2 ms before thn beginning of cycle n + 2. If the second punch instruction immediately folloHed, During cycle n, the first punch instruction, the lockout time is 12.5 ms pIus the unexpired time of cycle n after the lockout period ·effected by the second punch begins. Thus, if the first punch instruction was initiated immediateIy after the beginning of cycle n, a lockout time of approximately 29 ms would oecur (12.5 plus almost 16.7). This is the maximum lockout time possible. The punch reference made by the second Punch instruction will not be completed uutil the first 12.5 ms of cycle n + 2 have elapsed. If Punch instructions are programmed to be executed at 16.7 ms intervals, a computer lockout may b{~ effected by the second instruction, but the execution of successive Punch instructions will be in synchr.onization with the punch cycles because of the actual stopping of computer operating time. 4. ELECTRIC TYPEWRITER. The Electric Typewriter output ~;ystem consists of the Typewriter Register, TWR, the Typewriter Control, and the Electric Typewriter, as shown in Figure 3. The Typewriter produces typewritten manuscript with letters in upper and/or lower case, numbers of the decimal ~;ystem typed on the same level as letters or elevated above this level as exp()nents, and a variety of characters such as a plus sign (+), a minus sign (-) , and a comma (,), etc. These letters, numbers, and characters are typed in a format determined by the response of the typewriter control circuitry to six-bit codes which are interpreted as, and actuate the typewriter to, such physical operations as space, carriage return and tabulator. Incidental to a carriage return is a line spacing operation, the number of spaces between consecutive lines being determined by the manually set line spacer on the typtMriter. The tabulator operation also requires a manual setting; the 'intt!rpretation of the tab code as such releases the carriage to move ~o a predetermj.ned manual tab setting. A shift-up operation positions the type bars for upper case typing. To resume typing in lower case a shift-down operation must be executed. PX 3[1 12 INPUT AND OUTPUT SYSTEMS Letters and numbers are also typed, as directed by the Typewriter Control, in response to six-bit codes with ecch code representing a single letter or number. To type a letter in upper c.ase or a number as an exponent, the type bars must be shifted to their upper case position before the typewriter responds to the letter or number code. Two characters are represented by a single code. The character which is typed is determined by the location of the type bars in their upper or lower case position. A list of the typewriter codes, given as two-digit octal numbers, is presented with their associated typewriter functions in Table 1. If an illegal code is sent to the typewriter, an A Fault will occur, which is indicated by the Print fault light on the Supervisory Control Panel. The computer is stopped in its operations at the point when its control receives a signal from the typewriter control that an illegal code has been detected. The computer may be restarted from where it ceased operations by first pushing the CLEAR A FAULT button and then by pushing the START button on the computer. This insures that the illegal code is cleared from TWH. Typewriter operations for output are initiated by the computer instruction Print, PR-v, operation code 61. This instruction directs the transmission, via the X Register, of the contents of the right-hand six stages of v to the six stages of the Typewriter Register. TWR serves as a buffer register for information being transmitted from the computer to the typewriter. Actually, only the representations of ones in stages Xs Xo are transmitted to the corresponding stages of TWR. The typewriter control circuitry senses the representation of a six-bit code in TWR and in so doing causes the typewriter to type a single letter, number, or character or perform a single typewriter operation. For example, to typ~ the single upper case letter M, the following two instructions would be programmed. p •• 5 v 0) is 100 III 61-v, (v5 v ()) is 000 III 61-v, (v A movement left of the carriage ])y one space to reposition it for the next typing operation occurs automaticall:v after each typing of a letter, number, or character. The speed of the typewriter allows it to type approximately nine characters second. Thus, a timing period of approximately 105 ms will elapse between consecutive prints by the typewriter" (Coded typewriter functions require a longer timing period for their completion.) If successive Print instructions are programmed to be executed in les:i time, a lockout condition will exist until the control circuitry of TWR receive:i an indication that the typewriter is ready to receive another six-bit code. The maximum lockout time for the typewriter is dependent upon which phase of the typewriter cycle is being executed currently when a test lockout reference of a sllccessive Print instruction is made. pe~ Manual preparation of the typewr~.ter for operation consists of inserting paper, setting the OFF-ON switch to the right of the typewriter keyboard to the ON position, and selecting the ON LINE switch position. PX 3[; 14 INPUT AND OUTPUT SYSTEMS TABLE 1. TYPEWRITER CODES The upper case, UC, or lower case, LC, character is typed according to the position of the type bars. Type Letter LC UC A a B b C D E c F : G H I J K L M N 1 0 0 p p q r Q R S T U V W Octal d e f g h 1 j k m n s t u v X y w x Y Z z Type Number UC LC I! 30 23 16 22 20 26 13 05 14 32 36 11 07 06 03 15 35 12 24 01 34 17 31 27 25 21 1 52 74 70 64 62 66 72 60 33 37 1 2 2 3 :3 "5 It. e 6 7 8 9 0 5 7 e 9 0 Perform Typewriter Operation Octal I II Space Shift up Shift down Back space Car. return Tabulator Color Shift Code delete Stop -- -- Octal 04 47 57 61 45 51 02 77 43 ii II ~:.=:.=::.=-":~ Type Symbol LC UC - (Superscript Minus) - Octal (Hyphen or Minus) 56 (Equals) 44 (Multiply) = / (Virgule) + (P Ius) 54 ( (Open Parens) , (Comma) 46 ) (Close Pa rens) • (Period) 42 - (Underline) r (Absolute; 50 ~ PX 30 15 INPUT AND OUTPUT SYSTEMS 5. PUNCHED CARD INPUT/OUTPUT SYSTEM. a. GENEill\L. - The Punched Card Input/Output equipment, in conjunction with the lOA and lOB registers and associated control circuitry,provides a means of input to and output from the Univac Scientific computer. The input/output card equipment comprises the Card Unit, shown in Figure 4, and the Card Unit Control.. The media of informatio'n representation is 80-column tabulating cards, in which holes are punched in specified patterns. These cards may be punched or read at a rate of 120 cards per minute. The Card Unit, a~ used with the lnivac Scientific, utilizes a left-hand channel for punching cards and a right-hand channel for reading cards, Punched cards whose information content is to be transmitted to the computer are routed through the "read" channel of the Card Unit; blank cards which are to receive information and to be punched accordingly are routed through the "write" channel. Cards to be routed through the read channel are placed in the card read feed hopper and received, after their advancement through the channel, by the read receiving stacker. Cards to be routed through the write channel are placed in the card punch feed hopper and received, after their advancement through the channel, by the punch receiving stac~er. The tabulating card used by the Card Unit is divided into 12 horizontal rows and 80 vertical columns with grc1ups of these columns being designated as Fields I, II, and III as shown in the diagram of an unpunched card in Figure 5. A rectangular hole, or index, may be punched at the intersection of any row and column. If the input or output information is coded to represent binary words, each row may be punched to represent two 36-bit words plus six additional bits of information. (A hole represents a one; the absence of a hole denotes a zero.) Tabulating cards may also be punched in a pattern to represent alphabetical and digital characters. An optic,nal punched pattern of letters and decimal digits is shown in Figure 6. b. PROGRi\MMING FOR INPUT AND OUTPUT. - Information is transmitted to or from the cards in response to progranmed External Function and External Write or External Read instructions. A sE:ries of three of these EW or ER instructions, programmed consecutively, dire:ct the transmission of each row of information, via X, between addressed comI,uter locations and the Input-Output Registers, IDA and lOB. The sequence of information flow is as follows. To transmit information from the computer to a tabulating card, the group of following External Write instructions, preceded by appropriately coded External Function instructions, is executed twelve times, once for each card row. EWjv, j .- 0 EWjv, j .- 1 EWjv, j - 1 (X)~ IOA~ (X)-~IOB~ (X ~ ---;.. IOB~ Field III Field I Field II Row 9, 8, •.• 0, 11, 12 To transmit information from a punched tabulating card to the computer, the group of following External Read inst.ructions, preceded by appropriately coded External Function instructions, is e}~cuted twelve times, once for each card row. PX 38 16 ":j 1< FIELD L- 1-1' I I~ to s:: ('t) 1'1 I . I C.,11 1-:3 Q.) 0'" s:: ...... Q.) c-+ 1-1. ::s to C""':l ROW 12 ROW II ROW 0 ROW ...... CO >< cl. W CO ;;0" I 1:'11:'11"'\ .-,.-, .... rlc.L.U m >E I I 1 I H :z I I '"C 1000 000 00 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 000 0 0 0 ~o 0 0 000 0000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 n0 Q 00000000 00000000 I,. f l I 4 , , 1 • t It 11 !1 13 14 I' '5 11" " 20 2' Z2 n:M 25 3 17 21 l'9 JII '.' ];' 13 M 315 ". __ • 4. Q Cl M 4I!i • Q 41 ~ SJ 5. V ~ 54 sa SIl 51 51 9 • II 12 &3 64 ~" 1 .1 • a nln JQ II M 15 " n JI JUII 11111111111111111111111111111111111111111111111111111111111111111111111111111111 Q.) .... ~ ' ,.n:. . . . . 2 !£ ttl t l L l 2 l t 2 2 2 2 2 2 2 2 2 l 2 2 l 2 III 2 t i. ! l t I. III i ll. 1 Z Z 1 Z 22 Z Z 2222222 222 222 Z 2 2 2 2 2 2 2 2 212 2 2 2 2 222 c:::: 1-:3 ::t;;. ~ o c:::: 1-:3 '"C ..... ROW 3 j33 3 3 3 3 3 3 3 3 J J 3 3 llll3 3333333333333333313333 J 3 3 3 3 3 3 3 333333333333333333333333133333333 ...... ROW 4 C 4 444444"" 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 .. 4 4 414 4 444444 .. 4 4 4 4 4 4 444444444444444444444144444444 en ROW 5 5 ~ 5 5 5 5 5 ~ 5 5 ) 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 515 5 5 5 5 5 5 55 5 5 5 5 5 5 5 5 S 5 5 5 5 5 5, 5 5 5 5 5 5 5 5 5 5 5 515 5 5 5 5 S 5 5 1-:3 ROW 6 £66666565~66f;G6S656666666S66i6'61i66S666666666666S6666S66666655556656666666666566 ROW 7 17 771 771 1 7: l ROW 8 8 8 8 S 8 a 3 S B S £ ; 8 8 8 S 8 8 8 8 8 B S r ~: 8 8 8 8 8 8 8 8 8 8 B 3 a 8 B 8 8 B 6 8 B 8 H S 8 8 8 g 8 8 8 8 8 g 8 8 8 a 8 8 S 8 8 8 8 8 8 8 8 8 8 8 8 8 8 ! /9 S 9 9 9 9 9 ~ 9 3 S 9 9 9 9 9 9 9 g ~ 9 9 9 9 9 9 ~ 9 9 9 9 9 9 9 S 919 9 3 9 9 9 9 9 9 9 9 9 9 9 9 S 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 ! 9 9 9 919 9 9 9 9 9 9 9 ":j 0.. tfl C""':l 0. ...... s:: a ::s til Q.) ::s 0.. :::0 0 :E til c:::: r-3 ('t) ROW 9 I! ! 2 ; , ~ .. I • 1 7 11 7 7 7 7 1 11 'i 1 7 7 1 7 1 11 1 1 1 117 7 1 7 1 7 7 7 7 1 7 7 7 7 7 7 7 7 1 7 11 7 1 7 7 7 7 7 7 7 7 7 7 7 117 1 7 1 1 7 11 ' 10" 11 :11.5" !1 II I' 2!l1! ~ ll14 ~ 1f. 7; 18 I'd')1 II Jl )': Ji l!: P te Ji.l40 41 :.1013 40: 45 olII ,Ill> 411 !ill 5151 53 ~ l6!i1i 51 ~ ~ III 61521.3 &04 55 ~~; 66" 1011 1173 J4 n I~ n Ja 19 Ciol ~ ~ en "':I:j ..... co = ro I'i 0"- ;J> ::s EXAMPLE ONLY - SPECIFIC CHOICE OF CODE LEFT TO DISCRETION OF PROGRAMMER ~ ~ !3 "0 ABCDEFGH I J K LMNOPQRST etc. 0123456789 I-' ro 0 I-f) 1II1 111111111111111 111111 I '"C = ::s (') ::r' ro P- /.1 "" •• a C,..r.:l ;J> I-' ...0 I'i P- co I-' "0 ::r' ~ t:r' ro t+ ..... (') t~'l~ 1 j, 1ft ~ I-' ~ ::s P- o..... co ..... t+ ~ I-' :=c ro "0 I'i ro en ro ::s t+ ~ t+ ..... 0 ::s flA_,BiBi 1 J 2: ""0 d ,0000000000000 ••• t ~ ""0 :>< ~11Ir1'[~fl ,~~! H r 'lj'l ••••••••••••• fl f,f,1111111111111 lilJZZZlt1212Z221j' j ~ I 1-3 11111111111111111111111111f1111111111 ~ jj~jj4444444444444jl 2221222122121221222121212222122222222 44444444444'4.444444~44444444'444~444 3333333333333333333333333333333333333 •••• ~ $,I~~~t5,}5555555S555. $$$$5555555555555555555555555555555555555 j 11$$6666556666666665666566665666666656566 t&6666&6666&66'1' [ 11I71771111111j I 117171111111111111117111111111171111111 ~~HJ 11'~~ 1jH js .a88S8888888888a&88S8B88888888888888888 1~ j 11, 1j ~1 tLllit'~ ~ ;!!!~!!!!;qL HU1H!!~!!;;' !!!!!~!;!~,!!!!!~!!!~ ~ !!~ ~!~!! I i I[i~ Ii 11'1 Ir·I-lljlllllj ---II I iS888188&88888j! I I I I I I I : ! I -----rrrm-' I ;J> ~ o d 1-3 I 1j3333333333333 ''jj,l 111'IU, ••••••••••••••••••• o ••••••,~"nnH~nnnn~ Itf rt ~ I oaooooooOOOOOOOOOOOOOOOOOOOOOOOODOODO ""'0 d f-3 Ui ~ Ui f-3 ~ Ui INPUT AND OUTPUT SYSTEMS ERjv, j -- 0 ERjv, j -- I ERjv, j -- I Row 9, 8, •.• 0, 11, 12 Field III~(IOA)~ X Field I ---=--(IOB)--+ X Field II---:=- (IOB)~ X Information transmission between lOA and Field III is optional and may be omitted by not executing EW or ER with j = 0 and by manually setting a switch on the Card Unit Control cabinet to its "Out" position. For reading and writing of all three fields the position of this switch, called the Enable Field III switch, is in its "Normal" setting. Preceding any reading and writing operations by the punched card system. at least one External Function instruction must be executed to start the Card Unit, position the cards for reading and/or punching (these two conditions may be established also by manual operation), and establish the condition necessary for a read and/or write. The External Function EF-v transmits representations of ones to certain stages of lOB, then, according to the selected stages, the following signals are sensed by the card system. lOBO Read lOBI IOB 2 IOB 3 IOB 4 lOBS IOB7 IOB 35 Punch Pick Reader Card Pick Punch Card Stop (and Drop Selections) Run Free Interrupt Start Cycle Start Cycle - This selection must be present in each EF-v to make any of the other selections effective. A signal from IOB35 engages the drive mechanism of the Card Unit and causes one "cycle" of operation. The time consumption of each cycle is 500 milliseconds with each eycle consisting of a sequence of 18 cycle points of approximately 27.8 milliseconds each. The cycle points are numbered in the order 14, 15, 16, 17, lB, 9, 8, ..• 1, 0, 11, 12, 13, (14). Interrupt - With the Interrupt switch on the Card Unit Control cabinet set to "By Command", a selection of IOB7 energizes an interrupt line in the card equipment so that an interrupt signal is ;5ent to the computer (interrupt) control when the conditions are established for reading and/or writing a card row. This occurs each time a card row is in position for reading and/or writing (i.e., at the beginning of cycle points 9, 8, .•. , 1, 0, 11, 12) if the Start (or Run Free) and Read and/or Punch selections are effective. The first External Read instruction must be executed within 10 milliseconds after the interrupt signal is sent to the computer. The first External Write instruction must be executed within 1.5 milliseconds after the interrupt signal is sent to the computer. The interrupt selection may be made by setting the INTERRUPT switch on the punched card equipment to its "Locked In" position. With this setting the interrupt line in the equipment is energized (without the IOB 7 selection) under the conditions mentioned above. PX ~30 20 INPUT AND OUTPUT SYSTEMS Run Free - A selection of IOB5 causes continuous cycle operation by retaining in effect the Start selection, along with other selections made simultaneously with the Run Free, until a Stop signal is received by the execution of another programmed EF-v. Stop - A selection of IOB4 permits only one more cycle of operation with the selections effective that were made by the previous EF-v; i.e., the stop is sensed after point zero which allows another complete cycle before the Stop is effected. Pick Punch Card - A selection of IOB3 causes the bottom-most card in the punch card feed hopper to be withdrawn from the hopper and placed in the punch channel. This selection is also necessary for the first advancement of the card through the channel. Pick Reader Card - A selection of IOB2 causes the bottom-most card in the read card feed hopper to be withdrawn from the hopper and placed in the read channel. This selection is also necessary for the first advancement of the card through the channel. Punch - A selection of lOBI enables the punch mechanism to receive information from lOB (and lOA) and prepares it to punch this information on a card during the next cycle. Read - A selection of lOBO enables the brushes used for reading to sense the information in each row of a card as it passes beneath them. After these lOB select signals are received by the punch card equipment they are held in effect for one cycle of operation (or a number of cycles if a Run Free Select was chosen) by the control circuitry so that lOB may be cleared for information transmission. After a card is picked and withdrawn from either the punch card feed hopper or the read card feed nopper. it may advance through a series of five positions or "stations" in the read channel or punch channel. A Pick Reader Card selection or a Pick Punch Card selection places a card in either Read Station 1 or Punch Station 1. A Pick Punch Card Selection or Pick Read Card selection is necessary also to advance a card in the channel from Station I to Station 2. These operations may be initiated by programming External Function instructions with bits in the appropriate stages of lOB or by manually operating switl(~hes on the Card Unit itself. After a card is in Station 2, in either the punch or read channels, four more cycles of operation are necessary to advance the card through the channel and into its final position in the receiving stacker. Each cycle of operation advances cards in both channels if they are in or past Station 2 to the next station. Punch Station 3 in the punch channel contains the punch mechanism. After a card is in Punch Station 2, one cycle of operation is needed to advance the card to the punching position. During the cycle whieh advances the card from Punch Station 2 to Punch Station 3, the information to be punched must be received from lOB (and lOA). More explicitly, during each cycle point 9, H, ••• 1, 0, 11. 12, of 27.8 milliseconds, the series of three (or two) External Write instructions should be executed consecutively, and the Punch select signal must FX 38 21 INPUT AND OUTFUT SYSTEMS be in effect. With these conditions information to be punched (in the correspondingly numbered card rows 9, 8, ••• , 0, 11, 12) can be transmitted to the punch mechanism. At the beginning of the next cycle, automatic punching of a complete card occurs before the card is advanced to Station 4. Outlines of programming for punching of consecutive cards are given in Tables 2 and 3. Read Station 2 in the read channel contains the brushes used for sensiny the cards. During the cycle of operation in which the card is advanced through the read station, the information may be read, a row at a time, as the card is advanced past the read brushes. This information must be transmitted to computer storage from lOB (and lOA) as it is received. More explicitly, during each point 9, 8, ••• 1, 0, 11, 12 of 27.8 milliseconds, the series of three (or two) External Read instructions should be executed consecutively, and the Read select signal must be in effect. This enables the transmission to addressed storage locations of the information of the correspondingly numbered rows 9, 8, 1, 0, 11, 12. Outlines of programming for reading of consecutive cards are given in Tables 4 and 5. An outline of programming for simultaneous reading and writing of consecutive cards is given in Table 6 and on the page preceding it. The transmission of Field III in any of the programs may be eliminated by not executing the External Read or Write instructions with j = and by setting the Enable Field III switch properly. ° c. OPERATION. (1) COMPUTER CONTROLLED. - The equipment is prepared for controlled operation, after power is applied at the Card Unit Control Cabinet, by following the steps below. Step 1 - If only 72-card columns are to be read or punched, set the FIELD III switch (SOl) to the "Out" position. If 80 columns are to be read or punched, set this switch to the "Normal" position. Step 2 - If card reading is to b~ performed, place the deck of cards to be read into the right-hand feed hopper of the Card Unit. If card punching is to be performed, place a deck of cardl in the lefthand feed hopper. Place the metal weights on top of the decks. In either hopper t cards are placed face (printed side) down, so that the "9" edge enters the channel first. Step 3 - Set the toggle switches on the Card unit in the following manner. DUPL. PUNCH MOTOR DC HEAD READ PICK PUNCH STANDBY PIC~ away from operator away from operator left left away from operator towards operator towards operator towards operator After these steps have been performed, the punched card program may be started in the computer. ]>x 38 22 INPUT AND OUTPUT SYSTEMS TABLE 2. WRITE - SINGLE OR CONSECUTIVE CARDS The computer instructions below withdraw two cards from the punch card feed hopper, position the first card for punching and punch information in it, and continue advancing it through the punch channel until it reaches its final position in the receiving stacker. (The second card withdrawn from the hopper is left in the first station.) Other instructions may be programmed and executed during and between each cycle of operation of the card equipment providing that the timing requirements noted are met. EF-v (v) EF-v (v) EF-v (v) = Start Pick Punch Card = Start 1 cycle Pick Punch Card = Start Punch Within 140.5 ms of the start of this cycle the execution of the following three instructions should be initiated: EW,O,v EW,l,v EW,l,v 1 cycle } 1 cycle Repeat for each card row, each repetition being initiated not later than 1.5 ms after the beginning of the corresponding point. = Start = Start (punching occurs) EF-v (v) EF-v (v) EF-v (v) = Start (channel cleared of last punched card) 1 cycle 1 cycle 1 cycle To transmit information to n consecutive cards, without selecting the Run Free bit, include a Pick Punch Card bit in (v) of the third External Funntion instruction above. Repeat the third EF-v instruction and the group of fucternal Writes occurring in that cycle n times. Then,at the conclusion of the program above, the nth or last punched card will be found in the punch stacker with cards remaining in the first and fifth punch stations. PX 38 23 INPUT AND OUTPUT SYSTEMS TABLE: 3. WRITE -. FREE RUN The complJlter instructions below withdraw singly a sufficient number of cards from the punch card feed hopper to hold the information to be punched, position them for punching and .punch information in them, and continue advancing them through the punch channl~l unt.il the last card punched reaches its final position in the receiving stacker. (Unpunched cards are left in the first and! fifth stat ions.) Othe r inst. ruct ions may be programmed and executed durin~r and hetweel1 each cycle of operat ion of the card equipment providing the tim'ing requirEments are met. Number n is the number of cards required t.o hold the information to be written. EF-v (v) = Start 1 cycle Pick Punch Card - EF-v (v) = Start 1 cycle Pick Punch Card - EF-v (v) = Start Free Run Pick Punch Card Punch Wi. thin 140.5 ms of the st,lrt of: this cycle the execution 01.. the following three in st ruct.ions should be initiated~ EW,O,v EW,l,v EW, 1, v } (v) = Start Stop (punching of n-J. card occurs) Wi. thin 140.5 ms of the start of~ this cycle the execution 01:. the following three in struct.ions should be initiated . EF-v EW,O,v EW, 1, v EW, 1, v peat for each card row, each repetition being initiRe at ed not later than 1.5 ms aftE ~r the beginning of the ccIrresponding point. Th e repetitive group of R~ternE11 Write instructions must be programmed n-l times, '~ach ~Jroup being executed timewi. se within the cycle which enEIbles the punching. } repeated n-l cycles 1 cycle Re peat for each card row, each repetition being initiat ed not later than 1.5 ms aftE ~r the beginning of the C(trresponding point. EF-v (v) = Start 1 cycle EF-v (v) = Start 1 cycle EF-v (v) = Start (nth card placecl in receiving stacker) (nth card punchE ~d ) .?X 3S 24 1 cycle INPUT AND OUTPUT SYSTEMS TABLE 4. READ - SINGLE OR CONSECUTIVE CARDS The computer instructions below withdraw two cards from the read card feed hopper, position the first card for reading, transmit its contents to the computer, and continue advancing it through the read channel until it reaches its final position in the receiving stacker. (The second card withdrawn from the hopper is left in the first station.) Other instructions may be programmed and executed durina and between each cycle of operation of the card equipment providing the timing requirements are met. (v) EF-v = Start I cycle Pick Read Card (v) EF-v = Start Pick Read Card Read Within 149.0 ms of the start of this cycle the execution of the following three instructions should be initiated. ER,O,v ER, 1, v ER, 1, v } 1 cycle Repeat for each card row, each repetition being initiated not later than 10 ms after the beginning of the corresponding point. EF-v (v) EF-v . (v) EF-v (v) EF-v (v) = Start = Start = Start = Start I cycle I cycle 1 cycle ~---.- I cycle (channel cleared of last read card) To transmit information from n consecutive cards, without selecting the Run Free bit, repeat the second External Function instruction above and the group of External Reads occurring in that cycle n times. Then at the conclusion of the program above, the nth or last read card will be found in the read stacker with an n + I card remaining in the first read station. PX 38 25 INPUT ANC OUTPUT SYSTEMS TABLE 5. READ - FREE RUN The computer instructions below withdraw singly from the read card feed hopper the cards to be read, position them for reading and transmit their information content to the computer, and continue advancing them through the read channel until the last card read reaches its final position in the receiving stacker. (A card is left in the first station.) Other instructions may be programmed and executed between and durinQ' each cycle of oPAration of the card equipment providing the timing requirements are met. Number n is the number of cards to be read from. (v) EF-v = Start 1 cycle Pick Read Card (v) EF-v = Sta.rt Free Run Pick Read Card Read With in 149. U ms of '~he st art of this cycle the execution of the followin.g three instructions should be initiated ER,O,v ER,l,v ER,l,v } Repeat for each card row, each repetition being initiated not later than 10 ms after the beginning of the corresponding point. The repetitive group of External Read instructions must be programmed n-l times, each group being executed timevlise within the cycle which enables the reading. n-l cycles (v) = Start Stop (reading of nth card) EF-v Within 149.0 ms of the start of thi s cycle the execution of the following three instructions should be initiated ER,O,v ER,l,v ER,l,v repeated f 1 cycle Repeat for each card row, each repetition being initiated not later than 10 ms after the beginning of the correspcnding point. EF-v (v) = Start 1 cycle EF-v (v) = Start 1 cycle EF-v (v) = Start 1 cycle EF-v (v) = Start 1 cycle (nth card placed in receiving stacker) INPUT AND OUTPUT SYSTEMS SIMULTANEOUS READ AND WRITE - SINGLE OR CONSECUTIVE CARDS The outlined progr~ms for reading and writing single or consecutive cards simultaneously may be deduced by interposing the two outlined programs for read and write, single or consecutive cards. A composite of the selections made in both programs in each individual cycle would be selected for one cycle of the simultaneous operations. If it is desired that the reading occur during the same cycle that the information to be punched is being received by the card equipment, the second cycle of operation of the program for writing should be interposed with the first cycle of operation of the reading program. External Read instructions immediately follow External Write instructions when both occur during the same cycle. The same timing considerations must be given the simultaneous performance of reading and writing as when they occur individually. Other instructions may be programmed and executed between and during each cycle of operation providing the timing requirements are met. PX 38 27 INPUT AND OUTPUT SYSTEMS TABLE 6. SIMULTANEOUS READ Al\D PUNCH - FREE RUN The computer instructions below withdraw cards from the read card feed hopper and punch card feed hopper, position them for reading and writin~ perform the information transmittal, and continue advancing them through their individual channels until the last cards read and punched reach their final positions in the receiving stackers. Other instructions may be programmed and executed between and during each cycle of operation of the card equipment providing the timing requirements are met. Number n is the number of cards to be read from and the number of cards required to hold the information to be written. (v) = Start Pick Pun ch Card EF-v 1 cycle ~------.------.-----------------~----------------------~------------~----------~ EF-v (v) = Sta.rt Pick Pun ch Card Pick Rea d Card EF-v (v) = Start Free Run Pick Rea d Card Read Pick Pun ch Card Punch 1 cycle Within 140.5 ms of the start of this cycle the execution of the follcwing six instructions should be initiated. EW EW 0 ,v l,v EW 1, v ER 0 v ER l'v ER l', v . Repeat for each card lOW, each repetition being initiated not later than 1.5 ms bfter the beginning of the corresponding point. The repetitive ~Iroup of External Read and External Write instructions must be programmed n-l times, each group being executed timewise within the cycle which enables the reading and writing. PX 38 28 repeated n-l cycles INPUT AND OUTPUT SYSTEMS TABLE 6. EF-v SIMULTANEOUS READ AND PUNCH - FREE RUN (v) = Start Stop Within 140.5 ms of the start of this cycle the execution of the following six instructions should be initiated . EW,O,v EW ,1, v EW ,1, v Ell ,O,v ER ,1, v ER ,1, v . 1 c:ycle Repeat for each card row, each repetition being initiated not later than 1.5 ms after the beginning of the corresponding point. EF-v (v) EF-v (v) EF-v (v) EF-v (v) = Start = Start = Start 1 c,ycle 1 c.ycle 1 cycle (nth card placed in write receiving stacker) = Start (nth card placed in read receiving stacker) PX 38 29 1 cycle INPUT AND OUTPUT SYSTEMS (2) MANUAL OPERATION. - The punched card system may be operated manually by switches and pushbuttons on the panel located below the feed hoppers. The procedures are as followse (a) TO START. - If cards are in the feed hoppeLs and it is desired to drive the card equipment through one or more card cycles, press the START pushbutton. If the START button is pressed and released immediately, the card equipment will drive through one complete card cycle. If the button is held down, the equipment will run continuously. (b) TO PICK PUNCH CARDS. - If it is desired to feed cards into the punching channel, set toggle switch PICK PUNCH CARDS to the ON position (away from the operator), then hold down t:le START pushbut ton unti I the des ired number of cards have been inserted. (c) TO PICK READ CARDS. - If it is desired to feed cards into the reading channel, set toggle switch PICK RI:AD CARDS to the ON position (away from the operator), then hold down th.e START pushbutton until the desired number of cards have been inserted. (d) TO STOP. - To stop the card equipment during a controlled run so that cards may be added to the feed hoppers, etc., either set toggle switch STANDBY to the ON position (away from the operator) or press and hold down the red STOP pushbutton. This causes the card equipment to stop at the end of the current card cycle so that the computer program is temporarily halted. If the toggle switch is reset or the red STOP pushbutton is released the system resumes normal operation. To clear cards from either channel, remove the cards from the hopper, set the PICK READ CARD or PICK PUNCH CARD switch to its ON position if a card is in Station I, and depress the CLEAR and START buttons until the channel is clear. (3) FAULTS. - When certain faults occur in the system, the card equipment stops. certain of these faults result in B Fault computer stops which allow the equipment to complete its current cycle before it stops. A few of these faults are described below. (a) OVERHEAT. - If the temperature in any portion of the Card Unit Control cabinet rises above 10ooF, a computer A Fault stop occurs, and the amber OVERHEAT indicator on the end of the control cabinet glows. The Overheat fault in itself will not cause a card equipment stop, but it may lead to a No Information A Fault which causes a B Fault computer stop and a card equipment stop. (b) NO INFORMATION. - If the eomputer program specifies that punching and/or reading is to be executed but insufficient or tardy External instructions are being executed, a B Fault computer stop occurs and the amber NO INFORMATION indicator on the end of the Card Unit Control cabinet glows. The computer program must be restarted from the beginning if this occurs. PX 3U 30 (c) VOLTAGE FAULT. - If power to the card equipment drive motor fails, the VOLTAGE FAULT indicator on the end of the Card Unit Control cabinet glows. The fault may be produced by faulty wiring or by blown fuses. (d) NO CARD IN READER. - If card reading is supposed to occur and no card is present in the reading station, a B Fault computer stop is produced and the NO CARD IN READER indicator on the Card Unit Control cabinet glows. This fault may be caused by failure to feed cards or by errors in the computer program. When the source of error is removed, the computer program must be restarted from the beginning. (e) NO CARD IN PUNCH. - If card punching is supposed to occur in the next cycle and no card will be present beneath the punch die, a B Fault computer stop is produced and the NO CARD IN PUNCH indicator on the Card Unit Control cabinet glows. This fault may be caused by a feed failure or by errors in the computer program. When the source of error is removed, the computer program must be restarted from the beginning. (f) PUNCH JAM. - If a card jams under the edge of the punching die, the card equipment stops, all voltages to it are dropped, and the small red JAM indicator on the Card Unit cabinet glows. If this occurs, shut off the equipment power. (g) STOP. - A stop light on the Card Unit Control cabinet glows and the card equipment stops if any of the following occur. 1 Read stacker full. 2 Write stacker full. ~ Read feed hopper empty. i Punch feed hopper empty. ~ The Stop button is pressed. Q STANDBY switch is thrown to forward position (away from operator) 7 A Punch Jam occurs. Note that all of these stops except 1 permit resumption of operation without loss of data. For stops caused by ~ or i, move the STANDBY switch to the forward position during refill of input hoppers. (During the manual operation which clears the channels, the depression of the CLEAR button causes a bypass of the circuitry which normally causes an equipment stop when the feed hoppers are empty.) Note that during card reading or card punching operations, the hopper not being used for such operations must contain at least one card to prevent the occurrence of the stop caused by ~ or 1 above. PX 30 31 INPUT AND )UTPUT SYSTEMS 6. UNIVAC LINE PRINTER. a. GENERJlIL. - The Univac Line Printer equipment, in conjunction with the lOB register and associated lOB control circuitry, provides a means of output from the UnivClc Scientific Computer. The Univac Line Printer equipment, enclosed in a single cabinet (shown in Figure 7), comprises a Format Switchboard, an External Control Panel, a cqrriage and platen assembly, print wheels, and associated control mechanisms. The medium of information representation is printed paper on which the printed characters may be decimal numbers, letters, a period, and a minus sign. The paper is positioned in the printer on a carriage similar to a typewriter carriage. The characters chosen to be printed on one line across the width of the paper are printed almost simultaneously, with the design of the Line Printer allowing the printing of 150 such lines per minute. The spacing between lines is automatic, if so desired, during contdnuous printing of lines and may be manually set for one, two, or three spaces. In addition, paper shifts (without printing) of multiples of three, six, and nine spaces may be initiated by a sin'Jle computer instruction. Each line may have any of the allowable characters printed in any of 92 columnar positions. Each column has an associated print ~leel on which 35 characters are available for printing. Each of the 34 numbers and letters below are present on each print wheel. The period is present 0.1 the even-numbered print wheels 2, 4, 6, etc., and the minus sign is present 0.1 the odd-numbered print wheels 1, 3, 5, etc., thus allowing a period and a mi.lus sign to be printed in every other columnar position on a line. The ch:3racters to be printed in given columnar positions on a given line are chosen :3ccording to an associated II-row, 92column coded i.mage as assumed in the <~omputer. An image has the following coding for available characters. ROW CHARACTER o _ 123456789ABCDEFGHJKLMNPQRSTUVWXYZor -- 11 I - e-' o I I f 2 3 4 5 6 - . I I I I I I --I I I I I I I I I I I I I I I I I I I I I I 7 8 9 I I I I I I I I I I I I I I I I I I I I PX 30 32 I I I I I I I INPUT AND OUTPUT SYSTEMS Note: Blank spaces denote zeros in the image as stored in the computer. The absence of "l'sft ill a column of the image results in a space in the corresponding position on the paper; or, if a mechanical setting is made on the printer, a zero is printed in this position, provided that a print selection was made for the position immediately to the left. A maximum of approximately nine consecutive zeros in a group may be printed in this fashion. b. PROGRAMMING FOR OUTPUT. - Information is transmitted to the printer in response to programmed External Function and External Write instructions. Each row of the image is formed in the computer by positioning at three addressed computer locations the bits for that row which are part of the code of the characters to be printed. Thus, 33 addressed locations are required to represent an image. The image is divided into three fields: Field I consists of the first or left-most 36 columns; Field II, the second 36 columns; and Field III, the third or right-most 20 columns. Three External Write instructions, which must be programmed consecutively, transmit the coded information of each row of the image to the lOB Register, or, as follows. lOB; EWjv ( v ) ----to- X, (X) EWjv (v) ---.. X, (X) ------ lOB; EWjv ( v) X, (X) --+- lOB; ---II..- ----p- ( v 3c..J VOl being Field I of Row r VOl being Field II of Row r v 16) being Field III of Row r The three instructions are repeated for each of the 11 rows, the rows being transmitted in the order r = 9, 8, ••• 1, 0, 11. All three instructions must be executed even though there may not be information in all three fields to be printed. Between successive External Write instructions, the current content of lOB must be transmitted to the Line Printer, allowing lOB to be cleared. Programming a properly coded External Function instruction to precede the External Write instructions initiates the operation of the Line Printer, allowing it to receive information from lOB. Thus, for controlled operations of the Line Printer, the External Function instruction places "ones" in selected stages of lOB. The stages selected, with the operations of the Line Printer which are initiated by the EF instruetion and the presence of ones in these stages, are listed below. 10834 - Start (master bit) Gauses one cycle of operation of the Line Printer and the aut0 matic advance of the paper lr 2, or 3 spaces unless the Stop Paper or the Jump selection was also made. lOB 13 - 4 ~rump Gauses the paper to advance nine spaces during a cycle of operation. (No printing permissible during this cycle) PX 38 34 INPUT AND OUTPUT SYSTEMS IOB12 - Skip Causes the paper to advance according to the Format Switchboard settings. (A Print selection is not permissible in an EF instruction which includes the Skip bit. ) IOBll - Interrupt IOBIO - Print Permits one line of characters (an 11 row image) to be sensed and printed during a cycle of operation. IOB 9 - Stop Paper Stops the automatic advance of the paper during a cycle of operation. Each cycle of operation of the Line Printer is divided into 15 points: (9, 8, ••• , 1, 0, 11 ••• 14, 15), each point being 26.67 milliseconds in duration. During each of the 11 points (9, 8, ••• , I, 0, 11) of the cycle, a row of the image is sensed by the printer provided three External Write instructions are executed during this time and the lOB Print (and lOB Start) selections were made by a previous External Function instruction. If these selections are in effect, the series of transmissions to the Line Printer effected by the 33 External Write instructions positions the chosen print wheels. The characters in position for printing are printed on paper sometime during or after the cycle point six. The automatic paper advance occurs before cycle point six. The number of spaces the paper is automatically advanced is determined by a switch setting on the Format Switchboard which is discussed later. Time factors that must be taken into consideration in programming for Line Printer output are pointed out in the following program outline. A time lag due to inertia when the printer is initially started may occur which will delay the execution of the first 'point of the cycle of operation. Note that an External Write of Field I for Row 9 should immediately follow the External Function instruction which starts the printer and, for Rows 8, ••• 0, lIt should occur before or during the early part of the corresponding ten points. Other computer instructions may be programmed and executed between cycles and during cycle points in t~e remaining available computer time. To advance the paper and print one line EF-v (v) = Start Line Printer Print Within 1.5 ms of the beginning of the point the first EW must be executed EWjv EWjv EWjv Other instructions Write Field I Write Field II Write Field III point 9, 26 .. 67 ms PX 38 35 INPUT AND OUTPUT SYSTEMS Within 1.5 ms of the beginning of each point, the first EW must be executed EWjv EWjv EWjv Other instructions Wrfte Field I Write Field II \'Iri te Fie ld I II Repeat for points 8, 7 • •• 0; each 26.67 ms Within 1.5 ms of the beginning of the point, the first EW must be executed EWjv EWjv EWjv Other instructions Write Field I Write Field II Write Field III point II, 26.67 ms } Other instructions points 12, 13 14, IS, each 26.67 ms Continuous printing of lines may be programmed by repeating the preceding program the desired number of times with the instruction initiating each repeating cycle being programmed during point 12 of the preceding cycle. Thus, for continuous operation of the Line Printer, the External Function instruction to initiate a new cycle must be executed within 50 milliseconds of the Write Field III instruction for row 11. The selection of the Interrupt bit, IOBII, facilitates programming for output to the Line Printer. A selection of IOBll' in the External Function instruction in which IOB 34 , Start, and IOBIO, Print, are also selected energizes an interrupt line in the printer so that an interrupt signal is sent to the computer (interrupt) control each time a row of the card image is to be sensed, i.e. at the beginning of cycle points 9, 8, ••• ,1, 0, 11. The first External Write instruction must be executed within 1.5 milliseconds after the interrupt signal is sent to the computer. f The interrupt selection may also be made by setting the interrupt switch on the Line Printer to its ON position. With this setting the interrupt line in the printer is energized as above when a Start and Print selection is made. c. FORMAT SWITCHBOARD. - By. making the appropriate switch settings on the Format Switchboard, the printing of lines in accordance with a chosen format may be accomplished without executing External Function instructions to initiate individual spacing operations of one, two, three, or nine lines. Skips of one, two, three, six or nine spaces during one printer cycle, or consecutive skips of these spacings during successive printer cycles, may be initiated by a single computer instruction, after which the computer is free to execute any other instructions. PX 30 36 INPUT AND OUTPUT SYSTEMS The ten columns of switches on the Format Switchboard provide a format "count" control of available spacing operations. A spacing operation depends upon the switch settings in the column corresponding to the format count. The functions of the three portions of the switchboard: and Multiply, and their switches, are explained below. Control, Space, (1) CONTROL. - A switcn in the Hold setting holds computer control of spacing in effect until an External Function instruction containing Start and Skip lOB Select bits is executed and the next format count position has an Advance switch setting. A printer cycle of operation initiated by such an EF instruction is necessary to make the transition from computer control to format control. A switch in the Advance setting, in conjunction with Skip and Start bits in the preceding EF, releases computer control of spacing, advances the pape~ in the printer according to switch settings on the Space and Multiply portions of the switchboard, and advances the format control count to the next position. Adjacent switch settings of Advance in the Control portion will automatically continue the format control count across the switchboard (to the next count position with a Hold switch setting) with spacing occurring according to the corresponding switch settings in Space and Multiply. (Spacing occurring for a count position which has an Advance switch setting is defined as being under "format spacing control rt.) A switch in the Clear setting advances the format control count to the next count position disregarding any switch settings in the Space and Multiply positions. Switch settings of Advance or Clear in the first format control count position, i.e., "home" count position, are not effective as described above. This position has effectively an "automatic" Hold switch setting. (2) SPACE. - Spacing between lines is affected by settings on the Format Switchboard during both computer controlled and format controlled spacings. Under computer control the paper is advanced the number of spaces according to the switch settings in the Space portion only of the Switchboard. Under format spacing control the paper is advanced (with the exception noted below) the number of spaces according to the switch settings in both the Space and Multiply portions of the switchboard. (3) MULTIPLY. - Under format spacing control the paper is advanced one, two, or three spaces (according to the Space setting) if a Multiply switch is in the OFF pOSition (unless a Stop Paper bit is in effect); or three, six, or nine spaces (each space setting multiplied by three) if a Multiply switch is in the ON position. Note that the change from computer control to format spacing control requires one printer cycle, i.e., advancing from a Hold switchboard setting to the first Advance switchboard setting requires a cycle of operation instigated by an EF instruction with the Start and Skip bits. During this cycle of operation, the paper is advanced automatically one, two, or three spaces. This spacing action must be considered in making switchboard settings in the Advance switchboard position in order to effect the desired overall skip of spaces. The Stop Paper bit could be programmed in the EF instruction which causes the change to format control. However, if this is done, the Stop Paper bit effects paper shift action under format spacing control (until the next Hold setting) as PX 38 37 INFUT AND OUTPUT SYSTEMS follows: if the Multiply switch is OJi'Fr no paper spacing results for that particular format count position; if the Multiply switch is ON, a paper skip of three, six, or nine spaces results for that particular count position. The following listings show optio.lal spacings available under computer control and format control of spacing. If no spacing is to occur under format spacing control, the forma t control c·)unt should be in the home count pos i tion. (This is insured by depressing the Cl,~ar Control button for at least two seconds.) The format switchboard settings under computer control below are for this home position or any count position which has a Hold switch setting. Under Computer Control FORMAT SWITCHBOARD SETTINGS CONTROL SPACE MULTIPLY FUNCTION lOB SELECT BITS 1. Start, advance paper, Hnd print (if desired) Star t Print (if desired) Hold 1,2,or 3 2~ Start, stop advance of Star·t,Stop Paper paper,and print (if desired) Print (if desired) Hold 1,2,or 3* 3. Start and jump 9 spaces without printing Hold 1,2, or Start, Jump 3~:c OFF* OFF* Note that before printing the first line, the paper must be adjusted one, two, or three spaces ahead of the position in which the first printing is desired unless the EF instruction contains a Stop Paper bit. Under Format Spacing Control FUNCTION lOB SEWCT BITS~:;~:; FORMAT SWITCHBOARD SETTINGS CONTROL SPACE MULTIPLY 4. Single,Double, or Triple Start, Skip Space. advance format control count to next position. Advance 1,2,or 3 5. Space six or nine,advance format control count to next position. Start, Skip Advance 2 or 3 ON 6. No spacing, advance format control count to next positiono Start, Skip Clear 1,2,3* OFF* .'.". These switch settings are not effective in setting up the function . OFF Included in a previous EF used for the transition from computer controlled operation to format spacinu control. The effect of a Stop Paper bit included in this instruction is not shown here. Functions I, 2, 3, 4, and 5 require timewise one print cycle. Function 6 settings continuously across the board require a maximum of one second to clear to the "home" position. I'X 30 30 INPUT AND OUTPUT SYSTEMS An optional format for Line Printer output is illustrated in Figure 8. The form length used is 66 spaces, generally the number of spaces on the folded pack paper commonly used. The following listing shows the selections necessary to achieve the printing of a page in this format. (Each External Function instruction must be followed by the appropriately coded External Write instructions. ) In this case a Stop Paper bit was included in the EF instructions which effect the change from computer control to format control. Since the paper skips desired under format control are multiples of three, the Multiply switch in the Advance count positions is ON; hence the stop paper bit in effect will not hinder the desired paper spacing action from occurring. FORMAT CONTHOL "COUNT" I FORMAT SWITCHBOARD SETTINGS CONTROL HOLD SPACE 1 SPACES ADVANCED MULTIPLY OFF 18 lOB SELECT BITS (In a total of 27 coded EF-v instructions) Start, Print (repeat this coded EF 18 times) Start, Stop Paper, Skip 2 ADVANCE 3 ON 9 3 ADVANCE 3 ON 9 4 HOLD 3 OFF 21 Start, Print (repeat this coded EF 7 times) Start, Stop Paper, Skip 5 ADVANCE 3 ON 9 6 CLEAR 1 OFF o 7 CLEAR 1 OFF o 8 CLEAR 1 OFF o 9 CLEAR 1 OFF o 10 CLEAR I OFF o Total of 66 spaces d. OPERATION. - The procedures listed below should be followed to initiate use of the Univac' Line Printer. (1) Set the Main Power switch on the External Control Panel to ON. (2) Check that the Stop switch on the External Control Panel is OFF. (3) Depress the Clear button on the External Control Panel. PX 38 39 INPUT AND OUTPUT SYSTEMS FORMAT CONTROL COUNT 1----------- 9 ---- - - - r HPACES ----------1 --.-----.~ - - ~ - - - ------- 18 LINES PRINTfm SINGLE SPACE 2-~ (f) l.&J U ~ (f) 18 3-~ 4-~ BPACES CD CD -----------t----------TRIPLE:'! SPACE --- 7 LINES PRINTI~D ---------- 9 TRIPLE SPACE - - - If' :,PACES - - - - - - - - - - - 1 ________________1__________ _ Figure 8, Optional Format for Line Printer Output PX 38 40 :r: I(!) Z l.&J ..J INPUT AND OUTPUT SYSTEMS (4) Depress the Clear Control button on the Format Switchboard for at least two seconds. (5) Insert paper in the platen assembly. The following conditions require that the Clear Control on the Format Switchboard be depressed for at least two seconds to insure that the format control count is back in the home position. These conditions are as follows: (1) Paper is being changed (2) A fault occurs (3) The format is changed (4) An improper program is scheduled. During the operation of the Line printer four types of faults may occur which are indicated visually by a light on the printer or a FAULT indication on the Supervisory Control Panel of the computer. These faults are as follows: (1) NO PAPER FAULT. - If the paper in the Line Printer is almost depleted, a fault circuit stops the computer and gives a No Paper fault indication on the printer control panel. Pressing the Clear button on the printer clears the fault. Starting computations anew will initiate a second fault condition. Since a No Paper fault occurs slightly before the end of the paper has passed the printing position, several more lines, depending on the spacing, may be printed. This fault becomes effective after the current cycle is completed, thus no information will be lost. (2) MECHANI.CAL JAM FAULT. - If the printer stops before completing a cycle, a B Fault stops the computer and printer and is indicated by the 10 light on the Supervisory Control Panel. There is a possibility that this fault may be cleared by pressing the Master Clear button on the computer. (3) NO INFORMATION FAULT. - If lOB does not contain the Field I portion of a row (i.e., the first EW instruction has not been executed) within 1.5 milliseconds after the start of a cycle point, a B Fault occurs. The Line Printer completes the cycle before stopping but will print erroneously since no further EW instructions occur within the cycle. (4) OVERHEAT FAULT. - This fault will cause an A Fault computer stop. Operations may be resumed temporarily without loss of information by setting the BYPASS INTERLOCK switch on the Supervisory Control Panel, pressing the CLEAR A FAULT button, and pressing the START button on the computer. PX 38 41 INPUT AND OOTPUT SYSTEMS 7. MAGNETIC TAPE SYSTEM a. GENERAL DESCRIPTION. - The Magnetic Tape System of the Univac Scientific Computer System comprises a number of Uniservo tape handling mechanisms, which are located externally to the computer, and an electronic control section which is located in the computer structure. The number of Uniservos used is optional up to a maximum of ten functional units. By means of manual selections the unit designations may be assigned in any manner to the functional units. Use of the Uniservo units makes possible off-line processing of information by a variety of Univ~c peripheral equipments. For input to the Univac Scientific, information may be recorded on tape in three forms: Fixed Block Length Recording Variable Block Length Recording Continuous Data Input Recording Output information from the Univac Scientific may be recorded on tape in the Fixed Block Length Recording form and the Variable Block Length Recording form. The Fixed Block Length mode is standard with the Magnetic Tape System. Optional Control circuitry may be added to provide both the Variable Block Length mode and the Continuous Data Input mode. The Variable Block Length mode reads and records information on tape in blocks of variable length. A block of information is recognized by a oneinch space preceding it and following it :in which no information is recorded. The length of the block is limited only in that the data input from it must not exceed the capacity of high speed storagen The Continuous Data Input mode reads information recorded continuously on the tape with the only limitation on the length of a "block" of information being the length of the tape. This form of recording is useful for real time observations which will not permit interruptions to format the information in fixed or variable block lengths. Data input from tape recorded in this manner would need be interrupted when the capacity of high speed storage is reached. The Fixed Block Length mode reads and records information on the tape in blocks of fixed length. The remainder of the remarks in this description apply in particular to this mode of operating. (1) TAPE CHARACTERISTICS. - Unitape is the metallic tape used by the tape handling equipment in recording and reading information. Information is recorded as magnetized areas in eight channels across the width of the tape. Data bits are recorded in six of these channels; one channel contains parity check bits on the six data channels; and one channel contains sprocket, or timing, signals. A Uniservo is a unit of tape handling equipment. A Uniservo comprises a read/write head, an erase head, a bad spot (in the tape) detector, and tape handling mechanism such as the tape reel mount, reel drives, etc. In a reading 42 INPUT AND OUTPUT SYSTEMS operation the read/write head detects ttl's" recorded on the forward or backward moving tape; in a writing operation the read/write head records both "D's" and "l's" on the forward moving tape. During a writing operation the erase head is also activated such that the tape in its passage through the erase head has "D's" written on it. The bad spot detector enables the Uniservo to interrupt reading, moving, or writing operations until the undesirable tape area passes the read/write head. A tape speed of 100 inches per second is 'standard. of a reel of tape is 1500 feet. The approximate length A column of eight binary digits across the width of a tape is termed a line; the six data binary digits, a hexabit character. Lines are recorded on the tape at a density of 128 lines per inch (standard) or 50 lines per inch. A block consists of 720 consecutive lines; a blockette consists of 120 consecutive lines. A "dead space" (in which no information is recorded) of 1.0 inch (standard) or 2.4 inches exists between blocks; a dead space of zero, 0.1, or 1.0 inches exists between the six blockettes of a block. The optional recording formats are selected by program control in accordance with the intended future use of the recorded tape, possibly with Univac auxiliary equipment. When a stop of tape movement occurs, the tape is halted in the dead space between blocks. Blockettes and blocks are recognized by the tape control section by counting the timing signals recorded on the tape. A timing device, actuated in the last blockette, signifies the end of a block if the interval between timing signals exceeds a certain length of time. The detection of the end of a block in combination with a stop signal causes a halt of tape movement. In terms of a 36-bit computer word, six lines are necessary for recording one word. A block comprises 120 computer words; a blocket te comprises ~~O computer words. Thus, approximately 326,000 computer words may be stored on a 1500-foot reel of tape. The maximum transfer rate of information between the computer and the tapes is approximately 1810 words per second. This is assuming a free-running tape, one-inch block spacing, and zero blockette spacing. Average magnetic tape times for other block and blockette spacings are shown in Table 7. (2) PROGRAMMING TAPE OPERATIONS. - A programmed External Function instruction (IT-V) initiates the various readirig, writing, and positioning operations of the Uniservos. Coded information provided by the External Function instruction includes the following: (a) (b) (c) (d) (e) specification of optional recording mode if available designation of the selected Uniservo type of tape operation to be performed type of recording format for writing, i.e., block and blockette spacing and recording pulse density. number of blocks to be moved without reading or writing. The External Function instruction transfers the content of its v-address to the Input/Output Register, lOB. The 36-bit word thus introduced into 1013 designates the magnetic tape operation to be performed. The "Select Magnetic Tape u PX 38 43 TABLE 7 AVERAGE MAGNETIC TAPE TIMES To estimate running times of programs using magnetic tapes Recording Density (lines per inch) 128 128 128 128 128 128 Block Space (inches) 1 1 1 2.4 2.4 2.4 Blockette Space (inches) none 0.1 1.0 none 0.1 1.0 Block Length (including block space in inches) 6.625 7.125 11.625 8.025 8.525 13.025 i Rate Block Period* (36-bi t lAJOrds (milliseconds) per second) 66.25 71.25 116.25 80.25 85.25 130.25 1811 1684 1032 1495 1408 921 H :2: ""0 c:: 1-3 ::t> 50 ~ ~() -- ~ ..t::.. ..t::.. 50 50 50 50 ~ 0 1 none 1 () 1 2.4 2.4 2.4 .........1 1.0 none 0.1 1.0 15.4 1 ~ .LV. 0 ,I 20.4 16.8 17.3 21.8 154.0 ,r::n (\ 779 ...,t=t= .LvI. V lo.Jo.J 204.0 168.0 173.0 218.0 588 714 694 550 :2: 0 -.. a H "'"0 c:: H C/). I- 720 count is detected, the 720 check failure is stopping action or error indication is effected. > A change in the bias level needs to be programmed only when an incorrect reading operation h~s occurred. Reading forward and backward at the high and low bias levels may accomplish a correct reading of the block. It is not permissible to program any other tape operation in the instruction which specifies a change in bias. The return to the normal reading bias level must also be programmed unless a computer Master Clear occurs which also accomplishes this. Both the Rewind and Rewind with Interlock operations cause the tape on the Uniservo specified to be positioned to its leader position. A Uniservo whose tape has been rewound with interlock cannot be referenced effectively until the Uniservo door interlock switch has been opened and closed. This occurs when the Uniservo is provided with another tape. After the Rewind and Rewind with Interlock operations are through their initiation phase, another tape operation on a different Uniservo may be started. Thus, any number of Uniservos may be rewinding concurrently. If a tape operation is desired on a Uniservo which is rewinding when this tape operation is initiated, the tape operation is held up until the rewinding is completed. Then, if the tape has not been rewound with interlock the tape operation is resumed and completed. It is not possible to execute correctly a second tape operation on any Uniservo while a previous one is still in progress unless the tape operation in progress is a rewind operation. (2) GLOSSARY. - The following glossary lists terms pertaining to the magnetic tape system. A brief description is given of the primary function of the principal registers and counters involved in tape control. Figures 9, 10, and 11, following ~he glossary, illustrate the use of the registers and counters and the sequence of events, in write, read, and move operations. Read/Write head - Binary digits are represented in channels across the width of the tape as areas magnetized in opposite directions. In a writing operation areas in the channels on the forward moving tape are magnetized in the "0" direction except when pulses are received by the read/write head from tape control in which case areas are magnetized in the "1" direction. In a reading operation the read/write head, as it detects in the channels the areas magnetized in the "1" direction, directs pulses to be sent to tape control. Accurate detection occurs when the backward or forward moving tape has reached its free-running rate (100 inches per second). Erase head - during a writing operation, the erase head magnetizes in the "0" direction the entire width of the tape in its passage 'under the erase head. The position of the erase head several inches ~rom the read/write head is such that the traversal of the tape in a forward direction is first under the erase head and then under the read/write head. This guarantees a "clean" portion of the tape on which to write. PX 38 51 INPrT AND OUTPUT SYSTEMS Tape Leader - the plastic length of the tape which precedes the metallic length of the tape on which information can be recorded. Ringed tape - A tape reel fitted with a ring which prevents writing on this tape and in so doing provides indication of this condition. This feature is to be made available in the near future. Writing Oscillator - emits pulses at the rate of one approximately every 80 ~s (for writ.ing 128 lines/inch) or one every 200 ~s (for writing 50 lines/inch). The rate depends upon the selection made for density of lines in a writing operation. An oscillator pulse (in conjunction with other conditions) initiates the writing of a line. Sprocket Pulse - formed by sensing the sprocket channel as a line of tape moves past the read/write head in a reading or moving operation. After a short delay the sprocket pulse is instrumental in a reading operation in routing the information read from that line of tape to the computer. In a moving operation each sprocket pulse is used to form a count of lines moved. Parity bit - recorded on each line of tape during a writing operation and used as a check on the accuracy of reading each line of tape. The parity bit generated during writing a character (six data bits) is a "1" if the number of "1 'sIt :in the character is even and a "0" if the number of "1 'sIt is odd. The sum of the data bits and the parity bit should be odd. Bad Spot Control Bad Spot on tape - Areas on the tape on which no recording should be attempted are marked as "bad spots". Holes punched in the tape preceding, following, and in the bad spot area are sensed by photoelectric tape readers during tape movement. During a reading operation, Bad Spot Control interprets the position of these holes and temporarily stops any transmissions from tape until the bad spot is passed; during a moving operation Bad Spot Control stops temporarily the counting procedure of the lines moved; during a writing operation, Bad Spot Control temporarily stops oscillator pulses from initiating the writing of a line. Reading Bias .- the voltage applied to the :cead/wri te head when reading from the tape. By changing the bias level to higher or lower than normal, the read/ write head responds to weaker than normal signals on the tape or ignores objectionable "noise" factors on the tape. Tape Control Register (TCR) - a 12-bit register in the tape control system which receives the bits in IOB23-" IOB'12 when the bit in IOB31 is "1" (Select Magnetic Tape bit). The actual transmission lOB to TCR is held up (i.e., TCR is "locked out") until the tape control system signals that it is ready to receive another operation code. The presence of operation bits in TCR enables the various tape operations. Block Counter (BK) - a 12-bit register in the tape control system which receives the bits in 10Bll ••• IOB O on an lOB to TCR transmission as described above. The content of BK is used to regulate the number of blocks (n) moved in a Mo e Forward or Mo e Backward operation. PX 38 52 INPUT AND OUTPUT SYSTEMS Tape Register (TR) - a 36 bit register in the tape control system through which words are routed in their transmission between tape and lOB. In a writing operation six-bit segments of a word in TR (placed there by an Externcll Write instruction) are positioned in TR5 ••• 0 and consequently written on tape. In a reading operation, a word is assembled in TR until six lines have been received; the transmission TR to lOB then occurs. Align Input Register (AIR) - a seven bit register which receives six data bits and the parity bit from a line of tape passing under the read/write.he~d in a read or move operation. In a reading operation the delayed sprocket pulse formed by sensing the sprocket channel in the same line of tape causes the transmission AIR5 ••. 0 to TR35 ••• 30. AIR is then cleared. Tape Shift Counter (TSK) - a counter which regulates the shifting in TR of the six aata bits of a line. On the completion of the shift of six bits (one line) t a TSK Itend carry" is propagated which is interpreted as an "advance LK" signal by the Line Counter; TSK is then cleared. Line Counter (LK) - a counter which controls during reading and writing the shifting in TR of the six lines of a word. In a reading operation, when six lines have been assembled in TR, LK propagates a signal to effect TR to lOB; an "advance WK" signal is sent to the Word Counter, and Til and ft [j{ are "cleared • In a writing operation when six lines have been written on tape from TR5 ••• 0, LK propagates a signal which clears TR and enables the transmission lOB to TR (if lOB has been filled by an EW instruction); an "advance WK" signal is sent to the Word Counter, and U( is "cleared". In a moving operation U( is advanced by the receipt of a delayed sprocket pulse. When six lines have been "moved", an "advance WK" silgnal is sent to the Word Counter and LK is cleared. Word Gounter (WK) - counts the number of words read, written, or moved until a blockette count is reached; i.e., when a 20 word count is reached, an "advance BTK" is sent to the Blockette Counter and WK is "cleared". Blockette Counter (BTK) - counts the number of blockettes read, written, or moved until a block count is reached; i.e., when a six blockette count is reached, a "BTK end carry" is sent to various portions of tape control, and BTK is "cleared". A BTK end carry is used during a moving operation to subtract Itl" from the Block Counter. PX 38 53 INPUT AND OUTPUT SYSTEMS Start W r i t e - - - - - - - - - - - - - - - - - - l I delay fort block spacing during tape acceleration I delay for spacing _____ between blocks I delay for spacing, if any, between--------4 blockettes I I . re3 dy to wrIte .~ I 'V on next effective OSCILLATOR PULSE:~ ~ Check for No Information-- -~ - OR Determine par.ity bit I Shift TR left 6 times Write parity, sproc.ket, r--~-" and TR5." • 0 if EW executed: if no EW: Advance LK lOB to TR Set Stop enable 1_ _ _ _ _ _ _ _ _ _. . Clear lOB in TCR I I line shifts # 6 lOB Resume Initiate fault I LK end carry---- - - - - - - ______ ---.J (one word written) 1/ Clear TR Advance HK :/- 20 words 1 WK end carry (20 words written) Advance I1TK :/- 720 words BTf: end carry (1 block written) no stop enable Initiate Stop * Oscillator pulses do not effect any writing initiation during any of the delays quoted and during the time the tape is moving througQ a bad spot. During a stop initiation, oscillator pulses are made temporarily ineffectual by virtue of the delay (for the inter-block space) caused by a BTl( end carry. During this delay, a Master Clear from Stop Control renders them ineffectual until the next Write Sequence. Figure 9. Write Sequence PX 38 54 INPUT AND OUTPUT SYSTEMS Start Read/Move No Stop Read~Move from Bad Spot Control 1 'f Delayed Sprocket Pulse AND Start Read/Move (initial or from Bad Spot Control) (AIR to TR 35 ••• 30 ) '" Shift TR left six times OR Shift TR right six times if error, Che ck pa r it Y bi t -----r-e-a--=d-y-e-r-r-o-r--+i-nd-=-I-::-·c-a-t-;"iOiil Advance LK I I line shifts left ~ 6 OR line shifts right ~5 I 'II I 1 word (6 lines) in TR LK end ca,rry , TR to lOB lOB Read Acknowledge Clear TR Advance Word Counter ~ 20 words read I '720 words read BTK end carry I I. receIve I, 721 st sprocket pu\se I ~ I ~ 6 blockettes Block spacing detected Indicate fault I I I 20 words read '~WK end carry Advance Blockette Counter 1\ = 5 rsTK I I W Check for L- __________ ~o~~able f I ~ ;{~ I II .1. V lOA Read Acknowledge Set lOA I I ~---i------ no stop, read next block ,II any stop Initiate Stop Figure 10. Read Forward Backward Sequence (Delayed sprocket pulse approximately 40 ~s after tape line to AIR) PX 38 55 II Indicate faul t j INPUT AND OUTPUT SYSTEMS Start Read/Move -~~.--.-------..---------~ :-.--------' No Stop Read/Move from Bad Spot Control Delayed Sprocket Pulse AND Start Reat/Move (initial or from Bad Spot Control) Advance LinJ Counter line shifts left f. 6 1 LK end carry I Advance Word Counter 1 -:f 20 words WK end carry ~ Advance Blockette Counter =5 r BTl( -:f 6 bl ocket tes BTK end carry ---------1 Block spacing detected (1 block moved) , ~!mulate B~~K end carr_y ___ __ _ recei ve 721 st 'L_ -, sprocket pul se 'f t Back Block Counter BK -:f 0 Indicate fault I i BK = 0 (n blocks moved) II W t------~ Initiate Stop Figure 11. Move Forward or Backward Sequence (Delayed sprocket pulse approxirrately 40 J-Ls after tape line to AIR) PX 38 ~}6 INPUT AND OUTPUT SYSTEMS a A BTK end carry and a Stop enable initiates a tape stop 4 A stop initiation prevents a-nother lOB to TCR transmission during which TCR is cleared. for approximately 10 ms. [Note that an, lOB to TCR transmiss ion can occur immediately after the last BTK end carry (unless a Read or Write One Block and Stop operation was programmed). Since TCR is not yet cleared, no operation except a Stop should be programmed immediately after reading or writing n (> 1) blocks 1 Move Uniservo j !! blocks, n> 0 1 When and if j is avai lable', the TCR lockout is set and the lOB Resume is given. 2 BTK end carry clears the TCR lockout (T5K end carry resets it) but lOB to TCR transmission is not allowed until TCR is cleared, removing the Move enable. ~ A BTK end carry from the nth block and a Move enable from TCR initiates a tape stop during which TCR is cleared. Stop Reading or Writing of !! (> 1) blocks (Uniservo designation and read or write enable remain in TCR from the read or write operation to be terminated.) 1 Since J IS availabl~, the TCR lockout is set and the lOB Resume given. 2 The Stop enable now in TCR with the previous BTK end carry initiates a tape stop during which TCR is cleared and TCR lockout cleared. However, the stop initiation prevents another lOB to TCR transmission for approximately 10 ms. Rewind j or Rewind j with interlock 1 When and if j is available,TCR lockout is set and lOB Resume is given. £ When Rewind init iation is completed, TCR lockout is eleared and TCR is cleared. Bias Change 1 TCR lockout is not s,et 2 Bias Change completion after approximately 20 ms effects lOB Resume and Clear TCR. PX 38 57 INPUT AN]) ooTPUT SYSTEMS c. TAPE OPERATION TIMING. (1) GENERAL. - Before a study is undertaken of the available computation times during tape operations, it is helpful to review the conditions which are necessary during tape operations before (a) An External Function, External Write, or External Read instruction can be executed following an EF tape instruction and (b) the transmission lOB to TCR can occur after an EF tape instruction is exeeuted. (lOB is automatically cleared immediately after this transmission. ) The transmission X to 1013 during the execution of an EF or EW instruction is not possible after the execution of a previous EF instruction until an lOB Resume is recei~ed by lOB Control. (A lockout condition is established by lOB when a sec~~d X to lOB transmission is attempted before an lOB Resume is received from external equipment. This prevents the use of lOB for a second output operation before the first is completed.) No wait for an lOB Resume is necessary when an ER instruction follows an EF instruction since the attempted execution of an ER instruction sets up an lOB lockout until information is received from external equipment (and this transmission is not received until a tape operation is underway). An IeB Resume generated by tape control after an EF instruction indicates that tape control has accepted the current content of TCR as a tape operation. Since this lOB Resume allows the loading of lOB by 8 second EF instruction or an EW instruction, TCR must be protected against receiving another lOB to Tca trans~ission until the first tape operation is completed. This protection is provided by setting the "TCR Lockout" before giving the lOB Resume. Then, since these transmissions are blocked, lOB may be loaded safely by another EF or an EW (or an ER). Since a Bias Change operation does not effect a TCR lockout, it does not generate an lOB Resume until the change of bias is completed. After an EF tape instruction has been executed, the TCR lockout set up by the previous tape operation must be removed before the operation code currently in lOB can be transmitted to TCR. (In some cases, the removal of the TCR lockout is not sufficient to allow the lOB to TCR transmission.) It should be noted that if TCR has not been cleared previous to an lOB to TCR transmission, the logical sum of lOB and the current content of TCR are formed in TCR. This is not allowable except when an EF stop instruction is programmed to terminate a Read or VWrite operation. The occurrence of these signals, lOB Resume, set TCR lockout, clear TCR lockout, and clear TCR, during each of the legitimate tape operations is pointed out below. gead or. Writ~ Uniservo j (and stop) 1 When and if j is available, the TCR lockout is set and the lOB Resume is given. :~ A BTK end carry clears the TCR lockout. (TSK end carry, if reading or writing is continued, resets it. ) l'X 30 INPUT AND OUTPUT SYSTEMS (2) AVAILABLE COMPUTATION TIMES. (a) A tape operation becomes effective when the operation specification, as placed in lOB by an External Fun~tion instruction, is transmitted to TCH. This transmission may not occur immediately after the execution of an EF instruction. The initiation of a tape stop on any Uniservo causes a Stop Initiation delay which prevents for 10 ms the following: lOB to TCR trans.,.. mission, lOB to BK transmission, and Clear lOB signal. Consequently, the emission of the lOB Resume signal is also detailed until this time, and lonqer it a Change Bias operation is being initiated. During this 10 ms, an External Function instruction may be executed but the tape operation is not initiated. The attempt to execute an External Read or External Write instructio~, if a read or write operation is to be initiated, or a second EF instruction, establishes an lOB lockout condition until the lOB Resume is emitted. (b) Between an External Function instruction for a read or write operation on Uniservo jand the first External Read or External Write. It is assumed that Uniservo j is immediately available. Possible Stop Initiation delay* Writing operation 10 ms (maximum) Reading Operation 10 ms (maximum) The following delays are incurred after a read or write operation is initiated, but before a word is transmitted to lOB (in reading) or (in writing) before tape control assumes a word has been received from lOB. Tape Direction delays normal if movement is to be in opposite direction from previous movement 2.5 ms 2.5 ms 600 ms 600 ms Leader delays if tape is on leader 1500 ms Block Spacing Delays for one inch block spacing for 2.4 inch block spacing 7.5 IllS 14.5 ms 1000 ms 5. 0 ms 5. 0 ms t:~:~~ ~:~~:~ The delays listed are "progressive", i.e., they are not initiated simultaneously. The delays listed detain signals internal to the tape control system with the exception of the block spacing delays listed for a reading operation. * If the EF Read or Write instruction immediately follows an EF Stop instruction or the last ER or EW of a previous Read or Writ~ One Block and Stop operation. See paragraph (a). ~:~~:; Actual reading of the tape does not begin until the tape is moving through the read/write head at its free-running speed. The times quoted above are acceleration times for the tape to reach this rate. These delays assume no variation from a tape speed of 100 inches per second and are minimum times for this speed. The times of 7.5 or 14.5 are allowable assuming that block spacing is exactly 1.0 or 2.4 inches and that tape movement is stopped exactly in the middle of the block spacing. Only when the block spacing is known to be consistently 2.4 inches can the 14.5 ms time be used. PX 38 59 INPUT AND OUTPUT SYSTEMS (c) Between successive External Read instructions or successive External Write instructions: at a recording density of 128 lines per inch at a recording density of 50 lines per inch 436 microseconds 1168 microseconds Tape moves at a rate of 100 inches per second. Therefore, for a recording density of 128 lines per inch, 36-b:~t words are transferred to lOB (or sensed from lOB) at the rate of one word every 468 microseconds (104 • 6/128 microseconds). When the execution time for the External Read (or External Write) instruction is subtracted from this time, 436 microseconds remain for computation. The available computation times for other recording densities are similarly computed. (d) During the time a b:lock or blockette spacing is moving past the read/write head: Writing oQeration~:c Reading OQeration** One inch inter -b lock or 9.968 ms 7.468 ms inter-blockette space 2.4 inch inter-block space 0.1 inch inter-blockette space 23.968 ms 17.968 ms .968 ms .718 ms (e) A maximum computation time of 250 microseconds can be used for other than tape operations between the External Read or Write instruction which reads the last word in the last bloek and the External Function instruction which initiates a tape stop. (f) Computation time available after a Move Forward or Move Backward operation becomes effective (on lOB to TeR, lOB to BK). Another EF tape instruction may be executed immediate:~y but it will not become effective until after times listed below. Tape Direction delays minimum 2.5 ms or maximum 600 ms if tape movement is to be in opposite direction from last movement. During a writing operation the writing pulses are cut off for 10,24, or 1 ms. These times minus the .032 ms execution time of the External Write instruction yield the times quoted above. ** Again the reading rate is dependent on the tape speed and the length of the inter-block and inter-blockette ~;paces. It is ample to allow for a 25% deviation in the length of spaces between blockettes and between blocks. Thus, the minimum available computation time, assuming tape motion at the rate of 100 inches per second ancl a space of 0.75 inches in length, is computed to be (7500 -.32) microseconds while a "one inch" block space is moving by the read/write head. PX 3b 60 INPUT AND OUTPUT SYSTEMS Leader delay or Acceleration time* 1000 ms if tape positioned on leader 5 ms if tape not positioned on leader Free-running time* for n blocks: Block rate recording density 128 lines/inch recording density 50 lines/inch Inter-block space rate one inch inter-block space 2.4 inch inter-block space Stop Ini tiation delay n x 56.25 ms n x 144.00 ms (n-l) x 7.468 ms (n-l) x 17.968 ms 10 ms (g) Computation time available after a Rewind or Rewind with Interlock operation becomes effective (on lOB to TCR). Another EF tape instruction may be executed immediately but the lOB to TCR transmission for this- operation is not allowed until after the times listed below: Minimum 10 ms or Maximum 600 ms if tape movement is to be in opposite direction from last movement In addition to the times quoted above, if the tape instruction follo~Ting a Rewind instruction references the same Uniservo, this next instruction will not become effective until the rewinding is completed. Maximum rewinding time is approximately three minutes. In this case, this time also could be used ~dvan tageously for other computations not referencing lOB. (h) Computation time available after a Change Bias operation becomes effective. The attempt to execute immediately another External Function instruction establishes an lOB lockout condition. There is a 20 ms delay after the initiation of a bias change before another EF instruction can be executed to its completion. d. OPERATION. (I) OPERATION INDICATORS. - Tape operation is reflected by the condition of indicators on the Uniservos, the tape control cabinet, and the left section of the computer control panel. These indicators and their reactions to tape operation and tape operation faults are discussed in the following paragraphs. (a) UNISERVO. - The "Ready" indicator (green) is between the tape reel panel doors, upper center section of the Uniservo. This indicator is illuminated when the Uniservo interlock circuit is energized; i.e., when power has been applied to the Uniservo, when the tape reel panel door switch is set to its ON position, and when the Forward Limit, Mylar Detector, Left Tape Loop, and Right Tape Loop switches are in their normally closed position. If this indicator is not illuminated, the Uniservo is not ready for operation. * Assuming no variation from a tape speed of 100 inches per second. PX 38 61 INPUT AND OUTPUT SYSTEMS A failure to have the interlock eircuit not energized because power has not been applied to the Uniservos would not usually occur. Power is normally applied to the Uniservos (and the tape control system) at the same time power is turned on for the computer. Normally, if it is noted that the "Ready" indicator is not illuminated, the interlock circuit ili not energized because one of the switches in the circuit is open. The condition which caused the switch to be opened must be corrected before any operation on the unit can be undertaken. If operation is attempted on a unit in which the :interlock circuit is not energized, a computer B-Fault condition is incurred. The interlock switches and the conditions which cause them to open are discussed in the following paragraphs. The tape ree 1 pane 1 door swi tch :is located immed i ate ly be low the "Ready" indicator. This interlock switch mu:;t be set to OFF to open the left tape reel panel door and cannot be returned to its ON position until the door is closed. Effectively, then, opening the Uniser'ro door causes the "Heady" indicator to be dropped. The door must be closed and the door switch reset to ON before the interlock circuit is energized. A Mylar shim, or buffer tape, is inserted between the read-write head and the metallic recording tape. This ]llastic tape serves to reduce both tape wear and friction. When this tape i:5 broken or the supply is exhausted, the Mylar detector interlock switch is opened, dropping the "Ready" indicator. The replacement of the Mylar tape by maiJltenance procedures closes this interlock switch. The Forward Limit interlock swit,~h is opened when the magnetic tape moves into its "leader n area on its far end, i.e., the left-hand tape reel is depleted and the right-hand tape reel c:ontain;) all of the tape. (The Forward Limit switch is opened when the "rubber bumpers" ,)n the "leader" on the far end of the tape are detected). To close this switch and energize the Uniservo interlock circuit, the tape must be rewound past its "l(~ader'~ position. This is accomplished by opening the panel door and manually "turning the reel in the counter-clockwise direction several times (until the switch no longer makes contact with the rubber Dumpers). The complete rewind ing 0 f the tape onto the left -hand ree 1 can then be accomplished by the normal rewind operation which can be instigated manually from the computer control panel or uader program control. The Right and Left Tape Loop switches are opened when the tape loops are out of normal position. This could be caused by tape breakage or possibly could result from faulty operation of control circuits in the Uniservo. Maintenance procedures are necessary to correct these conditions. De-energizing the Uniservo interlock eircuit could also be caused by blowing a fuse. A blown fuse in theUniservo cabinet is shown by the illumination of the Fuse indicator. Inside the right-hand tape reel ,joor, above the tape reel mounting, are indicators labeled Rewind Interlock and Fault, Fuse and Temp. The Fuse indicator is illuminate,j by H blown fuse. This indicates that some part of the Uniservo is i~perative and the Uniservo interlock circuit may be de-energized. Detection and replacement of the blown fuse are maintenance procedures. PX 3U 62 INPUT AND OUTPUT SYSTEMS The Temp. indicator is illuminated when a temperature rise above 120°F is detected in the Uniservo. This condition causes a computer A Fault and illuminates the Temp indicator in the A Fault Group on the computer control panel. Computer operation is halted by an A Fault condition. Operation is resumed after corrective maintenance by depressing the Clear A Fault button (unless a B-Fault has resulted from tape reading or writing occurring at the time of the computer stop. If this is the case, either (I), the MT fault indicator in the B-Fault group on the computer control panel. and the No Information fault indicator in tape control cabinet are illuminated, or (2), the 10 fault indicator in the B-Fault group on the computer control panel is illuminated). The Rewind Interlock indicator is illuminated when the magnetic tape has been rewound with interlock on the left-hand tape reel. This condition indicates that the tape on this Uniservo should be replaced before this unit is used again. Opening the door to replace this tape drops the "Ready" condition of this unit (because the door switch must be set to OFF) and drops the rewound with interlock condition. Inside the right-hand tape reel door, above the tape reel mounting, are indicators labeled Clutch, Stop (red) and Go (green). The Go indicator is illuminated by the signal which is sent to the tape drive mechanism to pull in the clutch and start tape movement. This indicator remains illuminated until a stop tape signal is received by the tape drive mechanism to operate the brake, thus releasing the clutch. At this time the Stop indicator is illuminated and remains illuminated until the tape is re-started or until power is dropped from the unit. (b) TAPE CONTROL CABINET. - This cabinet is located immediately to the left of the Power Supply Cabinet. Located inside the right-hand door are tape fault indicators and the Logical Number Selection switches. Each Uniservo is physically defined by one of the numbers 1, 2, ••• 10, depending upon the number of Uniservos installed. For instance, if an installation has eight Uniservos, it would be expected that the numbers 1 ••• 8 would define the eight units. The Logical Number selection switches are labeled Uniservo 1, Uniservo 2, etc. ~ncircling the switches are the numbers 1 through 10. A Uniservo is assigned a logical designation by turning the appropriate selection switch so that the white line on the switch is in line with the number desired. The n1.lmbers available for logical assignment depends upon the number of Uniservos installed, i.e., if eight Uniservos are installed, any of these units may be logically assigned any of the numbers one through eight. Thus, if the eight Uniservos at an installation are physically defined as Uniservos 1 •.• 8, the switches labeled Uniservo 9 and Uniservo 10 should be set to the logical designations of 9 and 10. It is not allowable for two switches to be set to the same logical designation even though some of the switches define a non-existent Uniservo. The tape fault indicators (red) above the Logical Number Selection switches are labeled. No Information, Sprocket Error, Selection Error, and Uniservo Interlock. These indicators are illuminated by the detection of one of these tape faults. These faults also cause the illumination of the MT indicator in the B-Fault group on the computer control panel and cause a computer B-Fault stop. PX 38 63 lNPUT AND OUTPUT SYSTEMS The logical number Selection Error is caused at any time the computer is in operation by setting two Logical Number Selection switches to the same number, i.e., givin~r two "Uniservos" the same 10Uicai designation. The fault occurs regardless of whether or not the "Uniservo" is non-existent or out of service for maintenance reasons. This fault must be corrected before computer operation can be resumed. Correcting the selection causes the Selection Error fault light to be extinguished. Operation is resumed by depressing the Master Clear Button (which drops the B-Fault light), making the desired selections on the computer control panel, and depressing the computer Start button. In order to prevent a Selection Error fault from occurring at the time of making a logical number designation change, the computer operation must be stopped. Depressing the Force Stop button on the computer control panel will allow a setting to be made safely. Computation is re-started by depressing the Start Button. The Uniservo Interlock Fault is caused by referencing for a tape operation a unit in which the interlock circuit is de-energized. This condition is shown on the unit referenced by the extinguishment of the "Ready" indicator. The causes of this condition have already been discussed in the paragraphs discussing the "Ready" indicator and Uniservo interlock circuit. Computer operation can be resumed by depressing the Master Clear button, which extinguishes both the MT and Uniservo Interlock indicators, making the desired selections on the control panel, and depressing the Start button; but, if the cause of the Uniservo Interlock fault is not corrected and the same unit is again referenced, the B-Fault will re-occur. Correcting the Uniservo Int~rlock fault during a B-Fault Stop extinguishes both the Uniservo Interlock indicator and the MT fault indicator. Operation is resumed by depressing the Master Clear button (which drops the B-Fault indicator), making the desired selections on the control panel, and depressing the Start button. The No Information and Sprocket Error faults are discussed later in the fault section. These faults can be cleared, and their indicators, the MT Fault indicator, and the B-Fault indicator are extinguished, by depressing the Master Clear button on the computer. When the occurrence of an MT B-Fault is noted, observing the condition of the tape fault indicators in the tape control cabinet is an aid to diagnosing the cause of the fault. Before the cabinet door is opened, the Bypass Cabinet Interlock key in the Test Switch group, right section of the computer control panel, must be turned to its Abnormal position. The failure to do this before opening a cabinet door causes an emergency power drop to the computer system, and maintenance procedures are necessary to resume operation. (c) SUPERVISORY CONTROL PANEL. - Represented on the left section of the Supervisory Control Panel are components of the tape control system. The banks of lights which assist the operator in manual operation of the Uniservos and aid in diagnosing certain of the fault conditions and computer operation "delays" are those labeled TCR, Tape Control Register, TR, Tape Register, and BK, Block Counter. The button labeled MT Test Start Step in the MT Test. Writing Rate group is depressed to manually initiate a tape operation. The illumination of one of the indicat()rs labeled MT Read Bias, high or low, shows the selection of a read bias other than normal. PX 64 ~HJ INPUT AND OUTPUT SYSTEMS The bank of lights labeled Center Drive Control, Start and Stop, indicate tape movement on the Uniservos. An indicat~r in the top row is illuminated by an "operate clutch" signal to a particular unit; this indicator is extinguished by an "operate brake" signal which illuminates the indicator in the bottom row. The numbers below the ten pairs of indicators, between the "set" buttons (black) and "clear" buttons (white) are the physical definitions of the Uniservos. If the need for an immediate stop.of tape movement should arise, this can be effected, if the computer is not in operation at the time or if operation is in the Test mode, by depressing the "clear" button for the appropriate Uniservo. (Depressing the computer Force Stop button stops operation.) (2) PREPARATION FOR OPERATION. - The procedure for preparing for tape operation under program control or manual control is as follows (assuming that the Uniservos have been properly fitted with tape reels): (a) Determine whether those Logical Number Selection switches in the tape control cabinet which physically define instalied Uniservos have been set to the logical number designations used in the program. NOTE (The numbers which can be used for logical designations cannot exceed the number of installed Uniservos.) If any logical designations are to be changed and the computer is in operation, the Force Stop button must be depressed before making the switch changes to prevent the occurrence of a Selection Error. (b) Check for the illumination of the green "Ready" indicators on the Uniservos to be used. If this indicator is not illuminated, the "not ready" condition must be corrected before this unit can be used. Assuming that power has been applied to the Uniservos, the attempt to use any unit not ready causes a Uniservo Interlock B-Fault. (c) Check for the illumination of the Rewound Interlock indicators on the Uniservos to be used. This condition should be eliminated before attempting any operation on the Unisetvo. A tape reference to a Uniservo which has a Rewound Interlock condition causes a computer stall, and until this tape refer~nce is removed from tape control the attempt to eliminate the Rewound Interlock condition causes a Uniservo Interlock B-F~ult. The procedure to replace any rewound tape is as follows: (a) Turn the door switch to its OFF position and open the left tape reel panel door. (b) The small spring clip connecting the magnetic tape and the leader should be positioned immediately below the tape reel. This connection is broken by spreading the sides of the spring clip, thereby releasing its prongs from the small cylindrical ending of the leader. PX 38 65 INPUT AND OUTPUT SYSTEMS (c) Pu 11 forward the ho:.ding latch on t he tape ree 1 mounting. This releases a locking pin directly under the knob from its position in one of the slots in the inner circumference of the tape reel. Hemove the tape ree~. from the tape reel mounting. (d) Place another rewound tape on the tape reel mounting so that the tape winding is in the clockwise direction. Return the holding latch to it~; closed position, first positioning the tape reel so that the locking pin is inserted into any of the slots in the inner circumference of the tape reel. (e) Connect the magnetic tape to its leader by inserting the prongs of the spring clip jn the cylindrical ending of the leader. (f) Turn the tape reel counterclockwise until any tape slack is taken up. (g) Close the panel dool' and set the door switch to its ON position. (3) MANUAL OPERATION. - To initiate tape operations from the computer control panel, the computer must be set to operate in the Test mode. The operations which can be successfully comrlleted after a manual initiation are Rewind, To initiate one Rewind Interlock, Move Forward and Backward, and Change Bias. of these operations, set the desirec: operation code and Uniservo selection (except for a Change Bias operation) in TCR by depressing the appropriate "set" (black) buttons. (The white button is depressed to clear the register.) Manual settings may be made any time the computer is not in operation and when operation is in the Test mode. If ~I Move operation is desired, the number n of blocks to be moved in inserted in BK. Depressing the MT Test Start Step button then causes the specified tape operation. At the completion of the Move F(lrward, Move Backward, and Change Bias operations, the Tape COiltrol Register and the Block Counter are automatically cleared. If the bias is changed to high or low, one of the bias indicators (red) in the MT Test Writing Rate group is illuminated. If a manual rewind operation is performed, TCR is cleared when the rewind operation is initiated. The failure of the registers to be cleared as expected after attempting a manual operation could be due to one of the following reasons: (1) The Test mode of operation was not selected; (2) for a rewind or move operation, no Uniservo selection was made in TCR (Ir the Uniservo specified is not available; (3) for a move operation, the block count set in TCR was greater than the nmmber of blocks available for moving on the tape. This is evidenced by a reduced block count # 0 in BK and a Urliservo Interlock B-Fault if the move was in a forward direction. If a manual Move Forward or Move Backward operation is attempted without inserting a block count in BK, TeR is cleared and no tape movement is initiated. PX 38 66 INFUT AND OUTPUT SYSTEMS e. IMPROPER PROGRAMMING OR OPERATION. (1) GENERAL. - Consideration must be given to the effects of improper· programming and operation errors on both tape operation and computer operation. In general, a program should run correctly if the equipment has been prepared properly, the Uniservo designated is available, a legitimate tape operation has been specified, the correct number of External Reads and External Writes have been coded, a Stop has been coded to terminate a Read or Write operation, and the timing restrictions have been noted in coding, in particular, the External Read instructions, External Write instructions, and an EF Stop instruction. A disregard for these requirements may result in an operation "delay" (a temporary halt of operation) whic'h (1) may not be immediately noticed or l(2) may'cause indirectly a computer fault; or a disregard for these requirements may cause directly a computer fault. Any time computer operation is stopped, tape operation should be stopped to prevent the possibility of a "runaway" tape, i. e., a tape which moves free of control to its "leader" pos i tion on the far end. If erroneous operation is detected by the tape control system after tape movement has been initiated, the tape control system effects the tape stop and initiates a B-Fault computer stop. The tape stop occurs at the end of the block (i.e., midway of the next interblock space) which was being read, written, or moved at the time of the fault detection. At the time the "stop tape" signal is sent to the Uniservo, the Tape Register, Tape Control Register and tape counters are cleared. In some cases, the execution of computer instructions may continue until the time of the actual computer stop, approximately 80 ms after the detection of the tape fault. If this is the case, and an External Function instruction for a tape operation is executed during this time, the possiblity exists of starting another tape movement. If this next EF instruction executed is an EF Stop (Read or Write) instruction, the lack of a Un:iservo designation in TCR prevents the initiation of tape movement and effects an lOB lockout condition. For this reason, it is important that an EF stop instruction does not specify any particular Uniservo. If tape movement is started erroneously, depressing the computer Master Clear button stops the tape movement. (To stop tape movement without clearing any of the registers on the computer control panel, a button in the Center D.rive Control can be depressed as described in subparagraph entitled Supervisory Control Panel, Operation.) When computer operation is stopped by a computer A-Fault, a B-Fault, a Force Stop, or a Manually Selective programmed stop, any tape movement in progress at the time of the actual operation stop is halted (1) during a rewind operation, at the completion of the rewind; (2) during a move operation, at the completion of the move; (3) during a read or write operation at the end of the current block being read or written. This block is not read completely or written correctly to completion since the appropriate number of External Reads and External Writes are not executed. In diagnosing the cause of an operation delay or computer fault, noting the condition of the following indicators is helpful. (a) On the Supervisory Control Panel: The registers in Magnetic Tape Control, in particular, TR, TCR, BK. The lOB Register, located above TR. PX 38 67 INPUT AND OUTPUT SYSTEMS The Program Control Register (PCR) and Program Address Counter (PAK) both located in the centE~r section of the control panel. At any time,PCR holds the instrL~ction being executed and PAK holds the address of the next instruction to be executed. The 10 and MT fault indic;ators in the B Fault group, lower center section of the control peinel. The illumination of the 10 fault indicator indicates the occurrence of one of the lOB (or lOA) external faults shown in the External Fault group, lower left section of the control panel. Tbe illumination of the MT fault indicator shows the occurrence of some other fault originating in the tape system. The Temp fault indicator in the A-Fault group. An lOB lockout condition is shown by (1) the illumination of the top-most light in the column labeled Wait External in the Pulse Distribution Control group, center section of the control panel, and (2) the presence of an EF:,EW or EF instruction in PCR. 1 (b) The indicators on the Unj.servos: Temp. (c) The Fault indicators in the tape control cabinet: No Information, Sprocket Error, Selection Error, and Uniservo Interlock. Note: Ready, Rewind Interlock Fuse, and The door of the Tape Control Cabinet must not be opened without first turning the Bypass Cabinet Door Interlock key (in the Test Disconnect switches, right section of the computer control panel) to it~: Abnormal position. (2) TAPE OPERATION FAULTS. - The operation errors which may occur during tape operation are listed below and cliscussed in detail subsequently. Parity Check Error: effects a stop of tape movement; caused by a reading or recordinu error. Temperature Fault: effects a computer A-Fault; equipment fault. Uniservo Interlock: effects a equipment c(~puter operations error or No Information: effects a c(~puter 10 Read Fault: computer B-Fault; programming error. Selection Error; effects computer B-Fault; operator's error Sprocket Error: effects computer B-Fault; recording error B-Fault; f(lUlt~ 613 B-Fault; programming error. INPUT AND OUTPUT SYSTEMS The detection of a parity check error does not effect a computer fault but does effect a stop of tape movement. At the completion of reading every block, a check is made to determine if a parity error occurred in reading any of the 720 lines in the block. If one or more errors occurred, a "1" is set into stage o of lOA and a tape stop is initiated. If no error was detected, only the lOA Read Acknowledge signal is sent to lOA. Thus, lOA must be "read" and its content tested after reading every block. Computation .continues depending upon the result of the test. If a parity check error is indicated, the block can be reread in the opposite direction, and read and re-read at the different bias levels. If none of these passes effect a correct reading, a computer stop can be programmed to indicate the unsuccessful attempt to read the block correctly. (a) UNISER'lTO TEMPERATURE FAULT. Indications: Illumination of the Temp A Fault indicator on the computer control panel. Illumination 6f the Temp Fault indicator on a Uniservo. Diagnosis: The temperature.fault results from a temperature rise above 120°F in any Uniservo. The occurrence of a Temp Fault during tape operation does not interfere with the tape operation unless reading or writing is occurring at the time of the computer stop. If this is the case, a computer B Fault is also incurred. This is evidenced by the illumination of the MT Fault indicator on the computer control panel and the No Information fault . indicator in the Tape Control Cabinet, or the illumination of the lOB Fault indicator on the computer control panel. Resumption of Operation: If a B Fault has not occurred, turning the Bypass Temperature Interlock key to its Abnormal position after the computer stop has occurred allows resumption of the program in the Test mode after the Clear A Fault button is depressed. However, this procedure should be undertaken with caution. To resume computation in the Normal mode, the Temp fault must be corrected. The correction of the fault extinguishes the Temp Fault indicator on the Uniservo. Operation is then resumed by depressing the Clear A Fault button which extinguishes the Temp Fault indicator on the computer control panel. If ~ B Fault condition exists, the A Fault is cleared by one of the procedures above; clearing the B Fault condition requires the depression of the Master Clear button. Operation is resumed according to the type of read or write fault incurred. These faults are discussed subsequently. (b) UNISERVO INTERLOCK FAULT Indications: Illumination of MT fault indicator and B Fault indicator in B Fault group, computer control panel. Illumination of Uniservo Interlock fault indicator in tape control cabinet. The "Ready" light on the Uniservo in use at the time is extinguished. Diagnosis: This fault is caused when a Uniservo interlock circuit is de-energized and this particular Uniservo is referenced for tape operation. The conditions which cause the Uniservo interlock circuit to be de-energized and the correction of these conditions are discussed in the PX 38 69 INPUT AND OUTPUT SYSTEMS Operation section in the paragraphs describing the "Ready" indicator on Uniservo and the Uniservo interlock circui~. If the not ready condition is detected by the attempt to initiate a tape operation, tape movement is not started. The execution of computer instruction:; may continue until the time of the computer fault stop. During this time, if External Write instructions are executed, "writing" is performed on the stationary tape; if External Read instructions are programmed to be executed, an lOB lockout condition is established. If the Uniservo interlock cireuit is de-energized after a tape operation and tape movement have been initi~ited, the execution of instructions continues until the time of the computer fallit stop. Tape movement is stopped by virtue of the drop of power on the circu:Lt. Resumption of Operation: Depressing the computer Master Clear button extinguishes the fault indicators and allows the resumption of operation. Correction of the fault condition is not necessary to resume operation, but if the same Uniservo is referenced again, the fault will re-occur. (c) NO INFORMATION FAIJLT: The failurp to have a word transferred from the computer to TR results ill a NO INFORr.~.TION FAULT. Indications: On the computer contro-I panel MT B fault indicator is illuminated. In the tape control cabinet, No Information fault indicator is illuminated. TCll is cleared by the fau It stop but may be filled by the execution of another EF tape instruction ~fore the computer is stopped. Tape movement is stopped at the end of the block being written when the error occurs.The Computer is stopped approximately 80 ms after the completion of writing the block in which the fault was deteeted. Diagnosis: This fault is caused by the failure to provide 120 External Writes to write a bl()ck or by the failure to execute in time an External Write. When this fault is detected by tape control, the stop code bits are set in TCR and a B fault is initiated. If the fault is caused by prouramming too few External Write instructions, the bits of the missing words are written as zeros. If the No Information fault i~: caused by the failure to execute an External Write in time, the data bits of the lines written on tape at that particular time will be zeros until the EW is executed; then, the transmission lOB to TR occurs and the remainder of the lines written is taken from the current content of TR. If the block being written wh€~n the fault is incurred is not the last block programmed to be written, the attE'mpt to execute the next group of External Writes will cause an lOB lockout c:ondition. If this block was the last block to be written in this particular writing operation, the execution of computer instructions, including any Exterr.al Function instruction, may continue until the time of the computer fault stop. Resumption of Operation: All fault indicators are extinguished by depressing the Master Clear button. After remaking selections, operation can be resumed by depressing the Start button. PX 3U 70 INPUT AND OUTPUT SYSTEMS (d) 10 READ (lOB I) FAULT, i.e., Failure to execute a sufficient number of External Reads: where 120 n·j (j=l •.. ), ERts programmed and an EF stop programmed to terminate presumably the reading of the nth block: Fa:ilure to execute an External Read in time. Indications: Illumination of the lOB fault indicator and the lOB I fault indicator. Tape movement is stopped at the end of the block being read when the error occurs. TCR is cleared by the fault stop but may be filled by the execution of another EF tape instruction before the computer is stopped. The computer is stopped approximately 80 ms after the fault is detected. Diagnosis: Each word received by lOB from the Tape Register should be removed from lOB by an External Read instruction before the next transmission from TR occurs. If a second transmission occurs before lOB is cleared by an ER, an lOB I computer B Fault is incurred. In a tape reading operation this fault is caused by the failure to execute the sufficient number of ERts, or it could occur when an ER is programmed to be executed too late. If two or more External Reads are not programmed for reading a single block or reading the last of a series of blocks, the tape is stopped at the end of this block but computer instructions continue to be executed. The execution of an External Function instruction during this time will transmit tape operation codes to lOB which has not been cleared. Thus, lOB will contain the logical sum of its previous contents and the tape operation code, and these bits are transmitted to TCR. No prediction can be made as to whether or not a tape operation will be initiated since both the operation code and the Uniservo selection may have been changed. If two or more External Reads are not programmed for reading any but the last of a series of blocks, tape movement is stopped at the end of the block and the execution of the second ER for the next block sets up an lOB lockout condition which stops the execution of further instructions until the time of the computer stop. (The execution of the first ER for the next block transmits to storage from lOB the logical sum of the last two words of the last block. ) The lack (in the program) of one External Read in reading a single block or the last of a series of blocks does not cause directly a computer fault; but since lOB is not cleared before another EF instruction is executed at any future time, the bits transferred from lOB to TCR at that time may not specify the desired tape operation. Again, a tape operation mayor may not be initiated. If an EF Stop Read instruction is executed, the logical sum of lOB and the specification of the read operation (currently in TCR) is formed in TCR. If the Uniservo selection is changed, tape movement on this Uniservo is ~ot stopped and tape movement on another Uniservo may be started. The lack (in the program) of an External Read in reading any particular block but the last could cause an lOB I fault at the beginning of the next block or could be interpreted as a missing ER for the last block of the series. If an External Read is not executed in time during the reading of any block, tape movement is stopped at the end of this block and an lOB lockout condition is caused by the execution of the "extra" ER at the end of this block. This stops the execution of any further computer instructions until the computer fault stop. PX 38 71 INPUT AND OUTPUT SYSTEMS Resumption of Operation: All fault indicators are extinguished by depressinlJ the Master Clear button. Operation is resumed after remaking basic selections by depressing the Start button. (e) SELECTION ERROR FAUL~. Indications: Illumination of the MT and B fault indicators on the computer control panel and the Selection Error indicator in the tape control cabinet. Diagnosis: This fault is caused by setting two of the Logical Number Selection switches to the sarre number at any time the computer is in actual operation. Any changes in logical designations should be made during a computer stop. Resumption of Operation: Operation cannot be resumed until the logical designations are corrected. When this is done, the Selection Error indicator is extinguished. Depressing the Master Clear button extinguishes the B fault indicator and allows resumption of operation. . in moving, (f) SPROCKET ERROH FAULT: ,. 720 line count. In reading, > 720 or < Indications: IVIT B Fault indicator illuminated. indicator in tape control cabinet illuminated. 720 line count; Sprocket Error Tape movement is stopped at the end of the block recorded with the improper A computer fault stop occurs approximately 80 ms after the number of lines. detection of the fault. Diagnosis: A sprocket error results from (1) the detection of a block spacing before a count of 7~:0 lines has been accumulated in reading or moving, and (2) the reception of a sprocket signal from the tape after a 720 line count has been accumulated in reading or moving and before the block spacing is detected. The detection of a < 720 line count during moving is ignored: this condition propagates a "false" 720 line count to the tape control system. During a reading operation, a < 720 line count means that an "extra" External Read is executed at the ent. of the block. The execution of this ER establishes an lOB lockout condition which prevents the execution of further instructions until the computer is s.topped. This lockout condition is indicated by an ER instruction in PCR. During a reading operation if ~l > 720 line count occurs in a block which is not the last of a group of block~: being read, the execution of an External Read after tape movement is stopped establishes an lOB lockout condition and prevents the execution of further irlstructions until the computer stop. If a > 720 line count occurs in the J.ast block being read, another External Function instruction may be executed before the computer stop occurs, and another tape movement could be initiated. An additional word is sent to lOB for each extra six lines recorded on tape, if such should be the case. Then, since lOB is not cleared before the computer fault stop, if an EF instruction is executed, the logical sum of lOB and the tape operation specification is sent to TCR. t PX 38 72 INPUT AND OUTPUT SYSTEMS When a > 720 line count is detected during moving, computer instructions may continue to be executed until the time of the computer stop. Resumption of Operation: Depression of the Master Clear button extinguishes all fault indicators. Operation may be resumed after remaking basic selections by depressing the Start button. PX 38 73 OPERATING THE COMPUTER 1. GENERAL. The Univac Scientific computer is set into operation by certain combinations of selections made on the Supervisory Control Panel. An overall view of the Supervisory Control Panel is presented in Figure 1. The computer may be set into high speed operation, or, if it is desired to manually superintend the internal actions of the- computer and/or have a visual presentation of these internal actions, step operation may be chosen. Those internal operations which are represented on the Supervisory Control Panel, or which occur in components of the computer represented on the Supervisory Control Panel, have as their visual counterpart the occurrence of lights in the corresponding designated positions. Thus, the contents of any of the registers represented may be noted by interpreting the double rows of lights into a bioctal code as follows: a light in the upper row represents a binary one in the stage as numbered; and a light in the lower row represents a binary zero in that stage. Thus, each group of three columns of lights represents an octal number. In addition to the ability to oversee the operations of the computer as it executes a program already internally stored, operations may be performed upon information placed in the computer by manually setting it in the counterparts of the proper registers on the Supervisory Control Panel. The small button at the lower right end of each register is depressed to clear the register (lighting the lower row indicators); the small button below each column of two lights is depressed to place a "I" in the chosen st~ge of the register (lighting the upper row indicator). By following the proper procedure, the contents of these registers may then be used as desired in computer operations. Also, by following the proper procedure, instructions may be manually placed in the computer by inserting them in the Supervisory Control Panel counterpart of the PROGRAM CONTHOL-REGISTER (MCR, UAK, and VAK), and setting the MAIN PULSE DISTRIBUTOR to zero. If MPD is set at six, the first instruction to be executed is taken from the address shown in PAK (as automatically or manually set). In discussing the operating selections which are made on the Supervisory Control Panel, the "group" designations listed below will be used. Each group is represented on the control panel by a set of pushbuttons, switches, and/or indicator lights enclosed in white lines. As they are located on the lower center section of the Supervisory Control Panel, Figure 2, from left to right, the groups are: Operating Rate Group Selective Jumps Group Selective Stops Group Program Interrupt Control Group Operating Group B Fault Group (upper) A Fault Group (lower) PX 39 I OPERATING THE COMPUTER o Figure 1. Supervisory Control Panel, Overall View PX 39 2 OPERATING THE COMPUTER .u ., .! 1.J~~~;~ iel '. i o Figure 2. Supervisory Control Panel, Center Section PX 39 3 OPERATIl\G THE COMPUTER As located on the· right section of the Supervisory Control Panel, Figure 3, Test Switch Group. As located on the left section of the Supervisory Control Panel, MT Disconnect Switch Group. 2. Figure 4, OPERATION. a. GENEHAL. - Computer operation is in one of two modes: NORMAL or TEST. For each mode, selections are made rr.anually by depressing buttons and setting switches. The NORMAL mode is automatically selected unless the TEST/NORMAL swi tch (Test Swi tch Group) is set tel TEST, or the MD NORMAL/ABNORMAL 'Swi tch (Test Switch Group) is set to ABNORN~L. Depression of any of the buttons in the Operating Rate Group also places the computer in the TEST mode. Operation at high speed is automatic in either the NORMAL or TEST modes. If high speed operation is not desired, a manual selection of step operation is necessary, i.e., one of the three buttons labeled MANUAL STEP, or either of the buttons labeled AUTOMATIC STEP (Operating RClte Group). (The depression of one of these buttons automatically selects the TEST mode of operation regardless of the TEST/NORMAL switch being set to NORMAL. ) The AUTOMATIC STEP RATE switch controls the time rate at which Automatic Step Operation or Automatic Step Clock operations are performed. This timing control is applied to the rate at which instructions are executed if AUTOMATIC STEP OPERATION is selected. If AUTOMATIC STEP CLOCK is selected, the clock pulse rate is regulated accordingly. Timing during Manual Step operation~; is controlled by the selection of CLOCK, DISTRIBUTOR, or OPERATION, and the filanual depression of the STEP button in the Operating Group. Each depre~sion of the STEP button releases, respectively, one clock pulse, one distributor putse, or the sequence of pulses necessary to the execution of one instruction. Hepression of the RELEASE button in the Operating Rate Group releases any snlection made and returns the computer to HIGH SPEED and to the NORMAL mode unless the TEST/NORMAL switch was actually set to TEST. Operation in the NORMAL switches in the Test Switch to their abnormal condition mination of both the NORMAL (Operating Group). b. mode is not possible if any of the disconnect Group, or MT Disconnect Switch Group, are positioned setting.. This condition is indicated by the illuindicator light and ABNORMAL condition light NORMAL MODE OF OPERATION. (1) HIGH SPEED and NORMAL indicator lights are illuminated (Operating and Operating Rate Groups). (2) Depress the MASTER CLEAR button (Operating Group). (3) Depress any SELECT JUMP or STOP buttons called for by the program. The associated indicators will illuminate. (4) Depress the START button (Operating Group). The OPERATING indicator light is illuminat(~d and the lights in Step (a) remain illuminated. PX 39 4 OPERATING THE COMPUTER o Figure 3. Supervisory Control Panel, Right Section PX 39 5 OPERATING Tfm COMPUTER o Figure 4. Supervisory Control Panel, Left Section PX 39 6 OPERATING THE COMPUTER If the OPERATING indicator does not illuminate in step (4), check the ABNORMAL CONDITION indicator in the Operating Group. If this is illuminated, one of the disconnect switches is set to its ABNORMAL position. Setting this switch to its NORMAL position will extinguish the ABNORMAL CONDITION indicator and allow a NORMAL mode start. The depression of the MASTER CLEAR button in step (2) sets PAKto 40000 and MPD to 6. Unless other selections are made by manually depressing buttons on the control panel, the first instruction to be executed will be taken from drum address 40000. Any other manual selections may be made also where buttons are provided after depressing the MASTER CLEAR button and before depressing the START button. After the START button has been depressed, no selections can be made until a computer stop. If the NORMAL indicator is not illuminated in step (1), the TEST indicator will be illuminated indicating one of the following conditions: (1) If the HIGH SPEED indicator is not illuminated, one of the MANUAL or AUTOMATIC STEP indicators is illuminated. Depressing the RELEASE button in the Operating Rate Group illuminates the NORMAL indicator. (2) The TEST/NORMAL switch or the MD NORMAL/ABNORMAL switch (Test Switch Group) is in its "up" position. Setting these switches to their "down" positions illuminates the NORMAL indicator. All these conditions allow a computer start, but in the TEST mode. Operation in the NORMAL mode is halted by an A Fault, B Fault, Force Stop, or a programmed stop. Indication of the operation halt is given by the drop of the OPERATING indicator light. If the fault is caused by the selection of an abnormal condition during operation, the ABNORMAL CONDITION indicator will be illuminated. c. TEST MODE OF OPERATION. (1) Depress the MASTER CLEAR button (Operating Group). (2) Select the TEST mode by setting the TEST/NORMAL switch to TEST or the MD NORMAL/ABNORMAL switch to ABNORMAL (Test Switch Group). The TEST indicator (Operating Group) is illuminated, the NORMAL indicator is extinguished, and the HIGH SPEED indicator (Operating Group) remains illuminated. (3) If other than high speed operation is desired, depress one of the MANUAL or AUTOMATIC STEP buttons (Operating Rate Group). The appropriate indicator is illuminated. (Depression of any of these buttons yields an automatic selection of the TEST mode regardless of whether the TEST/NORMAL switch is set to TEST. ) (4) Depress any SELECT JUMP or STOP buttons called for by the program. (5) Depress the START button (Operating Group). is illuminated. (6) Depress the STEP button (Operating Group) if necessary. PX 39 7 The OPERATING indicator OPERATI'JG THE COMPUTER If any of the disconnect switches in the Test Switch Group or the MT Disconnect Switch Group are set to thE~ir ABNORMAL position, the ABNORMAL indicators (Operating Group and Test Switch Group) are illuminated. The depression of the MASTER ClEAR button sets PAK to 40000 and MPD to 6. Unless other selections are made by manually depressing buttons on the control panel, the first instruction to be executed will be taken from drum address 40000, or, if the MD NORMAL/ABNORMAL switch is set to ABNORMAL, from the reserve space on the drum. Any ottler manual selections can be made where buttons are provided after depressing the MASTER CLEAR button. Manual selections can be made from the control panel while in the TEST mode when the computer is in actual operation. OnE~ exception to this is that PAK cannot be changed manually when the OPERATING indicator is illuminated. To change a selection in the Operating Rate Group, computer operation must be at a halt (the OPERATING indicat.or is extinguished); then, depressing the RELEASE button cancels the previous: selection made and allows a new choice of an operating rate. Operation is halted by an A Fault, B Fault, Force Stop, or a programmed stop and is indicated by the drop of the OPERATING indicator light. d. JUMP AND STOP SELECTIONS •.. The manual selections necessary to effect a programmed Manually Selective Jump, instruction 45 jv, with j = 1,2, or 3, are made by depressing SELECT JUMP buttons in the Selective Jumps Group. To be effective the selections must bE~ made while the computer is not in actual operation (when the OPERATING indicator is extinguished), either NORMAL or TEST mode. An effective manual s:election is indicated by the illumination of the SELECTIVE JUMP, 1, 2, and/or 3 indicator. To nullify a selection, the appropriate RELEASE JUMP button is depressed. This also must be done when the computer is not in actual operation. The manual selections necessary to effect a programmed Manually Selective Stop, instruction 56 jv, with j = 1, 2, or 3, are made by depressing SELECT STOP buttons in the Selective Stops. Group. A stop selection may be made during actual computer operation, NORMAL or TEST mode, and is indicated by the illumination of the light immediately above the button depressed. When a stop occurs, it is indicated by the illumination of a SELECTIVE STOP light. (A Manually Selective Stop instruction with j = 0 requires no manual selection.) To cancel a stop selection, the appropriate RELEASE STOP button is depressed. The release of a stop selection may also be made during actual computer operation, NORMAL or TEST mode. A FORCE STOP selection made by depressing the button so entitled in the Operating Group halts computer operation in either the TEST or NORMAL mode. A force stop is indicated by the illumination of the FORCE STOP indicator light. e. MANUAL INTERRUPT SELECTION. - An interrupt may be initiated manually by depressing buttons in the Program Interrupt Control Group. Two selections are necessary to activate a line to thE! interrupt control of the computer. Depressing the ENABLE button allows the line to be energized and illuminates the INDICATE ENABLE LIGHT. Depressinu the INITIATE button when the enable is indicated by the light momentarily energizes the line. When the line is PX 39 8 OPERATING THE COMPUTER energized a signal is sent to the Program Interrupt Control to effect the interrupt during the execution of the next instruction which ordinarily would be concluded by the normal termination commands. Each time an interrupt is desired, the INITIATE button must be depressed and the INDICATE ENABLE indicator must be illuminated. Each time the line to the Program Interrupt Control is energized, the INDICATE ENABLE light is extinguished. Also, depressing the RELEASE button extinguishes the INDICATE ENABLE light and renders it impossible to energize the interrupt line by depressing the INITIATE button. 3. RESTORATION OF OPERATION AFTER STOPS. The computer ceases operation at the occurrence of a programmed STOP, a FORCE STOP, an EMERGENCY OFF, or a fault condition. The stops by classes are discussed subsequently, and the steps necessary to resume operation noted. a. PROGRAMMED STOPS (1) MANUALLY SELECTIVE STOP. -The Manually Selective Stop instruction (56jv) stops the computer operation if the programmed j (0,1,2, or 3) agrees with the selection made on the Supervisory Control Panel (no button selection is provided for j = 0; the computer will always stop in this case). Whether or not a stop occurs at the execution of this in$truction, the next instruction will be taken from the v adpress. When a stop occurs, the OPERATING indicator is extinguished and the appropriate SELECTIVE STOP indicator (red) is illuminated .. To resume operation, depress the START button. (2) FINAL STOP. - The Program Stop instruction (57--) indicates the end of the program. The SELECT STOP indicators and SELECTIVE JUMP indicators, if illuminated, will remain illuminated, and the FINAL STOP indicator (Selective Stops Group) is illuminated. To resume operation, it is necessary to depress the MASTER CLEAR button and follow the procedure for initiating computation in one of the two computer modes. b. FORCE STOP. - An unscheduled stop of the computer can be effected by depressing the FORCE STOP button (Operating Group). The OPERATING indicator is extinguished and the FORCE STOP indicator (Operating Group) is illuminated. After the condition which prompted the stop has been corrected, operation is resumed by pressing the START button. During operation if it is desired to change any selection in the Operating Rate Group or Selective Jumps Groups, depressing the FORCE STOP button allows the RELEASE buttons in either of these groups to be depressed and a new selection to be made. c. EMERGENCY STOPS. (1) MANUAL EMERGENCY STOP. - In cases of extreme emergency, such as a fire, pressing the EMERGENCY OFF button on the Supervisory Control Panel removes all voltages from the equipment. Since all power is removed, a program in process is halted and cannot be immediately resumed. Since such a stop could destroy information, it may be well to reload the program and data into the sys~em after proper operation is restored by maintenance procedures. (2) AUTOMATIC .EMERGENCY STOPS. - This s top, a Is 0 ca lIs procedures to restore proper operation.' PX 39 9 for rna intenance OPERATING THE COMPUTER d. FAULT CONDITIONS. (1) A FAULT. - An A Fault results in a computer stop which extinguishes the OPERATING indicator and illuminates an A Fault indicator. The specific fault is indicated by the illuminat~,on of one of the following indicators, the first six of which are in the A Fault Group on the panel: DIVIDE SCC (Storage Class Control) PRINT TEMP. (Low TE~perature - 100°F) WATER OVERFLOW (only possible on Multiply Add instruction, 7~~ uv) ABNORMAL CONDITION - Indicated by lights in Operating Group and Test Switch Group The A Fault does not alter the prog]~am in process so that after appropriate corrective action, the operation can be resumed. Generally, a DIVIDE,SCC, PUINT, or OVERFLOW fault indication is derived from a program error. First, check the appropriate instructions or operands. If these are correct, an actual machine malfunction is the cause and should be isolated and corrected. Operation may be resumed after the Divide, Print, and Overflow faults by depressing the CLEAR A FAULT button and then the START button. If the program requires that the cause of these faults be corrected before continuing the program, operation can be resumed (after the fault correction) with the instruction which caused the fault by inserting the address of this instruction in PAK, setting MPD to 6, and depressing the START button. An SCC fault results from the particular circumstances. the CLEAR A FAULT button, but the condition that caused the storage should be corrected. the faulty instruction can be sumed by depressing the START a reference to some address not permissible under The J\ Fault condition is cleared by depressing operation cannot be resumed without correcting fault" In most cases the faulty instruction in After this has been accomplished, the address of inserted in PAK, MPD set to 6, and operation rebut ton. The TEMP. indication is the reslllt of a high air temperature at some point. The high air temperature is indicated by the illumination of one of the amber indicators mounted above the cabinet doors. Corrective measures should be applied immediately unless the urgency for problem results dictates that the BYPASS TEMPERATURE INTERLOCK key sW:ltch should be turned. This allows the problem to be continued despite the over-,temperature condition. The WATER indication necessitates correcting il water pressure fault (over-pressure or under-pressure condition) before the program can be resumed. PK 39 10 OPERATING THE COMPUTER If any of the disconnect switches is accidently or intentionally set to the "up" position after operation has been initiated (in Normal mode only), the ABNORMAL CONDITION indicators in the Test Switch Group and the Operating Group are illuminated, and an A Fault condition occurs and stops computation. Movement of the switch to the normal position will correct the condition. Operation is resumed after the correction of the Temperature, Water, and Abnormal Condition faults by depressing the START button. (2) B FAULT. - The B Fault results in a stop which manifests iself much like a Program Stop in that it is necessary to MASTER CLEAR and restart the program. The B FAULT indicator, and one of the indicators listed below, are illuminated in the B Fault Group. MCT (Main Control Translator) VOLTAGE 10 (Input-Output) MT (Magnetic Tape) MATRIX DRIVE (An MC Fault) The 10 fault indicates incorrect input/output procedure or faulty operation of external equipment. The illumination of the 10 Fault indicator and lOne of the EXTERNAL FAULT indicators located on the left section of the control panel indicates the improper use of IDA or lOB. The EXTERNAL FAULT indicators are as follows: IDA 1 Read lOB 1 Read IDA 2 Read lOB 2 Read These faults occur when there has been no indication that the particular register involved is ready for the information being received by it. If the fault is due to an error in program timing considerations, an lOB 1 Read fault indicates that an External Read to transmit input information in lOB to X has not been executed before additional input information is received by lOB from external equipment; and an lOB 2 Read fault indicates that the external equipment has not received the information placed in lOB by an External Write or External Function instruction before lOB receives input information from external equipment. The IDA 1 Read and IDA 2 Read faults indicate similar conditions involving the IDA register. The 10 fault, in conjunction with one of the External Faults above, generally indicates a program timing error. An 10 fault resulting from one of the External Faults is cleared by depressing the MASTER CLEAR button. This extinguishes all the associated fault indicators and enables a restart of the program. An 10 fault without one of the IDA/lOB faults could also result from a program error. A check of the fault indicator lights on the external equipment being used should reveal the nature of the fault. Faults originating in external PX 39 11 OPERATING THE COMPUTER equipment because of an incorrect program are cleared by depressing the MASTER CLEAR button. This extinguishes both the 10 indicator and the B FAULT indicator and allows a program restart. FauIts arising from the improper operation of external equipment are cleared by correcting the condition instigating the fault and then depressing the MASTER CLEAH button. The Master Clear extinguishes the B FAULT indicator. If the 10 fault indicator is still illuminated, the source of the fault has not been removed and restarting the program will yield the same fault stop. Generally an MCT fault is due to a program error (an illegal operation codeL In this case the program in storage or the input tape should be checked for accuracy. If no errors are thus discovered, a machine malfunction is indicated and must be corrected. If the fault is due to a program error, the MCT as well as the B FAULT indieators are cleared by a MASTER CLEAR. The VOLTAGE, or MATRIX DRIVE indication necessitates corrective maintenance, and an MT indication may require co:~rective maintenance, depending upon the type of MT fault. The MT faults are discussed in the Input and Output section of this volume and are explained in full in the volume supplied with the Magnetic Tape System. The VOLTAGE, MATRIX DRIVE, and some of the MT faults require correction at the source. After these are cleared the specific fault indicator will be extinguished, and the B FAULT indicator will be extinguished by a MASTER CLEAR, allowing a program restart. To summarize, in general, when a fault is caused by an improper program, its fault indicator as well as the 13 FAULT indicator is extinguished by depressing the MASTER CLEAR button. If a fault is caused by a machine malfunction, its fault indicator is extinguished by the correction of the fault, and the MASTER CLEAH extinguishes the B FAULT indicator. Since there may have been errors introduced to the program in process at the time of the fault, it is necessary that a MASTER CLEAR be selected and computation be started anew. If the content of any addresses have been altered by the instructions during execution of that part of a program which was completed before the fault, it would be well to reload the computer before attempting computation. 4. MANUAL HEADING AND WRITING. The following procedures in TEST mode are frequently used to manually check portions of a stored program or enter a program into storage. Also included is a procedure for manually transferring a program from Magnetic Drum Storage to Magnetic Core storage. a~ MANUAL WRITING FROM THE Q REGISTER. - The procedure below can be used to alter an existing program in storage or to insert a new program into storage without using a tape reader. The new words are entered into storage via the Q Register by the following steps. Step l. Step 2. Depress ~~STER CLEAR (Operating Group) Select MANUAL STEP OPERATION (Operating Rate Group. PX 39 12 OPERATING THE COMPUTER Step Step Step Step Step Step 3. 4. 5. 6. 7. 8. Set MPD Set MCR Set UAK Set VAK Depress Depress to 0 to 75 (Repeat instruction) to 50000 (set j to 5) to 00000 START button (Operating Group) STEP button (Operating Group) Steps 4 through 8 set up an unterminated Repeat Sequence. Since j is 5, only the v address will be advanced at the end of each storage reference. Step Step Step Step Step Step Step 9. 10. II. 12. 13. 14. 15. Clear PCR (Clear MeR, UAK, and VAK) Set MCR to 11 (Transmit Positive instruction) Set UAK to Q address Set VAK to first address to be written into Set up in Q Register word to be written Press STEP button Clear Q Register Steps 10 through 14 manually enter the word set up in Q at the selected v address. To continue writing in consecutive addresses, repeat steps 13, 14, and 15 for each word to be written. If only a single word is to be written, steps 4 through 9 and step 15 can be omitted since a Repeat operation is not needed. b. MANUAL READING ~O THE Q REGISTER. - The procedure below transmits the contents of chosen storage registers to the Q Register with the words at consecutive addresses being displayed on the Supervisory Control Panel. Step Step Step Step Step Step Step Step 1. 2. 3. 4. 5. 6. 7. 8. Depress MASTER CLEAR (Operating Group) Select MANUAL STEP OPERATION (Operating Rate Group) Set MPD to 0 Set MCR to 75 (Repeat instruction) Set UAK to 60000 (set j to 6 ) Set VAK to 00000 Depress START button (Operating Group) Depress STEP button (Operating Group) Steps 4 through 8 set up an unterminated Repeat Sequence. Since j is 6, only the u address will be advanced at the end of each storage reference. Step Step Step Step Step 9. 10. II. 12. 13. Clear PCR (Clear MCR, UAK, and VAK) Set MCR to 11 (Transmit Positive instruction) Set UAK to addr~ss of first word to be read Set VAK to'Q address Depress STEP button Steps 10 through 13 manually read the word at the selected u address to the Q register where it is displayed for observation. Each time the STEP button is pressed, a word from a consecutive u address will be displayed in Q. If only a single word is to be read, steps 4 through 9 can be omitted since a Repeat operation is not needed. PX 39 13 OPERATING THE COMPUTER c. PROGRAM CORRECTION. - If, in reading to the Q Register, an incorrect word is noted, the following procedure is used to insert the correct word at the proper address. (This procedure can be used whether or not a Repeat sequence is being used in the manual reading.) Step Step Step Step Step Step Step Step 1. :2. :3. 4. :5. 6. 7. 8. Depress FORCE STOP button (Operating Group) Clear Q Clear UAK and VAK Set UAK to Q address Set VAK to address to be written into Set up in Q Register word to be written Depress START buttcln (Operating Group) Depress STEP butto~ (Operating Group) Steps 1 through 8 enter the correct word into storage. reading process: Step Step Step Step To return to the 9. Clear UAK and VAK 10. Set UAK to next address to be read from 11. Set VAK to Q addres s 12. Depress STEP but tor, Steps 9 through 12 return control. to the manual reading procedure. d. MANUAL BLOCK TRANSFER. - To €~ffect a manual block transfer from Magnetic Drum Storage to Magnetic Cote Storage, the following steps should be performed. Step Step Step Step Step 1. :2. 3. 4. :5. Step 6. Step 7. Step 8. Depress MASTER CLEJ\R (Operating Group) Select MANUAL STEP OPERATION (Operating Rate Group) Set MPD to 0 Set MCR to 75 (Rep€!at instruction) Set UAK to 3n (set j to 3 and n to the number of words to be transferred) Set VAK to a w address containing a 56jv instruction Depre"ss START button (Operating Group) Depress STEP buttorl (Operating Group) Steps 4 through 8 set up a terminated Repeat Sequence. Since j is 3, both the u address and the v address will be advanced at the end of each storage reference. Step Step Step Step Step Step Step 9. 10. 11. 12. 13. 14. 15. Depress FORCE STOP button Release MANUAL STEP OPERATION Clear PCR (Clear MCR, UAK, and VAK) Set MeR to 11 (Transmit Positive instruction) Set UAK to initial MD address Set VAK to initial Me address Depress START button PX 39 14 CODING FOR THE COMPUTER I. SUMMARY OF MACHINE CHARACTERISTICS. GENERAL Parallel mode of operation Internal binary number system Two address logic WORD LENGTH 36 bits (binary digits) NUMBER NOTATION ttl's complement" binary system PARALLEL ACCESS REGISTERS (ARITHMETIC SECTION) A AR AL Q X 72-bit Accumulator (A71' A70, ••. ,AO) rightmost 36 bits of A (least significant) leftmost 36 bits of A (most significant) 36-bit shifting register (Q35' Q34, ••• ,QO) 36-bit exchange register (X35, X34, •.. ,XO) PARALLEL ACCESS STORAGE (INDIVIDUALLY ADDRESSED) RAS 4,096 words of Rapid Access Storage 12,288 words optionally available 16,384 words of Magnetic Drum Storage ARRANGEMENT OF MAGNETIC DRUM STORAGE, MD 4,096 bits on each track 4,096 words on a group of 36 tracks 4 groups of tracks, giving 16,384 words Variable interlace between the Storage Address Register and angular location counter permits choice of the angular interval between memory locations having consecutive addresses. ALLOCATION OF ADDRESSES RAS MD Q A MD FIXED ADDRESS ALLOCATION Fl F2 F3 00000-07777 10000-17777 20000-27777 30000-30777 31000-31777 32000-37777 40000-77777 00000 40001 00001 00002 (octal) (octal) (octal) (octal) (octal) (octal) (octal) (octal) (octal) (octal) (octal) in in in in PX 40 1 4,096 words 4,096 words optional 4,096 words optional illegal addresses 1 word 1 double length word 16,384 words RAS, Rapid Access Storage or Storage RAS HAS MD GODING FOR THE COMPUTER COMPOSITION OF AN INSTRUCTION WORD Instruction word Operation code First execution address, u Second execution address, v SECTIONS OF ADDRESSES j n k 36 6 15 15 bits bits bits bits (i35, (i35, (i29, (i14, i34' i34. i28. i13, · .. , ·.. , ·.. , • • • t iO) i30) i15) iO) one-digit octal number represented by u14, u13, u12. four-digit octal number represented by ull' uIO' •.. , uO. number of shifts, represented by v6, v5, ... , vo or u6, uS, • • ., uo· NOTATION FOR CONTENTS Of REGISTERS- Brackets are (u)=36-bit (Q)=36-bit (A)=72-bit (AR)=36-bit (AL)=36-bit DOUBLE -LENGTH EXTENSIONS D(u)=72-bit word whose right-hand 36 bits are (u) and whose left-hand 36 bits are all alike and equal to the left-most bit of (u). S (u )=72- bi t wOI'd whos e right-hand 36 bi t s are (u) and whose left-hand 36 bits are all zero. D(Q), D(X), seQ), and sex) are similarly defined L(Q)(u)=72-bit word whose left-hand 36 bits are zeros and each of whose right-hand 36 bits is given by the bitby-bit product of the corresponding bits of (u) and (Q). L(Q')(v)=72-bit word whose left-hand 36 bits are zeros and each of ~hose right-hand 36 bits is given by the bit-by-bit product of the corresponding bits of (v) and the complement of (Q). CONTROL REGISTERS PAK Program Address Counter SAR Storage Address Register PeR Program Control Register MCR Main Control Register UAK U Address Counter VAK V Address Counter PROG RAM SEQUENCE CONTROL The complete operation for the execution of a computer instruction consists of two parts. Part one - the execution of the current instruction, CIa Part t'wo - the acquisition of the next instruction, NI. used word word word word word to at in in in in denote "contents of". address u~ Q. A. AR. ALo Thus: At the start of part one, the Program Control Registers already contain CI as the result of the second part of the previous operation, and (PAK) is y plus 1, where y is the address from which CI was acquired. During part two, NI is acquired from the address held in PAK at the end of part one, and (PAK) is then increased by one. PX 40 2 CODING FOR THE COMPUTER Thus, provided that CI does not call for a change in (PAK), NI will be acquired from address y plus 1. In a normal program sequence, successive instructions are obtained from consecutive addresses. A departure from the normal sequence is caJ led a "j ump't, and is achieved by altering (PAK) during part one of an operation. Instructions that call for a change in (PAK) are called "jump" instructions. INPUT-OUTPUT REGISTERS lOA lOB TWR HPR An in-out register of 8 stages. An in-out register of 36 stages. A typewriter register of 6 stages. A high-speed punch register of 7 stages. INPUT DEVICES Photoelectric Paper Tape Reader Punched Card Input-Output System Other optional peripheral equipment OUTPUT DEVICES Electric Typewriter High-Speed Paper Tape Punch Punched Card Input/Output System Univac Line Printer Other optional peripheral equipment PX 40 3 CODING FOR THE COMPUTER X REGISTER :36 BITS HIGH SPEED PAPER TAPE PUNCH GENERAL OUTPUT UNITS Figure 1. E LECTR IC TYPEWRITER Programmer's Simplified Block Diagram PX 40 4 CODING FOR THE COMPUTER TABLE 1. REPERTOIRE OF INSTRUCTIONS TPuv 11 TRANSMIT POSITIVE . TMuv 12 TRANSMIT MAGNITUDE I(u)~ v TNuv 13 TRANSMIT NEGATIVE . (u)'~ v IPxx 14 TUuv 15 TRANSMIT U ADDRESS (u29-15)~ v29-15 TVuv 16 TRANSMIT V ADDRESS (u14-0)~ v14-0 EF-v 17 EXTERNAL FUNCTION. Select Ext. Equipment and perform (v) RAuv 21 [(u) INTERPRET. . . . REPLACE ADD . u LTj kv 22 LEFT RSuv REPLACE SUBTRACT [(u) - (v~ u CCuv 27 CONTROLLED COMPLEMENT . [( u) SPuk 31 SPLIT POSITIVE ENTRY S(u)~A, SAuk 32 SPLIT ADD . . . . • • . (A) + S(u), Shift (A) by k SNuk 33 SPLIT NEGATIVE ENTRY [S(u~ '--.+A, Shift (A) by k SSuk 34 SPLIT SUBTRACT (A) - S( u), Shift (A) by k ATuv 35 ADD AND TRANSMIT [(A) STuv 36 SUBTRACT AND TRANSMIT . [(A) - D( v RJuv 37 RETURN JUMP . Y+ IJuv 41 INDEX JUMP [D(U)-~~ At (A)f +, (A)f~u, take (v) TJuv 42 THRESHOLD JUMP (u) > (A), take (v) as NI EJuv 43 EQUALITY JUMP (u) =(A), take (v) as NI QJuv 44 Q 23 TRANSMIT + (V~~ JUMP Shift (A) by k;j=O, (AL)f~v;j=l, (AR)f--;'V . (±) (v ~-? U Shift (A) by k + D(u)J~ v l~u, )]--7 v take (v) as NI (Q)+, take (v); (Q)-, take . • . . (u); (Q) left 1 MJj v 45 MANUALLY SELECTIVE JUMP j=O, or j=l,2,3, & MJS=, take (v) SJuv 46 SIGN JUMP • (A)-, take (u); (A)+, take ZJuv 47 ZERO JUMP . (A) # 0, take PX 40 5 (u); (v) (A)=O, take (v) CODING FOR THE COMPUTER TABLE 1. REPERTOIRE OF INSTRUCTIONS (CONCL'D) L(Q)(u)--+v QTuv 51 Q-CONTROLLED TRANSMIT . QA uv 52 Q-CONTROLLED ADD QSuv 53 Q-CONTROLLED SUBSTITUTE [(L(Q)(u) + L(Q)'(v)]-.V LAuk 54 D(u)--+A, Shift (A) by k, (A)f-+u LQuk 55 LEFT SHIFT IN Q . (u )--'Q, Shift (Q) by k, (Q) f--+u MSjv 56 MANUALLY SELECTIVE STOP. . j=O, stop; j=1,2,3, & MSS=, stop FS-- 57 FINAL STOP Stop and indicate PR-v 61 PRINT. Typewriter performs code in v5-0 PUjv 63 PUNCH. Punch (v5-0); j=l, 7th level also MPuv 71 MULTIPLY (u)(v) = MAuv 72 MULTIPLY ADD (A)i + (u)(v) DVuv 73 DIVIDE (A)i = SFuv 74 SCALE FACTOR Shift D(u) in A until RPj nw 75 REPEAT Execute Nl "n" times, jump to Fl ERj v 76 EXTE RNAL READ . . EWjv [(A) + L(Q)( u)J ~ v . . . LEFT SHIFT IN A . . . . . . . 77 EXTERNAL WRITE (A) (u) = (A)f (Q)+(A)f, (Q)~ v; (A)f=+R A34~A35' (SK)~ = j:=0, ( I OA )~ v; j 1, (lOB ) ~ v j=O, PX 40 6 (v)~IOA; j=l, (v)~IOB v CODING FOR THE COMPUTER 2. WRITING A PROGRAM. a. INTRODUCTION. - The word "coding" is usually used to indicate the preparation of the explicit list of instructions that a computer must execute in order to solve a particular problem. The person who does the coding may be referred to as a "coder". The resultant list of instructions is referred to as either a "routine" or, if the coded,product is part of a larger one, a "subroutine". Sometimes the term "programming" is used to refer to the process described above as coding. Ordinarily, however, "programming" refers to a more inclusive process, which includes not only the coding but the final stages of formulation of the problem for the computer; i.e., the numerical analysis, the -selection of computational procedures, the specification of input-output formats, etc. b. INSTRUCTION NOTATION. - In the following text the mnemonic notation is used to indicate the operation code of an instruction. For example, ''TP'' is used instead of "11" to indicate the Transmit Positive instruction; "MP" is used instead of "71", etc. The address portions of the instruction are indicated by octal numbers. For example, the composite symbol TP 01012 01013 denotes the Transmit Positive instruction calling for the transmission of the contents of address 01012 to address 01013. If this were written in octal, it would appear as 11 01012 01013. In binary, it would appear as 001 001 000 001 000 001 010 000 001 000 001 011. As illustrated above, it would be impractical to code using the binary system. For this reason, and because the conversion of numbers from base 2 to base 8, and vice versa, is immediate, the octal number system is used in coding. When preparing a routine, not only the instructions which are to be executed must be specified, but also the placement of these instructions in the computer must be indicated. The storage location of an instruction in the computer is referred to as the storage address of the instruction. It is customary to indicate this address to the left of the notation for the instruction, as follows: 01010 TP 01012 01013. It is common practice when displaying routines for exposition to give some explanatory comment to the right of the instruction. In the following routine the left column contains the location in storage. The central column contains the contents of that location; for instance, an instruction or datum. The right column indicates the author's reason for including this word in the routine. PX 40 7 CODING FOR THE COMPUTER Routine for replacing the data at 00101, 00102, by the first backward difference of this data. 00110 00010 RS 00110 001)7 form backward difference 00011 RS 00010 00015 decrease (00010) 00012 EJ 00014 000)0 has (00010) reached (00014)1 00013 MJ 00000 00010 00014 RS 00100 00077 terminal dummy instruction 00015 00 00001 00001 constant (address decrement) c. LOOPS. - The above is an example of a routine which has a "loop". The loop in this case consists of the three instructions at 00010, 00011 and 00012. The first of these forms one of the backward differences and stores it where the minuend of the subtraction was. The second instruction, the Replace Subtract at address 00011, then modifies the instruction which forms the backward difference by decreasing both ·)f its addresses by 1. Thus, the next time the loop is traversed and a backward difference is formed,it will be the difference of the contents of the d,~creased addresses. The next instruction, the Equality Jump, tests to see whether or not the loop has been traversed a sufficient number of times. If equality exists between the most recently modified content of address 00010 and the dummy instruction at address 00014, the task has been completed and an (~xi t occurs to address 00000. If equali ty does not exist, the next instructio:n at address 00013 is executed. This instruction provides a jump back to the be{linning of the loop at 00010, and the whole process is repeated once more. The above example illustrates O:le very important facet of coding; a number of the instructions in any rout.ine are always involved only indirectly with the desired results. In this example, only one instruction, the first, produces directly the first backwarlj difference. The others are concerned with keeping the process going, advancing addresses, and testing to see if the process has been completed. Sw~h instructions are frequently referred to as "housekeeping" instructions. The functions of address modification, terminal testing, and jump provisions are referred to as "housekeeping" functions. It is common practice to indicate the fact that certain instructions are altered during the course of the coonputation by putting brackets around the instruction or that part of it which is altered. Thus, the first line of the above example could have properly been written as 00010 00110 or as 00010 RS PX 40 8 00107] CODING FOR THE COMPUTER 'The latter is less preferable then the former because it suggests that the addresses are independently modified, which is not true in this case. Bracketing the so-called modified instructions, or modified addresses, serves to call attention to the fact that at some later time during the computation, the addresses may not be as they appear on the page. In particular, in the example above, at the end of the subroutine the addresses at 00010 will have been modified to agree with those appearing at storage address 00014. Addresses which are modified within a loop should generally be set to their desired initial values by instructions prefacing each loop, i.e., the process of "prestoration"; or by instructions following each loop, i.e, the process of "restoration". (Restoration is less preferable than prestoration because the restoration instructions may not be executed if a computer fault is incurred during th~ loop.) If this is done the routine can be used any number of times while it is in the memory without reloading it from a permanent storage device. Note that the above example does not meet these specifications. Below is the same example coded with such "self-restoring U properties. In this routine the loop consists of the instructions at 00010, 00011, and 00012. Note that a different means is provided to terminate the loop. Note also the use of boxing to indicate a loop,and the use of a straight line, following an unconditional jump, to indicate a break in the sequential acquisition of the next instruction to be executed. Routine for replacing the data at 00101,00102, . . . , 00110 by the first backward difference of this data. 00006 TP 00017 00016 Prestore counter, (00016) 00007 TP 00014 00010 Prestore (00010) 00010 . 1[00 00000 00000] Form backward difference 00011 RS 00010 00015 Decrease (00010) 00012 IJ 00016 00010] All differences £ormed? 00013 MJ 00000 00000 Exit 00014 RS 00110 00107 Initial contents of 00010 00015 00 00001 00001 Constant (address decrement) 00016 00 00000 00000 Counter, initially n-l. 00017 00 00000 00006 Constant, n-l, initial value of counter. In this case the termination test is performed by an Index Jump instruction which is executed after each traversal of the loop. Execution of the Index Jump at address 00012 causes a "1" to be subtracted from the contents of 00016 and a test to be made to see if the result is negative. If the result is not negative, a jump to address 00010 is made for another traversal of the loop. Memory location 00016 is called a "counter" since it contains at each stop a count-down tally of the number of traversals of the loop. If the Index Jump instruction is at the end of a loop (which is to be traversed n times), this counter should have an initial value of n-l. The quantity is a constant PX 40 9 GODING FOR THE COMPUTER stored at location 00017. Entry (If the routine at address 00006 causes this quantity n-l to be transferred to the counter at location 00016. The termination test could also have been co(~d at the beginning of the loop. In this case, h'owever, the ini tial value oT the counter should be "n" to effect n traversals of the loop. When the termination test indicates that the loop has been traversed n times, the execution of the Index Jump instruction at address 00012 does not cause a jump but allows the next instruction to be taken from 00013. The exit instruction, a Manual Jump, is stored here. Any of the conditional jumps, Index Jump, Threshold Jump, Equality Jump, Q Jump, Sign Jump, or Zero Jump, (:an be used as the decision instruction to determine the number of times a loop has been traversed. In summary, a loop consists of four elements. d. (1) A series of self-restoring operations which set up the loop for the first traversal. These initial "housekeeping" instructions place in a "counter" a number which determines the number of times, n, that the computer will traverse the loop. The instructions also set in the routine the initial addresses of any data referenced by the instructions within the loop. (2) The computational in~;tructions which lead to the sol ution of the particular problem. (3) The "housekeeping" instructions which advance/decrease the addresses which referellce the data so that successive loop computations are performed on successive data. (4) The "housekeeping" instructions which advance/decrease the counter, and the decj,sion instruction(s) which test the counter to determine if the loop has been traversed n times. SUBROUTINES. (1) INTRODUCTION. - A portion of a routine which is complete in itself and can be isolated from the context of the larger routine is known as a "subroutine". A subroutine is a ~;elf-contained list of instructions for executing some particular operation. If it contains the calculations necessary to compute a function such as~, sine x, tan x, etc., it should be coded in such a way that it may be used in a number of routines wherever such a function is desired. (2) SUBROUTINES WITH PARAMETERS. - In the case of subroutines which are to be used in many different programs, absolute addresses may not be assigned to certain quantities~ These addresses are regarded as parameters of the subroutine and chosen in accordance with the main program. In such a case it is conventional to write, in lieu of an absolute address, some designation for the quanti ty itself enclosed in braces. Thus, "{x}" means "the address at which the quantity x is stored". For example, the instruction for PX 40 10 CODING FOR THE COMPUTER transmitting x to address 01033 would be written TP {x} 01033. The following subroutine for adding two vectors together exemplifies the use of parameters. The two vectors are denoted by x and y with coordinates xi and Yi, respectively. The sum vector is denoted by z with coordinate zi. Thus, it is necessary to form the sums i = 1, 2, 3, n. 00100 TP 00114 00117 set counter to n-l 00101 TU 00112 00104 set in {Xl} 00102 TU 00113 00105 set in {Yl} 00103 TV 00112 00105 set in {Zl} 00104 form [{ Xi}] [{:i}]} 00105 AT [{y i}] 00106 RA 00104 00116 } 00107 RA 00105 00115 00110 IJ 00117 001041 termination test 00111 MJ 00000 [00000] exit 00112 00 00113 00 00114 00 00115 Zi = xi + Yi Advance i by 1 constant 00000 constant 00000 n-l constant 00 00001 00001 constant 00116 00 00001 00000 constant 00117 00 [00000 00000] counter This subroutine assumes that tabular values of xi and Yi are stored in consecutive order somewhere in the memory and that a table of values of zi is to be stored in consecutive order in the memory. The constants located at 00112 and 00113 are, in effect, parameters of this subroutine because these constants give the addresses of xl and Yl, and the address where zl is to be stored. Another parameter of this subroutine is the terminal value of i (i=l, 2, 3, - - -, n). The subroutine has a loop from 00104 to 00110 which needs to be traversed n times. PX 40 11 CODING FOR THE COMPUTER (3) SUBROUTINE ENTRANCE Al\'D EXIT. - To make use of a subroutine, the main routine must provide a jump tc the correct entry point of the subroutine, and the subroutine must provide an exit back to the main routine. In the subroutine for adding two vectors the entry address is 00100. The v address portion of the Manual Jump instruction at 00111 must be set to a jump-out address in the main routine. The simplest method of entering a subroutine is to use the Return Jump instruction. To enter the above subroutine the instruction RJ 00111 00100 would be written at address y in the main routine. Execution of this instruction causes the quantity y + 1 to be placed in the v-address portion of 00111 and the contents of 00100 to be taken as the next instruction. Thus, a return to the main routine at address y + 1 is provided upon completion of the subroutine. In this way the subroutine may be entered from many different points in the main routine. If a subroutine has parameters, these must be set up before it is executed. The parameters may be inserted by instructions in the main routine. Thus, in the subroutine for adding two vectors, the contents of addresses 00112 and 00113 could have been entered by instructions in the main routine. If the parameters occur in many different instructions throughout a subroutine, the subroutine itself will contain the instructions for inserting the parameters in all necessary locations. Again in the subroutine for adding two vectors, instructions 00100 through 00103 distribute the parameters throughout the routine. Since each parameter is used only once, it would be as easy for the main routine to set the parameters directly in addresses 00104 and 00105 as to place them in addresses 00112 and 00113. However, when a parameter occurs more than once in a subroutine, it is better that the main program insert the parameter in a single location and the subroutine distribute it from there. This avoids the possibility of a programner omitting some of the parameter settings. A convenient means of repeatedly executing a subroutine with a different parameter each time is illustrated next. The subroutine is referenced by a Return Jump instruction followed irrmediately by the list of parameters. Following the last parameter is the next instruction to be executed after the repeated use of the subroutine. Y 37 y+l y+2 00 00 y+k y+k+l 00 NI Here the parameters ai and ni, i = 1, •. I, k, are for the following subroutine for punching n + 1 consecutive words at addresses aj' j=i, i+l, ... , i+ni" PX 40 12 CODING FOR THE COMPUTER Subroutine for Punching n + 1 Consecutive Words 00010 MJ 00000 [00000] 00011 SP 00010 00017 Extrance 00012 TU A 0001'3 y+l--' 00013 TP 00014 QT 00036 00015 ZJ 00016 00021 } 00016 SP 00013 00071 00017 TV A 00010 00020 MJ 00000 00010 to exit instruction 00021 TU Q 00023 ai~u 00022 TV Q 00037 ni~00037 If (A)=O, this is a parameter; go to 00021 A 00025 If (A)#O, this is NI; go to 00016 } Q TP address of 00013. (y+l) = PI Q 00023 00024 Exit j+k+l~v ( aj address of 00010 address of 00023 )~ Q; j = 1, i + 1, - - -, i +n i 00040 00041 set counter to punch 5 frames Q 00006 shift to punch next two octal digits 00026 PU 00000 Q 00027 IJ 00041 0002 5 1 have 5 frames been punched? 00030 LQ Q 00006 shift to punch last two octal digits 00031 PU Q Q 00032 RA 00023 00042 increase (00023) to picI<: up next word 00033 IJ 00037 000231 have ni+1 words been punched? 00034 RA 00013 00042 increase (00013) to pick up next parameter 00035 MJ 00000 00013 return to pick up next parameter 00036 77 00000 00000 mask to detect parameter 00037 [00 00000 00040 00 00000 00004 initial value of counter, 00041 00041 [00 00000 oooooJ counter for number of frames per word 00042 00 00001 00000 constant to augment u address punch punch with 7th level to show end of word counter for number of words to be punched PX 40 13 CODING FOR THE COMPUTER The Return Jump instruction at address y places y + 1 in the v-address portion of 00010. Therefore the subroutine can recover from 00010 the address of the first parameter, Pl. Instructions 00014 and 00015 test the content of y + 1 to see if it is a parameter o~ if it is the next instruction. This test is based on the fact that there is 110 operation code "00". When "NI" is detected, the exit in 00010 is to y+k+l. Note that this device permits listing any number k of parameters. The mechanics may easily be varied to accomod.ate sets of parameters of any form, e.g., sets of parameters which occupy more than one word. Different methods of detecting the end of the parameter list are possible. The Univac Scientific instruction repertoire includes the Interpret instruction for referencing subrout:Lnes with parameters. An Interpret instruction at address y places y + 1 in the v address of Fl and takes (F2) as the next instruction. In other words, the operation code of the Interpret instruction in itself indicates the same operation as the instruction RJ 00000 00001. The advantage of the Interpret instruction lies in the availability of 10 octal digits in which ~nformation may be stored. Address F2 contains a jump to a subroutine whieh uses the information in the Interpret instruction as parameters for its operation. The subroutine can set up its own exit from the v address of Flo Frequently, complex systems of pseudo-coding are built around the Interpret instruction. These "interpretive systems" simplify the job of progranuning for a computer because of the use of pSE!udo-instructions whose functions define operations which are actually carried out by a series of ordinary machine instructions. Such series of stored instructions are in the form of stored subroutines, the operations of which are initiated by the interpretation of the pseudo-instructions. Chief among the Interpretive sy~:tems are those providing for arithmetic operations on floating binary point numbers. (See subparagraph c.) In a typical system, the Interpret instruction is composed as follows, each character denoting an octal digit: IP RA Here the pseudo-code "RAIt refers to the Replace Add subroutine, corresponding to the machine operation of Replace Add, for floating binary point numbers. Each of the operand addresses u and v has four octal digits rather than five. Since only four octal digits are needed to span the range of addresses in RAS, this is not a severe restriction. The interpretation routine deciphers the third and fourth octal digits, in tt.is case RA, to determine which of the subroutines in the system is to be executed. (4) LIBRARY OF SUBROUTINES. - In any computational laboratory having a Univac Scientific, there is a library of subroutines which can be used to calculate the frequently encounteret mathematical or logical operations required by the partilCular laborator}'. These are then available for any progranuner to use in coding his own programs. In addition to saving coding time, library routines have the advantage of being "debugged" and thoroughly tested. Presumably, more effort has gone into their design than could be afforded by individual PX 40 14 CODING FOR THE COMPUTER programmers. On the other hand, library routines may be more general then necessary for a particular program, and hence wasteful of time and storage. Subroutines may be grouped into three basic categories. The following listing is intended to give the beginning coder an idea of the type of subroutines that would be contained in a typical library of subroutines. This list is by no means intended to be complete. (a) COMPUTATIONAL SUBROUTINES. Basic arithmetic: Floating point add, multiply, divide, etc. Complex number operations Multiple precision routines Function evaluation: Trigonometric, sin x, cos x, tan x, etc. Exponential, f(x) = x a , aX, etc. Square 'root Hyperbolic functions Numerical Analysis: Solution of n simultaneous equations Matrix operations Numerical integration Numerical differentiation Logical: Sorting Collating Boolean algebra (b) SERVICE SUBROUTINES AND/OR ROUTINES. Compilers Assembly Programming aids (debugging sUbroutines) Machine testing routines (c) INPUT-OUTPUT SUBROUTINES. Punch card (read and punch) Paper type (read and type) Editing (typewriter, paper tape, or card output) The need to become thoroughly familiar with the available library of subroutines cannot be over-emphasized. An understanding of what each subroutine will accomplish and the requirements for its use is important. PX 40 15 CODING FOn THE COMPUTER (5) ASSEMBLY OF SUBROUTINES. - If each of the library subroutines were coded for a specific location in the computer memory, a programmer wishing to use subroutines would be faced with two unpleasant alternatives: (1) code his main routine around the fixed locations of the subroutines, or (2) manually recode the subroutines to operate from locations which he chooses. Instead, the practice is to adopt some standard form for subroutines and to use an "assembly program" to convert the standard form of the subroutine to coding suitable for execution at a specified location. The simplest of these assembly routines assumes that the standard form of the subroutine is already at the desired location. It remains for the assembly routine to modify addresses (within the instructions of the subroutine) relative to that location. A more sophisticated assembly routine provides not only for address modification but for transfer of the subroutine to a designated location from a library file on magnetic tape or magnetic drum. Furthermore, there are in use "compiling" routines which relieve the programmer of assigning storage locations to subroutines. The programmer need only refer to a subroutine by means of an identifying index. The compiler routine then arranges the subroutines in storage and modifies all subroutine references to provide for a jump to the assigned location. One standard form for subroutines in use at several computer installations is as follows . (a) The initial address of each subroutine is address 01000 in rapid access storage. The service routines (assembly, compiling, etc.) treat address 01000 as a "relative" address. (b) The first instruction of the subroutine provides for the "alarm" exit. Most subroutines are coded to detect the unexpected or undesirable, such as entry with an out-ofrange argument or incorrect parameters. When such is detected, a jump to 01000 occurs. At 01000 is the instruction 37 76000 76002 which provides entrance to an "Alarm Print Routine". This routine prints (A), (Q), and the address of the instruction at which the alarm condition occurred. (c) The second instruction provides for the normal exit from the subroutine. The address of this instruction, 01001, is the u address of the RJuv instruction used to enter the subroutine. This instruction is a Manually Selective jump, coded: MJ 01001 PX 40 16 O(=j) CODING FOR THE COMPUTER Actually the v address of this instruction of 30000 is an unallowable address which will cause an SCC computer fault if the jump to 30000 occurs. Normally the RJ instruction used to enter the subroutine would replace the v address of the'MJ instruction with y+l. However, if the RJ instruction had been incorrectly coded, or the subroutine had been entered without an RJ instruction or w·ithout first changing the v address of (01001), the computer would be stopped after executing the subroutine when (01001) is taken as the next instruction. Thus would an incorrect entrance into the subroutine be indicated. (d) The third instruction of the subroutine (01002), is the entry line into the subroutine. This address, 01002, is the v address of the RJ instruction used to enter the subroutine. If more than one entry into a subroutine is necessary, instructions referencing the various desired entry points in the subroutine are usually stored at consecutive memory positions beginning with the third line of the subroutine. (e) A jump instruction must be placed at the end of the subroutine computations to cause a jump to 01001, the normal exit line of the subroutine. (f) All instructions and "modifiable" operands should be placed in consecutive memory positions. "Modifiable" operands are any words referencing storage locations of the subroutine which would be changed upon translation of the subroutine. The "unmodifiable" operands should be stored directly following the above, at consecutive locations. (g) The subroutine must contain all the housekeeping instructions that make it self-restoring. The Square Root Routine given below is a routine coded in the standard form just described. This routine is to be entered with the argument in the Accumulator. The square root of that argument is in the Accumulator upon exiting from the routine. Note the jump at 01002 to the alarm exit should the argument be negative, and the jump at 01007 to the alarm exit should the argument be put-of-range. Routine for Evaluating the Square Root of N Entrance conditions: (AL) (A R) (AR) Exit conditions: =0 = N = N· 2 34 =VN =~N·2l7 The method used here is the Newton-Raphson iteration Xn+l = Xn + 1/2 [~n - Xn] tl (= Xn + ~ Xn) = 1/2 ~n + The first approximation is Xo = 235 _1 and convergence is assumed when A X~~ o. PX 40 17 CODING FOR THE COMPUTER 01000 37 76000 76002 Alarm Exit 01001 45 00000 [30000 ] Normal Exit 01002 46 01000 01003 Entrance; N . 2 34 negative?~Alarm OlO03 11 01016 00005 2 35 _1-+( t5) 01004 11 A 00003 N . 234~( t3) ·01005 43 01016 01001 N . 234 ::: 235 - 1 ~ Exi t 01006 36 00003 A 01007 47 01000 01010 (A) i 01010 31 00003 00041 1/2 N. 01011 73 00005 00004 1/2 N/xi . 23~(Q), (t4) 01012 54 00005 00107 1/2 xi· 2 3~ (A), ( t5 ) 01013 '23 Q 00005 (1/2 N/xi - 1/2 xi) . 2 34-+(Q)::: ~ X 01014 21 00005 00004 1/2 Xi . 2 34 + 1/2 N/xi . 2 34= (xi+ l ) 2 34 --.(t5) 01015 44 01010 01001 ~x 01016 37 77777 77777 235 _1 N . 234 O--+Alarm 268~(A) negative, Repeat loop Note the use of addresses 00003, 00004, 00005 (t3, t4, t5) as temporary storage for partial results obtained during computation. Most routines require working storages such as these during their operation. Upon completion of the routine the contents of these locations are no longer of use. A single location may be used several times in the same routine for temporary storage of different quantit~~s. For instance, in this routine 00005 contains successively xi, 1/2 xi . 2 and xi+l . 234. Since it is possible for many different subroutines to use the same locations for temporary storage, it is conventional to reserve an area of the memory for temporary storage. Several installations have reserved HAS locations 00000-00037 for this use. In this routine the WOrds in whieh addresses are to be modified when the subroutine is assembled are in 01000 to 01015. The word in 01016 is a constant and is not to be modified. An example follows of an assembl~' routine which is suitable for modifying subroutines in the previously given ~itandard form. Recall that each subroutine to be assembled must be coded in absolute form as if its initial instruction were at address 01000. In actual fact the subroutine is placed in PX 40 18 CODING FOR THE COMPUTER RAS at any location selected by the coder. It is the function of the assembly routine to modify all addresses that. are dependent on the location of the subroutine. The assembly routine must be informed of the actual RAS addresses of the initial instruction of each subroutine and of the number n of successive instructions to be modified in each case. It will then scan (s+j-l) instructions, j=l, 2, ... n, altering the u and v addresses of the instructions by adding s-01000 to them when necessary. A particular address will be modified if, and only if, the 10th bit from the right in its 15 bit array is a one; i.e., if it is of the form XXX XXIXXX XXX xxx. For RAS addresse's this means that all addresses of the form Olxxx (x an arbitrary octal digit) and only such addresses will be modified. Thus,' addresses of temporary storage such as those described previously (addresses 00000 through 00037) will not be altered. Since n successive instructions are modified starting with the initial one, constants should be stored at addresses 01000 + n and following. The routine below will assembly k subroutines in succession. that the parameters for each, ni and si, are of the form It is assumed 00 and are stored consecutively at addresses 00121 + i, i = 1, 2, ... k. 00121+k+l must contain 0 to indicate the end of the parameter list. Address Address Modification Routine = (00121 00100 11 [00122 J A 00101 47 00102 00000 Exit -- All modified 00102 73 00073 00005 (00005) = ni 00103 16 A 00112 (00112)v 36 00121 00006 (00006) = si -01000 00105 : 41 00005 00110 Exit for next subroutine 00106 21 00100 00073 Advance i by one 00107 45 00000 00100 Jump to 00100 00110 16 00112 00116 (00116)v 00111 11 00040 00007 (00007) 00112 21 00007 [00000 ] 00113 55 A 00033 00114 51 00075 Q 00104 t-------------------- -------- PX 40 19 (A) + i) = si = (00112)v = zero (00007) =(Sj)i Shift right nine binary digits (Q) = 00 00001 00001 CODING {'OR THE COMPUTER = increment to (Sj)i (Sj)i = modified initial 00115 71 Q 00006 00116 35 00007 [00000] 00117 21 00112 00074 s j advanced by one 00120 45 00000 0010§.1 Jump to 00105 00121 00 00000 01000 Constant 1000 octal (A) Note the references to addresses 00040, 00073, 00074, 00075. these addresses are commonly used constants. 00040 00 00000 00000 00073 00 00001 00000 00074 00 00000 00001 00075 00 00001 00001 (s j ) i The contents of A computer installation will sometimes reserve an area of RAS for a "constant pool tt, i. e., a collection of frequer:tly used constants. All subroutines can then refer to the constant pool rather than having each contain its own constants. This results in a conSiderable saving of storage space when many subroutines are used. In the particule.r case of this assembly routine, it is assumed that there is a constant pool at addresses 00040 through 00077. In the case of routines, such as the assembly routine, which are to be used by many different persons, it is important that the routine be accompanied by complete and easily understood operating instructions. The operating instructions for the previous assembl) routine are given below. Operatin'g Instructions for the Assembly Modification Routine. 1 Only suitably coded subroutines may be assembled. A subroutine is suitably coded if it satisfies the following conditions. a It is written in absolute form as if the initial instruction were located at address 01000 . ..Q All addresses independent of the location of the routine are of the form XXX XXO xxx xxx xxx . .Q. All addresses to be modified are of the form xxx XXI XXX XXX XXX. d All subroutine constar.ts follow immediately the last instruction. Z To use this routine: A Load all subroutines to be modified in their proper locations in RAS PX 40 20 CODING FOR THE COMPUTER b Load this assembly program in 00100-00121 £ Load the constant pool in 00040-00077 d Load the parameters 00 n°1 i s'). = 1, 2, ••• k for all k subroutines into addresses 00121+i, i = 1, .•• , k e Load zero into address 00121 + k + 1 f Provide for the proper exit in the u address of 00101 and enter at address 00102. The assembly routine which has been described is an example of a service routine designed to relieve a coder of part of the work in preparing a program for execution by the computer. The text following describes a coding technique (simplifying the job of coding) which is possible because of another type of service routine. e. RELATIVE ADDRESSING. - In coding routines it is often preferable not to assign absolute memory locations to quantities referred to in the program. For instance, it may be convenient to postpone the assignment of absolute addresses to data, constants, tempora~y storage and the like, until the coding of the entire problem has been completed. Similarly, it may not be desirable to assign locations to subroutines until coding is completed and it is known what the storage requirements are for each of the sections of the program. It is possible to postpone the assignment of absolute addresses by coding with "relative" addresses. For instance the instruction 01010 11 01012 01013 which is coded with absolute addresses 01010, 01012, and 01013 might be written with relative addresses as CIO 11 C12 C13. In this case, the addresses are relative to the address C. The alphabetic character C· could denote any address allowable in the Univac Scientific. For example, it could be assigned the address 01000. The numerals following an alphabetic character in a relative addressing scheme usually are interpreted as being additive i.e., if C denotes 01000, then C12 denotes 01012, etc. Almost any of the alphabetic characters are usually allowable in most relative addressing schemes. A few exceptions are the reservations of the letter A, denoting the Accumulator, and the letter Q, denoting the Q register. Other exceptions to the use of alphabetic characters need not concern the beginning coder. The allowable characters depend upon the conventions in use at a particular computer establishment. PX 40 21 CODING FOR THE COMPUTER Each new alphabetic character used in a program may indicate a new "region tt in the storaue of the computer. In fact, a greater number of regions may be accomodated by using combinations of alphabetic,or alphabetic and numeric characters. By using relative addresses it becomes comparatively simple to assign segments of a problem to various regions with the routines assigned to each region performing a separate calculation or function. As an example of a routine coded with relative addresses, consider the following. Compute the function f(Y)f where f(y) Assume that y+7 = 5y-2 . y+7 of 0 and IY+71<2 35 • Function Instruction (Program of instruct.ions) Operation code u address v address Cl TP fl A C2 AT El C3 TN E3 C4 MA E2 fl Form 5y-2 in A C5 DV f2 f3 Place the result of 5y-2/y+7 in f3 C6 PS 0 0 El 0 0 7 E2 0 0 5 E3 0 0 2 f2 A Place y in A Place y + 7 in f2 Place -2 in A Stop (Constant Storage) Constants (Temporary Storage) Variable y fl f2 0 0 0 Temporary storage holding y+7 f3 0 0 0 Temporary storage holding f(y) PX 40 22 CODING FOR THE COMPUTER After a program is coded with relative addresses, it must be converted to absolute addresses before execution by the computer. The computer may be used to perform this conversion. ''Translation'' routines have been written which not only convert relative addresses to absolute addresses but which also convert decimal information to computer binary representations. Frequently these translation routines include an assembly subroutine. f. MECHANICS OF CODING. (1) FLOW DIAGRAMS. - After it has been established that a particular problem can be soh,~d'by the computer, it is necessary to formulate the problem in terms of the language of the Univac Scientific computer. A program of instructions, and the necessary data needed for the solution of the problem must be devised. A "flow diagram" is helpful in facilitating the coding or programming of the problem. A flow diagram or flow chart indicates the ttflow" or steps in the computation which lead to hhe solutions of the particular problem. A basic flow diagram usually lists the series of simple arithmetic steps which are to be performed by the computer. It is imperative that the coder be thoroughly familiar with the overall operations and peculiarities of each computer instruction so that he can construct the outline with regard to the capabilities of the computer. A description of each instruction is presented in the section of,this volume entitled Sequential Presentation of Instructions. Tabular informati6n on'theinstructions and the contents of the arithmetic registers before and after the execution of each instruction is presented in the volume entitleq "Content of Registers". Usually more than one flow diagram'is formed for the more complicated problems. The first flow outline may be nothing more than equations in mathematical language, written in the sequence in which they will be computed, together with brief explanations of the steps involved. The second flow chart usually formulates the flow of computation as the problem will be computed on the computer. This chart will usuall~ contain the instructions necessary for the data input, the instructions that operate on the input data to obtain the solutions, and the necessary instructions for the output of the re~lts. Many times the problems are of such a nature that the second type of flow diagram will consist of many charts and/or diagrams, each a more detailed presentation of the preceding charts. To facilitate the task of forming flow diagrams and to allow other programmers to understand a particular flow diagram, certain symbol,s have been more or less standardized. The following list of symbols is by no means complete, but is intended to give the coder an example of the basic symbols used in drawing the second type.of flow chart. PX 40 23 CODING FOR THE COMPUTER (a) LINES OF FLOW. -{] A solid line with an arrow touching the next element of the flow diagram is usually used to indicate the path to be followed by the co,mputer; or more precisely, the path to be followed by the coder who is formulating the computer instructions from the flow diagram. (b) OPERATION SYMBOL. -0 A+B OR ADD ATO B The rectangular box usually con'tains a statement about a computer or mathematical operation. The contents Qf the box may be a simple statement or a mathematical expression. (c) DECISION SYMBOL. A!R B DOES A EQUAL ' \ =-{] sF :1= The symbol above is used to ind:icate a two-way decision. sometimes written as This symbol is where the letters EJ designate the use of the Equality Jump instruction to make the decision in the computer. PX 40 24 CODING FOR THE COMPUTER ( d) CONNECTORS AND "REMafE CONNECTORS. ----~--------~ >0 ® To ~liminate as much as possible the crossing of lines of flow on a diagram, the above symbols are used to indicate a destination not easily reached in the diagram. Thus, the flow can be broken at a convenient point by terminating itiri an arbitrary symbol which can be used to initiate the flow in another region of the paper. (e) EXAMPLE. - To illustrate the use of the above symbols, consider the following problem. Compute the function f(xi) where n i = 1, 2, 3, ... , n f(Xi) =1: i For this problem, it is assumed that b, c, d, and xi are integers and are contained in the computer in the Rapid Access Storage. Also, it is assumed that Xi + d "1 xi + d 1< 2 35 0 The function f(xi) is stored at the location whose address is ei .. The symbol (i) indicates the storage of the "i" term. FLOW DIAGRAM I I -i Start m-C"';;"A I 1[(A) + ~(Q)~ei __------IK0 Set (i) = i + b • xJ-A HfA)/( l-:>Q I~---'-"'~G eo l~i) = PX 40 25 CODING FOR THE COMPUTER (2) CODING STEPS. - In sur~ary, there are usually four phases in the preparation of a coded cornputeJ~ program: (a) The construction of a "flow diagram" or outline which shows the general computational steps to be accomplished; (b) The creation of a program, written in terms of computer instructions, us:~ng numeric or alphabetic symbols to indicate operation codes and the u and v address portions of the instructions: (c) If the program created in Step 2 is coded in octal, the program is ready for execution after being put onto some input medium and loaded into the computer. If the program is coded in symbolic notation, it must be translated into a binary representation before it can be automatically executed by the computer. Service programs for this translation may be used to facilitate this process by allowing the computer to perform the conversion; (d) The "debugging" (computer check-out) of the final program by means of trial runs on the computer. The last phase - debugging - is def;cribed in the following paragraphs. g. DEBUGGING A PROGRAM. (1) INTRODUCTION. - After the coded program has been written out completely and the manuscript carefully reviewed, the program must be put on some input medium for loading into the computer. The input mediums and the devices which transfer information from these mediums to the computer memory are described in the section Input and Output of this volume. Once the program has been stored in the computer in binary form, either directly from the input medium or by means of some translation routine, it is ready for execution by the computer. However, if the program is lengthy, it is likely that the coded program as stored has errors. Three common types of errors are: (a) Tape or card pre~aration errors made in the preparation of the program for input; (b) Coding errors, such as listing incorrect or incomplete addresses, transposition of digits in the addresses or operation codes, transcription errors, etc; (c) Logical errors; incomplete or erroneous methods used to obtain the solution(s). "Debugging" is the term appliec to the process of locating errors in a program and correcting them. Debugging a program ksually involves a series of trail runs of the program on the computer. Each time the program fails to run properly, the failure must be analyzed and the error corrected. Frequently one can immediately discover the error, correct it manually from the control console, PX 40 26 CODING FOR THE COMPUTER and proceed with the next trial run. At other times the detection of errors is more difficult and requires a thoughtful reconsideration of the program, keeping in mind any clues as to the origin of the error which may have been provided during the run. Error detection may be facilitated by the use of service routines coded expressly for this purpose. The methods that can be employed to debug a program will vary widely from installation to installation depending on the nature of the programs, the service routines available, the availability of computer time, and the personal preference of the individual for one procedure over another. The following remarks suggest possible patterns to follow in debugging. (2) TAPE OR CARD PREPARATION ERRORS. - This type of error can be minimized by systematic checking of all input tapes and cards before their information is read into the computer. The usual method that is used to prepare input paper tapes is listed below. (A similar routine is used in punched card preparation.) I A paper tape is, punched from the coder's manuscript using the Flexowriter. £ The resulting typed manuscript from the typewriter is discarded. 3 A new typed manuscript is prepared from the punched paper tape. 4 This typed manuscript is compared with the coder's manuscript to detect errors in punching. 5 All detected punching errors are corrected and a new corrected tape is prepared. 6 From the corrected punched tape a new manuscript is obtained which should be retained by the coder to use while debugging. 7 If seven-level codings are used they should be sight-checked before an attempt is made to read the tape into the computer. (3) MANUAL DEBUGGING. - Manual debugging is the process which is used to locate errors in a program by controlling the operations of the program from the Supervisory Control Panel and visually checking these operations as they occur and are indicated on the control panel. Although manual debugging does not make efficient use of computer time, it can, if done correctly, reduce the overall time required to debug a program because of the versatility afforded by a tlthinking" programmer at the control panel. After loading the program in the computer, a run at high speed is usually tried. (For a discussion of the various speeds at which the computer may run, see the section Operating the Computer. Many of the suggestions for program debugging require a knowledge of operating the computer from the control console. This is also described in Operating the Computer.) This run may show the program to be free of errors, in which case there is no debugging to be done; or this run at high speed may end immediately with a computer fault. Frequently an MCT (Main Control Translator) fault or SCC (Storage Class Control) fault will PX 40 27 CODING FOR THE COMPUTER arise. The former indicates an illegal operation code; the latter an illegal address. (Computer faults are described in Operating the Computer.) When a fault occurs, the contents of PAK (Program Address Counter) should first be noted. This will almost always indicate the exact location of the erroneous instruction. The SCC fault usually arises from eit.her a transcription error, a punching error, or incorrect modification of an instruction by the program. These faults are ordinarily easy to correct. An MeT fault may be caused by a punching or transcription error. Frequently it will result from an erroneous program jump. In this case the address in PAK may indicate that the jump was to an area which is not occupied by th,~ pronram. This fault must be traced to the instruction which caused the jwnp. The computer may also stop on a DIVIDE fault or an OVERFLOW fault. Erroneous coding may cause these faultS, or they may be the result of an error in judgement concerning the range of the numbers involved in the computation. Obviously, the first phase of dl~bugging is to correct the program so that it will run without computer faults. Although the program is running without incurring computer faults, errors in its execution may still be detected. For instance, the program may be coded to produce output but no prin'ting or punching occurs. Correction of this type of error may be facilitatl~d by observation of the monitoring oscilloscope located on the upper center section of the Supervisory Control Panel. This oscilloscope displays a point for each of the 4096 registers in RAS every time one of the registers is referenced. If, while debugging a program, the scope displays a distinct non-terminatinn repeated pattern (one dot or many) for a questionable period of time, it can be assumed that the computer is executing an erroneous "loop". This usually means that one or more of the "decision" instructions has an incorrect jump reference causing a return to itself or to a series of instructions which lead back to the incorrectlyaddressed jump instruction. It may be possible to detect from the oscilloscope the area in which such a loop is operating; or it may be desirable to FORCE STOP the computer, select MANUAL STEP OPERATION, and, by executing one instruction at a time, trace the operation through the loop. By noting each jump to a new address and traversing the loop at least once, the incorrect jump will probably be located. Thus, the second phase of debugging is to eliminate any non-terminating loops. After these two phases of debugging a program have been completed, output from the corrected program will revaal if the program is being executed properly. If the output format is in error, an investigation of that portion of the program devoted to output is necessary. This may be accomplished by entering the output routine with a typical result and, if the output routine is short, executing the routine one instruction at a time, observing the results at each step. If the output routin~ is eomplicated, it will probably be necessary to inspect the manuscript of the coded output routine, using the PX 40 28 CODING FOR THE COMPUTER erroneous results as a guide in looking for the trouble. (Output routines from the subroutine library would not be expected to cause any difficulty.) In summary, the third phase of debugging is to correct any output routines used in the program. Since frequent output during the running of a program is a positive indication of proper or improper running, it is often convenient to provide for output of partial results of computation. Since these results are of no interest when the program is known to be running properly, and since any output from the computer is time consuming, routines providing such output should be entered via an optional jump. During the debugging process the optional jump switches may be "ont' to provide the output for monitoring purposes. After the program is completely checked, the optional jump switches may be "off", thus eliminating the intermediate output. An intermediate printout may even be of value when the program is in actual use. If normal output is very infrequen~ or onto a medium which is not easily read, an operator may wish to occasionally sample the intermediate output as a check on the program's operation. Since the problem in debugging a program is to isolate each of the errors, it is desirable to have the coding arranged in small segments. The coder should be sufficiently familiar with his program to anticipate the results of each of the segments of the computation. In particular, he should be able to recognize an incorrect result. A convenient way to examine the results of these program segments is to terminate each with an OPTIONAL STOP. Like the optional jumps described above, these stops may be "ont' while the program is being debugged and then tloff" when the program has been checked out. If optional stops have been coded in the program, the program may be executed from one stop to another until trouble is encountered. Then, because it is known in which segment the error lies, that section may be re-run on MANUAL STEP OPERATION. The points in a program at which these optional stops and jumps are placed are called "breakpoints". Thus, the fourth phase of debugging makes use of programmed breakpoints to isolate errors. The instructions for optional stop and optional jump each provide three selections which incur the jump possibility. Although the number of options may be increased by combinations of the selections, an option at all desirable breakpoints can not be provided in a lengthy program. Regardless of how judiciously the breakpoints have been selected, in an actual debugging process, a breakpoint is often desired where an option for one has not been coded in the program. In this case it is possible to superimpose a breakpoint on the program. If a stop, for instance, is desired at address a and addresses b and b+l are unused, the instruction at a may be replaced with the instruction 56 00000 PX 40 29 b. COD ING FOR THE COMPUTER The program instruction which was in a is then stored in b, and the instruction 45 00000 a+l is stored in b+l. Thus, the fifth phase of debugging is to insert breakpoints if programmed breakpoints are inadequate. Thus far the process of debuggi:llg has been described in terms of the programmer himself manually debugging :lis routine. It cannot be overemphasized th::it in order to do manual debugging, the coder must be thoroughly familiar wi th th,e problem, its coding, and in addi tion, with the_peculiarities of the computer. (4) DEBUGGING WITH SERVICE ROUTINES. - A number of service routines exist which facilitate the process of program debugging. Consider phase 1 of the process of debugging, the elimination of computer faults. Two types of errors may be hard to find: (1) an SCC fault arising from improper modification of an instruction and (2) an M:T fault arising from an incorrect jump. The search for either of these errors may be facilitated by an "address sort tt routine. Such a routine scans all instructions of the program for a given address. Any instruction containing that address is printed with its location. In case one the trouble may be located by a search for references to the modified instruction; the faulty jump iri case two may be located by a search for referenees to (PAK)-l at the time of the MeT fault. A serviee routine of use in eliminating faulty loops is a "jump trace" routine. A "trace" or "automonitor" is a routine which executes interpretively all the instructions of a program which is being debugged. As each instruction is executed, the instruction itself and its address are printed out together with (A), (Q), (u), and (v), In the case of a jump trace routine, print-out occurs only if the instruction is a jump. With this print-out, the sequence of jumps in a program can be followed, and those which are incorrect can be noted. When a program has been run, a "memory dump" will often reveal the operations which occurred during the run. A memory dump routine lists octal printouts of the contents of those memory locations containing the program. The examination of indices, temporary storage, modified instructions, etc., usually reveals the portions of the program which were improperly executed. This aids in locating the improper modif'ications of the program and recovering partial results. A "changed word post-mortem" routine is a selective memory dump in which only those words which have been changed in the course of running a program are printed. A changed word post-mortem routine requires that the original program ~ loaded be stor€~d in the memory. After the program is run, a word-by-word comp~rison is made of the original program and the executed program. The advantages of a chanued word post-mortem routine-over a memory dump routine are that it operates faster, and there is less print-out to be examined. The memory dump, by vir1.ue of printing all the program, gives evidence of misloading or punching errors which may not be detected by a PX 40 30 CODING FOR THE COMPUTER changed word post-mortem. The use of breakpoints in debugging a program can be facilitated by any one of several "breakpoint routines". The simplest of these merely replaees selected instructions with manual stops and stores separately the instructions and the jumps back into the program. Upon reaching one of these stops in the program, the programmer may examine the contents of certain locations which contain partial results, or manually step through the next part of the program. A more elaborate breakpoint routine may provide for automatic print-out of the contents of certain registers at a breakpoint. Usually these print-outs are either in octal or decimal notation. It is also possibl~ to invoke at a breakpoint a trace routine which prints the results of each of the neoct few instructions. A great saving in time is effected by using these sampling and tracing routines at a breakpoint rather than manually examining the results at that point. The debugging service routines which have been described are of two types, "static H and "dynamic". The static type is employed after a program has been run and has stopped. The memory jump and address sort routines are examples of static routines. The dynamic routines operate in conjunction with the program as it is run. These may be "executive" routines which execute interpretively the program instructions and provide printouts of the results, i.e., trace routines; or they may be routines to which control is transferred at specific breakpoints, i.e., sampling routines. The static debugging routines usually require less computer time for their operation than the dynamic type. Therefore, in practice they are used more often although more information can be obtained from the dynamic type. (5) ERROR CORRECTION. - It may be possible during the debugging process to correct a routine manually by making simple alterations in the contents of certain memory locations. After these corrections have been made a new input paper tape or punched card is usually needed for reloading the corrected version of the routine. To obtain the corrected version, which is in the memory of the computer, a "punch storage for reload" or "bioctal dump" service routine may be used. This produces a paper tape or deck of punched cards containing the program coded in octal with appropriate insert and check addresses. In order to conserve computer time while making a number of manual corrections from the Supervisory Control Panel, the following method is suggested: Depress MASTER CLEAR button Select MANUAL STEP OPERATION Set MPD to 3 Set MCT to 75 (Repeat instruction) PX 40 31 CODING FOR THE COMPUTER Set UAK to 70000 (set j to 7) Set VAK to 00000 Set X to 11 10000 v, where v is the first address to be written into. Depress START button Depress STEP button Set in Q Register the word to be wri tten } Repeat Manually Depress STEP button Clear Q Register It should be noted that a j of 7 is being used which sets up an unterminated repeat sequence with both the u and v addresses of the repeated instruction being advanced upon each execution. Since this is the case it becomes comparatively simple to read back into Q for checking purposes the words just written. This procedure is Clear UAK Set UAK to u where u is the first address which was written into. Clear VAK Set VAK to 10000 Depress START button '} Repeat Manually Depress STEP button , If the data that is to be written or to be read is not in consecutive memory locations u the following steps must be added at the end of both of the above repeated steps. Clear VAK (UAK if reading) Set VAK (UAK if reading) to the address to be written into or read from. The process of program debugging has been described in terms of the programmer himself operating the computer. Manual debugging clearly requires a thorough knowledge of the program. However, the service routines may be applied by an operator with perhaps instructions from the programmer. The extent to which programmers will operate the computer for program debugging will vary from one installation to the next. PX 40 32 CODING FOR THE COMPUTER hD OPERATING PROCEDURE. - The service routines which have been described as aids in debugging should be available for use whenever trouble arises. Since the need for these routines cannot always be anticipated, it is desirable that they be at all times in the computer memory. Many installations have reserved areas on the magnetic drum and/or magnetic tape for permanent storage of the service library. Except when necessary, programs are not stored in these areas. This practice eliminates the need for frequent reloading of the servIce routines. In addition to the service routines for debugging there are service routines which facilitate operating the computer. Chief among these, in the case of a computer with a Photoelectric Paper Tape Reader, is the program for reading information from paper tape. Such a program may be coded to accept information punched in any form whatsoever. In particular, the program might be designed to load ~ioctal tapes with the 7th level control configurations described in the section Input and Output Systems. Routine for Loading Bioctal Tapes with ~ Paper Tape Reader 00000 45 00000 00006 Jump to start 00001 45 30000 00003 Optional jump to bypass stop 00002 17 00005 00002 Stop reader 00003 11 00035 40000 Enter data 00004 21 00003 00037 Advance address 00005 45 30000 00007 Optional jump to bypass start 00006 17 00006 00006 Start reader 00007 76 00000 Q 00010 31 00035 00006 00011 52 00027 00035 00012 31 00036 00001 00013 52 00030 Q 00014 51 00030 00036 00015 43 00032 00001 Test for enter data 00016 43 00031 00021 Test for insert address 00017 43 00033 00023 Test for check address 00020 45 00000 00007 PX 40 33 Read to Q Isolate data levels Isolate seventh level CODING FOR THE COMPUTER Insert address 00021 16 00035 00003 00022 45 00000 00007 00023 11 00003 A 00024 36 00034 A 00025 43 00035 00007 00026 57 77777 7777'7 00027 00 00000 00077 Data levels mask 00030 00 00000 17700 Seventh level mask 00031 00 00000 11100 Insert address code 00032 00 00000 10100 Enter data code 00033 00 00000 10500 Check address code 00034 II 00035 00000 Constant for check address Check address 00035 Word assembly 00036 Instruction code assembly 00037 00 00000 00001 Constant for advance address If the program to be loaded is short enough to allow the storage of a copy, it is helpful to have an "image" of the program stored on the magnetic drum (MD). Usually the image on MD contains the two extra instructions RP TP jn MD w RAS which cause the program to be transferred to RAS at the start of the computationso Thus, whenever it is necessary to restart the program, the unaltered version of the program may be transferred from MD without reloading the computer from paper tape or cards. This drum image is also available for use by service routines such as a "changed word post-mortem" routine. A paper tape loading routine may be used which automatically provides such a drum image of the program. Of greater importance, such a loading routine permits loading anywhere in HAS; the previously listed loading routine does not allow RAS addresses 00000 through 00037 to be loaded. Provided that the loading routine contains an "end of tape" detection, the loading routine may be supplemented to operate under the following conditions: PX 40 34 CODING FOR THE COMPUTER (a) The loading routine is stored on the magnetic drum, (b) The loading routine proper is prefixed with instructions which, (1) store the current contents of RAS as a drum image, and (2) "bootstrap" the loading routine proper into RAS for operation. (c) All data being loaded into RAS under control of the loadinlg routine is in fact loaded in the drum image. (d) Upon detecting "end of tape", control is transferred to suffixed instructions (on the drum) which transfer the drum image to HAS and stop the computer. The coding for such a bootstrap operation follows. LO 11 00000 70000 Ll 75 37777 L3 L2 11 00001 70001 L3 75 3 00000 L4 11 L5 00000 L5 45 00000 Lx n store Fl ) store (RAS) in drum image 70000 - 77777 } transfer loading routine proper to RAS for operation entrance to loading routine in HAS L6 loading routine proper Ln+4 Ln+5 75 37777 Ln+7 Ln+6 11 70001 00001 Ln+7 11 70000 00000 Ln+lO 56 00000 LO transfer of drum image to RAS I stop; re-entry to loading routine. It is desirable that a bootstrap procedure similar to this be used with most service routines so that operation of the service routine does not destroy the status quo of RAS. Another practice which many consider helpful is to "erase" the computer memory before loading a program for debugging. This means that erroneous jumps to an address not used by the program result immediately in an MeT fault. Also program sections separated by erased portions of RAS are easily recognized in a memory dump. This erasing, or writing of zeros in every location, may be PX 40 35 GODING FOR THE COMPUTER effected by a repeated Transmit Positive instruction from Q with (Q) = O. This may b~ set up manually, as previously explained, or included in the service library. Frequently service librarys include routines to simplify manually reading informatIon out of storage or writing information into storage. If these routines print out the word read or entered, a written record is provided of all corrections made in the course of running a program. When a library of subroutines is kept on magnetic tape, the service library usually includes a routine to extract the subroutines from file. Input translation routines may also be in the service library. It is important that a programmer be thoroughly familiar with any service routines in use at his installation. There are restrictions to the use of many of these routines of which he must be aware. For instance, the ffRoutine for Loading Bioctal Tapes with a Paper Tape Reader" cited previously does not permit lciading in addresses 00000-00037. Before coding any routine, a progrannner should acquaint himself with the operating conventions of his installation. He should know such particulars as the following: 3. (a) The service routines available and the facilities and restrictions of each; (b) The input translation routines in existence, (c) The procedures necessary in order to use library subroutines: their assembly, their reference to a constant pool, a temporary storage pool, an alarm print, etc., and (d) The areas, if any, of the computer memory which are reserved for special purposes. NUMBER NOTATION. a. INT:RODUCTION. - Because thE theory of operation of the computer is based on binary logic, the coder sh.ould become thoroughly familiar with one's complement binary arithmetic. The following list of publications is recommended as references to suppl€,ment the discussion of binary arithmetic presented in the section General Description and Appendix A of this volume. (1) Stifler, W. W. Jr., (ed), High Speed Computing Devices by the staff of Engineering Research Associates, pp. 74-99, (McGraw-Hi 11, New York, 1950). (2) Richards, R. K., Arithmetic Operations in Digital Computers, pp. 1-22, (D. Van No~;trand Co., Inc., New York, 1955), (3) Uspensky, J. V., Elen~ntary PX 40 36 Number Theory, (McGraW-Hill, 1939). CODING FOR THE COMPUTER As stated previously, for conveni~nce octal, instead of binary notation, is used to describe computer words and addresses. It should be remembered, however, that the logic of computer operation is based on the binary system. b. RADIX CONVERSION. - In most problems the data for a program is .presented in some form other than binary. In particular, data is frequently decimal. In Appendix A procedures for converting numbers from one radix (base) to another are described. It is usually desired that the computer perform the necessary radix conversions of input and output data. If, for example, the computer were used for a problem involving large amounts of decimal data, an efficient method for converting from decimal to binary would be necessary. A "scalar product routine", such as that which follows, could be used for this conversion provided it is known that all decimal data are integers. Let N be the desired binary number; then N = aO + 10al + 10 2 a2 + ••• + 10n an • To form this scalar product, the individual products of the binary-coded decimal digits of the decimal number and their corresponding powers of ten, binary-coded, are ~ccumulated. Routine to Convert Decimal Integers to Binary Integers. el RS A A e2 RP 3,n+l e4 e3 MA Clear A to zero Form N Next instruction e4 ul 1 u2 12 10' Powers of ten coded in binary. un+l vI v2 Binary - coded decimal digits vn+l PX 40 37 CODING FOil THE COMPUTER The result N (in binary) appears :in the Accumulator. The reverse operation, conversion from binary to decimal, can be accomplished with a repeated division. Assuming that the positive integral number N to be converted to decimal is contained in the Accumulator, the steps are: fl RP 3,n+1 f3 f2 DV ul vI Form binary - coded decimal digits Next instruction f3 ul Powers of ten coded in binary un un+l 12 10' 1 vI v2 Binary - coded decimal digits vn+l al The Divide instruction (DVuv) causes t:le number in the 72-bit Accumulator to be divided by the number at address u. The quotient is deposited at address v, and a posi tive remainder is left in t:le Accumulator. In the above example, descending powers of ten are brought in as successive divisors of the diminishing remainder, then the series of quotients are the binary-coded digits of the decimal representation of the number initially contained in the Accumulator, These quotients are depositied at a series of consecutive addresses vI, v2' ... vn+l· To illustrate binary to decimal integer conversion, consider the following. Convert n binary words from any n consecutive memory locations to decimal, and print these decimal integers on the typewriter with appropriate sign. This subroutine assumes that the Q reqister, upon entry into the subroutine, contains a code word which specifies the number n and the address of the first binary number; i.e .• (Q) = 00 xxxxx ----- where ----- specifies the number nand xxxxx specifies the address of the first datum. :?x 40 38 CODING FOR THE COMPUTER YO MJ o 30000 YI PR o b 6 Shift typewriter to lower case Y2 TU Q Y7 Set in initial location of data Y3 TV Q b 2 Set in counter n Y4 IJ b2 Y6 Test n: Y5 MJ o Y0 Exit - completion of routine Y6 PR o b 1 Perform carriage return Y7 TP x·1 A Place ith number to be printed in A YIO SJ Yll Y14 Test sign of number YII PR o b 3 Print negative sign Y12 TM A A Put absolute value of number in A Y13 MJ o y15 Skip next instruction Y14 PR o b 4 Print plus sign Y15 PR o b 5 Print space Yl6 RP 3,13 Y20 Y17 DV b7 Y22 Y20 RP 2,13 Y22 Y21 RA Y22 b 0 Y22 o Y23 o Y24 o Y25 o Y26 o Y27 o Y30 o Y31 Y33 o o o Y34 o Y32 Exit line of subroutine } if n=O, no numbers are pri.nted Form binary-ooded decimal digits Form print instructions Print 11 decimal digits for each number. (Initially the binary-coded decimal digits are stored here until they are replaced by the appropriate print instructions.) PX 40 39 CODING FOR THE COMPUTER CODING FOR THE COMPUTER Attention is called to the four instructions (YI7), (Y20), (Y21) and (Y22). The first two of these instructions form by repeated divisions the binary-· coded decimal digits of each number to be printed. The second pair of instructions add to each of these binary-coded decimal digits a dummy print instruction which addresses in its v address portion the starting address of a table of typewriter codes for the digits 0 through 9. For example, suppose that the first binary-coded decimal digit is a five. This is stored at Y22 as the result of the first division. ·Then, as a result of the Replace Add instruction atY21, the content of Y22 could be replaced by PR 0 dS. Thus, when this instruction is executed by the computer, the digit "S" would be printed by the typewriter. c. SCALING. - It should be emphasized that the above routines are for binary/decimal conversion of integers. Words in the Univac Scientific are considered to be integers in the sense that the computer has been designed so that for ~ll arithmetic operations the binary point is thought to be to the right of the right-most bit. This does not mean, however, that only computations with integral numbers can be performed in the computer. Whenever a problem involves a quantity s which either (a) exceeds the range of integers which may be represented in a 36 bi t wor~ (1-2 35 S s S 23 s -1), or (b) has a fractional part, that quantity s m~y be repr6sented as s = SI·2s2, where sl is an integer within the range of a computer word. The quantity 2 s 2 is called a "scale factor", sl is called the "mantissa" of the number s, and s2 is called the tlcharacteristic" ~f s. A positive characteristic is used to represent integers outside the range (1-2 3S , 23S -1); a ntgative characteristic is used to express numbers with fractional parts. Thus, in a computer operating upon integers, the machine representation of a number is the actual value of the number multiplied ("scaled") by some constant 21 •. It must be remembered that when the machine executes an arithmetic operation involving scaled numbers, the scaling ma change. Suppose sm and tm are the machine representations, each scaled 2 0, of se and tee The result rm of a Multiply instruction MP {sm} {tm} is then the machine representation of re = se • te scaled 240 : 2 t m = t e • 220 It may then be necessary to "scale down" rm so that its machine representation does not exceed the capacity of a 36 bit word. Thus the choice of scaling for a number depends not only on the number of fractional bits to be represented but also on the machine restriction of 36 bits per word. In general the coder must consider three things in scaling. (a) All numbers must be scaled so that the "machine representations" of these numbers are integers. (b) The routine should be coded so that the scaling is always known. (c) Frequent rescaling may be necessary in the routine if the values of the numbers are not to exceed the capacity of a computer word. PX 40 41 CODING F'OR THE COMPUTER In many computations involving s~aled numbers, the desire to retain the maximum amount of "precision''', i.e., maximum number of significant bits, create a problem. To solve this problem, the Dumbers that enter into the calculations, as well as the numbers resulting from these calculations, are "normalized". A normalized number is a number which has been scaled up in a 36-bit register so that the left-most stage of the register contains the sign bit of the number with the most siglllificagt bit of the number contained in the next adjacent stage, i.e., the number n is 2 3 > n ~234. The following are examples of no:rmalized numbers: 30 00000 00000 is 00 00000 00003, (+3) normalized, 47 77'777 77777 is 77 7'7777 7'7774, (-3) normalized. Numbers are normalized easily in the [nivac Scientific by using the Scale Factor (SFuv) instruction. This instruction normalizes the number (u)i in AR and stores the number indicating the left shifts necessary to restore the number (u)f to its original state. This sh:Lft count k is stored in the v portion of the register whose address is given by the v of the Scale Factor instruction. In case the u address of the Scale Factor instruction is the Accumulator the relationship between the initial and final contents of the Accumulator is as follows: (A)f = (A)i . 2 s where s is the scale factor. The relationship between sand k is s=-kifOSk'S36 s = '"l2-k if 37 S k ~ 71 If k = 0, (A)i was properly positioned before shifting. If k = 37, (A)i is all ones or zeroes. To illustrate the use of the Scale Factor instruction, consider the problem of normalizing the' product of two numbers Xm and Ym where these numbers are themselves scaled machine copies as follows: Xm = x • 2 r Ym = Y • 25. The routine would be as follows: Cl MP vI v2 form product C2 SF A tl normalize C3 TP A t2 place normalized product in t2 PX 40 42 (A) CODING FOR THE COMPUTER C4 TP tl A place k in A C5 TJ t3 C7 is k < 37? C6 RA v3 t4 add 7210 to (v3) C7 RS v3 tl subtract k from (v3) next instruction ClO tl o k, (zero initially) t2 o normalized product t3 45 constant, 3710 t4 110 constant, 7210 vI xm v2 Ym v3 r + s initially. The product formed by the first instruction is (VI) . (v2) = xm . 'Ym = x . y . 2r+s. The remaining instructions form the product (t2) = x · y · 2(V3)f r + s - k if k < 37' r + s + 72-k if k~37. An overall relationship would be expressed as follows: X' Y = (v 1 ) . (v2) . 2 - ( v3 ) i = (t 2 ) . 2- ( v3 )f • It should be noted that the 21 leftmost stages of tl must initially contain zero since the Scale Factor instruction writes only into the lower order 15 stages of tl. If a routine is coded such that only the mantissas of scaled numbers are stored in the computer and operated upon by the program, the routine is said to be coded in fixed point. In this case the programmer must himself keep an account of the characteristics associated with each mantissa at every step of the computation. The programmer must also be aware of the size of the mantissas and scale them down when there is danger of exceeding the capacity of PX 40 43 CODING FOR THE COMPUTER a computer word. On the other hand, if the mantissas are carried in normalized form, the result of every arithmetic operation must be normalized. The programmer must be exceedingly careful in the record which he keeps of the characteristics. A mistake may result in his having to rescale the problem from that point on. This accounting is generally listed on the coding sheets. The characteristic is recorded beside each instruction which changes the scaling of a mantissa. Great care must also be exercised in judging the magnitude of the mantissas. If unanticipated overflow occurs, the problem may have to be rescaled. It is evident that the fixed point coding of a problem can be complex; consequently it is sometimes preferable to store in the computer the characteristics as well as the mantissas and use subroutines which, before each arithmetic operation, effect the scaling of the mantissas on the basis of their associated characteristics. The result of each arithmetic operation is then stored as a mantissa with associated characteristic. This manner of coding is known as floati,ng p'oint coding. Various schemes may be used for the storage of the mantissa and characteristic of a floating point number. If the mantissa and characteristic are stored at separate locations, the floating point number is said to be "unpacked"; if the mantissa and characteristic are stored together at one location, the number is said to be in "packed" form. A common floating point packed form for the Univac Scientific allows 28 bits for the mantissa and eight bits for the characteristic. Generally the mantissa is normalized although this is not necessary. Should one wish to retain an indication of the number of significant bits in the results, the mantissas may be carried unnormalized. As an example of one floating point packed form which has been used on the Univac Scientific, consider the following representation of the number s by the components sl and s2 of 28 bits and eight bits, respectively. If s f. 0 1> I Sll?! If s = 0 sl = s2 + 128 = 0 1/2, 256> s2 + 128?! 0 The number s is represented in the computer by sl • 235 and s2 + 128, the machine forms of its mantissa and characteristic. Note that the mantissa is normalized. When the characteristic is represented in this way, as s2 + 128, it is said to be a "biased" characteristic. (The characteristic might also be represented by eight bits as a "signed" characteristic, 128 ~ s2 2: -128.) The packed representation of the number s is positioned at a location as follows: 8 bits 28 bits [norma~-iz-e-d-I biased characteristic mantIssa ------------------~ The choice of a representation for floating point numbers is influenced by many considerations which may vary from installation to installation. Elaborate systems of subroutines have been developed to perform arithmetic operations with floating point numbers. The price which the programmer pays PX 40 44 CODING FOR THE COMPUTER for relief from the complexities of fixed point scaling is increased execution time for the arithmetic operations. For instance, with a floating point system which uses a packed representation, the execution times for the operations of addition, multiplication, and division may be on the order of 60 times that of the corresponding machine operations. Floating point operations with unpacked operands are considerably faster. Here the multiples of the increase in time over the computer operations are approximately 20, 3, and 3 for addition, multiplication, and division, respectively. In general, floating point coding is used to reduce the elapsed time between receipt of a problem and the production of answers. Floating point notation is particularly useful in problems in which the numbers involved vary widely and where only crude predictions can be made of the amount of variation. d. MULTIPLE PRECISION. - In addition to scaling in order to modify the range of numbers which may be represented in the computer, it is possible to extend the range by representing numbers in a double precision, triple pre~ cision or, in general, n-precision form. In this case two, three, or n computer words are used for the storage of a single number. For example, two locations are reserved in storage to represent a double precision number. The representation may be (AL) and(A R) when the number is in the Accumulator. The addition of two numbers so represented is easy and fast using the Split instructions. In the case of multiplication or division, an, end correction must be provided for each word whose sign bit is "1". Another method is to select a positive constant k and represent a double precision number N as N=q· k+r with a side condition on r to require unicity. Both q and r are single precision numbers. For example, let k = 234 with O~ r< 234. With this representation addition is slower but multiplication and division are markedly easier. Similar schemes may be used for n-preclslon computing. Again, a number of considerations enter in the choice of a representation of multiple precision numbers. e. CHOICE OF NUMBER NOTATION. - In choosing the number representation to be used in solving a given problem on the computer, the accuracy which is required is first considered. If a large number of significant bits is demanded, a multiple precision representation may be required. Secondly, the choice between a fixed point and a floating point notation is made ~n the basis of running time on the computer versus programming time. Floating point routines are frequently used to simplify the coding of "one shot" programs (the program is to be used once) where the emphasis is on elapsed time from problem formulation to solution. Generally if a program is to be run repeatedly, it is coded in fixed point in order to minimize the running time. 4. NOTES ON THE INSTRUCTIONS IN THE UNIVAC SCIENTIFIC REPERTOIRE. In the following paragraphs, pecularities, tricks, and pitfalls which con~ front a programmer are discussed. In almost all cases the unusual circumstances which must be noted are due to particular features of the computer logic. Certain of these features create problems which are not immediately obvious. PX 40 45 COD ING FOR THE COMPUTER a. OPERATIONS INVOLVING THE ACCUMULATOR. (1) NEGATIVE ZERO. - Sinc€ the basic arithmetic operation of the Univac Scientific is subtraction and the "l's" complement number system is used, negative zero (72 "ones" in the Accumulator) cannot be generated by any series of arithmetilc operations. Consider the operations performed by the instructions below; CI C2 RA el RS A el e2 e3 7'7 77777 77776 00 00000 00001 77 77777 77777 form sum form difference e2 e3 -1 in decimal +1 in decimal -0 in decimal. Using, for exemplary purposes, single length registers of four bits and an Accumulator of eight bits, the operations can be shown as follows: Contents of Accumulator 0000 0000 0000 0001 1111 1111 clear A "add D(el)" by subtracting D(el)' _ _ _.-,;1 end around borrow 1111 1111 0000 0000 1111 0000 "add D(e2)" by subtractin~} D(e2)' result of executing (Cl) transmit (AR) to X, then clear (A) "add D(X)" by subtracting D(X)' 1110 1110 0000 0000 1111 0001 1 0000 0000 1111 1111 0000 0001 ]l 0000 0000 Operations of RA at Cl Operations of RS at C2. end around borrow subtract D (e:~) end around borrow result after executing (C2) Continuing the above example, negative zero may be formed in the Accumulator using one of the "logical" instructions: C3 S ..C') e3 C4 CC A o e3 form - (2 36 -1) in A forn negative zero in A i. e. , 0000 0000 0000 1111 1111 0001 1. 1111 0000 result after executing (C2) form (A) - S(e3) end around borrow result of executing (C3) PX 40 46 Operations of SS at C3 CODING FOR THE COMPUTER 1111 1111 1111 1111 0000 0000 1111 1111 transmit (AR) to X, then clear (AR) form logical sum of (X) and (AR) form logical sum of (AR) and (e3) result after executing (C4) } Operations of CC at C4 • Negative zero can be generated in the Accumulator by other series of instructions eoncluded by the Controlled Complement instruction (CCuv). Note that in the above example the content of e3 (nQrmally considered a negative zero, mod 2 36 -1) was considered as 2 36 _1 (mod 21~-1). Such is the case when any of the "split" or "logical" instructions are used. If the above routine is continued with the execution of the following instruction, note that the content of the Accumulator (all "ones") must be considered as zero. C5 LA A k shift (A) left k places i. e. , 1111 1111 result after executing (C4) 1111 1111 0000 0000 0000 do not clear (A), but clear (X) It'and D(X)" to A by subtracting D(X)' from A } Operations of (A) is now all zeros LA at C5 shift (A) left k places result after executing (C5) 1111 1111 0000 0000 0000 Thus, if the content of the Accumulator is all «one's", its content must be considered to be all zeros except in the following cases. If either an Equality Jump or Threshold Jump instruction is executed with the content of the Accumulator all one's, the result of testing (A) is as follows. If (u) is 236 _1 (negative zero), EJuv shows an equality, takes (v) as NI TJuv results in a positive (A), continues present sequence If (u) is all zeros (positive zero), EJuv does not show an equality, continues sequence TJuv results in a negative (A), takes (v) as NI In none of these cases will the content of A be restored to negative zero. The Accumulator will be set to all zeros after the execution of any of these instructions. If a Zero Jump (ZJuv) is executed when the content of the Accumulator is all one's, (A) tests as not being equal to zero, but as the result of executing the ZJ the Accumulator is set to all zeros. PX 40 47 CODING FOR THE COMPUTER (2) SINGLE OR DOUBLE LENGTH EXTENSIONS. - A common error involving transmissions to the Accumulator and a subsequent testing of its contents is illustrated by the following example: Cl C2 a SP EJ el e2 40 40 00000 00000 00000 00000 ent.er variable in A convare (A) and (e2) C3 el e2 variable (here shown as a constant) a c:onstant. After (Cl) is executed, (A) is 00 00000 00000 40 00000 00000. The EJ at C2 tests to determine if (A) and D (e2) are equal which is not true in this case sin,ce D(e2) = 77 77777 77777 40 00000 00000. A correct method of testing for the equality of these two values, (el) and (e2), 'could be coded as follows: Cl C2 TP EJ el e2 a C3 By using the Transmit Positive instruction, the double length extension of (el) is formed in the Accumulator. (3) COMMON PITFALLS. _. Many instructions make use of the Accumulator without explicitly referencing it as one of the execution addresses. It should be remembered that the initial contents of the Accumulator may be destroyed when executing certain of these instructions which use the Accumulator. In certain cases this may lead to erroneous results when the Accumulator is used as the u or v address of the instruction. A study of the section Sequential Listing of Instructions will indicate the peculiarities arising from such situations. The volume entitled Content of Registers presents in tabular form the results of such peculiarities. Similar peculiarities result frorr addressing the Q Register as u or v of an instruction. b. SHIFT INSTRUCTIONS. - All shifts performed are left end-around shifts. When a shift is performed the left-mast portion of the number shifted in the Accumulator (or Q register) becomes the right-most portion of the number. It should be remembered that a left shift of 19k" places is equivalent to a modular multiplication by 2k. Depending upon the significance attached to the sign-bit, the modular value of the shifted number will be in the range of the signed numbtrs possible to represent in the register or in the range of the system of binary numbers directly represented in the register. If a significant "1" (or "0" if the number has a negative representation) is shifted into PX 40 48 CODING FOR THE COMPUTER the sign-bit position of the register, the "sign" of the shifted number must be regarded as opposite in sign to the initial number unl~ss the shifted number is referenced for later use by one of the Split instructions. The mathematical statement expressing a left shift of (u) by k is (u)-2 k - [(u).2 k- n1] 2m + (u)·2 k- m where the brackets mean the greatest integer contained in the register and m = 72 for the Accumulator where k ~ 72 m = 36 for the QRegister where k ~ 36. An equivalen~ right shift can be obtained from a left shift by observing that a tight shift of k places = m-k left shifts. When the v address portions of the Left Shift in A, LAuk, and Left Shift in Q, LQuk, instructions contain ones in o~her than positions v6 ••• vO, transmission back to the u address of the shifted quantity contained in A or Q can be stopped~ The peculiarities resulting from such a condition are discussed in the section Sequential Listing of Instructions_ This property of these shift instructions is useful whenever it is desired to le~ve the original content of u undisturbed. For example, consider the instruction LA 01000 32002. The operations resulting from this instruction are: Clear A o (01000)~ A (A) is shifted two places to the left The shifted result is not transmitted to 01000 but left in A. An operation possible for some u addressed HAS locations is: Transmit (positive) to A and Q the content of u after (u) has been shifted k places to the left; e.g., LQ 01100 32005 or also PX 40 49 LA 00100 31005 CODING FOll THE COMPUTER The following operations result from these instructions: (OOlOO)~ (Q) or (A) (00100) or Q -~ A is shifted 5 places to the left A short summary showing the results of coding the 54uk and 55uk instructions for transmissions to A or Q of u.(= HAS) shifted is given below. u address v address Shifted (HAS) transmitted 00000-00777 01000-01777 02000-07777 30--·· 30--·· 30---· (Fault, illegal address) to Q to A 00000-01777 02000-07777 31---· 31---· to Q to A 00000-07777 32---· to A If the u address is an MD addres~; when using this property of the Shift instructions (A) or (Q) is returned to the drum but not to the original address; e.g., 41234 LA 32011 resulting in Clear A (A) js shifted 9 places to the left c. tfROUND OFF" AND "SCALE DOWN" OPERATIONS. - During the course of many arithmetic operations it becomes necessary to change the scaling of a number. A simple method of scaling a number clown would be to perform a left shift of k places equivalent to the desired rjght shift. For example, the instructions below multiply two numbers, (u) and IqmJ~ 234 where qm = or 1 > Iq I~ (Q) 1/2. In the above example it was tacitly assumed that the magnitude of b was greater than the magnitude of c. If this were not the case, the result of executing (f2) would cause a divide overflow since 2 36 I 35 > qml~ 2 • f.. REPEAT INSTRUCTION. - Because of the complexity of the Repeat instruction, the details of the repeat operation are restated below. (1) FORMAT OF REPEAT INSTRUCTION. - The Repeat instruction has the form RPjnw. The normal values of j are 0 through 3 and determine the advance of the execution addresses of the repeated instruction as follows. if j=O, neither the u nor v address portion of the repeated instruction is advanced. if j=l, the v address of the repeated instruction is advanced by one after each execution. if j=2, the u address of the repeated instruction is advanced by one after each execution. if j=3, both the u and v addresses of the repeated instruc- tion are advanced by one after each execution. The advance of the addresses occurs only in the Program Control Register (PCR) where the repeated instruction is held during the repeat operations. Therefore, the original form of the repeated instruction in storage is unaltered. The value n determines the number of times the repeated instruction is to be executed. This value can vary through the range 0 through 4095 (decimal). If n is zero, the repeat operations are terminated without execution of the "repeated" instruction. PX 40 53 CODING FOR THE COMPUTER The "repeat termination address", w, replaces the v address portion of fixed address FI (00000 or 40001) during the execution of the RP instruction. (Normally, Fl contains an MJjv instruction with a j of 0.) This feature provides the means of fljumping out" of the repeated operations after n executions of the repeated instruction. (2) REPEATED NON-JUMP INSTHUCTION. - The repeated instruction is held in the Program Control Registers (PCR) and is executed n times. After the nth execution, a jump to Fl occurs. Because this instruction is usually an MJjv with a j of zero and a v of w, it produces a jump to the address originally specified by w of the RP instruction. (3) REPEATED JUMP INSTRUCTION. - If the repeated instruction is a Threshold Jump (TJ) or Equality Jump (EJ), the jump to w may not occur. The repeated instruction is held in PCR and is executed not more than n times. If n executions occur with no jump condition being fulfilled, the normal termination, consisting of a jump to FI , followed by a jump to w, occurs. However, if any execution of the repeated instruction fulfills a jump condition, the value j, n-r is stored in the v portion of Q(where j = j of RP instruction; and n-r = n of RP instruction minus r, the number of executions performed), and a jump is made to the address specified by v of the TJ or EJ instruction. Similar circumstances are created by the Index Jump and Manually Selective Jump instructions with the exception that no indication of the number of executions is given by a storage in Q. Other instructions (Interpret, Return Jump, Q Jump, Sign Jump, Zero Jump, Manually Selective Stop, and Prograrr: Stop) produce a jump or stop on the first execution, and thus behave as if no RP instruction preceded them. (4) EXAMPLES USING THE REPEAT INSTRUCTION. - In many problems which are programmed for computer execution, it is important that the most efficient use of operating time and storage capacity be made. The Repeat instruction, an unusual logical feature of the Univac Scientifi~ makes it possible to realize a sizeable reduction in the time spent referring to storage for instructions and in the storage space devoted to holding instructions. By using the RP instruction, long sequences of operations can be governed by only two or three instructional references to storage. This is evidenced by the following examples. PX 40 54 CODING FOR THE COMPUTER Consider the accumulation of products, such as, S = alb l + a2 b2 + •.. + anb n = i~ aibi The Multiply Add instruction (MAuv) c~uses the product of the numbers located in storage with the addresses u and v to be added to the number already in the Accumulator, leaving the total result in the 72-bit Accumulator. If the MA instruction is repeated as shown below, the scalar product of two n-vectors is generated. dl RS A A d2 RP 3,n d4 d3 MA ul vI d4 ul Clear Accumulator to zero } Form sum of products S = (ul) (vI) + (u2) (v2) + ... + (un)(vn) Next instruction al Vector a un an vI bl Vector b vn bn Note the instruction at dl which clears the Accumulator to insure that its initial content is zero. Care should be taken that the contents of FI are not inadvertently altered during a block transfer of n words to Rapid Access Storage. This pitfall is illustrated by the following example: RP TP 30400 50000 w 07600 The sequence of events which occurs during the execution of these instructions is as follows: (a) Replace the lower order 15 bits of (FI) with the address w (b) Proceed to transmit the contents of PX 40 55 CODING rOR THE COMPUTER 50000 to 07600 50001 to 07601 50177 to 0777'7 50200 to 00000 50377 to 0017'7 (c) Extract the next instruction to be executed from address Fl. Note that the contents of the addre:is 00000, (F l ), have been replaced by the contents of address 50200 during the repeated transmissive operations. Because of this, the desired jump to wo no longer exists at this address. The following example illustrates further the care that must be exercised when using the Repeat instruction. 00100 00101 HP TP 30200 45000 00303 00200 The operations performed by thi:, pair of instructions are: (a) (b) Replace the lower order 15 bits of (Fl) with the address 00303 Proceed to transm:i t the contents of 45000 to 00200 45001 to 00201 45102 to 00302 45103 to 00303 45177 to 00377 (c) (5) The order 15 bits of address w of the sequence extract Extract the next instruction to be executed from address Fl. Note that in this example the original contents of 00303 have been replaced by the contents of address 45103. Therefore, the next instruction to be executed after the jump to 00303 is the instruction whic:h was originally stored at 45103. initial operations of the RP instruction replace the lowest (Fl), the contents of the address 00000 (or 40001), with the RPjnw instruction. The terminating operations of the repeat the next instruction to be executed from the address Fl PX 40 56 CODING FOR THE COMPUTER (unless the repeated instruction called for a jump to v). The instruction contained in Fl is normally a jump instruction (usually an MJjv) referencing its vaddress~ the address w written in by the RP. However, if the instruction contained in Fl is not a jump instruction, or if it is a conditional jump (IJ, MJ, TJ or EJ) where the jump condition is not" fulfilled, the next instruction to be executed after the execution of the instruction at Fl is taken from one of the following addresses: If If If If j j j j was was was was 0, NI I, NI 2, NI 3, NI from from from from address address address address 40000 70000 60000 50000 • These are the addresses that are left in the Program Address Counter (PAK) after the gp instruction, because of the use of PAK as the counter for the number of executions to be performed on the repeated instruction. (7) PRINT AND PUNCH INSTRUCTION, PR-v AND PUjv. - Because of the operands of the Print and Punch instructions requiring only a six bit storage space, these instructions can be coded so that a savings of storage space is effected. The v address of PUjv or PR-v may reference any instruction whose v address references the Accumulator or Q Register, or whose v address portion is not used in the instruction, e.g., AMjn-, BMjn-, or PS--. For example, note the following instructions: 01001 PR 00000 01050 01050 MP 00010 31052 Print the number ttl" Note that only one character is printed or punched with each output reference. In order to print or punch out in octal a 36 bit word, twelve Print or Punch instructions would be needed. To illustrate the use of these instructions, consider the following routine which prints out on the typewriter one word in octal. Cl PR 0 elO Print carriage return C2 LQ dl 3 Shift word to be printed 3 places to the left C3 QT d2 A Mask out 3 bits or one octal digit. C4 AT d3 C5 Compute print instruction which is NI. C5 PR 0 ei Print one octal digit. C6 IJ d4 C2 Test for end, if not finished go to C2 C7 PS End. PX .40 57 CODING FOR THE COMPUTER d1 xx xxxxx xxxxx Number to be printed d2 00 00000 00007 Mask d3 PR a eO d4 00 00000 00013 Counter, n-1 eO 00 00000 00037 (0) e1 00 00000 00052 (1 ) e2 00 00000 00074 (2) e3 00 00000 00070 (3) e4 00 00000 00064 (4 ) e5 00 00000 00062 (5) e6 00 00000 00066 (6) e7 00 00000 00072 (7) e10 00 00000 00045 PX 40 58 Dummy command = 1110 F1exowriter codes for the digits a through 7. F1exowriter code for carriage return. APPENDIX A NUMBER SYSTEMS PX 41 NUMBER SYSTEMS 1. GENERAL Any positive integer N can be expressed in the form N = Anrn + An_lr n- l + ... + Alrl + AOrO where 0 ~ Ai < rand r is any integer greater than 1. the base or radix of the number system. The integer r is called The only radix values that need to be considered for programming for the UNIVAC SCIENTIFIC are 10, 8 and 2. The number systems with these radices are called decimal, octal, and binary systerns, respectively. An integer N expressed as a number in the usual decimal notation implies that the number is a refinement of a polynomial in powers of 10 with coefficients which satisfy the relation 0 ~ Ai < 10. the polynomial N = 3.102 + 0.10 1 + 8.100 . = 308 implies integer N = 1011 For example, N Accordingly, an in the binary system with OS Ai < 2 may be expressed as the polynomial N = 1.2 3 + 0.2 2 + 1.2 1 + 1.2 0 (= 11 decimal); and an integer N = 126 in the octal system with 05Ai< 8 may be expressed as the polynomial N = 1.82 + 2.8 1 + 6.8 0 (= 86 decimal). Because electronic and magnetic circuits consist primarily of bi-stable elements, the computer uses the binary representation in all internal manipulations of numbers. As will be seen later, there is a very simple relation- ship between the binary and octal representations of a number. Since conver- sion between these two systems is almost immediate and since the octal notation is shorter, programs are encoded with octal notation representing binary numbers. It is desirable for people who prepare programs for the computer to be PX 41 1 NlJ;\1BER SYSTEMS familiar wIth methods of converting numbers from decimal to binary to octal fonn and vice versa. When the base of a number is not apparent from the con- text, it will be specified by a subscript as shown in the following example: 34 10 = 428 =: 1000102 PX 41 NUMBER SYSTEMS 2. CHANGE OF BASE Since the manual conversion of numbers from one system to another involves the arithmetic operations of addition and multiplication, it is necessary to know the sums and products of certain pairs of integers expressed in the octal and binary systems. In doing arithmetic operations by hand, the ability to remember the sums and products of pairs of decimal digits is utilized, although these sums and products are tabulated in decimal addition and multiplication Similar tables presented below are necessary for arithmetic operations tables. with octal and binary digits. OCTAL ADDITION TABLE OCTAL MULTIPLICATION TABLE 0 1 2 3 4 5 6 7 0 0 0 0 0 0 0 0 10 1 0 1 2 3 4 5 6 7 10 11 2 0 2 4 6 10 12 14 16 10 11 12 3 0 3 6 11 14 17 22 25 10 11 12 13 4 0 4 10 14 20 24 30 34 10 11 12 13 14 5 0 5 12 17 24 31 36 43 10 11 12 13 14 15 6 0 6 14 22 30 36 44 52 11 12 13 14 15 16 7 0 7 16 25 34 43 52 61 0 1 2 3 4 5 6 7 0 0 1. 2 3 4 5 6 7 1 1 2 3 4 5 6 7 2 2 3 4 5 6 7 3 3 4 5 6 7 4 4 5 6 7 5 5 6 7 6 6 7 7 7 10 0 The addition table and the multiplication table for binary numbers are shown below BINARY ADD IT ION TABLE 0 0 1 BINARY MULTIPLICATION TABLE 0 1 ~ 1 0 10 1 PX 41 3 1 ~ o 1 NUMBER SYSTEMS a. CONVERSION OF INTEGERS. - The simplest way of changing a binary or octal integer to its decimal equivalent is to expand it to, and evaluate the sum of the terms of, the polynomial expression given on a previous page. conversion from decimal to octal or binary presents more of a problem. methods are given which can be used for these conversions. The Two The first of these is as follows: (1) Given two integers N and Ow the latter being positive, it can be shown that there exist unique integers Q and R such that N OS R< D. = QD + R where This is, of course, true regardless of the choice of base used in expressing N. Hence, if NIO and NS are the decimal and octal expressions for the same integer and if 010 and Da are the decimal and octal expressions for another (positive) integer, we can compare the two equations N10 = QlO· 0 10 Na -- Qa'Da + Ra_ OS Ra< Da + RIO, 0 S RIO < 010 and conclude that QIO = Qa and RIO = Rao This fact is used in the process of converting an integer from base 10 to base a in the following way: The decimal expressions for an integer N expressed as NlO and Na are NIO = dnlO n + dn_llon~l + ... + dllO + dO, OSdi < 10 Na = emam + em-. la m- l + 0 •• + ela + eO, OSei < a Dividing the polynomials by decimal a gives the same remainder in either case, but from the second expression, it is obvious that this remainder is eO while the quotient is ema m- l + e m_.la m- 2 + e2 a + e lo Dividing this quotient by a gives the new quotient ema m- 2 + ... e3 a + e2 and the new remainder el' Continuing division results in the successive remainders eO, el, e2' "', em which are the di~Jits of Na in reverse order. In a numerical case, the successive PX 41 NUMBER SYSTEMS divisions of NIO by decimal 8 yield remainders which are actually the decimal equivalents of the digits eO, el' ... , em. To illustrate this method, the number expressed as 1492 in decimal notation is changed to its octal equivalent as follows: Decimal Expression Octal Equivalent 82 1492 , Remainder 4 4 8 ) 186, Remainder 2 2 8~ Remainder 7 7 8.~ Remainder 2 2 0 Thus 149210 = 2724 8 Conversion of an integer N from base 8 to base 10 can be carried out in a similar fashion by dividing N8 by 128 (= 1010) to yield the octal equivalents of the digits of NIO. The conversion of an integer N from base 10 to base 2 or from base 2 to base 10 can be discussed according to the method outlined above with NIO and N2 represented as follows: NIO = dnlO n + ... + dllO + dO, OSdi <10 N2 = b k2 k + ... + b 12 + bO t 0 S b i < 2 NIO would be divided by 2 to yield the decimal equivalents of the digits of N2, and N2 would be divided by 1010 (= 10 10) to yield the binary equivalents of the digits of NIO. (2) The method that follows has the advantage that it yields the desired digits in normal order, but it has the disadvantage that it requires a knowledge of the values of powers of one base in terms of another. PX 41 5 This method NUMBER SYSTEMS requires the procedure below: Given a number Nr to express as Nb = anb n + an_lb n- l + ..• + alb l + aOb O, the coefficients an •.. ao, .Q:S ai < b, may be found as follows: 1. Determine the highest power n such that b n+l > N r- Then, let N r = Nn . Divide Nn by bn , yielding the quotient an and the remainder Nn--l = an_lb n- l + ... + aOb O• 2. Repeat the divisions of Ni (i = n, n-l, .•. , 0) by b i until the last division yields the quotient aO. 3. A quotient (or coefficient) ai may be zero and must be represented in its proper order in the final result. As an example of this method the number expressed decimally as 137 is changed to its octal equivalent as follows: Nn = anb n + an_1b n-l + r = 10, b = S, 137 9 1 = 2.64 = l·S = 1.1 Nr + aOb ° = Nb =N n = 137. n = 2 (S3> 137) + 9 + 1 a 1 = 1, NO = 1 + 0 aO = 1 The coefficients derived above arE' the digits of NS ; thus NIO = 137 = NS (3) = 211. Although it would be possible to use the above methods in convert- ing an integer from base S to bas€' 2 and vice versa, it is easier to convert by inspection. This can be done because of simple relationship, discussed sub- sequently, between NS and N2, dep€~ndent upon the fact that 23 = S. The equi valent polynomials f01' an integer N expressed as NS and N2 are NS = emS m + em_ISm- l + + e2S2 + elS l + eOSO, OSei
Source Exif Data:File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2002:06:09 17:34:01Z Creator Tool : g4pdf Modify Date : 2009:10:01 08:37:16-07:00 Metadata Date : 2009:10:01 08:37:16-07:00 Producer : Adobe Acrobat 9.13 Paper Capture Plug-in Format : application/pdf Document ID : uuid:a67f9672-7088-40ae-b6fd-4bca3d11611c Instance ID : uuid:f80aa2e2-5ef3-4ef8-8d12-c57f4f504243 Page Mode : UseOutlines Page Count : 311 Creator : g4pdfEXIF Metadata provided by EXIF.tools