Skip to main content

Full text of "royalPrecision :: RPC-4000 :: RPC-4000 Programming Manual"

See other formats


PROGRAMMING MANUAL 

for the 
ROYAL PRECISION 

RPC-4000 

Electronic Computing System 



ROYAL McBEE CORPORATION 
Electronic Data Processing 



PREFACE 

This manual for the RPC-4000 Electronic Computing System contains the 
information necessary for programming and operating the basic RPC-4000 
computer. The manual has been prepared for both experienced program- 
mers and those with no experience. 

Beginning programmers will be particularly interested in the "Intro- 
duction to Computers" (Section 1), "Arithmetic for Programmers" (Sec- 
tion 2), and "Programming Techniques" (Section 5). 

Section 5 contains an extensively detailed sample program. Even pro- 
grammers who have considerable knowledge of data processing will find 
this section valuable. It reveals many aspects of RPC-4000 program- 
ming that are best explained by illustration. 

The expositions on "The Central Computer" (Section 3), "The Instruc- 
tion List" (Section 4) , and the "Manual Controls and Operating Pro- 
cedures" (Section 6) present the essential information on the design 
and use of the RPC-4000. Charts, diagrams, and summaries have been 
extensively employed so that the manual will have continuing value as 
a reference work for the RPC-4000 user . 



CONTENTS 



SECTION 1 - An Introduction to Computers 



Page 



The Automatic Digital Computer 
Computer Design Considerations 
Glossary of Computer Terms 



SECTION 2 - Arithmetic for Programmers 

Number Systems 

The Binary System 

The Hexadecimal System 

Binary Coded Decimal 

Conversion Between Systems 

Scaling 



10 

10 
11 
11 
12 
12 
14 



SECTION 3 - The Central Computer 



The Memory Drum 

Double Access Tracks 

The Recirculating Track 

The Sector Reference Timing Track 

The Working Registers 

The Upper Accumulator 

The Lower Accumulator 

The Command Register 

The Index Register 

The Branch Control 

Programmed Operating Modes 

The Eight Word Lower Accumulator 

The Automatic Repeat Mode 

Instruction Sequencing and Timing 



16 

17 
18 
19 
20 
20 
21 
21 
22 
23 
23 
24 
24 
25 
25 



SECTION 4 - The Instruction List 



27 



SECTION 5 - Programming Techniques 



Program Organization 

Input Messages 

Output Messages 

System Flow Chart 

Table Organization and Structure 

Program Coding 

The ROAR Coding Format 



62 

63 
63 
64 
66 
66 
68 

68 



Page 

Space Reservation 59 

Program Testing 115 



SECTION 6 - Manual Controls and Operating Procedures 117 

The RPC-4010 1 18 

Modes of Computer Operation H8 

Protected Tracks 121 

Additional Comments on Modes 122 

The RPC-4000 Input/Output 122 

The RPC-4430 123 

Selection On and Off Line 123 

Parity Checking 123 

Copy Mode 125 

The RPC-4480 Tape Typewriter 126 

RPC-4010 Console 130 
RPC-4430 Reader/Punch Right 

Control Panel 134 
RPC-4430 Reader/Punch Left Control i'anel 136 

Bootstrap 139 

RPC-4000 Starting Procedure 143 

Bootstrapping Procedure 143 

Manual Entrance to a Program 144 

Errors in Loading Master Tapes 144 

Use of ROAR to Assemble Programs 145 
Use of the RPC-4500 Tape/Typewriter 

System Off -Line 147 



SECTION 7 - Summary Lists and Tables 



149 



Algebraic Expression of the RPC-4000 

Commands ^49 

Definition of Symbols 150 

Description of Command Execution 155 
Charts and Tables 

RPC-4000 Controls 170 

The RPC-4010 (Chart) 170 

The RPC-4430 Right Panel (Chart) 174 

The RPC-4430 Left Panel (Chart) 177 

RPC-4000 Input/Output Selection Codes 

for Instruction PRD 134 

Alphanumeric Codes 135 

Table of Basic EXC Data-track Settings 186 

Modulo-8 Table 186 

Table of Powers of 2 and Powers of 16 187 



List of Illustrations 



Page 



FIGURE 1 
FIGURE 2 
FIGURE 3 
FIGURE 4 
FIGURE 5 
FIGURE 6 
FIGURE 7 
FIGURE 8 
FIGURE 9 
FIGURE 10 
FIGURE 11 
FIGURE 12 
FIGURE 13 
FIGURE 14 
FIGURE 15 
FIGURE 16 
FIGURE 17 
FIGURE 18 
FIGURE 19 
FIGURE 20 



Logical Diagram of Automatic Computer 
RPC-4000 Data Word Format 
RPC-4000 Instruction Word Format 
Hexadecimal Word Format 
RPC-4000 Main Memory Storage 
Double Access Storage Tracks 
The Recirculating Track 
System Flow Chart For Example Problem 
Flow Chart - Example Subroutine R 
Flow Chart - Exai-plc Subroutine T 
Flow Chart - Fxample Subroutine E 
Flow Chart - Example Subroutine Q 
Flow Chart - Example Subroutine H 
Flow Chart - Example Subroutine P 
Flow Chart - Example Subroutine M 
Flow Chart - Example Subroutine S 
Flow Chart - Example Subroutine V 
Flow Chart - Example Subroutine B 
RPC-4010 Control Console 
RPC-4430 Reader/Punch Control Panels 



3 

16 

16 

17 

18 

19 

20 

65 

72 

78 

87 

91 

95 

97 

105 

107 

109 

111 

129 

133 



I 



AN INTRODUCTION I 



TO COMPUTERS 1 

i 



1 



The emergence of the electronic computer as a major tool for Business and 
Industry is not surprising when it is considered that a very large part 
of today's total work effort is devoted to the processing of lengthy 
calculations or vast amounts of statistical data. Much of this computa- 
tion involves wearisome repetition along with the necessity to effective- 
ly utilize a confusing array of interrelated information. It is just 
this sort of job that can be handled best by an intelligently directed 
machine. Not only can the computer perform these tasks many times fast- 
er, but with much less fallibility that can the humap worker. 

Since earliest times, the development of computing aids has followed 
two separate paths, depending upon the means employed to recognize and 
to represent information values. Those devices which operate by the 
measurement of continuous physical variables are known as analog devices 
or Analog Computers. A fuel gauge is a simple analog device in that the 
deflection of a pointer is analogous to the quantity of fuel in a tank. 

The other type of computing aid, and that which directly concerns us, is 
known as a Digital Computer. It is characterized by its representation 
of values, both quantitative and symbolic, by counts of discrete dis- 
continuous physical units. The abacus is a simple digital device in 
which beads are used to represent the counting units. A more complex 
and modern, but still non-automatic digital device is represented by the 
desk calculator. 



THE AUTOMATIC DIGITAL COMPUTER 

The abacus has served man for thousands of years as a simple static 
storage device to hold the progressive results of lengthy calculations. 
The modern desk calculator has, in addition to a similar limited storage 
capacity, the ability to mechanically perform certain basic arithmetic 
operations, such as addition, division, etc. However, both of these 
aids to computation require the constant services of the human operator 
to direct each individual operation. Thus the speed of these non-auto- 
matic devices is limited to the rapidity with which the operator can con- 
trol their actions. In order to function automatically, a computer must 



be self-sequencing; that is, it must have the capability of controlling 
the order in which the steps of a calculation are performed, by reference 
to a series of coded signals which are stored within itself. 

The history of the Automatic Digital Computer goes back to the year 1822, 
when an Englishman by the name of Charles Babbage, with the financial 
backing of the British Government, began work on what he called a full 
size "Difference Engine". This machine was designed for the purpose of 
calculating mathematical tables so as to relieve the human worker of this 
routine function. Ten years later, after an expenditure of 17,000 pounds, 
the project was abandoned. In 1833 he elaborated upon his initial efforts 
to develop the concept of a universal computer which he called an "Analyt- 
ical Engine". It was designed to be fully automatic and externally 
programmed. It incorporated facilities for input/output, arithmetic 
operations, internal storage and automatic program control. Unfortunate- 
ly, the state of the engineering art was insufficiently advanced to 
produce a machine of such mechanical complexity. Although a considerable 
amount of money and effort was expended, the machine was never completed. 

It was not until the year 1944 that the first such universal digital 
computer was actually completed. This machine, generally referred to 
as the Harvard Mark I, used electromagnetic relays and mechanical 
counters, and was extremely cumbersome compared with the computers in 
use today. The first computer to substitute electronic circuitry for 
electromagnetic was the ENIAC (Electronic Numerical Integrator And Cal- 
culator) , which was used primarily to solve ballistics problems. It 
contained some 18,000 vacuum tubes and about 1500 electro-mechanical 
relays. 

The growth rate of the computer industry following these pioneer efforts 
has been truly fantastic. Digital computers are being entrusted with an 
ever increasing share of the routine, repetitive functions of business 
and industry. Computers are being produced in a variety of types and 
sizes' depending on their intended use. Of particular importance is the 
class of small to medium size computers being applied to such diverse 
problems as process control, data reduction for management analysis, in- 
ventory control and scientific problem solving. They are characterized 
by moderate cost , ease of installation and maintenance, and great flexi- 
bility in their application to a variety of tasks. 



COMPUTER DESIGN CONSIDERATIONS 

An automatic digital computer must, of necessity, contain certain basic 
logical elements. It must, of course, have the ability to perform a 
number of simple arithmetic and logical operations. The solution of 
most mathematical equations, regardless of complexity, can be reduced 
to a series of basic arithmetic operations. Thus, the ability to add, 
subtract, multiply and divide is sufficient to perform virtually any 
mathematical computation. The circuitry which performs the arithmetic 



and logical processing is generally referred to as the Arithmetic Element 
It receives raw data from the Memory Element and, after acting upon it, 
returns it to the Memory Element. 

In order that information (both instructions and operands) may be sup- 
plied to the Arithmetic Element at a rate comparable to its inherent 
processing speed, it is necessary that there be some form of internal 
Memory Element. This element is generally used to store both the pro- 
gram to direct the processing operation, and the data to be processed. 
It must provide rapid access and locatability of each piece of infor- 
mation on a program demand basis. Without the Memory Element, the 
speed of a computer would be restricted to a mechanical insertion rate. 

Prior to beginning a processing operation, and often during the course 
of an operation, information from an external source must be entered 
into the computer's memory. Consequently, there is required an Input 
Element to accomplish this loading of data. 

Conversely, at the completion of, and often during an operation, the 
processed data must be externally presented in a usable and under- 
standable manner. This internal to external transfer of data is a 
function of the Output Element. 



DATA 
TRANSFER 




INPUT 
ELEMENT 



CONTROL 
ELEMENT 



>— 



CONTROL 
SIGNAL 



/ 



ARITHMETIC 
ELEMENT 



MEMORY 
ELEMENT 



1 



/ 



/ 



OUTPUT 
ELEMENT 



FIGURE 1. Logical Diagram of Automatic Computer 



Finally, and vital to the automatic functioning of the computer, there 
must be a Control Element to coordinate the activities of the other four 
elements. It is responsible for the proper sequencing of each action 
within the computer. For most computers this controlled sequencing de- 
termines whether a piece of information stored in memory is to be used 
as an instruction or as data to be processed. Data and instructions may 
occur intermixed in memory, and in the same form. In fact, the identical 
piece of information may be used in both ways at different points in a 
program. Further, this Control Element must activate input and output 
devices when called for, and, in general, direct the overall performance 
of a program or program complex. 



GLOSSARY OF COMPUTER TERMS 



ACCESS TIME The time required to bring a selected word from storage 

to the point at which it is to be used or processed. 

ACCUMULATOR That register, within the arithmetic element, in which 

are formed the results of arithmetic and logical 
operations. 

ADDRESS A character, or string of characters, used to identify 

a location within the computer memory. 

ADDRESS A label, usually numeric, which identifies a location 

(Absolute) in memory independent of any reference location, 

ADDRESS A numeric label which identifies a location in memory 

(Relative) relative to some other memory location. 

ADDRESS A label, consisting of arbitrarily chosen symbols, to 

(Symbolic) represent a location within a program which is inde- 

pendent of the location of the program in memory or 
its initial location. 

ALPHA-NUMERIC A symbol system in which are included alphabetic, nu- 
meric and special characters. 

ARITHMETIC That part of a computer in which arithmetic and logical 

ELEMENT computations and decision making functions are performed 

ASSEMBLER A utility program which assigns absolute address values 

for the values in a symbolically addressed program and 
sets up storage allocations for its various parts. 

BASE In a number system employing positional notation, the 

base is the number of counts required in each position 
to cause a change in the next higher position. It is 
also the number of discrete numeric characters employed 
in the system. 

BINARY CODED Representation of each decimal character in a number 

DECIMAL by a pattern of binary digits. 

BIT Common programming expression for "binary digit". The 

smallest meaningful unit of information in the computer. 
An individual bit is restricted to the values "0" and 

tl 1 Tt 

BLOCK A group of related computer words or characters pro- 
cessed or transferred as a unit, 



BOOTSTRAP A procedure for entering a program into the computer. 

The initial few steps of the routine, normally en- 
tered manually, are used to automatically load the 
remainder of the program. 

BUFFER An intermediate storage device for coordinating the 

transfer of information from one part of the computer 
to another. 

COMMAND The directive portion of an instruction. The speci- 
fied action to be taken by the computer. 

COMPILER A utility program which produces a machine or assembly 

language program from a program which is coded in a 
problem oriented language. The coding form of the 
program to be compiled ordinarily will closely approxi- 
mate standard algebraic notation. 

COMPUTER An electronic device for the automatic calculation of 

(Digital) sequences of arithmetic and logical operations. Quan- 

tities and values are represented by patterns of bi- 
stable magnetic or electronic indicators. 

CONSTANT A value which is not subject to change during an oper- 
ation. 

CONTROL ELEMENT That part of a computer which directs the sequencing 

and timing of its actions. 

DATA That information used as operands in the arithmetic 

and logical operations of the computer. 

DATA -REDUCTION The processing of large volumes of raw data so as to 

condense and simplify it to a more meaningful presen- 
tation. 

DEBUGGING The process of eliminating errors from a program by 

inspection or machine testing. 

EXTRACT To clear selected portions of a word to zero, leaving 

the remaining portions intact. 

FIELD A defined space within a computer word or information 

format which is assigned to hold a specified type or 
class of information. 

FIXED POINT That system of programming arithmetic in which the 

location of the decimal or binary point in a computer 
word must be controlled and manipulated by the pro- 
grammer . 



FLOATING POINT That system of programming arithmetic in which the 

location of the decimal or binary point in a com- 
puter word is automatically manipulated and control- 
led by the computer or a program routine, 

HEAD The assembly for recording or reading one track of 

information on a magnetized surface. 

HEXADECIMAL The positional number system using a base of 16. A 

number system which employs 16 discrete numeric 
characters , 

INDEX REGISTER A register to contain a quantity which may be used 

to automatically increment or decrement the address 
portion of an instruction. 

INPUT Information entered into a computer's memory from an 

external source. 

INSTRUCTION A set or string of characters which completely speci- 
fies one action to be taken by the computer. 

LOAD To enter information into the computer from an ex- 
ternal source. Also, to place a value into a regis- 
ter, such as the Index Register. 

LOOP A programming technique in which a sequence of in- 
structions is repeated a specified number of times 
before proceeding with the remainder of the program. 

MAGNETIC DRUM A rotating cylindrical drum used for information 

storage. Recording is in the form of magnetized 
spots on the surface of the drum. 

MEMORY The primary internal storage area of a computer. 

Generally, the storage device permitting the most 
rapid access to its data. It is from this storage 
that instructions and operands are obtained during 
execution of a program. 

MICROSECOND One millionth of a second. 

MILLISECOND One thousandth of a second. 

MNEMONIC A code form of identification devised so as to assist 

in the remembrance of its meaning. 

OPERAND An item of information which is to be operated upon, 

or one which enters into an operation. 

OPTIMIZE --To code a routine in such ways as to minimize the 

total memory access time. 



OUTPUT — Information transferred from the computer's memory 

to an external device, 

OVERFLOW The generation, in a computer register, of a quantity 

beyond the capacity of the register. 

PARAMETER An item which may be assigned arbitrary values, de- 
pending upon its use in a given routine. 

PARITY BIT An extra binary digit added to an item of information 

for validity checking purposes. 

PARITY CHECK A method of verifying the accuracy of a data transfer 

by counting the number of "1" bits in the transferred 
item, including the parity bit. An accurate transfer 
is indicated by an even count in an "even parity" 
system, or by an odd count in an "odd parity" system, 

PROGRAM A complete sequenced set of computer instructions de- 
signed to carry out a desired processing function, or 
solve a defined problem. 

REGISTER The hardware for storing one complete computer word, 

ROUTINE A sequenced set of computer instructions, part of a 

program, for performing some well defined function. 

SECTOR The space on a storage drum, measured along the cir- 
cumference, required to hold one computer word, 

SUBROUTINE A program sub-unit , usually used in common by more 

(Closed) than one program, which is entered via a transfer 

from the main program and exits via a transfer back 
to a selected point in the main program. 

SUBROUTINE A program sub-unit which is included in the normal 

(Open) sequence of a program. 

TRACK The path around a storage drum, traced out by each 

head of the drum assembly. Also, the information 
stored on a given track. 

TRANSFER To move information from one storage area to another. 

To depart from the linear sequence of the program 
instructions by shifting control to another area of 
the program. This shift is often conditional upon 
the results of a program test of an indicator word 
(Conditional Transfer). 



UTILITY PROGRAM A program designed to assist in the full utilization 

of the computer. Included in this class are Assembly 
Programs, Compilers, Input/Output Programs, etc. 

WORD A set or string of symbols which occupies one complete 

storage register in the computer. This word may be 
treated as an instruction or as a data word, depending 
upon the manner of its occurrence in a program. 



m 



i 



i 



p ARITHMETIC FOR 
I PROGRAMMERS 

¥ 

I 



The concept of number is so basic to our everyday life that the average 
person rarely has occasion to reflect on the many meanings of number, or 
on the many forms in which numbers are expressed. However, the advent of 
the electronic computer has necessitated a reconsideration of number sys- 
tems and their applicability to the conveyance and manipulation of infor- 
mation through electronic circuitry. 

Numbers are used, primarily, to denote quantity or amount. We use numbers 
to state how many pills are in a bottle, or how many pounds of coffee in a 
bag, or how many miles between here and Tin Cup, Colorado. But there are 
other ways of using numbers. A number can also be used to represent one 
member of an ordered set of symbols. A house number, for example, serves 
to identify a particular house among a number of houses in its set, It 
further serves to locate that house with respect to these other houses. 
When a number is used for this dual purpose of location and identification, 
it is generally referred to as an address. Finally, a number which serves 
only to identify, but which has no quantitative or locational significance, 
is usually called a code number. 

All three of these aspects of number quantity, address and identity 

are vital to the design and operation of a high speed digital computer. 
However, the present discussion will concern itself, primarily, with the 
quantitative aspect of number. 



NUMBER SYSTEMS 

A Number System may be classified by the number of counting symbols it em- 
ploys. This number is referred to as the base of the system. The Decimal 
System is a base-ten Number System; that is, it uses the ten numeric charac- 
ters, thru 9. It is further characterized by its use of a positional no- 
tation. When counting, if one digit position progresses beyond 9, it adds 
a count in the position immediately to its left. Thus, 9 plus 1 becomes 10; 
19 plus 1 becomes 20; 99 plus 1 becomes 100; etc. Each position in a decimal 
number represents an integral power of 10, so that in the number 456, the 
number 4 represents 4 times 10 2 ; the 5 represents 5 times 10 1 ; and the 6 
represents 6 times 10°. Similarly, the decimal fraction .789 represents 7 
times 10 _1 plus 8 times 10 -2 plus 9 times 10~3. 



10 



Obviously, we are not restricted to a base-ten system of numbers. The 
same notational structure applies equally well to other bases. And, in 
fact, it has been determined that today's electronic digital computer 
functions most efficiently using a binary system for its internal func- 
tions. This base-two system follows naturally from the fact that the 
computer circuitry is made up, in large part, of bi-stable devices. 



THE BINARY SYSTEM 

The Binary System is, of course, a system which utilizes only two numeric 
characters, and 1, The principles of counting and arithmetic are exactly 
the same as for decimal numbers. Counting proceeds in the order, 1, 10, 
11, 100, 101, 110, 111, 1000, 1001, etc. Whereas, in the Decimal System 
every tenth count in a digit position causes a change in the next position 
to its left; in the Binary System every second count steps the next higher 
digit position. Each successive position to the left represents the next 
higher power of two. Thus, the binary number 10110 is equal to 1 times 2^ 
plus times 2 3 plus 1 times 2^ plus 1 times 2 1 plus times 2^. This is 
equivalent to the decimal number 22. 

Similarly, in a fractional binary number, the positions to the right of 
the binary point represent successive negative powers of two. Thus, the 
binary fraction, .10110, represents 1 times 2 _1 plus times 2-2 plus 1 
times 2~3 plus 1 times 2 - 4 plus times 2~$ . This is equivalent to the 
decimal, 1/2 plus 1/8 plus 1/16, or 11/16. 

If we were to perform all our manual computations in binary arithmetic, 
we would find that, although the individual operations are childishly 
simple, we would soon be drowning in a sea of ' s and l's. The decimal 
number 999,999, if represented in binary, requires 20 digits. The com- 
puter, on the other hand, finds it much easier to handle a large number 
of digit positions than to deal with more than two digit values. In 
order to facilitate communication between the programmer and the computer, 
it is desirable to use a number system which provides for brief numerical 
notation; and one which permits easy conversion to and from the binary 
system. 



THE HEXADECIMAL SYSTEM 

If we look carefully at the Binary System, we note that four digit 
positions are sufficient to hold 16 numerical values from to 15. The 
RPC-4000 has a word length of 32 bits (binary digits), so that one word 
can be divided evenly into eight 4-bit groups. If we select, for com- 
munication with the computer, a number system with a base of 16, we can 
represent a full computer word with just eight characters, and each 
character will correspond exactly with a unique pattern of binary digits 



11 



This base-sixteen number system is known as a Hexadecimal System. It is 
the system used for all direct communication with the computer. The 
table of Hexadecimal characters and their decimal and binary equivalents 
is as follows: 



Hexadecimal 



Decimal 



Binary 




1 
2 
3 
4 
5 
6 
7 
8 
9 
A 
B 
C 
D 
E 
F 





X 

2 

3 

4 

5 

6 

7 

8 

9 

10 

11 

12 

13 

14 

15 



0000 
0001 
0010 
0011 
0100 
0101 
0110 
0111 
1000 
1001 
1010 
1011 
1100 
1101 
1110 

1111 



BINARY CODED DECIMAL 

Frequently encountered in discussions of computers and programming is another, 
and somewhat different, system of numbers known as Binary Coded Decimal, 
This is actually a system built on two bases, 2 and 10, Base 2 is used 
in the binary representation of each of the ten numeric characters, 
thru 9. Normally, the binary numbers, 0000 thru 1001 are used, and each 
4-bit group signifies one decimal character. The positional notation 
used is the same as for decimal numbers in that each successive 4-bit 
group proceeding to the left of the units position represents the next 
higher power of ten. Thus the decimal number in binary is written 
101110001. 

The usefulness of this number system is in providing a convenient form 
in which to process numerical data through the Input/Output equipment. 
Its use, however, requires Input and Output program routines which will 
make the conversion to and from a true binary representation. 



CONVERSION BETWEEN SYSTEMS 

In working with computers and programs, it frequently becomes necessary 
to perform a manual conversion from one number system to another. This 
is particularly true in debugging, where a word displayed on the scope 
face must often be verified against a symbolically written program word 



12 



Conversion of a decimal integer into its binary and hexadecimal equiv- 
alent may be accomplished by a system of successive divisions of the 
decimal integer by the base of the system into which we are converting. 
For example, consider the decimal number, 229. If we divide by the 
hexadecimal base, 16, we get 14, with a remainder of 5. The 5 repre- 
sents the least significant digit of the hexadecimal number we are com- 
puting. If we now divide the integral quotient, 14, by 16, we get 0, 
with a remainder of 14. The 14, expressed hexadecimally by the character, 
E, represents the most significant digit of the desired number, so that 
the hexadecimal equivalent of 229 is E5 . To avoid confusion when working 
with number conversions, the base of a number is usually represented by a 
subscript, so that the above numbers would be more clearly expressed as 
229^q and E5.,. Let us consider another example, this time showing the 
conversion in tabular form. The decimal integer 1386 would be converted 
as follows: 



DECIMAL 

NUMBER -S- 16 QUOTIENT with REMAINDER 



1386 1Q 86 10 a i6 



10 10 16 



(least significant) 



(most significant) 



5 10 ° 5 16 



The hexadecimal equivalent of 1386 ..q is 56A 1 ^ ) . Note that the "A" in the 
above example is used as a hexadecimal numeral, and is the equivalent of 
a decimal 10. 

Decimal integers may be converted to binary in exactly the same fashion, 
Conversion of 52 to binary proceeds as follows: 

DECIMAL NUMBER 4- 2 QUOTIENT wi th REMAINDER 

52 1Q 26 10 

26io 13 1Q 



10 



13io 6 

6 10 3 10 

3 10 lio 

x io °10 



13 



(least 


significant) 


o 2 




o 2 




l 2 




°2 




l 2 

(most 


significant) 



The binary equivalent of 52 10 is shown to be HOlOOp. With a little 



practice, a binary number can be readily converted to decimal by in- 
spection or by referring to a table of powers of two. Converting the 
above binary value to decimal is just a matter of adding 2 (32), 2 4 
(16), and 2 (4) to arrive at the value, 52-^q. Fractional values may 
be similarly handled by using negative powers of two, 

Conversion of a decimal fraction into hexadecimal or binary may be ac- 
complished by a system of successive multiplications by the base into 
which we are converting. For example, consider the following conversion 
of . 912,q into hexadecimal. 



DECIMAL 
NUMBER 



X 16 



= PRODUCT 



INTEGRAL 
with CARRY = HEXADECIMAL 



.912 



10 



14.592 



10 



14 



10 



(most significant) 
E 16 



.592 



10 



9.472 10 



'10 



'16 



.472 



10 



7.552 



10 



10 



16 



ETC. 



In this process, the first integral carry represents the most significant 
digit of the hexadecimal fraction, and the fraction, 
( E97-.£, computed to 3 places. 



912..^ converts to 



SCALING 

The numbers .752 ~, 7.52^q, 75. 2.^, and 752..^ are identical in appearance 
except for the placement of an insignificant looking symbol known as a 
decimal point. Yet the use of this symbol can make a huge difference in 
the meaning of the number in which it is placed. When we work with num- 
bers in this fashion, we arbitrarily place this point in such a way as 
to establish a desired magnitude for the number we wish to represent. 
The digits to the left of this point represent integral values, and the 
digits to the right represent fractional values. In order to perform 
valid arithmetic operations with these numbers, we must necessarily be 
cognizant of the location of the point in all our operands. 

The RPC-4000 computer word is 32 binary digits in length. For a data 
word, these bits provide for a sign bit in position 0, and 31 magnitude 
bits. The principles of scaling, outlined above with respect to decimal 
arithmetic, apply also to the binary values used by the computer. The 
binary point does not actually exist within the computer. It exists only 



14 



in the mind or on the paper of the programmer. It is his responsibility 

to control the placement of values in the computer word so that these 

implied binary points will fall in the proper positions to produce valid 
arithmetic results. 

The binary point location between bits and 1 of the computer word, re- 
ferred to as the machine point, serves as a reference point in specifying 
the scale factor for a value in the word. The symbol, "q ,T , has been es- 
tablished by convention to denote the placement of the implied binary 
point with respect to the machine point. If a value is entered into the 
computer at a "q" of 5, the bits in positions 1 thru 5 represent the in- 
tegral portion of the value, and the bits in positions 6 thru 31 represent 
the fractional portion. 

To perform a valid addition or subtraction in the computer, the binary 
points must be lined up the same as we would line up the points in per- 
forming these operations with pencil and paper. That is, the operands 
must exist in the computer at the same "q". A number at a "q" of 12, 
added to another number at a "q" of 12, will produce a sum which is also 
at a "q" of 12. 

In multiplication, however, the points need not be lined up, but must be 
located so as to produce a product at the required "q" . The M q" of the 
product of a multiplication is the sum of the "q's" of the multiplicand 
and the multiplier. A number at a "q" of 6, multiplied by a number at 
a "q" of 3, will produce a product at a "q" of 9. An exception to the 
above is the command MPT (Multiply by Ten) , in which the "q" of the 
product is the same as the "q" of the multiplicand. (See Page 44). 

The rules for performing a division in the computer are equally simple, 
but require one additional precaution on the part of the programmer. 
The "q" of the quotient is determined by subtracting the "q" of the 
divisor from the "q" of the dividend. The value 6 , at a M q*' of 3, 
divided by the value 2, at a "q" of 2, should produce a quotient, 3, at 
a "q" of 1. But the value, 3, cannot be held at a "q" of 1 , so that a 
condition Known as a "divide check" occurs. This produces an overflow 
out of the accumulator which will turn on an indicator, known as the 
Branch Control. To avoid this situation, the programmer must scale his 
operands so that the quotient will fit in the accumulator. In the above 
example, shifting the dividend 6, to a "q" of 4, and then dividing by 2 
at a "q" of 2, will produce a quotient of 3, at a "q" of 2, which can be 
contained without overflow. Considered from the standpoint of the com- 
puter word itself, and disregarding the implied binary point location, 
the divisor must always exceed the dividend to perform a valid divide 
operation. 

The means for controlling the scaling of values in the computer are 
provided by a shift instruction, which permits the programmer to adjust 
the "q" of any value by shifting the accumulator contents right or left 
by a prescribed number of bit positions. (See Page 41). It is important, 
in coding a program, to note on the coding sheet the "q" values of all 
operands. 

15 



3 



I 

1 



THE CENTRAL 
COMPUTER 



i 



The basic unit of information in the computer is referred to as a word 
The computer word in the RPC-4000 consists of 32 binary digits, com- 
monly called "bits". This 32 bit pattern of information has a meaning 
dependent upon the context in which it is used. That is to say, that 
the same word from memory may be used as an instruction or as an arith- 
metic operand, and this usage is determined by the manner in which the 
program is written. 

When used as numerical data, a word is considered as consisting of a 
sign bit in the left-most position, followed by 31 magnitude bits. 
Preceding a DIV (Divide) instruction or following a MPY (Multiply) 
instruction the data word in the LOWER Accumulator is considered as 
an extension of the UPPER and contains magnitude bits in bit positions 
thru 30, bit 31 being disregarded. 



s 




i MAGNITUDE BITS 


1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 |lo|ll|l2|l3|l4|l5|l6|l7|l8|l9|2o|2l|22|23|24|25|26|27|28|29|30|31 



FIGURE 2. RPC-4000 Data Word Format 



When used as an instruction, a word is considered as consisting of a com- 
mand in bits thru 4, an operand or an operand address in bits 5 thru 17, 
the next instruction address in bits 18 thru 30, and the index tag in bit 
31. 



COMMAND 


OPERAND ADDRESS 


NEXT ADDRESS 


X 


4 


* TRACK ^H 2 SECTOR ^ 


18 24|25 30 

TRACK 1 SECTOR 


31 



FIGURE 3. RPC-4000 Instruction Word Format 



16 



In certain cases it is convenient to consider the 32 bits of a word as 
eight hexadecimal characters. This is particularly true in entering 
information manually into the computer or in analyzing certain computer 
outputs. 



HEX 1 


HEX 2 


HEX 3 


HEX 4 


HEX 5 


HEX 6 


HEX 7 


HEX 8 


3 


4 7 


8 11 


12 15 


16 19 


20 23 


24 27 


28 31 



FIGURE 4. Hexadecimal Word Format 



THE MEMORY DRUM 



Information is stored in the RPC-4000 on a magnetic drum which rotates 
at the rate of 3600 revolutions per minute. This information will con- 
sist of both data words and instruction words. Each individual bit of 
each word stored in the computer is in the form of a discrete magnetized 
spot on the iron oxide coated drum surface. Each bit can exist in one 
of two magnetic states representing the binary values, (zero) and 1 
(one). All information in the computer, including all memory storage 
and all working registers, is represented in this manner. 

The computer words are arranged in parallel bands around the drum, each 
band containing 64 word positions. Associated with each of these bands 
is a magnetic read/write head (those bands used for double access each 
have two read/write heads.) The band of information traced out by any 
given head is referred to as a track. Each of the 64 word positions 
around the circumference of the drum is referred to as a sector. 

The RPC-4000 memory consists of 128 tracks (numbered 000 thru 127) and 
64 sectors (numbered 00 thru 63). Hence, the location of any word in 
memory can be specified by its track and sector number. This number is 
known as the address of the word in question. 

Tracks 000 thru 122 of the magnetic drum are the Main Memory storage 
area for the RPC-4000. Each track has 64 associated sectors, each of 
which contains one computer word. The total storage capacity of Main 
Memory is 7872 words. Any word in Main Memory may be referenced by 
specifying its track and sector position. Thus, 09843 refers to the 
word whose address is Track 098, Sector 43. 

Maximum access time for a word in Main Memory is the time required for 
one complete drum revolution, or approximately 17 milliseconds. Average 
access time is approximately 8.5 milliseconds. 



17 



TRACKS 
THRU 122 




SECTORS 
O THRU 63 



FIGURE 5, RPC-4000 Main Memory Storage 



DOUBLE ACCESS TRACKS 

In addition to the Main Memory just discussed, there are two bands of 
memory storage on the drum for which double access is provided. Each 
of these bands has two read/write heads, addressed by their own indi- 
vidual track numbers. The heads addressed as Track 123 and Track 125 
have a common storage band. The Track 125 head is displaced so as to 
be 16 word times later than the Track 123 head. Therefore, both heads 
refer to the same set of words, and the word which is addressed by 
12301 is the same word as that addressed by 12517, 

Likewise, the heads addressed as Track 124 and Track 126 have a com- 
mon set of word positions. In this case, the Track 126 head is dis- 
placed so as to be 24 word times later than the Track 124 head. The 
word addressed by 12401 is the same word as that addressed by 12625. 



Random access time for a word from the Double Access storage area is 
approximately 17 milliseconds, the same as for a word from Main Memory. 
However, a second access to the same word requires only about 4 milli- 
seconds for Track 123/125 or 6 milliseconds for Track 124/126. Total 
Double Access storage capacity is 128 words. 




FIGURE 6. Double Access Storage Tracks 



THE RECIRCULATING TRACK 

There are 8 additional words of memory storage on the drum in what is 
known as the Recirculating Track. The associated read/write head is 
referred to as Track 127, and this track provides a special rapid ac- 
cess storage area. The rapid access capability derives from the fact 
that these 8 words are repeated 8 times around the drum. This is ac- 
complished In the following manner. 

In addition to, and flanking the normal read/write head are a separate 
read head and write head. The read head is placed so as to trail the 
write head by 8 words. That is to say, that a word position on the 
drum will reach the write head 8 words before reaching the read head. 
Consequently, as each word is read by the read head, it is immediately 
rewritten 8 word positions farther back on the drum. Likewise, any 
new word value written on the drum by the normal read/write head will 
be picked up when it reaches the read head and recirculated. 

Since every eighth word around the drum on Track 127 is identical, 
sector addresses will be modulo 8. The addresses 12701, 12709, and 
12717 will all refer to the same word inasmuch as the sector addresses 
differ by multiples of 8. With 8 accesses provided for each word 
every drum revolution, maximum access time for the Recirculating Track 
is approximately 2 milliseconds, with an average access time of about 
1 millisecond. 



19 



READ HEAD 



READ/WRITE HEAD 
TRACK 127 




WRITE HEAD 



FIGURE 7. The Recirculating Track 



THE SECTOR REFERENCE TIMING TRACK 

Although this track cannot be read directly or modified by the program- 
mer, some explanation of its function may be helpful. The Sector Refer- 
ence Timing Track contains the Sector Reference numbers 00 thru 63, 
which are permanently pre-recorded at the time of manufacture. The 
track has a read head only, which serves to locate, by reference to 
this Timing Track, any sector address on the drum which is called for 
in a program. 

The Sector Reference numbers on the Timing Track are accessible to a 
program only in the case of a compare instruction (CME or CMG) which 
is executed in Repeat Mode (See Pages 50 & 51). During a repeated 
compare instruction the contents of this track are continually copied 
into bits 25 thru 30 of the INDEX Register until a successful comparison 
is found, or until completion of the instruction, at which points any 
further copying is inhibited. The Sector Reference number is always 
one greater than the sector being compared. Consequently, following 
a successful comparison (Branch Control On) , the sector address of the 
memory word which compares can be determined by subtracting 1 from the 
Sector Reference value in the INDEX Register. 



THE WORKING REGISTERS 

A register may be described as the hardware for storing a single computer 
word. Those registers which are used to perform the various arithmetic 
and control functions within the computer are the Working Registers. 
There are four such registers in the RPC-4000 , each in the form of a re- 
circulating track on the drum with a one-word spacing. 



20 



These four Working Registers and associated logic together comprise what 
is referred to as the Computing Control Unit. As such, they perform all 
internal data processing and control inputs and outputs to and from the 
computer. The registers are known individually as: 

U UPPER Accumulator 

L LOWER Accumulator 

C COMMAND Register 

X INDEX Register 



THE UPPER ACCUMULATOR 

Generally speaking, the UPPER Accumulator is that register in the Computing 
Control Unit which holds the computer word to be operated upon. At the 
completion of an arithmetic or logical operation, it will normally hold 
the result of the operation. 

The UPPER Accumulator is the primary working resiter. It can receive in- 
formation from, or send information to any register in memory, and any 
working register except the COMMAND Register. For most instructions these 
are full word transfers. However, information may be shifted from the 
UPPER to the LOWER Accumulator, or from the LOWER to the UPPER Accumulator 
on a bit-by-bit basis. 

For any arithmetic operation, the contents of the UPPER Accumulator are 
considered as consisting of a sign bit followed by 31 magnitude bits and 
the operation will be performed according to the normal law of signs. 
Preceding a Multiply (MPY) instruction, the UPPER will contain the multi- 
plicand. Following a Multiply instruction, the UPPER Accumulator will 
contain the most significant half of the double word product. Preceding 
a Divide (DIV) instruction, the UPPER will contain the most significant 
half of the double word dividend. Following a Divide instruction, the 
UPPER will contain the quotient. 



THE LOWER ACCUMULATOR 

The LOWER Accumulator may be thought of as a supplement to the UPPER, 
providing an alternate data handling register, and serving as an ex-' 
tension to the UPPER for bit manipulation and extra precision arith- 
metic. Its contents may be added to, subtracted from, and transferred 
direct to memory, in the same way that these operations are performed 
with the UPPER, 

Before a Divide (DIV) instruction, the LOWER Accumulator will contain 
the least significant half of the dividend. Following a Divide (DIV) 
or a Divide Upper (DVU) instruction, the LOWER Accumulator contains the 



21 



remainder. Following a Multiply (MPY) instruction, the LOWER Accumulator 
contains the least significant half of the product. 

When combined with the UPPER Accumulator to form a double length word, 
bit "0" of the LOWER Accumulator is considered as a data bit. Otherwise, 
it is considered as a sign bit. 

Through the use of a modifier bit in the Exchange (EXC) instruction, 
the LOWER Accumulator can be set to eight words instead of one. These 
eight words function as individual accumulators, but are subject to 
certain restrictions in their use. For further discussion of this 
mode, see Page 24. 



THE COMMAND REGISTER 

The COMMAND Register is that register which holds an instruction word 
during the time that it is being interpreted and operated by the com- 
puter. The instruction word consists of four logical parts or fields, 
each of which is considered when an instruction is performed: 

1. The Command Field (bits thru 4) This field in 

the COMMAND Register will contain the numerical code 
representing the operation to be performed. It 
serves only to identify the required operation and 
has no quantitative significance. 

2. The Data-address Field (bits 5 thru 17) For most 

instructions, this field will contain a memory ad- 
dress signifying the location of the operand. For 
the transfer instructions TBC and TMI , it will con- 
tain the address of the next instruction in the 
event of an active transfer. For some instructions, 
this field will contain a set of logical modifiers 
which serve to further define the operation of a 
basic command. And for a few instructions, the con- 
tends of this field are used as the operand. 

3. The Next-address Field (bits 18 thru 30) This 

field will contain a memory address signifying the 
location of the instruction which is to operate 
immediately following the one currently in the 
COMMAND Register, 

The only exception to this is that, upon encounter- 
ing an active transfer instruction, the next ins- 
truction will be taken from the address specified 
in the Data-address Field. 



22 



The Index Tag Field (bit 31) A "1" bit in this 

field will cause the computer to apply indexing to 
the instruction when it is placed in the COMMAND 
Register. This means that the Data-address Field 
is incremented by the contents of bits 5 thru 17 
of the INDEX Register. If the Index Tag is set to 
"0", indexing is not applied, and the Data-address 
field in the COMMAND Register will be identical 
with the corresponding instruction in memory. 



THE INDEX REGISTER 

The INDEX Register performs several important functions in the RPC-4000, 
Its primary use is for address modification and, for this purpose, bits 
5 thru 17 of the INDEX Register serve to hold a value by which the Data- 
address Field of an instruction may be incremented. This incremental 
value may be placed in the INDEX Register by means of a Load Index (LDX) 
instruction, and can be used by including an Index Tag in the appropriate 
instruction. 

Bits 18 thru 24 of the INDEX Register are used to hold the Repeat Count 
for any instruction which is operated in the Repeat Mode, (See Page 25). 
This count is loaded by a Load Count (LDC) instruction immediately pre- 
ceding the instruction to be repeated. 

Bits 25 thru 30 of the INDEX Register are used in conjunction with the 
Compare Memory Equal (CME) and the Compare Memory Greater (CMG) in- 
structions when these instructions are executed in the Repeat Mode, At 
the beginning of the instruction, the Sector Reference Timing Track is 
copied into bits 25 thru 30 of the INDEX Register and this copying oc- 
curs during each iteration until a successful comparison is made or until 
the specified number of repeats is completed. If and when a successful 
comparison occurs, any further copying of the Timing Track is inhibited, 
The INDEX Register will then contain a value one sector greater than the 
sector location of the memory word which compared successfully, 

In addition to the above functions, the full word INDEX Register may be 
used as a rapid access storage location and may be exchanged with the 
UPPER Accumulator through the use of the Exchange (EXC) instruction, 



THE BRANCH CONTROL 

Although it is not a register, there is another information handling de- 
vice within the computer which should be mentioned here. This is an 
internal flip-flop consisting of only one bit and known as the Branch 
Control. It is automatically turned on when an overflow condition oc- 



23 



curs. It may be set by the instructions, SNS, CXE, CME, and CMG. It 
may be sensed by the instruction, TBC (Transfer on Branch Control). 



PROGRAMMED OPERATING MODES 

There are certain modifications which can be made under program control, 
which will alter the normal operating procedures for the Central Computer 
They are concerned, for the most part, with the processing of multi-word 
blocks of information or tables of associated data. The first of these 
modifications provides the ability to change the form of the LOWER Accu- 
mulator from one word to eight words in eight individual LOWER Accumula- 
tors. The second enables automatic repetition of an instruction for a 
selected number of times using consecutive storage locations. 



THE EIGHT -WORD LOWER ACCUMULATOR 

The LOWER Accumulator can be set to eight words or back to one word by 
means of two control bits which are a part of the Exchange (EXC) instruc- 
tion word. The effect of setting the LOWER to eight words is that, in- 
stead of the same word being recirculated into all 64 word positions, 
there are eight separate words considered, each of which is recirculated 
into eight word positions. In this respect, the eight -word LOWER is the 
same format as the recirculating memory, Track 127. 

When an instruction involving the eight-word LOWER is executed, the ac- 
cumulator word used will correspond to the Data-sector of the instruction 
word. To put it another way, if we let Lq , L^ , L 2 , ... Ly, designate the 
eight LOWER Accumulators, then an instruction with a Data-address of 10300 
would use or affect L Q , as would 10308, 10316, etc. Likewise, an instruc- 
tion with a Data-address of 02703, would use or affect L 3 , as would 05403, 
06711, 11819, etc. 

If overflow occurs in a LOWER Accumulator word, it has no effect on the 
other seven words of the LOWER, nor does it affect the UPPER Accumulator. 
It does, however, turn on the Branch Control, 

The eight-word LOWER Accumulator can be used with the Input (INP) in- 
struction to receive up to 64 4-bit characters or 42 6-bit characters. 
Inputs enter into the least significant end of L n , and each succeeding 
character causes the preceding characters to be shifted left until all 
eight accumulators are filled. If the number of input characters 
exceeds the capacity of the eight-word LOWER, characters will be lost 
out of the most significant end of Ly . 

Those instructions concerned with the LOWER which require more than one 
word time for execution (MPY, DVU, DIV, SRL, SLC,) should not be execu- 
ted while the LOWER is in eight-word format. 



24 



THE AUTOMATIC REPEAT MODE 

The execution phase of an instruction operated in this mode may be 
extended to any desired number of word times, not to exceed 128. A 
word time is that time required for one sector of the drum to pass 
beneath the read/write head. It is approximately ,25 milliseconds. 
Thus, the number of repetitions of an instruction will be a function 
of the Repeat Count and the word times required to complete one exe- 
cution. Those instructions which are appropriate for repeated execu- 
tion require only one word time for command execution and, therefore, 
the number of repetitions beyond the initial execution will be equal 
to the specified Repeat Count. 

The Repeat Mode is initiated by a Load Count (LDC) instruction, which 
places the Repeat Count in the Repeat Control field of the INDEX Re- 
gister (bits 18 thru 24). The instruction immediately following the 
LDC instruction will be the only one affected. (See exceptions below). 
It will be placed in the COMMAND Register, and where appropriate, the 
drum will be searched for its Data-address as in normal operation. 
But its execution phase will be continually repeated until the Repeat 
Count in the INDEX Register runs out. For each repetition, the Data- 
address used will be the one beneath the head at the time of execution. 
When this operation continues beyond Sector 63, it proceeds with Sector 
00, 01, etc., of the same track. Track switching is not possible during 
a Repeat Mode operation. 

The Repeat Count in the INDEX Register does not define the number of 
repetitions of an instruction whose execution phase requires more than 
one word time. These instructions, when executed in the Repeat Mode, 
produce results which are not true repetitions of the execution phase, 
and this usage is to be avoided. 

The primary uses of the Repeat Mode are with the arithmetic instruc- 
tions for block processing or block transfers, and with the compare 
instructions, CME and CMG, for table search. 

A special case occurs when a conditional transfer instruction, TBC, or 
TMI, is operated in the Repeat Mode. If the transfer is inactive, no 
action is taken and the execution phase merely delays proceeding to the 
next instruction until the Repeat Count runs out. If the transfer is 
active, the normal execution phase is never reached. Consequently, the 
Repeat Count remains intact and causes the repetition of the instruction 
to which the transfer is made, This is the only instance in which the 
repeated instruction does not immediately follow the LDC instruction. 



INSTRUCTION SEQUENCING AND TIMING 

The sequence in which instructions are executed is controlled by ad- 
dresses contained within the instruction word, A complete instruction 



25 



cycle extends from the beginning of the memory search for the instruction 
word to the beginning of the search for the next instruction word. 

This cycle consists of four phases as follows: 

Phase 1 - Search for memory location specified 
in Next-address Field of COMMAND Re- 
gister 1 to 64 word times. 

Phase 2 - Transfer contents of this location to 
the COMMAND Register 1 word time. 

Phase 3 - Search for memory location specified 
in Data-address Field of COMMAND Re- 
gister 1 to 64 word times. 

Phase 4 - Execution of instruction Basically, 

1 word time but certain instructions 
will include a Sub-phase 4 (a) which 
extends this execution time. 

Except for EXC (Exchange) and MPT (Multiply by Ten), those instructions 
which do not require a memory search for data will require only 1 word 
time in Phase 3. Those instructions are: 

HLT (Halt) SLC (Shift Left and Count) 

SNS (Sense) PRD (Print from Data-address) 

CXE (Compare Index Equal) PRU (Print from UPPER) 

LDX (Load Index) INP (Input) 

SRL (Shift Right or Left) 

Phase 3 for EXC and MPT will depend on the Data-sector value of the 
instruction word, so as to allow an association with a particular word 
of the Eight -word LOWER Accumulator, 

The following instructions will include a Sub-phase 4 (a) in addition 
to the 1-word Phase 4, which will extend their execution times as in- 
dicated. 

DVU (Divide Upper) - 67 word times 

DIV (Divide) - 67 word times 

SRL (Shift Right or Left) - 4 word times plus 1 word time for 

each bit position shifted. 
SLC (Shift Left and Count) - 4 word times plus 1 word time for 

each bit position shifted. 
MPY (Multiply) - 67 word times. 

All other instructions require one word time for execution except for 
INP (Input), PRD (Print from Data-address) and PRU (Print from UPPER), 
which are dependent on the speed of the selected Input/Output devices. 



26 



THE | 

INSTRUCTION LIST I 



4 



The basic instructions which make up the RPC-4000 Instruction List are 
described in the following pages. These are "machine language" in- 
structions, each of which specifies a particular action to be taken by 
the computer. Pseudo-instructions for communication with the ROAR as- 
sembly program are not included in this section. 

A drawing of the Instruction Word format accompanies each description. 
This drawing contains the numerical Command code and illustrates the 
field allocation for each component of the Instruction. The mnemonic 
designator for each Command is shown in bold type at the top of each 
description . 

In many instances, diagrams have been included to support and clarify 
the textual explanations of the actions taken by the Instructions. 
These diagrams indicate the transfer and modification of the contents 
of the various registers which are involved in the instruction operation. 

The "minimum time" referred to in these pages includes the minimum time 
to complete all four phases of the operation, from the beginning of the 
search for the Instruction Word to the beginning of the search for the 
next Instruction Word, 



27 



HLT 



HALT 









INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


00 


000 


(ANY) 


(NEXT ADDRESS) 


0/1 


o 000 A 


5 


11 


12 17 


18 24l25 


30 


31 



The computer will halt with the Instruction Word in the COMMAND Re- 
gister. 

If indexing is specified, it should be noted that any index value 
which results in a non-zero value in the D-track field will effec- 
tively produce a SNS instruction. (See next page) 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers aff ected--None 



28 



SENSE 



SNS 







INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


00 


1 — —127 


(ANY) 


1 

(NEXT ADDRESS) 


0/1 


o Q(/0 4 


5 11 


12 17 


18 24 1 25 


30 


31 



The initial action of the instruction is to turn off the Branch Control. 

This instruction will sense the condition of certain manual switches as 
related to bits 6 — *-ll of the D-track field. If one or more D-track 
bits correspond to a depressed Sense Switch, the instruction will turn 
on the Branch Control. 

If bit 5 of the D-track field is set to 1, it causes the Branch Control 
to be turned on if no input device is selected, or if any selected input 
or output device is not ready. 

Note that any index value which modifies the value of the D-track will 
alter the logical correspondence of the D-track bits and the Sense 
Switches . 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Conditionally set "ON" or "OFF" 

Registers affected None 



D-track Value 



DATA -TRACK/SENSE SWITCH CORRESPONDENCE 
Bit Pattern 



Sense Switch 



1 

2 

4 

8 

16 

32 



0000001 
0000010 
0000100 
0001000 
0010000 
0100000 



1 

2 

4 

8 

16 

32 



29 



CXE 



COMPARE INDEX EQUAL 





INSTRUCTION 


WORD FORMAT 




COMMAND 


D-TRACK | D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


01 


1 

(DATA VALUE) 


(NEXT ADDRESS) 
I 


0/1 


o 600/ 4 


5 11 1 12 17 


18 24 1 25 30 


31 



The initial action of this instruction is to turn off the Branch Control. 
The Data Value in the instruction is then compared with bits 5 — ^17 of 
the INDEX Register. If there is a one-to-one correspondence, the Branch 
Control is turned on. If not, the Branch Control remains off. 

If indexing is specified for this instruction, a Data Value of zero will 
turn on the Branch Control, regardless of the index value. This occurs 
because the zero Data Value, when indexed, becomes identical with the 
Index Value. Conversely, any Data Value other than zero will turn off 
the Branch Control, regardless of the Index Value, inasmuch as any non- 
zero value, when indexed, becomes greater than the Index Value, 

Minimum time- — 4 word times 

Overflow Not a factor 

Branch Control Conditionally set "On" or "Off" 

Registers aff ected---None 



INSTRUCTION 
REGISTER 




P 





17 



COMPARE BITS 




WITH 

JL 



INDEX 
REGISTER 



TURN 

BRANCH CONTROL 

ON 



YES 



< 



n 




ARE THEY 
IDENTICAL? 



T 

NO 

J 



> 



NEXT INSTRUCTION 



30 



RESET AND ADD TO UPPER 



RAU 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK | D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


02 


1 

(DATA ADDRESS) 


(NEXT ADDRESS) 
i 


0/1 


o 00/0 4 


5 11112 17 


18 24 J 25 


30 


31 



The contents of the memory location specified by the Data-address will 
replace the current contents of the UPPER Accumulator . 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Register affected UPPER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 



UPPER ACCUMULATOR 



D 




FINAL CONTENTS 

MEMORY REGISTER 




UPPER ACCUMULATOR 



3 



31 



RAL 



RESET AND ADD TO LOWER 



INSTRUCTION WORD FORMAT 



COMMAND 


D-TRACK | D-SECTOR 


N-TRACK 1 N SECTOR 


X-TAG 


03 


1 

(DATA ADDRESS) 


1 

(NEXT ADDRESS) 


o/i 


OOII 4 


5 11 1 12 17 


18 


24 1 25 


30 


31 



The contents of the memory location specified by the Data-address will 
replace the current contents of the LOWER Accumulator . 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected LOWER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 



LOWER ACCUMULATOR 




FINAL CONTENTS 

MEMORY REGISTER 




LOWER ACCUMULATOR 



32 



STORE ADDRESS FROM UPPER 



SAU 



COMMAND 



04 



INSTRUCTION WORD FORMAT 



D-TRACK 



D-SECTOR 



(DATA ADDRESS) 



N-TRACK 



N-SECTOR 



(NEXT ADDRESS) 



X-TAG 



o/i 



31 



o a 160 



11 I 12 



17 



18 



24 I 25 



30 



Stores bits 5 *~17 of the UPPER Accumulator into bits 5- — *~17 of tin 

memory location specified by the Data-address, replacing the current 
contents of these bits. The remainder of the memory word is left un- 
changed . 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected Specified memory location 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 



r 




j 



E 



UPPER 




ACCUMULATOR 



^5 17 



UPPER ACCUMULATOR 



2k 



17 



33 



MST 



MASKED STORE 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK | D-SECTOR 


N-TRACK J N-SECTOR 


X-TAG 


05 


1 

(DATA ADDRESS) 


(NEXT ADDRESS) 


0/1 


o o lot < 


5 11 1 12 17 


18 24 I 25 


30 


31 



Stores selected bits from the LOWER Accumulator into the memory location 
specified by the Data-address, as masked by the UPPER Accumulator. Where 
the UPPER Accumulator contains l's, stores the corresponding LOWER Accumu- 
lator bits into the memory word. Where the UPPER Accumulator contains 0's, 
leaves the corresponding memory word bits unaltered. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected Specified memory location 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 



UPPER ACCUMULATOR 



B 



MASK 



LOWER ACCUMULATOR 



c 



COMBINED A & C 



UPPER ACCUMULATOR 



r; 



LOWER ACCUMULATOR 



7/ 



'A 



VA 



34 



LOAD COUNT 



LDC 





INSTRUCTIOh 


1 WORD FORMAT 






COMMAND 


D-TRACK 1 D-SECTOR 


N-TRACK 1 N-SECTOR 


X-TAG 


06 


(DATA ADDRESS) 


(NEXT ADDRESS) 


0/1 


o o//0 4 


5 11 1 1 2 17 


18 24| 25 


30 


31 



Loads bits 18 — *~24 of the memory location specified by the Data- 
address into bits 18- — *~24 of the INDEX Register, replacing the 
current contents of these bits. The remainder of the INDEX Re- 
gister is left unchanged. 

Causes the next instruction to be executed in the Repeat Mode; that 
is, the instruction contained in the memory location specified by 
the Next-address will be repeated as many times as the number placed 
in bits 18 — *-24 of the INDEX Register. If the next instruction is 
an active TBC or TMI , the repeated instruction will be that to which 
the transfer is made (See page 25 ) . 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected Index Register 



P" 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 



B 




a 



p 




INDEX REGISTER 




18 24 




18 24 



35 



LDX 



LOAD INDEX 





INSTRUCTI 


ON 


WORD FORMAT 






COMMAND 


D-TRACK | D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


07 


1 

(DATA VALUE) 


1 

(NEXT ADDRESS) 


0/1 


QUI 4 


5 11112 


17 


18 24 1 25 


30 


31 



Loads the Data Value from the Instruction Word into bits 5 — >-17 of the 
INDEX Register, replacing the current contents of these bits. The re- 
mainder of the INDEX Register is left unchanged. 

The Data Value may be modified by indexing. This will serve to increment 
the index value by the number in the Data Value Field, 

Minimum time — 4 word times 

Overflow — • Not a factor 

Branch Control Not affected 

Registers affected INDEX Register 



INITIAL CONTENTS 

INSTRUCTION REGISTER 



e 




2i 



B 



2J 



FINAL CONTENTS 

INSTRUCTION REGISTER 



Va 



£ 



m 



7/ 



a 



& 



INDEX REGISTER 



vmwMWA 



17 



INDEX I REGISTER 



E 




!2 



B 



17 



17 




^ 



36 



INPUT 



INP 







INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK J N-SECTOR 


X-TAG 


08 


000 OR 064 


Mil 


(NEXT ADDRESS) 


o/i 


o looo 4 


5 11 


12 17 


18 24 1 25 


30 


31 



If the D-track of the Instruction Word contains 000, reads 4-bit char- 
acters into the accumulator (s) . If the D-track contains 064, reads 6- 
bit characters into the accumulator(s) . 

If the LOWER Accumulator is set at 1-word length, the characters will 
be read into the double length accumulator (combined UPPER and LOWER) . 
If the LOWER Accumulator is set at 8-word length, the characters will 
be read into the LOWER Accumulator only. Read-in begins with the low 
order character position of the low order accumulator word and, as 
subsequent characters are read in, the existing accumulator contents 
are shifted left one character position. 

The D-track value may be modified by indexing. However, care should 
be taken that this does not result in a value other than 000 or 064. 

If the D-track field of the INP instruction contains a value other 
than 000 or 064, the character which enters the LOWER Accumulator will 
be the logical sum of the incoming tape character and the corresponding 
bits from the D-track field of the instruction word. 

Minimum time Dependent on the number of 

characters read 

Overflow Not a factor 

Branch Control Not affected 

Registers affected UPPER and/or LOWER Accumu- 
lators 



37 



EXC 



EXCHANGE 











INSTRUCTION 


WORD FORMAT 




COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


09 


1 


0*-2 


0—15 


(ANY) 


1 ■ 

(NEXT ADDRESS) 


0/1 


o/OOl 4 


5 


6 7 


8 11 


12 17 


18 24 125 30 


31 



This instruction performs one or more of the following functions, in ac- 
cordance with the logical bit pattern in the D-track field. 

If bit 6 = 1, Set the LOWER Accumulator to 1-word length. 

If bit 7 = 1, Set the LOWER Accumulator to 8-word length. 

(If both = 1, the current state of the LOWER will be reversed). 
If bit 8 = 1, Replace the contents of the UPPER Accumulator 

with the contents of the INDEX Register. 
If bit 9 = 1, ---Replace the contents of the INDEX Register 

with the contents of the UPPER Accumulator. 
If bit 10 = 1, Replace the contents of the UPPER Accumulator 

with the contents of the LOWER Accumulator. 
If bit 11 = 1, Replace the contents of the LOWER Accumulator 

with the contents of the UPPER Accumulator. 

(Any or all of the above exchanges may be executed with the same 
instruction. If bits 8 and 10 are both set, the UPPER Accumula- 
tor will receive the logical sum of the contents of the INDEX 
Register and the LOWER Accumulator) . 

The D-track and D-sector values may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected INDEX Register and/or 

either or both Accumulators 



38 



DIVIDE UPPER 



DVU 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 1 D-SECTOR 


N-TRACK 1 N-SECTOR 


X-TAG 


10 


1 

(DATA ADDRESS) 


1 

(NEXT ADDRESS) 

1 m^^^^m 


0/1 


o/O/O 4 


5 11 1 12 17 


18 24|25 


30 


31 



The contents of the UPPER Accumulator are divided by the contents of 
the memory location specified by the Data-address. The quotient is 
left in the UPPER Accumulator, and the remainder is left in the LOWER 
Accumulator. The remainder is always a positive value, regardless 
of the sign of the quotient, so that the dividend minus the remainder 
will always equal the divisor times the quotient. 

The Data-address may be modified by indexing. 

NOTE: This instruction should not be executed in Repeat Mode nor 
with the eight -word LOWER Accumulator. 

Minimum time 70 word times 

Overflow Turns on Branch Control 

Branch Control Turned on by overflow 

Registers affected UPPER and LOWER Accumulators 



INITIAL CONTENTS 

MEMORY REGISTER 



UPPER 



ACCUMULATOR 



B 



LOWER ACCUMULATOR 




FINAL CONTENTS 

MEMORY REGISTER 




UPPER ACCUMULATOR 



B-fA 



LOWER ACCUMULATOR 



4- REMAINDER 



39 



DIV 



DIVIDE 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK J D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


11 


1 

(DATA ADDRESS) 


1 

(NEXT ADDRESS) 


0/1 


o/Of/ 4 


5 11|12 17 


18 24|25 


30 


31 



The contents of the double length accumulator (combined UPPER and LOWER) 
are divided by the contents of the memory location specified by the Data- 
address. The quotient is left in the UPPER Accumulator, and the remainder 
is left in the LOWER Accumulator. The remainder is always a positive 
value, regardless of the sign of the quotient, so that the dividend minus 
the remainder will always equal the divisor times the quotient. 

The Data-address may be modified by indexing. 

NOTE": This instruction should not be executed in Repeat Mode nor with 
the eight-word LOWER Accumulator. 

Minimum time 70 word times 

Overflow Turns on Branch Control 

Branch Control Turned on by overflow 

Registers affected UPPER and LOWER Accumulators 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 



COMBINED UPPER AND 




LOWER ACCUMULATOR 



B 



UPPER ACCUMULATOR 



B-A 



LOWER ACCUMULATOR 



+ REMAINDER 



40 



SHIFT RIGHT OR LEFT 



SRL 







INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


12 


OOO OR 001 


(SHIFT COUNT) 


1 

(NEXT ADDRESS) 


0/1 


oliDO 4 


5 11 


12 17 


18 24 |25 


30 


31 



If the D-track field of the Instruction Word contains 000, shifts the 
contents of the double length accumulator (combined UPPER and LOWER) 
to the right by the number of bit positions specified in the Shift 
Count. Bits shifted out of the low order bit position are lost. The 
sign bit is duplicated in vacated bit positions. 

If the D-track field contains 001, shifts the contents of the double 
length accumulator to the left by the number of bit positions speci- 
fied in the Shift Count. If overflow occurs, turns on Branch Control. 
Bits shifted out of the sign position are lost. Vacated bit positions 
are filled with zeroes. 

The Shift Count and/or direction of shift may be modified by indexing. 

NOTE: This instruction should not_ be executed in Repeat Mode nor with 
the eight-word LOWER Accumulator. 

Minimum time 7 word times plus 1 for each 

bit position shifted. 

Overflow Turns on Branch Control. 

Branch Control Turned on by overflow 

Registers affected UPPER and LOWER Accumulators 



RIGHT SHIFT 

UPPER ACCUMULATOR LOW ER ACCUMULATOR 



BITS LOST 



r 



j 



BITS LOST 




LEFT SHIFT 

UPPER ACCUMULATOR LOWER ACCUMULATOR 




O's 



41 



SLC 



SHIFT LEFT AND COUNT 











INSTRUCTION 


WORD FORMAT 




COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK j N-SECTOR 


X-TAG 


13 


7/ 


Y%7/' 


W 


M^l 


| 

(NEXT ADDRESS) 


0/1 


oH0( 4 


5 




\ i 


12 17 


18 24 J 25 30 


3! 



The value contained in the double length accumulator (combined UPPER and 
LOWER) is shifted to the left until bit 1 contains the first significant 
magnitude bit, or until the sum of the D-sector value of the instruction 
word and the number of bit positions shifted equals 64. Following the 
shift, the LOWER Accumulator is cleared to zero, and the sum of the D- 
sector value and the number of shifts is placed in LOWER Accumulator bits 
12 through 17, modulo 64, That is, a sum of 64 will appear in the LOWER 
as zero, 

The Data-address may be modified by indexing. 

NOTE: This instruction should not be executed in Repeat Mode nor with 
the eight-word LOWER Accumulator . 

Minimum time 7 word times plus 1 for each 

bit position shifted. 

Overflow Not a factor 

Branch Control Not affected 

Registers affected UPPER, and LOWER Accumulators 



INITIAL CONTENTS 

COMBINED UPPER AND LOWER ACCUMULATOR 



FINAL CONTENTS 

UPPER ACCUMULATOR 



S K 



NORMALIZED A 



LOWER ACCUMULATOR 



NUMBER OF SHIFTS 



MULTIPLY 






INSTRUCTION 


WORD FORMAT 




COMMAND 


D-TRACK 1 D-SECTOR 


N-TRACK J N-SECTOR 


X-TAG 


14 


1 

(DATA ADDRESS) 


1 

(NEXT ADDRESS) 


0/1 


of HO a 


5 11 Il2 17 


18 24|25 30 


31 



P/. 



The contents of the UPPER Accumulator are multiplied by the contents of 
the memory location specified by the Data-address. The resulting double 
length product is held in the combined UPPER and LOWER Accumulators. 

The Data-address may be modified by indexing. 

NOTE: This instruction should not be executed in Repeat Mode nor with 
the eight-word LOWER Accumulator. 

Minimum time 70 word times 

Overflow Not a factor 

Branch Control — Not affected 

Registers affected UPPER and LOWER Accumulators 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 



UPPER 



] 




ACCUMULATOR 



B 



U 



COMBINED UPPER AND LOWER ACCUMULATOR 



(A * B)- 



LOWER ACCUMULATOR 



A 



43 



MPT 



MULTIPLY BY TEN 







INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK 1 N-SECTOR 


X-TAG 


15 


000 OR 064 


(ANY) 


1 

(NEXT ADDRESS) 


0/1 


fij) 4 


5 11 


12 17 


18 24 1 25 


30 


31 



If the D-track field of the Instruction Word contains 000, multiplies 
the contents of the UPPER Accumulator by IO.q, retaining the product 
in the UPPER Accumulator. 



If the D-track field of the Instruction Word contains 064, multiplies 
the contents of the LOWER 
on the LOWER Accumulator. 



the contents of the LOWER Accumulator by 10 1Q , retaining the product 



The D-track value may be modified by indexing. 

NOTE: Unlike MPY, this is an integral multiply in which the "q" of 
the product in the affected accumulator is the same as the 
"q" of the multiplicand. The sign bit is treated as another 
magnitude bit. 

Minimum time 4 word times 

Overflow Does not turn on Branch Control 

Branch Control Not affected 

Registers affected UPPER or LOWER Accumulator 



44 



PRINT FROM D-ADDRESS 



PRD 







INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK 1 N-SECTOR 


X-TAG 


16 




(ANY) 


(NEXT ADDRESS) 


0/1 




0/OOOO4 


5 11 


12 17 


18 24 1 25 


30 


31 



If the D-track field of the Instruction Word contains 000 — ^063, prints 
the character it represents on the selected output device(s). If the 
D-track field contains 064 *-127, selects the input and/or output de- 
vices or modes it represents. (See selection table below). The I/O 
interlock will be turned on, preventing the execution of another print 
instruction until completion of the current one, if the D-sector field 
contains any sector other than the first optimum sector (instruction 
location +2). If this sector is specified, the interlock will be by- 
passed. 

The D-track and D-sector values may be modified by indexing. 

Minimum time — 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected None 



INPUT/OUTPUT SELECTION CODES 



D-tra,ck 



64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
75 
76-94 
95 
96 
97 



4500 
4500 
4500 
4500 
4500 
4500 
4500 
4500 
4410 
4410 
4410 
4410 



4500 



Reader input 

Reader input--Punch output 

Reader input — Typewriter output 

Reader input — Punch and Typewriter output 

Typewriter input 

Typewriter input — Punch output 

Typewriter input — Typewriter output 

Typewriter input — Punch and Typewriter output 

Photo-reader, Forward and Search 

Photo-reader, Reverse and Search 

Photo-reader, Forward 

Photo-reader, Reverse 

Available for additional units 

Master reset (reset all units) 

Available 

Punch output 



45 



98 
99 
100 
101 
102 
103 

104,105 
106 

107-124 
125 
126 
127 



4500 


Typewriter output 


4500 


Punch and Typewriter output 




Available 


4500 


Punch output 


4500 


Typewriter output 


4500 


Punch and Typewriter output 




Search Mode 


4440 


High Speed Punch 




Available 




Copy Mode on 




Copy Mode off 




Reset output units 



NOTES 



1. Selection of a new input device automatically resets the previous 
one. Only one input device may be in the system at a time, 

2. Any combination of output devices may be included in the system 
at one time. A reset command is necessary to drop an output de- 
vice from the system. 



46 



PRINT FROM UPPER 



PRU 







INSTRUCTION WORD FORMAT 






COMMAND 


D-TRACK 


D-SECTOR 


N-TRACK J N-SECTOR 


X-TAG 


17 


OOO —127 


(ANY) 


(NEXT ADDRESS) 


0/1 


olOOOt 4 


5 11 


12 17 


18 24 125 


30 


31 



If the D-track field of the Instruction Word contains 000 — *-063, prints 
the character represented by the combination of bits 6 and 7 from the 
Instruction Word followed by the high order four bits of the UPPER Ac- 
cumulator . 

If the D-track field contains 064 — ^127, prints the character represen- 
ted by the high order six bits of the UPPER Accumulator. 

The I/O interlock will be turned on, preventing the execution of another 
print instruction until completion of the current one, if the D-sector 
field contains any sector other than the first optimum sector (instruc- 
tion location +2). If this sector is specified, the interlock will be 
bypassed. 

The D-track and D-sector values may be modified by indexing. 

Minimum time-- 4 word times 

Overflow---- Not a factor 

Branch Control Not affected 

Registers affected None 



EXT 



EXTRACT 





INSTRUCTION 


WORD FORMAT 




COMMAND 


D-TRACK | D-SECTOR 


N-TRACK I NSECTOR 


X-TAG 


18 


(DATA ADDRESS) 


(NEXT ADDRESS) 
■ 


o/i 


o/OOlO 4 


5 11 1 12 17 


18 24 125 30 


31 



Produces, in the UPPER Accumulator, the logical product of the contents 
of the UPPER Accumulator and the contents of the memory location speci- 
fied by the Data-address. The resultant product will contain l's in 
only those bit positions which are set to 1 in both the UPPER Accumula- 
tor and the memory word. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control — : Not affected 

Registers affected UPPER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 





A 1 




77Z 


'W^^^. 


v/fr. 






r 




UPPER ACCUMULATOR 


UPPER 


L ACCUMULATOR 






P 1 






LOGICAL (A X B) 


1 


r 






- J 



48 



MASKED MERGE LOWER 



MML 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK | D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


19 


(DATA ADDRESS) 


(NEXT ADDRESS) 


o/i 


OJOOIJ 4 


5 11 1 12 17 


18 24 |25 


30 


31 



The contents of the memory location specified by the Data-address are 
merged with the contents of the LOWER Accumulator under control of the 
mask in the UPPER Accumulator. In those bit positions where the UPPER 
Accumulator contains 0's, the LOWER Accumulator is retained. In those 
bit positions where the UPPER Accumulator contains l»s, the contents 
of the memory word replace the corresponding contents of the LOWER Ac- 
cumulator . 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers aff ected---LOWER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 



UPPER ACCUMULATOR 



B 



MASK 



LOWER ACCUMULATOR 



c 




UPPER ACCUMULATOR 




LOWER ACCUMULATOR 



COMBINED A & C 



49 




COMPARE MEMORY EQUAL 



COMMAND 



20 



GIOD 



INSTRUCTION WORD FORMAT 



D-TRACK 



D-SECTOR 



(DATA ADDRESS) 



11 I 12 



17 



N-TRACK 



IM-SECTOR 



(NEXT ADDRESS) 



18 



24 I 25 



30 



X-TAG 



0/1 



31 



Prior to performing the specified comparison, the Branch Control is 
turned off. 

Selected bits of the UPPER Accumulator are then compared with corres- 
ponding bits in the memory location specified by the Data-address. 
Only those bit positions indicated by l's in the LOWER Accumulator 
mask are compared. If the selected values are identical, the Branch 
Control is turned on to indicate a successful comparison. 

If the instruction is being executed in the Repeat Mode, the Sector 
Reference Timing Track is copied into bits 25 — *- 30 of the INDEX Re- 
gister during each comparison until a successful comparison is made 
or until completion of the repeat function, A successful comparison 
inhibits any further copying of the timing track. The memory loca- 
tion containing the value which compares successfully may then be 
determined by reference to the INDEX Register. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Conditionally set "On" or "Off 

Registers affected INDEX Register if executed in 

Repeat Mode. 



50 



COMPARE MEMORY GREATER 



CMG 



INSTRUCTION WORD FORMAT 



COMMAND 


D-TRACK 1 D-SECTOR 


NTRACK | N-SECTOR 


X-TAG 


21 


(DATA ADDRESS) 


(NEXT ADDRESS) 


0/1 


o/OJ0| 4 


5 n|i2 17 


18 24 125 


30 


31 



Prior to performing the specified comparison, the Branch Control is 
turned off. 

Selected bits of the UPPER Accumulator are then compared with cor- 
responding bits in the memory location specified by the Data-address. 
Only those bit positions indicated by l's in the LOWER Accumulator mask 
are compared. If the selected value in memory is greater than, or equal 
to the selected UPPER Accumulator value, the Branch Control is turned on 

If the instruction is being executed in the Repeat Mode, the Sector Re- 
ference Timing Track is copied into bits 25 — ► 30 of the INDEX Regis- 
ter during each comparison until a memory value equal to, or greater 
than the accumulator value is found, or until completion of the repeat 
function. If such a value is found, any further copying of the timing 
track is inhibited. The memory location which contains this value can 
then be determined by reference to the INDEX Register, 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Conditionally set "On or Off" 

Registers affected INDEX Register if executed in 

Repeat Mode. 



51 



TMI 



TRANSFER ON MINUS 





INSTRUCTION 


WORD FORMAT 




COMMAND 


D-TRACK | D-SECTOR 


N-TRACK 1 N-SECTOR 


X-TAG 


22 


(TRANSFER ADDRESS) 


1 

(NEXT ADDRESS) 


0/1 


°NW0< 


5 1 1 1 12 17 


18 24 1 25 30 


31 



If the UPPER Accumulator is negative (a "1" in bit position zero), con- 
trol is transferred to the instruction specified by the Transfer Address 
If the value is positive, the instruction has no effect, and the next 
instruction is that specified in the Next-address field. 

The Transfer Address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected None 



52 



TRANSFER ON BRANCH CONTROL 



TBC 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK | D-SECTOR 


N-TRACK 1 N-SECTOR 


X-TAG 


23 


(TRANSFER ADDRESS) 


(NEXT ADDRESS) 

1 ■■■■■■ 


0/1 


oioni 4 


5 11 1 12 17 


18 24 1 25 


30 


31 



1± the Branch Control is on, control is transferred to the instruction 
specified by the Transfer Address, and the Branch Control is turned off 
If the Branch Control is off, the instruction has no effect, and the 
next instruction is that specified in the Next-address field. 

The Transfer Address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control --Set to "Off" 

Registers affected None 



53 



STU 



STORE UPPER 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 1 D-SECTOR 


N-TRACK J N SECTOR 


X-TAG 


24 


(DATA ADDRESS) 


1 ' 

(NEXT ADDRESS) 


o/i 


oiiooo 4 


5 11 1 12 17 


1 - - 

18 2 4 | 25 


30 


31 



Stores the contents of the UPPER Accumulator into the memory location 
specified by the Data-address, replacing its current contents. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow -Not a factor 

Branch Control Not affected 

Registers affected Specified memory location 



INITIAL CONTENTS 

MEMORY REGISTER 


wmm 





UPPER ACCUMULATOR 



FINAL CONTENTS 

MEMORY REGISTER 



UPPER ACCUMULATOR 




54 



STORE LOWER 



STL 





INSTRUCTION 


WORD FORMAT 




COMMAND 


D-TRACK | D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


25 


1 

(DATA ADDRESS) 


(NEXT ADDRESS) 


0/1 


ojJOOl 4 


5 11 Il2 17 


18 24 1 25 30 


31 



Stores the contents of the LOWER Accumulator into the memory location 
specified by the Data-address, replacing its current contents. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected Specified memory location 



INITIAL CONTENTS 

MEMORY REGISTER 




LOWER ACCUMULATOR 



B 



D 



FINAL CONTENTS 

MEMORY REGISTER 



B 



LOWER ACCUMULATOR 





m 




za 



55 



CLU 



CLEAR UPPER 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK | D-SECTOR 


N-TRACK | N-SECTOR 


X-TAG 


26 


1 

(DATA ADDRESS) 


1 

(NEXT ADDRESS) 


0/1 


o/lblO 4 


5 11 1 12 17 


18 24 1 25 


30 


31 



Stores the contents of the UPPER Accumulator into the memory location 
specified by the Data-address, replacing its current contents. Clears 
the UPPER Accumulator to zero. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected Specified memory location and 

UPPER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 




UPPER ACCUMULATOR 



B 



FINAL CONTENTS 

MEMORY REGISTER 



B 



UPPER ACCUMULATOR 



000 



5b 



CLEAR LOWER 



CLL 



COMMAND 



27 



olfQff 4 



INSTRUCTION WORD FORMAT 



D-TRACK 



d 



•SECTOR 



(DATA ADDRESS) 



II 112 



17 



N-TRACK 



I 



N-SECTOR 



18 



(NEXT ADDRESS) 

T 



24 | 25 



30 



X-TAG 



o/i 



31 



Stores the contents of the LOWER Accumulator into the memory location 
specified by the Data-address, replacing its current contents. Clears 
the LOWER Accumulator to zero. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Not a factor 

Branch Control Not affected 

Registers affected Specified memory location and 

LOWER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 




LOWER ACCUMULATOR 



I B I 



FINAL CONTENTS 

MEMORY REGISTER 



B 



LOWER ACCUMULATOR 



000 



51 



ADU 



ADD TO UPPER 



INSTRUCTION WORD FORMAT 



COMMAND 


D-TRACK | D-SECTOR 


N-TRACK 1 N-SECTOR 


X-TAG 


28 


J - 

(DATA ADDRESS) 


\ ■... — — 

(NEXT ADDRESS) 


0/1 


o f |# 60 * 


5 1 1 ■ 12 17 


18 24 1 25 


30 


31 



Adds the contents of the memory location specified by the Data-address 
to the contents of the UPPER Accumulator. Retains the sum in the UPPER 
Accumulator . 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Turns on Branch Control 

Branch Control Turned on by overflow 

Registers affected UPPER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 



A 






wmmmm 
















UPPER ACCUMULATOR 






UPPER ACCUMULATOR 


B 






A + B 









58 



ADD TO LOWER 



ADL 



COMMAND 



29 



HfOI 



INSTRUCTION WORD FORMAT 



D-TRACK 



D-SECTOR 



(DATA ADDRESS) 

T 



11112 



17 



N-TRACK 



N-SECTOR 



(NEXT ADDRESS) 



18 



24 | 25 



30 



X-TAG 



0/1 



31 



Adds the contents of the memory location specified by the Data-address 
to the contents of the LOWER Accumulator. Retains the sum in the LOWER 
Accumulator . 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow Turns on Branch Control 

Branch Control --Turned on by overflow 

Registers affected LOWER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 



LOWER ACCUMULATOR 




B } 



FINAL CONTENTS 

MEMORY REGISTER 




LOWEP ACCUMULATOR 



A+B | 



59 



SBU 



SUBTRACT FROM UPPER 



COMMAND 



30 



oll/IO 



INSTRUCTION WORD FORMAT 



D-TRACK 



I 



D-SECTOR 



(DATA ADDRESS) 

11 112 



17 



N-TRACK 



N-SECTOR 



(NEXT ADDRESS) 



18 



24 I 2 



30 



X-TAG 



o/i 



Subtracts the contents of the memory location specified by the Data- 
address from the contents of the UPPER Accumulator. Retains the dif- 
ference in the UPPER Accumulator. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow --Turns on Branch Control 

Branch Control Turned on by overflow 

Registers affected UPPER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 



FINAL CONTENTS 

MEMORY REGISTER 



UPPER ACCUMULATOR 



B 




UPPER ACCUMULATOR 



^ B-A I 



60 



SUBTRACT FROM LOWER 



SBL 





INSTRUCTION 


WORD FORMAT 






COMMAND 


D-TRACK 1 D-SECTOR 


N-TRACK I N-SECTOR 


X-TAG 


31 


(DATA ADDRESS) 


(NEXT ADDRESS) 


o/i 


• inn . 


5 U|12 17 


18 24|25 


30 


31 



Subtracts the contents of the memory location specified by the Data- 
address from the contents of the LOWER Accumulator. Retains the dif- 
ference in the LOWER Accumulator. 

The Data-address may be modified by indexing. 

Minimum time 4 word times 

Overflow-- Turns on Eranch Control 

Branch Control Turned on by overflow 

Registers affected LOWER Accumulator 



INITIAL CONTENTS 

MEMORY REGISTER 



LOWER ACCUMULATOR 



I 




FINAl CONTENTS 

MEMORY REGISTER 




LOWER ACCUMULATOR 



B-A 



61 



1 



5 



I PROGRAMMING 
| TECHNIQUES 



I 



Programming, in general, may be thought of as encompassing three separate 
areas of activity — organization, coding and testing. 

Program organization involves a determination of the processing methods 
to be used, the format of input and output data, the storage and arrange- 
ment of computational tables and constants, and the sequence in which the 
various operations within the program are to be performed. It is often 
convenient to divide a lengthy program into a number of smaller units, 
called subroutines, each of which performs some well-defined function 
necessary to the operation of the program. 

Program coding is the process of perparing the step-by-step list of in- 
structions that the computer is to execute in performing a required 
processing task. This coding may be in absolute form (machine language) 
which is directly assimilable by the computer, but is more often in some 
symbolic form which, in turn, requires translation by a previously writ- 
ten program as it is loaded into the computer. In any case, the coded 
program must represent an unambiguous statement of the operations to be 
performed, the locations of the data to be operated upon, and the se- 
quence of execution of the included instructions. 

Program testing, or "debugging", necessarily follows the coding of a 
program or subroutine. It is a rare program which functions perfectly 
on the first try. Normally, the first consideration in debugging is the 
logical design of the program; that is, the sequencing and storage of 
the program and its data. When it has been determined that the program 
has no unexplained halts or endless loops, it is usual to verify some 
program output against predetermined expected results. 



This being accomplished, it is advisable to test the limits of the progra 
with respect to the designed value ranges and data handling capacity. 
Finally, if the program has been written and checked out in the form of 
individual subroutines, an assembly test must be run to eliminate any 
storage conflicts and to assure proper communication between these sub- 
routines. 



m 



62 



PROGRAM ORGANIZATION 

In order to effectively organize a program to be executed by the computer, 
the problem must first be defined in such a way as to enable the program- 
mer to evaluate the program requirements in terms of input, output, table 
structure and memory utilization. 



Consider the following hypothetical probl 



em 



An air freighter wishes to provide the fastest possible service to 
any destination from any one of five distribution bases. He has at 
his disposal 25 aircraft consisting of five each of five different 
types. Each type has a different cruising speed and range. Fol- 
lowing each delivery, the aircraft is to be routed to that base 
which is nearest in terms of time. An aircraft may be removed from 
service or returned to service at any time. When an aircraft has 
logged 100 hours of flight time, it must be removed from service for 
maintenance , 

At any given time, the aircraft may be dispersed in any manner among 
the five bases or in the air. Following any landing, the aircraft 
must be allowed one hour of ground time before a subsequent take-off, 

The program must accomplish the following functions: 

1. In response to an input message, select the aircraft which will 
provide the fastest service to the specified destination. The input 
message is to consist of the name of the destination, the time of 
day, and the course, distance and wind from each of the five bases. 

2. Print an Aircraft Assignment message consisting of departure 
base, destination, ETA to destination, new assigned base, ETA to 
new base, and aircraft number. 

3. Print a note if service cannot be provided to a specified des- 
tination. 

4. Print a note if more than 12 aircraft are out of service. 

5. In response to an input message, remove a specified aircraft 
from service or restore an aircraft to service 



INPUT MESSAGES 

two types of input message must be recognized and processed by the program; 
an Aircraft Assignment Request message, and an Aircraft Availability message 
The format of the input message should be such that it imposes no undue in- 
convenience on the person preparing the message, and that it may be handled 
in logical sequence by the program. 

63 



The A/C Assignment Request message may be conveniently composed as fol- 
lows : 

Destination * 
Time of Day* 

Base * Course/Distance/ * Wind DirectionA r ind Velocity/ * 
Base * Course/Distance/ * Wind Direction/Wind Velocity/ * 



END * 

Destination may be any place name not exceeding 42 characters in length, 
including spaces. 

Time of Day is entered in hours and minutes of the 24 hour clock. 

Base must consist of the city name only and must be one of the five de- 
parture points, Boston, Atlanta, Chicago, Dallas and San Francisco. 

Course/Distance/ must be entered as a compass course of up to 3 digits 
followed by a slash (/) followed by a distance of up to 4 digits fol- 
lowed by a slash (/) . Wind Direction/Wind Velocity/ must be entered 
as a compass direction from which the wind is blowing followed by a 
slash (/) followed by a velocity of up to 3 digits, followed by a slash 
(/). Wind Velocity may not exceed 200 knots. END is entered as the 
word "END" to mark the termination of the message. 

The A/C Availability message must give the identification number of the 
aircraft involved, and indicate whether the aircraft is being made 
available or unavailable. The message may be set up in the following 
form: 

AIRCRAFT NO. DD-L * 

Position "L" will contain the single character U or A, standing for 
"unavailable" or "available", and must be the last character preceding 
the stop code. Position "DD" will contain a 2 digit aircraft number 
and must precede the stop code by 3 character positions. 



OUTPUT MESSAGES 

Three types of output message are required of the program; an Aircraft 
Assignment message, an Aircraft in Maintenance message, and a Service 
Availability message. For the purpose of our hypothetical problem, the 
A/C Assignment message will consist of the headings, DEPARTURE, DESTI- 
NATION, ETA, NEW BASE, ETA, and A/C NO., with the appropriate 'message 
entry beneath each heading. If an ETA falls on a day other than the day 
of the message, it will be followed by a plus sign (+) with a number indi- 
cating the number of days following the day of the message. Thus, an ETA 
of 0200 + 2 will mean 2:00 A.M. on the second day following the message. 

64 











B 


4- 






^ 


Initialize 






^ 








Error 
Stops 
















^ 














\y 


R 




Input and store dest. 
or availability message 












Input & store message 

time, and update 
time-to-go in A/C table 




u 


T 




V 


V 






Input course, distance 

and wind and compute 

ground speed out and 

back for one base 




Update entry 
in A/C table. 






PI 


^ 










Error 






3 

a> 

E 

"o 

-0 

B 
UJ 




Error 




a> 

t/> 

ro 

.0 

"S 
c 
Jijj 

c 

(U 


► 












1 


r 


E 




O) 

00 

E 




Compute new shortest 
time to destination 


Store base and 

distance in table 

with ground speed back 














Q 


Error 


Select new base 


«S0 I 

8 








2 1 




Update entry 
in A/C table. 




E 


«L> 

C 

,0 














1 






c 

3 
"S3 


1 


r 


S 




r 


H 






Print note 

if service not 

available 




Print 
message 
headings 






i 


a. 


e 

CO 

"S5 






1 


f 


P 








M 


c 

c 
a 
"S3 




x» 




Output 
A/C assignment 




Print note if 
A/C in service 








w 
























mess 


age 




less tha 


n 1 


5 





FIGURE 8. System Flow Chart For Example Problem 



65 



The Aircraft in Maintenance message will be printed whenever more than 12 
aircraft are out of service and will read as follows: 

DD AIRCRAFT IN MAINTENANCE 

Position DD will contain the number of aircraft in maintenance. The Ser- 
vice Availability message will be printed when no aircraft of sufficient 
range are available for service to a requested destination and will read 
as follows: 

SERVICE NOT AVAILABLE TO L L 

Position L ••• L will contain the requested destination. 



SYSTEM FLOW CHART 

Having defined the problem and its input and output requirements, it is 
usually helpful to prepare a system flow chart to indicate in broad terms 
what each subroutine of the program is to accomplish and to establish the 
lines of intercommunication between subroutines. 

Such a flow chart for the problem under discussion identifies ten separate 
subroutines, each performing a portion of the overall problem solution and 
each communicating with one or more associated subroutines. Breaking a 
program down in this manner facilitates its preparation in that each sub- 
routine can be separately coded and checked out before attempting to run 
the whole program. 



TABLE ORGANIZATION AND STRUCTURE 

Many programs will consist, in part, of data tables to be used or main- 
tained by one or more of the subroutines incorporated in the program. 
The structure of the individual tables will be dictated by the manner 
in which they are to be used. It is not always possible to completely 
define the format of a table until the coding of the subroutine concerned 
is accomplished. However, the tables may be roughly defined and later 
modified as necessary to adapt them to the coding logic. 

For the program under discussion, the primary table is an Aircraft Status 
Table consisting of 25 words, each word containing six items of informa- 
tion relating to the availability status of a particular aircraft. The 
word format for the table is as follows: 



66 



s 


LOGGED TIME 


A/C No. 


TYPE 


BASE 


TIME-TO-GO 





1 7 


8 12 


13 15 


16 18 


19 




31 



Bit - Status indicator. = In service. 1 = In maintenance. 
Bits 1 - 7 -- Air time logged since maintenance in hours (0 -- 100) 
Bits 8 - 12 -- Aircraft number (1 -- 25) 
Bits 13 - 15 — Aircraft type (0 -- 4) 
Bits 16 - 18 -- Current base assignment (1 — 5) 

Bits 19 - 31 -- Time in minutes until a dispatched aircraft is available 
for re-assignment. 

There are two smaller tables which are directly associated with the Air- 
craft Status Table as follows: 

Airspeed Table — five words containing the cruising speed in 

knots at a "q" of 31 for each of five air- 
craft types. 

Range Table — five words containing the range in minutes 

at a "q" of 31 for each of five aircraft 
types . 

When an A/C Assignment Request message is received, the departure base 
is input in four -bit mode and compared with the contents of a six word 
Base Table in order to determine the identification number of the base. 
The last word of the Base Table contains the four-bit configuration for 
END and serves to identify the end of a message. 

For solution of the wind triangle to compute ground speed, a 91 word 
table of sines is used with the values scaled at a "q" of 1. 

Four tables are used to hold preset print images for the typed program 
output. In addition to the above preset tables, the program generates 
temporary tables as follows: 

Destination Storage — eight words used to hold the input destina- 
tion in alphanumeric form until it is printed as 
part of an output message. 

Sin W Storage — Five words used to hold the sine of the angle op- 
posite the wind vector for five airspeeds. 

Ground Speed to Destination — Five words used to hold the computed 
ground speeds to destination for five aircraft types 

Ground Speed to New Base -- 25 words used to hold ground speeds and 
distances for five aircraft types to five bases. 



67 



PROGRAM CODING 

A program may be coded in any one of several forms or languages each with 
its own rules of procedure to be followed. As previously stated, machine 
language implies numerical coding in a form which corresponds directly 
with the internal word and memory formats employed in the design of the 
computer. This language, although meaningful to the computer, requires 
considerable experience on the part of the programmer before it can be 
handled with any degree of facility. It further imposes on the program- 
mer the burdens of optimizing and memory storage allocation. 

Compiler languages are problem oriented languages which require proces- 
sing by a compiler program for conversion to a language usable by the 
computer or by an assembly program. Compiler languages normally are in 
a form which closely approximates standard algebraic notation. The RPC- 
4000 compiler, COMPACT, is the subject of a separate publication, 

The language which will best serve our purpose in discussing programming 
techniques is the language of the assembly program, ROAR (RPC-4000 Opti- 
mizer and Assembly Routine). An assembly program permits coding in a 
symbolic language in which each machine instruction is represented by one 
symbolically noted assembly instruction. The assembly program ROAR, will 
interpret mnemonic commands and will assign optimum absolute memory 
locations for locations which are expressed symbolically. It will also 
act upon a number of pseudo-instructions to reserve blocks of memory, set 
up addressable regions for block storage, set up constants, etc. These 
pseudo-instructions will be discussed as they are encountered in out study 
of techniques. 



THE ROAR CODING FORMAT 

The coding sheets used with ROAR consist of five fields with the headings, 
Location, Order, Data-address, Next-address and Comments. The vertical 
line to the right of each field implies a "stop" code (*) which must be 
entered into the punched symbolic input tape. ROAH requires five such 
"stop" codes for each coding sheet entry, whether or not the associated 
field is blank. 

The Location, Data-address and Next-address fields may contain an ab- 
solute memory location or a symbol representing a location to be assigned 
by ROAR. Symbolic addresses may not normally exceed five characters in 
length and must contain at least one non-numeric character. Six-char- 
acter addresses are used only for certain special addressing functions. 
Fields may be left blank subject to certain rules to be defined later. 

The Order field will contain a machine command or a ROAR pseudo-in- 
struction and may be in mnemonic or numeric form. An indexed command 
is indicated by appending an X immediately preceding the order code, If 
a numeric command' is used, the X must precede at least two digits. 



68 



The Comments field may contain any information the programmer desires 
except that no "stop" code may be used except the one which identifies 
the end of the field. 

RPC-4000 CODING SHEET 



LOCATION 


ORDER 


DATA 
ADDRESS 


NEXT 
ADDRESS 


COMMENTS 


START 


RAU 


1234 




Bring contents of location 1234 




XSTU 


SAVE 


NEXT 


Store in SAVE plus index value 


NEXT 


X24 


HOLD 




Store in HOLD plus index value 




HLT 





CONT 


Halt 













SPACE RESERVATION 

Usually, the first step in coding a program is to assign storage locations 
for various tables and word blocks required by the program. It is also 
often desirable to pre-establish absolute addresses for particular key 
symbols, as for example, the initial location of the program. 

The ROAR pseudo-instruction, RES, will cause ROAR to reserve the block of 
memory between and including the specified initial and final location. By 
"reserve" is meant that ROAR will not assign, to any instruction or con- 
stant, any location in the reserved area except through the use of the 
pseudo-instruction, EQV . 

The pseudo-instruction, REG, sets up and reserves a block of memory which 
may be addressed by a special region address symbol, containing a region 
tag followed by a number indicating the word location relative to the 
initial location of the region. The pseudo-instruction EQR, will equate 
a location symbol with any desired memory location and will then reserve 
this location, preventing its subsequent assignment to another symbol, 
except through the use of the pseudo-instruction EQV. 

The pseudo-instruction, EQV, functions essentially the same as EQR, except 
that it is assumed that the location has been previously reserved. 

Consider the following coding sequence for space reservation in our example 
problem: 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



RES 4000 12200 ROAR, CATRO, BOOTSTRAP 
REG A03500 3531 Aircraft Status Table 



69 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



REG 


D03532 


3539 


REG 


T03540 


3547 


REG 


W03548 


3551 


REG 


V03552 


3556 


REG 


B036Q0 


3605 


REG 


P03606 


3610 


REG 


G03611 


3615 


REG 


R03616 


3620 


REG 


MO 3621 


3631 


REG 


N03632 


3636 


REG 


C03637 


3641 


REG 


HO 3642 


3652 


REG 


S03700 


3826 


RES 


3827 


3851 


EQV 


EGSNB 


3827 



EQR START 



COMMENTS 

Destination or Availability Message 

Elapsed time 

Instruction words 

Sin W for 5 airspeeds 

Base Reference Table 

Airspeeds 

Ground Speeds to Destination 

Range in minutes 

Base print image 

A/C Maintenance print image 

-Service Not Available- print image 

Column headings 

Sine Table 

Ground Speeds to New Base 

First location of Ground Speeds to 

New Base 

Beginning location of program 



The first entry serves to confine the program to the lower 40 tracks of 
memory. Since ROAR, itself, does not occupy any memory below track 52, 
this allows us to keep ROAR intact in memory while checking out or operating 
our prograon. It also allows the space from track 40 through track 51 to be 
used for the bootstrap routine which ROAR provides for loading the assembled 
program into memory, and for utility programs, such as Change and Transfer 
which are helpful in debugging. The double access tracks, 123 thru 126 and 
the recirculating track, 127, are automatically reserved by ROAR and need 
not be reserved by the program. 

The next 14 entries set up region storage for the tables discussed pre- 
viously, and in one instance, Region W, for four program instructions which 
require contiguous memory storage. Region S, for example, will occupy 91 
locations, beginning at location 3700 and ending at 3826. Location 3700 
will be addressed in the program by the special regional address, A00001, 
and location 3826 by A00091. 

The table of "grou:nd speeds to new base" is not set up as a region, but 
the space is reserved by the RES pseudo-instruction. The initial loca- 
tion is symbolized EGSNB, hence the symbol is made equivalent to location 
3827, using the pseudo-instruction EQV. 

Finally, the beginning location of the program is established as START 
and is assigned the location 00000 which is reserved through the use of 
the EQR pseudo-instruction. Any reference in the program to the symbo- 
lic location START will be interpreted by ROAR as absolute location 00000. 

Note that J che location column in all of the above is left blank. Since 
none of t 1 ne pseudo-instructions RES, REG, EQR, or EQV, generate any words 
to be stored in memory, a location for the pseudo-instruction is inap- 



70 



propriate. Note also that, in any field, leading zeroes may be omitted 



SUBROUTINE R 

We will bypass, for the present, the discussion of initialization, since 
it cannot be determined what initialization is necessary until the other 
subroutines have been coded. 

Subroutine R, as indicated on the System Flow Chart, is to input and 
store in memory the destination portion of an A/C Assignment Request 
message, or an entire A/C Availability message. It must, of course, 
determine which type of message is being processed. 

If the message is an A/C Assignment Request, Subroutine R is to perform 
the additional functions of reading in, from tape or typewriter, the 
message time, and up-dating the Time-to-go item in the Aircraft Status 
Table. 

It is advisable, for each subroutine in a program, to draw a detailed 
flow chart of the logical pattern to be followed in coding the subroutine, 
Such a flow chart enables the programmer to clearly visualize the instruc- 
tion sequences necessary to accomplish the required functions. It is ex- 
tremely helpful in avoiding the many pitfalls and logical traps which are 
a part of any complex problem. 

The initial action of Subroutine R is to test the setting of SENSE SWITCH 
1. If down, typewriter input and output will be selected: if not, tape 
reader input and typewriter output will be selected. It is assumed at 
this point that the LOWER Accumulator will have been set to 8-word length 
during initialization. An input is called for and stored in the eight 
word Region D. A test is then made to determine the type of message and, 
if an. Aircraft Availability Message, control is transferred to Subroutine 
V. Otherwise, the time of day is input. 

The time of day is input in hours and minutes of the 24 hour clock. The 
hours and minutes are now binarized separately, and converted to minutes 
in binary form. This time is then compared with the previous message 
time to compute an elapsed time and this elapsed time is duplicated in 
the eight words of Region T. The new time of day is then stored in lo- 
cation, MTIME, 

A block of eight words is brought into the 8-word LOWER from the Air- 
craft Status table stored in Region A. The elapsed time is then sub- 
tracted from each of the eight words in the LOWER. An eight pass loop 
is programmed here in which each word in turn is exchanged into the 
UPPER Accumulator and tested for a negative sign bit. If negative, the 
associated aircraft has completed its last assignment and its time-to-go 
is set to zero. When eight words have been processed, they are precessed 
to their original positions in the LOWER, and stored back into Region A. 



71 




\ 


r 




Binarize two 
hour digits. 




1 


' 




Hold hours 

in X. 
Clear U. 




1 


r 




Binarize two 
minute digits. 




i 


' 




Hold minutes 
in X. Put 

hours in U. 




1 


r 




Convert hours to 




in RE 


CRC4 





Compute total 

time in minutes. 

C (X) +C (RECRC4) 

Clear X 



Compute 
elapsed time 
since previous 

message 



Store elapsed 

time in eight 

locations of 

Region T. 



Store new 
time-of-day 
in MTIME. 
Set L to 
8 wd length 



9 



Put time-togo 

for 8 A/C in 

8-word L. 



Modify address 

of ABOVE 

to equal X 

setting 




Subtract elapsed 

time from all 

8 words. 

Clear X. 



Step X by 8 
I 




Clear 

time-togo 

toO 



Store new 
time-togo for 
8 A/C in table 



Set X to 0, 
8, 16 or 24 



Step X by 1 




Precess contents 

of 8-wd lower 

to original position 



FIGURE 9. Flow Chart - Example Subroutine R 



72 



The index reference is increased by eight, and a test is made to determine 
whether the entire table has been updated. If not, another pass is made 
through the main loop to process the next eight words. If finished, con- 
trol is transferred to Subroutine T. 

Consider now the ROAR coding of Subroutine R. 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





TAG 


R 




INPUT 


SNS 


100 






TBC 


TW 






PRD 


6699 


MREAD 


TW 


PRD 


7099 


MREAD 


MREAD 


INP 


6400 






LDC 


NT7 






CLL 


D00001 






EXC 


298 






EXC 


3698 






RAU 


1A 






RAL 


3F 






CMG 


D00001 






TBC 




AVMES 




CLU 


JUNK 






EXC 


598 






INP 









EXC 


298 






SRL 


12 






MPT 


98 






CLU 


RECRCO 






SRL 


104 


PR2 


3F 


HEX 


3 


F000 


1A 


HEX 


1 


A000 


NT7 


DEC 


24 


7 


PR2 


ADU 


RECRCO 






EXC 


1298 






SRL 


104 






MPT 


98 






CLU 


RECRC7 






SRL 


104 






ADU 


RECRC7 






EXC 


1298 






SRL 


102 






STU 


RECRCO 






SRL 


104 






SBU 


RECRCO 





COMMENTS 



Message input 
Test Sense Switch 1 
If down, go to TW 

Select reader input, typewriter output 
Select typewriter input, typewriter 
output 

Input destination or availability mes- 
sage 

Store input 

Clear U 

Clear X, L = 1 



Check for number in bits 14-19 

If yes, go to AVMES 

Clear U 

Clear L and X 

Time of Day 

L to U 

Binarize hours 



Mask for last digit of A/C number 
Test constant 
Repeat count of 7 

Hours to X, to U 

Binarize minutes 



Minutes to X, hours to U 
Convert hours to minutes 



73 



DATA NEXT 

LOCATION ORDER ADDRESS ADDRESS 





CLU 


RECRC4 






EXC 


1298 






ADU 


RECRC4 






EXC 


198 






SBU 


MTIME 






TMI 




POS 




ADU 


DAY 


POS 


POS 


LDC 


NT7 






STU 


T00001 






CLL 


MTIME 






EXC 


1698 






RAU 


TMSK 


PR3 


DAY 


DEC 


31 


1440 


PR3 


LDC 


NT7 






XMML 


AOOOOl 






LDC 


NT7 






SBL 


T00001 






LDX 





FLIP 


FLIP 


XEXC 


390 






TMI 




BYP 




CLU 


JUNK 


BYP 


BYP 


XLDX 


1 






CXE 


9 






TBC 




FLIP 




LDC 


NT62 






EXC 


398 


ABOVE 


ABOVE 


LDX 


00 






LDC 


NT7 






XMST 


AOOOOl 






XLDX 


8 






CXE 


32 






TBC 


TBELO 






EXC 


1298 






SAU 


ABOVE 






EXC 


1298 


PR 3 


NT62 


DEC 


24 


62 


TMSK 


HEX 





1FFF 



COMMENTS 



Store converted hours 
Minutes to U, to X 
Compute time in minutes 
Message time to L 
Compute elapsed time 
Test for minus 
If yes, add 24 hours 

Store elapsed time in 8 locations 
Store new message time 
L = 8 

24 hours in minutes 

Get current time-to-go for 8 A/C 

Compute new time-to-go 

U to L, L to U 

Test time-to-go for minus 

If yes, clear to zero 

Step X 

Test for finish 8 A/C 

If no, go to FLIP 

Precess L to initial position 



Store new time-to-go's 

Step X by 8 

Test for finish - full table 

If yes , go to TBELO 

X to U, U to X 

Set up for next pass 

X to U, U to X 

Repeat Count of 62 

Mask for time-to-go 



The first entry is the ROAR pseudo-instruction TAG. It requires no 
Location and no Next-address. It causes ROAR to append the character 
from the Data-address field to every symbolic location or address of 
four characters or less, as it is placed in ROAR's bookkeeping Symbol 
Table. This allows identical symbols to be used for other locations 
in the other subroutines of the program, without being ambiguous to 
ROAR in making its memory allocation assignments. Five character sym- 
bols are not tagged in this manner, and are used wherever communication 



74 



between subroutines is required. 

There are two entry points in this subroutine, labelled INPUT and MREAD. 
The normal entry is INPUT. MREAD is used for entry only after certain 
error stops. 

The rules governing blank fields are these. For any instruction word, 
either the Data-address or the Next-address, but not both, may be left 
blank. If one of these fields is left blank, the location field of the 
following instruction or constant must also be blank. If both the Data- 
address and the Next-address fields of an instruction are occupied, the 
Location field of the following instruction or constant must contain a 
symbolic or absolute location. When ROAR encounters a blank address, it 
supplies an optimum memory address and assumes that the following word 
is to be located at that address in memory. These rules do not apply to 
such pseudo-instructions as TAG where no memory allocations are involved. 

The first action of Subroutine R is to select input and output devices 
depending on the setting of SENSE SWITCH 1. Note that the PRD instruc- 
tions contain the artificial Data-sector 99. This causes ROAR to assign 
the same sector number as was assigned to the location of the instruction. 
This sector assignment has no bearing on optimization, but is necessary in 
order to honor the print interlock (See pages ) . 

At location, MREAD, an Input instruction is executed to read into the 
8-word LOWER a destination or an Aircraft Availability message. A 
Repeat Count of 7 is then set by the LDC instruction, and the eight 
words in the LOWER are cleared into Region D. 

The UPPER Accumulator and the INDEX Register are now cleared to zero. 
The artificial sector number, 98, in the Exchange instructions causes 
ROAR to assign an optimum sector number for the Data-address. 

At this point it is necessary to determine the type of message being 
processed. This is accomplished by testing the third from last char- 
acter of the message just stored in Region D against a six-bit char- 
acter, A, in the corresponding bit positions of location 1A. An A/C 
Availability message will always have a number in this character 
position. An Aircraft Assignment Request message will always have 
an alphabetic character or punctuation mark in this position and the 
magnitude of its bit pattern will always be equal to or greater than 
the character A. If the comparison test indicates that this character 
position contains a number, control is transferred to Subroutine V at 
location AVMES . 

When it is determined that a destination is in Region D, the time of 
day is input with the LOWER in 1-word mode. This time must now be con- 
verted from hours and minutes, which are in the LOWER in BCD form, to 
minutes in binary form. The first character of the hours is placed in 
the low order four bits of the UPPER, multiplied by 10, and cleared into 



75 



the Recirculating Track, 127. The second character is now shifted into 
the UPPER and added to the value placed on Track 127. The hours in 
binary are then stored temporarily in the INDEX Register, and the minutes 
are binarized in the same manner. Next, the binarized minutes are stored 
in the INDEX Register while the hours are brought back to the UPPER and 
converted to minutes. 

This could of course be accomplished by multiplying by 60. But for certain 
small values, it is faster to program this multiplication by a series of 
steps such as is used here. The hours are first shifted left two binary 
places, which produces a multiplication by 4. This value is stored in 
Track 127 and the hours, still in the UPPER, are shifted left four more 
places, producing a multiplication of the original value by 64, The word 
stored on Track 127 is now subtracted from the contents of the UPPER, 
leaving a value which is 60 times the original hours value. This is 
combined with the minutes held in the INDEX Register to complete the time 
conversion process. 

Before proceeding with the next instruction sequence, there are several 
points which should be brought out. The artificial sector number 98 in 
the MPT instruction has the same function as was previously discussed 
in connection with the EXC instruction. References to Recirculating 
Track storage are coded in ROAR language with a 6-character symbol con- 
sisting of the letters RECRC followed by a prime modulo 8 sector number. 

ROAR will choose as an absolute address the next optimum occurrence from 
Track 127 of a location with a sector number whose modulo 8 equivalent 
is equal to that entered in the symbol. Thus, for RECRCO , ROAR might 
substitute 12700, 12708, 12756, whichever is most optimum. 

The three locations, 3F , 1A, and NT7 all contain constants using ROAR 
pseudo-instructions, HEX or DEC. A HEX constant is entered with the 
first four characters in the Data-address field, and the last four 
characters in the Next -address field. Leading zeroes in a field may be 
omitted except that at least one character must be entered. The DEC 
constant is entered with the desired "q" in the Data-address field, and 
the decimal number to be converted in the Next-address field, including 
a decimal point, if appropriate, and preceded by a minus sign if negative. 

Resuming our discussion where we were so rudely interrupted, we now 
proceed to compute the elapsed time since the last processed message. We 
subtract the previous message time held in location MTIME from our new 
time and test the sign of the result. If negative, we know that the pre- 
vious message occurred yesterday, and we must add 24 hours to produce the 
true elapsed time, It is assumed here that less than 24 hours have 
elapsed between messages. 

After completing the elapsed time computation, it is stored in all eight 
locations of Region T, and the new message time is stored in MTIME. 

The LOWER Accumulator is now changed to 8-word mode and a mask defining 



76 



the time-to-go field of the Aircraft Status Table is placed in the UPPER. 
Location PR3 marks the beginning of the major or outside loop to be used 
in updating the Availability Table. The INDEX Register at this time re- 
mains set to zero from a previous instruction. The repeated and indexed 
MML instruction brings into the eight words of the LOWER, the contents of 
the time-to-go field from the first eight words of the Aircraft Status 
Table in Region A. The mask in the UPPER defines the bits to be brought 
from memory. The eight identical elapsed time values from Region T are 
subtracted from the eight time-to-go's with a single repeated SBU instruction 

Location FLIP marks the beginning of the inside loop in the updating 
sequence. The artificial sector number 90 directs ROAR to assign a sec- 
tor equivalent to a modulo eight zero, so as to being LQ into the UPPER 
on the first pass. Lq is now tested for a negative sign bit. If minus, 
the elapsed time must have exceeded the time-to-go and the aircraft is 
now available for a new assignment. The time-to-go is, therefore, cleared 
to zero. Otherwise the new time-to-go has been computed and we go to lo- 
cation BYP where the INDEX Register is incremented by 1, Its setting is 
now tested to determine whether it has reached 9 and, if not, we return to 
location FLIP where the next LOWER Accumulator is brought into the UPPER 
at the same time that is replaced by the previously computed time-to-go. 

We will exit from the minor loop when the Index value reaches nine, at 
which time eight time-to-go's will have been processed and each will have 
been shifted or precessed by one word position in the 8-word LOWER. The 
repeated EXC which follows the minor loop is necessary to precess the 
eight values to their original positions in the 8-word LOWER so that we 
may store them in their proper table locations. The INDEX Register is now 
set initially to zero and the new time-to-go's are stored into the first 
eight locations of Region A. 

The INDEX Register is incremented by 8 and tested for a setting of 32. If 
not, the current setting is used to modify the Data-address of location 
ABOVE, so that on tne next pass the updated values will be stored into the 
proper 8-word block of Region A. We now return to PR3 to repeat the entirt 
process for the next eight words from the table being processed. When the 
entire table has been updated and the INDEX Register setting has reached 
32, we exit from Subroutine R to location TBELO, which is the initial lo- 
cation of Subroutine T. 



SUBROUTINE T 

Having updated the time-to-go field for all aircraft represented in the 
Aircraft Status Table, we may now proceed with the programming of the sub- 
routine which will solve the wind triangle to compute ground speed. 

As can be seen from the flow chart, the general procedure to be followed 
is this. A base is input as part of the A/C Assignment Request message, 
and checked against a table of bases, If it is not found, we exit to an 



77 





Save base 

number in 

ESAVB 



Sat X to 





Step X by 1 



Step X by 1 



Compute 

wind/course 

angle A 




Find sin A 
from table 



Multiply by 

wind velocity 

(w sin A) 



Compute sin W 

for 

5 airspeeds 

(w sin A/a) 



©- 



Compute 
ground speed 
(Airspeed plus 
wind velocity) 



fO 



©-* 



Compute 
ground speed 
(Airspeed minus 
wind velocity) 



Store ground 

speed to 
destination for 
one airspeed 



Reduce 

counter 

byl 



Store ground 
speed back to 

base for 
one airspeed 



Compute course 

from destination 

back to base 



Find angle A 

from table 

for one 

airspeed 




Compute 
angle G 
(180A-W) 



Compute 
ground speed 
(a sin G/sin A) 





Restore 

counter 

to 5 



Reverse 

exit/return 

switch 



Reverse 

ground speed 

storage 



<>=•© 



Return 



FIGURE 10. Flow Chart - Example Subroutine T 



78 



error halt in Subroutine B. If it is found to be an end-of -message code, 
we exit to Subroutine Q. If the base is found in the base table, its 
number is saved in location ESAVB , and its associated course, distance, 
wind direction and wind velocity are input, binarized and stored in turn. 

The angle between course and wind is now computed and is tested for 
equality to and 180. If either is true, we branch to a part of the 
subroutine which will handle these special cases. Otherwise, we find 
the sine of the angle from the table of sines in Region S. The sine of 
angle A is multiplied by the wind velocity and then divided by the air- 
speed for each of five aircraft types. We have now computed the sine of 
the angles between the airspeed and ground speed vectors by the equation, 
sin W = sin A / a . 

At this point, we enter a five pass loop in which we will compute the 
ground speed to destination for each of the aircraft types. To ac- 
complish this, we find angle W from the sine table, and compute angle 
G from the equation, G = 180 - A - W. We can then determine the ground 
speed from the equation, g = a sin G / sin A, where g represents the 
ground speed and G represents the angle between the airspeed and wind 
vectors. Having found the ground speed for one aircraft type, we store 
it in Region G and return for another pass through the loop until all 
five passes are complete. 

We also wish to compute in this subroutine the ground speeds from the 
destination back to base. Since the procedure is the same as that 
just described, it is necessary only to change the ground speed storage 
location, set up the necessary exit switches, compute the new course, 
and loop back to repeat the wind triangle solution. 



Coding for Subroutine T 

The subroutine is entered at location TBELO, where a constant consist- 
ing of all 1-bits is brought into the UPPER Accumulator and duplicated 
in the LOWER through the EXC instruction. A base input is then called 
for in 4-bit mode. Although an alphabetic character cannot be comple- 
tely defined in four bits, for our purpose the pattern produced will 
be sufficient to identify the base. In the case of SAN FRANCISCO, only 
the last eight characters entering the accumulator are of concern. 
UPPER and LOWER Accumulators are exchanged, putting a mask in the LOWER 
which is used with the repeated CME instruction to find a matching entry 
in the base table in Region B. If no match is found, we exit to an error 
halt in Subroutine B. 

If a match is found, bits 25-30 of the INDEX Register will contain the 
sector number of the matching entry, plus 1. It is important for our 
purpose that Region B begin at sector 00. If INDEX Register bits 25-30 
contain a 6, it indicates that the word END was read from tape. This 



79 



is determined by exchanging the INDEX Register contents into the UPPER 
and comparing these bits against the test constant at location THRU. 

If it is an end-of -message , we exit to location NOMOR in Subroutine Q. 
Otherwise, we save the base reference number in ESAVB , 

An input instruction is now executed, bringing into the accumulators 
the course and distance from base to destination. The termination of 
each of these values is marked by a slash (/) which has the numerical 
value 14 in 4-bit mode. The maximum number of characters which will 
be input is 9, which would bring no more than one into the UPPER. The 
course is binarized and, when the / is detected, we branch to the first 
location of Region W to store it in location CRSE . The INDEX Register 
is stepped by 1, and we return to BACK to binarize the distance. After 
storing the distance in ED 1ST, we loop back to PT2 to input the wind 
direction and velocity which are processed in the same manner. Note 
that we have used an indexed exit from an instruction sequence to one 
of four sequentially stored instruction words. In order to activate 
the XTBC, we precede it with an XCXE with a zero Data-address to un- 
conditionally turn on the Branch Control. 

The determination of angle A is fairly straightforward and should re- 
quire no detailed explanation, but it should be pointed out that 
"course 1 ' refers to the direction from the departure base to the desti- 
nation, while "wind direction" refers to the compass direction from 
which the wind is blowing. " 

Solving for sin W in the equation sin W = w sin A/a is simply a matter 
of using the first quadrant equivalent of angle A to index into the sine 
table to find sin A, and then multiplying by wind velocity and dividing 
by airspeed. This is done for an airspeed of 300 knots. To compute sin 
W for a 600 knot airspeed, we need only halve the first value by a right 
shift of 1. Now adding sin W for 300 knots, gives us sin W for 200 
knots and halving this value, gives us sin W for 400 knots. Finally, 
multiplying by the constant .8, located in JUG, gives us sin W for 500 
knots. These sin W values are stored in Region V in the order in which 
they are computed. 

With sin W for one airspeed in the UPPER, we now search the sine table 
for the first entry equal to or greater than the contents of the UPPER. 
We get the found sector plus one from bits 25-30 of the INDEX Register, 
subtract one from it, and use it to set the INDEX Register bits 5-17 to 
the correct table reference value. Note here the ROAR symbology used 
to refer to the double access tracks, The first three characters denote 
the track. DB1 refers to Track 123, while DB2 refers to Track 125. The 
last three characters have the same significance as any other location 
symbol. Both DB1QIK and DB2QIK designate the same word on the drum, but 
the DB2QIK reference is 16 word times later than DB1QIK. Double access 
is used here to permit two references to the same word in 16 word times 
instead of the normal 64. 



80 



After setting the INDEX Register at location DB2QIK, the sine value which 
compared with sin W is brought from the sine table into the UPPER. The 
five instructions beginning with location PT5 compute an interpolation 
factor. If an overflow occurs as a result of the DIV instruction, it 
means that an exact match was found in the table and no interpolation is 
required. We, therefore, proceed to compute angle G from the equation, 
G = 180 - A - W. Since we are really interested in the first quadrant 
equivalent of angle G, we may simply use the sum of angle A and angle W, 
if this sum is 90 degrees or less. 

If interpolation for angle G is required, we use the sequence of steps 
beginning at location NOVR to compute angle G. Actually, the nearest 
integral angle value above the true value is used as an index into the 
sine table to get the bracketing sine values, and the interpolation 
factor is applied to compute the sine of angle G. 

At location STOW, the just computed sin G is stored in RECRCO. We then 
set the Repeat Count from the variable parameter in ENTRA. This parameter 
will vary from 4 to depending upon the particular airspeed with which we 
are concerned. The repeated RAU instruction will bring into the UPPER each 
airspeed in turn from Region P, until the Repeat Count runs out. At this 
point, the required airspeed is in the UPPER Accumulator. The maximum and 
minimum possible ground speeds are now computed from the airspeed and wind 
velocity, and are placed in recirculating storage. Ground speed is now 
computed from the equation, g = a sin G/sin A. It is possible with a nearly 
direct head or tail wind to get a ground speed which lies outside the pos- 
sible range. The computed ground speed must now be compared against these 
limiting values. If it exceeds the maximum value, we branch to TAIL. If 
it is less than the minimum value, we branch to HEAD. Otherwise, we go to 
PT7 where a Repeat Count is set up to enable us to store the ground speed 
in the proper location of Region G by a technique similar to that discussed 
above . 

For those cases resulting in a branch to TAIL or HEAD, ground speed is com- 
puted simply by adding or subtracting wind velocity from airspeed before 
proceeding to PT7. 

When a ground speed has been stored, we proceed to location DECR, where the 
Repeat Count parameter is reduced by 1 and tested for a negative 'value . If 
not negative, angle A is brought back into the UPPER. If it is 0, we branch 
to TAIL. If it is 180, we branch to HEAD. If neither, the Repeat Count is 
set up, the next sin W is brought into the UPPER, and we return to AGIN to 
compute the next ground speed. 

When five ground speeds have been processed, the Repeat Count parameter will 
become negative at DECR plus 1, and at DECR plus 2, we will branch to lo- 
cation RSET. At RSET, ENTRA is again set to 4. The instruction at TERM is 
now modified to change its Next-address to GOON, and the original setting 
is saved in EXSW. The instruction at SAGS is modified to change its Data- 
address to EGSNB, which is the initial location of the table of ground speeds 
from destination to base. The original setting is saved in EGSSW. At GOON, 



the course is brought into the UPPER, and the reciprocal course from 
destination back to base is computed. We now return to location STOB 
to compute and store the five ground speeds back to base. 

When we again arrive at RSET, location ENTRA and the two switches at 
SAGS and TERM are reset to their original values, and at TERM control 
is transferred to location ENEXT in Subroutine E. 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



TAG 



TBELO 


RAU 


ALLF 






EXC 


3398 






INP 









EXC 


398 






LDC 


NT5 






CME 


B00001 






TBC 




ERROl 




EXC 


898 






RAL 


SMSK 






CME 


THRU 






TBC 


NOMOR 






CLU 


ESAVB 






EXC 


198 






LDX 





PT2 


THRU 


DEC 


30 


6 


SMSK 


DEC 


30 


63 


B00001 


HEX 


FFB8 


CD87 


B00002 


HEX 


FAD5 


A7DA 


B00003 


HEX 


FC12 


CA08 


B00004 


HEX 


FFDA 


55AC 


B00005 


HEX 


BA7C 


2CC8 


B00006 


HEX 


FFFF 


FE7D 


NT5 


DEC 


24 


5 


ALLF 


HEX 


FFFF 


FFFF 


PT2 


INP 





BACK 


BACK 


EXC 


398 






TMI 


ADD 


DEE 


DEE 


EXC 


398 


BIN 


ADD 


ADU 


2AT3 






TMI 




DUN 




SBU 


2AT3 


DEE 


DUN 


EXC 


398 






XCXE 









XTBC 


W00001 






Wind triangle solution for ground 

speeds 

Set to all l's 

U to L, L = 1 

Input A/C base 

Base to U, mask to L 

Search base table 

If not there, go to ERROl 

X to U 

Test for end of message 

Go to NOMOR if message complete 

Save base reference 

Clear L 

Test constant 

Mask for N-sector 

Boston 

Atlanta 

Chicago 

Dallas 

San F(rancisco) 

End 

Repeat Count of 5 

Mask 

Input course/distance or wind 

U to L, L to U 

If high order character greater 

than 7, go to ADD 

U to L, L to U 

If high order character is /, go to DUN 

U to L, L to U 

Turn on Branch Control 



82 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



BIN 


MPT 


98 






CLU 


RECRCO 






SRL 


104 






ADU 


RECRCO 


BACK 


W00001 


CLU 


CRSE 


GO 


W00002 


CLU 


ED I ST 


DOWN 


W00003 


CLU 


DIR 


GO 


W00004 


CLU 


VEL 


OUT 


GO 


XLDX 


1 


BACK 


DOWN 


XLDX 


1 


PT2 


OUT 


RAU 


CRSE 


STOB 


STOB 


SBU 


DIR 






TMI 


PT3 






SBU 


18E 






TMI 


CMPL 


USE 


CMPL 


CLU 


RECRCO 






SBU 


RECRCO 


USE 


18E 


DEC 


31 


180 


2AT3 


DEC 


3 


2 


PT3 


ADU 


18E 






TMI 


CMPL 


USE 


USE 


STU 


RECRC7 






RAL 


ALLF 






CME 


ZERO 






TBC 


TAIL 






CME 


18E 






TBC 


HEAD 






CMG 


9T 






TBC 


SINE 






RAU 


18E 






SBU 


RECRC7 


SINE 


SINE 


SRL 


114 






EXC 


498 






XRAU 


S00001 






STU 


RECRC4 






MPY 


VEL 






DIV 


CCC 






STU 


V00001 






SRL 


1 






STU 


V00002 






ADU 


V00001 






STU 


V00003 






SRL 


1 






STU 


V00004 






MPY 


JUG 


PT4 



COMMENTS 



Binarize 



Store course 

Store distance 

Store wind direction 

Store wind velocity 

Step X 

Step X 

Compute angle A 



Go to PT3 if wind direction greater 
than bearing 



Constant 
Test constant 



Store angle A 



Go to SINE if A 90 degrees or less 



U to X 

Get sine of angle 

Sin A @ 1 

w sin A @ 32 

w sin A / a = sin W @ 1 

Store sin W for a « 300 

Store sin W for a = 600 

Store sin W for a = 200 

Store sin W for a = 400 



83 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



JUG 

CCC 

9T 

PT4 

AGIN 



ANGL 



DB2QIK 

ZERO 

NS1 

NT26 

NT63 

PT5 



SHL 



NOVR 



DEC 
DEC 
DEC 
STU 
RAL 
LDX 
LDC 
CMC 
TBC 
LDX 
LDC 

XCMG 
TBC 
CLU 
EXC 
SBU 
EXT 
SRL 
SAU 

XLDX 

XRAU 
HLT 
DEC 
DEC 
DEC 

XSBU 
CLU 
RAU 

XSBU 
DIV. 
TBC 
EXC 
SRL 
ADU 
RAL 
CMG 
TBC 
CLU 
RAU 
SBU 
SRL 
EXC 

XRAU 
CLU 
EXC 
SRL 




31 

31 

V00005 

ALLF 



NT63 

S00001 

ANGL 

100 

NT26 

SO0C03 

ANGL 

RECRC6 

898 

NS1 

SMSK 

113 

DB1QIK 



S00001 



30 

24 

24 

S00000 

RECRCO 

RECRC6 

S00000 

RECRCO 

898 

14 

RECRC7 

ALLF 

9T 

SHL 

RECRC5 

18E 

RECRC5 

114 

498 

S.OOOOl 

RECRCO 

898 

14 



300 
90 
AGIN 



ERR02 



DB2QIK 



PT5 





1 
26 
63 



NOVR 



SHL 



STOW 



Constant 

Constant 

Constant 

Store sin W for a = 500 

Mask 



Search sine table for sin W 
If found, go to ANGL 



Search upper sine table for sin W 
If not found, go to ERR02 
Store sin W 
X to U 

Get found sector 

Set XLDX address to found sector 

Set X to relative location in table 

Get comparing table entry 

Constant 

Constant 

Repeat Count of 26 

Repeat Count of 63 

Subtract next lower entry 

Save entry interval 

Get sin W 

Subtract next lower table entry 

Compute interpolation factor 

If no overflow, go to NOVR 

X to U 

Compute A plus W 



If 90 degrees or less, go to SHL 



Compute angle G 

U to X 
Get sin G 

X to U 



84 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





ADU 


RECRC7 








RAL 


ALLF 








CMG 


9T 








TBC 


SFT 








STU 


RECRC5 








RAU 


1AT0 








SBU 


RECRCO 








CLU 


RECRCO 








RAU 


18E 








SBU 


RECRC5 




SFT 


SFT 


SRL 
EXC 


114 
498 








XRAU 


S00002 




PT6 


1AT0 


HEX 


8000 




0000 


PT6 


XSBU 
MPY 


SOOOOl 
RECRCO 








XADU 


SOOOOl 




STOW 


STOW 


CLU 
LDC 
RAU 

ADU 
STU 
SBU 
STU 
ADU 
MPY 
DIV 
RAL 
CMG 
TBC 

CMG 


RECRCO 

ENTRA 

POOOOl 

VEL 
RECRCl 

VEL 
RECRC2 

VEL 

RECRCO 

RECRC4 

ALLF 

RECRCl 

RECRC2 




TAIL 




TBC 


HEAD 




PT7 


POOOOl 


DEC 


31 


300 




P00002 


DEC 


31 


600 




P00003 


DEC 


31 


200 




P00004 


DEC 


31 


400 




P00005 


DEC 


31 


500 




ENTRA 


DEC 


24 


4 




PT7 


LDC 


ENTRA 




SAGS 


SAGS 


STU 


G00001 




DECR 


TAIL 


LDC 

RAU 


ENTRA 
POOOOl 








ADU 


VEL 




PT7 


HEAD 


LDC 
RAU 


ENTRA 
POOOOl 








SBU 


VEL 




PT7 


DECR 


RAU 


ENTRA 







COMMENTS 



Compute A plus W (high) 



If 90 degrees or less, go to SFT 



Complement interpolation factor 



Compute angle G (low) 



Get sin G (high) 

Compute G (low) - G (high) interval 

Interpolate 

Compute sin G 

Save 

Get airspeed 

Add wind velocity 

Save 

Save airspeed minus wind velocity 

Compute a sin G 
a sin G / sin A 



If computed ground speed greater than 
airspeed plus wind, go to TAIL 

If computed ground speed less than 
airspeed minus wind, go to HEAD 
Airspeed table 



Repeat Count parameter 

Store ground speed 

Get airspeed 
Compute ground speed 

Get airspeed 

Compute ground speed 

Get Repeat Count parameter 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





SBU 


NT1 






TMI 


RSET 






STU 


ENTRA 






RAU 


RECRC7 






CME 


ZERO 






TBC 


TAIL 






CME 


18E 






TBC 


HEAD 






LDC 


ENTRA 






RAU 


V00001 


AGIN 


RSET 


ADU 


NT5 






STU 


ENTRA 






RAU 


EXSW 






RAL 


TERM 






STL 


EXSW 


PT8 


NT1 


DEC 


24 


X 


PT8 


STU 


TERM 






RAU 


EGSSW 


TERM 


TERM 


SAU 


SAGS 


ENEXT 


GOON 


RAU 


CRSE 






SBU 


18E 






TMI 




STOB 




ADU 


36T 


STOB 


EGSSW 


HLT 


EGSNB 





EXSW 


SAU 


SAGS 


GOON 


36T 


DEC 


31 


360 



COMMENTS 

Reduce by 1 

If negative, go to RSET 

Store 

Get angle A 

If A = 0, go to TAIL 

If a = 180, go to HEAD 

Get next sin W and return to AGIN 
Reset Repeat Count parameter to 4 

Reverse exit/return switch 



Compute course from destination to 
base 



SUBROUTINE E 

We come now to the subroutine which will select, on the basis of the 
ground speeds provided by Subroutine T, the aircraft which will pro- 
vide the fastest service to the destination. It is entered from 
Subroutine T each time the ground speeds for one base are computed. 

The method of selection is this. The base reference number is used 

as a search key to bring from the Aircraft Status Table each entry 

for this base. When a table word is brought into the accumulator, the 

A/C type is extracted and used as a key to find the range from the 

5-word range table and the ground speed from the table prepared by 
Subroutine T. 

The time enroute is now computed and checked against the range for this 
A/C type. If the range is insufficient, this A/C is eliminated from 
the selection process and we return to select another A/C from the Air- 
craft Status Table. If an A/C has sufficient range, its time enroute is 



86 



© 



Get base No. 

and position 

to q - 20 



Search A/C 

table for entry 

for this base 



SetX 

= found 

sector 4- 1 



I 



Get word 
from A/C table 



I 



Extract 
A/C type 



I 



Get range 

for this type 

& store in RECRC 




Get G.S. to 
dest. for this 
type & store 



Get distance 

to 
destination 



I 



Compute time 

enroute 
(Dist. / G.S.) 



Add time-to-go 
from table to 
time enroute 



Store new 
best A/C 
in QUICK 





Set current 

fill location 

in G.S. back 

table 



Step fill 

location by 

5 for next pass 



Get distance to 

destination 

and base No. 



Insert in 
5 locations of 
G.S. back table 




Get base No. 

to search for 
next A/C 
this base 



I 



Get time 

enroute & store 

in RECRC3 



FIGURE 11. Flow Chart - Example Subroutine E 



87 



to its time-to-go value from the Aircraft Status Table, and this sum is 
checked against the last computed best time. If smaller, this new best 
time replaces the previous one and we return for the next A/C from the 
Aircraft Status Table. 

When all A/C assigned to this base have been processed, the distance and 
base number are stored in five locations of the Ground Speed Back Table. 
These five locations contain the ground speeds back to base for five A/C 
types previously computed by Subroutine T. The new information is stored 
under control of a mask so as to leave these ground speeds undisturbed. 

When finished, control is returned to Subroutine T to process the next 
base. 



Aircraft Status Table Search 

The coding of Subroutine E contains a search of the Aircraft Status Table 

for all entries associated with a particular base. At location ENEXT, the 

base reference number is brought from ESAVB. It is then positioned to 

agree with the base field in the table and a corresponding mask is placed 
in the LOWER. 

The INDEX Register is set initially to zero, and at PASS a Repeat Count of 
24 is set up. The XCME will now be executed in Repeat Mode, and for the 
first pass will begin its search with the initial location of the table. 
If no matching base is found, we branch to NOMO. If a match is found, the 
found sector plus 1 is exchanged into the UPPER and compared with a termi- 
nation constant stored at NS25 . For the first search, the constant will 
always be equal to or greater than the found sector plus 1, which is now 
shifted to a "q" of 17 and used to set the INDEX value. Since this value 
is one greater than the relative table location with which we are concerned, 
we ma.y bring the correct word from the table with an XRAU whose Data-address 
is one less than the initial location. In ROAR coding, we can express this 
initial location minus 1 for Region A as A00000. 

The A/C type from the table word is used as a key to select the proper range 
and ground speed. The coding sequence from location PE2 to PE3 computes 
time enroute, checks for sufficient range and determines whether the A/C 
presently being processed is a better choice than the previous A/C. At LONG 
the base number is again placed in the UPPER. The mask is brought back into 
the LOWER and we return to PASS for the next table search. 

Note that each time we return to begin a new search, the INDEX Value will 
be equal to the relative table location at which the search is to begin. 
Since we will always use a Repeat Count of 24 for this search, it is pos- 
sible that we may find a match which is beyond the end of the table. If 
this occurs, the found sector plus 1 will be greater than 25 and will be 
detected by the comparison with the termination constant, NS25 . In this 
event, we exit from the loop to location NOMO. 



At NOMO, we get from EGSSW the location at which the ground speeds back to 
this base are stored. This same address is then used as the Data-address 
of GSNB. The EGSSW Data-address is incremented by 5 to establish the 
storage block for the next execution of Subroutine T. The distance and 
base number are inserted into the table of ground speeds back to base with 
a Masked Store (MST) command and control is returned to Subroutine T. 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





TAG 


E 




ENEXT 


RAU 


ESAVB 






SRL 


112 






EXT 


BASS 






STU 


BASR 






RAL 


HEXB 






LDX 





PASS 


PASS 


LDC 


NT24 






XCME 


A00001 






TBC 




NOMO 




EXC 


898 






EXT 


SMSK 






RAL 


SMSK 






CMG 


NS25 






TBC 




NOMO 




SRL 


113 






EXC 


498 






XRAU 


A00000 






EXT 


HEXT 






SRL 


9 






STU 


RECRC1 


PE2 


HEXT 


HEX 


7 


0000 


NS25 


DEC 


30 


25 


SMSK 


DEC 


30 


6 3 


NT24 


DEC 


24 


24 


HEXB 


HEX 


8000 


E000 


BASS 


HEX 





E000 


PE2 


LDC 


RECRC1 






RAU 


R00001 






CLU 


RECRC0 






LDC 


RECRC1 






RAU 


G00001 






CLU 


RECRC1 






RAL 


EDIST 






SRL 


107 






DIV 


RECRC1 






MPY 


6T 





COMMENTS 



Compute new shortest time to destination 

Get base reference 

Position 

Save base reference 

Mask 



Search for available A/C 
Go to NOMO if finished 
X to U 
Get found sector plus 1 

Test for end of table 
If finished, go to NOMO 

U to X 

Get table entry 
Extract A/C type 
Position 

Store Repeat Count 
Mask for A/C type (0 to 4) 
Constant 

Mask for N-sector 
Repeat Count of 24 

Mask for base (1 to 5) and availa- 
bility bit 



Get A/C range in minutes 



Get ground speed to destination 

Store @ 31 

Get distance to destination @ 63 

Distance @ 56 

Compute time enroute <& 25 

Convert to minutes @ 31 



89 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





RAL 


TMSK 






CMC 


RECRCO 






TBC 




LONG 




XADU 


AOOOOO 






CMG 


QUICK 






TBC 




LONG 




STU 


QUICK 






XSBU 


AOOOOO 


PE3 


TMSK 


HEX 





1FFF 


6T 


DEC 


6 


60 


R00001 


DEC 


31 


600 


R00002 


DEC 


31 


300 


R00003 


DEC 


31 


480 


R00004 


DEC 


31 


240 


R00005 


DEC 


31 


300 


PE3 


CLU 


RECRC3 


LONG 


LONG 


RAU 


BASR 






RAL 


HEXB 


PASS 


NOMO 


RAU 


EGSSW 






SAU 


GSNB 






ADU 


DS5 






CLU 


EGSSW 






RAL 


EDIST 






SRL 


116 






RAU 


HEXB 






MML 


BASR 






RAU 


HEXX 






LDC 


ENTRA 


GSNB 


GSNB 


MST 


98 


TBELO 


HEXX 


HEX 


1FFF 


E000 


DS5 


DEC 


17 


5 


QUICK 


HEX 


7FFF 


FFFF 



COMMENTS 



Mask 

Test for sufficient range 
If no, go to LONG 
Add time-to-go 

Compare with previous time to des- 
tination 

Go to LONG if previous time smaller 
Store new smaller entry 
Subtract time-to-go 
Mask for time-to-go 
Constant 
10 hours 
5 hours 
8 hours 

4 hours 

5 hours 

Save time enroute 

Get base reference 

Get mask and return for next pass 

Set next storage address in GSNB 

Increment by 5 

Save 

Get distance 

Get mask 

Merge distance and base 



Store in EGSNB table 

Mask 

Constant 

A/C status word storage 



SUBROUTINE Q 

When the end of an input message is detected by Subroutine T, control is 
transferred to Subroutine Q. At this point, the best available A/C will 
have been selected, and its logged time, A/C number, A/C type, current 
base and time-to-go to destination placed in location QUICK, If no A/C 
of sufficient range is available, QUICK will contain all l's except for 
a sign bit. 

Subroutine Q will test the contents of location QUICK and, if service is 
not available will exit to Subroutine S. Otherwise, it will proceed to 



90 



£ 



Get selected 

A/C word 

from QUICK 



Extract 
A/C type 



I 



Get G.S. back to 

one base for 

this A/C type. 

& store in RECRCO 



I 



Get distance 

destination to 

base 



Compute time 

to this base 

(Dist. / G.S.) 





Store new 
shortest time 
and new base 

in QBACK 




Compute total 

flight time 

Departure — ■— dest. 

— ■- new base 



Update logged 

hours field in 

selected A/C 

word 



Update time-to-go 
field and new base 
(Total flight time 
2 hours ^ prev time) 





Find A/C 
table entry 
for this A/C 
Number. 




Store updated 

A/C word 

in A/C table 



I 



FIGURE 12. Flow Chart - Example Subroutine Q 



91 



select a new base and update the appropriate entry in the Aircraft Status 
Table. 

The A/C type from QUICK is used as a key to get the ground speed from 
destination to each base, For each prospective new base, a time enroute 
is computed and compared against the previous shortest time. If the new 
time is shorter, it replaces the old shorter time, the Index Value is 
stepped by 5, and a test is made to determine whether all bases have been 
considered. If not, another pass through the loop is executed. 

When the best new base is found, the logged hours field in QUICK is up- 
dated by adding the total flight time from base to destination to new 
base. The time-to-go field is updated by adding to its current value, 
the total flight time plus two hours ground time, and the base reference 
number is changed to that of the newly assigned base. If the new logged 
hours value is greater than 100, the availability indicator is set to 
out-of-service, which will apply at the conclusion of this assignment. 

The correct Aircraft Status Table location for this A/C number is now 
determined by a search of the table. If not found, we exit to an error 
halt in Subroutine B. When the location is found, the updated entry in 
QUICK is stored in the status table and we exit to Subroutine H. 



Table Structure for Ground Speeds to New Base 

When Subroutine Q is executed, it will choose a new base assignment on 
the basis of ground speeds stored in the 25 word table beginning at 
location EGSNB . This table consists of five 5-word blocks, each block 
containing the ground speeds and distance back to one base for 5 A/C 
types. 

The INDEX Register is set initially with the A/C type from location 
QUICK and may be any value thru 4. The XRAU instruction at location 
AGAN will bring into the UPPER, the ground speed and distance to one 
base for the selected A/C type. Subsequent references to the table will 
be in 5-word increments to select the same type for each of the five 
bases. When the INDEX Register has been stepped to or beyond 25 at lo- 
cation OLD, we will drop through the TMI instruction at OLD plus 3, 
instead of returning to AGAN for another pass. 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



NOMOR 



TAG 

RAU 
RAL 



QUICK 
ALLF 



Select new base. Update A/C Status 

Table 

Get selected A/C word 

Get mask 



92 



DATA NEXT 

LOCATION ORDER ADDRESS ADDRESS 





CME 


HEXQ 






TBC 


NOTE1 






EXT 


HEXT 






SRL 


2 






EXC 


498 


AGAN 


AGAN 


XRAU 


EGSNB 






EXT 


TMSK 






CLU 


RECRCO 






XRAL 


EGSNB 






SRL 


16 






SRL 


107 






DIV 


RECRCO 






MPY 


6T 






STU 


RECRCO 






Mu- 


TMSK 






ral 


ALLF 






EXT 


QBACK 


PQ2 


QBACK 


HEX 


7FFF 


FFFF 


6T 


DEC 


6 


60 


TMSK 


HEX 





1FFF 


HEXT 


HEX 


7 


0000 


HEXQ 


HEX 


7FFF 


FFFF 


ALLF 


HEX 


FFFF 


FFFF 


PQ2 


CMG 


RECRCO 






TBC 


OLD 






RAL 


RECRCO 






RAU 


HEXB 






XMML 


EGSNB 






CLL 


QBACK 


OLD 


OLD 


XLDX 


5 






EXC 


898 






SBU 


DS25 






TMI 


AGAN 






RAU 


TMSK 






EXT 


QBACK 






ADU 


RECRC3 






DVU 


NT60 






ADU 


1AT8 






EXT 


LMSK 






ADU 


QUICK 






STU 


RECRC3 






EXT 


HEXN 






ADU 


QBACK 


PQ3 


HEXN 


HEX 


FFFF 


1FFF 


LMSK 


HEX 


FFOO 


0000 


1AT8 


DEC 


8 ' 


1 



COMMENTS 



Test for service available 
If no, go to NOTE1 
Extract A/C type 

U to X 

Get ground speed and distance 

Get ground speed 

Save ground speed @ 31 

Get ground speed and distance 

Discard all but distance 

Distance @ 56 

Compute time in hours @ 25 

Time minutes @ 31 

Save 

Get mask in U 

Get mask in L 

Get previous time to new base 

A/C word storage for new base 

Constant 

Mask for ground speed 

Mask for A/C type (0 to 4) 

A/C word mask 

Mask 

Compare with new time to new base 

Go to OLD if old value smaller 

Get new shorter time 

Get mask 

Merge base with time 

Store new smaller time and base 

Step X by 5 

X to U 

Test for finish 

If not, return to AGAN 

Mask 

Time to new base @ 31 

Add time enroute @ 31 

Convert to hours @ 7 

Round 

Extract whole hours 

Add A/C Status word for total logged 

hours 

Extract all but base 

Compute total flight time to new bas. 

Mask for everything but base 

Mask for hours 

Constant 



93 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



NT60 


DEC 


24 


60 


DS25 


DEC 


17 


25 


HEXB 


HEX 


8000 


E000 


PQ3 


ADU 


2HRS 






STU 


RECRC6 






ADU 


2T8 






TMI 




LESS 




STU 


RECRC6 


LESS 


LESS 


RAL 


AMSK 






LDC 


NT24 






CME 


A00001 






TBC 




ERR03 




EXC 


898 






EXT 


SMSK 






SRL 


ii3 






EXC 


498 






RAU 


RECRC6 






XCLU 


A00000 


HEADS 


SMSK 


DEC 


30 


63 


NT24 


DEC 


24 


24 


AMSK 


HEX 


F8 


0000 


2T8 


DEC 


7 


28 


2HRS 


DEC 


31 


120 



COMMENTS 



Constant 
Constant 

Mask for base (1 to 5) and availability 
bit 

Add ground time 
Save 

Test for logged time 100 hours or more 
If not, go to LESS 
Store and set to -out of service- 
Mask 

Find table entry 

If A/C not found, go to ERR03 

X to U 



U to X 

Get A/C word 

Update A/C Status table and go to HEADS 

Mask for N-sector 

Constant 

Mask for A/C number 

Constant 

Constant 



SUBROUTINE H 

Having completed the selection of the aircraft to be dispatched and the 
new base, we are ready to output, via the typewriter, an Aircraft As- 
signment Message. Subroutine H performs the function of printing the 
message headings. 

A carriage return and two line feeds are output and the INDEX Register 
is set to 0. A word from the output table is placed in the UPPER and a 
mask is placed in the LOWER. The leftmost character from the UPPER is 
printed and the contents o£ UPPER and LOWER are shifted left six places. 
We now test for completion of one word and, if not, we return to print 
the next character. When one table word is printed, we step the INDEX Re 
gister by 1 and check for completion of the headings. If not, we return 
to get the next word from the table. When all headings are printed, we 
exit to Subroutine P, 



94 



© 




Set X = 



Get word from 
output table & 
set mask in L. 




FIGURE 13, Flow Chart-Example Subroutine H 



The Print Loop 



The headings are printed by means of a fairly simple double loop. The 
output print image is contained in a table stored in Region H. Each 
word contains five 6-bit characters, with the last two bits of each 
word blank. The necessary tabs and spaces are included as characters. 

At location GRAB, a table word is brought into the UPPER and a mask is 
placed in the LOWER. At ALPH, a character is printed. The Data-track 
64 designates that the six-bit character to be printed is in the UPPER. 
The artificial Data-sector 99 causes ROAR to assign a sector which will 
honor the print interlock. When the next character is positioned by the 
shift, the low order six bits of the LOWER are filled with zeroes. The 
CME instruction will not turn on Branch Control until all five characters 
have been printed and shifted out of the UPPER. At this point, the mask 
in the LOWER will contain ones only in the two leftmost positions; the 
corresponding positions of the UPPER will contain zeroes. 

When this inner loop is completed, the INDEX Register is stepped and 
tested for the value 10, If less than 10, we return to GRAB for another 
pass of the outside loop. When the Index Value reaches 10, the CXE will 
turn on Branch Control and we will exit to Subroutine P 



95 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





TAG 


H 




HEADS 


PRD 


199 






PRD 


799 






PRD 


799 






LDX 





GRAB 


GRAB 


XRAU 


H00001 






RAL 


ALLF 


ALPH 


ALPH 


PRU 


6499 






SRL 


106 






CME 


ZERO 






TBC 




ALPH 




XLDX 


1 


PH2 


ZERO 


HLT 








ALLF 


HEX 


FFFF 


FFFF 


H00001 


HEX 


75EA 


5AAC 


H00002 


HEX 


B6EA 


5E08 


H00003 


HEX 


75EB 


2D88 


H00004 


HEX 


9DAB 


62A0 


H00005 


HEX 


9C27 


AD68 


H00006 


HEX 


OA77 


BOF4 


H00007 


HEX 


6DAB 


1E08 


H00008 


HEX 


7AD6 


8268 


H00009 


HEX 


F9CF 


67A0 


HOOOIO 


HEX 


F011 


C700 


PH2 


CXE 


10 






TBC 


PRINT 


GRAB 



COMMENTS 



Print message headings 
Carriage return 
Line feed 



Get heading word 

Mask 

Print one character 

Position to next character 

Test finish of one word 

If no, go to ALPH 

Step X 

Constant 

Mask 

DEPAR 

TURE Tab. 

DESTI 

NAT 10 

N Tab. ETA 

Tab. NEW Sp . 

BASE Tab. 

ETA Tab A 

/C sp. NO 

. C.R. L.F, L.F ( 

Test end of heading print 

If no, go to GRAB 



SUBROUTINE P 

The Aircraft Assignment Message, exclusive of headings, is printed by 
Subroutine P. The destination print sequence is also used in printing 
a service-not-available message. 

The departure base is printed first in the following manner. The base 
number is used to set the INDEX Register to provide a reference to the 
desired entry in the Base Print Image Table. The base print image is 
then brought into the UPPER and LOWER Accumulators, and the INDEX Re- 
gister is set to 0. Characters are now printed from the combined accumu- 
lators, using the INDEX Register as a character counter. When all charac- 
ters have been printed, we check to determine whether the base is SAN 
FRANCISCO. If so, it is necessary to print one more word from the table. 
When the entire departure base is printed, we encounter a 2-position 
program switch set to follow path number 1. 



96 



I 



Get number 

of departure 

base 



SetX 
from base no. 



Put base 

print image 

in U & L 



Set X^O 



fr( Print 1 \ 
~^\ character I 



Step X by 1 



SetX-5 



u 




Put shift 
count of 
4 in L 



Put shift 
count of 
2 in L 



Put shift 
count of 
OinL 



Restore X. Put 
partial char, in U 
& store in RECRC 



Modify address 

for next 
destination word 



Store shift 
count in 
SHFT 



Put next dest. 

word in U. 
test word in L. 



Shift right 
0, 2 or 4 and 
combine with 
partial char. 



Put rest of 
image in U. 




X— ~U 

partial 
char. -•- X 



CM 



Set X 



Put day 
count in X 

Get ETA 
to new base. 



Switch base 
print exit 

Switch ETA 
print exit. 



«-© 



Switch base 
print exit 
and get no. 
of new base 



♦o 



SetX^O. 
Get time to 
destination 



Add message 

time to 
compute ETA 



Step X 



Step X 



Save 
count 



Switch ETA 

print exit. 

Get A/C No. 





Save ETA to new 

base in RECRC6 

Get ETA to dest. 

from RECRC7 



Convert to hours 

& store remaining 

minutes in 

RECRC7 








FIGURE 14. Flow Chart - Example Subroutine P 



97 



The INDEX Register is set to and the first word of the destination 
print image is placed in the UPPER. The image table capacity is eight 
words and may contain a destination of up to 42 6-bit characters. These 
characters are stored contiguously, with vacant character positions at 
the high order end of the table. With this storage format, some charac- 
ters will be split between two table words. 

A test word is placed in the LOWER which will be used to detect the 
printing of the last full character from the UPPER. The first charac- 
ter is positioned to bits 0-5 of the UPPER and a PRU instruction is 
executed. If the character position contains all zeroes, it represents 
a tape feed code and causes no typewriter output. The next character 
is positioned and the INDEX Register is incremented by 1 . A test is made 
for completion of 42 characters and, if not, the INDEX Register and UPPER 
Accumulator contents are exchanged. Now a sequence of tests determines 
whether the last full character of a word has been printed. If not, 
UPPER Accumulator and INDEX Register contents are again exchanged and the 
next character is printed. 

When the last full character of a word is printed, any remaining partial 
character is saved and a shift is set up to be used in combining it with 
the next table word. When the next word is brought in from the image 
table, it is shifted right by the number of bits in the partial charac- 
ter and combined with it. The next character is printed and the above 
procedure continues until the INDEX Value reaches 42. At this point, the 
destination printing is complete and we encounter a 2-position program 
switch set to follow path number 1. 

The next sequence will compute the ETA ' s to destination and new base as 
follows. The INDEX Register is reset to 0, and the time to destination 
is brought into the UPPER where it is added to the time of the message. 
If this ETA is not the same day as the message, a day count is set in 
the INDEX Register. The ETA to destination is saved in RECRC7 and the 
ETA to new base is computed in a similar manner and stored in RECRC6 . 

Now the ETA to destination is brought back from RECRC7 , converted to 
hours and minutes, and the minutes stored in RECRC7 . The hours are con- 
verted from binary to BCD and printed. The minutes are brought from 
RECRC7, converted to BCD and printed. If this ETA is not the same day 
as the message, a "+ M is printed followed by the day count. 

Another program switch is encountered and again we follow path number 1. 
Now the program switch which serves as an exit from the base print se- 
quence is switched to follow path number 2. The number of the new base 
is brought into the UPPER and we return to the base print sequence to 
print the new base. 

This time when we reach the exit, we branch to a sequence in which the 
base print exit is reset to its initial value, and the ETA print exit 
switch is set to follow path number 2. The ETA to new base is brought 
into the UPPER and we return to the ETA print sequence. 



98 



Upon completion of the ETA to new base, we branch to a point where the 
ETA exit switch is reset, and the A/C number is brought into the UPPER, 
The A/C number is converted to BCD form and printed and we exit to Sub- 
routine M. 

There is a secondary entry point to Subroutine P which is entered from 
Subroutine S in connection with a "service not available" output mes- 
sage. As a part of this message, we need to print the destination, The 
destination print exit switch will have been set by Subroutine S to fol- 
low path number 2. When the destination is printed, we now exit back to 
Subroutine S, where the exit switch will be reset to its initial value 



Program Switches 

The technique of programmed exit switches is used at three points in 
Subroutine P. These switches occur at location PP2 , PEXIT and SAFE. 
The procedure is simply a matter of replacing the original contents 
of the switch with an alternate instruction word prior to execution 
of the required instruction sequence. Upon completion of this se- 
quence, the switch is reset to its original value. 



The Destination Print Sequence 

At location PDEST, the Index Value is set to 0. The INDEX Register will 
be used as a counter to control the exit after 42 executions of the PRU 
instruction at LETR. The print image is stored in Region D, with the 
first word in D00008 and the last word in D00001. The storage format is 
such that the first four bits of the first word will always be blank. 
Bits 28-31 of words 1,4 and 7 contain partial characters. Bits 30-31 of 
words 3 and 6 contain partial characters. The low order end of words 2 
and 5 coincide with the end of a character. 

As each print image word is brought into the UPPER, a flag containing l's 
in bit positions 5-17 is brought into the LOWER. When a character is 
printed at location LETR, the combined UPPER and LOWER contents are 
shifted left by six bits. When the last full character of any word has 
been printed, this shift will move the flag to a position in the UPPER 
such that bits 5-17 will contain a track and sector value, 12763, 3163 
or 763. The flag is exchanged into the INDEX Register at PEXIT plus 1, 
and the series of CXE instructions will test for one of these three values 

If one of these tests is positive, the associated TBC will branch to a 
point where a Shift Count of , 2 or 4 is brought into the LOWER. The 
INDEX Register contents are exchanged back into the UPPER and the left- 
most four bits are extracted and stored in RECRC5 to save any partial 
character they may contain, 



99 



The Data-address of DB1GET is modified to the next image word reference 
and the Shift Count in the LOWER is stored in location SHFT. When the 
new image word and the flag are brought into the accumulators, they are 
shifted right by 0, 2 or 4 bits and combined with the partial character 
from RECRC5 at location JOIN, The Next-address of JOIN branches back 
to LETR to print the next character. 



ETA Conversion for Printing 

To print on ETA, it is necessary to convert from minutes in binary 

form to hours and minutes in BCD form. At location ENTR, the ETA 
value will have been placed at a "q" of 63 in the LOWER Accumulator. 

The UPPER is cleared and the ETA shifted to a "q M of 62. Dividing by 

a value 60 at a "q" of 31 will compute the whole hours at a "q" of 31 
leaving the remainder, in minutes, in the LOWER. 



The minutes are saved in RECRC7 and the hours divided by a value 10 at 
a "q" of 28, which converts the first character to BCD and moves it to 
a "q' f of 3, A rounding constant is added and the first character is 
printed. This character is now eliminated by an EXT instruction, the 
remaining character is multiplied by ten, and printed as the second 
hour digit. Now the minutes are brought back from RECRC7 , converted 
and printed in the same manner. The day count in the INDEX Register is 
checked and, if set, a "+" is printed followed by the day count. 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





TAG 


P 




PRINT 


RAU 


HEXB 






EXT 


QUICK 


POS 


POS 


SRL 


101 






EXC 


498 






XRAU 


M00000 






XRAL 


M00005 






LDX 





CHAR 


CHAR 


PRU 


6499 






XLDX 


1 






CXE 


10 






TBC 


PP2 






SRL 


106 


CHAR 


M00001 


HEX 


6E8B 


2DA2 


M00002 


HEX 


64D9 


5A9E 


M00003 


HEX 


7218 


9C6A 


M00004 


HEX 


75A9 


65 6A 


M00005 


HEX 


B1A9 


FD7E 



COMMENTS 



Output A/C assignment message 

Mask 

Get departure base 

Position 

U to X 

Get print image 1. 

Get print image 2. 

Print one character 

Test for end of image 2. 

If yes , go to PP2 

Position next character 

BOSTO(N) 

ATLAN(T) 

CHICA(G) 

DALLA(S) 

SAN F(R) 



100 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



M00006 


HEX 


7F7D 


F420 


M00007 


HEX 


D6BD 


F420 


M00008 


HEX 


0A3D 


F420 


M00009 


HEX 


CF7D 


F420 


M00010 


HEX 


B6A7 


7220 


M00011 


HEX 


B1CA 


3D08 


HEXB 


HEX 


8000 


E000 


PP2 


TMI 


HO 


PDEST 


HO 


LDX 


5 






RAU 


M00011 


CHAR 


PDEST 


LDX 









RAU 


D00008 






RAL 


FLAG 






SRL 


104 


LETR 


LETR 


PRU 


6499 






SRL 


106 






XLDX 


1 






CXE 


42 


PEXIT 


PEXIT 


TBC 


PFINI 






EXC 


1298 






CXE 


12763 






TBC 


SHO 






CXE 


3163 






TBC 


SH2 






CXE 


763 






TBC 


SH4 






EXC 


1298 


LETR 


SH4 


RAL 


SFT4 


PP3 


SH2 


RAL 


SFT2 


PP3 


FLAG 


HLT 


12763 





SFT2 


SRL 


2 


EX2 


SFT4 


SRL 


4 


EX 4 


SHO 


RAL 


SFTO 


PP3 


PP3 


EXC 


1298 






EXT 


LFT4 






STU 


RECRC5 






RAU 


DB1GET 






SBU 


DS1 






CLU 


DB2GET 






CLL 


SHFT 


DB1GET 


DB1GET 


RAU 


D00008 






RAL 


FLAG 


SHFT 


SHFT 


SRL 


4 


JOIN 


EX 4 


EXT 


X4 


JOIN 


EX 2 


EXT 


X2 


JOIN 


JOIN 


ADU 


RECRC5 


LETR 



COMMENTS 



(N) sp. sp, sp. Tab. 

(T)A sp. sp. Tab. 

(G)O sp. sp. Tab. 

(S) sp. sp. sp. Tab. 

(R) ANCI 

SCO sp. Tab. 

Mask for base (1 to 5) and 

availability bit. 

If finished, go to PDEST 

Reset X 

Get print image 3 for San Francisco 

Get word 1 

Test word 

Position first character 

Print one character 

Position to next character 

Step X 

Test for end of message 

If yes, go to PFINI 

X to U, U to X 

Test for end of word 2 or 5 

If yes, go to SHO 

Test for end of word 3 or 6 

If yes, go to SH2 

Test for end of word 1, 4 or 7 

If yes, go to SH4 

X to U, U to X 



Termination flag 
Shift constant 
Shift constant 
Get Shift Count 
X to U, U to X 

Save partial character 
Modify address for next word 



Set Shift Count 
Get next word 
Test word 
Position 



Add partial character 



101 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



PFINI 



TMSK 

X2 

X4 

DS1 

LFT4 

SFTO 

PP4 



TDAY 



PRD 

LDX 

RAU 

EXT 

ADU 

HEX 

HEX 

HEX 

HLT 

HEX 

SRL 

EXC 

SBU 

TMI 

XLDX 

STL 

RAU 

EXT 

ADU 

ADU 
EXC 
SBU 
TMI 



XLDX 

EXC 

SDAY CLL 

RAL 

ENTR CLU 

SRL 

DIV 

CLL 

DIV 

ADU 

TEN DEC 

1HR DEC 

DAY DEC 

PP5 PRU 

EXT 

MPT 

PRU 

RAU 

DVU 

ADU 

PRU 

EXT 



299 



RECRC3 

TMSK 

MTIME 



3FFF 

OFFF 

1 

F000 



198 

DAY 

TDAY 

1 

RECRC7 

TMSK 

QBACK 

RECRC7 

1HR 

198 

DAY 

SDAY 

100 

198 

RECRC6 

RECRC7 

JUNK 

101 

1HR 

RECRC7 

TEN 

ONE 

28 

31 

31 

1699 

X4 

98 

1699 

RECRC7 

TEN 

ONE 

1699 

X4 



PP4 
1FFF 
FFFF 
FFFF 

0000 
JOIN 



PP4 



SDAY 
ENTR 



PP5 
10 
60 
1440 



Print Tab. 

Get time to destination @ 31 

Compute ETA in minutes 
Mask for time-to-go 



Constant 

Mask 

Shift Constant 

U to L 

Subtract 24 hours 

If ETA today, go to TDAY 

Step count 

Save ETA to destination 

Mask 

Get time - destination to new base 

ETA to destination plus time to new 

base 

Compute ETA to new base 

U to L 

Subtract 24 hours 

If same day as ETA to destination, go 

to SDAY 

Step counter 

U to L 

Save ETA to new base 

Get ETA to destination @ 63 

ETA @ 62 

Convert to hours @ 31 
Save minutes 
Position hours 

Constant 

Constant 

24 hours in minutes 

Print first character 

Convert character 
Print second character 
Get minutes 
Position minutes 

Print third character 



102 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



TOM 



SHIF 

TOD 

ONE 

PP6 

SAFE 

SWCH 



NETA 



AC 



X 
AMSK 
SWIT 
ACNO 
THAW 
ETAN 
PP7 



MPT 
PRU 
CXE 
TBC 
CXE 
TBC 
XLDX 
PRD 
EXC 
SRL 
TMI 
XLDX 
SRL 
PRU 
PRD 
DEC 
EXC 
CLU 
RAU 
CLU 
RAU 
EXT 
RAU 
CLU 
RAU 
CLU 
RAU 
EXC 
RAL 
RAU 
CLU 
RAU 
EXT 
DIV 
ADU 
DEC 
HEX 
CLU 
CLU 
TMI 
TMI 
PRU 
EXT 
MPT 
PRU 
PRD 



98 

1699 



TOD 

100 

12701 

5899 

898 

111 

12701 
103 
1699 
299 
31 
898 
RECRC7 
ETAN 
PP2 
HEXB 
QBACK 
THAW 
PP2 
ACNO 
SAFE 
RECRC7 
498 
RECRC6 
SWIT 
SAFE 
AMSK 
QUICK 
X 
ONE 
9 
F8 
RECRC7 
RECRC7 
HO 
HO 
1699 
X4 
98 
1699 
199 



TOM 
TOD 



SHIF 
SHIF 

TOD 
PP6 
1 

SAFE 
SWCH 



POS 



ENTR 



PP7 

10 

0000 

SWCH 

AC 

PDEST 

NETA 



Convert character 

Print fourth character 

Are both ETA's today 

If yes, go to TOD 

Is ETA to destination today 

If no, go to TOM 

Reduce index to 1 

Print + 

X to U 

If both ETA's same day, go to SHIF 

Modify counter 

Position day count 

Print day count 

Print Tab, 

Constant 

X to u 

Save day count 

Switch exit to print new base 



Get new base reference 
Switch exit initial setting 



Get day count 

U to X 

Get ETA to new base 

Switch ETA print exit to SWCH 

Mask 

Get A/C number 

Position 

Constant 



MA INT 



Print first character 

Convert character 
Print second character 
Carriage return 



103 



SUBROUTINE M 

When an Assignment Request Message or an Availability Message has been 
processed, Subroutine M is entered and a count is made of the A/C in 
maintenance, if more than 12 A/C are out of service, a note is printed 
via the typewriter. 

The count, which has been tallied in the LOWER, is exchanged to the 
UPPER where it is converted to BCD and printed as a 2-digit number. 
A print loop is now entered which will take the remainder of the mes- 
sage from a print image table. When the message is complete, control 
is transferred to Subroutine B where the program is initialized in 
preparation for a new message. 

In the event that fewer than 13 A/C are out of service, the print se- 
quence is bypassed and we proceed directly to Subroutine B. 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



TAG 



M 



MAINT 


CLL 


JUNK 








LDX 







GET 


GET 


XRAU 

TMI 


A00001 




STEP 




ADL 


ONE 




STEP 


STEP 


XLDX 
CXE 
TBC 
EXC 
SBU 

TMI 
ADU 
DVU 
ADU 
PRD 
PRD 
PRD 
PRU 
EXT 


1 
25 

298 
3TN 

SENSE 
3TN 
TEN 
ONE 
199 
799 
799 
1699 
RT28 




GET 




MPT 


98 




PM2 


RT28 


HEX 


OFFF 




FFFF 


TEN 


DEC 


28 


10 


i 


3TN 


DEC 


31 


13 




ONE 


DEC 


31 


1 




PM2 


PRU 


1699 







Print note if less than 13 A/C 

in service 

Clear L for count 

Get A/C word 

If in service, go to STEP 

Add 1 to count 

Step X 

Test for finish 

If no, go to GET 

L to U 

Test if more than 12 A/C in 

maintenance 

If no, go to SENSE 

Position 

Carriage return 

Line feed 

Line feed 

Print first character 

Convert character 

Mask 

Constant 

Constant 

Constant 

Print second character 



104 



© 



Clear L 
SetX = 



Get word 
of A/C table 




No ^ A/C in 

maintenance ? 



Add one 
to counter 
in L 



I 



Step X by 1 




Put 
count in U. 



Convert 1st 
char, to BCD 
and position 




Convert 2nd 
char, to BCD 
and position 




Set X - 



Get message 
word 




Step X by 1 




No 



FIGURE. 15. Flow Chart - Example Subroutine M 



105 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 





LDX 





GETT 




GETT 


XRAU 


N00001 




Get message word 




RAL 


ALLF 


LTTR 


Mask 


LTTR 


PRU 


6499 




Print one character 




SRL 


106 




Position 




CME 


ZERO 




Test finish of one word 




TBC 




LTTR 


If no, go to LTTR 




XLDX 


1 




Step X 




CXE 


5 




Test for end of message 




TBC 


SENSE 


GETT 


If no, go to GETT 


ZERO 


HLT 








Constant 


ALLF 


HEX 


FFFF 


FFFFF 


Mask 


N00001 


HEX 


F5A8 


AB70 


sp. A IRC 


N00002 


HEX 


ADA7 


EDF4 


RAFT sp t 


N00003 


HEX 


8A7F 


6668 


IN sp. MA 


N00004 


HEX 


8A7B 


5E9C 


INTEN 


N00005 


HEX 


6A77 


1E04 


ANCE C.R. 



SUBROUTINE S 

If it is determined in Subroutine Q, that no available A/C has suf- 
ficient range to reach a destination, Subroutine S is entered. The 
first part of a "service not available" message is printed from a print 
image table. 

When this is complete, the exit switch for the destination print se- 
quence In Subroutine P is set to as to return control to Subroutine S, 
and control is transferred to print the destination. When Subroutine 
S is re-entered, the switch is reset to its initial value and we exit 
to Subroutine B for initialization. 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





TAG 


S 




NOTE1 


PRD 


199 






PRD 


799 






PRD 


799 






LDX 





GIT 


GIT 


XRAU 


C00001 






RAL 


ALLF 


LTRR 


LTRR 


PRU 


6499 






SRL 


106 





COMMENTS 

Print note« if service not available 
Carriage return 
Line feed 



Get message word 

Mask 

Print one character 

Position 



106 




No 



Get message 

word and 
put mask in L 




Step X by 1 




Yes 



Switch 

destination 

print exit 



© 




Switch 

destination 

print exit 




FIGURE 16. Flow Chart - Example Subroutine S 



10' 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



TAGS 

EXIT 

ZERO 

ALLF 

C00001 

C00002 

C00003 

C00004 

C00005 

PS 2 

FISH 



CME 
TBC 
XLDX 
CXE 
TBC 
RAU 
SAU 
RAU 
HLT 
HLT 
HEX 
HEX 
HEX 
HEX 
HEX 
HEX 
SAU 
PRD 
HLT 



ZERO 

1 
5 

EXIT 

PEXIT 

FISH 

TAGS 



FFFF 

B1EA 

71EF 

B7D6 

8A56 

7BDB 

PEXIT 

199 

PFINI 



LTRR 



GIT 

PDEST 

PS2 





FFFF 

EF88 

67A0 

AF68 

9B94 

68F4 

SENSE 




Test finish of one word 

If no, go to LTRR 

Step X 

Test for end of message 

If no, go to GIT 

Switch destination print exit 

Go to destination print 

Switch destination print exit 

Constant 

Mask 

SERVI 

CE sp. NO 

T sp. AVA 

ILABL 

E sp , TO sp . 

Carriage return 



SUBROUTINE V 

When Subroutine R detects an Availability Message input, Subroutine V 
is entered. The message word, which contains the A/C number is brought 
into the UPPER and the A/C number is converted from its 6-bit input 
form to binary. This number is used as a key to search the Aircraft 
Status Table. If no entry is found for this A/C number, we exit to an 
error halt in Subroutine B. 

When the table location for this A/C is found, it is used to set the 
INDEX Value. The message word is brought back into the UPPER, and its 
last character is tested for a "U", If the test is positive, this A/C 
is set to "unavailable" in the Aircraft Status Table, 

If the last character of the input message is not a "U" , it is tested 
for an "A". If not an "A", we exit to an error halt in Subroutine B. 
If it is an "A", the Aircraft Status Table entry is modified to make 
the A/C available for assignment. 

At the completion of Subroutine V, control is transferred to Subroutine 
M to count the number of A/C in maintenance. 



108 



© 



Get 

availability 

message word 



I 



Binarize 
A/C No. 



Search 

A/C table 

for A/C No. 



Set 

X = found 

sector + 1 



I 



Get 

availability 

message word 




FIGURE 17. Flow Chart - Example Subroutine V 



109 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



TAG 



VVMES 


RAU 


D00001 






EXT 


4BIT 






SRL 


18 






MPT 


98 






CLU 


RECRC3 






SRL 


106 






ADU 


RECRC3 






SRL 


119 






RAL 


AMSK 






LDC 


NT24 






CME 


A00001 






TBC 




ERR04 




EXC 


898 






EXT 


SMSK 






SRL 


113 






EXC 


498 






RAU 


D00001 






RAL 


3F 






CME 


UCON 


PV2 


3F 


HEX 





003F 


SMSK 


DEC 


30 


63 


NT24 


DEC 


24 


24 


AMSK 


HEX 


F8 


0000 


4BIT 


HEX 


3C 


F000 


PV2 


TBC 


YOU 






CME 


ACON 






TBC 




ERR05 




RAL 


ZERO 


GEB 


GEB 


RAU 


BITS 


PLUG 


PLUG 


XMST 


A00000 


MAINT 


YOU 


RAL 


ALLF 


GEB 


ALLF 


HEX 


FFFF 


FFFF 


BITS 


HEX 


FFOO 


1FFF 


ZERO 


HLT 








ACON 


HEX 





001A 


UCON 


HEX 





00 2E 



Updata A/C table for availability 

message 

Availability message 

Get characters in BCD 

Position for binarization 

Binarize 



Shift A/C number to table position 

Get mask 

Repeat Count 

Find table entry 

If A/C not found, go to ERR04 

X to U 

Mask 

Position 

U to X 

Availability message 

Mask 

Test A/C un-availability 

Mask 

Mask for N-sector 

Constant 

Mask 

Mask 

If unavailable, go to YOU 

Test A/C availability 

If no, go to ERR05 

Get zero value 

Mask 

Store in table entry 

Get word of all l's 

Constant 

Mask 

Constant 

Constant 

Constant 



SUBROUTINE B 

The first subroutine of the program to be executed is the last one to 
be coded. Subroutine B performs the initialization of various tables 
and instructions which are modified during the operation of the program 
It also contains the five error halts previously discussed. 



110 



1 



Clear U, L & X 
SetMTIME 



Add 1 to 

base field 

in L 



Initialize one 

entry in A/C table 

(Av. bit, logged time, 

base no. and 

time-togo) 



Decrement 
X by 24 




© © © 




Set 25 entries of 

EGSNB table to 

initial value. 



Initialize- 

DB1GET, EGSSW 

QUICK, QBACK, 

ABOVE 



Clear U, L & X 

Set L to 
8-word length 



J 




FIGURE 18. Flow Chart - Example Subroutine B 



111 



When Subroutine B is entered at START, the UPPER and LOWER Accumulators 
and the INDEX Register are cleared and the message time in location 
MTIME is set to 0. The base number 1 is set up in the LOWER and along 
with a zeroed availability bit, logged time and time-to-go is stored 
into every fifth location of the Aircraft Status Table under control of 
a mask so as to leave the A/C numbers and types intact. The base number 
is increased to 2 and we again store into every fifth location, this time 
beginning with the second word of the table. This process is repeated 
until the entire table has been initialized. 

Sense Switch 2 is now tested and, if down, a programmed halt is en- 
countered. The table of ground speeds from destination to base is 
now initialized by storing a value in every location which will in- 
dicate to Subroutine Q any base for which ground speeds have not 
been computed. 

The parameters, QUICK, QBACK and EGSSW are now initialized as are the 
Data-address fields of the instruction words DB1GET and ABOVE. The 
accumulators and the INDEX Register are again cleared and control is 
transferred to Subroutine R. 

For subsequent executions of the program, Subroutine B is entered at 
the point indicated as B 6 in the flow chart. 

If Subroutine B is entered at B x it indicates that an illegal base has 
been input , 

Continuing from the halt will return control to Subroutine T where a 
correct base may be input. 

If Subroutine B is entered at B 2> an unsuccessful Sine Table search is 
indicated. If entered at B 3 , an unsuccessful search for an A/C number 
in the Aircraft Status Table is indicated. Both cases are considered 
incorrigible errors and continuing from the halt will cause a return to 
location START. 

If Subroutine B is entered at B 4 or B 5 , it indicates an illegal Air- 
craft Availability Message format. Continuing from the halt will 
transfer control to Subroutine R where a corrected message may be 
input , 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 





TAG 


B 




START 


CLU 


JUNK 


OVER 


ERROl 


HLT 


1 


TBELO 


ERR02 


HLT 


o 


START 


ERR03 


HLT 


3 


START 



COMMENTS 

Initialization and error stops 

Departure base not found in table 
Sine Table search unsuccessful 
Dispatched A/C No. not found in 
Status Table 



n; 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



ERR04 


HLT 


4 


MREAD 


ERR05 


HLT 


5 


MREAD 


OVER 


EXC 


3798 






CLU 


MTIME 


MORE 


MORE 


ADL 


BAS1 


GEM 




RAU 


MSK1 






XMST 


A00001 






XLDX 


5 






CXE 


29 






TBC 


SENSE 






EXC 


898 






ADU 


OVRF 






TBC 




GEM 




XLDX 


12740 


MORE 


SENSE 


SNS 


200 






TBC 


PB2 


PROC 


OVRF 


HEX 


7FF9 


cooo 


MSK1 


HEX 


FFOO 


FFFF 


BAS1 


HEX 


0000 


2000 


PB2 


HLT 





PROC 


PROC 


RAU 


DONE 






LDC 


NT24 


STEW 


STEW 


STU 


EGSNB 






RAU 


RSET 






SAU 


DB1GET 






RAU 


RSET 






SAU 


EGSSW 






RAU 


HEXQ 






STU 


QUICK 






CLU 


QBACK 






SAU 


ABOVE 






EXC 


598 






EXC 


1699 


INPUT 


HEXQ 


HEX 


7FFF 


FFFF 


REST 


HLT 


EGSNB 





RSET 


HLT 


D00008 





NT24 


DEC 


24 


24 


DONE 


HEX 


1FFF 


0001 



COMMENTS 



Availability A/C No. not found in 

Status Table 

Last character of Availability 

Message (U or A) may be in error 

U to X, U to L, L = 1 

Set message time to zero 

Step base number 

Mask 

Reset table word 

Step X 

Test for finish 

If yes , go to SENSE 

X to U 

Overflow if finished one pass 

If not , go to GEM 

Decrement X by 24 

Test Sense Switch 2 

If not down, go to PROC 

Overflow constant 

Mask for availability bit, logged 

hours, base number and time-to-go 

1 @ 20 

1 @ 31 

Initialize EGSNB Table 

Initialize DB1GET 

Initialize EGSSW 

Initialize QUICK 
Initialize QBACK 
Initialize ABOVE 
Clear X and L 
L = 8 

Initializing constant 
Initializing constant 
Initializing constant 
Repeat Count of 24 
Initializing constant 



113 



AIRCRAFT STATUS TABLE AND SINE TABLE FORMATS 

The Aircraft Status Table is stored in Region A and the table values 

are entered using the HEX pseudo-instruction. Initially the aircraft 

number, type, and assigned base are entered. During the operation of 

the program the aircraft number and type will retain their original 

table storage, but the base number may change with the processing of 
an Aircraft Assignment Message. 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



A00001 


HEX 


0009 


2000 


A00002 


HEX 


0011 


4000 


A00003 


HEX 


0019 


6000 


A00004 


HEX 


0021 


8000 


A00005 


HEX 


0029 


A000 


A00006 


HEX 


0034 


2000 


A00007 


HEX 


00 3C 


4000 


A00008 


HEX 


0044 


6000 


A00009 


HEX 


004C 


8000 


A00010 


HEX 


0054 


A000 


A00011 


HEX 


005B 


2000 


A00012 


HEX 


0063 


4000 


A00013 


HEX 


006B 


6000 


A00014 


HEX 


0073 


8000 


A00015 


HEX 


007B 


A000 


A00016 


HEX 


0080 


2000 


A00017 


HEX 


0088 


4000 


A00018 


HEX 


0090 


6000 


A00019 


HEX 


0098 


8000 


A00020 


HEX 


00A0 


A000 


A00021 


HEX 


OOAA 


2000 


A00022 


HEX 


00B2 


4000 


A00023 


HEX 


OOBA 


6000 


A00024 


HEX 


00C2 


8000 


A00025 


HEX 


OOCA 


A00O 



A/C 





COMMENTS 


1 


Type 1 


2 


1 


3 


1 


4 


1 


5 


1 


6 


4 


7 


4 


8 


4 


9 


4 


10 


4 


11 


3 


12 


3 


13 


3 


14 


3 


15 


3 


16 





17 





18 





19 





20 





21 


2 


IT 




23 


2 


24 


2 


25 


2 



Base 



The table of sines is 91 words in length and is stored in Region S. 
Values are entered using the DEC pseudo-instruction. 



114 



DATA NEXT 
LOCATION ORDER ADDRESS ADDRESS 



COMMENTS 



500001 HLT 

500002 DEC 

500003 DEC 





1 .0175 
1 .0349 



Table of sines beginning with sin 



500090 DEC 

500091 DEC 



1 .9998 
1 1.000 



End of table - sin 90 



PROGRAM TESTING 

The program which we are discussing was tested first for the correct 
operation of each of the subroutines. This was accomplished by punching 
and assembling each subroutine as an independent program. The listing 
was scanned for references to Regions and 5-character symbolic addresses 
outside the subroutine being tested. Simulated values for these tables, 
parameters and instruction words were included in the symbolic tape before 
assembling . 

The assembled subroutine was loaded into memory along with the utility 
programs Change and Transfer and Sequential Memory Print. The sub- 
routine was executed and Sequential Memory Print used to print out 
the contents of all tables and locations which were altered by the 
subroutine. This data was then checked for correctness against pre- 
computed values. 

In several cases where the subroutine failed to function properly, it 
was possible to locate the error by executing a portion of the sub- 
routine in One-Operation Mode while verifying the register contents from 
the oscilloscope. In other cases it was necessary to re-analyze coding 
sequences in the light of the printed results. 

The Change and Transfer Program provides the ability to set or alter any 
word in memory via the typewriter. This function was used to make on- 
the-spot corrections which could be verified before repunching a corrected 
tape. It was also used to bring selected words from memory into the LOWER 
Accumulator for examination. 



Output Subroutines 

Output subroutines were tested, for the most part, by verifying their 
output against expected results. It was sometimes necessary to simulate 



115 



initial conditions prior to testing the subroutines. The simulations 
were designed to test the operation over the full range of possible con- 
ditions. 



Final Testing 

When all subroutines had been successfully tested individually, they 
were combined into a single punched symbolic tape. This tape was then 
assembled by ROAR and loaded into the computer. 

A program input tape was prepared containing a variety of Aircraft As- 
signment Request Messages intermixed with Availability Messages which 
gradually removed all aircraft from service. Each output was checked 
for correct assignments and ETA's. Removal of aircraft from service 
permitted checking the "Aircraft in Maintenance" output message and 
the "Service Not Available" message. 

The final testing phase brought to light a few errors in the intercom- 
munication linkage between subroutines which were readily corrected to 
produce a finished program tape. 



116 



MANUAL CONTROLS AND 
OPERATING PROCEDURES 



1 

I 



6 






The RPC-4000 Electronic Computing System is composed of the RPC-4010 
Computer and the RPC-4500 Tape/Typewriter System. 

Other input/output devices may be added in various combinations to a 
maximum of 60 devices. 

The l^ist of components: 



RPC-4000 
RPC-4010 
RPC-4500 
RPC-4480 
RPC-4430 
RPC-4410 
RPC-4440 
RPC-4431 
RPC-4600 
RPC-4450 



Electronic Computing System 

Computer 

Tape/Typewriter System 

Typewriter 

Reader/Punch 

Photo-Electric Reader 

High Speed Punch 

Auxiliary Reader/Punch 

Auxiliary Tape/Typewriter System 

Line Printer 



A magnetic tape unit is planned and other devices will be announced 
as they become available. This discussion will concern itself with 
the basic RPC-4000 system, the RPC-4010 Computer, and the RPC-4500 
Tape/Typewriter System. 

The RPC-4010 computer console contains the controls for the central 
computer. The RPC-4500 Tape/Typewriter System consisting of the RPC- 
4480 Typewriter and the RPC-4430 Reader/Punch provide means for pre- 
senting information to the central computer via the typewriter key- 
board or the reading unit on the RPC-4430 Reader/Punch. The central 
computer can output information via the typewriter or the punching 
unit on the RPC-4430. The master controls for all input/output devices 
are located on the right panel of the RPC-4430. 

A list of all the controls on both the RPC-4010 and the RPC-4430 may 
be found on pages 130 through 138 



The control panels on the units are referred to 



as 



117 



RPC-4010 Computer Console Control Panel - abbreviated - (CC) 
RPC-4430 Reader/Punch Right Control Panel - abbreviated - (RPR) 
RPC-4430 Reader/Punch Left Control Panel - abbreviated - (RPL) 



THE RPC-4010 

i 

The RPC-4010 console has buttons that control the central computer. 
The use of the SENSE SWITCHES is discussed on pages 29 and 132. The 
POWER ON and POWER OFF buttons do not require discussion. 



MODES OF COMPUTER OPERATION 

If the ONE OPERATION button is raised, the computer is in NORMAL mode. 

If the ONE OPERATION button is depressed, the computer is in ONE 
OPERATION Mode. 

Normal Mode 

If conditions are satisfied for the operation of a given program and 
the computer is in Normal Mode, a start signal will initiate the 
execution of program steps until a programmed halt is encountered or 
the ONE OPERATION button is depressed. During computer operation in 
the Normal Mode, the COMPUTE indicator will generally be lighted during 
the execution of program steps. INP , PRD , or PRU commands may cause 
the STOP indicator to light and the COMPUTE indicator to go out. However, 
so long as the computer is under program control, manual intervention is 
not required unless it pertains to input of information. When ONE 
OPERATION is depressed, the computer stops in the next phase 3 that is 
encountered . 

If an instruction is being executed in the Repeat Mode, the computer 
will perform the number of executions specified by the Repeat Count 
(an extended phase 4 will occur) before stopping in the following phase 
3 (See page 25 . ) 

During Normal Mode the computer will stop when a HLT command is 
executed or when ONE OPERATION is depressed. 

The HLT command is similar to INP in that the effect of the command oc- 
curs in phase 3. Ordinarily the instruction word in the COMMAND Re- 
gister has not been executed. In the case of HLT, obviously it has been 



118 



executed if the computer stops. When a programmed HLT is encountered 
the computer stops in phase 3 of the HLT cycle with the HLT instruction 
word in the COMMAND Register. 



One Operation Mode 

When the ONE OPERATION button is depressed the computer halts at the 
beginning of the next phase 3 that is encountered, initiating One Oper- 
ation Mode. This computer mode is used for bootstrapping and while 
debugging a program. 

In One Operation Mode a start signal will cause the instruction in the 
COMMAND Register to be executed and the next instruction in the program 
to be placed in the COMMAND Register. 

Certain conditions can exist which will modify the operation of an in- 
struction. 

a. If the sign of the UPPER Accumulator is negative and the COM- 
MAND Register contains a TMI instruction word the next in- 
struction to be executed will be designated by the data-address 
of the COMMAND Register. 

b. If Branch Control is on and the COMMAND Register contains a 
TBC instruction word the next instruction to be executed is 
designated by the data-address. If the BRANCH CONTROL but- 
ton is depressed, resetting (or turning OFF) Branch Control, 
the next instruction will be designated by the next-address 
of the COMMAND Register as usual, 

c. A programmed HLT executed when ONE OPERATION is depressed is 
redundant . 

When the RPC-4010 is in One Operation Mode the SET INPUT and EXECUTE 
LOWER ACCUMULATOR buttons may be activated. 



SET INPUT 

When SET INPUT is depressed the instruction in the COMMAND Register is 
overridden by an "effective" input command. The COMMAND Register is 
unchanged except for the data-track field which is set to zero. The 
"effective" input command is treated in the same way as any other in- 
struction is treated in One Operation Mode. The computer halts at the 
beginning of phase 3 of the "effective" input command which will not be 
executed until START COMPUTE (RPR) (CC) is depressed 



119 



If EXECUTE LOWER ACCUMULATOR is depressed when the "effective" input 
command is executed, the next start signal received as the result of 
the detection of a stop code by the selected input device or the de- 
pression of START COMPUTE (RPR) (CC) , will cause the contents of the 
LOWER Accumulator to be transferred to the COMMAND Register, by-pas- 
sing the usual phase 1 and 2 and the computer to halt with the contents 
of the LOWER Accumulator. The instruction word now in the COMMAND Re- 
gister will not be executed until the another start signal is received, 

EXECUTE LOWER ACCUMULATOR should not be depressed unless input is being 
accomplished by means of SET INPUT, 



THE RELATIONSHIP OF ONE OPERATION AND REPEAT MODES 

In One Operation Mode it is possible that the Repeat Count will be 
loaded and Repeat Mode initiated. There are several possibilities 
that may occur. 

The effect of Repeat Mode when the ONE OPERATION button is raised is 
explained in Section 3. Only a brief review is necessary. The repeat 
Count is loaded into bits 18 thru 24 of the INDEX Register by the LDC 
instruction word. The next phase four that is encountered is executed 
and then repeated the number of times specified by the Repeat Count 
(Repeat Count -f word times for execution = number of repetitions), 

When ONE OPERATION is depressed and an LDC instruction word is executed, 
the instruction word designated by the next-address is transferred to 
the COMMAND register and the computer stops at the next phase 3 that is 
encountered. Thus the Repeat Count will be intact in the INDEX Register. 
If no other buttons are activated the instruction now in the COMMAND Re- 
gister will be executed in the Repeat Mode if it could be so executed in 
Normal Mode. All of the restrictions that apply in Normal Mode will ap- 
ply in One Operation Mode. 

The possibility does exist that manual operations can intervene. 

a. One Operation Mode-Repeat Count not loaded. Obviously no problem 

b. One Operation Mode- Repeat Count loaded. 

If the last instruction to be executed was an LDC and the instruction now 
in the COMMAND Register can be executed in the Repeat Mode, the next start 
signal will cause the instruction to be executed just as if the computer 
were in Normal Mode. Since only phase 4 of an instruction is repeated all 
of the repetitions will occur before the computer stops in phase three of 
the following instruction. 



120 



c. One Operation Mode-Repeat Count loaded-EXECUTE LOWER. ACCUMULATOR 
depressed. 

If the last instruction to be executed was an LDC and EXECUTE LOWER ACCU- 
MULATOR was depressed when the computer entered the next phase 1, the con- 
tents of the LOWER Accumulator was transferred to the COMMAND Register and 
the computer halted in phase 3 of the instruction word now in the COMMAND 
Register. If this instruction would normally be executed in the Repeat 
Mode the next start signal will initiate its repeated execution as in b. 
(above) 

d. One Operation Mode-Repeat Count loaded-EXECUTE LOWER ACCUMULATOR 
depressed-SET INPUT depressed. 

If SET INPUT is depressed after the Repeat Count is loaded, the Repeat Mode 
is terminated and the Repeat Count remains intact in the INDEX Register. 
The instruction following SET INPUT is executed only once regardless of 'ac- 
tual input or whether the instruction is taken from memory or the LOWER Ac- 
cumulator. 

Certain commands cannot be repeated. Any command which does not have a 
phase 4 cannot be repeated for obvious reasons (active TBC and TMI, INP , 
HLT). These commands would alter the Repeat Count during a repeated 
execution: LDC, EXC (UPPER into INDEX) and would cause a phase 4 that 
would never stop, hence they will not be repeated if so attempted by 
the program. 



PROTECTED TRACKS 

The RPC-4010 memory may be protected to prevent destruction of recorded 
information in 8 blocks of 16 tracks each. Two blocks (tracks 0-15, 
16-31) may be protected by means of toggle switches located behind the 
sliding panel directly below the oscilloscope on the RPC-4010 console 
These switches disconnect the write heads to prevent recording. (Figure 

Inside the RPC-4010 cabinet are 8 toggle switches that will protect any 
of the 8 blocks of 16 tracks. These switches are mounted on circuit 
cards located inside the front panel of the RPC-4010 (and behind the 
metal door covering the circuit card racks). Eight toggle switches are 
mounted two each on 4 cards. The upper switch on the left -most card is 
in series with the 0-15 switch on the computer console, the lower switch 
is in series with the 16-31 switch on the console. 

The eight switches inside the cabinet control the write-heads (reading 



121 



upper, lower, left to right) on tracks: 

0-15 64-79 

16-31 80-95 

32-47 96-111 

48-63 112-127 

If the two internal switches (0-15, 16-31) corresponding to the external 
switches are off, the external switches have no effect. If one is off, 
both are off. If both are on, recording is possible. The switches are 
in series. 



ADDITIONAL COMMENTS ON MODES 

A summary of the various modes may be useful: 

One Operation and Normal Mode can only be selected manually (by the 
ONE OPERATION button) . 

Copy Mode can be controlled manually or by programming. 

The Eight-Word Mode of the LOWER Accumulator is controlled by 
programming, but depressing the SET INPUT button in One Operation 
Mode will set the LOWER to one-word length, regardless of its 
programmed mode . 

The Repeat Mode can be controlled by programming only. 

Single Character Mode means that after each four-bit or six-bit 
character is read as determined by the INP command, a start signal 
will be sent to the computer. Single Character Mode cannot be con- 
trolled by programming and with the exception of SET INPUT, the 
four-bit or six-bit input cannot be controlled manually. 

The selection of four-bit or six-bit input is under control of the 
INP (x) command, except for the effect of SET INPUT. 



THE RPC-4000 INPUT/OUTPUT 

The basic RPC-4000 system uses the RPC-4500 Tape/Typewriter System 
consisting of the RPC-4480 Typewriter and the RPC-4430 Reader/Punch. 
The RPC-4430 Right Control Panel has the master INPUT/OUTPUT controls 
for any device in the system. The control buttons and indicators are 
listed and described on pages 134 through 138. 



122 



THE RPC-4430 

The RPC-4430 has two panels. The right panel (with the exception of 
SYSTEM POWER) is concerned exclusively with on-line operations. The 
left panel is actually in two sections divided by the caption OFF 
LINE. The top portion deals primarily with on-line operation, but 
must be considered to affect off-line functions to a certain extent. 
The principle function of the lower portion is to control off-line 
operation, but it can have a decided effect on on-line operation. 



Selection On and Off Line 

Any unit selected off-line takes precedence over on-line selection. 
Selection of the typewriter, the reader or the punch off-line will 
deselect that unit if it is selected on-line. If the unit is se- 
lected off-line and any attempt (by programming or manually) is made 
to select that unit on-line, the SELECTION MONITOR indicator lights 
to indicate an error. The light under the on-line selection button 
will come on and with the exception of the SELECTION MONITOR indicator, 
the unit will appear to be selected on-line. THE COMPUTER WILL B E 
UNABLE TO USE UNITS SELECTED BOTH AND OFF-LINE . They may be used off- 
line in this condition. 

One and only one input device may be selected at any one time. If an 
input device is selected on-line manually or by a program step and 
another input device is subsequently selected, the input that was se- 
lected last will be the one that is used by the RPC-4010. The lights 
under both buttons will be on and both will appear to be selected but 
only the last will have access to the RPC-4010. If two devices are 
so selected the SELECTION MONITOR indicator (RPL) will be lighted. 



The RPC-4000 Tape 

The tape-reader moves the tape under a set of "read brushes" which 
close an electrical circuit when a tape hole (punch) passes beneath 
them. The tape has seven channels. Any or all of these channels may 
have a punch in one horizontal row. A combination of punches in chan- 
nels 1 through 6 is called a character. Channel 7 is called the parity 
bit. 



Parity Checking 

The PARITY MONITOR circuit (RPR) is used to check the accuracy of the 
reader and of the punch which produced the tape that is being read. 



123 



That is, channel 7 of the tape is reserved for a parity bit. The RPC-4000 
system has even parity. If the number of punches in a character is odd, 
a parity bit will be punched so that the number of bits in all seven 
channels is always even . The parity checking circuitry is active only 
during on-line operation of the tape-reader. 

If the PARITY MONITOR INHIBIT button is depressed, parity checking is 
by-passed. If the button is raised, the reader will check the parity 
of the tape being read. 

If the PARITY MONITOR INHIBIT button is raised and a character with an 
odd number of bits is read, the light under the PARITY MONITOR RESET 
button comes on and input stops. At this point the STOP READ button 
(RPR) must be depressed. The character with bad parity is the character 
that was read before the one that is now in the CHARACTER INDICATOR 
lights. The character with bad parity has been transferred to the RPC- 
4010. 

If the parity error is such that the character so input is invalid, the 
accumulators must be cleared and all information input as a result of 
the INP being executed must be read into the computer again. 

Recovery from a parity stop is normally as follows- 

depress STOP READ (RPR), 

depress PARITY MONITOR RESET (RPR), 

clear the accumulators, 

read all of the input again, 

re-position the tape, if necessary, 

depress START READ 

When START READ is depressed, the character under the read-head (and 
also in the CHARACTER INDICATOR LIGHTS is input to the RPC-4010 com- 
puter just as if the parity stop had not occurred. 



Checksums and Master Tapes 

The advantage of checking the reliability of information input into a 
computer is widely recognized. One method was discussed above. A second 
method is checksumming. 



Various schemes are used to produce a checksum. The criteria for choosing 
a scheme depends on the characteristics of the various components in the 
computing system, the assemblers that produces the machine language pro- 
gram tape and the input routines. Using these criteria, the following 
scheme was adopted for the RPC-4000. The RPC-4000 Optimizer and Assembly 
Routine, ROAR, which will produce most RPC-4000 program master tapes, 
outputs a checksummed hexadecimal master tape of the following format: 



124 



The bootstrap followed by a blank space, 
several tape records (structured as below) and 
a transfer record. 

For present purposes, a tape word is defined as the characters between 
stop codes. The structure of each tape record of the hexadecimal pro- 
gram tape (except the final record) is 100 tape word of 12 hexadecimal 
characters, each followed by a stop code. The final word (101) is a 
checksum of not more than 16 hexadecimal characters. 

In the tape word, the first 4 characters are an absolute address and 

the remaining eight characters are the information to be entered at 

the specified address. Leading zero's in the first 4 characters are 
omitted. 

In the checksum (word 101), 16 characters may be present (leading 
zeroes are supressed) . The first 8 characters are the sum of all 
the locations (first 4 characters) in the preceding words in the 
record plus the total number of overflows detected while summing 
the data words (last 8 characters) in the record. The final 8 
characters in the cheskcum are the sum (without regard to overflow) 
of all the data words in the record. 

The final tape record is of variable length and is the same as other 
records except that the checksum of this final record will always have 
bit equal 1 and will always have 16 characters. Only the final re- 
cord will ever have a checksum with negative sign bit. 

The last record on the tape is a transfer record to branch to the 
beginning of the program being loaded. If SENSE SWITCH 32 is depressed 
the transfer will occur immediately and the program will begin operation 

If SENSE SWITCH 32 is raised a halt will occur before a transfer to the 
starting location of the program. 



COPY MODE 

Copy Mode means that whatever is being input to the RPC-4010 will be 
copied on all output devices that are selected by the RPC-4010 Two 
buttons on the RPC-4430 Right Control Panel control Copy Mode ' They 
are the INPUT DUPLICATION SELECT and RESET buttons. Copy Mode may 
also be controlled by the appropriate PRD instruction. Although Copy 
Mode is an on-line activity and may be under program control it is a 
function of the RPC-4430. If the RPC-4010 selects more than one out- 
put device and prints or punches on these devices simultaneously, this 
is multiple output and is a function of the RPC-4010. Such multiple 
output should not be confused with Copy Mode. 



125 



The RPC-4480 Typewriter 

The RPC-4480 typewriter may be used as input/output device on-line or 
off-line. It could also be used as a conventional typewriter. 

Before the typewriter can be used (either on-line or off-line), it must 
be selected. On-line selection may be manual or by the appropriate PRD 
instruction. Off-line selection overrides on-line selection as stated 
on page 123. 

If the typewriter is used for output, the only action required by the 
operator is setting the tab stops and margins. 



On-line Operation 

If the RPC-4480 is being used for on-line input, it must be selected 
(manually or by programming), the computer must have executed an INP 
command or SET INPUT (CC) and START COMPUTE (RPR) (CC) must have been 
depressed. 

When the above conditions are met, the RPC emblem on the upper left 

of the face of the type bar rack cover will be lighted. This light 

indicates that the RPC-4010 is ready to accept input and information 
may be typed. 

If the SINGLE CHARACTER MODE button (RPR) is raised, the computer will 
accept codes 16 through 62, that is all the legal alpha-numeric 
characters. (See page 185). When (and only when) a stop code is de- 
tected, at start signal is sent to the computer. If SINGLE CHARACTER 
MODE (RPR) is depressed, all character codes are entered into the 
computer and a START signal is sent after each character is read. 

A stop code (*) is a special character representing a configuration of 
bits that the RPC-4430 normally recognizes (on and off-line) as a 
signal to stop input and take some other action. Single Character Mode 
(on or off-line) allows the treatment of stop codes to be identical to 
that of any other character, 

When an input device is selected on-line and SINGLE CHARACTER MODE 
(RPR) is raised and the RPC-4430 recognizes a stop code originating 
from the device, the RPC-4430 terminates input and sends a start 
signal to the RPC-4010. 



Off-line Operation 

When an input device is selected off-line and the CONDITIONAL STOP but 
ton (RPL) is raised, a stop code that originates with the input device 

126 



and is detected by the RPC-4430 will cause the RPC-4430 to act as if 
STOP READ (RPL) had been depressed. If CONDITIONAL STOP (RPL) is de- 
pressed, stop codes will be treated in the same way as any other 
character. 



Operation of the RPC-4480 

The typewriter keyboard is similar to any good electric typewriter. 
The operation is very similar and it only seems necessary to com- 
ment on certain differences. 

The numeric keys include a "1". 

The "* M is the stop code. 

The short bar to the left of the SPACE bar is labeled LINE FEED and 
depression of this bar will cause the typewriter carriage to move the 
paper up one line (feed a line of paper). 

To the right of the SPACE bar is a short bar labeled SPECIAL. This 
bar is used in conjunction with the BACKSPACE key and the x 
key . 

When the SPECIAL bar is depressed, depression of the BACKSPACE key 
will backspace the typewriter carriage and the tape . It is now pos- 
sible to depress the x key with the SPECIAL bar depressed and a code 
delete will be punched over the character on the tape and an x imprint- 
ed over the character on the print-out which was deleted from the tape. 

The only way to obtain a code delete is by depressing the x key while 
the SPECIAL bar is depressed. 

The BACKSPACE key and the x key have the usual effect if the SPECIAL 
bar is not used. 

If the RPC-4480 Typewriter is being used for input off-line, the TYPE- 
WRITER SELECT (RPL) button must be depressed, the READER SELECT (RPL) 
button must be raised and START READ (RPL) must be depressed. The RPC 
emblem will be lighted just as in on-line use of the typewriter. 

Information may now be typed (and, presumably will be punched). If the 
SINGLE CHARACTER Mode button (RPL) is depressed, the START READ button 
(RPL) must be depressed before any (or each) character is typed. 

If the CONDITIONAL STOP button is depressed, all stop codes will be 
ignored and the off-line typewriter will remain connected to the punch 
until STOP READ (RPL) is depressed. 

If the CONDITIONAL STOP button (RPL) is raised, the typewriter will 



127 



accept input as defined by the setting of the SINGLE CHARACTER MODE 
button (RPL). 

If SINGLE CHARACTER MODE (RPL) is raised, then the connection between 
the typewriter and the selected output device is dependent entirely 
upon the CONDITIONAL STOP button (RPL) as described above. 



THE AUXILIARY TYPEWRITER 

On the left control panel of the RPC-4430 there are buttons to select 
an auxiliary typewriter for input and output. Similarly there are 
buttons on the RPC-4431 unit to select an auxiliary typewriter. These 
buttons do not select the same typewriter nor do the buttons on the 
RPC-4430 select the typewriter used on or off-line with the RPC-4600 
Auxiliary Tape/Typewriter System. 

An auxiliary typewriter is auxiliary to the tape/typewriter system 
which will select it manually for on-line use. An auxiliary type- 
writer will not punch or print off-line. It is an auxiliary type- 
writer for use by the computer while the tape/typewriter with which 
it is associated is being used off-line. An auxiliary typewriter might 
also be used in some remote location to provide access to the RPC-4000 
system. 



128 















>. «jj r- 
«; .r, _ 




C©2 






L SECTOR DISPL 
3 4 




"c@5 

O 




















o 








O 






£ 2 


z 

c 5 


X 










ii- 
OS 
UJ 

© 
o. L 


£ 3 

a. c 

=9 - 


C 2 
3 O 
J O 


UJ 

o 
z 




«-« 


o 








I....J 


-J 

o 
ce 

h- 
Z 
O 

o 

X 

o 

z 
<c 
ae 

OD 


1 1 


1 1- 


z 

i 

o 
a- . 


u 


CM 


u 




3 =3 



1 1 


^- 


1 1 




X 5c o 

uj ^ 2 


o 
o 

«=; 

a. 
Z 


1 


oo 






COMPUTE 

© 

ONE OPERATION 


1 1 


t— « 


1 1 




STOP 
ART COMPUTE 


1 1 


CM 

CO 


1- 







o 

CO 

C 

o 
u 



o 
u 
+-» 

c 
o 
u 



o 

I 

u 



o 



M 



129 



RPC-4010 CONSOLE 



BUTTON OR INDICATOR 



FUNCTION 



POWER ON 



A momentary switch which turns power 
ON, and is lighted when power is ON. 



POWER OFF 



A momentary switch which turns power 
OFF. 



START COMPUTE 



A momentary switch which initiates 
computer operation, depending on the 
setting of ONE OPERATION. It is 
lighted when power is ON. 



ONE OPERATION 



A two position switch, active when de- 
pressed and lighted when active. A 
depressed ONE OPERATION button places 
the computer in One Operation Mode. 
When ONE OPERATION is raised the com- 
puter is in Normal Mode. 

When in Normal Mode, the depression of 
ONE OPERATION will halt the computer 
at the beginning of the next phase 3 
that is encountered. 



SET INPUT 



The depression of ONE OPERATION will 
allow the activation of the SET INPUT 
and EXECUTE LOWER ACCUMULATOR buttons. 

In One Operation Mode a start signal 
will cause the instruction word in the 
COMMAND Register to be executed and the 
instruction designated by the next-ad- 
dress to be placed in the COMMAND Re- 
gister before the computer halts at the 
beginning of the next phase 3 that is 
encountered. See the discussion of TMI , 
TBC, and the Repeat Mode on page 25. 

A momentary switch active only when ONE 
OPERATION is depressed. When ONE OPER- 
ATION is active, depression of the SET 



130 



SET INPUT 
(continued) 



INPUT button will cause the LOWER Ac- 
cumulator and the data-track field of 
the COMMAND Register to be set to zero. 
The LOWER Accumulator will be set to 
one-word length and the execution of a 
four-bit input order that overrides the 
instruction in the COMMAND Register 
will be initiated. 

If SET INPUT is depressed while the com- 
puter is in One Operation Mode, the re- 
sulting four-bit input order will be in 
effect even though ONE OPERATION is 
raised before the receipt of a start 
signal. In all cases the successful 
execution of the four-bit input order 
is contingent on manual selection of an 
input device and depression of START 
COMPUTE . 



EXECUTE LOWER ACCUMULATOR 



A two position switch, active only when 
the ONE OPERATION button is depressed 
and lighted when active. When active 
and upon the receipt of any start sig- 
nal, either as a result of the depres- 
sion of START COMPUTE or of some input 
function, the word contained in the 
LOWER Accumulator is transferred into 
the COMMAND REGISTER. START COMPUTE 
must be depressed before the instruction 
will be executed. 



Good procedure demands that EXECUTE 
LOWER ACCUMULATOR be raised during 
operation in Normal Mode. If ONE OPER- 
ATION is depressed with the operator 
unaware of the fact that EXECUTE LOW- 
ER ACCUMULATOR is depressed much con- 
fusion can result. 



BRANCH CONTROL 



A momentary switch used to turn Branch 
Control OFF when the computer is in One 
Operation Mode. This button is lighted 
when Branch Control is ON regardless of 
mode , 



If the operator is single-stepping 
through a program in One Operation 
Mode, this button allows a choice of 



131 



the path that will be taken by TBC in- 
structions . 



SENSE SWITCHES 



Six two position switches used in con- 
junction with the SNS instructions. 
Each button is lighted when depressed. 
Depressed buttons are ON, raised but- 
tons are OFF , (See page 



OSCILLOSCOPE 



Displays a visual representation of 
the contents, in binary, of the UPPER, 
LOWER, COMMAND and INDEX Register. 



L-DISPLAY 



An eight -position rotary switch, the 
setting of which determines the LOWER 
Accumulator that will be displayed 
when the LOWER is in the Eight-word mode 



STOP 



An indicator lamp that is lighted when 
the computer is halted on HLT , INP, or 
as a result of manual intervention by 
depression of the ONE OPERATION button 



COMPbTE 



An indicator lamp, lighted when the 
computer is executing instructions 



3," 1 



POWER 



SELECTION 
MONITOR 




TYPEWRITER 
TO COMPUTER 




READER TO 
COMPUTER 


AUX. TYPEWRITER 
TO COMPUTER 


^^^ 























COMPUTER TO COMPUTER COMPUTER TO 

TYPEWRITER TO PUNCH AUX. TYPEWRITER 



READER TAPE PUNCH TAPE 

MONITOR MONITOR 



© 




CONDITIONAL 
STOP 



OFF LINE 
TAPE FEED 



TYPEWRITER 
SELECT 




READER 
SELECT 




PUNCH 
SELECT 

























START READ 




STOP READ 




SINGLE 
CHAR. MODE 



























P 


6 


5 


4 




3 


2 


1 





SYSTEM POWER 



PARITY M0NIT0R 

CHAR. MODE RESET 



INHIBIT 



MASTER 
RESET 



INPUT DUPLICATION 

RESET SELECT 



START READ STOP READ START COMPUTL 



FIGURE 20. RPC-4430 Reader/Punch Control Panels 

133 



RPC-443Q READER/PUNCH RIGHT CONTROL PANEL 



BUTTON OR INDICATOR 



FUNCTION 



SYSTEM POWER 



A two-position switch, active when depres- 
sed and lighted when active. The button 
controls power to all input-output devices 
in the system. Individual power on switches 
cannot be activated unless SYSTEM POWER is 
ON. 



SINGLE CHARACTER MODE 



A two-position switch, active when depres- 
sed and lighted when active. When SINGLE 
CHARACTER MODE is depressed, all legal 
tape characters enter the accumulator and 
input will be one character at a time, 
with a start signal sent to the computer 
after each character is read. When raised, 
only tape codes 16 through 62 enter the com- 
puter and a start signal is sent only when 
a stop code is detected by the selected in- 
put device or START COMPUTE is depressed. 
SINGLE CHARACTER MODE cannot be controlled 
by programming. 



PARITY MONITOR INHIBIT 



A two-position switch, active when depres- 
sed and lighted when active. When active, 
the parity checking circuitry is disabled. 
When raised, the parity checking circuitry 
is active. 



PARITY MONITOR RESET 



A momentary switch. When the PARITY MONITOR 
INHIBIT button is raised and a character 
with bad parity (an uneven number of bits 
in all 7 channels) is under the read-head, 
the button is lighted. Depress the button 
and parity checking is by-passed for the 
character being read. (See also page 145). 



MASTER RESET 



A momentary switch which, when depressed, 
deselects any input/output units selected 
on-line. The button is lighted when the 
RPC-4430 power is on. 



134 



INPUT DUPLICATION SELECT 



A momentary switch lighted when active. 
When depressed, the button turns on Copy 
Mode whereby all selected output devices 
duplicate the input data as it is read 
into the computer. 



INPUT DUPLICATION RESET 



A momentary switch which, when depressed, 
turns OFF Copy Mode. Copy Mode can be 
controlled by programming. 



START READ 



A momentary switch which, when depressed, 
activates the input device that was selec- 
ted manually after the initiation of the 
programmed INP command or allows completion 
of an INP command that was interrupted by 
depression of STOP READ (RPR). 



STOP READ 



A momentary switch used to stop input by 
the selected input device. START READ 
(and only START READ) must be depressed 
to resume input without interrupting the 
input sequence. The button is lighted 
when the RPC-4430 power is on. 



START COMPUTE 



A momentary switch initiating program 
execution by the computer. Depressing 
this button is the same as depressing the 
START COMPUTE button on the computer 
console. The button is lighted when the 
RPC-4430 power is on. 



CHARACTER INDICATOR LIGHTS 



These lights represent the bit-pattern of 
the tape character being read by the RPC- 
4430. They are lighted to show the 
character code of the next character to 
be read into the system by the tape reader. 



135 



RPC-4430 READER/PUNCH LEFT CONTROL PANEL 



BUTTON OR INDICATOR 



FUNCTION 



POWER ON 



A two position switch used to control the 
electrical power of the RPC-4500. It is 
active when depressed and lighted when ac- 
tive. POWER ON should be raised and left 
raised until SYSTEM POWER is on 



SELECTION MONITOR 



An indicator lamp that is lighted when an 
I/O device selected off-line is selected 
by the computer, manually or by a program 
step. (See page 123). 



TYPEWRITER TO COMPUTER 



A momentary switch to select the type, : iter 
for input. The button is lighted when the 
typewriter is selected on-line. * 



READER TO COMPUTER 



A momentary switch to select the reader 
for input. The button is lighted when 
the reader is selected on-line * 



AUXILIARY TYPEWRITER TO 
COMPUTER 



A momentary switch identical to TYPEWRITER 
TO COMPUTER for the auxiliary typewriter 
of the RPC-4430. 



COMPUTER TO TYPEWRITER 



A momentary switch to select the typewriter 
for output. It is lighted when the type- 
writer is selected on-line * 



COMPUTER TO PUNCH 



A momentary switch to select the punch for 
output. It is lighted to indicate the 
punch is selected on-line * 



These buttons will be lighted when the rela- 
ted device is selected on-line manually or 
by a program step. The computer does not 
have access to the device if it is also se- 
lected off-line, (See SELECTION MONITOR 
(above) and the discussion on page 123. 



136 



COMPUTER TO AUXILIARY 
TYPEWRITER 



A momentary switch identical to COMPUTER 
TO TYPEWRITER for the auxiliary typewriter 
of the RPC-4430. 



READER TAPE MONITOR 



Two interlock switches will turn on this 
indicator. One is a pressure switch under 
the reading head that will stop the reader 
and turn on the indicator if the reader is 
out of tape. The other is a pressure switch 
at the point where the tape feeds over the 
edge of the cabinet. When tension on the 
tape as it feeds toward the reader becomes 
too great the switch will stop the reader 
and turn on the indicator. The appropriate 
STOP READ button should be depressed before 
corrective action is taken. 



PUNCH TAPE MONITOR 



An indicator light , lighted when the punch 
is out of tape or is jammed. Requires im- 
mediate attention at any time. ~~~~~ 



CONDITIONAL STOP 



A two-position switch, active when depres- 
sed and lighted when active. When inactive 
(raised) , a stop code sensed by any se- 
lected input device will terminate off-line 
operation. Operation must be then resumed 
by depressing START READ (RPL) . When active 
(depressed) , stop codes have the same ef- 
fect as other characters. Operation will 
continue until STOP READ (RPL) is depressed. 
Activation of CONDITIONAL STOP will override 
SINGLE CHARACTER MODE (RPL), if it is active, 



TAPE FEED 



A momentary switch which, when the punch 
is selected off-line, will feed blank tape 
with sprocket holes for leading and trail- 
ing ends of a tape. The button is lighted 
when RPC-4430 power is on. 



TYPEWRITER SELECT 



A two-position switch, active when depressed 
and lighted when active, that will de-select 
the typewriter if it is selected on-line and 
select it off-line; for output if another in- 
put device is selected off-line, or for input 
if no other device is selected off-line 



13' 



READER SELECT 



A two-position switch, active when depressed 
and lighted when active, that will de-select 
the reader if it is selected on-line and se- 
lect it off-line. While the reader is se- 
lected off-line, the typewriter may not be 
used for off-line input. 



PUNCH SELECT 



A two-position switch, active when depressed 
and lighted when active, that will de-select 
the punch if it is selected on-line and se- 
lect it off-line. 



START READ 



A momentary switch which, when depressed, 
connects the device selected for off-line 
input to the device selected for off-line 
output and otherwise activates the input 
device. The START READ signal is active 
as specified by SINGLE CHARACTER MODE (RPL) 
or CONDITIONAL STOP (RPL). The button is 
lighted when RPC-4430 power is on. 



STOP READ 



A momentary switch which, when depressed, 
terminates off-line input from the selected 
input device. The button is lighted when 
RPC-4430 power is on. 



SINGLE CHARACTER MODE 



A two-position switch, active when depres- 
sed and lighted when active. When depres- 
sed, off-line input will be character by 
character. If CONDITIONAL STOP is depres- 
sed, SINGLE CHARACTER MODE will have no 
effect, even though it will appear to be 
active . 



138 



BOOTSTRAP 

Bootstrapping is the process of entering a sufficient number of program 
steps, which in harmony with manual operations, will allow the entry of 
a short program loop that will load instruction words into the computer 
memory. There is often some confusion in the use of the term bootstrap. 
For this discussion, the terms bootstrap, load program and input program 
will be used. 

An input program is distinct from bootstrap or loading programs in that 
the input program processes the information in some way, such as scaling, 
binarization , conversion or a combination of these operations, The load 
program is a complete program, in that the entry of information is inde- 
pendent of manual intervention, so we may speak of the computer as being 
"under program control". 

The bootstrap is not separable from manual intervention. Part of a 
bootstrap may be free of manual intervention but the computer is not 
considered under program control until the program is free of manual 
control and has reached the point where the program ceases to modify 
itself through input. Once the program is in memory and instruction 
words are being loaded in some assigned location by a program loop 
that is not being changed as a result of that input, we are out of the 
bootstrap and under control of the load program. 

Bootstrapping for the RPC-4000 involves several manual operations but 
it is very simple once the procedure has been used. 

The bootstrapping operation consists of the following: 

Depress READER TO COMPUTER (RPL) 

Depress ONE OPERATION (CC) 

Depress SET INPUT (CC) 

Depress EXECUTE LOWER ACCUMULATOR (CC) 

Depress START COMPUTE (CC) (RPR) 

Remembering that we are in One Operation Mode, we see that information 
will be input until a stop code is detected by the reader. At this point 
the reader stops and a start signal is given to the computer. EXECUTE 
LOWER ACCUMULATOR is active so the computer, upon receipt of the start 
signal, transfers the contents of the LOWER to the COMMAND Register and 
halts with the instruction word that was input now in the COMMAND Register 
as the next instruction to be executed. 

Depress START COMPUTE (CC) (RPR) 

The instruction in the COMMAND Register is executed. 



139 



If the tape contained DFFOBF84D7F03F80*, we would recognize this as a 
hexadecimal tape word of 16 characters consisting of two computer 
words of 8 characters each, The equivalent ROAR language words would 
be: 

CLL 12702 12702 
CLU 12700 12700 

Since this word is now in the double-length accumulator with the in- 
struction word in the LOWER just executed, let us examine the execu- 
tion that has taken place. 

ROAR language will be used in the discussion, but it must be remembered 
that the bootstrap tape is a hexadecimal tape. 

The instruction we placed in the COMMAND Register was: 

CLU 12700 12700 

The double-length accumulator contained: 

UPPER CLL 12702 12702 
LOWER CLU 12700 12700 

When the instruction in the COMMAND Register was executed by depressing 
START COMPUTE (CC) (RPR), the contents of the UPPER was transferred to 
12700. 

The next-address specified is 12700. In memory, we have: 

12700 CLL 12702 12702 

NOW: 

Raise EXECUTE LOWER ACCUMULATOR (CC) 

Depress SET INPUT (CC) 

Raise ONE OPERATION (CC) 

Depress START COMPUTE (CC) (RPR) 

When START COMPUTE (CC) (RPR) is depressed, the four-bit input order is 
executed and the double-length accumulator contains: 

UPPER INP 12700 
LOWER CLU 12707 12707 

The computer is in Normal Mode, so when the stop code is detected by the 
reader, a start signal is sent to the computer. 



140 



12700 


CLL 


12702 


CLU 


12707 


INP 



The next instruction to be executed is specified by the next-address of 
the COMMAND Register which is: 

12700 CLL 12702 12702 

The instruction is executed and upon execution, memory looks like: 

12700 CLL 12702 12702 

12702 CLU 12707 12707 

and we proceed: 

12702 CLU 12707 12707 

The UPPER is cleared by the execution, so that we have in memory: 

12702 12702 

12707 12707 

12700 

On the execution of the instruction in 12707, the double-length ac- 
cumulator will receive two additional words : 

UPPER INSTRUCTION WORD 

LOWER CLU X 12707 

The UPPER will contain the instruction word to be stored in the location 
specified by the data-address of the word in the LOWER. 

This sequence is repeated until the load program has been stored in memory 

UPPER INSTRUCTION WORD 
LOWER CLU X LOAD 

where X in the last location in the load program and LOAD is the beginning 
of the load program. 

The load program should meet the following requirements: 

a . input a tape word 

b. determine where the word is to be stored 

c . perform that storage 

d. check for completion of input 

1. if complete, transfer to routine 

2. if not complete, loop to read next tape word 

e. the load program might also checksum the tape or 
audit the accuracy of the input device in some 
way . 



141 



The following is a short routine which will read and store a hexadecimal 
tape with the same word format as the ROAR output tape except that this 
routine does not checksum and the final tape word must be stored in LOAD 



(A) READ 1 TAPE WORD 

(B) LOG. OF WORD TO D-ADDRESS 

(C) ADDRESS TO X 

(D) RESTORE TAPE WORD 
LOAD STORE IN PROPER LOC . 



er to the routine. 




LOAD INP 





(A) SRL 


114 


(B) EXC 


498 


(C) SRL 


14 


(D) XCLL 






142 



OPERATING PROCEDURES 



RPC-4000 STARTING PROCEDURE 
(Assume power off, all units) 



1.1. RPC-44 30 Reader/Punch 

1.1.1. Make certain POWER ON (RPL) is raised 

1.1.2. Depress SYSTEM POWER (RPR) 

1.1.3. Depress POWER ON (RPL) 

1.2. RPC-4010 Computer Console 

1.2.1. Depress POWER ON 

1.2.2. Raise all SENSE SWITCHES 



NOTE: Approximately three minutes are required 
for the drum to reach the required speed 



BOOTSTRAPPING PROCEDURE 



2.1. Depress MASTER RESET (RPR) to deselect all I/O devices 
selected on-line. 

2.2. Deselect (by raising the appropriate button) any device 
selected off-line, (RPL) 

(If a device is selected off-line it is not available 
to the RPC-4010.) 

2.3. The following steps read the bootstrap from tape: 
Place the tape in the reader. 

2.3.1. Depress READER TO COMPUTER (RPL) 

2.3.2. Depress ONE OPERATION (CC) 

2.3.3. Depress SET INPUT (CC) 

2.3.4. Depress EXECUTE LOWER ACCUMULATOR (CC) 

2.3.5. Depress START COMPUTE (CC) (RPR) 

2.3.6. WAIT for reader to stop 

2.3.7. Depress START COMPUTE (CC) (RPR) 

2.3.8. Raise EXECUTE LOWER ACCUMULATOR (CC) 

2.3.9. Depress SET INPUT (CC) 



143 



2.3.10. Raise ONE OPERATION (CC) 

2.3.11. Depress START COMPUTE (CC) (RPR) 

2.3.12. The bootstrap will now read in and begin 
loading the hexadecimal program tape with- 
out stopping. 



MANUAL ENTRANCE TO A PROGRAM 



3.1. Depress MASTER RESET (RPR) to deselect all I/O devices se- 
lected on-line. 

3.2. Deselect any device selected off-line. (RPL) 

3.3. Depress ONE OPERATION (CC) 

3.4. Depress SET INPUT (CC) 

3.5. Depress EXECUTE LOWER ACCUMULATOR (CC) 

3.6. Depress TYPEWRITER TO COMPUTER (RPL) 

3.7. Depress START COMPUTE (CC) (RPR) 

3.§, Type the starting address of the program, in hexadecimal, 
followed by a stop code "*". 

3.9. Raise EXECUTE LOWER ACCUMULATOR (CC) 

3.10. Raise ONE OPERATION (CC) 

3.11. Depress START COMPUTE (CC) (RPR) 



ERRORS IN LOADING MASTER TAPES 



The two possible errors (other than manual errors) are checksum 
and parity errors. 

4.1. Checksum Errors 

If a checksum error is encountered, the typewriter prints 
"ERROR" and the computer halts. Recovery from checksum 
errors must be made by the procedure outlined below. 



4.1.1. Remove the tape from the reader. 

4.1.2. Position the tape to the space between the 
checksum of the record in which the error 
was detected and the beginning of the last 
record read correctly. 

4.1.3. Depress START COMPUTE (RPR) (CC) 

4.1.4. Try the procedure at least three times. If the 
third attempt to read the record is unsuccessful, 
go to 5.5, 



144 



4.2, Parity Errors 

When a parity error occurs, the light under the PARITY 
MONITOR RESET button (RPR) lights up and the computer 
stops . 

4.2.1. Depress STOP READ (RPR) 

4.2.2. Check the tape character 

4.2.3. Depress PARITY MONITOR RESET (RPR) 

4.2.4. Depress START READ (RPR) 

4.2.5. If the computer does not stop on a checksum 
error at the end of the record, the parity 
was false and the character was correct. 
Checksums are the most reliable checks. 

4.2.6. if a checksum error was detected, follow the 
procedure 4.1.3. (See page 123 if any difficulty) 

NOTE: Generally one tape word will be read from 
the next record before the checksum error 
is detected. 



5. USE OF ROAR TO ASSEMBLE PROGRAMS 



5.1. Set SENSE SWITCHES (See ROAR Manual) 

5.2. Place the ROAR input tape in the reader. 

5.2.1. Depress MASTER RESET (RPR) 

5.2.2. Deselect any equipment selected off-line (RPL) 

5.2.3. Depress READER TO COMPUTER (RPL) 

5.2.4. Depress COMPUTER TO TYPEWRITER (RPL) 

5.2.5. If the computer is stopped on a HLT command, 
depress START COMPUTE (CC) (RPR) 

5.2.6. If the computer is stopped on INP command, 
depress START READ (RPR) 

5.2.7. ROAR will read the input tape and assemble the 
program. 

5.3. Errors during ROAR assembly 

The errors considered in this section are: 

Input 

Parity 

Machine Malfunctions 



145 



5.3,1, Correction of input errors. 

These errors are either punching or coding 
errors that ROAR will detect and log out 
with appropriate comment. 

Follow the recovery procedure below for manual correction 
of these errors: 

5.3.1.1. DO NOT MOVE THE INPUT TAPE 

5.3.1.2. With the computer halted, depress 
MASTER RESET (RPR) 

5.3.1.3. Depress TYPEWRITER TO COMPUTER (RPL) 

5.3.1.4. Depress START COMPUTE (CC) (RPR) 

5.3.1.5. Starting with the location of the in- 
struction in which the error occurred, 
type the decimal location assigned by 
ROAR (or in some cases the last location 
assembled correctly.) Refer to the 
coding sheet and type the correct infor- 
mation up to and including the last stop 
code previously read by ROAR. ROAR will 
assemble the manual input as each stop 
code is entered. 

5.3.1.6. Depress MASTER RESET (RPR) 

5.3.1.7. Depress READER TO COMPUTER (RPL) 

5.3.1.8. Depress COMPUTER TO TYPEWRITER (RPL) 

5.3.1.9. Depress START READ (RPR) 

5.3.1.10. ROAR will resume assembly. 



5.4. Parity Errors 



5.4.1. Depress STOP READ (RPR) 

5.4.2. Mark the tape so the character causing the parity 
stop will be easy to remember. DO NOT REMOVE THE 
TAPE. (See also 6). 

5.4.3. Depress PARITY MONITOR RESET (RPR) 

5.4.4. Depress TYPEWRITER TO COMPUTER (RPL) 

5.4.5. Type any six hexadecimal characters, other than 
zero, followed by a stop code to cause an error 
print-out . 

5.4.6. Depress MASTER RESET (RPR) 

5.4.7. Depress READER SELECT off-line (RPL) 

5.4.8. Make sure CONDITIONAL STOP (RPL) is raised. 

5.4.9. Depress START READ (RPL) 

The tape will now be positioned at the first 
character of the field immediately following 
the field where the parity occurred. 



146 



5.4.10. Raise READER SELECT (RPL) . (Raise buttons depressed 
5.4.7. through 5.4.8.) 

5.4.11. Refer to coding sheet and follow procedure in 
5.3.1.1. through 5.3.1.10. 



5.5. Machine Malfunctions 

It is generally best to try the procedures outlined above. 
If after several tries, recovery proves impossible, call 
your friendly service man. 



If it is desirable to correct a tape off-line, this may be done by 
deselecting the Reader and leaving ROAR intact in the computer with 
its output undisturbed. In this case, the recovery would be by 
means of the following steps. 

Place the corrected tape in the Reader and position it to 
the beginning of the last non-blank location assembled by 
ROAR and follow steps 5.2.1. through 5.2.7. 



7. USE OF THE RPC-4500 TAPE -TYPEWRITER SYSTEM OFF-LINE 



To use the RPC-4500 to punch tapes off-line, the following sequence 
should be followed: 

7.1. Depress MASTER RESET (RPR) 
(Deselects all on-line units) 

7.2. Depress TYPEWRITER SELECT (RPL) 

7.3. Depress PUNCH SELECT (RPL) 

7.4. Depress CONDITIONAL STOP (RPL) 

7.5. Depress START READ (RPL) 

7.6. Whatever is typed will be punched 



POWER OFF PROCEDURE 



When the computer is not to be used for a considerable time or the 
installation is closing shop for the day, the following procedure 
is recommended for powering down. 



147 



The sequence will leave the system in a condition that will make 
it difficult for the next user to make mistakes in selection and 
switch settings. 

8.1. Raise EXECUTE LOWER ACCUMULATOR (CC) 

8.2. Depress ONE OPERATION (CC) 

8.3. Raise all SENSE SWITCHES (CC) 

8.4. Depress POWER OFF (CC) 

8.5. Depress MASTER RESET (RPR) 

8.6. Deselect any I/O devices in the system that are selected 
off-line. 

8.7. Raise POWER ON buttons (RPL, etc.) of the various I/O 
devices in the system. 

8.8. Raise SYSTEM POWER (RPR) 

8.9. The RPC-4000 ELECTRONIC COMPUTING SYSTEM is now in the 
best condition for use by the next person who has need 
of its capabilities. 



148 



SUMMARY LISTS p 
AND TABLES i 






1 



ALGEBRAIC EXPRESSION OF THE RPC-4000 COMMANDS 



This section contains a description, in algebraic notation, of the in- 
ternal result of execution of RPC-4000 commands. The symbols used are 
defined on the following pages. The methods used in the notation and 
the assumptions on which the algebraic descriptions are based are 
discussed. 



149 



DEFINITION OF SYMBOLS 



will mean the contents of the data-track portion (bits 5 thru llj 
of a register or location, 



will mean the contents of the data-sector portion (bits 12 thru 
17) of a register or location. 



will mean the data-address field (bits 5 thru 17) of a register 
or location, d will always mean that the data-track (t) and 
sector (s) fields are each of significance either as track and 
sector of an address or that the track and/or sector are used to 
modify the execution of an instruction. 



will mean the next-address field (bits 18 thru 30) of a register 
or location. 



will mean the index indicator bit (bit 31) of a register or locati 



on 



will mean "contents of" the bit positions or location denoted by 
the symbol modified by c. The notation c(d) would mean the contents 
of bits 5 thru 17 of a register or location, c(U) would mean the 
contents of the UPPER Accumulator. 



will be used to denote the contents of bits 5 thru 17 (the data- 
address field) of a register or location when these bits specify 
some memory location. 



will mean the contents of bits 18 thru 30 (the next -address field) 
of a register or location when these bits specify a location in 
memory . 



will mean the COMMAND Register. 



will mean the command field (bits thru 4) of a register or 
location. The contents of the command field [c(C') jwill generally 
be expressed as the mnemonic code for a given command. 



will mean bits 5 thru 17 of a register or location when these bits 
contain some value to be used by the instruction word. (See LDX 
and CXE, pages 30 and 36.) 

150 



With the above terms we can express any instruction word. Statements 
concerning an instruction word assume that the instruction exists in 
the COMMAND Register. The contents of a COMMAND Register can be ex- 
pressed as the cCC 1 ), c(d), c(n), and the c(i). More properly, the 
assumption is made that the COMMAND Register will contain: 

(Mnemonic code) D N 

Certain other symbols are needed to denote other bit positions and 
locations of significance. These symbols identify portions of registers 
and locations acted upon by instructions or describe some unique effect 
of the execution of an instruction. 



will mean the UPPER Accumulator, c(U) will mean the contents of 
the UPPER Accumulator. 



will mean the LOWER Accumulator. c(L) will mean the contents of 
the LOWER Accumulator. 



will mean some one of the eight words in the Eight-word LOWER 

Accumulator, e will be equal to 0, 1, 2, or 7. e will 

never be greater than 7. 



L e will designate the Eight-word LOWER Accumulator where e is equal 
to the modulo 8 equivalent of the data-sector of the effective 
operand address. (See the discussion page 24). 



will mean the INDEX Register. c(X) will mean the contents of the 
INDEX Register. 



will mean bits 18 thru 24 (the Repeat Count) of a register or 
location. Thus C(D r ) will mean the contents of bits 18 thru 24 
of the location specified by D. 



will mean the Sector Reference Timing Track. c(T) will be the 
contents of the Sector Reference Timing Track. (See page 20.) 

will mean bits 25 thru 30 of a register or location. f will gen- 
erally refer to those bits holding the "Found Sector". (See also 
pages 50 and 51) , 



151 



The operators used to describe the effect of the execution of an instruction 
are as follows: 



+ will mean addition. 

will mean subtraction 

x will mean multiplication, 

a will mean division, 
b 

= will mean equal. 

^ will mean not equal. 

< will mean less than. 

> will mean greater than. 

:& will mean less than or equal to. 

> will mean greater than or equal to, 
: will mean therefore, 

*■ will mean replaces. 

' / > will mean replacement terminates. 

These are generally arithmetic operators; no attempt is made in 
this section to describe logical addition, etc. as a result of 
the execution of an instruction. 



BC will mean the Branch Control flip-flop. Branch Control is as- 
sumed to be on unless otherwise specified. 

BC means not Branch Control or Branch Control off . 

The expression BC ► BC will mean Branch Control off replaces 

Branch Control regardless of its state; BC ► BC will mean 

Branch Control on replaces Branch control regardless of its state. 

Modifiers are necessary in some expressions. The problem of describing 
which bits in which registers are affected is a necessity for those in- 
structions that affect only part of a register or location. An LDC in- 
struction acts only on bits 18 thru 24 of the operand address and the 
INDEX Register; other instructions such as CXE , LDX , and SAU, pose 
similar problems. 

Subscripts are used to show which bits in a given register or location 
are affected (or used). X f would mean only bits 18 thru 24 of the INDEX 
Register are used/affected by an instruction. D would mean only bits 5 
thru 17 of the location specified by the data-address are used/affected 
by the execution of an instruction. 

Similarly any lower case symbol may be used as a subscript. The subscript 
means that only those bit positions designated by the lower case symbol 
are used/affected or are of special significance such as determining the 
LOWER Accumulator affected when the LOWER is 8-words. 

152 



The use of masks will be shown as follows: 



m will be used as a prefix to denote that the effect of an instruction's 
execution is determined by a mask in the location designated. 



mu means the contents of the UPPER is used as a mask. 



ml means the contents of the LOWER is used as a mask 



md' means the contents of the location specified by the data-address 
is used as a mask. 

Thus c(mlU) means the contents of the UPPER modified (specified) 
by the mask in the LOWER, c (md ' U) means the contents of the UPPER 
modified (specified) by the mask in the location specified by the 
data-address . 

The symbols above will describe most instructions executed in the Normal 
Mode. The COMMAND Register contains an instruction word. The search for 
sector begins and then: 

c(N) — ►c(C) 

Any sequence of instructions can be represented by: 

c(N) — ^c(C)— ^c(N 1 )— ► c(C) 
c(N 2 ) — *~c(C) — >-etc. 



THE INDEXING EQUATION 
i = 1 

c(N d ) + c(X v ) — ^c(C d ) 
as opposed to 
i = 

c(N d )— ■ ►c(Cd) 



153 



REPEAT MODE 

The symbols as explained above would allow us to describe the execution 
of any instruction in the Normal Mode. There will be many instances 
when an instruction will be executed in the Repeat Mode. Several terms 
are necessary to describe that phenomena. 

R will mean Repeat Mode 

R will mean Normal Mode 

j will be the momentary value by which the sector portion of the 
effective operand address is incremented during execution of 
an instruction in the Repeat Mode. At the first execution j 
will equal 0, on the second j will equal 1 and the final exe- 
cution j will equal the value of the Repeat Count loaded by 
the LDC instruction initiating the Repeat Mode. (See page 25). 

By "effective operand address" is meant the data-address used for any 
one execution of an instruction. If the instruction is not indexed 
and is being executed in the Normal Mode the effective operand address 
and the data-address are the same. If an instruction is indexed, the 
data-address of the instruction word is incremented by the index value 
and the sum is placed in the COMMAND Register as the data-address. We 
are concerned here with the three different "data-address fields", but 
only one effective operand address. 

If an instruction is being executed in the Repeat Mode, the data-address 
(which may be indexed) is placed in the COMMAND Register and remains un- 
changed. However, the instruction is executed once and then the effective 
operand address is incremented by one (COMMAND Register unchanged) , exe- 
cuted again, the effective operand address is incremented by one again, 
etc. This sequence is repeated until the effective operand address is 
equal to the data-address (D) of the COMMAND Register plus the value (r) 
loaded by the LDC instruction word initiating the Repeat Mode. 

The statement of an instruction where R = R is concerned with each indi- 
vidual execution, not with all of the executions which transpire. The 
expression D g+ : will mean that the sector portion of D is incremented by 
the momentary value of j to determine which sector is affected by (or is 
used by) that particular execution. This is extremely important when 
the instruction uses/affects the Eight-word LOWER. 

To illustrate, RAL repeated with one-word LOWER requires knowledge about 
the final execution and no other; the use of RAL repeated with an Eight- 
word LOWER requires knowledge about each and every execution. The latter 
is the usual case; we are most often concerned with each execution or a 
particular execution, but not with the final result of all the executions. 



154 



FINDING L e 

L e is determined by the effective operand address of the instruction that 
uses/affects the Eight-word LOWER. 

In Normal Mode , 

e = the remainder of Cs 

8~ 

In Repeat Mode, e is obtained by: 

e = the remainder of C R + j 



DESCRIPTION OF COMMAND EXECUTION 

(All numeric values are decimal.) 

HLT d N 

t must equal 

The computer stops. 

SNS d N 

< t < 128 

Initially BC — *- BC , then if any bit in t that is equal to 1 
corresponds to any depressed SENSE SWITCH, BC — *- BC ; otherwise 
BC — *-BC. 

CXE v N 

BC— ^BC; if c(X v ) = c(C v ): BC— *- BC 
BC— *-BC; if c(X v ) ji c(C v ): BC-^-BC 

NOTE: xCXE (v = l) N BC guaranteed OFF 

xCXE (v = 0) N BC guaranteed ON 

155 



RAU D 



R = R 



c(D)— *-c(U) 



R = R 



c(D s+ j) — ► c(U) 



RAL D 



R = R, L = L 



R = R. L = L. 



R = R, L = L 



R = R, L = L 



SAU D 



c(D) — *-c(L) 



c(D s ) — *-c(L e ) 



c(D s + j ) — »-c(L) 



c(D s + j) — *-c(L ) 



R = R 



c(U d ) — ►c(D d ) 



R = R 



c(U d )— ^c(D (s + j)d ) 



156 



MST 



R = R, 



L = L 



c (muL) ► c (muD) 



LDC 



R = R, 



L = L. 



c (muL~)- 



c(muD s ) 



R = R, L = L 



c (muL) *-c (muD s+ .) 



R = R, 



L = L, 



c (muL e )' 



c(muD s+ j) 



R = R 



R = R 



R »-R, 



c(D r ) — ►cCXj.), R *-R 

Is an impossibility . 



LDX 



R = R, cCcp = 



R = R, 



c(Ci) = 1, 



c(C v )— ^c(X y ) 



c(C v ) + c(X y )— ^c(X v ) 



R = R 



No difference. 



157 



INP 



Not considered 



EXC 



N 



s NOT USED 

R = R, L = L 

t = 

t = 1 

t = 2 



t = 4 



t = 



t = 16 



t = 32 



NO OPERATION 



c(V) ^c(L) 



c(L) ►c(U) 



c(U) >-c(X) 



c(X) ►c(U) 



L *- L 

e 



R = R, 
R = R, 
R = R, 



L = L ( 

L = L 
L = L 



NOT CONSIDERED 



158 



DVU 



R = R, 



c(U) ►c(U), positive remainder of 



c(D) 



c(U)_ ^c(L) 



c(D) 



DIV 



R = R 
R = R, 

R — R , 



L = L 



e 
L > 



Not considered 



R = R, 



L = L 



c(UL) — *-c(U), positive remainder of 
c(D) 



c(UL) — ^c(l) 
c(D) 



R = R, 
R = R, 

R = R. 



L - L< 

L = L 
L - I. 



Not considered 



159 



SLC 



A normalized number in the double-length accumulator is a 
number whose most significant digit (bit) is in bit 1. 



MPY 



R = R 



L = 



normalized 



shifts + c(C ) 
s 



c(UL)— *-c(U), 
modulo 64 — 



— ► c(L), number of 
c(L s ). 



NOTE: If the number of shifts plus c(C s ) equals 64, 
shifting stops and — »-c(L). The above is 
true unless the c(UL) is a normalized number. 
If c(UL) is normalized then c(C s ) — *-c(L s ); 
if c(UL) = then number of shifts will equal 
64 - c(C g ) and — ►c(Lg) 



R = R, 
R - R, 

R = R, 



L = L 
L = L, 



Not considered 



R = R. 



L = L 



R 


- 


*, 


L 


= 


L 


R 


= 


*, 


L 


= 


L 


R 


= 


R, 


L 


= 


L 



c(U) X c(D) 



Not considered, 



c(UL) 



160 



MPT 



R = R 



R = R, L = L 



R = R s L = L. 



R = R 



R = R, L = L 



R = R, L = 



t = 

c(U) X 10 — ^c(U) 

t = 64 

c(L) X 10 — *~c(L) 

c(L e ) X 10 — ►c(Lg) 

t = 

c(U) X 10 — ► c(U) 

t = 64 

c(L) X 10 — »-c(L) 

t = 64 



c(L e X 10 — ►c(Lg) 



Overflow is ignored. 

NOTE: It is specified that these descriptions are concerned 
with each single execution. In this case we may be 
concerned with exponentiation so that a repeated MPT 
could be considered as 

c(U or L) X 10J *-c(U or L), 

In the case L = L e , R = R 

if j > 7 exponentiation would take place for those 
words of the Eight-word LOWER that were acted upon 
more than once. 



161 



PRD 



D N 

NOT CONSIDERED 



PRU 



D N 

NOT CONSIDERED 



EXT 



R = R 



R = R 



c(D) = md' 



c(md'U) — *-c(U) 



c(md* s + jU) *-c(U) 



MML 



R = R, 



R = R, 



R = R, 



R = R, 



L = L 



L = L 



L = L 



L = L. 



c (muD) — *-c (muL) 



c(muD s ) *-c(muL e ) 



c(muD s+ j) — *~c (muL) 
c(muD s +j) ►cdnuLg) 



162 



CME 



D N 



R = R, 



L = L 



or if 



BC — ►BC then if 

c(mlU) = c(mlD): BC — ►BC, 

c(mlU) i- c(mlD): BC — ►BC. 



R = R, 



L = L 



or if 



BC — ►BC then if 

c(m'l e U) = c(ml e D s ): BC — ►BC, 

c(ml e U) j. c(ml e D s ) : BC — ►BC . 



R = R, 



L = L 



then if 



or if 



BC — ►BC, c (T+j) — 

c(mlU) = c(mlD s+ j): 
c(T+j) -/►c(Xf); 
c(mlU) ? c(mlD s+ j) : 
c(T+j) — ► c(X f ). 



■cap 

BC — ►BC 



BC ►BC, 



R = R, 



L = U 



then if 



or if 



BC— ►BC, c(T+j) — ► c(X f ), 

c(ml e U) = c(ml e D s + j ): BC— ►BC, 



c(T+j) -/►c(Xf); 
c(ml e U) ? c(ml e D s+ j) 
c(T+j) — ►c(Xf). 



BC' 



BC 



163 



CMG 



D 



N 



R = 



R, 


L = L 
BC— ►BC 


i 






then if 


cCmlU) 


< 


c(mlD): 


BC — ► BC 


or if 


c(mlU) 


> 


c(mlD) : 


BC — ►BC 



R = R, 



then if 
or if 



L = L £ 

BC — ►BC 

c(ml e U) < c(ml D c ) : 

c(ml e U) > c(ml e D s ): 



BC- 
BC- 



BC 
BC, 



R = R, 



then if 



or if 



L = L 

BC — ►BC c (T+j) — 

c(mlU) < c(mlD s+ j): 
cCT+j) -^►c(X f ); 
c(mllp > c(mlD . ; ) : 
c(T+j) — *-c(X f ). 



c(X f ), 
BC ► BC, 



BC ►BC 



R = R, 



then if 



or if 



L = L e 

BC— ►BC, c(T+j) ► c(X £ ), 

c(ml e U) < c(ml e D s + j): BC ►BC, 

c(T + j) -yl^cCXf); 

c(ml e U) > c(ml e D s+ .) : BC ►BC, 

c(T+j) — ► c(X f ). 



164 



TMI D N 



STU 



R = R 

Bit of U = (positive) 
C(N)— ► c(C), 

Bit of U - 1 (negative) 
c(D) — ► c(C) 

R = R NOT CONSIDERED (See page 25) 



TBC D N 



R = R 

BC = BC 

c(N) — ► c(C) 
BC = BC 

c(D) ► c(C) ►BC ►BC 

R = R NOT CONSIDERED (See page 25) 



R = R 



c(U) ►c(D) 



R = R 



c(U) — *-c(D s +j) 



165 



STL 



R = R, L = L 



R = R, L = L 



e 



R = R, L = L 



R = R, L = L 



e 



CLU D 



c(L) — ►c(D) 



c(L e ) — fr-cCD-) 



c(L)— ^c(D s + j ) 



c(L e ) — *-c(D s+ j) 



R = R 

c(U) ►c(D), ►c(U) 

R = R 

c(U) — ^c(D s+j } — ►c(U) 



NOTE: After the initial execution, the contents of U will 
be and hence 

— ►c(D s+ j) when j ^ 0. 



166 



CLL 



R = R, L = L 

c(L) — ►c(D), — ►c(L) 
lv — K. , L. — Lg 

c(L e ) ►c'(D s ), — ►c(Lg) 



NOTE: After the initial execution, the contents of L will 
be and hence, 



— ►c(D s+ j)' when j ± 



R = R, L = L 



c(L) — ►c(D s+ j), — *-c(L) 



R = R, L = L e 



c(L e ) >-c(D s+ j), ►cCLg) 



NOTE: If the Repeat Count is greater than 7 then — *~c(D g+ j) 
after j > 8. 



167 



ADU D 



R = R 



R = R 



ADL D 



R = R , L = L 



R = R, L = L, 



R = R, L = L 



R = R, L = L, 



c(U) + c(D) »-c(U) 



c(U) + c(D s + j) ►c(U) 



c(L) + c(D) ►c.(L) 



c(L e ) + c(D s ) — ►cCL ) 



c(L) + c (D s + j )— ►c(L) 



c(L e ) + c(D s + j) — ^c(L e ) 



168 



SBU D 



R = R 



R = R 



SBL D 



R = R, L = L 



R = R, L = L, 



c(U) - c(D) — *~c(U) 



c(U) - (D s+ j) — ►c(U) 



c(L) - c(D) — >-c(L) 



c(L e ) 



- c(D s ) — ►c(L.) 



R = R, L = L 



R = R, L ^ L, 



c(L) - c(D s + j) — >-c(L) 



c(L e ) 



" c< D s + j>-^^L e ) 



169 



o 

CO 

2 

O 
U 

o 

o 

I 
u 



TYPE 

OF 

SWITCH 


2 


s 


s 


H 




OVERRIDDEN 

BY 
BUTTON 

OR 
INSTRUCTION 


w 
w 
O 

W 

8 

Ph 


g 

w 

O 

Ph 


g 

M 

W H 

gs 

w 

Ph 

O 


cannot be 
overridden 
but see the 
description 
page 


ASSOCIATED 

WITH 
INDICATOR 






BOTH 
COMPUTE 

STOP 






CO 

H H 

U M 

W 2 
w 5 
w 

< 


o 

rH 
O 

1 

u 

p-t 


o 

O 

1 

u 

Ph 


o 

o 

^- 

i 

o 

Ph 


o 

CO 

i 

u 

Ph 


ASSOCIATED 

WITH 

BUTTON 






ONE 
OPERATION 

START 

COMPUTE 
(RPR) 


START 
COMPUTE 

SET INPUT 

EXECUTE 
LOWER 

START 

COMPUTE 

(RPR) 


ASSOCIATED 

WITH 
INSTRUCTION 


o 

2 


o 

2 


o 

2 


o 

2 


LIGHTED 
ACTIVE 
OR 

NORMAL 


< 




2 


<S 


W 


W 
W 2 

W l-H 

O h-1 










CO 


W 

2 

6 -i 


X 


X 


X 


X 


2 

R 


o 

H 
oi <j 
o 

M 

Q 

2 

►— 1 


g 

a; 
w 

PH 


w 
w 
o 

w 
<: 

o 

P-. 


W 
ei 5 

< Ph 

co O 


w 

g 


g 

M 

H 

5 

w 

O 



w 

o 

a 

i 

o 



4-> 

c 
<v 

6 
o 

E 



170 



pq 
p-i p.. 

>> " 
H 



O 

H 



O m 



2 

§ 

OS CQ 

OS 

W 

> 

O 



§ 

H 
H 
^) 
PQ 



g 



CD <4H 
-t-» U-i 



U 3 

<L) P-. 



co W 

QJ CO 



-M 
o 

PS 
QJ 

40 



rt co G O 



§ 

t-H 

H 

< 

as 

w 
o 

Pm 

o 



•a 

OJ 
CO 

CO 

OJ 

u 

a 

QJ 
T3 



2 




■a 


O 


<L> 


QJ 


1—! 


X> 


CO 


W H 




CO 


S3 


CO 


u 


W 


3 


a, 


P-. 


F 


QJ 


o 




■a 



X! 
o 
c 

i-i 

CQ 4-» 

C 

^ O 

•H CJ 



CO CO 

•H <U 



o o 



H D, <4-| 3 

o qj o 40 

U T3 

*-» C CO 

- o 
c 

o to 



•h x: 



Q 

w as 

H O 

«U K H 

t-H H ■< 

8Sy 

CO Q 

W 2 

< M 



co 
H 
O 

PQ 

Um 
tin 

<: 



Q 

pq 

H 

.a 

CO 
GO 



§ 

H 

pq 



Q 

S 

CO 
GO 



8 

I— l 

_ H 




W 
Pm 2 
Pm i-» 
O »-l 



W 
2 

2 n 

5 .-i 



as 

o 

^ H 

O < 
h«U 
H O m 
b q 
CQ 2 



o 

! 

o 

Pu 
OS 



pq 

§ 



2 
O pq 



CJ 



W X 



Pi 

1 



4-» 

c 

cu O 



o 

2 



X 



PL, 

2 



H 
pq 
CO 



O T3 

-M C CU 

co d <u +-> 

•h o xi xi 



£ bo 



o 

o 

I 
CJ 

Ph 

as 



o 
i 

V 
P-. 
OS 



g 

t-H 

W H 
O « 

Pm 

o 



4m 
>- 4-> 

r-t -H 

6 -a 

l-i QJ 
O cfl 



Ph 
2 



H 
W 
CO 



O 
2 







2 






§ o 






O M 


o 


W 


O W oo i-l PQ H 


CQ 


X 


S S 2 ft 2 < 
O CJ co as O as 


H 


O 






pq pq 






> Pm 






o o 



c 

QJ 
4m 

5 4m 
U 

>. c 

C ^ 
O 43 



■H 
CO 

o 
a 
i 
o 



ii 

H 



X 



X 



H as 

b pq 

u S 

pq O 

X H-) 

pq 



as 
o 

H 

5 



O 
U 
< 



t-M 

K O 
CJ as 

2 H 

CQ CJ 



171 



w 
p< 
;* 

H 


OF 
SWITCH 


H 




<4H 
O 




1 

l-H 

H 


PLE 
POSI- 
TION 






OVERRIDDEN 

BY 
BUTTON 

OR 
INSTRUCT IOIv 






CO 

c 

<U 
+-> 

c 
o 
u 

u 






ANY 
START 
SIGNAL 


ASSOCIATED 

WITH 
INDICATOR 


K O 
U Pi 
2 H 

S§ 

PQ U 


c 

•rH 

<U 

■»-> 
o 


OSCILLO- 
SCOPE 


OPPOSITE 

OF 
COMPUTE 


AFFECTS 

UNIT 


O 

o 
1 

u 

Pk 

OS 


r-l 

a 
w 

•H 
T3 

rH 

ni 

-< 


o 
o 

1 

u 

Pn 


o 

T-i 

o 

•*- 

i 

Pk 
Pi 


ASSOCIATED 

WITH 

BUTTON 




rovides a visi 
egisters. 






ONE 
OPERATION 

START 
COMPUTE 


ASSOCIATED 

WITH 
INSTRUCTION 


CO 
2 

CO 


<u <U 

a, c 
o -h 

u ,£5 

CO U 

O rt 

•h e 

•H V-t 

u 3 
CO o 
O <+H 


EXC 
(16 & 32) 


P< H 

2 >-J 


LIGHTED 
ACTIVE 

OR 
NORMAL 


< 




si 






when 

computer 

is 

stopped 

on HLT , 

INP , or 

ONE 
OPERATION 


Q 

w 
to 


W 
p^ 2 

W M 

O .-1 










w 

2 
2 m 

6 m- 


X 


X 


X 


X 


5 

H 

PQ 


OR 
INDICATOR 


w 

CO 
2 
W 
CO 


CO 

a 

CJ 
H 

co 


OSCILLOSCOPE 


co 

B 

CO 

n 
O 

w 


3 

Ph 
CO 
n 
Q 




Pm 
O 
H 

CO 





o 

•H 

+■> 

•H 
CO 

o 

I 
o 



II 

H 



Wt 

+-» 
C 

(LI 

e 
o 

E 



172 



PL, [1h 
>> O 



CJ 
H 



CO 




g 



§ 



Ph 
o 






Ph 
2 



w o 

S£5 



8 



3= Q 

CO 2 

CO (-1 



w 

H 

M ft, 

CO Ph O 

O O H 

Ph CO 

Ph 
O 



CO 

H 

U H 

< 



o 

i 
o 

Ph 



<* a o 

m H H 

8£B 

CO CQ 

CO 

< 



3 

CO 



W 



Ph CJ 



u 





Z 


w 


1 O 


f -1 b ^ 

« b c< 


HH 


I W H 


< Ph Ph 


I O c§ 


HSCK 


co O -^ 


W 


U 


1 Ph 




O 



« § 

W M 

i-i ^ ir* 

< X u 

m H D 

y t? * 

O 3: H 

co co 

CO Z 

j£ tL 





Ph 


W 






H 


o 


Q 


« 


Qa 


.-I 


H 


O 


O 


Z 


ffi 


CO 


O 




1— 1 










co 






1 


1 


C 




n 


PS 


C 


O 




aj 


u 


•H 


•H 




•+-» 


<L1 




4-> 


C 


PS 


X 




O 


CD 


a 


<U 


W) 


PS 


£t 


6 




c 


u 


£ 


o 


co 


•H 


+-> 




u 


•H 


+-> 


CO 




Z 



6 j 




x 



w 

B 

Ph 

§ 



173 



-1 
w 



Pi 

o 
Pi 

H 

g 

u 



Pi 

O 
CO 

rr 

^r 

i 

o 

Ph 

PS 



w 


cj 

ft H 

O M 

00 


H 




H 




H 


OVERRIDDEN 

BY 
BUTTON 

OR 
INSTRUCTION 






SI 




O 
2 


ASSOCIATED 

WITH 
INDICATOR 


oo 

& 

O 
t— i 

Pi 

5 


CHARACTER 
LIGHTS 

PARITY 
MONITOR 


CHARACTER 
LIGHTS 

PARITY 
MONITOR 


CHARACTER 
LIGHTS 

PARITY 
MONITOR 


AFFECTS 
UNIT 


ALL 

I/O 

DEVICES 


RPC-4430 
RPC-4480 


o 

CO 

1 

CJ 

p. 

Pi 


o 

CO 

^- 
i 

CJ 

Ph 


ASSOCIATED 

WITH 

BUTTON 


POWER ON 
VARIOUS 

I/O 
DEVICES 

IN 
SYSTEM 


ON-LINE 

INPUT 
SELECTION 


PARITY 

MONITOR 

INHIBIT 


PARITY 
MONITOR 
INHIBIT 


ASSOCIATED 

WITH 
INSTRUCTION 


O 

Z 


Pn 

2 


p. 
Z 

M 


Ph 

z 

t-t 


LIGHTED 
ACTIVE 

OR 
NORMAL 


when 
power 
is on 


2 


when bad 
parity 
is en- 
countered 


< 


P 
w 


w 

W 2 

W M 
O H-l 


X 








00 


w 

2 

2 M 

O W 


X 


X 


X 


X 


I 

PQ 


PS 
O 
H 

oS 5 

O M 

P 
2 

M 


H 
oo 

00 


Pi 

I 


SINGLE 
CHARACTER 
MODE 


PARITY 
MONITOR 
INHIBIT 


PARITY 
MONITOR 
INHIBIT 



10 

o 

i 
o 



nJ 

-M 

c 

E 
O 
6 



174 



pq 

ft ft 






O M 

co 



Z 

w 

Q 
Q 

os m 
os 

s 

o 



OQ 



§ 

H 

B 

os 
H 
co 

2 



Q 

pq ptf 

H O 

< X H 
m H <U 

UHU 

O IS M 

CO Q 

CO Z 

< M 



co 

H 

CJ 
W 
ft 
ft 
< 



Q 
W 
H 

M 

8 

to 

CO 



I 



CQ 



Q O 

pq m 

^ ~ H 

co co 

to z 

< M 




ft Z 

ft l-H 
O -1 



ft 

z 
z *-• 

2-dL 



os 
o 

H o{ 3 

m z 



z pq 

" z 



s 



or _» 

w i 

CO z 

S o 

CO 



CO 

D 
O 

M 
OS 

3 



o o 

co oo 

i i 

ft ft 

OS OS 



pq § 

Z M 

hJ m o H 

•J ^ \ CJ 

< I M ft 

O W 
co 



Q 
OS 
ft 



X 



OS 

W H 

h pq 

CO CO 



g 

t— I 
H H 

< ft 



H 
Z 

ex ft u co 

pq z 

CO *H 

CQ 

J=» 
CO 



►J 

ft 

D 
Q 



CO 

o 

(-1 
OS 

s 



o o 

CO 00 

rr ^ 

i i 

u o 

ft ft 

OS OS 



5 

fc! H H 

b < pq 

ft cj co 

z m a 

HhJg 
ft 

Q 



ft 



X 



M 

b <; cj 
ft U pq 

Z M J 

h J pq 

13 
Q 



H 

Z 

g 

a 

pq 

CO 

g 

CO 



g 

M 

H 

< 



z 



H 
, H 
•-4 pq 
ft co 
D 
Q 



CO 

O 
M 

OS 

5 



o o 

CO 00 

t -^ 

i i 

u u 

ft ft 

OS Oh 



H H 

< O 

CJ pq 

»-t ,-) 

>-q pq 
gco 

Q 



ft 



X 



ftS 




i pq 


H l 


H 


W 


l co 


CO 1 


; s 


a , 



-t-» CTj 
W C 



H 

< 



H 
. W 
ft CJ CO 



Z m 

ft 

D 
Q 



pq 

a 

o 

ft 
o 
u 



§ 

H 
CJ 

pq 

CO 



OS 

o 

H 
t-i 

S 

s 



H 

n 
OS 

S 



M 

g 



da 



CO 

D 
O 

M 

OS 

5 



CO 

OS 

o 



^ 



Q 
Z 



o o 

CO oo 






i 

ft ft 

OS OS 



ft 

z 



H 
pq 
co 



z 

pq O 

Z H m 

t-i b H 

i-q ft cj 

z m 3 

O pq 

CO 



ft Q 
Z OS 

M (^ 



W 

o 
a 
i 
o 



X 



H 

OS Q 

^ < 

CO 2 



•P 

c 

E 
O 
E 



175 



P. Uh 






u 

H 



O n 

CO 



Z 

W 
P 
P 



> 
o 



g 



cq 



S 

M 

H 
U 
Pi P 
O Pi 
H 
CO 
Z 



P 

w 

H 

o 
CO 

CO 



PS 
O 
H 

s 

P 

z 



CO 

H 
U 

< 



P 



g 



8SB 



to 
to 



PQ 



P 

B 



g 

M 

H 

H D 

& H 
CO 

2; 




w 

P-, M 

O k4 



w 

Z M 

O i-I 



p 



OS 

O 
H 

< 
OS (J 

O l-H 
P 
Z 



Ph 
2 



g 

M 

H 
O 
W 
»-) 

w 

CO 



a. 


>- PS 


O 


1 H O 


H 


M H 


M 


1 PS M 


z 


< z 


o 


Ph O 


2 


s 



o o 

CO 00 



! 



u o 

Ph PL, 

PS Pi 



PS 

W H 

H W 

CO CO 



g 

M 

fc? H H 

t) < W 
pu U co 

PU 

;=) 
P 



PM P 

Z PS 

M PL, 



X! 



Ph P 

O < 

H pq 

co 2 



W 



P-l /— s hD ^ 

O U I PL. CJ 

H U S U 

M ^ I O v — - 



o 

^r 

i 

u 

PL. 

PS 



s 

CO 



W 



Ph CJ 

S CJ 

O ^ 
U 



X 



H 
PS 

s 

co 



W 



>H O 




H 


H H 


H 


t-i 


M l-H 


W 


ra 


OS Z 


CO 


dg! hH 


< o 
p< s 


2 


z 



OS 

B8 

< O 



o 
co 

i 
u 

PS 



H 

H-l 

PS 

a 



OS H 

O m 



H 
pq 

da co 

a 



Ph 

z 



+J 

c 

X3 
5 



c 

Vh +■> 









M C C 

Vh O ctJ 

O Cu x! 

J-. T3 CL u W u 



<U (D D 



X! 



C* OS 

W O 

H H co 

U <t H 

<d U E 

K H u 

< Q H 

ffi Z i-I 



o 

I 
o 



II 



176 



pq 

P-> PL, 

>H O 

H 



Z 

W 
Q 
Q 

P< CQ 



o 



g 

H 
U 

H 

CO 

Z 



Q 

pq 



g 

< 

U m CJ 
O 3= m 

W Q 

co 2 

<J i— i 



CO 

H 
U 

W 

tin 

< 



Q 

M 

u 

o 

CO 

co 

< 



g 

H 
H 

D 
PQ 



« g 

W M 

H H 

< ffi U 

m H D 

8SB 

co co 

CO Z 




2 



pq 

5 _1 



g 
fc £ U 

:=> q 

PQ Z 



H 



H W 

CO ^ 

>h O 

co Pm 



o 


o 


co 


00 


"T 


""3- 


^ 


"St- 


O 


O 


Ph 


P-. 



P< C< 



2 C< 

W W 

H § 

CO O 

>H P-. 

CO 



> 

t— I 

H 

a 

o 

CJ 



ga 

I— I M 



g 



CO 

o 

H 
O H < 

H U U 

c< w i-t 

> pq z 

co m 



O O O 

•h ro oo 

O f t 

^ -«t ^r 

i i i 

uuu 

P-i P-i P-i 

P4 04 C< 



p< 

pq H 

H pq 

co co 



p< 

pq pq 

Z H 

M I— I 

I 3= 

pl, pq 

IX, PL, 

O >H 



Pwg 



H O 
Z H 



pq 
H 

H C P< D 
U pq pq Pm 



a 



co Q 

PQ < 



pq 1=3 
co co 



< 



pq 

z 

I 

g 



d3 



CO 

g 

i— i 
H 
CJ 

pq 

CO 



>s 



x 



g 

pq 

s 

Ph 



o 












z 
















•~\ 


1 


~ 




CD 




co 


U 


da 


cu 


XI 




^^ 


<u 




C 


+-> 


<L> 


D 


tH 


c 


■H 




s 


u 


cu 





iH 


G 


rt 


•H 


CO 






<U 


to 


> 




T3 


MH 


X! 




<L) 


co 


<U 


<+H 


* 




T3 


■H 


■P 


O 



X 



z 

O e* 

m O 

H H 

O M 

i-q o 

pq 2 

CO 



g 

H 

CJ 
pq 
i-l 
pq 
co 



O O O 
■h ro oo 
o ^r 



i i 



i 



uuu 

Pm Pm Pl, 
PtJ P< c< 



p 

a 

H 

S 

CO 



pq w 
z H 



c< 



H 
CJ 

P^ W pq 

PU PL, co 
O >H 

H 



O 
H 



Pi 

pq 



a 



CJ 



Q P-. 

P-i M 



X 



p< 






pq 




P< 


H 




pq 


M 
P< 


O 


B 


S 


H 


P-. 


w 

PH 




S 


>1 




C) 


H 







c 
o 

•H 
4-» 
•H 
CO 
O 

a 

i 

o 



II 

H 



a 

cu 

e 
o 

e 



177 



H 



2 
W 
Q 
Q 

OS CQ 

OS 

W 

> 

O 






2 

o 

H 
H 

PQ 



§ 

H 
U 

OS 
H 
oo 

2 



Q 

W OS 

H O 

< K H 

m H < 

00 Q 

00 2 



00 
H 
U 

w 



w 

H 2 

8SS3 

00 PQ 

00 

< 



p § 

B H 

< sc u 

m H P 

Cj H oi 

O 3: H 

oo oo 

oo 2 

< m 




W 
Hh 2 

P^ i-t 
O M 



W 
2 

2 M 

O H-) 



OS 
O 

^ H 

O < 

P Q 
PQ Z 



OS 

W H 

H W 

00 00 



os 

2 H 



-J OS 



H 
U 

W 

Uh w w 

Uh Ph 00 
O >^ 
H 



H OS 

2 W 

W H 

1=) M 

O e< 

w 3= 

00 w 

CQ Ph 

D >-. 

00 H 



oS 
W 



g 

i— i 
H 
U 

3 

W 
oo 



o o o 

O "fr ■<*• 

^r ■<*■ ^r 

i i i 

u o o 

Ph Ph Ph 

OS Oi PS 




§Ph 
2 

Ph l-H 



X 



o^- 
os w 

goB 

< H Ph 

" 5 

U 



s 



Q 
OS 

Ph 



os 

W H 

H W 

00 00 



H 

2 

C Q 
w < 
oo " 



£ 



oo 



0$ 

W 
H P-i 

S 

u 



Q 
OS 
Ph 



S 

l-H 

H 
O 

3 

w 

00 



o o 

CO oo 



•si- \r 'si- 

i i i 

u u u 

Ph p, Ph 

ai cd. aL 



Q 
< 

a 

H 

S 

oo 



Q Ph 
Ph m 



X 



os 

W 
H 

• M 

X! OS 
< W 

Ph 

H 



CO 

O 

a 

i 

o 



OS 
W 

S 

PU 

S 

u 



-t-» 
C 

e 

o 

6 



178 



pq 

Ph Uh 

>H O 



z 

w 

Q 
Q 

i— i >i 
04 CQ 

ps; 

> 

o 



O 
H 



00 



S 

t— i 
H 
U 
o4 1=) 
O 04 
H 
oo 
2: 



Q 

pq 04 

H O 

«J ffi H 

n H < 

oo Q 

00 2 



00 

H 
U 

w 

Ph 
Ph 

< 



04 

W H 

H pq 

00 00 



04 



2 H 



H 
(J 

1 3: j 

Un W W 
pq Ph 00 

o >-< 
H 



Q 

«: 

Ph 



g 

t— t 
H 
U 
W 
i-l 

pq 

00 



O O O 

•h co 00 

O "fr tJ- 

^- -^r \r 

1 1 1 

000 

Ph Ph Ph 

04 04 04 



Q 
o4 

Ph 



04 

pq H 

H pq 

00 00 



H 
U 

pq W 

Z HH 

m pq 

H-) 00 

I 

v-, az 

Ph (J 

O z 

Ph 



5 

H 
U 

a 

pq 
00 



OOO 

iH ro 00 

o <3- "d- 

^ ^ 'd- 

1 1 1 

u u o 

Ph Ph Ph 

04 04 04 



04 




pq H 




H pq 


Q 


00 00 


04 


ss 


Ph 



OOO 

rH CO 00 

O "3" 

1 1 

o u 

Ph Ph 

04 04 04 



1 



Q 
W 
H Z 

< ffi O 
m H H 

8^5 



00 
00 

< 



P3 



00 pq 
tD Z 

O M 



g 

t— I 
H 
U 

a 

pq 
00 



04 

pq pq 

Z H H 

M M CJ 

h-1 P4 pq 
1 3= hJ 

Uh pq pq 

PL. Ph 

o S 

H 



00 



g 

O 



Ph 

o 
u 



00 pq 
Z> z 



g 



P4 
< 






pq 
00 



pq 

Q 

o 

s 



Ph 

o 
u 



pq 
z 

t-H 

.-4 
I 

pq 
pq 
O 



U 

a 

pq 
00 



00 pq 

O M 



g 

M 

H 

w 

t-q 

pq 

00 



pq 
Q 
O 

S 

Ph 
O 

U 



Q § 

pq m 

H H 

MHO 

n p4 

^ H 

00 00 

00 Z 



8 




g 



PQ 



pq 
p-. z 

pq M 

O ^1 



pq 
z 

6 -H 



04 
O 
H 
< 
U 

M 

Q 

Z 



04 04 

Ph Ph 



04 

Ph Ph 



X 



X 





P4 


04 


pq 


pq 


H 


E-i 


hH 


^ O 


04 


Ph H 


is 


s 


w 





Ph 


u 


>i 




H 



04 ffi 

pq u 



Ph Ph 

o o 



04 04 

Ph Ph 



X 



04 

pq 



Ph 

o 
u 



g 

< 
o 



04 
H 



w 

o 

a 

1 

o 



179 



m 




U 


^ 


uu 


H 


>< 


C) 


M 


H 




00 



Q 
Q 



§ 



g 

M 

H 
O 



►-< >-i h »; o 

05 cq h o « 

cej D H 

W PQ GO 

O hH 



Q 
W 
H 



s 



<; a h 

•H H <tf 

o ;s m 



CO 

co 



Q 



CO 

H 

W 
Ph 

Ph 



Q 
W 
H ^ 

m H H 

8se 



CO 
CO 

< 



CQ 



Q 


o 


W 


M 


H 


H 


< E 


U 


►-" H 


D 


B£ 




CO 


CO 


CO 


2 


<C 


i— i 


Q 




w w 


-1 


m i-h 


< 


O H 


o 2 


M o 


o 


-J <: 


z 



Ph 2 

IX, M 

O .-J 



2: 



j-i. 



o 

O < 

h 23 u 

= Q 



o o 

CO rH 

■^r o 

i i 

O u 

Ph Ph 

04 Oi 



Q 
Ph 



C <U 

CD T3 CO 
-C cti -H 

U 



O QJ <u 

ex u a, w 

•H c« O o3 -H 

o 



X 



X 




o o 

CO 00 



i 



Ph Ph 

« a; 



w 

M 

h-1 

I 

fin 

Ph 

o 

I 

g 



u u 

Ph w 



Q 
W 
W 

Ph 



W 

Ph 

g 



CO Q 
2 at 

CO Ph 



2: W E-. 

^ <: '- 1 < 



X 



X 



o PH- 
IZ: Ph 

5 < 

Ph H 



o 



o o pi 

^ 00 2 

^r ^ m 

^t- "3- -1 

I I I 

O O Ph 

Ph Ph (Ih 

« « o 



CO 

w 
u 

l-l 

> 

w 



W 

M 

t-H 

I 

Ph 
Ph 
O 



< 

S 

H 

g 

oo 



Ph 

~g 






O M 



H 

•-} Ph W 



p-l w 

-I H 



I 00 



o 



X 



g 



Ph 

o 

H 

CO 



180 



w 

cu 

H 


O 

PU H 
O n 

00 


i±. 




H 


OVERRIDDEN 

BY 
BUTTON 

OR 
INSTRUCTION 


DESELECTION 
OF 
PUNCH 


if the reader 

is selected 
off-line the 

typewriter 
(if selected) 
can only be 
used for off- 
line output. 


O 

z 


ASSOCIATED 

WITH 
INDICATOR 


PUNCH 

TAPE 

MONITOR 


SELECTION 
MONITOR 


SELECTION 
MONITOR 

READER 
TAPE 

MONITOR 


A.FFECTS 

UNIT 


o 

CO 

1 
U 

PU 

Pi 


RPC-4430 
RPC-4010 
RPC-4480 


RPC-4430 
RPC-4480 
RPC-4010 


ASSOC IATED 

WITH 

BUTTON 


OFF-LINE 

PUNCH 
SELECT 
MUST BE 
ACTIVE 


TYPEWRITER 

TO 

COMPUTER 

COMPUTER 

TO 

TYPEWRITER 

OFF-LINE 
READER 
SELECT 


READER 

TO 

COMPUTER 

OFF-LINE 

TYPEWRITER 

SELECT 


ASSOCIATED 

WITH 
INSTRUCTION 




Q PU 
aJ Z 

PU M 


Q PU 
Pi Z 

PU M 


LIGHTED 
ACTIVE 
OR 

NORMAL 


z 


< 


< 


Q 

w 

00 


W 

PL. Z 

PU M 

O h-1 


X 


X 


X 


w 
z 




X 


X 


z 
o 

H 
H 

D 
PQ 


pi 

o 

H 

Pi < 

o u 

Q 

Z 

M 


W Q 

PL. W 

< W 

H PU 


Pi 
W 
H H 

m (J 
Pi w 

w w 

PU oo 

>• 
H 


Pi H 
W U 

93 

W W 
Pi 00 



w 

o 

a 

i 

o 



181 



pq 

Ph 
H 


PU H 

O M 

oo 


H 


s 


S 


OVERRIDDEN 

BY 
BUTTON 

OR 
INSTRUCTION 


O 

z 


STOP 

READ 

(RPL) 


START 

READ 

(RPL) 


ASSOCIATED 

WITH 
INDICATOR 


SELECTION 
MONITOR 

PUNCH 

TAPE 

MONITOR 


READER 

TAPE 
MONITOR 


O 

z 


AFFECTS 

UNIT 


RPC-4430 
RPC-4010 


RPC-4430 
RPC-4480 


RPC-4430 
RPC-4480 


ASSOCIATED 

WITH 

BUTTON 


COMPUTER 

TO 

PUNCH 


SINGLE 
CHARACTER 
MODE (RPL) 

CONDITIONAL 
STOP (RPL) 

OFF-LINE 

INPUT 

SELECTION 


OFF-LINE 
INPUT 
SELECTION 


ASSOCIATED 

WITH 
INSTRUCTION 


Pi Pi 

Ph Ph 


O 
z 


O 

z 


LIGHTED 
ACTIVE 

OR 
NORMAL 


< 


z 


z 


pq 

00 


pq 
u* z 

pq n 

O hJ 


X 


X 


X 


pq 

z 

O t-) 


X 






S 

a 

CQ 


Pi 
o 

Pi < 
o u 

t-t 
Q 

n 


H 

b pq 

Ph 00 


START 
READ 


< 

a 

Ph 

o 

H 

CO 



o 

I 

o 



C 
<L> 
E 
O 

6 



182 



U4 

>-< 
H 


O £ 

CO 


H 


OVERRIDDEN 
BY 

BUTTON 
OR 
INSTRUCTION 


CONDITIONAL 

STOP 

(RPL) 


ASSOCIATED 

WITH 
INDICATOR 


O 

z 


AFFECTS 

UNIT 


RPC-4430 
RPC-4480 


ASSOCIATED 

WITH 

BUTTON 


OFF-LINE 
INPUT 
SELECTION 

START 
READ 


ASSOCIATED 

WITH 
INSTRUCTION 


O 
z 


LIGHTED 
ACTIVE 

OR 
NORMAL 


< 


p 
w 

CO 


w 

U* z 
O •-} 


X 


w 
z 

Z m 

O -> 




~6 

H 

PQ 


o 

o o 

p 
z 


SINGLE 
CHARACTER 
MODE 



o 
a 
i 
o 



ii 

H 



183 



RPC-4000 INPUT/OUTPUT SELECTION CODES FOR INSTRUCTION PRD 



D track 


Input Selected 




Output 


64 


Reader 






65 


Reader 




Punch 


66 


Reader 




Typewriter 


67 


Reader 




Punch & Typewriter 


68 


Typewriter 






69 


Typewriter 




Punch 


70 


Typewriter 




Typewriter 


71 


Typewriter 




Punch & Typewriter 


72 


Photo — Fwd & Search 






73 


Photo — Rev & Search 






74 


Photo— Fwd 






75 


Photo -Rev 






76-94 


Available for additional 


. units — probably input 


95 


Master Reset — Reset 


all 


units 


96 


Available 






97 






Punch . 


98 






Typewriter 


99 






Punch & Typewriter 


100 






- ■- ; 


101 






Punch 


102 






Typewriter 


103 






Punch & Typewriter 


104, 105 


Search mode 






106 






High Speed Punch 


107-124 


Available, probably 


for 


output units 


125 


Copy mode on 






126 


Copy mode off 






127 


Reset output units 






NOTES: 

1. Select 


:ion of a new incut devic 


;e at 


ltomat ir.al lv resets the nrp 



one. Only one input device may be in the system at a time. 
Output devices may be added in any combination that they are in- 
cluded in the user's possession. A reset command is necessary to 
drop an output device from the system. 

Because the basic system is standard, multiple selection codes 
have been included for sections of it. 



184 



ALPHANUMERIC CODES 

The following list gives the tape codes and the computer's internal 
configurations of the typewriter keyboard. 



UME'RIC 


DEFINITION 


BINARY 


00 


Tapi 


e feed 


000000 


01 


Carriage 






reti 


urn 


000001 


02 


Tab 




000010 


03 


Bad 


tcspace 


000011 


04 






000100 


05 


Upp< 


sr Case 


000101 


06 


Low< 


sr Case 


000110 


07 


Line feed 


000111 


08 


*st< 


3p Code 


001000 


09 






001001 


10 






001010 


11 


Pho1 


to Reader 


001011 


12 






001100 


13 


End 


of Block 


001101 


14 






001110 


15 






001111 


16 





) 


010000 


17 


1 


o 


010001 


18 


2 


»l 


010010 


19 


3 


# 


010011 


20 


4 




010100 


21 


5 


A 


010101 


22 


6 


@ 


010110 


23 


7 


& 


010111 


24 


8 


t 


011000 


25 


9 


( 


011001 


26 


a 


A 


011010 


27 


b 


B 


011011 


28 


c 


C 


011100 


29 


d 


D 


011101 


30 


e 


E 


011110 


31 


f 


F 


011111 



UMERIC 


: DEFINITION 


B INARY 


32 


g 


G 


100000 


33 


h 


H 


100001 


34 


i 


I 


100010 


35 


J 


J 


100011 


36 


k 


K 


100100 


37 


1 


L 


100101 


38 


m 


M 


100110 


39 


n 


N 


100111 


40 


o 


O 


101000 


41 


P 


P 


101001 


42 


q 


Q 


101010 


43 


r 


R 


101011 


44 


s 


S 


101100 


45 


t 


T 


101101 


46 


u 


U 


101110 


47 


V 


V 


101111 


48 


w 


w 


110000 


49 


X 


X 


110001 


50 


y 


Y 


110010 


51 


z 


z 


110011 


52 


» 


$ 


110100 


53 


= 


: 


110101 


54 


[ 


i 


110110 


55 


] 


% 


110111 


56 






111000 


57 






1110O1 


58 


+ 


? 


111010 


59 


- 




111011 


60 


. 


9 


111100 


61 


Space 




111101 


62 


/ 


T 


111110 


63 


Code 


delete 


111111 



185 



TABLE OF BASIC EXC DATA-TRACK SETTINGS 





DATA 


NEXT 


COMMAND 


ADDRESS 


ADDRESS 


EXC 


098 


ANY 


EXC 


198 


ANY 


EXC 


298 


ANY 


EXC 


498 


ANY 


EXC 


898 


ANY 


EXC 


1698 


ANY 


EXC 


3298 


ANY 


EXC 


4898 


ANY 


EXC 


6498 


ANY 



EFFECT 



No Operation 

Exchange UPPER into LOWER 

Exchange LOWER into UPPER 

Exchange UPPER into INDEX. If 

this instruction is repeated it 

is an effective No Operation. 

Exchange INDEX into UPPER 

Change LOWER to 8 -words 

Change LOWER to 1 word 

Change state of LOWER 

RESERVED, if used it is at present 

an effective No Operation 



MODULO 8 TABLE 



RECRCO or RECRC8 

RECRC1 

RECRC2 

RECRC3 

RECRC4 

RECRC5 

RECRC6 

RECRC7 



00 


08 


16 


24 


32 


40 


48 


56 


01 


09 


17 


25 


33 


41 


49 


57 


02 


10 


18 


26 


34 


42 


50 


58 


03 


11 


19 


27 


35 


43 


51 


59 


04 


12 


20 


28 


36 


44 


52 


60 


05 


13 


21 


29 


37 


45 


53 


61 


06 


14 


22 


30 


38 


46 


54 


62 


07 


15 


23 


31 


39 


47 


55 


63 



186 



TABLE OF POWERS OF 2 



AND POWERS OF 16 



16 v 



2N 

■ 1 
2 

4 
8 



,-N 



16" 



-16 
32 
64 

128 



16* 



16" 



16' 



256 

512 

1 024 

2 048 

- 4 096 

8 192 

16 384 

32 768 



- 65 536 
131 072 
262 144 
524 288 



165 1 48 576 

2 097 152 
4 194 304 
8 388 608 

16 6 ---,— 16 777 216 

33 554 432 

67 108 864 

134 217 728 

16 7 268 435 456 

536 870 912 

1 073 741 828 

2 147 483 648 




1 
2 
3 

4 
5 
6 

7 

8 

9 

10 

11 

12 
13 

14 
15 

16 
17 
18 
19 

20 
21 
22 
23 

24 
25 
26 

27 

28 
29 
30 
31 



1.0 — 
0.5 
0,25 
0.125 



-16 



-0 



•16 



-1 



•16 



-2 



•16 



-3 



■16- 



0.062 5 

0.031 25 
0.015 625 
0.007 812 5 

0.003 906 25 

0.001 953 125 
0.000 976 562 5 
0.000 488 281 25 

0.000 244 140 625 

0,000 122 070 312 5 

0,000 061 035 156 25 

0,000 030 517 578 125 

0.000 015 258 789 062 5 

0,000 007 629 394 531 25 

0,000 003 814 697 264 625 

0.000 001 907 348 632 812 5 

0.000 000 953 674 316 406 25 - 

0.000 000 476 837 158 203 125 

0.000 000 238 418 579 101 562 5 

0.000 000 119 209 289 550 781 25 

0,000 000 059 604 644 775 390 625 16~ 6 

0.000 000 029 802 322 387 695 312 5 
0.000 000 014 901 161 193 847 656 25 
0.000 000 007 450 580 596 923 828 125 

0.000 000 003 725 290 298 461 914 062 5 Id"" 7 

0,000 000 001 862 645 149 230 957 031 25 
0.000 000 000 931 322 574 615 478 515 625 
0.000 000 000 465 661 287 307 739 257 812 5 



■16" 5 



187