Advanced Programming For Early Univac Computers
Advanced Programming For Early Univac Computers
003
ADVANCED PROGRAMMING
prepared by the Training Section,
Electronic Computer Department
aJTLINE FOR COORSE 003
ADVANCED PROGRAMMING
The purpose of Advanced Programming Cours.e 003 is to complete the basic ,:d$scription
of the Univac System and describe the advanced programming techniques
for the prepatation of efficient data processing routines. Each student
qui red to have satisfactorily completed Course 002 which is concerned with ,a de-
scription of the Univac central computer, and basic programming.
The subject matter of Course 003 consists of four major sections, each of which
is briefly described below3
1. Advanced Programming - This area of study covers the programming
commonly employed in efffcient use of input-output buffers, problem reconsti-
tution, item layouts, relative coding, reduction of instruction execution
times, obtaining increases in available memory space, use of service routines
for detection and correction of programmfng errors.
2. Programming for Heavy Auxiliaries - This area covers by description and illus-
trative problems, programming for the heavy auxiliaries of the Univac System,
such as the Card-to-Tape Converter and the High-Speed Printer.
3. Central Computer Logic - A detailed description of the central computer's
logical construction is the subject matter of this study area.
attention is given to the detailed analysis of how each instruction is exe"!"
cuted. The checking circuits of the Univac and the method whereby the super-
visory control may be used as a programmer aid in debugging and efficiently
running data processing routines. '
4. Thesis Problem - This area consists of workshop sessions wherein each student
selects a moderately complex problem for his thesis. student will ana-
lyze, flow-chart, code, and debug on the Univac System (Univac #7 - Service'
Bureau, Remington Rand Inc. , New York, New York) a problem involving from 600-
800 instructions. This thesis work is designed to provide further experience
in all phases of computer programming and -is conducted under the supervision
of the instruction staff assigned to his course.
A topical outline is presented belowo The amount of time spent on each subje,ct
may vary somewhat among the different instructors and classes. Items 1 and
above are designated under A in the outline, 3 above is topic B, and 4 is topic C.
-1-
MONDAY:
TUESDAY:
WEDNESDAY:
FRIDAY:
A"
Bo
Ceo
Ao
B ..
C
Q
A.
B ..
Co
A.
Bo
C ..
Ao
WEEK I
ANALYSIS OF COMMON CODING ERRORS
1. Types of errors and their manifestations
Errors due to neglected instruction characteristics
3. Improper ,overflow counts
4. Errors in flow chart logic
. l
REVIEW AND INTRODUCTION TO CIRCUITR Y
10 Memory and word structure
20 Binary and XS-3 notation
3. Four-stage cycle of operation
4. Description of logical circuit
THESIS mOBI:.EM
DESCRIPTION OF BIeR RELATIVE CODING
TIMING AND SYNCHRONIZATION IN UNIVAC
10 Minor cycle
20 Cycling unit
3. p and t notation
elements
4. Synchronization of memory and registers
50 Maintenance of synchronization in memory to regis-
register to register, and register to memory
transfers o
THESIS mOBLEM
BIOR RELATIVE CODING (CON9 T)
FOUR-STAGE CYCLE
10 Description of Chart U 102 and EBU-IOO
2"
(1 time
3., ::.HSB O-E checkerS! di fferences
negative type checkers.
THES IS PROBLEM
BIeR RELATIVE CODING (CONCLUDED)
FOUR=STAGE CYCLE (CON
9
T)
10 time
2. Channel selection circuits
30
Time selection circuits
T HES IS PROBLE M
SPECIAL INPUT-OUTPUT TECHNIQUES
1" Preselector
20 2-way automatic
3. Reversal
40 automatic
between positive and
B. FOUR-STAGE CYCLE (CONUI)
10 Y and D time
2. Start circuit
Co THESIS PROBLEM
-2 ...
MONDAY:
TUESDAY:
WEDNESDAY:
THURSDAY;
FRIDAY:
WEEK :2
A. INPUT-OUTPUT (CONCLUDED)
1. Efficient transfers for items a sub-mul tiple of 60
2. Efficient transfers for. items not a sub-mul tiple of 60
3. Variable length items
Bo TRANSFER ORDERS' - TYPE 1
10 B ~ H, K as typical of 1 word transfers
20 Error indications MDS" and DS'S
c ~ THESIS PROBLEM
Ao IDENTIFICATION BLOCKS' AND RERUNS
1. Standard data tape format
2. Generalized two-way merge
B. TRANSFER ORDERS - TYPE 1 (CON'T)
10 V, W, Y, Z as typical of mUlti-word transfers
20 Interchange in V-W transfers
3" R order
C. THESIS PROBLEM
A. IDENTIFICATION BLOCKS AND RERUNS' (CON'T):
10 Generalized two-way merge (con6luded)
2" Rerun procedure for 1 output
B. TRANS'FER CRDERS' .., TYPE 2
1. on, On as typical of shifts
2. Improper shifts causing a stall
30 Extract order
C. THESIS PROBLEM
A. IDENTIFICATION BLOCKS AND RERUNS (CONCLUDED)
1. Reruns with mult.iple output
B. LOGICAL CHOICE
1. Skip and U instructions
Co THESrS PROBLEM
Ao REDUCING PROBLEM RUNNING TIME
1.
Minimum latency tables
B. LOGICAL CHOICE (CONCLUDED)
10 Q and T instructions
Co THESIS PROBLEM
-3-
MONDAY:
TUESDAY:
WEDNESDAY:
THURSDAY #
FRIDAY:
WEEK 3
A. REDUCING PROBLEM TIME (CON' T)
1. Minimum latency coding
Bo INTERRUPTED OPERATION
1. Qn, Tn9 9 and
9
instructions
2. Interrupted operation switch
Co THESIS PROBLEM
Ao REDUCING PROBLEM RUNNING TIME (CONCLUDE D)
R-U counters
2"
Straight line coding
Bo ARITHMETIC CIRCUITS
1. A and S instructions
Co THESIS PR OBLEM
A. CONSERVATION OF MEMffi Y SPACE
1. Overlays
2. Sub-dividing runs
B. ARITHMETIC CIRCUITS' (CON'T)
10 Overflow
2. A- and instructions
3. l2-place addition in time
Ce THESIS PROBLEM
Ao COLLATION METHOD OF SORTING
Bo ARITHMETIC CIRCUITS (CON'T)
10 Multiplication as repeated
20 P instruction
Co THESIS PROBLEM
addition
A. COLLATION METHOD OF SORTING (CONCLUDED)
B. ARITHMETIC CmCUITS (CON'T)
1. P instruction (concluded)
2. M and N instruction
30 Action of,MQC with multiplier digits not numbers
"
Co THESIS PROBLEM
-4-
MONDAY:
TUESDAY:
WEDNESDAY:
THURSDAY:
FRIDAY;
WEEK 4
A. FUNCTION TABLE SORTING
B. ARITHMETIC CmCUITS (CON'T)
1. Theory of division
2. D instruction
Co THESIS PROBLEM
Ao SERVICE ROUTINES
10 Classifications
2. Locator
30 Mark VIII
B. ARITHMETIC CIRCUITS (CON'T)
Co
Ao
B.
Co
Ao
Bo
1. D instruction (concluded)
20 D- instruction
THES IS PROBLEM
SERVICE ROUTINES (CON' T)
1. Mark VIII (con't)
ARITHMETIC CIRCUITS (CONCLUDED)
1. Periodic memory check
2. Memory clear
THESIS PROBLEM
SERVICE ROUTINES (CON'T)
1. Mark VIII (concluded)
2. AC-3
30 AC-4
INPUT-OUTPUT CIRCUITS
1. Input-output problem
20 Uniservo principles
30 Additional logical elements (thyratrons, relays,
autosyns
9
transformers, motors)
CoT HES IS PR OBLEM
Ao SERVICE ROUTINES (CON'T)
10 (line merge)
2" Herb I
Bo INPUT-OUTPUT CIRCUITS (CON'T)
10 Step-down buffering
2. 50 instruction
Co THESIS PROBLEM
",,5-
WEEK 5
MONDAY: Ae SERVICE ROUTINES (CON'T)
L. Code edit
20 Analyzer
Be INPUT-OUTPUT CIRCUITS (CON'T)
1"
5n instruction (conVt)
Co THESIS PROBLEM
TUESDAY: Ao SERVICE ROUTINES (CONvr)
I"
Auto-monitors
Bo INPUT-OUTPUT CIRCUITS (CONvT)
Ie 5n instruction (concluded)
20 Low-density recording
C., THESIS PR OBLEM
WEDNESDAY:
A"
SERVICE ROUTINES (CONCLUDED)
10 Follower
2 .... Code search
30 Word search
Bo INPUT-OUTPUT CIRCUITS (CON'T)
I"
Step-up buffering
2. In instruction
C"
THESIS PROBLEM
THURSDAY: Ao HEAVY AUXILIARIES
le"
Card-to-Tape Converter
B. CIRCUITS (CON'T)
10 In instruction (con' t)
C. THESIS PROBLEM
FRIDAY: AI) HEAVY AUXILIARIES
1. Card ... to=Tape Converter (concluded)
20 Tape-to""Card Converter
BI) INPUT-OUTPUT CIRCUITS
10 In instruction (concl uded)
20 2n instruction
Co THESIS PROBLEM
-6-
MONDAY:
TUESDAY:
WEDNESDAY:
THURSDAY:
WEEK 6
A. HEAVY AUXILIARIES (CON'T)
1. High-speed printer
Bo INPUT-OUTPUT CIRCUITS (CON'T)
1Q 30 instruction
20 30 instruction
Co THESIS PROBLEM
1. Unityping, code-edit and analysis
Ao HEAVY AUXILIARIES (CON'T)
1. High-speed printer (con't)
B. INPUT-OUTPUT CIRCUITS (CON'T)
10 4n instruction
20 6n and 8n instructions
C. THESIS PROBLEM
10 Proof-reading
2. Computer testing
A. HEAVY AUXILIARIES (CON'T)
1. High-speed printer (con't)
B. INPUT-OUTPUT CIRCUITS (CONCLUDED)
10 50 instruction
2Q 10 instruction
C. THESIS PROBLEM
1. Computer testing
Ae HEAVY AUXILIARIES (CONCLUDED)
10 High-speed printer (concluded)
Be SUPERVISCRY CONTROL OPERATIONS
1 '" SCI' FILL
2. EMPTY
3. Clear C
40 General clear
C. THESIS PROBLEM
10 Computer testing
FRIDAY: Ao
Be SUPERVISCRY CONTROL OPERATIONS (CONCLUDED)
I. Starting and stopping Univac
20 Simple error analysis
Co THESIS PROBLEM
10 Post Mortem
-7-
ANALYSIS OF COMMON CODING ERRORS
Practical problems prepared for digital computers involve upwards of several
thousand instructions. While the UNIVAC computer is self-checking, it basi-
cally detects errors in performing the indicated operation and does not
judge whether that operation, or series of operations, is correct in the
context of the complete problem. Errors may occur in these categories:
1. Improper execution of an instruction due to mechanical or elec-
tronic failure of the computer.
2. Failure of the to properly initiate the problem or in
performing rerun procedures.
3. Failure of the programmer to provide coding to carry out the
assigned task.
As mentioned in the first paragraph, errors of type 1- are checked in UNIVAC
by duplication of circuits or by redundant codes (odd-even check, etc). We
need not consider them further.
Errors of type 2 are not inherently checked by the computer, and can cause
disastrous consequences if allowed to perpetuate themselves. To a large
extent these errors may be avoided by requiring the program to check opera-
tor intervention. Thus, the rewinding of multiple output or input tapes with
8n orders insures that these tapes will be removed before those servos are
again called for further operations. Use of rings in those reels that con-
tain permanent information during a prevents the accidental destruction
of information by Supervisory Control action.
Positive checks can be incorporated in the program to insure that the correct
tapes are mounted, and in their correct order. This is the purpose of iden-
tification blocks and sequence checks. Since Supervisory Control operations
are infrequent and the operator often unfamilar with the problem and its
coding, programs should be prepared in such a way as to require little opera-
tor intervention; and when this is necessary, it should be of extreme sim-
plicity. This is especially true in setup- and rerun procedures.
Errors of type 3 are the main concern of this sectiono The first concern is
how do we recognize that a coding error exists? Assuming that a normal pro-
oedure has been followed, the prepared coding will have been desk-checked
(i.e., reviewed by one or more different coders), Unityped, and the Unityped
tape printed and checked against the original copy. Thus, we can assume that
the information on tape agrees with the coding sheets and that a preliminary
cheek has been performed.
A coding error may manifest itself in one or more of the following ways after
the program has been tried on the computer, or by none of them:
A. Overflow where it has not been anticipated (i.e., on A-, S-, X-,
or D- orders)
-1-
B. Closed loops producing a characteristic sound from the HSB speaker.
C. Adder alphabetic errors.
D. Improper sequence of tape movements observable by operator or pro-
grammer. This includes doing 3n orders when rI is empty. In orders,
when rI is filled followed by 3n, reading a rewound tape backwards,
failure to detect end of tape information, and others.
E. Improper commands causing computer to stall.
F. Output results of test data not agreeing with pre-calculated results.
One should not always expect coding errors be easily recognized, and often
the manifestation of an error may occur in a section of the problem remote from
where the error itself was made or even from the nature of the error. For ex-
ample, the following error was abstrccted from a mathematical subroutine de-
Signed to calculate log A. lOa = B.lO. Where is the error and how was it rec-
nized?
000 11 000
001 81 000
006 K 000
007 B 104
008 03 000
009 03 000
026 K 000
30 060
F 119
T 036
T 037
T 038
F 118
instructions -+ memory
a--+rL
+.03000
..... 18835 453000 ---+ r A
if a < .18835 453000 transfer control to
line 036.
SL3 (rA) = +.35453
if a < .35453 000000 transfer control to
line 037.
SL3 = + .53000 000000 --+r A
if a < .53000 000000 transfer control to
line 038
zero-+rL
E = 010000 000000 --+ rF
-2-
027 E 100
Q 031
m.s.d. of {log
if m.s.d. = 0 transfer control to line 031
.
028 B 125
! .ee OOOOOO--+rA
.9 000 SR9 (rA) = 0.00000 ooot ee
029 F 102
El = 111111 111000 ---:)orF
E 100
log lOx --+rA
030 00 000 Skip
031 5 118
032 A 125
033 K 000
034 01 000
035 C 100
036 B 112
037 B 113
038 B 114
039 H 100
040 A 101
041 B 100
U (R+ 1) Unconditional transfer of control to main
routine.
-1 000
C 125
B 100
Q 030
U 027
U 039
U 039
U 039
-3 000
C 101
08 000
-. 10000 000000 ---.r A
SRI (rA) =-.01000
+.02000
+.02000 000000 -+125, zero ---+rA
(log lOx)/lOOO
SLI (rA) = (log 10x)/100-+rA
if log 10x/100 = zero, transfer control to
line 030.
(log 10")/100
Unconditional transfer of control to line
027.
- log lOkI +
Unconditional transfer of control to line
039.
- log 10k2 + k2 ---.rA
Unconditional transfer of control to line
039.
- log 10k3 + k3
Unconditional transfer of control to line
039.
- log 10k + k --+100, rA
SR3 (rA) = -(log 10k)/1000--+rA
(b - log 10k)/1000 ---+rA
(b - log 10k)/1000-+lOl
log 10k + k --:JI> rA
SL8 (rA) = -k/lO -+rA
-3-
042 C 100
N 100 k
i
a/10
043 01 000 SL
1
(rA) = rA
H 100
rA
044 K 000 k
i
a---+rL
G 125
+003000 000000 --+ 125
045 00 000
U 010 To continue computation
The error made itself known by a second attempt to read the instruction tape.
Since this tape had been rewound with interlock, the computer stalled. How
was the coding error located? The reasoning went something like this: The
control was somehow transferred to line 000. Since this was not intentional,
it might been due to an unexpected overflow. As the problem analysis
seemed to be correct, at least as an initial assumption, the actual calcula-
tion of the log in steps 010 through 025 probably did not give the overflow.
The next pOint examined was the normalization subroutine designed to calcu-
the zeros lying to the left of the most significant digit. The sub-
routine is in lines 026 to 035. The add order in line 032 was suspect.
This order adds 1 to a counter for each zero found to the left of MSD in
log lOX. The largest number of zeros would, of course, be 11. A check show-
ed that (118) was indeed (-10 000 000 000); thus, (125) must not have
been set correctly. On line 006 is an F lL9 instruction placing the constant
003 000 000 000 in rF, and the G 125 on line 044 is to place this constant in
cell setting (ll5) to its proper initial value. The odd splitting
of the F and G was due to the original omission on the coder's part of the
resetting of 125. After recognizing the omission, he went back to make the
transfer and filled in the F-G in whatever skips were available. The error,
of course, is that the multiplication of line 042 destroys the 003 000 000 000
placed in rF, and places in its stead 31rL. Fortunately, this number caused
an overflow on line 032! The error was made on line 044 but manifested itself
by a read instruction on line 000.
Many coding errors occur because a progr.ammer has ignored or the
peculiarities of certain UNIVAC orders. This subroutine is designed to trans-
fer 30 two-word items from memory locations 301 to 360 inclusive, to memory
locations 451 to 510 inclusive. What is the error?
000 [V 301
W 45lJ
001 B 000
A 005
002 L 006
Q
004
003 C 000
U 000
004 00 000
90 000
005 000 002
000 002
006 VOO 361
WOO 511
-4-
The obvious error, of course, is that a consecutive series of 2-word items
starting at an odd memory location cannot be transferred by the V register.
In spite of the fact that the routine avoids the interchange in rV by start-
ing from an odd location and transferring to an odd location, the item in
309, 310 splits across two channels and so 309 and 300 go into 459 and 450
rather than 309, 310 into 459, 460.
The following error may be more difficult to recognize, and its variants
are among the most frequent errors in editing and mathematical routines:
Memory locations 900-939 contain 40 quantities Yi (i = 0, I, 2, , 39).
A quantity Zi = .0065i is computed and added to Yi (i.e., Yi + Zi --;.. Vi).
000 L 008
M 009
001 [A- 939
C 939 ]
002 B 001
S 010
003 C 001
K 000
004 B 009
Q
007
005 S 011
C 009
006 00 000
U 000
007 00 000
90 000
008 000 650
000 000
009 [039 000
000 000 ]
010 000 001
000 001
011 001 000
000 000
The error in this subroutine lies in reducing the instruction word A-O
9 ~ 6 00939.
It would seem to be perfectly permissible to subtract one t s from the
memory location digits successively reducing the instructions to
A-O 938 COO 938
A-O 937 COO 937
A-O 900 COO 900
But note that when the adder performs algebraic subtraction it complements
the smaller (in absolute value) and adds. Thus
-5-
A-O 939 COO 939
-00 001 000 001
A09 062' C99 062
The presence of the minus sign following the ftAtt forces complementation on
A-O 939 COO 939. A method of doing this problem involves adding the comple-
ment of 1:
A-Z 939 COO 939
000 999 000 999
A-Z 938 COl 938
The 1 ~ t t prevents a carry from adding to the minus sign. The correct program
is as follows:
000 L 008
M 009
001 A-Z 939
C 939]
002 8 001
A 010
003 C 001
K 000
004 8 009
Q
007
005 5 011
C 009
006 00 000
U 000
007 00 000
90 000
008 000 650
000 000
009 039 000
000 000]
010 O ~ ~ ' 999
000 999
011 001 000
000 000
Use of overflow for control purposes has produced great simplification in
coding and decreased the running time of routines. It has also brought a
certain headache with it - improper counting. The example shown below is
a quite common error among beginning progrannners. This fragment is from a
routine that is processing 10-word items. The item counter is increased
after transferring the new item to working storage. Unfortunately. the
counter is initially set too high,. When the last item is transferred. the
counter overflows causing the next block of 6 items to be transferred into
the current block. Item 6 is thus lost in each block.
-6-
050 [Y5 (610)
z 600 ]
051 B 050
A* 055 i
052 C 050
U Transfer control to process Ar
053 B 056 Return here if from 051
C 050
054 31 600
U
Transfer control to process Ai
055 010 010
000 000
056 Y5 610
ZOO 600
There is a simple scheme for correctly determining the initial value of the
counter. Suppose we use the above example. After having processed the last
item of block. we will transfer a useless 10-word item into working
storaye and augment the counter. which should then overflow to indicate that
a new block is to be read. The counter reading just before overflow should
then be: Y9 -660 Z 600. Initially, the counter must be Yx 610 Z 600, set to
transfer the second item into working storage. If we add once to x each time
we add 1 to the channel selection digits of the Y order, then 9-x 6-1 = 5;
therefore, x = 4 is the initial setting. This method can be easily extended
to any size item, for the case of 2-word items V99 660 W 600 is the reading
after proeessing the 30th or last item. If we use 002 002 000 000 85 the
augmenting constant, 99-x =58 and x = 41. The initial setting belng V4l
602 W 600.
What is the possible indication of the coding error in the following routine?
It is supposed to count the number of nonsignificant zeros of the number X.
(Nonsignificant zeros would be those to the left of the 6 in the example:
000 006 350 010 except the sign).
000 K 000
K 000
001 F 008
E 009
002 00 000
Q 004
003 00 000
U
004 B 010
A 011
005 C 010
B 008
006 -1 000
C 008
007 00 000
U 001
008 [010 000
000 000]
-7-
009 Quantity X
010 [000 000
011 000 000
000 000]
000 001
In this example the extractor is shifted right to examine each column success-
ively. If the quantity X is zero, however, the routine will never transfer out
and becomes a closed loop.
There is yet another class of errors belonging to section 3. These are errors
Qf program logic and can be detected by an analysis of the flow chart. The
illustration is that of a two-way merge with multiple data reels for each in-
put. The standard sentinel convention is assumed for each input. The two
standby block input procedure is used.
Get New A
Block
x. A
to process Al
t - - ~ end of A input fi Ie rout ine
to process Al
-8-
The error in this example is in the two steps following the servo switch symbol.
As two sentinel blocks are at the end of each input tape, rI must have contained
the second sentinel block and thus not a valid set of A items. The correct ver-
sion would be:
$--1 H Ta--+rIH rI--+A process
STUDENT EXERCISES.
Find the coding or logical errors in the following problems:
This is intended to be an ending routine that will read into the memory the
instructions for the next run. Assume the reading head on tape #1 is in the
correct position and fI is erased.
049 ......
. .....
050 [B 940
L 056 ]
051 00 000
Q
053 ending test
052 00 000
U XXX continue witb Run 1
053 11 000
30 000
054 50 055
U 000 go to Run 2
055 Begin
Run 2
056 ZZZZZl
ZZlZZZ Sentinels
057 ......
. .....
This is intended to be an input routine that will park the current 2-word
input item in a working storage and read in a new input block when the
current block is exhausted. It is to be entered from the main routine by
R 305 U 300. Assume generalized overflow control with an increment of
000000 000001. Also rI contains the next input block from tape 2.
300 V60 925
W 925
301 B 300
A* 306
302 C 300
U 305
-9-
303 32 925
B 307
304 C 300
00 000
305 anput
return]
306 002 002
000000
307 V60 925
W 925
This output routine i. supposed to transfer a lO-word item from an output
working storage to the current position in the output block; then write the
output block on tape after it is filled with 6 items. Assume generalized
overflow control with an increment of 000000 00000"1. Output operation is
to be accomplished in the main routine by R 430 U 426. Working storage is
600 609.
425 000000
010 010
426 B 430
A 425
427 00 000
U 429
428 72 940
B 432
429 H 430
00 000
430
Ii'
600
Z40 940]
431 (9utput
return]
.
432
y
600
Z40 940 Reset constant.
-10-
A SURVEY OF SPECIAL INPUT-OUTPUT TECHNIQUES
1. Additional methods for of !hi input buffer.
Chapter 10, Section 8, of the Univac Programming Manual describes a simple yet
completely general method of keeping rI filled for multiple input tape prob-
lems. In this method each input tape requires the reserving of two blocks
within the memory and the execution of six Y-Z transfers to put the standby"
block into working storage position. This paper assumes the reader is com-
pletely familiar with this method as described in the which is here-
inafter referred to as the "two-standby" technique.
Because of its Simplicity and complete generalitY8 the two-standby technique
was described in the elementary programming manual. However, there are other
techniques, Preselector, Reversal, and Automatic method which' are of greater
efficiency and in more general use
o
The Preselector Method
This method is Simple in concept and extremely conservative of memory requIre-
ments and time o It is the preferred method for all problems where the selec-
tion of the next item for 'processing is based solely upon the relative magni-
tudes of the sequencing fields within the items. The principle will be illus-
trated by the following
Suppose we have two files of input items to a processing run. Let us call the
files A and B. Suppose further, that these are ten-word items, six to a block:
that the items within each file are arranged in ascending sequence by a key
within each item and, that the processing is always done on the item
from either file which has the smallest (in magnitude) key_
At the start of our problem we will have the first A and B block in the memory
and are concerned with what tape to read into rIo Let us write down the keys
of the twelve items q mighl
A Item Keys B Item Keys
1136 1000
1137 1010
2100 1011
2501 2050
2502 2161
2600 2163
In comparing the keys of the last A and B item of the block we note that the
A item has 8 smaller key than Bo Since the smallest item of A or B is processed
first by our routine, it is evident that A6 will be used before B6- But since
the A and B items are in ascending sequence within each file, we then know that
the A block will be exhausted before B; therefore
o
we should order the next A
block now
o
That is
o
fill rI with Ao We can then begin processing A2, ---,
B
l
, 82,--- with the full confidence that when A6 has been processed the new A
block is in rIo If B6 had been smallest we w,ould fi II rI wi th B items II Of
course, after rI is transferred to the appropriate empty block, the last items
must be compared again to determine what now should fill rIo
The method is simplicity itself as shown in the following flow chart:
Process Bj
l ~ j
Process Ai
i + l ~ i
l ~ i
The reader will note in the flow chart that if the keys of the current A and
B items are identical, an A item is selected for processing first. Then, if
A6and D6 have like keys, and A block must be read into rI since it is the A
block which is exhausted first. This can be a subtle point in some routines
and care should be taken in the treatment of the case of equal keys.
Since no standby blocks nor block transfer instructions are required, the
preselector is the best method for filling rI,when it is applicable. There
is
o
however, a class of problems with complex processing rules that do not
admit the preselector method in these problems because the order of reading .
tape is either not dependent solely on the original contents of the tapes, or
the order of processing the items cannot be easily determined as simply the
smallest (or largest) item key first. In these cases one of the standby
block methods, which are, completely general, must be used.
-2-
The Automatic Method EQr Two-way Input
A study of the two-standby block method previously mentioned will make evident
to the reader that one of the two standby blocks is always emptyo
The Automatic Method uses only one standby block
o
the other block in rI is con-
sidered as the second. This method is thus somewhat more economical of memory
space than the two-standby block methode The following notation is used in the
flow chart and coding:
Ta an input file on UNISERVO a
A a block from tape a
rI register I
X designation of a standby block
Ta .... rI a block from tape a is read into rI
Initially, the first block from Ta is read into A and the first block of Tb is
read into B. The standby block X is filled with the second block from Til and
rI is fi lIed wi th the second block from 1b" Variable connectors a 2 and ~ l are
set.
Get new
,A Block
Get new
B Block'
rI-4A
-3-
To process
new A Block
In coding the
automatic method the input
blocks assigned were:
A -- 940 - 999
B -- 880 - 939
X -- 820 - 879
If a new A block is needed we go to
line
100, and for a new B block to line
109.
100
[y
820
940J Z
Variable connector a ( a 2 shown)
101
y
830
Z 950
102 Y 840
Z 960
103 Y 850
x-+A
'Z 970
104 Y 860
Z 980
105 Y 870
Z 990
106 3a 820
T ---+rI
B 118
J .al
a
107 C 100
B 121
} 2
108 C 109
(i)
U
109 [3b
880
0
J
u
Variable connector
shown)
110
y
830
Z 890
III Y
840
Z 900
112 Y
850
Z 910
113
y
860
Z 920
114 Y 870
Z 930
3b 820
T
b
--,) rI
B 119
.a2
116 C 100
B 120
117 C 109
CD
U
118 3a 940
CD
U
119
y
820
Z 940
-4-
120 3b 880
121 Y 820
U0
Z 880
The automatic method requires 22 words for; instruct ions and constants, pI us
180 words for the At B, and X input blocks. The obtaining of the next A or B
block will require either 3785 J.JiS if the block is in rI
f
or 13,365 Jls if the
block is in Xo If we assume a completely random reading sequence, then the
average will be 8575 Compare this to the two-standby block method de-
scribed in Chapter 10, Section 8, UNIVAC PROGRAMMING MANUAL which requires 25
words of instructions and constants plus 240 words for the A and B blocks and
their standbyso The time to obtain the next block is 15,395 J.ls. Obviously,
the automatic method is superior to the method described in the programming
manual.
Reversal Method for Two-way Input
The reversal method is feasible for those cases where the volumes of the two
inputs are known to be very dissimilar. Assume the A input on tape a is very
much larger than the B input on tape b
o
The initial setup is to fill an A
block and a B block with the first blocks from their respective tapes, placing
the second A block in rI. The following flow ehart indicates the method of ob-
taining the next A and B blocks. (The symbol is a shorthand notation
for the statement 1tfill rI with a block from tape at reading this tape back-
wards".)
Get new
A Block
Get new
B Block
.
-5-
To
new
rI---+ B
In coding the reversal method
Q
the A block is assumed to be in 940-999 the B
block in 880-939& If a new A block is needed, we go to line 100; and if a new
B block is needed, we go to line 101
0
100 3a 940
rI--:lo Ao Ta
U
To process"A block
101 4a 880
3b 880
rI-70Bo
102 3a 880
Ta-+rI
U
.,..-
To process B block
The coding is small; 3 and an additional 120 words for the A and B block
storage. The time to get the next A block is 3780 while the time to get the
next B block is 10 53 seconds due to the tape reversals necessary to reposition
Tao A simple calculation shows that if the ratio of the size of the two files
is : 1300 the reversal method is faster than the two-standby block method and
requires less space than the automatic
o
Although the automatic method is always
faster than the reversal for a very sm'all B file" the few extra seconds required
by the reversal method may be tolerable to gain the extra 79 memory cells o
The Automatic Method for
This method is an extension of the automatic method described for two-way input.
and uses two standby blocks in the memory with rI considered as the thirdo The
following brief annalysis will show that the information in the standby blocks
varies throughout the process.
Assume that the A, B, and C input blocks are filled from tapes a,
and ceo respectivelYq and that the two standby blocks labeled X and Yare filled
with the second blocks from tapes a and bl} respectivelyo The second C block is
in
A Input B Input
BQ
x Standby
A
Y Standby
D
C Input
k
c
Suppose the A input block is exhausted first: (A shaded block indicates the
portion of that block processed)
n
t=J
x
rI
tJ
'-
C
y
[j
the contents of X are A so they are transferred to the now empty A
input block
o
rI is transferred to X so as to be able to order the next A
block from tape a.
X
G
Q
rI
--7-
If we again exhaust the A block, we can replace it directly from rI without
disturbing the two standby blocks
o
If, however! the B block is exhausted
next, we fill B from the Y standby, transfer rI to Y! and order the third
B block from tape:
.. -
C-=;
x
[J
rI
[J.
Thus, in this example, the standby blocks which start with A and B items soon
are changed to C and A items
o
Unlike the simple procedure described in the
Programming Manual where each standby block always contains only one type of
item. this method permits "floating" information in the,standbyso The attached
flow chart indicates the general solution for this methodo At the beginning,
connectors a 3. 5, Yl, are set for the initial conditions already described.
Let us investigate the logic behind the flowchart by first making a table.
showing the possible configurations of Xe and
Configuration
Contents
Number
rI X Y
1 A B C
2 A C B
3 B A C
4 B C A
5 C B A
6 C A B
Now suppose an A block is needed; this block will always be available in either
rI, X, or Y. After placing this A block in the A input position, we might ask
ourselves: What is the new configuration? The following table shows the
figuration numbers resulting from the act of obtaining an A block, B block, or
C block from each of the six possible
-8-
-----I'::)
To pro-
cess new
A Block i
To pro-
n e ~ l o ~ ~ W
To pro-
cess new
C Block
0'
. ,, __ "" ......... .. ,..... d, "" ........ " ...... v ....
Configuration Number Transformation Table
Original Configuration after obtaining an:
A Block B Block C Block
0; I
1 1 3 S
2 2 4 6
3 1 3 6
4 2 4 " S
S 1 4 S
6 2 3 6
--
Note that obtaining an A block from configurations 1 or 2 leaves these configu-
rations unaltered while configurations 3
Q
and 6 are altered by obtaining
an A block
o
By alteration is meant a change in position of either an At B, or
C block
o
The connector aI, in the flow chart suffices -to obtain the next A
block when either configuration '1 or 2 exists o a
2
and a3 are the connectors
used where an A block is in X: a
2
for configuration 3, a3 for configuration 6.
Separate connectors are needed even though the A block is in X for each con-
figuration since the act of moving the A block alters the position of the Band
C blocks in different ways 0 a 4 and as are connectors used when is
in Y: U
4
for configuration 4 and as for So A similar ass'ignment of connectOrs
to configurations applies for obtaining Band C These are summariized
in the following table:
Configuration
Connectors
Number A B C
1
al
')'4
2
0:1
Y2
3 (12
Ys
4
a
4
1 Y3
5
as
3
Y
1
6 a
3
S
Y
l
-10-
Now that we have assigned the variable connector numbers for each configuration,
we note in the transformation table that obtaining an A block from configuration
6, for instance, will produce configuration 20 Now configuration 6 requires that
ex 3. 5- and YI be and the resulting configuration 20 will require connec-
tors a It' and Y 2 to be seto Thus, the connector ex 3 must set 4 and Y2
as well as ClIO This kind of reasoning makes evident the rationale behind the
flow charto
The average time required to obtain an A, or C block is 11,622 387 words
of storage are required for the three input blocks, the two standby blocks, and
the coding and constants
o
Summary
While it is evident from the foregoing discussion that the so-called preselection
method of keeping rI filled is superior to the standby block schemes in both
time and space requirements! there is occasionally a class of tape problems en-
countered for which preselection is not suitable
o
For these problems, one of the
standby block methods is preferable
o
For two-way input the automatic method is
preferred, the reversal method being used when the second input is of very small
volume and memory space is at a premium
o
For three-way input the automatic method is preferred over the two-standby block
method (Chapter 10. Sec. 8) 0 For more than three-way input wi th no great' dis-
parity in the relative volumes of the inputs an extension of the two-standby
block method is superior in space and time to similar extensions in the methods
described above"
20 Arrangement of information for e'ffieient t'ransfer wi th in the computer ..
As a direct consequence of reading information in units of a block rather than
an it is necessary to consider the most efficient arrangement of the items
within the block. Where the item size is one, two, or ten words in the
usual sequential arrangement of an entire item followed by the next one in suc-
cession clearly does not offer much room for improvement 0 In the case of one-
or two-word items, minimum latency considerations might require that the order
of items in the block be rearranged from the normal one for a particular
but such a situation would be unusual o
The above statements follow directly from the existence of two-, and ten-
word registers information from an input block to an output
block or to working',storage as the case may beG
In dealing with twenty- and thirty-w9rd items, or four- and six-word items
o
the
same remarks apply with several transfers taking the place of the one required
previously@ There are cases
o
however
o
where the normal sequence of items can
be vastly improved upono Consider the twelve-word item for example o In general,
to transfer a twelve-word item from an arbitrary position in the input block to
-11 ..
working storage or to an arbitrary in the output block requires six
V-W instruction pairs o
If this is accomplished with iterative coding, the following routine will have
to be executed six times for each item transferred:
100 V40200
101 B 100
102 C 100
103 00 000
104 010002
W 300
A* 104
U 100
U XXX to processing routine
000002
Straight line coding would offer some improvement in speed but would require 35
lines of coding per input to transfer the items to working storage and 35 lines
of coding to transfer from working storage to the output block o
The following arrangement of the items would be far more efficient,
both with regard to memory space and execution time: (j, k is word k of item j)
Cell
200 1, 1 11/ 2 1,3 1,4 1,5
l1l6 10 7 1,8 1,9 1,10
210 2,1 20
2 2
11
3
29 4 2,5 2,6 2,7 2,8 2,9 2,10
220 3,1 3,2 3
11
3 3,,4 3,,5 3,6 3,7 3
0
8 3,9 3,10
230 4,1 4
e
2 4,3 4,4 4,5 4,6 4,7 4,8 4,9 4,10
240 5,1 5,2 5,3 5,4 5(f5 5,6 5,7 5,8 5,10
250 19 11 1,12 2.,11 2,12 3
11
11 31)12 4,11 4,12 5,11 5,12
For this configuration
a
an item transfer would require only a Y-Z and a V-W.
Using straight line coding 19 lines per input will"suffice-to transfer the
item to working storage and similarly 19 lines for the output block o The
coding necessary to accomplish the transfer of items to working storage is
illustrated below.
100 00 000
U 101
101 R 100
U 110
102 R 100
U 113
103 R 100
U 116
104 B 108
C 100
105 V 258
y
240
106 W' 250
Z' 2.00
107 00 000
U XXX to processing routine
-12-
108 R 100
U 109 constant
..
109 30 200
U XXX to preselector read
110 V 252
y
210
III W 250
Z 200
112 00 000
U XXX to processing routine
113 V 254
y
220
114 W 250
Z 200
115 00 000
U XXX to processing routine
116 V 256
y
230
117 W 250
Z 200
118 00 000
U XXX to processing routine
Use of minimum latency coding could further improve this routine. The following
examples will illustrate further applications of this technique ..
15-Word Item
1,1 1,2 1,3 1,4 1,5 1,6 1,7 1,8 1,9 1,10
2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 2,9 2,10
3,1 3,2 3,3 3,4 3f)5 3,6 3.,7 3,8 3
e
9 3,10
4,1 4,2 4,3 4,4 4,,5 4,6 4,7 4,8 4,9 4,10
I,ll 1,12 1,13 1,14 2,11 2,12
20 13 2\1 14 3
11
11 3,12
3,13 3,14 4,11 4,12 4
11
13 4,14
10 15 2
11
15 3
0
15 4,15
-13-
5-Word Item
1,1 1,2 1,3 1,4 2,1 2,2 2,3 2,4 3,1 3,2
3,3 3,4 4,1 4,2 4,3 4,4 5,1 5,2 5,3 5,4
8,3 8,4 9,1 9,2 9,3 9,4 10,1 10
0
2 10,3 10,4
11,1 11,2 11,3 11,4 12,1 12,2 12,3 12,4 1,5 2,5
3-Word Item
1,1 1,2 2,1 2,2 3,1 3,2 4,1 4,2 5,1 5,2
11,1 11,2 12,1 12,2 13,1 13,2 1401 14,2 15,1 15,2
16,1 16,2 17,1 17,2 18,1 18,2 19,1 19,2 20,1 20,2
11,3 12,3 13,3 14,3 15
i
3 16,3 17,3 18
0
3 19,3 20,3
Thus we see that a IS-word item can always be transferred using one Y-Z, two
V-W's and one B-C. Similarlyw a five-word item can be transferred by using
two V_WIg and a B-C.
It is to be noted that input data from in cannot be
obtained in the efficient configurations illustrated above. Therefore, the
rearrangement of the information will have to be executed by the first Univac
run on the data.
Item sizes multiple sub-multiple of 60
Occasionally, an item size which cannot be contained an intergral number of
times within a block is desirable. Generally, this would be true where the
processing is done at less than tape time. Then, any reduction of the total
amount of tape required will reduce the overall processing time.
An obvious solution to this problem is to consider the item as being composed
of a series of sub-itemsuthe length of the sub-items being a sub-multiple of
a block. In the practical case the sub-item will be ten words in length as the
time required to move many one- or two-word sub-items negates any advantage
gained in reducing the amount of tape. For example, if the number of digits
required in an item is 420 (35 words) an item size of 40 words could be used.
-14-
Each item is then composed of four ten-word sUb-items. If it were not possible
to handle items multiples or sub-multiples of a block, the item size would
have to be 60 words in length. The item thus saves 1/3 of the tape re-
quired and reduces the processing time up to 1/3 depending on how much the item
processing time is under the tape time:
The following flow chart is an iterative solution to the selection of an N-word
item, W, composed of Pksub-itemsAio Each input block, At containing i' such
sub-items. The k in W is shown as a superscript since W , W
k
are, in
fields of the item Wo
Get New
VI Item
Note: initially i = 0
=
-15-
i +
k+ l----+k
To Process
New W Item
The symbol
represents an appropriate subroutine which will obtain the next A block. The
reader should note that while it i ~ not possible to use all of the input block
A for the working storage W, it is possible to use a portion of the block for
some item sizes and thereby conserving memory space. For example, consider
the possible configurations of blocks containing a forty-word item:
Block 1 Block 2 Block 3
1-1 2-3 4-1
1-----.---
1-2 2-4 4-2
1-3 3-1 4-3
1-4 3-2 '4-4
2 ... 1 3-3 5-1
2-2 3-4
5-2
(The notation j-k means the kth sub-item of the item j). Thus, only two block
configurations are possible. Now, if the working storage WI, W2, W
3
, and W4
is positioned as follows with respect to the input block AI, A2, A3, A4, A5
and A6:
working storage
input block
Only twenty extra positions are necessary for the working storage W.
Although it would be desirable to have the read routine be the preselector, it
has not been found possible! up to this time, to suitably modify this technique
to make it work properly for the ttodd
1t
item sizes. This means that one of the
standby block methods described earlier must be employed in ordering blocks
from tape o
-16-
Item sizes ]&! of fixed length
o
In some large volume tape problems the variation in mInlmum required digits for
the items of a file may be very largeo This case may occur when a master infor-
mation file is laid outo If we allot to each 'item of the file the tape space
required for the largest possible item that can we may find that a very
large portion of the file contains areas causing inefficient use of the
tape and could greatly increase the processing time o
Hence. it is desirable to let each item use as little tape space as is feasible o
If this is done, then the items on the tape may be of varying lengths o This
variable item size can be easily handled by the computer by considering each
item to be composed of a variable number of sub-items. each sub-item being of
a fixed size
o
All that is then necessary is to read into the memory all of the
sub-items comprising an item
o
The routine that selects the next sub-item from
the block (or the next block from tape) is designed in the usual manner since
the sub-item is of fixed size
o
The problem next to be solved is how do we know when all of the sub=items for
a given item have been assembled? This may be done in several ways, the one
to be selected depending on the particular situationo
The first method to be described assumes that each sub-item carries the item
key word e Then, as each sub-item is selected its key word is checked for
equality with the current key word
a
The flow chart for this method is shown
below. A is the input block containing i' Ai e W is the working
storage which will contain the current tape a item; this item is composed of
fields Wko K stores the key word for the current input itemo K is initially
set to the value of the key word of the first input itemo The key word of
each sub-item is assumed to be field Ayo
Get Next
W Item
k +
-17-
To Process
New W
This method assumes that two items with the same key word is not possible. It
is also inherently assumed that the space required for repeating the key word
is not unduly excessive
o
Perhaps an inherently better method is to consider the sub-items of an item to
be of two kinds" The first sub-item may be thought of as a t@header
tl
sul) ... item
which contains the key word for the item" The remaining can be con-
sidered as "trailer" sub-items
o
Nowo instead of requiring all sub-items to
carry the item key word, we can simply require that each sub-item have a fixed
digit position which will contain
ll
sayv the symbolttH
t
if the sub-item is a
header and ffr
t
if the sub-item is a trailer. The flowchart for selecting the
N-word item W composed of a variable number of sub-items Aie with key as Ai.
Get Next
W Item
k +
-18-
=
To Process
New W
- . .. --
IDENTIFICATION BLOCKS AND RERUNS
1. Introductory Conside!2tions
The governing characteristic of commercial data processing problems is the
very large amounts of information (records or items) to be fed into the com-
puter. Even some of the simpler problems may involve tape files of 20 to 25
reels per file, while large problems can demand nearly 300 reels per file.
Most often the processing of these tape files requires that the items com-
prising the file be processed in a definite sequential manner. If this is
true, then certain precautions must be exercised to insure that these items
processed in sequence. Two teChniques in common use to guarantee this
sequential processing are identification blocks and block counts.
The reader should bear in mind the situation encountered by an operator
during the running of a large tape problem involving hundred reels.
Since the contents of a reel of tape are not directly visible to the oper--
ator, a gummed label is usually attached to each reel. Now, although each
reel has a visible identification label, what assurance have we that when
the computer calls for the fifth reel of file A to be mounted on a Uniservo
that the operator does indeed mount reel #5 of file A on that Uniservo?
Or, granting that a reel bearing a visible label "Reel #5 - File Att is
mounted on the desired Uniservo, what guarantee is there that this label is
a correct description of the contents of the reel? These questions arise
because of the bias of hmnan operations toward Since the computer
is self-checked in its operation, it is desirable that human intervention
in the proceSSing chain be limited as much as possible and that such inter-
vention be done in a Simple fashion, subject to check.
Assuming, now, the correct data reel has been mounted on the desired Uniservo,
can we rest assured that the jtems on that reel will be processed in their
correct sequence by the computer? We can provided, again, that no operator
intervention is aecessary. Occasionally, it is necessary for the operator
to affect the position of the tapes mounted on the Uniservos; for example,
if a block on Uniservo #2 was read into rI incorrectlYf the operator will
set into SR from SCP instructions causing the block to be re-read.* If the
number of data blocks recorded on the tapes is placed on the tape itself,
then the computer can check that the operator did not misposition the tape.
With this check made possible, a block of items cannot get lost in the pro-
ceSSing run, nor oan a block be prooessed twioe,
To illustrate the use of identification blocks and block counts in checking
the human interventions mentioned above, a general two-way merge for ten-
word items will be described. First however, we shall describe the stand-
ard data tape format.
* This condition will not often arise if the computer is equipped with the
automatic re-read device.
..1-
2. The Standard Data
The first block recorded on a data tape will be the identification block of
which the first word only will be of interest to us now.. This word is the
reel identification number, designating the file of which this reel is a part,
and the sequence number of the reel within the file. For our two-way merge
the identification word has the following appearance (for the 13th reel of
the file A):
Following this ID block are the data blocks. If the reel is not the last
reel of the file, there may be up to 1981 tull data blociti. Following tbe 1a.t
data block there will be recorded a sentinel block having the following
composition: word 00 (the first word of the block) consists of twelve Z's
(the sentinel); word 50 also consists of twelve Z's; word 51 contains the
number of data blocks recorded on tape plus this sentinel block. For ex-
ample, if this tape contains 1981 data blocks, word 51 of the sentinel
block looks like:
0000000001982
Word 59 (the last word of the block) will not consist of twelve P's.
Following this block will be other blocks which are provided for the pos-
sibility of the reruns to be described later. If the reel is the last reel
of a file, its identification block is in the same format noted. However,
being the last reel of a file. it may have less than 1981 full data blocks
recorded on it. Following the ID block WIll be as many data blocks as
needed ( 1981) to record the remaining items. If the items on the last
reel are a multiple of six, they will exactly fill the last data block. In
this case, the sentinel block described will follow the last data
block, except that word 59 of the sentinel block consists of twelve "s
which serve to identify the last reel of a file. But if the data items are
not a multiple of six in number, the last data block will be only partial-
ly filled. In this case, a Z sentinel will be placed in the next word
position of the partial data block, following the last word of the last
data item. For example, if the partial block contains only three ten-
word items, word 30 will contain all Z's. In addition, the 50th word of
the block will also be a Z sentinel; amd word 51 will contain the number
of full data blocks on this tape, plus the partial data block. Word 59
of this block will consist of twelve "s. In either case, following the
partial or full sentinel block, is a second full sentinel block.
3. Description of the Generalized Two-Way Merge
Briefly, the generalized two-way merge problem is this:
Other information in the ID block is for use in re-runs.
There are two multi-reel files, labeled for convenience, file A and B.. Each
file consists of a series of ten-word items. the first word of each item be-
ing a key word or serial number. The items iT! each file are recorded on tape
in an ascending sequence by their key words. The reels comprising each file
are recorded in the standard data tape format just described. The problem is
to produce a new file, labeled C, also in standard data tape format, which
contains every item on the A and B f i l e s ~ arranged in ascending sequence by
their key words. Two Uniservos will be allotted for each file:
Unisel"v..Q!,
A
B
C
In this way, after reel I of file At which is mounted on Uniservo 2, has been
processed, it is given a rewind instruction. When this tape is rewound, the
operator will replace it with reel 3 of file A. While reel I is being rewound,
reel 2( which has been mounted on servo 3, is processed by the computer; thus,
the computer need not wait for the rewinding of a reel and the mounting of a
new reel of tape. This same procedure is used for the Band C files as well.
The complete flow chart and coding of this problem is attached.
The following list is an explanation of the flow chart symbols.
Ta =
A
=
Ai =
AU
==
1
la =
lla
=
--.. - - ~
=====*,
)
Tape on Uniservo a
A block of 6 items from Ts
ith item (i::: 1.2, .... ,6) of A
nth word (n = 0,1,2, ,9) of Ai
File and reel label for Ta
Block counter for Ta
A block from Ta is read into rI (forward read)
Rewind Ta with interlock set
The block C is written on T
c
Servo interchange symbol, a, which was Uniservo
2, now becomes 3 .. Circle rotates 180
0
so that
next trip through a
v
which was servo 3, becomes
2 again.
Flow line followed by individual items
Flow line followed for end (or start) of block
Flow line followed for end (or start) of tape
Flow line followed for end (or start) of file
-3-
A brief description of the flow chart follows:
At the start of the problem the flag indicates that the input and output Block
counters are set to zero, and the input and output tape labels are set to one.
At connector CI) the input file labels with their appropriateUniservo numbers
are printed so that the operator can mount the first reel of the A file on the
Uniservo 2, the second reel on 3, the first reel of the B file on Uniservo 4,
the second on 5, and blanks on Uniservos 6 and 1. xt step, l2iJ, is to
write the identification block on the output tape. At 2 is irans-
fer breakpoint 10 If breakpoint 1 has been depressed, e computer will stop