snal

1961

PB 161577

j5oulder laboratories

92*. 76

I S O P A R

A NEW AND IMPROVED SYMBOLIC OPTIMIZING

ASSEMBLY ROUTINE FOR THE IBM 650

BY

H. HERBERT HOWE

U. S. DEPARTMENT OF COMMERCE

NATIONAL BUREAU OF STANDARDS
i,Q03

THE NATIONAL BUREAU OF STANDARDS

Functions and Activities

The functions of the National Bureau of Standards are set forth in the Act of Congress, March

3, 1 901, as amended by Congress in Public Law 619, 1950. These include the development and

maintenance of the national standards of measurement and the provision of means and methods for making measurements consistent with these standards: the determination of physical constants and

properties of materials: the development of methods and instruments for testing materials, devices,

and structures; advisory services to government agencies on scientific and technical problems: in- vention and development of devices to serve special needs of the Government; and the development

of standard practices, codes, and specifications. The work includes basic and applied research,

development, engineering, instrumentation, testing, evaluation, calibration services, and various

consultation and information services. Research projects are also performed for other government

agencies when the work relates to and supplements the basic program of the Bureau or when the Bureau's unique competence is required. The scope of activities is suggested bv the listing of

divisions and sections on the inside of the back cover.

Publications

The results of the Bureau's work take the form of either actual equipment and devices or published papers. These papers appear either in the Bureau's own series of publications or in the journals

of professional and scientific societies. The Bureau itself publishes three periodicals available from

the Government Printing Office: The Journal of Research, published in four separate sections,

presents complete scientific and technical papers; the Technical News Bulletin presents summary

and preliminary reports on work in progress; and Basic Radio Propagation Predictions provides

data for determining the best frequencies to use for radio communications throughout the world.

There are also five series of nonperiodical publications: Monographs, Applied Mathematics Series,

Handbooks. Miscellaneous Publications, and Technical Notes. Information on the Bureau's publications can be found in \BS Circular 160, Publications of the

National Bureau of Standards ($1.25) and its Supplement ($1.50), available from the Superintendent

of Documents, Government Printing Office, Washington 25, D.C.
NATIONAL BUREAU OF STANDARDS

technical <Viote

76 (PB161577)

July 19, i960

I S P A R

A NEW AND IMPROVED SYMBOLIC OPTIMIZING

ASSEMBLY ROUTINE FOR THE IBM 650

*>y

H. Herbert Howe

NBS Technical Notes are designed to supplement the Bureau's regular publications program. They provide a means for making available scientific data that are of transient or limited interest. Technical Notes may be

listed or referred to in the open literature. They are for sale by the Office of Technical Services, U. S. Department of Commerce, Washington 25, D. C.

DISTRIBUTED BY

UNITED STATES DEPARTMENT OF COMMERCE

OFFICE OF TECHNICAL SERVICES

WASHINGTON 25, D. C.

Price $1,50

Contents

Page

1. Introduction 1

1.1. What an optimizing assembly routine does 1

1.2. Equipment needed with ISOPAR 1

1.3. Shortcomings of previous assembly routines 2

1.3.1. Brevity of remarks 2

1.3.2. Deficient optimization 2

2. Programmer's guide k

2.1. Coding form and ISOPAR input k

2.1.1. Column l6, card status 5 2.1.2. Column 17, card type and other information 5

2.1.3. Columns 24-25, operation 6

2.1. it-. Columns 23-25, pseudo-operation

2.1.5. Reservations 7

2.1.5.1. BLR, Block reservation 7

2.1.5.2. RBD, Reserve band 7

2.1.6. Columns 18-22, 26-30, 32-36, addresses 8

2.1.6.1. Absolute addresses 9

2.1.6.2. Regional addresses 9

2.1.6.2.1. REG, Regional designator 9

2.1.6.3. Blank addresses 10

2.1.6.4. Symbolic addresses 11

2.1.7. Columns 31 and 37; indexing tags 11

2.1.8. Columns 38-75, remarks 11

2.2. Relocatable library subroutines 12

2.2.1. Format of relocatable cards 12

2.2.2. REL, Relocation indicator 13

2.2.3. REQ,, Relocatable equivalence 13

2.2.4. RBR, Relocatable block reservation 1^4- 2.3. Other pseudo-operations 14

2.3.1. ALF, Alphabetic word Ik

2.3.2. BLA, Block availability,. _ 14

2.3.3. HED, Symbol-table clearer 15

2.3.4. SYN, Synonym 15

2.3«5« EQU, Equivalence l6

2.3.6. BOP, Beginning of program l6

2.3.7. PAT, Punch availability table l6

2.4. 800X instructions 17

3. ISOPAR processing instructions 17

3.1. Assembly on the 65O 17

3.1.1. Input card arrangement 17

3.1.2. Operation of the 65O console 18

3«1.3« Programmed stops 18

3.1.4. Other stops __ 18

3.1.5. ISOPAR output- 19
11

Page

3.2. Reproducing input into output cards 20

3.3- Listing the code 20

3.3-1* List 1, logical order . 20

3.3.2. List 2, by D-address _ ___ 21

3.3-3- List 3? toy location 21

4. Relation of ISOPAR to SOAP II 22

4.1. How to use ISOPAR, if already familiar with SOAP II 22

4.1.1. Necessary changes in programming methods 22

4.1.2. Permissible changes in programming methods 23

4.1.3. Some comments in ISOPAR which also apply to SOAP II_ 24

4.2. Improvements in optimization 25

4.3 • Available drum space for the ISOPAR program 26

4.3.1. Use of symbol table 27

4.4. Improvements in the 407 control panel 28

5. Analysis of the ISOPAR program 28

5.1. The optimizing procedure 29

5-1.1. Circumstances under which ISOPAR abandons normal 29

processing

5.1.2. The forward search 30

5.1.2.1. Abandon search (QUITT routine) 30

5.1.2.2. Initiate backward processing (BACKW routine) 30

5.1.2.3. Continue the search 31

5.1.2.4. Table of types of addresses 31

5.1.3. Some methods of backward processing 32

5.I.3.L Sequence in which addresses are processed 33

5.1.3.2. Definition of "fixed address" 34

5.1.3.3. Optimizing addends and subtrahends 34

5.1.3.4. An example of backward processing 35

5.2. Memory allocation 36

5.2.1. Input region 36

5.2.2. Output region 38

5.2.3. Availability table 38

5.2.4. Storage region 39

5.2.5. Symbol table 39

5.2.6. Equivalence table 40

5.2.7. Optimizing addends and tags 40

5.2.8. Region table 4l

5.3. Description of the program 4l

5.3.1. Right- justified temporaries 42

5.3.2. Subroutines 44

6. Desirable changes in ISOPAR 48

6.1. Changes to improve optimization 48

6.2. Changes to improve usability 49

6.3. Changes to speed assembly and/or make more drum space 50

available
iii

Illustrations

Page

Figure 1. Samples of ISOPAR input program cards c2

Figure 2. Samples of ISOPAR input program cards, continued <=? Figure 3» Type 533 ISOPAR control panel diagram c^

Figure k. Type ^07 ISOPAR control panel diagram ec

Tables

Lists of ISOPAR program, "by logical order,

D-address, and location following 55

- 1 -

ISOPAR, A NEtf AND IMPROVED SYMBOLIC OPTIMIZING

ASSEMBLY ROUTINE FOR THE IBM 6 50 *

By

H. Herbert Hove

I. Introduction

1.1. Fnat an Optimizing Assembly Routine Does

Che purpose of an assembly routine is to relieve the programmer of

some of the problems of assigning storage locations to instructions,

data, or "temporaries." When he wishes to refer to a storage location,

he writes a symbol, which maybe mnemonic, such as SINE; the assembly

routine assigns a location to that symbol, and will use the same location whenever that symbol appears again. If it is inconvenient to use

a mnemonic symbol, the programmer may select a symbol at random, which

is used in the same way.

In the case of the IBM 650, an important feature of any assembly

routine is that it should assign locations in such a way as to optimize

the program as far as is feasible.

It should be clearly understood that three distinct codes are involved: (l) ISOPAR, which is the code actually being performed. (2)

The input code, also called the "symbolic code," which is read and

transformed one card or a few cards at a time. (3) The output code, or "object code," which is punched while the input code is being read.

The object code is the one which will later be used to make the actual

computations which are desired.

1.2. Equipment Needed with ISOPAR

ISOPAR follows its parent SOAP II in that it requires only a basic

65O plus alphabetical device, but it will assemble programs which use

other optional features, such as indexing registers, floating point,

tapes, printer, disk storage, etc. If the alphabetic device will

accept special characters, the programmer has more latitude, but that

*This computer procedure is published as an NBS Technical Note because it may be of general Interest and applicability. Its distribution carries no assurance that it is free from error, but only that the

author has used it successfully.
- 2 -

feature is not essential. Other special devices are not used in the

assembly, even if present. (See 6.3(c).)

1.3. Shortcomings of Previous Assembly Routines

IBM prepared a Symbolic Optimal Assembly Program, commonly known

as SOAP, and later a modification called SOAP II. The present assembly

routine is modified from SOAP II, but corrects two serious shortcomings

in it, as well as several minor ones. On the other hand, ISOPAR still

Includes a number of known shortcomings, as described in 6. The two

serious shortcomings of SOAP II will now be discussed.

1.3»1. Brevity of Remarks

The first shortcoming of SOAP II is largely a matter of control

panels, and could have been remedied without much change in the code

itself. SOAP II is inadequate in that only ben spaces are allowed for

explaining a word of the code; and if the machine includes only the

optional Alphabetic feature, but not the Special Character feature,

these 10 columns of explanation can include no punctuation. The re- marks are often so abbreviated that they suggest meaning only to the

person who wrote them, and perhaps not to him after a little time has

elapsed. ISOPAR allows 38 card columns for remarks, and they may include any symbols which the ^-07 will print

.

This is accomplished by not trying to carry the remarks from input

to output through the 650. Instead, a Reproducer board is permanently

wired (see 3*2), and as soon as an ISOPAR code is ran through the 650,

the cards are ran through the Reproducer to reproduce the remarks into

the output cards. To simplify coding, this plan has been carried further, and all of the other information on the input cards is transferred to the output by the Reproducer; the only things punched by the

65O are the derived instruction, Its location, a card number, and any

punches necessary to control the kO'J on the basis of defects found

during assembly. Sufficient card columns for adequate remarks were obtained "by giving up the quite unimportant feature that the output cards

should be self-loading.

1.3.2. Deficient Optimization

The second serious shortcoming of SOAP II is one whose remedy re- quired rewriting the entire program, although SOAP II served as a valuable guide throughout . ( Since the program was being rewritten, other

improvements were included; see 4.) SOAP II produces a program which

is rather poorly optimized; the optimization of the output of ISOPAR

is much better.
- 3

-

The trouble with. SOAP II is that it always processes the cards

and addresses in regular sequence: the cards as they reach the hopper,

and the addresses in the order L, D, I. The shortcomings of this

method of optimization are set forth clearly in IBM's "650 Data Processing System Bulletin: Basic Operation Codes, Program Optimizing,

Program Loading," No. G24-5002-0 9/58. On pages 27-28, it is explained

that for some operations the time of execution cannot "be predicted,

and, in order to optimize, one must go ahead to a fixed address and

work hack. This is just what ISOPAR does.

For example, consider the pair of words:

0000 Ik ABC

21 SAVE 0020

where 0000 and 0020 are fixed addresses; that is, either absolute

values, or regional values, or symbols for which a value has already

been assigned when these words are reached. Assuming that its firstchoice locations are available, SOAP II would assign values that would

make these words read:

0000 ik 0003 0013

0013 21 0018 0020

When this code is performed, the computer wastes kS word-times between

0018 and 0020.

If operation 1^ actually required exactly 10 word-times to perform

(or 60, or 110), optimization could not be improved without changing

0000 or 0020. But lit- is not that kind of operation. The time which

elapses from the moment it gets the divisor from memory location ABC

until it stores the remainder in SAVE is large and variable. In any

particular computation, there is a cerbain dynamic level which ought

to be assigned to SAVE to make it fit with ABC; but each time the code

is performed, that level will presumably be different. Except for the

question of parity (a refinement which need not bother us at this

point) any dynamic level is as likely to be suitable for SAVE as any

other, so far as fitting it to ABC. (The blank address could be assigned any value, since in any case the seconi of these words will be in

the program register before the division is finished.)

Now consider how these words would be optimized manually. You

look ahead until you find a fixed address, and work back. In this instance, working back from 0020, the value 0017 is assigned to SAVE.

This will fit ABC as well as anything else and gives the best fit with

0020. It will be seen that, on the average over many performances of

the code, the two words will be performed in i+9 word-times less than
- h -

if SAVE is made equal to 0018: the time interval "bet-ween ABC and SAVE

will be the same, on the average, and the time interval "between SAVE

and 0020 will always be h-9 word-times less.

This is an extreme ease. When we consider optimization of many

different codes by SOAP II, we see that its method wastes an average

of 2k l/2 word-times per division, as compared with the manual method,

if we exclude from consideration those cases in which another variablelength order is reached before we get to a fixed address.

The same argument applies to other variable-length orders, such as multiply, floating operations, read, write. For floating add, the

average waste would be somewhat less, because the optimizing addends

used in SOAP II are such as will usually waste a few word-times but

seldom an entire turn of the dram.

Summarizing, SOAP II wastes considerable time because addresses

are always processed in the order in which they are reached. When a variable-length order is reached, it assigns a more or less arbitrary

length to it, regardless of what the situation may be on ahead. Since, on the average, it makes little difference in computing time what

address is put there, the manual method optimizes the address' with re- lation to later addresses, so that no time is wasted when the next

fixed address is reached.

ISOPAR follows the manual method. When a variable-length order

is reached, it stops processing and reads in more cards until a fixed

address is reached. Then it optimizes backward; then it punches forward. This takes more processing time than SOAP II, but produces a materially better optimized code. In the example cited above, ISOPAR

would give, if its first-choice locations were available:

0000 ik 0003 1512

1512 21 1517 0020

2 . Programmer ' s Guide

It is assumed that a person attempting symbolic programming, for

use with ISOPAR or any other assembly routine, is already at least

somewhat familiar with machine -language programming, and no attempt is

made to discuss the meanings of the operations or the addresses.

2.1. Coding Form and ISOPAR Input

The ISOPAR input consists of one card for each word of code, with

certain additional cards. These additional cards are headings used in

listing the code, and cards which serve to guide the assembly. A com- plete list of the card types is given in 5*2.1.
- 5

-

Figures 1-2 show the coding form used for the ISOPAR input. Each

line shows information that might appear in one input card. Numbers at

the top show the card columns. It is to he understood that cards would

never he used in the sequence and with the entries here used; this is,

rather, an assembled collection of different types of cards, given in

the order in which they are described in the text.

2.1.1. Column l6, Card Status

Column l6 may he used for a letter which shows the status of the

card. Such letters may be omitted if desired, since they do not affect

the assembly, and only K affects the ^07 listing (by controlling spacing). The following letters are used:

K: The word is a constant, not an instruction. Q: A comparison

constant, or the word used to restore a variable instruction after a constant has been subtracted. (Used often with the basic machine;

seldom with a machine having index registers.) C: An instruction

which is performed immediately after the one preceding it in the listing, and also after some other instruction. N: An instruction which

is not performed after the one preceding it in the listing, but is performed after some other instruction, R: An instruction whose logical

predecessor is not in the listing at all, but is "built up somehow.

P: A word used to preset or modify a variable instruction. J: Similar to P, in case the word appears in the code in the sequence in which

it will he performed.

These letters are used in the listing of the ISOPAR code. It

might he noted, however, that that code has so many interruptions to

normal sequence that the value of the letters is rather limited.

2.1.2. Column 17, Card Type and Other Information

Certain of the possible card types are indicated by punches in

column 17, and that column also gives some other information about

certain cards

.

A 1 in 17 indicates a "Comments" card. These are normally heading

cards for use in listing, with one at the start of each segment of the

code. The comments are written in columns 18-75 • The ISOPAR assembly

code passes over those cards without using them.

A 2 in 17 indicates a card of a relocatable subroutine. Each

actual code -word of the subroutine has such a punch; but the subroutine's type 1 cards, if any, and Its REQ, and RBR cards do not use 2 in

17, nor does the associated REL card. (See 2.2.)
- 6 -

An X-punch (also known as 11-punch) in 17 indicates a negative

word. It is normally used only with constants, including those with 2

in 17. It may "be used in an ALF card, but not in a card with 1 in 17.

A Y-punch (also known as 12 or R) in 17 indicates a card of the

availability table (2.3.7* )• It is not part of the input, but is

punched as part of the output, if a PAT card is used.

2.1.3. Columns 24-25, Operation

For every word that is to appear in the object code, there must be

a line on the coding form and a card in the input code. The first two

digits of the object-code word are entered in columns 24-25 (except in

case of an ALF card, 2.3-1.), and are reproduced unchanged into 5-6 of

the output card. If the word is an instruction, these digits show the

operation; alternatively, they may be the first two digits of a con- stant . If the word is an instruction, these digits are also used during

optimization.

2.1.4. Columns 23-25, Pseudo-Operation

The input symbolic code must also include some "pseudo-operations."

A pseudo-operation is indicated by a 3-letter symbol in 23-25-

There are 13 permissible pseudo-operations, listed in 5 .2.1. An

illegal combination of letters will probably cause the assembly program

to go astray. Actually, however, only the lower punches in columns 23

and 25 are used in identifying the pseudo-operations; for example, KAZ

or SCI, or 279 would work just the same as BLR. A pseudo-operation is

recognized by having blank 17 and non-blank 23.

Pseudo-operation ALF gives rise to a word of code, just as do cards

showing actual operations. The other 12 do not. They are used, so to

speak, to guide the assembly into correct channels.

Three of the pseudo-operations, BOP, PAT, and HED, are used with

only columns 23-25 punched. All of the others require additional

punching

.

In case RBD cards are used, they must be at the start of the program, preceded perhaps by type 1 cards and a BOP card, but by nothing

else. The other pseudo-operations may be used at any time, although

normally all except HED also appear before the first card which produces

a code-word of the object code.
- 7

-

2.1.5. Reservations

ISOPAR assigns addresses optimally, in cases in which the programmer has not specified the address. When an address is thus assigned, a note is made that that address is now "unavailable," so that it will

not be reassigned.

It is always necessary, however, that certain words be in a predetermined relation to each other; e.g., the 10 words of a read band must

be together. To make this possible, it is necessary at the start of a program to "reserve" certain portions of the dram, so that the assembly

routine will not assign those cells to other uses.

Seven or eight of the pseudo-operations relate to reserving. Two

of these are explained here, and the others are explained later.

When a pseudo-operation calls for reserving a location, it is re- served regardless of its previous status; when it is to be "unreserved,"

that too occurs regardless of previous status.

2.1.5.1. BLR, Block Reservation

Two varieties of BLR cards are illustrated. The first has its I

address blank; the second has a four-digit number for I.

The first illustrated BLR card reserves cell O306, making it un- available for automatic assignment by the assembly routine. The second

illustrated BLR card reserves all cells from 1296 to 1305 inclusive.

2.1.5.2. RBD, Reserve Band

RBD supplements BLR, and reserves large blocks of locations much

more rapidly than does BLR.

The first RBD card shown in figure 1 reserves the entire band

which starts with 0000, namely locations 0000-00^9 inclusive. The

second RBD card reserves O6OO-I899 inclusive, and also 0000.

The number in the D-address must be a multiple of 50. If it is

not, no reservation occurs.

The number in the I-address, if not blank, is normally congruent

to k-S (modulo 50). If it is not, reservation extends to the end of the

band in which that location lies. Should the I-address be smaller than

the D-address, it reserves only one band.
- 8 -

RBD first reserves the initial location of each band, and then

reads the nexb card to see if it is also an RBD card. At the end of

the last RBD card, the reservations in the locations = (mod 50 ) are extended to the following h-9 locations. After that, it also reserves

0000, since that is nearly always desirable. To work correctly, all

RBD cards mast precede all the rest of the program except possibly

type 1 cards and a BOP card.

2.1.6. Columns 18-22, 26-30, 32-36, Addresses

As in all 650 coding, three addresses mast be specified for each

word: L, the location into which the word is to be placed; D, the

data-address in the word; and I, the instraction-address in the word.

In the input code, each of these addresses consists of five characters, and may consist of any combination of letters, digits, blanks,

and special characters that is acceptable to the alphabetic input of

the 650. Addresses are of four types, as explained later.

It has been found expedient to restrict the generality of the

characters in an address. If, for example, an address consists of two

consecutive non-blanks and three blanks, it may be hard to tell in a

kO'J listing which positions are non-blank, and errors have occurred

from this source. It is better, therefore, for the programmer to adopt

the rule that every address be either left -justified (first position

punched) or right- justified (right .position punched); or, of course, it

may be both left- and right- justified.

The following conventions in writing addresses have been found

aids to accurate key-punching. They are illustrated in figures 1-2.

Letters used in addresses are written as capital letters.

An address with fewer than 5 non-blank characters should be written crowded against the left or the right margin of the space on the

form, to show left- or right -justification, respectively.

A capital Is written with a bar over it; a zero with a slash

through It. The latter may be omitted if the zero is with a group of

other digits.

Digit 1 is indicated by a single line; letter I has horizontal

bars at the top and bottom.

A blank character within an address is indicated by a small b.

Should the programmer desire to have a symbol that is blank at both

ends, it should be written with b's at one end to clarify the punching

requirement s

.
- 9

-

2.1.6.1. Absolute Addresses

If the first character of an address is blank and the other four

are digits, it is an "absolute address." Such an address is reproduced

into the corresponding output card unchanged, unless it is tagged for

indexing. If it is a true address, it mast of course be a valid one

(e.g. for a basic 650, it must be OOOO-I999, or 8OOO-8OO3). It may

also, however, be part of a constant.

ISOPAR reserves an absolute drum address if it is L, since such an

address always signifies a location that is being used. (To make the

reservation meaningful, the word would have to appear near bhe start

of the code. This is feasible, for example, with constants for which

L is absolute.) Absolute D and I addresses are not reserved, (except

in relocatable subroutines, 2.2), because such addresses are often

parts of constants, or are not true addresses as in operations 80 or

3O3 and it would reduce available locations to reserve them.

2.1.6.2. Regional Addresses

If the first character of an address is a letter and the other

four are digits, it Is a "regional address." Regional addresses are used when the programmer knows that a certain group of words mist be

kept together in a certain sequence (e.g., a table of functions, or the

10 input words), but does not yet want to decide just where to put them,

Later, before assembling the program, he will prepare a single RGG card

to define the region.

Any drum location may be described by a regional address referred

to any region. If, for example, the region P Is defined by saying that

P0001 = 0177, then P0002 = OI78, P0003 = OI79, etc. Going the other

direction, that same definition also implies that P0000 = OI76, P9999 = 0175, P999S = 0174, etc.

2.1.6.2.1. REG, Regional Designator

For each region used in the program, there must be an REG card

defining the region. It must appear before the first regional address

of that region, and it is normally put near the start of the code.

The two varieties of REG card are shown In figure 1. Although

columns 26- 30 look like a regional address, the programmer must be

careful to realize that they are not.

The first illustrated REG card specifies that the regional address

P0001 is equivalent to OI77. It also causes location OI77 to be

reserved.
- 10 -

The second REG card specifies that R0001 is equivalent to 0101,

and it also reserves all locations from 0101 to 0110 inclusive.

Since it is rare for one to want to use a region consisting of

only one word, the first type of REG card is normally used in conjunction with an RBD card. Suppose, for example, region A is to extend

from 0800 to 1767, inclusive. One could use a card REG A0S00 1787, to

specify that A0001 = 0800, and to reserve from 0800 to 1787. This card,

however, takes an anuoyingly long time to assemble. Assembly may be

much hastened "by using two cards:

RBD 0800 1799

REG A0800

This also reserves 1788-1799* which are not needed; if it will crowd

the drum too much to leave them reserved, they can he unreserved with

a BIA card.

The four digits in the D ADDR column of an REG card can be any

number from 0001 to 9999 inclusive, although many of them would probably not be useful. The number 0000 cannot be used.

2.1.6.3. Blank Addresses

Addresses are normally left blank when the D or I address of one word is to be equal to the L of the next, and the programmer does not care what the address is. More generally, words for which L, D, and I are all given (e.g., constants) may intervene; also, pseudo-operations

and type 1 cards may intervene. The following description will help

explain the results which ensue when blanks are incorrectly used.

During forward processing, a blank D or I is filled optimally; and

if both are blank, I is made equal to D. A blank L is made equal to

the D or I that was last processed forward.

During backward processing, blank L is filled optimally, and blank

D or I is made equal to the blank L that was last processed backwards.

Although a constant may follow a word with blank I without error

in assembly, such an arrangement might impair optimization. If a con- stant is encountered during a forward search for a fixed address, the

search will be abandoned. Usual practice is to put the constants at

the end of the segment in which they are encountered, since the type

1 card at the start of the next segment will In any case cause the

search to be abandoned.

When an equivalent is assigned to a blank address, the equivalent

Is reserved.
- 11 -

2.1.6.^. Symbolic Addresses

Any address that is not absolute, regional, or blank is a symbolic

address. A symbolic address is assigned a drum equivalent when it is

first processed; thereafter, the same equivalent is used, unless it is

redefined (see EQU, SIN) or cleared out of the symbol table (see RED).

When an equivalent is assigned to a symbolic address, three things

happen: (l) That location is reserved to prevent conflicting use.

(2) The symbol is stored in the symbol table. (3) The equivalent of

the symbol is stored at a corresponding place in the equivalence table.

By use of SYN or EQU, it is possible to preassign or reassign the

equivalent of a symbol

.

2.1.7. Columns 31 and 37; Indexing Tags

When a program is being prepared for a 6 50 equipped with, indexing

registers, it is not necessary to add the multiple of 2000 or 200 to

the absolute address; and for best optimization, you should not do so. A "tag" is put in column 31 or 37 indicating which index register is to

be used with a particular address. Permissible tags are 1,2,3, respectively, or A,B,C, respectively, or even J,K, L. The assembly uses the

digit-punch only; or, if the column is blank, it uses zero.

The only types of address that could usefully be indexed are absolute or regional. Since indexing is for the purpose of access in turn

to locations having a definite relation to each other, there are no circumstances under which it would be useful to index a blank or symbolic

address, and IS0PAR ordinarily does not do so, even if a tag is provided in the input code.

IS0PAR decides whether the address is drum (add 2000, 4000, or 6000 for indexing) or core (add 200, ^00, or 600) solely on the basis

of whether the given address is less or more than 19992"• No check is

made on whether the uniniexed address might erroneously be in the

ranges 2000-8999 or 9060-9999.

In the tagged example shown in figure 1, if region P is as defined

by the REG card above it: P0001 = 0177; P0000 = OI76; tag A causes

addition of 2000, and the D address of indexed word comes out as 2176.

2.1.8. Columns 33-75 > Remarks

Every card may have remarks punched in columns 33-75> explaining

the purpose of the card. These remarks are not used in assembly, but

show up if the cards are interpreted or listed. The remarks may be as extensive, within these limits, as suits the fan3y of the programmer.
- 12 -

The dotted vertical line in the coding form shows where the re- marks must end if they are written on an elite typewriter. In figures

1-2, the remarks overrun the line; they are not actually being punched

in cards, but the space is used only to describe the card.

2.2. Relocatable Library Subroutines

A relocatable subroutine consists of a number of type-2 cards, and

one or more REQ, cards. At times, it also includes an R3R card and one or more type-1 cards.

The type-2 cards are written in absolute language, and are usually

optimized better than can be done by any optimizing routine. This is

warranted, as a rule, because the same subroutine will be used many

times.

In all, three pseudo-operations pertain to relocatable subroutines.

The cards for relocatable subroutines are normally put near the

beginning of the input deck, preceding all cards for which addresses

are assigned optimally. This is necessary so that the locations to

which addresses are relocated will not have been assigned by ISOPAR to

other purposes before they are reserved during relocation. It would be

possible to use a BLR card to reserve the space for the subroutine, but

that is an unnecessary complication.

2.2.1. Format of Relocatable Cards

Each card is identified by a 2 in column 17 . It may also have an

X in 17, if the output word is to be negative.

All addresses must be absolute, and may be either drum or core.

Normally, drum and core addresses would be relocated by different

amounts. Any relocatable address less than 2000 is interpreted as

drum; any relocatable address exceeding 1999 is interpreted as core.

If an address is not to be relocated (e.g. the D address of operation 30 or 50, or the D or I "address" of a constant), the fact is Indicated by putting some non-blank character in the left-hand position

of the address. Most commonly, the letter "F" is used, signifying

"fixed."

Such an address (see figure 2) resembles in form a regional

address, but it is quite different. In fact, F0002 may have three

quite different interpretations according to the type of card.
- 13 -

In an ordinary card, it signifies the second word of region F; in an REG card, it signifies that thereafter regional address F0001 = 0002;

in a type 2 card, it signifies that the address is 0002 and that it is

not to he relocated. In this last use, the first character may he a digit, a letter, or a special character, all of which produce exactly

the same result. These three uses of F0002 are shown in figure 2.

A D or I address may he tagged for indexing, as in normal cards.

An indexed drum address could not he written as, say, 2030, because it

would then be relocated as a core address, not drum.

If L, D, or I is a relocated drum address, that location will be

reserved. Hence, it is not necessary to reserve locations for a re- locatable subroutine, provided it is assembled before the program

starts assigning locations optimally.

Subroutines prepared for SOAP II may be used with IS0PAR by re- producing the cards, provided they meet the conditions mentioned in

4.1.1. In reproducing, columns kl and k2 are combined into 17, and

columns ^-3-72 are reproduced into 18-^7 • The resulting subroutine will

have some superfluous cards, since in SOAP II it is necessary to re- serve specifically all "temporaries."

2.2.2. KEL, Relocation Indicator

In this pseudo-operation, columns 27-30 show the amount that is to

be added to each drum address, whether L, D, or I: columns 33-36 show

the amount to be added to each core address. For example, the first

REL card of figure 2 would add 1200 to each drum address, and 0010 to

each core address. If either of these fields is blank, it is interpreted as zero, as in the second illustrated REL card. These relocation amounts must be positive.

An RSL card applies to all type-2 cards which follow it until

another REL card is reached. Normally, the REL card will be placed

immediately before the subroutine to which it applies. In any case,

every subroutine must be preceded by an REL card.

If a relocated drum address exceeds 1999, or a relocated core address exceeds 9059, it will be left blank in the output. No check is

made, however, on whether a relocated core address is less than 9000*

2.2.3. REQ, Relocatable Equivalence

Every, relocatable subroutine must include one or more REQ cards;

they do not have a 2 in 17. REQ is similar to BQU (2.3.5), but differs

from it in two respects: (l) I must be an absolute address; (2) The

I-address is modified by adding to it the amount indicated by the last

REL card.
- 124- -

For example, the first REL card shown in figure 2 causes all drum

locations to he relocated "by 1200. If the entry to the subroutine is

0000 in the unrelocated subroutine, it must be 1200 after relocation.

This is accomplished by the illustrated REQ, card.

Note that the ESQ cards are part of the standard subroutine. On

the other hand, the REL card is prepared by the person using the subroutine on the particular job. REL must precede the entire subroutine,

including the REQ cards.

2.2A. RBR, Relocatable Block Reservation

This is like BLR, except that the reserved block is relocated by

the amount indicated by the preceding REL card. This pseudo-operation

was retained from SOAP II, where it had a use because relocated D and I

addresses were not reserved. It is probably useless in IS0PAR.

2.3. Other Pseudo -Operations

2.3.1. ALF, Alphabetic Word

This is the only pseudo -operation which gives rise to a word of

code. It is used to facilitate entering information which is to be

punched alphabetically by the object code.

The quantity whose alphabetic equivalent is to go into the object

code is entered under D ADDR. Unier any ordinary circumstances, it

will be necessary to specify the location in 18-22. An ALF card is

ordinarily a constant, and is so designated in column l6.

The first ALF card in fig-ore 2 will cause the number 00 6l 87 00 00

to be put into location 0013, and the latter is reserved because it is an absolute L„ The second ALF card will cause 00 00 00 00 00 to be put

into the location whose symbolic address is PQ, which must already have

been defined.

An ALF card may be negative. It Is sometimes necessary to make an alphabetic word negative when printing with an on-line hO'J, the sign

being used to control printing. Also, for punched output, it might be

desired to have the sign punch in some non-alphabetic column.

2.3.2. BLA, Block Availability

This pseudo-operation causes a block of the drum to be male available, regardless of whether it was previously available or unavailable.

Its format is identical with that of BLR.
- 15 -

The usual use of BLA is in connection with RBD. Suppose, for

example, it is desired to reserve O8OO-I698. This could he done with

one card, BLR 0800 1698, hut the operation will he much faster if two

cards are used, namely

RBD 0800 I699

BLA I699

Unless the dram is to he tightly packed, one would omit the second

card, and let 1699 stay reserved.

A BLA card is not needed at the start of the assembly, since the

entire dram is made availahle during initialization .

2.3.3. HED, Symhol-Tahle Clearer

This pseudo-operation is used to clear out of the symbol table all

of the symbols which are used in just one segment of the program. This

serves a triple purpose: (l) It is much easier to use a mnemonic

symbol such as LOOP if it can he erased from the symbol table at the

start of each segment of code. (2) It reduces assembly time by cur- tailing the search. (3) In some cases, it may be necessary to erase

some symbols in order to have room in the symbol tahle.

Symbols are divided into two categories: "Long" symbols, which

have a non-blank character in the right-hand position; and "short"

symbols, which have the right-hand position blank. Whenever a BED card

is read, all short symbols are deleted from the symbol table, but long

symbols are left unchanged.

It will he noted that a "long" symbol might consist of hut one letter or digit, provided it is right -justified.

It is customary to use a EGD card Immediately after each type 1

card (2.1.2), unless there is a specific reason for not doing so.

2.3.4. SYN, Synonym

This pseudo-operation causes the symbol written in the D ADDR

position to he assigned the equivalent of the I ADDR. The latter may be

absolute, regional, or symbolic; if regional or symbolic, it mast previously have heen defined.

Common uses of this pseudo-operation are: (l) When two different

symbols are used in writing the code, and it is later decided that they

ought to he the same.. Use of SH makes it unnecessary to go through

and change one each time it is used. The SYW card mast, for this use,

appear after one of the symbols has been defined, but before the second
- 16 -

is used. (2) A symbol may be used for mnemonic reasons, but it is

necessary to relate it to other addresses; this is done by a SYN card

in which I is absolute or regional. (3) Occasionally, as in ISOPAR

itself, symbolic temporaries which would otherwise have different

values are given the same absolute value to conserve drum space.

If a symbol has been previously defined, it can be redefined with

a SYN card, but this feature is seldom useful.

SYN works as follows: The I address is interpreted to give its

absolute equivalent. The symbol in the D address is then made equal

to that value. The absolute value of the I address is then reserved if

(as is usually the case) it is a drum addressj if not, the reserving

procedure is skipped

The SYN card of figure 2 will cause right-justified X to have the

value 0100, and 0100 is then reserved.

2.3.5» EQU, Equivalence

EQU produces exactly the same result as does SYN, which was just

described. The reason for having two symbols is to minimize the con- flict with SOAP II, where the two symbols worked differently as regards

reserving. In practice, it appears that there is never any objection

to reserving, although usually the location will already have been re- served. If in some rare case, the location must be left unreserved,

the EQU or SYN card should be followed by a BLA card.

For example, the EQU card of figure 2 will cause the symbol AIPHA

to be given the value previously determined for a left -justified BETA.

Tills location will then be reserved, if BETA Is less than 2000.

2.3.6. BOP, Beginning of Program

This pseudo-operation makes it possible to assemble two or more

programs with a single reading of the ISOPAR code. A BOP card is

placed between each pair of programs . In reproducing from input to

output, note that, as its name implies, the BOP card is to be considered as belonging to the second code.

A BOP card at the starb of the first program would be redundant,

since the same presetting steps occur initially without a BOP card.

2.3.7. PAT, Punch Availability Table

The availability table, described in 5*2.3, is a 200-word table

used by ISOPAR to remember which drum locations are available. The

pseudo-operation PAT could be used at any time during assembly to cause
- 17 -

a punch-out of the table, hut in practice it is not likely to he

wanted except at the end of the assembly.

The output consists of $6 cards, each showing the k availability

words of one dynamic level. Sach card also contains k words to facilitate identification of the h availability words. The output has Y in

column 17 (see 2.1.2), and may be listed on the same 4-07 control panel

as is used for listing the ISOPAR input or output.

For example, the 13th card of the table shows the availability of

all locations whose addresses are = 12 (mod 50 )• The first 10 columns

are punched 00 0012 0462; the next 10 columns show the availability of

locations 0012, 0062, 0112, ..., 0462, respectively, where a 1 means

"available" and a means "unavailable." Similarly, card columns 21-30

are punched 00 0512 0962, and columns 31-40 show the availability of

0512 (50) 0962. The rest of that level is similarly shown by the rest

of the card.

2.4. 800X Instructions

Sometimes a card is inserted in which the location is an address

such as 8002. Such a card will not stop the machine, but it is not

used in optimizing the program.

3. ISOPAR Processing Instructions

This section discusses the actual technique of processing a sym-

.

bolic code, once it has been written and punched into cards.

3.1. Assembly on the 65O

3.1-1. Input Card Arrangement

IS0PAR deck: This is a 7 P er card condensed deck. The cards are identified by serial numbers in columns 4-6, from 001 through

I89.

Input deck which is to be assembled: Usually, but not necessarily,

all of the pseudo- operations except HED are put at the start

.

These are followed by standard subroutines, and then the main

code. Sometimes the order of the main code may be altered from

the logical order, to improve optimization, for either or both

of two reasons: If the parts done most frequently appear first,

certain temporaries in the most-used part will be assigned

locations to fit those parts, instead of to fit other places where

they are used less often. Occasionally, such inversion is useful

to give the most-used parts first choice of available locations.
- 18 -

Other input programs, if any, provided each of the latter is preceded

by a BOP card.

Three blank cards, if desired, to avoid need for using End-of-File key.

3.1.2. Operation of the 650 Console

Storage Entry Switches: 70 1952 9xxx.

Control Switches: STOP ROW ROW PROGRAM STOP STOP, respectively.

COMPUTER .RESET

PROGRAM START.

At the end of the assembly, it stops while trying to do operation

TO.

If you wish to punch out the availability table, but have not included a PAT card, send control to 0010.

The starting point for performing the code is 0100, but transfer

to that point is automatic.

Figure 3 shows the control panel to be used in the 533*

3.1.3. Programmed Stops

IS0PAR includes a number of programmed stops which would indicate

defects in analyzing the different problems to be encountered. The

only stops which are likely to occur are:

0111: Symbol table full. PROGRAM START will continue assembly,

leaving a blank where a symbol has no equivalent. Each time an

undefined symbol appears, the machine will stop again, until such

time as a HED card clears part of the symbol table.

0222: Drum packed; i.e.,. no locations are available for blanks or new

symbols. PROGRAM START will continue assembly, leaving blank any

addresses which cannot be filled.

3.1.4. Other Stops

The most common stop occurs when a blank card is inadvertently

put into the input deck. The minimum permissible punching is either a

1 in 17j with the other columns blank; or digits in 2^-25, with the

other columns blank.

If IS0PAR tries to process a blank card, the computer stops with

the two middle digits of the distributor blank. The safest thing to do

is to start over.
- 19 -

If an MDF operation (see 5«l-l«(b)) has blank D, the machine stops

with 00 0^0^ 9998 in the program register.

3.1.5. ISOPAR Output

The output of the assembly routine consists of the assembled

"object code," at the rate of one word per card. The format is as follows

1-k Location.

5-l4 Code word; X overpunched in Ik if negative.

15 Control X.

76 Possibly a number to indicate a defect in the input

code which made complete assembly impossible,

as follows:

3: An EQU or SYN card with blank or undefined I.

7: L-address missing.

8: D-address missing.

9*. I-address missing.

The following are some of the causes of missing

addresses: Availability table full (i.e., no address

available as equivalent to new symbol or blank

address); symbol table is full, and there is no place to store the equivalent of a new symbol (remedy: use more HED cards); an absolute L address

with an impossible value (e.g., 3168).

77-80 Card number. Only even numbers are used, to permit

insertion of corrections.

There is a one-to-one correspondence between input cards and output cards, except for the availability table, if any. There must,

therefore, be an output card for each input card that is not a code

word, as well as for those that are. To permit the output code to be

read into the 65O, these extra cards must be readable by it. To do

this without damaging the code, it is provided that each such card have

0000 01 0000 0000 in l-li+, with an identifying X in 9.

This puts a Stop order into 0000. It is well-known that it is

undesirable to have a word of the code in 0000, as a check in case the

program accidentally goes to a zero word. It is necessary to reserve

0000 before assembling the code, so that it will not be used elsewhere

in the code; if there is an KBD card, it automatically reserves 0000.

If, perchance, the code is permitted to use 0000, the X-9 cards must

be sorted out before the code is used.
- 20 -

3.2. Reproducing Input Into Output Cards

It is customary, after the 650 run is completed, to reproduce

columns 16-75 from the input cards to the output cards, so that one listing may show both input and output. A permanently wired Reproducer

board for this purpose is kept on hand.

After those columns are reproduced, either the input cards or the

output cards may he used to correct the symbolic code for later re- assembly.

3.3. Listing the Code

The input or output code maybe listed on a kO'J with the control

panel illustrated in figure h. The resulting lists are illustrated by

the l/card lists of the ISOPAR code.

The output is often listed three times; between lists, the cards

are sorted and the Alteration Switches are changed. Switch 1 is optional, N for double spaced and T for single spaced.

3.3»1. List 1, Logical Order

This set-up is also used to list the input code.

The cards are listed in logical order; in the output code, they

are in sequence by columns 'J'jSO, Alteration switches 2-6 are on N.

A type 1 card, signifying a heading to a new segment of the code,

is preceded by a wide space, caused by a program change.

An extra space is produced whenever L of one word is not equal to

I of the preceding word, in the symbolic code. An exception Is made

when both cards have K in l6. Hence, in following an assembled code,

you can be sure that the words rem in sequence so long as there is no

extra space.

Symbolic addresses which are left -justified are printed slightly

to the left of those which are not. This makes it easier to determine

from a listing which card columns are punched.

On a store operation, both the symbolic and the assembled Daddresses are printed out in special columns, under control of a 2 in

column 2k, These make it easy to see when something is stored, and

where

.
- 21 -

Sometimes an emitted legend prints near the right margin, as described in the following paragraphs. BYPASS and 3LANK print under

control of punches in column 76 ("3«l»5)j an'3- appear only in the output

code. NOTE prints under control of punching in columns 18-36, and

appears in the input code, or in the output code if the input code has

been reproduced into the output cards. (See 3*2.)

BYPASS means that a SYN or an EQU card could not be processed

because its I-address had not been properly defined.

BLANK means that L, D, or I is left blank because of one of many

possible defects in the symbolic code.

NOTE signifies any one of several conditions in the symbolic code,

which sometimes mean that an error was made in writing the code. Such

signals should be investigated. Subject to the exceptions in the next

paragraph, this word prints if any one of the following conditions

exists: (a) The preceding card had both blank D and blank I. (b)

Preceding card had blank I, and this card has non-blank L. (c) Preceding card had non-blank D and I, and this card has blank L.

Even if one of those conditions does exist, NOTE does not print

if any one of the following conditions exists: (a) Pain-out, and no card is printing, (b) Card has 1 in column 17. (c) Card has blank

column 25. (d) Card is punched in column 23. (e) Preceding card was

punched in 23. (f ) Preceding card had blank 24.

3.3.2. List 2, By D-Address

Sort the cards on 7~10, and remove X-9 cards. Set Alteration

Switches 2-6 on T.

The cards are listed in sequence by D-address, with an extra space

whenever the D-address changes. This list is used when it is necessary

to examine the uses made of a particular temporary location. Some of

the cards for which the D-address is not a true address are omitted

from the listingj namely, cards with K in l6, and cards with operations

00,30,01,31^05^35^06^36. When a card is so omitted, the spacing, including the extra space for change in 7-10, is handled as if the card

did not exist,

3.3*3 • List 3 j By Location

For this list, sort the cards on 1-4. Set Alteration Switches

2-4 on T, and Switches 5-6 on N.
- 22 -

This lists all cards, in sequence "by location, uniformly single or double spaced. It is used for studying what was initially in each location. By comparing lists 2 and 3, it is possible to study all uses

made of any location, except instances where it is reached by modifying

an address (with index registers, or otherwise).

k. Relation of ISOPAR to SOAP II

k.l. How to Use ISOPAR, If Already familiar with SOAP II

In most respects, coding for ISOPAR is done exactly as for SOAP II,

and a SOAP II symbolic code could be reproduced into different columns

for use with ISOPAR. The exceptions fall into two categories: First,

changes in coding procedure which must be made in order for the symbolic

code to work; second, changes which are permissible, and knowledge of

which will facilitate coding.

To reduce programming conflicts with SOAP II, it is provided that

any pseudo-operation used in SOAP II will have meaning, although in

seven cases the meaning is somewhat different from the SOAP II meaning.

In addition, ISOPAR uses one new pseudo-operation.

^-.1.1. Necessary Changes in Programming Methods

A person familiar vd.th SOAP II code-writing must take the following differences into account to write an ISOPAR code:

(a) All operations must be numeric.

(b) Symbolic addresses are not allowed in type 2 cards (relocatable subroutines). They are, of course, used in REQ, cards.

(c) Minus signs must be X-puaches. (SOAP II permits any punch.)

In ISOPAR, the sign appears in the same card column as does the card

type.

(d) EQ.U and SYN produce identical effects: They reserve the location in question if it is a dram location, bat do not try to reserve

otherwise.

(e) In type 2 cards, any non-blank character as the first character of an address makes ths address fixed. An address is identified as core or drum solely by its magnitude before relocation.

(f

)

Although HED has a quite different meaning, a SOAP II code

with HED cards will work with ISOPAR uiless a symbol headed in one segment is referred to in another segment.
- 23 -

(g) On a long code, it -will probably be essential to use BED

cards and "short" symbols, lest the symbol table overflow. (With SOAP

II, HED serves only to prevent duplication of symbols.)

(h) Location 0000 must be reserved, unless the X-9 cards are to

be sorted out before the code is used. This is no hardship, because

0000 should never be used in the code anyway, (if RBD is used with

IS0PAR, it automatically reserves 0000.)

(i) A card su-h as REG A0000, where 0001 of the region is to be

location 0000, is inadmissible.

(j) IS0PAR does not now provide for fading an availability table

back onto the drum. This feature was in the program for two years, but

no use for it was found. (With SOAP II, some users make up availability

tables and load them initially as a quick method of reserving large

blocks of memory; but with IS0PAR, pseudo-operation RBD accomplishes

the same thing more conveniently and expeditiously.

)

i^.1.2. Permissible Changes in Programming Methods

In addition to the changes listed in the preceding section, those

familiar with SOAP II should note the following differences between

SOAP II and IS0PAR, soms of which will materially simplify programming.

(a) A new pseudo-operation, RBD, greatly shortens the time re- quired to reserve large blocks of memory. It is explained in 2.1.5.2.

(b) BLR, REG, RBR, or BLA may have blank I-address, if only one location is to be reserved or unreserved.

(c) S'YU may have a non-drum address in its I-position. With SOAP

II a non-drum I causes trouble; with IS0PAR, it merely omits reserving.

In IS0PAR, EQU and SYN are identical.

(d) The function of BED has been changed. In IS0PAR, it clears

out of the symbol table all symbols which are not right -justified. RED

cards must be used in a long code, lest the symbol table become full;

they should be used rather frequently, for the reasons given in 2.3.3*

Be sure that the right-hand character in any symbolic address is blank,

unless the symbol is actually used in more than one segment of the code.

(e) Comments and remarks may be longer than with SOAP II. They

may include any characters which the kO'J will print, even those not

acceptable to the alphabetic input of the 65O.
- 2k -

(f ) An address may consist of any combination of 5 characters

acceptable to the alphabetic input of the 650, as explained in 2.1.6.

The following examples illustrate the differences between SOAP II and

ISOPAE in this respect:

Address SOAP II Interpret:

Blank

ation "CSOPAR Interp:fetation

bbbbb Blank

C0001 Regional Regional

GOOOb Symbolic Symbolic

bl23^ Absolute Absolute

bl23b Stops machine Symbolic

bABCD Ab s olut e , namely

,

123^ Symbolic

bABCT Stops machine Symbolic

bbbbl Stops machine Symbolic

Ibbbb Symbolic Symbolic

(g) There is no need in ISOPAR to write out cards having L in the

800X series, and such sards do not affect optimization.

(h) An absolute L address is reserved. If .constants or other

words with absolute locations are put at the start of the code, it is

unnecessary to reserve their locations separately.

(i) When a type 2 card is processed, any relocated address is

reserved, whether L, D, or I. (SOAP II reserves only L. ) This change

probably renders RBR obsolete.

4.1.3. Some Comments on ISOPAR Which Also Apply to SOAP II

There are a few places in which ISOPAR follows SOAP II, but the

SOAP II manual is obscure or even incorrect. The following remarks

aPPly to both of these assembly routines.

A word with blank D-address or I-address is normally followed by

a word with blank L, and the assembly routines put the same absolute

address into the two places. It is not essential, however, that the

words be consecutive: They may, without error, be separated by type 1

cards, by pse ado -operations, or by code words in which L, D, and I are all non-blank. For ISOPAR, however, better optimization may oscur if

constants are put at the eni of a segment rather than immediately after

the references to them, because a constant encountered during a forward

search will initiate the QUITT routine (see 5.1 ).

On pseudo -operations BLR, BLA, RBR, and SYN, a location is reser- ved or unreserved regardless of its previous status.
- 25 -

With an KEG card, two distinct steps are involved. E.g., with REG

A0175 0225, first 0175 is recorded as the equivalent of the regional

address A0001, without reference to the size of the region. Then 0175

through 0225 are reserved, just as if it were a BLR card. This makes

it clear why regional addresses have significance whether or not they

are within the region originally reserved by the REG card.

A regional address may he made negative, by using complements;

e.g., A9936 is an address 65 smaller than A0001.

The meaning of a regional address can be changed. This is done in

me SOAP II manual: on page 87, REG DO923 0923 specifies that D0001 = 0923. On page 89, D0953 0953 means that thereafter D0001 will equal

0953 instead. It is necessary that the proper reservations be made

initially, as is done on page 65.

The first character of a regional address must be a letter. An

address whose first character is a digit or a special character (with a 65O designed to read special characters) is interpreted as symbolic.

An REG card in which the first character of the D-address is blank,

numerical, or special character, will not define a region; but it will,

nevertheless, reserve the specified interval. E.g., the two cards

BLR 0030 0070

REG 0030 0070

do exactly the same thing; namely, reserve from 0030 to 0070, inclusive.

BLR could be abolished entirely; but to do so would not shorten ISOPAR

by even one word.

k.2. Improvements in Optimization

There are a number of features in which ISOPAR optimizes a program

better than does SOAP II:

(a) The main improvement is in discontinuing forward processing

when a variable -length instruction is reached, and searching for a fixed address from which to optimize backward.

(b) A defect in optimization of indexed operations has been re- medied. E.g., in SOAP II the symbolic word

0200 69 ABC 0031 A

is assembled with ABC = 0003, if the first choice is available. Since,

however, one word-time is spent in interpreting the indexed I-address,
- 26 -

before it starts bo perform the instruction, ABC should be 0004 (mod

50), and that is the value which ISOPAR supplies for it. This saves

49 "word-times in the performance of such very rare instructions.

(c) When an add or subtract instruction. has a D-address of 8001,

the time required is, on the average, one word-time less because the

word is already in the distributor. ISOPAR optimizes to utilize this

saving

.

(d) An indexing operation (50, 51* 80, 8l, etc.) takes an extra

word-time when a complement cycle is required. SOAP II allows an ex- tra word-time under all conditions; ISOPAR saves it for those cases for

which the complement cycle never occurs: I.e., operations 80, 82, 88,

when the D-address is OOOO-I999.

if. 3. Available Drum Space for ISOPAR Program

SOAP II uses 196'4 locations. The remaining 3^ were not enough to

meet the requirements of the exbra steps involved in ISOPAR.

A considerable number of locations were made available by the innovation mentioned in 3*2: transferring input to output by Reproducer,

not through the 650. This saves not only the transferring instructions,

but also other words from the fact that input and output did not have

to be packed so tightly.

Additional words were saved by more efficient writing of the code.

For example: subroutines h,5, 6, 8, 9 of SOAP II were combined into one subroutine. A more efficient method of getting into subroutine 7 was

used. The exits from various subroutines were combined into subroutine

10.

To make additional space, two features of SOAP II were dropped:

(a) ISOPAR does not provide for symbolic addresses in relocated

cards (type 2 cards). This is probably not a serious loss, although

it may on rare occasions cause inconvenience.

(b) ISOPAR does not provide for symbolic operations. Since some users may regard this as a serious loss, the point will be argued briefly. Any user of the 650 must learn the numerical codes anyway, if only

to interpret the signal lights on the machine, or the results of a tracing routine. The three-letter codes used in SOAP II are much less

mnenO'-Tiic than the variable -length letter codes originally proposed by

IBM; yet the user must learn them exactly, and not err by using the

wrong letters. The result is that the user must learn exactly two ar- bitrary names for each operation, namely, the numeric and the symbolic.
- 27 -

By using only numerical operation codes, the problem of learning to

code is actually simpler than if one must learn both systems. This

change saved considerably more than the 100 words omitted from the

symbolic -operation table.

All of these changes, however, did not make enough drum space

available. Consideration was given to reducing the symbol table from

^00 to 300 words. It was found, however, that 300 would often be too

small; for example, IS0PAR itself uses more than 300 symbols.

In order to make the necessary dram space available, a fundamental

change was made in the method of using the symbol table, with a con- comittant change in the operation of a HSD card. These changes, ex- plained in the next section, made it feasible to cut the symbol table

still more, and it now contains only 210 locations. ISOPAR has been

used successfully for two years, and no instance of insufficient space

in the symbol table has occurred.

k. 3.1. Use of the Symbol Table

In SOAP II, the spot In the symbol table where the code first

looks for a given symbol is a function of the 10 -digit value of the

symbol, the function being so chosen that changing any one character of

the symbol will give a different location. The search for that symbol

starts at that point, and proceeds upward. Ordinarily, within a short

distance, either the symbol is found; or a blank place is found, which

then receives the symbol. If the top of the symbol table is reached,

the search continues at the bottom; if it then gets back to the starting

point, the symbol table is full.

One obvious fact about symbolic addresses is that most of them are used only within a short range of the program. Only a few are used at

widely separated places. In recognition of this fact, SOAP II uses the

pseudo-op KED, which puts a specified character into the fifth place of

any symbol whose fifth place is blank; hence, different segments of the

code may be written without concern for duplication of "short" symbols,

provided the different segments are "headed" differently. A symbol

that is needed in more than one segment has its fifth character nonblank.

In order to obtain more space for the IS0PAR code, provision is

made for clearing the symbol table from time to time of symbols that

are used in only one part of the code; in this way, the symbol table

can be made shorter. But when this is done, the SOAP II method of

storing symbols cannot be used. Suppose, for example, the "function"

of a symbol is 175^- Suppose when the symbol is stored, 175o and 1757

are occupied; it is stored in 1758* Suppose that later 1757 is cleared

out. The next time this symbol comes up, the code would find a blank

at 1757; and :ooncluie that this symbol was not in the table.
- 28 -

Hence , ISOPAR needed a quite different method, and the following

was adopted: As in SOAP II, symbols used in only one segment of the

code should be "short" symbols; i.e., with their last position blank.

Symbols used in more than one segment should be "long"; i.e., with the

last position non-blank. In SOAP II, a short symbol is "Headed" by a HED card; in ISOPAR, all of the short symbols are cleared out of the

symbol table by a HED card.

Long symbols are stored in the symbol table starting with the

first cell of the table and working upwards . Short symbols are stored

starting with the top and working downwards. When a symbol is sought,

the code starts at the appropriate end, and checks each cell in turn

until the symbol or zero is found. To guard against the possibility

that the entire table become full, one cell is left vacant at each end;

when the search ends in a zero, a check is made to determine that it Is

in the middle, and not beyond either end.

By taking care to use long symbols only when necessary, and by

clearing out the short symbols at rather frequent intervals, the

search-time can be kept within reasonable bounds, although it will

usually be somewhat greater than with SOAP II.

k,h. Improvements in the 1+07 Control Panel

Although not a part of the code itself, the 1+0 7 control panel used

for listing a code is also important. The ISOPAR 1+07 control panel is

described in 3«3« Here, we mention briefly those features which are improvements over the panel shown in the SOAP II manual for that program: (a) Wide space above a type 1 card, (b) Extra space when L

does not equal I of previous card, (c) D-addresses of store operations

printed in separate columns, (d) Alignment -shift between addresses

which are left- justified and those which are not. (e) The legend

"NOTE" is printed on input code as well as on output. (With SOAP II,

the legend calls attention to errors only after assembly is finished.

)

(f ) Alteration switches provide for modifications of spacing for three

different lists, and for suppression of some cards on List 2.

5. Analysis of the ISOPAR Program

Throughout this analysis, when digits of a word are mentioned, the

digits are counted from left to right: The left-most digit is digit 1,

and the right-most digit is digit 10. This differs from the method

used in the 65O manual and on the console; but it agrees with the method

used in many other IBM publications, and is much more natural than

counting from the right.
- 29 -

5.1. The Optimizing Procedure

ISOPAR normally assembles a code by considering the addresses in

the sequence in which they appear. Usually, L is known from some previous word; D is determined at an optimum distance from Lj and I is

determined at an optimum distance from either LorD, depending upon

the operation. Then it goes on to the next word.

If, however, circumstances are such that it is impossible to optimize an address in this way, ISOPAR starts a "forward search" to find

some fixed address from which it can process backwards to the point at

which the search started. During the search, enough information must

be stored about each card to permit reconstructing it.

The forward search may be terminated in either of two ways: (l)

It may prove impossible to find a fixed address; then ISOPAR returns

to where it started the search, assigns an address more or less arbitrarily, processes the stored-up cards forward, and resumes normal processing. This is the QUITT routine. (2) It may find a fixed address,

whereupon the stored-up cards are processed backwards and the results

stored; then these resalts are punched forwards. This is the BACKW

routine. Thereafter, normal processing is resumed.

The different circumstances involved in these processes will now

be given in some detail

.

5.1.1. Circumstances Under Which ISOPAR Abandons Normal Processing

There are three conditions which cause ISOPAR to stop the normal

processing and start a forward search. At the time It starts the

search, it makes a note as to which condition initiated the search, because there are slight differences In the later assembly methods.

(a) When L is a symbolic address that has not been previously

defined. This is the start of a wholly new series of instructions.

Any assignment of this L at this stage would be wholly arbitrary.

Hence, it is best to look ahead for a fixed address, and work back.

(b) When a variable -length operation (called MDF operation),

sach as multiply, divide, . float, read, write, table look-up, Is en- countered. With most MDF operations, it does not matter whether the

abandoning occurs after D, or after L of the next word, since I of the

MDF operation may have any address whatever. However, operation 8^ is

different. Since L for that word is used after the table-look-up is

completed, the machine cannot start looking for the I-address until

after the operation is completed. Hence, for an Qk operation, normal

processing should be abandoned and the forward search started between

the D and I addresses. To simplify coding, the same procedure is used

for all MDF operations.
- 30 -

(c) When a D address is indexed (for use on a 650 which has

indexing registers). Sinoe an indexed D address refers to a variable

drum location, it is impossible to optimize the I of that word with

respect to it. Hence, it is better to go ahead to a fixed address and

work back to I. There is no need to start a forward search on indexed

I, because the following L will surely be either a fixed address or a new symbol.

5.1.2. The Forward Search

When a card is examined during the search, there are three possible

outcomes, which will now be discussed in detail.

5.1.2.1. Abandon Search (QUITT routine)

If it is impossible to find a fixed address to which to tie the

stored-up cards, ISOPAR abandons the search, returns to the point at

which the search started, assigns an initial address more or less ar- bitrarily, and processes the stored-up cards forward. The circumstances under which it does this are:

(i) Storage region for storing cards is full. The region

holds 15 cards

.

(ii) Another MDF operation is reached.

(iii) D is indexed; since its time of performance is variable,

it is impossible to optimize across it.

(iv) I is indexed, meaning that the next instruction is variable.

(v) Card is of type 1 or 2, or is a pseudo-operation. Normally

this is the end of a block, and will be followed by fixed L. (See 6.1

(e).)

(vi) An aidress is of the type designated as QUITT in ^."L.2.h.

5-1.2.2. Initiate Backward Processing

(BACKW Routine)

Should a fixed address be found before any of the conditions

listed in 5«1«2.1 occur, the search is successfully completed, and the

code starts processing backward. Addresses considered "fixed" for this

purpose are indicated in 5,1.2.k by BACKW.
- 31 -

5.1.2.3. Continue the Search

If nothing occurs to terminate the search, it continues to the

next card. In other words, the search continues if none of the special

conditions listed in 5.1.2.1 occurs, and if the address is marked ON in

5.1.2. I|-.

5.1.2 A. Tahle of Types of Addresses

The following tahle shows the different types of addresses which

may be encountered during the forward search, and shows, for each type,

whether the address initiates the QUITT routine or the BACKW routine,

or whether the search goes on. These decisions are subject to the

rales in 5»1«2.1, which prescribe other conditions under which the

search is abandoned.

Line

1 Blank

2 Regional,

3 Regional,

k Symbolic,

5 Symbolic,

6 Symbolic

,

7 Absolute,

8 Absolute,

9 Absolute,

10 Absolute,

Type of Address

region defined

region not defined

symbol defined before search started

not defined, but room in symbol table

not defined, symbol table full

0000-1999

8000-8003, 8005-8007 (called 300X)

9000-9059

other

D*

ON ON ON

QUITT BACKW BACKW

QUITT QUITT QUITT

QUITT BACKW BACKW

0W ON ON

QUITT QUITT QUITT

QUITT BACKW BACKW

QUIT! . ON QUITT

ON ON ON

QUITT QUITT QUITT

*D is examined only if it is an address, excluding, for example,

operation 30. Specifically, it is examined only if the first digit of

the optimizing addend (5.2.7) is non-zero.

In the following explanation of the items in this table, an item

is identified by its line number and column heading:

For lines 1 and 5> the address is wholly undefined, and the search

continues. For 8D and line 9> the address is defined, but its dynamic

level is not; therefore, the search continues for an address of fixed

dynamic level.

When a fixed D or I Is reached (2D, 21, k-D, kl, 7D, 71), the

search for a fixed address is successfully terminated, and we begin

backward processing.

A fixed L (2L, kL, JL) may be reached by the search only if the

previous D and I were unfixed. This means the start of a new block of

wordsj the previous block cannot be tied to anything, and we might as well abandon the search.
- 32 -

If we reach an address that cannot he processed (lines 3; &), the

job will have to he done over anyway, and the easiest way of finishing

it is best. •

For 8l, the location of the next order to he performed is variable, and there is little point in trying to optimize through it.

Therefore, the search is abandoned.

8L would indicate a mistake. If there were a word with SOOX in L,

it should follow one with 800X in I, and the latter terminates the

search. (iSOPAR does not encourage the use of cards with 800X in L,

and makes no use of them.

)

10L is a programmer's mistake, sinee L cannot have sach a value.

10D and 101 are normally parts of a constant. ISOPAR does not

attempt to optimize backward through a constant; rather, we QJJITT the

search upon reaching one.

5L is really two cases. If the undefined symbol is different

from any symbol used up to this point, it could just as well read

QUITT. More commonly, however, an undefined- symbol L would be a symbol

already encountered during the forward search, but not yet put into the

symbol table because it has not been processed. We might have, for ex- ample:

00i+7 19 0200

k$ Y

U6 X

20 Tl X X 20 0100

where 0100 is an address that has been fixed at the time operation 19

initiates a forward search. In this case, to QUITT and process forward

from 0200 would assign to X a value that would be unsuitable with re- ference to 0100, and it is best to pass through the X, and then process

backward from 0100. To simplify coding, it is provided that when L is

an undefined symbol, the forward search always continues, irrespective

of whether that symbol may have been encountered during the search.

The only circumstance under which this might detract from the optimization would be if the storage area filled up before a fixed address was

reached, but would not fill up had we started a new search with the

symbolic L in question.

5.1.3* Some Methods of Backward Processing

During forward processing ISOPAR uses the same procedure as SOAP

II: L is determined from some previous word; the optimum dynamic level

of D is derived by measuring forward from that of L, and an available
- 33 -

location at or above that dynamic level is found; the dynamic level of

I is measured from that of L or of D, according to the operation, and

an available location for I is found.

The procedure is more complicated during backward processing,

since there are several different cases. The program first examines

the D and I addresses to determine whether they are fixed; the method

of processing depends upon those two decisions, and also upon the type

of operation. In explaining this procedure, we first discuss the

methods of handling different types of addresses, and then consider the

question of what constitutes a "fixed" address.

5.1.3 «1« Sequence in VThich Addresses are Processed

The operations en30untered during backward processing ( since MDF

operations are excluded) fall into three categories:

(a) Those in which D is not an address to be optimized (insluding

all shift and indexing operations )

.

(b) Those in which D is measured from L, and I is measured from II These are considered under the name "arithmetic operations."

(c) Those In which D and I are both measured from L. These will

be considered under the name "branch operations."

The first backward card (the one which initiates backward processing) and the last one (the ons which initiated the forward search)

require special treatment, and will not be discussed here. For the

intermediate cards, the sequen.ce of processing the addresses is as follows

Shift or indexing operation: D forward, I backward, L backward.

Arithmetic operation, fixed I: I backward, D backward, L backward.

Arithmetic, fixed D, unfixed I: D backward, I forward from D,

L backward from D.

Arithmetic, D and I unfixed (An abnormal case, but could occur if

D and I are new symbols referring to some point later

in the program): I backward, giving an arbitrary

address, D. backward, I backward.

Branch, D and I unfixed (abnormal case): I backward, L backward,

D forward.

Branch, D unfixed, I fixed: I backward, L backward, D forward.

Branch, D fixed, I unfixed: D backward, L backward, I forward.

Branch, D and I fixed: Compute L backward from D and also from I,

and then use whichever dynamic level is lower, where
- 3^ -

"lower" must be interpreted with reference to a circular drum. This assures that if it branches

equally often to D and to I, the time required

will be a Tninimum.

5.1.3.2. Definition of "Fixed Address"

The definition of "fixed address" during backward processing is

not the same as during the forward search.

After we have processed a blank L "backwards, any blank D or I mast

be considered as fixed; for it will be the same as the L address of the

following word, which will have been fixed by the time the given D or I is reached.

Core I is fixed under the same conditions, for an analagous reason: Its dynamic level is the same as that of the following L, which has

already been determined. A core D address, with branch operation, is

fixed because it is normally associated with the L of the following

word if that is also core. A core D address with arithmetic operation

is unfixed, for it will work equally well at any dynamic level. It

would be possible to improve the optimization of segments of code involving core addresses by a considerable expansion of the code to take

a larger number of conditions into account. (See 6.1 (f).)

The full schedule of fixed-unfixed addresses may be found by studying the one per card code under "Backwards Routine," lines 696-73^- •

5. 1.3*3 • Optimizing Addends and Subtrahends

Words 0'300-0899 } shown in the one per card listing of the program

(lines 110-303), and described in 5«2.7> give the addends required for

forward optimization. Two addenis are given, which are often equal,

and never differ by more than one. The first addend is used if the

augend is even; the second if the augend is odd. The following exam- ples illustrate how they work:

Augend Addends Re s alt

0000 5^4 ~ 0005

0001 5>4 0005

0002 54 0007

0003 5

;+ 0007

0000 ^3 0004

0001 ^3 000'+

0002 ^3 0006

0003 ^3 0006
- 35 -

Now look at this table from the point of view of backward processing. For the case where the addends are 5k, if we start back from 0005

we could go to either 0000 or 0001; but since optimization now requires

that the result be as large as possible, we take 0001. If we start

with 0007, the result is 0003 . If we start with 0006, we see that 0002

is too large, since going forward from 0002 gets us to 0007; therefore,

going back from 0006 we must take 0001. I.e., in this case, the first

part of the table becomes:

Minuend Result Subtrahends

0007 0003 55

0006 0001 5k

0005 0001 5k

where the subtrahends were determined to fit the result to the minuend;

the first subtrahend is used if the minuend is even, and the second if

it is odd.

Similarly, from the second part of the addend table, we get:

Minuend Re suit Subtrahends

0006 0003 3^

' 0005 0001 3^

000U 0001 3k

Thus, when the addends for forward processing are 5k, the subtrahends for backward processing are also 5k; but when the addends are 43,

the subtrahends are 3k. By considering all cases, It is found that if

the larger of the addends is odd, they are used unchanged as subtrahends; if the larger is even, they must be interchanged. For use on an automatic computer, the formula is: If the two addends be called

ab, compute the remainder of (a + b + l)/k. If this remainder is zero,

the subtrahends are ba; otherwise, they are ab.

5.1.

3

'k. An Example of Backward Processing

Consider, now the example given In 5.1.2.4. In the last word, D

Is fixed. Since the operation is 20, L is measured backward from D,

and I is measured forward from D. Assuming throughout that ISOPAR's

first choice is available, X = 154-5, and the last I = 0003 . The five

words now read, inserting values already derived:

001+7

15^-5

19 0200

k5 Y

k6 15^5

20 Tl 1545

20 0100 0003
- 36 -

In -word k, I is now fixed. D is measured "backward from I and L is

measured backward from D. Deriving optimum values, and inserting them:

001+7 19 0200

^5 Y

k6 1537 15^5

1537 20 1542 15U5

15^5 20 0100 0003

Both D and I of word 3 are now fixed. By the last rule of 5«1«3«1> we find that L measured from D would be 153^- > and measured from I it

would be 15^-1. Using the lesser value we now have:

00U7 19 0200

h5 153^ Y

1534 k6 1537 15^5

1537 20 15^2 15^5

15^5 20 0100 0003

Finally, word 2 is a branch operation with D fixed. Measure L

"backward from D, and I forward from L:

001+7 19 0200 1531

1531 45 153^ 0035

1534 k6 1537 15^5

1537 20 15^2 15^5

1545 20 0100 0003

5-2. Memory Allocation

The one per card listing of the IS0PAR code shows, near the beginning, the locations of various blocks of memory assigned to particular purposes. Some of these are discussed in the following sections.

5.2.1. Input Region

The following list shows the read-in schedule. The absolute

addresses are 0151-0160. Words 1-3 are alphabetic; the others are not.. When a card column is shown as 0, it means that a zero is emitted into

that position of the word.
Regional

Address

ROOOl

R0002

R0003

WOOk

R0005

R0006

- 37 -

Card Columns, and Explanation

18-22. L, alphabetic.

26-30. D, alphabetic.

32-36 I, alphabetic.

Emitted 00000 00008 if X-17 (negative word).

Emitted 00000 00000 otherwise.

31 2k 25 37 0. Indexing tags, and operation.

If 31 or 37 is blank, it is replaced by an emitted 0.

Unused

.

R0007 19 20 21 22. L, numeric, often invalid.

R0008 27 28 29 30. D, numeric, often invalid.

R0009 33 34 35 36. I, numeric, often invalid.

R0010 0000000 0, followed by the 2 -digit card type,

Shortly after the card is read, control goes to R0010, whereupon

the card type becomes the entry to a particular segment of the routine.

The 533 control panel determines this type as follows: If column 17

contains a 1 or 2, that digit preceded by is the card type. If 17

lacks 1 and 2, but 23 is punched, then the digit punches (1-9) of 23

and 25 are the card type. If neither of these conditions exists, then

08 is used. The full list of card types is as follows:

01 1 in c.c. 17; i.e., comments card.

02 2 in c.c. 17; i.e., relocatable subroutine.

08 Ordinary card of the code.

l6 ALE, Alphabetic word.

21 BLA, Block availability.

25 SYN, Synonym.

27 BOP, Beginning of program.

29 BLR, Block reservation.

5k EQU, Equality.

73 PAT, Punch availability table.

8^ HED, Symbol-table clearer.

93 REL, Relocation Indicator.

9k RBD, Reserve band.

97 KEG, Regional designator.

98 REQ, Relocatable equivalence.

99 RBR, Relocatable block reservation.
- 38 -

5.2.2. Output Region

For most output cards, the output region is used as follows:

P0001-4 Not used for punching.

P0005 Card number. Punches into 77-80.

P0006 Location of the assembled instruction. Punches into 1-4.

P0007 OP, in positions 5-6. Punches into $-6..

P0008 D, at right end of word. Punches into 7-10.

P0009 I, at right end of word. Punches into 11-14.

P0010 Control information, as follows:

Position 1: A card that is not part of the code; i.e., type 1, or a pseudo-operation other than ALF. Causes 0000 01 0000

0000 to punch into 1-14, with an X in 9.

Position 3

Position 5 Position 7

Position 8

Posit ion 9

Causes a 3 to punch in column "j6 . (See 3»1«5«)

Activates Punch B. (See below)

Causes it to omit punching L, and to punch 7 in T^.

Causes it to omit punching D, and to punch 8 in "j6.

Causes it to omit punching I, and to punch 9 in 7^«

Position 10: Word is negative. Causes X to overpunch in 14.

All of the jards have a control X punched in 15

.

When an ALF card is processed, words 7,8,9 may hold other digits

in addition to those described above, but they are not punched and do

not affect the result in any other way.

When Punch B is activated (8 in position 5 of word 10 ), the availability table (2.3.7) is punched. Ten columns are punched, respectively, from each of words 1,2,3*4,9*6,7,8. (Word 5 is not used, to make

it possible to carry the card number through such a punch-out.)

5.2.3. Availability Table

The availability table "remembers" drum locations used by the program which is being assembled, and those still available for use. The

table contains 200 words, or 2000 digits; each digit shows the status

of one memory word: = unavailable; 1 = available. The 10 digits of

the first word of the table show the status of, respectively, 0000,

0050, 0100, ...,0450. The second word shows the status of 0500, 0550, .

.

0950. The fifth word of the table shows the status of 0001, 0051,

0101. . .,0451, etc. With this arrangement, when we have determined the

dynamic level which ought to be used for a blank address or a new symbol, we can tell whether any such address is available by zero-testing

four words. If those four words are all zeros, we continue in the

proper direction and use the nearest word that is available. In any

case, when a non-zero availability word is found, the first non-zero

digit of the word is used.
- 39

Suppose we need a location of dynamic level 12. If we are processing forward, the choice goes, in sequence, 0012, 0062, 0112,...

1962,0013, OO63,... I963, 0014, etc. But if we are processing backward, the sequence of choice is more complicated: 1512, 1562, . . .1912,

1962,1012,1062, . . .1462,0512,0562, . . .,0962,0012,0062, . .

. ,0462,1511,

156l, ...,196l, 106l, etc. It is often possible to tell just by glancing

at an address whether it was derived during backward or forward processing.

5.2.4. Storage Region

When a card is stored during the forward search, five of the input

words are stored for later reference. Words R0001 through R0005 (de»

sribed in 5«2.l) for the card which initiated the search are stored in

S0001-S0005; the same words for the next card are stored in S0006-S0010;

etc. Words R0006-R0010 need not be stored, because they are not used

in processing a type 08 card, which is the only type that is stored up.

If the search ends with transfer to the QUITT routine, S0001-S0005

are brought back to R0001-R0005., and processed. Then each other card

is brought in turn to the same place. When the card which initiated

QUITT is reached, its words R0006-R0010 are still in place, never having been disturbed.

If the search ends with the BACKW routine, the last card stored

is taken to R0001-R0005 for processing backwards; its assembled word

is in P0006-P0010 as usual, but these words are then stored at the end

of the storage region. Each card is processed in turn going backwards,

and stored in the storage region; when all have been processed, they

are brought back in turn to P0006-P0010, and the cards are punched at

top punching speed.

5.2.5. Symbol Table

When a numerical address has been assigned to a symbol, the 10-

digit representation of the symbol is stored in the symbol table.

Symbols in which the last character is non-blank are stored as encountered, starting with the beginning of the table. Symbols in which the

last character is blank are stored as encountered, starting with the

end of the table. These latter are cleared from the table whenever

there is a pseudo-operation BED. Care is taken that the two series of

symbols do not overlap. The symbol table is cleared during initialization •
- ko -

5.2.6. Equivalence Table

Whenever a symbol is stored in the symbol table , its numerical

equivalent is stored in the equivalence table. The equhaLent of the

first symbol in the symbol table is stored in the D-position of the

first word of the equivalence table; the equivalent of the second symbol goes into the I-position of the same word. The equivalents of the

next two symbols are similarly stored in the second equivalence word.

The equivalence table need not be cleared initially or by a HED

card, because it is never consulted except to store or find the equivalent of a symbol that is in the symbol table. Storing is done in such

a way that only the four digits are disturbed, leaving the rest of the

digits and the sign unchanged. The values are used in such a way that

the other digits and the sign do not affect what we take from the

table

.

5.2.7- Optimizing "ddends and Tags

Information needed to optimize the instructions is stored in

0800-0899* For example, the information for operation 17 is in location O817. The digits of one of these words have the following meanings:

1: Optimum dynamic level of D minus given level of L, when L is even.

2: Same, when L is odd.

3-^-: Optimum dynamic level of I, measured from given level of L

or of D according to the operation, when latter is even.

5-6: Same, when reference address is odd.

7: 8 for an operation whose execution requires a variable

length of time (MD7 operation).

9 for an operation requiring a fixed length of time.

8-9: 88, operation 31.

98, other shift operations; namely, 30, 35? 36.

89, indexing operations; namely, 50-53, 58-59, 8O-83, 88-89.

99, any other operation.

10: 8 if I is measured from L (e.g., branch, shift, indexing).

9 if I is measured from D (e.g., add, subtract, store).

The following represent slight modifications in the above:

(a) When digit 1 is zero, D Is not an address; it may have other

meaning, as in shift operations; or it may be meaningless, as in operations 00,01.

(b) For shift operations, where the optimizing addends come from

analysis of D, the first 6 digits of O83O etc. are zero. The optimizlqg

addends are given in 1250-1259
- hi -

(c) For indexing operations, D is not a drum address. For these

operations, digits 5-6 are zeros, but digits 1-k have a special meaning. They have the values 0101 for operations 80,82,88, and 0000 for

the other indexing operations.

(d) For an MDF operation, optimizing addends cannot he given reliably; but digits 1-6 are the quantities that are used in case the

forward search ends in QUITT.

5.2.8. Region Table

Locations G0001-G0029 (excepting G0010, G0020, G0021) are used

for interpreting regional addresses. Suppose an REG card shows XI369,

meaning that thereafter regional address X0001 = 1369- The numerical

equivalent of X is 87, and 87-60=27. The number 1369 is then stored

in G0027.

The region table is cleared during initialization; a non-zero in

any cell of the table shows that there has been an REG card for that

region. It will be noted that a card such as REG X0000 is invalid,

since it would be impossible to tell that there had been an REG card

for that region.

G0012 and G0020 are assigned by SYN cards to particular temporaries. G0021 is used as a zero constant.

5.3« Description of the Program

The main routine is quite short — in fact, it may be said to consist of only h words. From the last of these, it branches to any of

l6 different exits, namely the card types given in 5*2.1.

On a card type 01, the branch is directly to Subroutine 10. On

type 02 or a pseudo-operation, the branch is to a short segment of

routine which appears near the end of the list.

On an ordinary card (type 08), the branch is to the segment which

immediately follows the main routine. Thence, in turn, the code may

branch to any of several subroutines, or to the forward search. The

latter uses various subroutines, and eventually goes to either the

QUITT routine or to the backward processing ( BACKW ) routine. It will

be noted that under one set of circumstances it goes to BACKW and

almost immediately resumes the forward search. This is the case where

the search starts with an MDF operation, but I of that word is fixed.

There are three entries to the forward search, because it is

necessary to make note of the reason for the search. The third entry

is from Subroutine 19.
- k2 -

5-3'l- Right -Justified Temporaries

A number of quantities are stored in temporaries with absolute

addresses, or with 5-letter symbolic addresses, because they are used

in various parts of the program. Most of these will now be briefly

described; for some, the derivation of the 5-letter symbol will be

indicated.

ALOPT (all opt imizing tags) is developed in Subroutine 1^-, and is

sometimes modified elsewhere. It is developed for each word that is

processed. Its digits have the following significance:

1: 9 > Subroutine 11 is to reserve any location which it

selects. This is the initial and usual value for

this digit

.

8, Subroutine 11 is not to reserve any location. This

value is used when both D and I are fixed during

backward processing of a branch instruction.

(5-1.3-1.)

2: 8 is initial value. Changed to 9 during backward

processing, if it is found that D is not a fixed

address. (5. 1.3. 2.)

3: Same, for I.

^--5: Unused.

6: 8, the operation is one for which D is not an address,

or at least not a drum address. (E.g., 30, 80.)

9, the operation is one for which D is an address.

(E.g., 10, 69,

)

The determination is made on the basis of whether the

first digit of OPTIM is zero.

7-10: Identical with digits 7-10 of OPTIM.

BLANB holds the equivalent found for a blank I during backward

processing.

BLANK holds the equivalent of a blank D or I during forward processing .

CDIFF holds the amount by which an REL card says to relocate core addresses

.

COUNT shows the number of addresses in an instruction which are tagged for indexing. It is either 0, 1, or 2

.

DDIFF holds the amount by which an REL card says to relocate a drum address

.
- 43 -

DRUMT is initially 80 0000 0000. It is changed to 90 0000 0000 if

the availability table shows that there is no space on the drum to

which a blank or symbolic address can be assigned. It is changed to

80 0000 0000 during processing of a BLA card.

EQUIV holds, at its right end, the absolute equivalent of any

address that has been processed, as soon as the equivalent has been

determined.

HSYMB holds the alphabetic address that is being worked on, ex- cepting that if the address is blank, it is not stored in HSYMB. (The

symbol was carried over from SOAP II, where it stood for "headed

symbol.")

LSYMB (_location of symbol ) shows either (l) the location in the

symbol table where the symbol given in HSYMB may be found, or (2) an

unused location, into which that symbol may be stored. LSYMB- is in

the D-position of the word.

0PTIM shows the word taken from O8OO-O899 (see 5.2.7) that is

appropriate to the operation involved in the card now being worked on.

0PREG (operating register) shows the dynamic level of an address

which we have just finished using. If it is a drum address, the

address itself (perhaps indexed) is put into 0PREG, except sometimes

for the addition of COUNT on an L-address. If it is a core address or an 800X D address, the dynamic level (never less than -0001 nor more

than +0050) is computed and stored in 0PREG.

0RCEB, 0RCEQ, and SAVOR are used for storing various quantities

used in attempting to optimize through core addresses. A core address

itself is always optimized.

SAVEL and SAVED are used for saving addresses already derived for

L and D, respectively, at the start of a forward search.

1030 and 1050 hold various distributor-branch tags, used to select

different cases. The determination of the proper circumstances for

changing these tags proved one of the most troublesome features of

writing IS0PAR.

1030 holds the QUITT tag. Digit 1 is set to 8 when processing a card of type 08 (ordinary). It Is changed to 9 at start of a forward

search. It is used in Subroutine 19: A new-symbol L, when processing

forward, starts a forward search if this digit is 8; but not if it is

9, for then we are on QUITT routine, and a search has been proven

fruitless.
- kh -

1030 holds other tags, in digits 5 and 6, which are used to tell

the circumstances vhich started the forward search, and which are used

at various places in the processing.

1050 holds the First-Card Tag. Its first digit is set to 8 when

a card of the main routine is read. It is changed to 3 at the end of

the study of a card during the forward search; so if the first card

searched initiates QUITT or BACKW, the tag is still 8. During QUITT,

it is changed to 8 at the end of the first card; hence, during QUITT,

it is 9 for the first stored card if there are more than one; it is 3

in other cases. On BACKW, if there is more than one stored card, 1050

is changed to 8 when a blank L is processed "backwards, whereafter it is

used to indicate that blank D or I is to be made equal to BLANB. On

BACKW with only one stored card, 1050 starts with 8, but changes to 9

if it is determined that the forward search started with L, so that

this one card can be processed on the same basis as the first backward

card in the more general case.

5.3*2. Subroutines

In addition to the 16 segments of code entered from the l6 different card types, there are 19 subroutines. Although many of these are usually entered from card type 08, some of them can be reached from

other portions of the code. The subroutines are numbered 1 through 22,

omitting 12, 15, and 16. The salient facts about each subroutine will

now be listed, including a statement as to whence it is entered.

The symbolic entry word to a subroutine is of the form SUBR1,

SUB19, SB10A, SUB2R, etc., excepting for subrout ine 18, the entry word

to which is INDEX. At the time of entry, the exit word is In the

Distributor unless otherwise noted. Normally, this is stored soon after the subroutine is entered. To conserve drum space, the exits are stored in only three different locations, called EXITX, EXITY, and

EXITZ, and these are put into otherwise unused locations of the punch

region.

1: Initialize the drum at the start of a program. This is entered

either from the first word of the main routine, or from BOP.

It clears the region and symbol tables; clears card number;

sets DRUM! to 80 0000 0000; and makes the availability table

all l's, since the entire drum Is initially available.

2: Double-entry. If entered at SUB2R, it reserves all locations from

7WA to FWA+N, inclusive. If entered at SUB2U, it unreserves

similarly. At time of entry, EWA is in Upper, and N is in
- k5 -

Lower. Before reserving is attempted, checks are made so that

no reservation will he attempted beyond location 1999* It is

entered from Subroutines k, 8, and 19, and from BLR, BLA, EQU.

(Reserving of optimally assigned locations is done by Subroutine 11, without use of Subroutine 2.)

3 is used during the forward search to determine whether an address is

fixed. At entry, the address in question, alphabetic, is in

upper. At time of exit, type of address is indicated by con- tents of accumulator, as follows:

Blank, new symbol, core: 00000 00000 00000 00008

Drum, regional, old symbol: 00000 00000 00000 00000

800X: 00000 00000 0800X 00000

Absolute, not in those ranges; undefined symbol with

table full; regional with region undefined:

00000 00008 00000 00000

k, 5) 6: Used to process L, D, or I, respectively, backwards. This

is done principally by appropriate use of other subroutines.

7: This stores a new symbol in the symbol table, and its absolute

equivalent in the equivalence table. Makes use of the contents

of EQUIV, HSYMB, and LSYMB, which were stored by Subroutines

11, 9> and- 9> respectively. Entered from Subroutines Ij-, 5,6,19,

20,21.

8: This is used to process addresses in type 2 cards (relocatable

subroutines). At entry time, the Upper contains the alphabetic

address, used only to determine whether the address is to be

fixed; the Lower contains the numeric address. At exit, the

relocated address is in the Lower; or, if the relocation gives

too high a value, the Upper will contain 00 0000 8000.

9: This subroutine, which may be entered from Backward Processing or from Subroutines 3> ^, 5> 6, 19, 20, or 21, examines an address

to determine its character. At entry, the alphabetic address

is in the Upper. Although the basic exit instruction is, as usual, in the Distributor at time of entry, it may be modified

by the subroutine according to the type of address. If the Im- position at time of entry shows K, the I-position of the actual

exit instruction is as follows:
- k6 -

K-2: Address is regional with region undefined; or is a new

symbol but symbol table is full.

K-l: Address is blank . K: Absolute drum address; or symbolic or regional address

equivalent to a drum address.

K+l: Undefined symbol, but there is room for it in symbol table.

K+2: 800X address.

K+3: Core address; i.e., absolute, in range 9000-9059*

K+k: Some other absolute address (or possibly a symbolic or regional address equivalent to an "other" address).

Normally, part of a constant

.

Subroutine 9 also stores the following:

HSYMB: The alphabetical symbol, unless it is a blank.

EQUIV: The absolute equivalent of the address, in cases K, K+2, K+3,

and K+k. (Should an undefined symbol happen to consist of four

digits preceded by a digit or a special character, the four digits

will be stored in EQUIV, but will not be used.)

LSYMB: If the address is an old symbol, D-position of LSYMB receives

the location of the symbol in the symbol table, less the location

of the first word of that table. Similarly, if the address is a new symbol, LSYMB receives the location into which the symbol

ought to be stored.

10: This so-called subroutine is a collection of short bits of code,

namely the common endings of various subroutines and segments.

11: This subroutine is used for finding the optimum address, when the

given address is blank or is a new symbol. It uses Subroutine

13 to find the optimum dynamic level; then 11 examines the

availability table to find the available location which most

nearly fits the prescribed level. The selected location Is

stored in EQUIV, and also is in the Lower at time of exit.

The location is reserved, except when the first digit of AL0PT

is 8. (See 5.3-1.)

Subroutine 11 is entered from Subroutines h, 5,6,19,20,21.

At entry time, the exit instruction is in the Lower, and includes various branch-distributor tags. If the Lower is of the

form 00 Oabc KKKK, abc shows where we came from, as follows:

From Subroutine h (backward L):

From Subroutine 5 (backward D):

From Subroutine 6 (backward l):

From Subroutine 19 (forward L):

From Subroutine 20 (forward D):

From Subroutine 21 (forward l):

990
- w -

Should the drum be packed, so that no location is available, the exit instruction is changed from 00 Oabc KKKK to 00

Oabc KKKK+1. Also the drum tag is changed from 80 0000 0000 to

90 0000 0000, so that it will thereafter be unnecessary to go

through a search of the availability table.

13: This subroutine is usually entered from Subroutine 11, but possibly

from k, 5, 20, or 21. The data it uses are found in 0PREG,

0PTIM, and AL0PT, described in 5. 3.1, At entry time, the Distributor contains 00 Oaxc KKKK, where x is irrelevant, KKKK is

the location of the next instruction, and ac have the values

given under Subroutine 11.

At the end, the computed optimum dynamic level is shown

sb the right end of the Accumulator, with a value between 00 and

+k-9, inclusive.

To explain the classification of cases within the subroutine, note that we never get to 13 when processing the D address

of an indexing or shift operation, or when processing backward

D of a branch operation.

Ik: This is entered from many different places and is used before much

else can be done with a word. It transfers the control information and the operation to the output region, and separates

the indexing tags and counts them (See COUNT, 5.3.1.)- It

moves the optimizing addends and tags from O8OO-O899 to 0PTIM,

and develops the initial form of AL0PT. At exit time, AL0PT

remains in the Distributor.

17: This subroutine is entered from 5 or 20. At entry, the Lower still

contains P, the optimum dynamic level determined by Subroutine

13. IT computes a slight correction to the dynamic level of D

in certain cases: If D is 8002 and P is odd, or if D is 8003

and P is even, the correction is +1; if D is 8001, the correc- tion is -1. This amount will later be added to P in Subroutine

20, or subtracted from P in 5*

18: This modifies a drum or core address if the address was tagged for

indexing. At entry, the Lower contains the absolute value of

the address to be indexed, in the I position. The D position

of the Distributor is if a D-address is being indexed, and

1 if an I-address is being indexed.

19, 20, 21: Used to process L, D, or I, respectively, forward.

22: This is a short subroutine used to preserve 0RCEQ, at the start of

backward processing, for possible use when we go forward again.

At time of entry, exit word is in Lower instead of Distributor.
- kQ -

6. Desirable Changes in ISOPAE

ISOPAE was prepared in the Spring of 1958, and has been in con- stant use since that Fall. It was probably effectively debugged for

the features which exist on the 65O used by the National Bureau of

Standards. On the other hand, it has never assembled a complete program for a 65O equipped with core, tapes, or disks, (if features involving operations 25-29 are used, the ^-07 plugboard should be slightly

modified .

)

Some work has been done toward incorporating certain desirable re- visions. However, the National Bureau of Standards will soon stop

using the 650, and since the existing ISOPAE represents considerable

improvement over SOAP, it seems best to publish ISOPAE now, and indicate possible further improvements.

In preparation for publication, a few minor improvements were

made. Most of the changes suggested in the following sections would

involve major modifications of the code.

6.1. Changes to Improve Optimization

(a) If the forward search ends with the fixed D address of an MDF

operation, it processes backward from that fixed address, but then does

not start another forward search; instead, it uses the normal processing procedure from that fixed D. This defect was discovered in debugging the code, but it would require very extensive modification to remedy, and it has not been corrected.

(b) An indexed D with an operation such as 80 should not initiate

a forward search, since there is no uncertainty as to the length of

time required to perform the operation.

(c) For the same reason, an indexed D with operation 80, encountered during the forward search, should not Initiate QUITT, but the

search should continue.

(d) When operation Cf) has blank D (the usual entrance to a subroutine), the L of the following instruction is correctly made equal to

that Dj but then a forward search ought to be Initiated, since the

latter instruction is not performed in the place indicated by its L.

This would probably be a major revision: At present, a forward search

always starts with either L or I, but this would require one to start

with D.

(e) A forward search is terminated by QUITT when the search

reaches any type of card other than type 08 (ordinary card); and even by a type 08 card if it is a constant. Present programming custom
- ^9 -

often puts together at the end of one segment and the start of another

the following cards: Card with blank I, constants, type 01 card, KED

card, card with blank L. It would be desirable to carry the search

through this group, and optimize backward through them. This would

require a substantial increase in the capabilities for storing cards

and for processing stored cards.

(f

)

In ISOPAR, the optimization through core addresses is not

very good. In this it resembles SOAP II, although the methods are different. Suppose, for example, that during normal processing the

following pair of instructions i s reached:

1000 60 1003 9002

9003 15 ABC

Both assembly routines derive 07 as the dynamic level of 9002, and then

•use 07 as the dynamic level of 9003 in optimizing ABC. Other cases involve more complicated rules; but essentially they all assume that some nearby core addresses are the same.

Perhaps optimization could be improved by making a record of the

dynamic level last assigned to each core address, for use when that

address shows up again as L. Or if, as above, a core L is not equal

to the preceding I (or D in case of a branch order), a forward search

might be initiated on the grovzids that we probably have the start of a loop. Such changes would substantially increase the length of the code.

(g) In deciding whether to terminate a forward search, ISOPAR

erroneously treats an indexed D as fixed, and initiates backward processing. It would probably be more logical to initiate QUITT although

it would apparently make little actual difference in the result.

6.2. Changes to Improve Usability

Although the method of transferring the input symbolic code to the

output cards through a Reproducer has been reasonably satisfactory, it

is of course more troublesome than if the 533 would punch the entire

information. This is impossible (l.3.l), but one of the changes which

has been considered is to have columns 17-37 transferred to the output

through the 533> so that the symbolic and assembled codes could be

listed together for immediate check-out without waiting for reproducing

Normally, the remarks would be reproduced at a later time, unless the

immediate check-out uncovered errors which warranted discarding the

output code at this stage.
- 50 -

6.3. Changes to Speed Assembly And/Or Make More Drum Space

Available

Most of the changes suggested in 6.1 and 6.2 require more drum

space. There are several ways in which more space can he made available.

(a) ISOPAR uses 1900-1999 only during the read-in. Those cells are also used for tracing routines to hunt errors in ISOPAR. and for a punch-out routine to punch the code at the rate of 7 words per card.

Those locations could not be used for instructions, but they could be

used for part of the symbol table after the need for tracing is past

.

(b) The sizes of the symbol table and of the storage region are flexible, and after any other changes they should be modified to fill

the drum. If any change is made in the size or location of the storage region, note the following precautions, unless other revisions make

them obsolete: The length of the storage region is a multiple of 5«

The SYN cards for SMAXM and SMAX1 must be corrected.

If a change is made in the size or location of the symbol table,

note the following: The equivalence table is exactly half as long as the symbol table. The region table should immediately precede the symbol table, so that both can be cleared with one set-up, in Subroutine

1. Somewhere in the drum, there must be a zero word preceding the symbol table, and one following it; at present, these are in G0021 and

ZMAX1. The SYN cards for ZMAXM and ZMAX1 must be kept up to date. The

constant ZTABL, which shows the length of the symbol table and appears

at the end of the program, must be correct. The SYN card for HSYMB is

used only to improve optimization, and only the dynamic level is significant; its dynamic level is at present k higher than that of ZMAXM.

(c) ISOPAR follows SOAP II in providing that the assembly routine

uses only the basic 65O plus alphabetic feature; but that it will

assemble programs involving other optional features. It would be

better to prepare two different versions: Version A, which will

assemble programs involving all optional features, but which uses index registers in the assembly; Version B, which omits all reference to

index registers. Both of these would be considerably shorter than the

present version; in fact, Version A would be several hundred words

shorter. It seems very unlikely that a 650 without index registers

would have to assemble a program that used them; if that should happen,

the present version of ISOPAR could be used for the purpose.

(d) Another way of getting additional drum space (not over 60

locations) would be to provide that the instructions for handling core addresses be in locations 9000-9059? or as many of them as would be

useful. This would not require separate codes for machines lacking
- 51 -

core memory, except for omitting the reading of the instructions that

go into core; but it would mean that ISOPAE could process programs

involving core only on a machine equipped -with core memory.
52 -

LUO<

LU

LsJ

CO<

oro

en

a.<o

coom

CO

1A

M oo * O

•HH ooo

CO o rH 1- s •Po < z co

CD c

fH UJ -a

CD -P

CJ -p

pi o

CD -P s •H CO £> r-{ CO a

-P

U

H •H s oo a

CO Si o1 CD

H CO o CD tN- rH !h o CO XJ 3

>! >

r-i

O

rH ^ o MHo

•H

Cm l -P

Si

C

CO H

CD

CO

CD

X

O

CD o

CD

CD XI

O rn

—tr "TT _-—. "& -^0. . . _?-!_ - sT ~fe- -M- _'dL,

C -pu »\ CO o CD CD «H z w •H

•% rH •H COO

CO

CD o UJ I U o -P o CD H M co 00 o

CD o o •rt,

K

a

T3 ro fi o CD H r-i O ch a CD or -P •H cr\ > H T3 O CO CO -P

10 -P 1 H On o c o CD 3 W On ^

*\ • CNJ #> •\

O

-PO l>» 3 CO o i-H r— rH o

?HH

H rH ?5 vr\ X! r—

O

O ,Q CD

O 1 CO -pO

u r-t r-t + ^ -P 73 3 £ C O •H O O o O

CO

u CO <2 •H o T3

M o S o rs CO c NO CD •H o ii II o ^ •p O CD *> o H T3 o o o nO C r-l \ U\ On y

rH -p rH

H o

QC <0 ^—N -Q -p o -3 T3

N

O c O

O Ph <

!>> -P •P CO c r^ o C -P

M

H •H o o <-> to c -P CO r-f o CO CO o O S

Q)

a CD CO -P 1 1 3 Ph

m >4 fH Ph « o E o g O to MD vO o o r-j CD co rH (g -p

cfl o S O

C

O On o o 1 -P CD ^5

p -P

C LU C o H O r^i CJ o o P -P fc E 5

CO CO •H

C o CD o O

H o o CH CD CO Xi x; cc ** o »

' *h CD r-f XJ C •p +j Sh -P en CD CD CD CD CD i-H CO E 9 C •H. fcjD CO > > > > > »\ c\ o CD

CD 45

t,

C •H

UU ?H

u »\ o CD -p fH -P 6

-p CO 3

cm -P CD CD CD CD (-1 -P

a Cm nj

a

(-H CO a O CO CO CO co to u 3 CO C C e CO h.0 CD CD CD CD ^i CD H p CD h!) hg CD o o CD tj CD M U u h C -P o co $H •H •H u O CJ .fl Pn e CO -P CO C O CO CO o

COO c O o rH CD ,£> o -P CD CD -p

«3j «JJ ^1O «4 t-H EH Eh EH

m (-1 «H CI cn

O P CO

— < ro QT CD vfi tx

Q U) Ov. (A -\

QO

IO oO

(Sn

NX) ^ § < cvj c> X Q

"~~- <^

ro

X

—

X

— < Jo « "^

tr

O 0) S N

Q

enO ^ <i "vi o s^

OJ (S- <5>

Q<

ro1

CsJ Uj

15 <5

X

ro

X

O

Q_ $ O Q> <o ^ Qi ft£ ^ ft o <K -^. ^ o CJD Ci) <i O § O c\J *- ^ <5> ^1 \s rA ^ c^ Uj Uj CM

CLCO 8 ^ CQ «^ ^ (< °<

k

O

CM

O Uj

Q

Q VO o

_J

OJ1 CO o

5k. .5 o H

<3 o IQ>

Ho- f> •*- CM 1 CD ^

<3 ^C ^C o*
53 - oH oOJoo X

COo

rH

XCD H s

CO

inbo * aO OO s Xu

.o

-p

CO3

CD>

rl Pi

OM

D. if) H !>» -p o n CD CU

-p

x CD 00 i o co o ^H \- cfl u CO 1-1 •p o CD c/> O o CD o H w XI l-l ^i H

"Z o rl

OK bD o X

(M 1-1O >3 rl

X txfl

G

1x1

O CD

OX XI +3 r< CD c G CD -I o Sh c co i> CO H 3 S o TJ CO a CO -P U X -p «H c c 3 r-l o CD *^

cfl CO CD S co

•H co

XCD

Ox

G c coCD 5^

e-i

CD >»

CO o

•rl

X

O ti) 00

O CD

U

W CD r-1 -p CD O a r< S5 £h c +3 o

CO •H oo CI)

a §

-p cy CO

X

O o o =M r-l x o •H Ph •p c r-l -h> c o H o •rl o H X cfl o 3 X

r-4

X ' >>

a +5 x; o a o X o CD CO

M MB——

a. .—a. -i£>-— si. - -*-

—(»-• - -p_

— »-•

_ _«o—

M—_ I n h> > . —iri. ^ ^k E. -*?-— U-. -—,-+

Q lO

C £ CJ c •H -p

X o >> -P 3

fCn •H £ E o p •H -P

G 3 o 00 ^ -p "Z CD 2 p r-l a CO •rl r-l •\ 3 l c X &

ri CD 3 OO CO

O tp, !>s

X

UJ 1 o (0

n

UO

O o O r-l o H i-i 00 •H -P O S H Sh O II 2

r-l

X

M Jh +? «H CO

O CD

X CD CO CD to CD co • •< O O o N I

XI P W) e 00 cc rl -p -P X X) >= H r-l O u

00

O CD CD •P

X r- rH CD 00 o g

r< o o f 4 C -P -P C CO O > •H P S CD 6 fr-i CD -j P X! XJ •H r-l r-l X oo O o O CD H S -P rH 5 O +J ^ X C •H O o E -P MO S, CO CO -P =i • G

c/>

rl

OH r-l cfl c CO t'J) CD E Q. CD CO

O •H CM CD CD CD o CD r-l CD ^;H c r-l o ^ f> to O ri !n + E o o G X r-l CO 53 •rl X

CD

O BP +2 CO

X $ CO l-l a: X ri O CD CD o -p fl -p r-l CO X £ X -p G rl u o cd s H pi CD H -P CD C G < O •P -P nJ CO o a. P.. H CO •rl o >> •rl o .j nJ o rH o X > H Cm a o +3 2

0)

x

X

w 00 LA XJ rl V, CO Cfl

O •H 3 CD rl

X to -p -P CD CD O G CD r-l X 4^ PL, to l-l o

LU

00 oo II

O CO

N CO •H CN. £ CO

H •H o w 00 CO 00 oo 1 CO CX3 >2 3 < CO X CX tr

Q) CD CO CD CD

X o c^l CD -J- > H 00 •o cfl -P -P -p U U H o H > H CO O 1 r-l CD r-l

X o O o X X 5 o O •H O 1 e 4^ O r-l H -p c c c X T3 o O -P O CK ON o X X X CO •g

CD a) CD CO CO co •H ON MO !h to

g EH > X a X CD CD co CD m3 H «h •H !>= CD CO CM CM H > > O > iH O fn oo 00

X CO CM CM 1 1 o u G a r( r< 00 X Si o o O CD CD Xj CD CD CD CD CD CO CD CD CO o CO O O o £ ft

CO GO -p CO ^J Jrf CD J< >! c o O O o Ps CD CD d CD (0 cfl H CO cfl o p

fc*

r*1 ft F-i e-| CO at Cd cR

W

O E-i Pi

— < fe

trQ

<D <N

O <3 -v ^ Q

to

O CM

<0 *

t>o ^ ^ < H Q O <^ o ^ c^ — ^ — < ro (TO O

ro CM cxi <3 Ci

X

CiCi

c^ cs.

X 5 1 < 1 co <3 qo

CM

X -^

O <^

Q

CM u. u. U. ^> ^

Q_ § o v£^ o -O ^ CJS' Ck^ LL U- \-L_ ^ "^ P\ "^ ^ ^

EO s

<^ Uj

n LU Uj UJ ^ ~4 -J -J -J -J Oi >- <5j lo ^ ^

Q_C/> S3 <^ « °< ^ <v ^ *=C ^

«^ PQ ^ v^ Ul CCi P^

O

<M 00 ^

CT) CM <i

O

_l 1 CO &

v>0

\-CL

N <\i \ CD ^

v: ^1 £

CDu

CjD o

+3aGH

P-i OCOM

CmO

COCD

r-l&

cfl CO

ooo
5ZUJ <

z z m o

(/! u 06

g'Z

So

5 <U

2 o£ o £ o |C O

O O o o

o o o o

~ o

o o o o * o

o

1

- o o o o

o o

1

o

O o o

. o o S o o o

o

- ., oSr, . +1 +1 +1 +i 5+1 +1 H +1

' O £ o O

o o o

1

3 o

1 .

' : o o o o I o o o o o

o o o o I o

o o o o£o£o£o£o£o£o£o£o£o£o **********

O O O o o o o o

o o o o 05 03 o

o o ;ojo
55

S: WIRE TO INDICATED SECOND READING HUB

N: WIRE TO INDICATED NORMAL PRINT ENTRY HUB

T: WIRE TO INDICATED TRANSFER PRINT ENTRY HUB

WVSDVia T3NVd lOiUNOD 'ZOt- 3dAi '3NIH3VW DNUNflODDV

NOIlY»Od»OD SJNIHDVW SSiNISfH 1YNOIIYNJ31NI IMHI
I S P A R. THE IMPROVED SYMBOLIC OPTIMIZING

ROUTINE FOR THE IBM 650 DATA PROCESSING SYSTEM

RBD 1150

RBD 1350 1999

BLR 0002

BLR 0008

BLR 0010

BLR 0016

BLR 0021 BLR 0025

BLR 0027 BLR 0029

BLR 0054

BLR 0073

BLR 008*

BLR 0093 009*

BLR 0097 0099

REG 00118 0131

REG R0151 0160

REG T0168 0172 REG P0177 0186

REG F0218 022*

REG M0268 0277

REG J0368 0375 REG L0*18 0*25 REG 00469 0*78

REG X0518 0531 REG 10572 0581 REG U0608 0609

BLR 0900 0903

REG C0918 0927

BLR 1030

BLR 1050

REG S1125 11*9

BLA 1350 135* REG A1355

REG E1555

REG G1660

REG Z1689

SYN SETCC 0001 SYN HSYMB 0108

SYN EXITX P0001

SYN EXITY P0002

SYN EXITZ P0003

SYN DRUMT G0010

SYN BLANB G0020

SYN ZEROX G0021

SYN SMAXM 1199 SYN SMAX1 1200

SYN ZMAXM 1898 SYN ZMAX1 1899

RESERVE PART OF REGION S TYPE 2 ROUTINE ORDINARY CARD MANUAL PAT

ALF ROUTINE

BLA ROUTINE

SYN ROUTINE

BOP ROUTINE

BLR ROUTINE

EQU ROUTINE

PAT ROUTINE HED ROUTINE

REL AND RBD ROUTINE

REG» REO. RBR ROUTINES BRANCH ENTRIES IN EOU . SYN. AND REO READ REGION ENTRIES IN PAT PUNCH REGION BRANCH ENTRIES IN SUBROUTINE 3 BRANCH ENTRIES IN SUBROUTINE * BRANCH ENTRIES IN SUBROUTINE 6 BRANCH ENTRIES IN SUBROUTINE 19 BRANCH ENTRIES IN SUBROUTINE 20 BRANCH ENTRIES IN BACKWARD PROCESSING

BRANCH ENTRIES IN SUBROUTINE 21 USED IN HED ROUTINE

CERTAIN TEMPORARIES

BRANCH ENTRIES IN SUBROUTINE 5 SEARCH-START TAG FIRST-CARD TAG STORAGE REGION. 1125-1199 RESERVED BY RBD. BUT NOT NEEDED AVAILABILITY TABLE. 1355-155* EQUIVALENCE TABLE. 1555-1659

LIST OF REGIONS. 1660-1688 SYMBOL TABLE. 1689-1898

TYPE 1 optimize main iteration of subr 9 to conserve drum space

to conserve drum space

to conserve drum space

to conserve drum space

to conserve drum space double use of zero

last cell of storage area

cell beyond end of storage area

for clearing cell beyond z region

10

12l*

16

1820

222*

26

2830

3234

36

3840

*2**

46

*850

525*56

5860

626*

66

6870

72

7*76

7880

8284

86

8890

9294

96

98

100

102 104

106

OPTIMIZING ADDENDS AND TAGS 108 0800 00 0*0* 9998 K oeoa 00 0*0* 9998 FOR OPERATION a LOCATION - 0800

0801 00 0*0* 9998 K 0801 00 0*0* 9998 FOR OPERATION = LOCATION - 0800

0802 33 2322 8999 K 0802 33 2322 8999 FOR OPERATION a LOCATION - 08 00 0803 00 0505 8998 K 0803 00 0505 8998 FOR OPERATION = LOCATION - 0800

0804 00 0505 8998 K 080* 00 0505 8998 FOR OPERATION a LOCATION - 0800

0803 00 0505 8998 K 0805 00 0505 8998 FOR OPERATION <r LOCATION — 0800

0806 00 0505 8998 K 0806 00 0505 8998 FOR OPERATION - LOCATION - 0800

0807 00 0505 8998 K 0807 00 0505 8998 FOR OPERATION m LOCATION - 0800

0808 33 1212 9999 K 0808 33 1212 9999 FOR OPERATION = LOCATION — 0800

0809 33 0202 9999 K 0809 33 0202 9999 FOR OPERATION LOCATION - 0800

0810 33 050* 9999 K 0810 33 050* 9999 FOR OPERATION • LOCATION - 0800

0811 33 050* 9999 K 0811 33 050* 9999 FOR OPERATION a LOCATION - 0800

0812 99 9999 8999 K 0812 99 9999 8999 FOR OPERATION LOCATION - 0800 0813 99 9999 8999 K 0813 99 9999 8999 FOR OPERATION a LOCATION - 0800 0814 33 1110 8999 K 081* 33 1110 8999 FOR OPERATION B LOCATION - 0800

0815 33 050* 9999 K 0815 33 050* 9999 FOR OPERATION a LOCATION - 0800

0816 33 050* 9999 K 0816 33 050* 9999 FOR OPERATION B LOCATION - 0800

0817 33 050* 9999 K 0817 33 050* 9999 FOR OPERATION LOCATION - 0800

0818 33 050* 9999 K 0818 33 0504 9999 FOR OPERATION LOCATION - 0800

0819 33 2120 8999 K 0819 33 2120 8999 FOR OPERATION a LOCATION — 0800 0820 5* 0303 9999 K 0820 5* 0303 9999 FOR OPERATION m LOCATION - 08 00 0821 45 0303 9999 K 0821 *5 0303 9999 FOR OPERATION m LOCATION - 0800

0822 3* 0303 9999 K 0822 3* 0303 9999 FOR OPERATION a LOCATION - 08 00 0»Z3 3* 0303 9999 K 0823 34 0303 9999 FOR OPERATION = LOCATION - 0800

110

112 11*

116

118 120

122 12*

126

128

130

132 13*

136

138

1*0

1*2 1**

1*6

1*8 150

152

15*

156
0824 33 0303 9999

0825 44 0505 9999

0826 00 0505 9998 0827 00 0505 9998 0828 33 1212 9999

0829 33 8202 9999

0830 00 0000 99«8

0831 00 0000 9888

0832 33 2726 8999

0833 33 2726 8999 083* 33 2726 8999

0835 00 0000 9988 0836 00 0000 9988 0837 33 2726 8999

0838 33 2726 8999

0839 33 2726 8999

0840 33 0404 9998

0841 33 0404 9998

0842 33 0404 9998

0843 33 0404 9998

0844 34 0405 9998

0845 43 0504 9998

0846 33 0404 9998 0847 33 0505 9998

0848 33 0404 9998 0849 33 0404 9998 0850 00 0000 9898

0851 00 0000 9898

0852 00 0000 9898

0853 00 0000 9898 0854 44 0505 9999

0855 00 0505 8998 0856 00 0505 8998 0857 00 0505 8998 0858 00 0000 9898 0859 00 0000 9898 0860 33 0504 9999

0861 33 0504 9999

0862 99 9999 8999

0863 99 9999 8999 08«4 33 1110 8999 0865 33 0504 9999

0866 33 0504 9999

0867 33 0504 9999

0868 33 0504 9999 0869 33 0303 9999

0870 00 0504 8999

0871 00 0504 8999 0872 00 0504 8999 08T3 00 0504 8999

0874 00 0504 8999

0875 00 0504 8999 0876 00 0504 8999 0877 00 0504 8999 0878 00 0504 8999 0879 00 0505 9999 0880 01 0100 9898

0881 00 0000 9898

0882 01 0100 9898

0883 00 0000 9898

0884 33 2526 8999

0885 00 0606 8998 0886 00 0606 8998 0887 00 0606 8998 0888 01 0100 9898 0889 00 0000 9898 0890 4* 0505 9998

0891 33 0505 9998 0892 33 0505 9998

0893 33 0505 9998 0894 33 0505 9998

0895 33 0505 9998 0896 33 0505 9998

0897 33 0505 9998

0898 33 0505 9998

0899 44 0505 9998

1250 23 2225 2400

1251 07 0607 0600

1252 07 0609 0800

1253 09 0811 1000

1254 11 1013 1200

1255 13 1215 1400 1256 15 1417 1600 1257 17 1619 1800

1258 19 1821 2000

1259 21 2023 2200

1300 19 9906 0690

1301 80 0008 0880

1302 eo 0106 0680

1303 80 0209 0880

1304 80 0308 0980

K 0824 33 0303 K 0825 44 0505 K 0826 00 0505 K 0827 00 0505 K 0828 33 1212 K 0829 33 0202 K 0830 00 0000 K 0831 00 0000 K 0832 33 2726 K 0833 33 2726 K 0834 33 2726 K 0835 00 0000 K 0836 00 0000 K 0837 33 2726 K 0838 33 2726 K 0839 33 2726 K 0840 33 0404 K 0841 33 0404 K 0842 33 0404 K 0843 33 0404 K 0844 34 0405 K 0845 43 0504 K 0846 33 0404 K 0847 33 0505 K 0848 33 0404 K 0849 33 0404 K 0850 00 0000 K 0851 00 0000 K 0852 00 0000 K 0853 oo 0000 K 0854 44 0505 K 0855 00 0505 K 0856 00 0505 K 0857 00 0505 K 0858 00 0000 K 0859 00 0000 K 0860 33 0504 K 0861 33 0504 K 0862 99 9999 K 0863 99 9999 K 0864 33 1110 K 0865 33 0504 K 0866 33 0504 K 0867 33 0504 K 0868 33 0504 K 0869 33 0303 K 0870 00 0504 K 0871 00 0504 K 0872 00 0504 K 0873 00 0504 K 0874 00 0504 K 0875 00 0504 K 0876 00 0504 K 0877 00 0504 K 0878 00 0504 K 0879 00 0505 K 0880 01 0100 K 0881 00 0000 K 0882 01 0100 K 0883 00 oooo K 0884 33 2526 K 0885 00 0606 K 0886 00 0606 K 0887 00 0606 K 0888 01 0100 K 0889 00 0000 K 0890 44 0505 K 0891 33 0505 K 0892 33 0505 K 0893 33 0505 K 0894 33 0505 K 0895 33 0505 K 0896 33 0505 K 0897 33 0505 K 0898 33 0505 K 0899 44 0505 K 1250 23 2225 K 1251 07 0607 K 1252 07 0609 K 1253 09 0811 K 1254 11 1013 K 1255 13 1215 K 1256 15 1417 K 1257 17 1619 K 1258 19 1821 K 1259 21 2023 K 1300 19 9906 K 1301 80 0008

r. 1302 80 0106 K 1303 80 0209 K 1304 80 0308

9999 FOR OPERATION

b LOCATION - 0800

9999 FOR OPERATION s LOCATION

— 0800

9998 FOR OPERATION E LOCATION - 0800

9998 FOR OPERATION = LOCATION - 0800

9999 FOR OPERATION E LOCATION - 0800

9999 FOR OPERATION E LOCATION - 0800

9988 FOR OPERATION

n LOCATION - 0800

9888 FOR OPERATION E LOCATION

— 0800

8999 FOR OPERATION • LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

9988 FOR OPERATION

B LOCATION - 0800

9988 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION I LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 08 00 9998 FOR OPERATION LOCATION - 0800 9998 FOR OPERATION B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 0800

9998 FOR OPERATION S LOCATION - 0800

9998 FOR OPERATION E LOCATION - 0800 9998 FOR OPERATION B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 08 00 9998 FOR OPERATION B LOCATION - 0800

9898 FOR OPERATION E LOCATION - 0800

9898 FOR OPERATION

B LOCATION - 0800

9898 FOR OPERATION

B LOCATION - 0800

9898 FOR OPERATION

B LOCATION - 0800

9999 FOR OPERATION E LOCATION - 0800

8998 FOR OPERATION

B LOCATION - 0800

8998 FOR OPERATION E LOCATION - 0800

8998 FOR OPERATION E LOCATION - 0800

9898 FOR OPERATION

B LOCATION - 0800

9898 FOR OPERATION

B LOCATION - 0800

9999 FOR OPERATION E LOCATION - 0800

9999 FOR OPERATION E LOCATION - 0800

8999 FOR OPERATION E LOCATION - 0800 8999 FOR OPERATION E LOCATION - 0800

8999 FOR OPERATION S LOCATION - 0800

999? FOR OPERATION

B LOCATION - 0800

9999 FOR OPERATION

a LOCATION - 0800

9999 FOR OPERATION

B LOCATION

— 0800 9999 FOR OPERATION = LOCATION - 0800

9999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION = LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION LOCATION - 0800

8999 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION E LOCATION

— 0800

9999 FOR OPERATION

B LOCATION - 0800

9898 FOR OPERATION

B LOCATION - 0800

9898 FOR OPERATION

B LOCATION - 0800

9898 FOR OPERATION

B LOCATION

— 0800

9898 FOR OPERATION

B LOCATION - 0800

8999 FOR OPERATION E LOCATION - 0800

8998 FOR OPERATION

B LOCATION - 0800

8998 FOR OPERATION

B LOCATION - 0800

8998 FOR OPERATION E LOCATION - 0800

9898 FOR OPERATION

B LOCATION - 0800

9898 FOR OPERATION E LOCATION

— 0800 9998 FOR OPERATION B LOCATION - 0800 9998 FOR OPERATION B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 08 00 9998 FOR OPERATION B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 0800

9998 FOR OPERATION

B LOCATION - 0800

9998 FOR OPERATION

n LOCATION - 0800

9998 FOR OPERATION LOCATION - 0800

2400 2225 TABLE TO OPTIMIZE SHIFT OPERATIONS

0600 TABLE TO OPTIMIZE SHIFT OPERATIONS

0800 TABLE TO OPTIMIZE SHIFT OPERATIONS

1000 TABLE TO OPTIMIZE SHIFT OPERATIONS

1200 TABLE TO OPTIMIiIE SHIFT OPERATIONS

1400 TABLE TO OPTIMIZE SHIFT OPERATIONS

1600 TABLE TO OPTIMIZE SHIFT OPERATIONS

1800 TABLE TO OPTIMIZE SHIFT OPERATIONS

2000 TABLE TO OPTIMIZE SHIFT OPERATIONS

2200 2023 TABLE TO OPTIMIZE SHIFT OPERATIONS

0690 TABLE TO OPTIMIZE INDEXING OPERATIONS

0880 TABLE TO OPTIMIZE INDEXING OPERATIONS

0680 TABLE TO OPTIMIZE INDEXING OPERATIONS

08B0 TABLE TO OPTIMIZE INDEXING OPERATIONS

0980 TABLE TO OPTIMIZE INDEXING OPERATIONS

158 160

162 164

166

168 170

172 174

176

178

180

182 184

186

188

190

192 194 196

198 200

202 204

206

208 210

212 214

216

218

220

222 224

226

228 230

232 234

236

238 240

242 244

246 248

250

252 254

256

258 260

262 264

266

268 270

272 274

276

278 280

282 284

286

288 290

292 294

296

298

300

302 304

306

308

310 312 314

316

318 320

322 324

326

328

330

332 334

336

338
1309 99 9908 0»80 1305 99 9908 0880 TABLE TO OPTIMIZE INDEXING OPERATIONS 340

OTHER CONSTANTS WITH ABSOLUTE LOCATIONS

1200 19 9900 0000

1201 79 9900 0004

1202 80 0300 0002

1203 80 0400 0004

1204 80 0700 0002

1203 89 9900 0004

120* 90 3900 0003

1207 99 9999 0004

K 1200 19 9900 OOOO

K 1201 79 9900 0004

K 1202 80 0300 0002

K 1203 80 0400 0004

K 1204 80 0700 0002

K 1205 89 9900 0004

K 1206 90 5900 0003

K 1207 99 9999 0004

IF DRUM ADDRESS f USE REGULAR EXIT

IF NOT AN ADDRESS. ADD 4

IF 800X ADDRESS* ADD 2 IF NOT AN ADDRESS. ADD 4 IF 800X ADDRESS. ADD 2 IF NOT AN ADDRESS. ADD 4

IF CORE ADDRESS. ADD 3 IF NOT AN ADDRESS. ADD 4

342 344

346

348 350

352 354

356

358

0100 69 0003 0006

0003 70 0161 1041

10*1 69 1044 1047

1047 24 1050 0160

MAIN ROUTINE

N 0100 69 READC SUBR1

70 R0011

69 81STX

24 1030 R0010

INITIALIZE AT START OF ASSEMBLY

READ ONE CARD RESTORE FIRST CARD TAG ) 1050 RESTORE FIRST CARD TAG I MULTIBRANCH

360

362 364

366

368

ORDINARY CARD

0008 69 1044 0047 0047 24 1030 0033 0033 69 0036 0039 0036 69 0089 0042 0089 69 0092 0043 0092 69 0095 0048

0048 94 0051 0053 0033 60 0902 0007 0007 44 0011 0012 0012 69 0015 0018 0015 60 0003 0057

N 0008 69

24

69

81STX

1030 SUB14

DELETE QUITT TAG ) 1030 DELETE QUITT TAG ) OP. C.I.. OPTIM. ALOPT. ETC,

J 69 SUB19 PROCESS L J 69 SUB20 PROCESS D

J

c ABCDE

69

94

6044

69

OPTIM

MDFLP

0902

MDFLI ABCDE

SUB21

IS IT AN MDF OPERATION 1 D. YEs

IS D INDEXED

IF SO, START c ORWARO SEARCH

PROCESS I

J 60 READC SB10A PREPARE TO PUNCH CARD

372

374 376

378 380

382 384

386

388 390

392

FORWARD SEARCH

HED

0051 69 0004 0107 N MDFLP 69 P A 0011 69 0014 0107 N MDFLI 69 I A

1001 0107

0083

0041

69

2*

65

10

1004 1030 0086 00440107

0083 1030 0041

8003

Nc

c

MDFLL

ALOOP

6924

65

10

L 1030 SEND

ALOOP

8003 0044 69 0131 8002 J 69 R00O1 8002 0086

0028

0033

0043

24

111544

1125

0031 0038 0147

0028 1125 0035 0043

0148

J SEND

X 24

11

1544

S0001 16THX

X

OUT

0147 10 0050 8003 10 OS 8003 0148 0056

0203

20

6990

0103

1050

0207

0056 0103 0203

0058

N OUT 2069

90

FINAL

1050 NO

0207

0133

69

96 1030 0136

0133

0088

69

96 1030

B C 0058

0065 0023

0077

0003

65

1645

60

69

0160

0068 0026

0131 0208

0065

0023 0077

0005

0061

N NO 65

1645

60

69

R0010

810TH

QUITT

R0001 SUBR3

0208

0071 0076

3544

45

0003 0026

0088

0071 0076

0026

J 3544

45

0005 QUITT

C QUITT

00 88 69 0091 0039 c C 69 SUB14

STARTED SEARCH WITH MDF OPERATION

STARTED SEARACH WITH INDEXED D STARTED WITH NEW-SYMBOL L 1030 STORE TAG TELLING HOW SEARCH STARTED

STORE SET OF DATA ) STORE SET OF DATA I STORE SET OF DATA )

S0001 STORE SET OF DATA I STORE SET OF DATA ) STORE SET OF DATA I STORE SET OF DATA ) STORE SET OF DATA ) FINAL STORE VARIABLE ORDER

IS THIS FIRST SET OF SEARCH ) IS THIS FIRST SET OF SEARCH I

IF SO, WHERE DID SEARCH START WITH I OR L. RESPECTIVELY

IS CARD OF TYPE 08 ) IS CARD OF TYPE 08 I D. IT IS NOT. AND WE QUIT ALPHABETIC L IS L FIXED ADDRESS I

IS L FIXED ADDRESS ) IF SO, QUIT SEARCH ) IF SO, QUIT SEARCH ) GET Op, C.I.. TAGS. OPTIM. ALOPT.

394

396 398 400

402 404

406

408 410

412 414

416

418 420

422 424

426

428 430

432 434 436

438

440

442 444

446

448
0091 95 0144 0046 J 95 K 00*6 60 0152 0257 60 R0002

0257 69 0060 0061 69 SUBR3

0060 44 0026 0064 J 44 QUITT

0064 45 0144 0019 45 K BACKW

0144 69 0197 0150 C K 69 ALOPT

0190 9* 0026 0055 94 OUITT

0055 60 0902 0307 60 0902 0307 45 0026 0136 45 OUITT B 0136 60 0153 0357 c B 60 R0003

0357 69 0110 0061 69 SUBR3

0110 35 0005 0173 J 33 0005

0173 44 0026 0078 44 QUITT

0078 *5 0032 0019 45 BCDEF BACKW

0032 65 0103 0407 N BCDEF 65 FINAL

0*07 16 0210 0113 16 MAX

0115 45 0318 0026 45 OUITT

0318 65 0903 0457 65 0903 0457 45 0026 0111 45 QUITT

0111 69 0114 0017 69 91STX

0017 24 1050 0253 1050 24 1050 0253 70 0131 1007 70 R0001

1007 65 0160 0165 65 R0010

0165 16 0068 0323 16 810TH

0323 45 0176 0227 45 LP 0176 15 0079 0233 15 710

0233 45 0236 0037 45 YYY

0037 24 0151 0104 0151 24 R0001 0104 24 0152 0103 0152 24 R0002

0105 24 0153 0236 0193 24 R0003 YYY

0256 24 0155 0227 0155 C YYY 24 R0005 LP 0227 65 0103 0041 c LP 65 FINAL LOOP

0031 69 0155 8002 Q 69 R0005 8002 0030 69 0156 8002 OS 69 R0006 8002 0210 24 1200 0028 1200 Q MAX 24 SMAX1 X 0004 90 0088 0000 K P 90 0088 0000 0014 90 0089 0000 K I 90 0089 0000

1004 90 0090 0000 K L 90 0090 0000

0079 00 0000 0007 K 710 00 0000 0007

IS ACTUALLY AN ADDRESS

IF SO, IS IT FIXED ) IF SO, IS IT FIXED 1

IF N G» QUIT SEARCH

IF FIXED, START BACKWARD PROCESSING

IS IT AN MDF OPERATION

IF SO, QUIT SEARCH

IS D INDEXED

IF SO, QUIT SEARCH

IS I A FIXED ADDRESS ) IS I A FIXED ADDRESS )

IS I A FIXED ADDRESS ) IF I IS N G. QUIT SEARCH

IF I IS FIXED. START BACKWARD

IS STORAGE AREA FULL ) IS STORAGE AREA FULL I IFSO. QUIT SEARCH

IS I INDEXED

IF SO, QUIT SEARCH

CHANGE FIRST-CARD INDICATOR TO 2ND ) 1050 CHANGE FIRST-CARD INDICATOR TO 2ND ) READ ANOTHER CARD

IS IT TYPE 08)

IS IT TYPE 08) D» IT IS NOT. I, IT IS.

IS TYPE 01 D. NO. I. YES. R0001 IF SO, PUT IN DUMMY MOVEABLE WORDS I R0002 IF SO, PUT IN DUMMY MOVEABLE WORDS I R0003 IF SO, PUT IN DUMMY MOVEABLE WORDS ) R0005 EITHER CASE. SOMETHING INTO R0005

ALL CASES. BACK TO START OF LOOP COMPARISON CONSTANT FOR STORING

TO RESTORE COMPARISON CONST + ADVANCE

SMAX1 CONSTANT FOR WHETHER STORAGE IS FULL TAG FOR SEARCH STARTED BY MDF

TAG FOR SEARCH STARTED BY INDEXED D TAG, SEARCH STARTED BY NEW-SYMBOL L

450

452 454

456

458 460

462 464

466

468 470

472 474

476

478 480

482 484 486

488

490

492 494

496

498

500

502 504

906

308 510

512 514

516

518 520

522

524 526

0026 69 10S0 0303 0303 90 0507 0258 0507 69 1030 0283 0283 96 0012 0136

0138 69 0141 0042

0141 69 0012 0045 0258 65 0103 0557 0557 10 0260 0215

0215 22 0069 0022 0022 65 8003 0229

0229 10 0082 8002 0260 69 1125 8003

0082 24 0151 0204

0204 11 0607 0161

0161 15 0038 0143

0143 44 0247 0198 0247 10 0200 8002

0198 20 0353 0106

0106 16 0069 0623

0623 45 0226 0160 0226 69 0279 0039

0279 69 1030 0403

0403 90 0657 0308 0308 69 1030 0333

0333 96 0286 0657

0657 69 0310 0042

0069

0131

0353

N SKP

SEND

X

HED

69 1050

90

69 1030

96 ABCOE

69

69 A8C0E

65 FINAL

10 BRNG

22 QC

65 8003

10 SEND

69 S0001

24 R0001

11 Q

15 16THX

44

10 QS

20 VAR

16 QC

45

69

69 1050

90 NO

69 1030

96 JUMP

69

QUIT WITHOUT FIXED ADDRESS

LOOP

8002

was there only one searched caro

d. only one. where did search start

if with i. process like 08 PROCESS l PROCESS D. AND TO 08 ROUTINE

NOT 1ST CARD. MAKE COMP. CONST. I NOT 1ST CARD. MAKE COMP. CONST. ) NOT 1ST CARD. MAKE COMP. CONST. ) BRING BACK A SET ) BRING BACK A SET ) BRING BACK A SET ) R0001 BRING BACK BRING BACK BRING BACK BRING BACK

SET SET

SET SET

R0010

SUB14

NOSUB19

BRING BACK A SET ) STORE VARIABLE ORDER

IS THIS LAST SET

IF SO, MULT I BRANCH + EXIT FROM QUITT

GET OP. C.I.. TAGS. OPTIM. ALOPT.

IS THIS FIRST QUITT SET

D, IT IS NOT

IF SO, WHERE DID WE START

D. STARTED WITH I. I. WITH L. STARTED WITH L. OR NOT FIRST. PROC. L

528 530

532 534

536

538 540

542 544

546

548 550

552 554

556

558 560

562 564

566

568 570

372 574

576 578

580

582
0310 69 0286 0049 0286 69 0139 0018

01*9 69 10** 0297 0297 2* 1050 0*53

0*53 60 0206 0057

1050

0206 65 0353 0229 0607 2* 0155 020* 0155 0200 2* 0156 020* 0156

J 69 JUMP SUB20

J JUMP 69 SUB21

J 69

2*60

81STX

1050 SB10A

J 65 VAR LOOP

2* R0005 X QS 2* R0006 X

PROCESS D PROCESS I CHANGE TAG TO SECOND-CARD TAG ) 1050 CHANGE TAG TO SECOND-CARD TAG ) PUNCH CARD

BRING VARIABLE ORDER, AND REPEAT

R0005 COMPARISON CONSTANT FOR BRINGING SET R0006 TO RESTORE AND ADVANCE

58*

586

588 590

592 59*

596

598

BACKWARDS ROUTINE

0019 69 1050 0503

0503 90 0707 0358 0707 69 1030 0383

0383 96 0336 0188 0336 95 0032 0012

0188 0067

0356 016*

0020

0085

0191 0087

0193 00*9

0205 0757

0013

007 0327

69 Oil*

2* 1050

69 0211

2* 0117

69 0182

2* 0238

69 018*

2* 00*0

69 0096

2* 0052

65 0103

69 0360

22 0167

65 8001

16 0038

0067

0358 016*

0020

0085

0191 0087

0193

00*9

0205 0757

0013 0070

0327

02*3 0360 69 9999 8003 02*3 10 01*6 8002 01*6 2* 0*08 11 0263 16 0293 **

0135 0408

0261 0265 0038 0293 03*7 02*8 03*7 10 0250 8002

02*8 20 0256 69 0009 65 0907 16 0315 *5 0319 69 0*33 960553 0256

0009 0039

0553 0907 0*10 0315

0468 0319

1030 0433

0386 0288 0386 69 0189 0142 0189 69 02*1 24 0135 69 0343 24 0288 69 0090 24 0*68 69 0300 95 0255 60 0957 69

0238 0241

0182 0135 0040 0343

0184 0137

0137 0090

0052 0468

0197 0300

0603 0255

0153 0957

0460 0063 0460 65 0197 0520

0522 15 0075 0329

0518 15 0075 0329 0519 69 1050 0653

0653 90 0329 0521 0520 00 0000 0329

0521 15 0075 0329

0523 00 0000 0519

1050 0117

0238 0040

0052

0167

0182 0184

0052

N BACKW 69

90

69

96

1050

1030

A

B

95 BCDEF ABCDE

N B 69 91STX

24 1030 A c A 69

2469

24

69

2469

24

6569

2265

SEN VAR2X

P0006

SAVEL P0008

SAVED

DNl DONE FINAL

BRNG

XXXXl

8001

16 16THX LOOP

J BRNG 69 9999 8003

N LOOP 10 8002

J 24 R0005 X X 11

16 16THX

10 OS

N OUT 20

69 VAR SUB14

J 6516

4569

96

69

VAR

OFNO

1030

LSUBR6

J 69

2469

24

SAVEL P0006 SAVED

P0008 ENDED

N

c

LNO69

2469

9560

69

ENDED

DONE ALOPT

SHX R0003

NO

SUBR9

J 65 ALOPT X0003

R X0005 15 13RD XI

R X0001 15 13RD XI

R X0002 69

90 1050

XI X0004

R X0003 00 0000 XI

R X0004 15 13RD XI

P X0006 00 0000 X0002

WAS THERE JUST ONE SEARCH CARD

IF NOT. JUMP AHEAD

IF SO, WHERE DID SEARCH START

D. WITH I. It WITH L, WITH I. EXIT ACCORDING TO WHY SEARCH START ON L. FIRST-CARD TAG 1 1030 START ON L. FIRST-CARD TAG ) PRESET TO STORE AFTER PROCESSING ) VAR2X PRESET TO STORE AFTER PROCESSING ) SAVE L FROM CARD THAT STARTED SRCH ) SAVEL SAVE L FROM CARD THAT STARTED SRCH ) SAVE D FROM CARD THAT STARTED SRCH I SAVED SAVE D FROM CARD THAT STARTEO SRCH ) PRESET EXIT FROM BACKWARDS ROUTINE ) DONE PRESET EXIT FROM BACKWARDS ROUTINE »

. BRING BACK A SET ) BRING BACK A SET ) XXXXl BRING BACK A SET I BRING BACK A SET I BRING BACK A SET I BRING BACK A SET ) BRING BACK A SET ) R0005 BRING BACK A SET I BRING BACK A SET I BRING BACK A SET ) BRING BACK A SET ) BRING BACK A SET I VAR STORE VARIABLE ORDER

GET OP, C.I., TAGS. OPTIM, ALOPT.

IS THIS LAST SET ) IS THIS LAST SET ) D, NO. I, YES.

IF SO, WHERE DID SEARCH START

D. WITH I. I, WITH L. PROCESS I BACKWARD

BRING BACK L AND D ) P0006 BRING BACK L AND D I BRING BACK L AND D ) P0008 BRING BACK L AND D t WITH L« ALTER EXIT ) DONE WITH L. ALTER EXIT ) IS D AN ACTUAL ADDRESS

D» NO, I , YES. BRING ALPHABETIC I ANALYZE I, FOR TYPE OF ADDRESS

MULTIPLE EXIT. ACCORDING TO KIND

800X, CALL IT UNFIXED

ADDRESS N G. CALL UNFIXED

BLANK ADDRESS. IS THIS FIRST CARD

FIRST. UNFIXED. OTHER. FIXED.

DRUM. OLD SYMB. REG. FIXED

NEW SYMBOL. UNFIXED

CORE. TREAT SAME AS BLANK

600

602 60*

606

608 610

612 614

616

618 620

622 624

626

628 630

632 634

636

638 640

6*2 64* 6*6

6*8 650

652 654

656

658 660

662 664

666

668 670

672 674

676

678 680

682 684

686

688 690

692 69*

696

698 700

702

704 706

708
052*

0329

0350

1057

00

20

60

69

0000

0197

0132

0510

0329

0350

1057 0063

0197

Rc X0007

XI 0020

60

69

0000 ALOPT

R0002

XI

SUBR9

0510 65 0197 0527 J 65 ALOPT X0010

0529 15 0132 0187 R X0012 15 12NDX X2

0525 15 0132 0187 R X0008 15 12NDX X2 0526

0703

69

90 1050 0187

0703

0528

R X0009 69

90 1030X2 X0011 0527 00 0000 0081 R X0010 00 0000 F

0528 15 0132 0187 R X0011 15 12NDX X2 0530 91 0526 0525 R X0013 91 X0009 X0008

0531 01 0666 0531 R X001* 01 0666 X001*

0187

0081 0*36

20

9199

0197

003*

01*0

0081 0*36

0291

0197 NC

X2

F 20

9199

ALOPT

XX 8 FMISC

01*0 98 6291 01*5 98 HISC 899 003* 99 0338 0239 N XX8 99 9X8 0338 98 03*1 0393 98 888 898

0261 2» 0151 0*08 0151 2* R0001 X 0250 2» 0150 0*08 0150 OS 2* ROOOO X 0*10 69 112* 8003 OF 69 SOOOO 8003

0075 00 1000 0000 K 13RD 00 1000 0000

OTHER ADDRESS. FIXED

ALOPT STORE MODIFIED ALOPT ALPHABETIC D, TO SEE WHETHER FIXED ANALYZE D MULTIPLE EXIT

800X ADDRESS. UNFIXED

D IS N G. CALL UNFIXED

BLANK. IS THIS FIRST CARD

NO. FIXED. YES. UNFIXED. OLD SYMBOL. DRUM, REGION. FIXED

NEW SYMBOL. UNFIXED

CORE. BRANCH, LIKE BLANK. ARITH, UNF

OTHER. ERROR. SHOULD NOT BE HERE. ALOPT STORE MODIFIED ALOPT MULTIPLE BRANCH ACCORDING TO TAGS ) MULTIPLE BRANCH ACCORDING TO TAGS ) MULTIPLE BRANCH ACCORDING TO TAGS I MULTIPLE BRANCH ACCORDING TO TAGS ) MULTIPLE BRANCH ACCORDING TO TAGS ) R0001 COMPARISON CONSTANT FOR END OF SET

ROOOO RESTORE COMPARISON CONSTANT AND MODIFY

710

712 71*

716

718

720

722 72*

726

728

730

732 73* 736

738 7*0

7*2 7**

7*6

7*8

750

752 75*

0291 69 019* 01*2 019* 69 0397 0*00

0397 69 0052 0303

FIXED I, OR BOTH UNFIXED. ARITHMETIC

N MISC 69 SUBR6 PROCESS I BACKWARDS

J 69 LNM SUBR5 PROCESS D BACKWARDS

J LNM 69 DONE SUBR* PROCESS L BACKWARDS

756

758

760

762

0603 69 0306 00*5 N SHX 69 0306 69 0397 01*2 J 69 LNM

SHIFT OR INDEXING OPERATION

SUB20 PROCESS D FORWARDS

SUBR6 PROCESS I BACKWARDS

76*

766

768

01*3 69 0298 0*00

0298 69 0101 0018

0101 65 0397 0201

UNFIXED I. FIXED D. ARITHMETIC

N 899 69 SUBR5 PROCESS D BACKWARDS

J 69 SUB21 PROCESS I FORWARDS

J 63 LNM SUB22 SAyE ORCEO

770

772 77*

776

0393 69 0196 0*00 0196 69 01*9 0305 01*9 69 0102 0018 0102 65 0052 0201

UNFIXED It FIXED D. BRANCH OPERATION

N 898 69 SUBR5 PROCESS D BACKWARDS

J 69 SUBR* PROCESS L BACKWARDS

J 69 LN SUB21 PROCESS I FORWARDS

J LN 65 DONE SUB22 SAyE ORCEO

778 780

782 78*

786

0239 69 0192 01*2

UNFIXED D. BRANCH OPERATION

SUBR6 PROCESS I BACKWARDS

788

790
0192 69 0195 0305 J 69 SUBR4 0195 69 6102 0045 J 69 LN SUB20

PROCESS L BACKWARDS

PROCESS D FORWARDS

792 794

FIXED D AND It BRANCH OPERATION

0341 0232

0388 0244

0450

0251 0039

0500

69

24

69

24

65

162069

1679

0235

0391 0447

0197 0254

0197

0753

0232

0388 0244

0450

0251 0059

0500

0400

0235 0447

0197

N 888

0753 69 0356 0305 J 0356 65 0109 0113 J 0109 0217

1036

1094

0301 0237

0550

65

14

2165

152069

0062 0320

1091 0197

0132 0197

0953

0217

1036

1094

0301 0237

0550

0142

1091

0197

J

0953 69 0406 0305 J 0406 0267

1080

1038 0243

0199

65

14

65

1646

16

0062 0320

8003

1091 0348

0202

0267

1080

1038 0245 0199

1107

J

0348

1107

1546 0202 0560

1107

0311

Nc AEB

BOT 0560 65 0163 0113

0163 69 0066 0400 J 0066

0351 0287 0209

65

16

1520

0197

0132 0254

0197

0331 0287

0209

0397 0197

J

C XY

0311 65 0214 0113 N 2ND 0214 69 0317 0142 J 0317 65 0197 0287 J 0113

0438

0282 0600

6924

69

24

0235

1679 0447

0391

0438

0282

0600

8002

1679

0391

N SSB

0096

0321

6510 0117

0024

0321 8003J DN1

0024 69 0186 8002 J 0211 0252

0259

0443

24

111644

1199 0335

0038

0497

0252

0259

0443

0398

1199 J SEN

0497 10 0650 8003 0398

0370

2065 0117

0553

0570 02430117 N OUT;

0353 69 0182 8002 Q 02 0650 69 0181 8002 Q OS2

69 BLANB

24 Tl

69 ORCEB

24 T2

65 ALOPT

16 11STX

20 ALOPT

69 SUBR5

69 SU8R4

65 SSB

65 OPRE6

14 50IXX

21 OLD

65 ALOPT

15 12NDX

20 ALOPT

69 SUBR6

69 SUBR4

65 OPREG

14 50IXX

65 8003

16 OLD

46 AEB

16 25IXX BOT

15 25IXX BOT

46 2ND

65 SSB

69 SUBR5

65 ALOPT

16 12NDX XY

15 11STX

20 ALOPT LNM

65 SSB

69 SUBR6

65 ALOPT XY

69 Tl 24 BLANB

69 T2 24 ORCEB 8002

65 VAR2X

10 8003

69 P0010 8002

24 SMAXM

11 02

16 16THX

44 OUT 2

10 0S2 8003

20 VAR2X

65 VAR LOOP

69 P0006 8002

69 P0005 8002

SAVE IN CASE I IS BLANK

Tl SAVE IN CASE I IS BLANK

SAVE IN CASE I IS CORE ) T2 SAVE IN CASE I IS CORE 1 ALOPT TO LOWER CHANGE ITS FIRST DIGIT TO 8 ALOPT STORE MODIFIED ALOPT PROCESS D BACKWARDS

PROCESS L BACKWARDS FROM D BRING BACK BLANB AND ORCEB SAVE DYNAMIC LEVEL OF L FROM D ) SAVE DYNAMIC LEVEL OF L FROM D ) DLD SAVE DYNAMIC LEVEL OF L FROM D ) MODIFY TO USE ROUTINE FOR UNFIXED D MODIFY TO USE ROUTINE FOR UNFIXED D ALOPT MODIFY TO USE ROUTINE FOR UNFIXED D PROCESS I BACKWARDS

PROCESS L BACKWARDS FROM I WHICH L IS LESS. MEASURED ON CIRCLE WHICH L IS LESS. MEASURED ON CIRCLE WHICH L IS LESS. MEASURED ON CIRCLE WHICH L IS LESS. MEASURED ON CIRCLE WHICH L IS LESS. MEASURED ON CIRCLE WHICH L IS LESS. MEASURED ON CIRCLE WHICH L IS LESS. MEASURED ON CIRCLE ) D. WE WILL USE ONE MEASURED FROM D BRING BACK BLANB AND ALOPT ONCE MORE PROCESS BACKWARDS D ONCE MORE MODIFY ALOPT AGAIN ) MODIFY ALOPT AGAIN ) MODIFY ALOPT AGAIN ) ALOPT STORE NEW ALOPT. AND JUMP BACK

USE I-COMP. BRING BLANB AND ORCEB PROCESS I BACKWARDS AGAIN

BRING ALOPT. AND JUMP BACK

SPEC. SUBR. BLANB SPEC. SUBR. SPEC. SUBR. ORCEB SPEC. SUBR.BRING BACK BLANB + ORCEB

BRING BACK BLANB + ORCEB

BRING BACK BLANB + ORCEB

BRING BACK BLANB + ORCEB

ALL CASES. STORE PROCESSED CARD ) STORE PROCESSED CARD ) STORE PROCESSED CARD ) SMAXM STORE PROCESSED CARD ) STORE PROCESSED CARD ) STORE PROCESSED CARD ) STORE PROCESSED CARD I STORE PROCESSED CARD ) VAR2X STORE PROCESSED CARD I BRINGING ORDER. BACK FOR ANOTHER CARD COMPARISON CONSTANT FOR END OF SET RESTORE CONSTANT AND MODIFY

796

798 800

802 804

806

808 810

812 814

816

818 820

822 824

826

828

830

832 834

836

838

840

842 844 846

848

852 854

856

858

860

862

864 866

868 870

872 874

876

878 880

882 884

886

888 890

892 894

896

898

0137 63 0117 0571 0571 69 0074 0377 0377 22 0167 0620 0167

BACKWARDS PUNCH

65 VAR2X

69 BRNG

MAKE NEW BRINGING ORDER ) MAKE NEW BRINGING ORDER t XXXX1 MAKE NEW BRINGING ORDER )

900

902 904

906

908
0620 60 0673 0057

0673 0621 0379

0332

0289

0547

65 0167

16 0174

45 0332

15 8001

10 0242

15 0038

0621 0379

0483

0289

0547

8002 0074 69 9999 8003 0242

0285

0493 0597

0448

0483 0339

0488 0700

0174

24 0182

11 0488

44 0597

10 0700

20 0167

69 0486

24 0292

24 0186

24 0187

69 1199

0285 0182 0493

0448 0547

0620 0167 0339

0003 0292 0285 0186

0285 0187

8003

C LOOP

J

C A

J BRNG

J SEND

N OUT

N OVR

O OS

OL

65 XXXX1

16 OL

45

15 8001

10 SEND

15 16THX

24 PO006

11 Q 44

10 OS

20 XXXX1

69 SAVOR

24 ORCEO

24 P0010

24 POOH

69 SMAXM

8002 8003

XOUT

ALOOP

READC

X

X 8003

TO SUB 10A TO PUNCH ONE CARD BRING BACK A SET OF RESUTTS ) BRING BACK A SET OF RESULTS ) BRING BACK A SET OF RESULTS I BRING BACK A SET OF RESULTS ) BRING BACK A SET OF RESULTS ) BRING BACK A SET OF RESULTS ) BRING BACK A SET OF RESULTS ) P0006 BRING BACK A SET OF RESULTS ) BRING BACK A SET OF RESULTS ) BRING BACK A SET OF RESULTS ) BRING BACK A SET OF RESULTS ) XXXX1 STORE MODIFIED BRINGING ORDER + REPEAT FINISHED. ORCEO FINISHED.

P0010 POOH

SAVE SAVOR AS ORCEO ) SAVE SAVOR AS ORCEQ )

910

912 914

916

918

920

922

926

928 930

932 934

936

938 940

942 944

SUBROUTINE 1. INITIALIZE AT START OF A PROGRAM 946

948 0006

0231

24

61 01780134

0231 8003

0178 N SUBR1 24

61 EXITY

0134

0302

0309

20

1046

189" 0403 0112

0302 0309

0213

1899 J 20

1046

ZMAX1

OA

0112 11 0365 8003 11 OSA

0213 0234

0647

0072 0429

20

6924

6510

0181 1044

1669 0175

0382

0234

0647

0072 0429

8003

0181 1669

N OUT 2069

24

65

10

P0005 81STX DRUMT AVAL

0382

1307

0415 0569

20

1146

10

1554 0610

0178

0322

1307 0415 0569

8003

1554 J 20

1146

10

A0200

OBEXITY

QSB 0405 20 1661 0000 1661 Q OA 20 G0002

0365 20 1660 0000 1660 Q OSA 20 G0001 0610 20 1336 0000 1356 OB 20 A0002

0322 20 1355 0000 1355 QSB 20 A0001 0175 11 1111 1111 K AVAL 11 1111

800? 0000 G0002

0000 G0001 0000 A0002

0000 A0001

1111

EXITY STORE EXIT CLEAR REGION AND SYMBOL TABLES ) ZMAX1 CLEAR REGION AND SYMBOL TABLES ) CLEAR REGION AND SYMBOL TABLES ) CLEAR REGION AND SYMBOL TABLES I CLEAR REGION AND SYMBOL TABLES ) P0005 CLEAR CARD NUMBER PRESET DRUM TAG ) DRUMT PRESET DRUM TAG ) MAKE DRUM AVAILABLE ) MAKE DRUM AVAILABLE I A0200 MAKE ORUM AVAILABLE ) MAKE DRUM AVAILABLE ) MAKE DRUM AVAILABLE I MAKE DRUM AVAILABLE ) COMPARISON CONSTANT

RESTORE COMPARISON CONSTANT AND MODIFY COMPARISON CONSTANT

RESTORE COMPARISON CONSTANT AND MODIFY AVAILABILITY WORD

950

952 954

956

958 960

962 964

966

968 970

972 974

976

978 980

982 984

986

988

0750 21 0304 0458

0458 35 0001 0465 0465 65 8002 0723 0723 10 0326 0281

0281 30 0001 0337 0337 10 0304 0359

0900 65 1003 0308 0508 43 0162 0178

0162 16 0515 0619

0619 20 1003 0456 0456 60 0108 0263

0263 11 0116 0671

0671 46 0324 0223 0324 10 0427 0331

0331 21 0108 0361

0361 10 0264 8003

0304 R XX

1003

HED

EOU SA

21 UH

33 0001

65 8002

10 W 30 0001

10 UH

65 N 45

16 110TH

20 N 60 SA

11 79t 46

10 80Ci 21 SA

10 C4

SUBROUTINE 2. RESERVE OR UNRESERVE A BLOCK OF DRUM HSYMB DOUBLE-PURPOSE TO CONSERVE DRUM SPACE

UH REPLACE DIGIT OF AVAIL. WORD BY W ) REPLACE DIGIT OF AVAIL. WORD BY W ) REPLACE DIGIT OF AVAIL. WORD BY W ) REPLACE DIGIT OF AVAIL. WORD BY W ) REPLACE DIGIT OF AVAIL. WORD BY W ) SPR REPLACE DIGIT OF AVAIL. WORD BY W » HAVE wE FINISHED

D» WE HAVE NOT FINISHED. It WE HAVE. REDUCE NUMBER YET TO BE DONE ) REDUCE NUMBER YET TO BE DONE ) ARE WE TO LAST LINE OF TABLE ) ARE WE TO LAST LINE OF TABLE 1 D. NOT LAST LINE. RESTORE. AND TAKE WORD FROM NEXT LINE STORE VARIABLE STORING ORDER

MAKE VARIABLE BRINGING ORDER

990

992 994

998

1000

1002 1004

1006

1008 1010

1012 1014

1016

1018 1020

1022 1024

1026

1028
1025 2* 0178 0381 0178 N SUB2R 24 EXITY

0381 69 1680 0533 69 ZEROX RU

1075 24 0178 0*31 0178 N SUB2U 2* EXITY

0*31 69 0515 0533 69 110TH RU

0533 24 0326 0*79 0326 C RU 24 W 0*79 21 028* 0387 0284 21 XXXXA

0387 20 1003 0506 1003 20 N 0506 11 0*09 0313 11 20001 0313 46 0166 0178 46 EXITY

0166 10 1003 0558 10 N 0558 46 0*11 0212 46 OK 0212 16 8003 0669 16 8003

0669 16 0515 0719 16 110TH

0719 20 1003 0*11 1003 20 N OK

0411 60 028* 0389 c OK 60 XXXXA 0389 10 8001 0295 10 8001 0295 30 0003 1053 30 0003

1053 21 0658 0*61 0658 21 X 0*61 11 8001 0367 11 8001 03*7 35 0001 0773 35 0001 0773 21 0228 0*81 0228 21 P 0*81 11 8001 0*37 11 8001 0*37 35 0002 05*3 35 0002 05*3 10 8003 0*01 10 8003

0*01 10 0658 0363 10 X 0363 15 0228 0583 15 P 0583 35 0004 0593 35 0004

0593 69 02*6 02*9 69 CI 02*9 22 0901 035* 0901 22 0901 035* 69 •T08 0311 69 C2 0511 22 0359 0262 0559 22 SPR 0262 10 0565 0331 10 C3 SU 0223 65 0359 0*13 N TP 69 SPR 0*13 16 0708 0*63 16 C2 0*63 45 0216 0417 *5 ZP 0216 15 0769 0973 15 C5 0973 69 02*6 0299 69 CI 0299 22 0901 0*0* 0901 22 0901 0*0* 20 0359 0312 0359 20 SPR 0312 60 0108 0513 60 SA 0513 11 0266 0331 11 C6 SU 0*17 69 02*6 03*9 N ZP 69 CI 03*9 24 0901 0*5* 0901 24 0901 0*5* 69 0758 0561 69 C7 0561 24 0359 0362 0359 2* SPR 0362 60 0108 0563 60 SA

0563 11 0316 0331 11 C8 SU 02*6 35 0000 0750 P CI 35 oooo XX 0708 30 0009 0108 P CZ 30 0009 SA 0565 20 1355 0900 1355 P C3 20 A0001 0900

026* 45 0000 0001 P C* *5 OOOO 0001 0116 20 1551 0900 1551 796 20 A0197 0900 0*27 20 1555 0900 1555 800 20 A0201 0900 0769 30 0010 0108 Q C5 30 0010 SA 0266 00 0196 0000 P C6 00 0196 0000

0758 30 0000 0108 P C7 30 0000 SA 0316 00 0195 0000 P C8 00 0195 0000

EXITY ENTRY TO RESERVE. STORE EXIT. BRING ZERO TO INDICATE RESERVATION

EXITY ENTRY TO UNRESERVE. STORE EXIT. BRING UNITY TO INDICATE UNRESERVATION

W STORE OR 1 XXXXA STORE INITIAL ADDRESS TO BE RESERVED

N STORE N-l

IS INITIAL ADDRESS LESS THAN 2000

It OVER 1999. WE RESERVE NOTHING

UPPER, LAST ADDRESS - 2000

I t LAST ONE WOULD BE OVER 1999 MODIFY TO END WITH 1999 ) MODIFY TO END WITH 1999 ) N MODIFY TO END WITH 1999 ) MAKE SEVERALVARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS I MAKE SEVERAL VARIABLE ORDERS ) X MAKE SEVERAL VARIABLE ORDERS I MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) P MAKE SEVERAL VARIABLE ORDERS I MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) 0901 MAKE SEVERAL VARIABLE ORDERS > MAKE SEVERAL VARIABLE ORDERS ) SPR MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS > BOTTOM LINE OF TABLE

IS IT ALSO RIGHT END OF WORD

Dt NO MOBtfY TO TAKE NEXT COLUMN OF TABLE ) MODIFY TO TAKE NEXT COLUMN OF TABLE 1 0901 MODIFY TO TAKE NEXT COLUMN OF TABLE 1 SPR MODIFY TO TAKE NEXT COLUMN OF TABLE I MODIFY TO TAKE FIRST LINE. SAME COLUMN MODIFY TO TAKE FIRST LINE. SAME COLUMN

LAST LINE AND END OF WORD. MODIFY ) 0901 LAST LINE AND END OF WORD. MODIFY ) LAST LINE AND END OF WORD. MODIFY ) SPR LAST LINE AND END OF WORD. MODIFY ) LAST L'NE AND END OF WORD. MODIFY ) LAST LINE AND END OF WORD. MODIFY )

TO PRESET LEFT SHIFT ORDER PRESETTER AND ALSO COMPARISON CONSTANT

A0O01 INITIAL OF STORING ORDER DIFFERENCE OF BRINGING AND STORING ORD

A0197 COMPARISON CONSTANT FOR LAST LINE

A0201 TO RESTORE FOR NEXT LINE OF TABLE

TO RESTORE AFTER SUBTRACTING C2

TO MODIFY BRINGING ORDER FOR NEXT COL PRESETTER FOR START OF NEW COLUMN

MODIFY BRINGING ORDER TO START NEW COL

1030

1032 1034

1036

1038 1040

1042 1044

10*6

10*8

1050

1052 1054

1056

1058 1060

1062 1064

1066

1068

1070

1072 1074

1076

1078

1080

1082 1084

1086 1088 1090

1092 1094

1096

1098 1100

1102

1104

1106

1108 1110

1112 1114

1116

1118 1120

1122 1124

1126

1128 1130

1132 1134

1136

1138 1140

11*2

0061 24 0177 0030 0177 N SU8R3 24 EXITX 0030 69 0633 0063 69 SUBR9

0633 65 0536 0220 J 65 EQUIV F0003

0218 60 0068 0177 R F0001 60 810TH EXITX

0219 65 0068 0177 R F0002 65 810TH EXITX

0220 65 1660 0177 N F0003 65 ZEROX EXITX

0221 65 0068 0177 R F0004 65 810TH EXITX

SUBR 3 FIND WHETHER ADDR IN UPPER IS FIXED

EXITX STORE EXIT

TO SUBROUTINE 9 TO ANALYZE THE ADDRESS BRING EQUIV AND MULT1BRANCH

ADDRESS IS N G BLANK ADDRESS

DRUM ADDRESS. OR EQUIVALENT TO DRUM SYMBOLIC ADDRESS. WITH UNDEFINED SYMB

11*4

1146

1148 1150

1152 1154

1156

1158 1160
0222 35 0005 0177

0223 65 0068 0177

022* 60 0068 0177

R F0005 35 0005 EXITX

R F0006 65 810TH EXITX

R F0007 60 810TH EXITX

800X ADDRESS

CORE ADDRESS

OTHER ADDRESS. USUALLY PART OF CONST.

1162 1164

1166

SUBR 4 PROCESS BACKWARDS L

0305 2t 0177 0080 0177 N SUBR4 24 EXITX

0080 60 0151 0455 60 R0001

0455 69 0908 0063 69 PRE SUBR9

0908 65 0536 0271 J PRE 65 EOUIV M0004

0268 20 1679 0271 1679 N M0001 20 BLANB M0004

0269 60 0622 0627 R M0002 60 87THX SB10B

0270 69 1044 0697 R M0003 69 81STX

0697 24 1050 1103 1050 24 1050

1103 65 0556 0611 65 SUB11

0556 00 0989 0268 00 0989 M0001

0271 20 018' 0335 0182 N M0004 20 P0006 SB10C

0272 65 0325 0611 R M0005 65 SUB11

0325 00 0989 0276 J 00 0989 M0009

0273 01 0555 0273 R M0006 01 0555 M0006

0274 20 0182 0385 0182 R M0007 20 P0006

0385 69 0538 0441 69 SUB13

0538 00 0909 0342 J 00 0909

0342 20 0391 0335 0391 20 ORCEB SB10C

0275 01 0555 0275 R M0008 01 0555 M0008

0276 69 0197 0950 N M0009 69 ALOPT

0950 90 0271 0505 90 M0004

0505 69 0908 0661 69 PRE SUBR7

0277 00 0000 0269 R M0010 00 0000 M0002

EXITX STORE EXIT ALPHABETICAL L INTO UPPER ANALYZE THE ADDRESS EQUIVALENT TO LOWER. MULTIBRANCH

BLAN6 STORE EQUIVALENT OF BLANK ADDRESS

N, 6. OMIT PUNCHING

BLANK, CHANGE FIRST-CARD TAG ) 1050 CHANGE FIRST-CARD TAG ) FIND BEST EQUIVALENT TO BLANK

TAGS AND EXIT FOR SUBROUTINE 11 P0006 DRUM ADDRESS. STORE FOR PUNCHING

NEW SYMBOL. FIND BEST EQUIVALENT

TAGS AND EXIT FOR USE IN SUBROUTINE 11 800X ADDRESS. STOP THE MACHINE

P0006 CORE ADDRESS. STORE FOR PUNCHING

FIND DYNAMIC LEVEL OF CORE ADDRESS

TAGS AND EXIT FOR USE IN SUBR 13 ORCEB STORE DYNAMIC LEVEL OF CORE ADDRESS

OTHER ADDRESS. STOP MACHINE

EQUIV OF NEW SYMBOL.

D, CASE WHERE WE DUPLICATE COMPUTATION

USUAL CASE. STORE SYMBOL AND EQUIV

NEW SYMBOL. BUT SYMBOL TABLE FULL

1168

1170. 1172 1174

1176

1178

1180

1182 1184

1186

1168 1190

1192 1194

1196

1198 1200

1202 1204

1206

1208 1210

1212 1214

SUBROUTINE 5 PROCESS BACKWARDS D

0400 0230

0958

24

60

69

0177

0152

0711

0230 0177

0958 0063

N SUBR5 24

60

69

EXITX

R0002

PRE SUBR9

0711 65 0536 0921 J PRE 65 EQUIV C0004

0918 20 1023 0376 1023 N COOOl 20 BLANK A 0919 60 0672 0627 R COO02 60 8STHX SB10B

0920

1353

69

90 1050

1008

1353

1058

R C0003 69

90 1050

BB1 1008 65 1679 0376 65 BLANB A 1058 65 0761 0611 N BB1 65 SUB11

0761 00 0988 0918 J 00 0988 COOOl

0921 69 0624 0677 N C0004 69 INDEX 0624 00 0000 0376 J 00 0000 A 0922 65 0625 0611 R C0O05 65 SUB11

0625 00 0988 0926 J 00 0988 C0009

0923 69 0426 0441 R C0006 69 SUB13

0426

0280

0069 0908 0683

0280

0586

J 00

69 0908 SUB17

0683

0491

66

15 8002 0294

0491

0335

J 66

15 8002 XXXX2 SB10C

0924 69 0727 0677 R C0007 69 INDEX

EXITX STORE EXIT ALPHABETIC D INTO UPPER ANALYZE THE ALPHABETIC D ADDRESS

BRING EQUIVALENT. MULTIBRANCH

BLANK STORE EQUIV OF BLANK FOR FORWARD L

N G. OMIT PUNCHING

BLANK ADDRESS. WAS THERE BLANK BACK L

D, THERE WAS A BLANK BACKWARDS L BRING EQUIVALENT OF BLANK BACKWARD L GET BLANK D DYNAMICALLY FROM I TAGS AND EXIT FOR SUBROUTINE 11 DRUM OR EQUIVALENT. INDEX IF TAGGED TAG-IDENTIFICATION. AND EXIT FROM 18 NEW SYMBOL. FIND BEST EQUIVALENT

EXIT AND TAGS FOR SUBROUTINE 11 800X ADDRESS. GET DYNAMIC LEVEL

TAGS AND EXIT FOR SUBROUTINE 13 CORRECTION TO DYNAMIC LEVEL CHANGE SIGN OF CORRECTION

ADD To GIVE MODIFIED DYNAMIC LEFEL

CORE ADDRESS. INDEX IT

1218 1220

1222 1224

1226

1228 1230

1232 1234

1236

1238 1240

1242 1244

1246

12*« 1250

1252 1254

1256

1258

1260

1262
0727 00 0000 0631

0631 20 0184 0487 0487 69 0190 0441 0190 00 0908 0344

0344 69 1050 0504 0504 90 0335 0459

0459 20 0486 0335 0376 20 0062 0925 0925 20 0184 0177

0926 69 0711 0661

0927 00 0000 0919

0184

J 00

20

69

0000

P0008 SUB13

0486

J 00

6990

20

0908

1050 SBIOC

SAVOR S810C

0062 0184

N

R

AC0008

2020 OPREG

P0008

C0008

EXITX

N C0009 69 PRE SUBR7

R C0010 00 0000 C0002

ADDEND AND EXIT FOR SUBROUTINE 18 P0008 STORE CORE ADDRESS FOR PUNCHING

GET DYNAMIC LEVEL OF CORE ADDRESS

TAGS AND EXIT FOR SUBROUTINE 13 FIRST-CARD TAG

D. WE SHOULD STORE THIS DYNAMIC LEVEL

SAVOR STORE DYN LEV OF CORE» AND FINISH UP OPREG STORE ADDRESS FOR OPTIMIZING NEXT ADDR

P0008 MISC ADDR. STORE FOR PUNCHING. EXIT STORE EQUIVALENT OF NEW SYMBOL

NEW SYMBOL. BUT'TABLE FULL. N.G.

1264

1266

1268

1270

1272 1274

1276

1278

1280

1282

1284

SUBROUTINE 6 PROCESS BACKWARDS I

0142

0330

1108

24

60

69

0177 0153

0911

0330

1108 0063

0177 N SUBR6 24

60

69

EXITX

R0003

PRE SUBR9

0911 65 0536 0371 J PRE 65 EOUIV J0004

0368 69 0911 0661 N J0001 69 PRE SUBR7

0369 60 0722 0627 R J0002 60 89THX SB10B

0370

0772

69

90 1669 0626

0772

0369

R J0003 69

90 DRUMTJ0002

0626

0371 0615

6524

69

1679 0062

0568

0371

0615 06770062 N J0004

65

24

69

BLANB OPREGJ0004

INDEX

0568 00 0001 0375 J 00 0001 J0008

0372 65 0675 0611 R J0005 65 SUB11 0675 00 0990 0368 J 00 0990 J0001 0373 01 0000 0373 R J0006 01 0000 J0006

0374 69 0391 0371 R J0007 69 ORCEB J0004

0375 20 0185 0177 0185 R J0008 20 P0O09 EXITX

EXITX STORE EXIT ALPHABETIC I TO UPPER ANALYZE ALPHABETIC I BRING EQUIVALENT. MULTIBRANCH

STORE EQUIVALENT OF NEW SYMBOL

N.G. OMIT PUNCHING

BLANK I. IS DRUM FULL

D. DRUM IS NOT FULL BRING EQUIVALENT OF BLANK BACKWARD L OPREG DRUM OR DRUM EQUIVALENT

TO SUBROUTINE 18 TO INDEX ADDEND AND EXIT FOR SUBROUTINE 18 NEW SYMBOL. FIND BEST VALUE

TAGS AND EXIT FOR SUBROUTINE 11 800X RANGE. ERROR. CORE. BRING DYNAMIC LEVEL

P0009 OTHER ADDRESS. USUALLY A CONSTANT

1286

1288 1290

1292 1294

1296

1298 1300

1302 1304

1306

1308 1310

1312 1314

1316

1318 1320

1322

HED

0661 24 0179 0432 0179 N SUBR7 24 EXITZ

0432 65 0435 0439 65 LSYMB

0439 15 0392 0747 15 SS 0747 69 0108 8002 69 HSYMB 8002 0392 24 1689 0442 1689 J SS 24 Z0001 0442 65 0435 0489 65 LSYMB

0489 14 0492 1029 14 2DXXX

1029 35 0004 1039 35 0004

1039 20 0294 0797 0294 20 XXXX2 0797 15 1000 0555 15 PI 0555 20 0167 0670 0167 20 XXXX1 0670 44 1073 0674 44 IPOS 0674 65 0536 0541 65 EOUIV

0541 35 0004 0451 35 0004

0451 10 0554 0509 10 P2 A 0509 10 0294 0167 C A 10 XXXX2 XXXX1

1073 65 0536 0591 N IPOS 65 EOUIV

0591 10 0394 0509 10 P3 A 1000 69 1555 8003 P PI 69 EO001 8003 0554 22 155i 0179 1555 P P2 22 E0001 EXITZ

0394 23 1555 0179 1555 P P3 23 E0001 EXITZ

SUBROUTINE 7 STORE SYMBOL AND ITS EQUIVALENT

EXITZ STORE EXIT SYMBOL-STORING ORDER I SYMBOL-STORING ORDER ) STORE SYMBOL ) Z0001 STORE SYMBOL I LOCATION OF EQUIVALENT RELATIVE TO El LOCATION OF EQUIVALENT RELATIVE TO El LOCATION OF EQUIVALENT RELATIVE TO El XXXX2 LOCATION OF EQUIVALENT RELATIVE TO El MAKE BRINGING ORDER I XXXX1 MAKE BRINGING ORDER ) D. USE I-POSITION. I. USE D-POSITION. BRING EQUIVALENT

SHIFT TO D POSITION

MAKE STORING ORDER ) MAKE STORING ORDER ) USE I-POSITION. BRING EQUIVALENT

MAKE STORING ORDER

INITIAL OF BRINGING ORDER

E0001 INITIAL OF ORDER TO STORE D-POSITION

EO001 INITIAL OF ORDER TO STORE I-POSITION

1324

1326 1326

1330

1332 1334

1336

1338 1340

13*2 1344

1346

1348 1350

1352 1354

1356 1358

1360

1362 1364

1366

1368

1024 24 0177 0380 0177

HED

24 EXITX

SUBR 8 PROCESS TYPE 2 ADDR . ALPH IN UPPER. NUMERIC. LOWR

EXITX STORE EXIT

1370

1372 1374
0380 0559

1146 0254

0412 05590613

1146 11STX

FXT

0412

0969

0777

0663

10

60

1146

8001 8002 0409

0366

0969 0777

0663 0467

1060

1146

8001 8002

20001

RC 0366

1123

1046 1019 0676

1123 0977

1046 DO IFF BAD

0676 10 0409 0713 10 20001 RES

0467

1223 0681 0539

10

10

1146

8001 0726

0334

0542

1223 0681 0539

0977

N RC 10

10

1146

8001 COIFF

9060 BAD

0542

0713

0720

1021698001 0167

1273

0713

0720 0167 C 1025 RES

10

2169

8001 XXXX1RES SUB2R

1273 65 0167 0177 J 65 XXXX1 EXITX

0613 65 8002 0177 N FXT 65 8002 EXITX

0977 60 0622 0177 N BAD 60 87THX EXITX

0334 00 0000 9060 K 9060 00 0000 9060

IS FIRST POSITION BLANK

Ii FIRST IS NON-BLANK. FIXED ADDRESS.

RESTORE TO POSITIVE

NUMERIC ADDRESS ALONE IN UPPER

SUBTRACT 2000

D, DRUM. It CORE. DRUM. ADD RELOCATION AMOUNT

It RELOCATED DRUM WILL EXCEED 1999 RESTORE RELOCATED DRUM ADDRESS

CORE ADDRESS. RESTORE THE 2000

ADD RELOCATION AMOUNT SUBTRACT 9060

It RELOCATED CORE AODRESS TOO HIGH RESTORE THE 9060

XXXX1 STORE ADDRESS TEMPORARILY

RESERVE IF DRUM ADDRESS EQUIVALENT BACK TO LOWER AND EXIT FIXED ADDRESS. CLEAR UPPER AND EXIT. MODIFIED ADDR TOO HIGH. 8000 TO UPPER

1376

1378 1380

1382 1384

1386

1388 1390

1392 1394

1396

1398 1400

1402 1404

1406

1408 1410

1412 1414

SUBROUTINE 9. ANALYZE AN ADDRESS

1002 44 1005 0606

1005 11 0108 0763

0763 44 0517 0618

0618 46 0517 0972

0517 10 8001 1323

1323 65 8002 0731

0731 15 0384 8002

0063 24 0179 0482 0179

0482 45 0636 0537

0537 61 0515 1069 0636 21 0108 0961 0108

0961 30 0008 0629

0629 21 0294 0947 0294

0947 11 8001 0604

0604 16 1208 0913

0913 46 0416 0567

0567 11 8003 0725

0725 45 0278 0679

0278 35 0001 0485

0485 44 0416 0240 0240 10 8001 0997 0997 35 0001 0567

0679 65 8001 0535 0535 30 0001 0641

0641 20 0536 0589 0536 0589 10 0294 0399

0399 44 0654 0704

0654 11 1308 0963 0963 46 0466 0416 0466 10 1119 0724

0724 46 0416 0328 0328 35 0004 0639

0639 10 0592 8003

0592 65 1660 0665

0665 45 0668 1219 0668 15 0536 0691

0691 16 0515 1269

1269 23 0536 0704 0536 0416 60 0108 1013 1013 35 0008 0781 0781 44 0585 0686

0585 69 0038 0741

0741 24 0384 0587 0384

C LOOP 44

1144 HSYMB

NZ

UND

46 NZ DEF

c NZ 10

65

15

8001 8002

T 1

N SUBR9 24

45 EXITZ

ABC

61 110TH DON

N ABC 2130

21

1116

HSYMB

0008

XXXX2

8001

909

46 SYM LOO

C LOO 1145

3544

10

8003

0001 SYM

8001

OUT

35 0001 LOO

N OUT 6530

20

1044

1146

10

46

35

10

8001 0001 EOUIV

XXXX2

99THX

29IXX SYM

0004

ABS

SYM

1

J 65

45

1516

G0001

EOUIV

110TH

NG

23 EOUIV ABS

N SYM 60

354469

24

HSYMB

0008

16THX

T

SHR'

It SYMBOL IS NOT IN THE TABLE

SOME SYMBOL WAS FOUND. SUBTRACT OURS

Dt IT WAS NOT RIGHT ONE

Dt IT WAS NOT RIGHT ONE . It IT AS. WRONG SYMBOL. RESTORE UPPER TO PLUS CLEAR UPPER ADVANCE LOWER AND BRING ANOTHER

EXITZ STORE EXIT

It THE ADDRESS IS BLANK MODIFY EXIT AND PREPARE TO QUIT HSYMB ADDRESS NOT BLANK. STORE SYMBOL

ALSO STORE FIRST LETTER OF ADDRESS > XXXX2 ALSO STORE FIRST LETTER OF ADDRESS ) CLEAR FIRST LETTER

SU8TRACT 9090908995

dt address is symbolic.

are last four characters digits i are last four characters digits i are last four characters digits > are last four characters digits ) are last four characters digits > are last four characters digits 1 they are digits. get value i they are digits. get value i equiv store these 4 digits

first character into upper

it zero. address was absolute

NON-ZERO. SUBTRACT 90

It FIRST CHAR IS DIGIT.

ADD 29

D. FIRST IS SPEC. CHAR. MAKE BRINGING ORDER ) MAKE BRINGING ORDER )

ADDR SYMBOLIC

SYMBOLIC

BRING EQUIVALENT OF REGION

It REGION IS UNDEFINED

GET EQUIVALENT OF REGIONAL ADORESS ) GET EQUIVALENT OF REGIONAL ADDRESS ) EQUIV STORE EQUIVALENT

SYMBOLIC ADDRESS. BRING SYMBOL

CLEAR ALL BUT LAST CHARACTER

D. LONG SYMBOL PRESET T AS POSITIVE 1 PRESET T AS POSITIVE 1

1416

1418

1420

1422 1424

1426

1428

1430

1432 1434

1436

1438 1440

1442 1444

14*6

1448

1450 1452

1454

1456

1458 1460

1462

1464 1466

1468 1470

1472 1474

1476

1478 1480

1482 1484

I486

1488 1490

1492 1494

1496

1498

1500

1502

1504
0727

0631 0487

00

2069

0000

0184

0190

0631

0487

0441 0184

J 00

20

69

0000 P0008

SUB 13 0190

0344 0504

0459

00

69

90

20

0908

1050 0335

0486

0344

0504 0459

0335 0486

J 00

6990

20

0908 1050 SBIOC

SAVOR SBIOC

0376

0925

20

20 0062 0184

0925 0177

0062 0184

N

R

AC000B

2020 OPREG

P0008 C0008 EXITX

0926 69 0711 0661 N C0009 69 PRE SUBR7

0927 00 0000 0919 R C0010 00 0000 C0002

ADDEND AND EXIT FOR SUBROUTINE 18 P0008 STORE CORE ADDRESS FOR PUNCHING

GET DYNAMIC LEVEL OF CORE ADDRESS

TAGS AND EXIT FOR SUBROUTINE 13 FIRST-CARD TAG

D. WE SHOULD STORE THIS DYNAMIC LEVEL

SAVOR STORE DYN LEV OF CORE. AND FINISH UP OPREG STORE ADDRESS FOR OPTIMIZING NEXT ADDR P0008 MISC ADDR. STORE FOR PUNCHING. EXIT STORE EQUIVALENT OF NEW SYMBOL

NEW SYMBOL. BUT' TABLE FULL. N.G.

1264

1266

1268

1270

1272 1274

1276

1278

1280

1284

SUBROUTINE 6 PROCESS BACKWARDS I

0142 0330

1108

24

6069

0177

0153

0911

0330

1108 0063

0177 N SUBR6 24

60

69

EXITX

R0003

PRE SUBR9

0911 65 0536 0371 J PRE 65 EQUIV J0004

0368 69 0911 0661 N J0001 69 PRE SUBR7

0369 60 0722 0627 R J0002 60 89THX SB10B

0370

0772

69

90 1669

0626 07720369

R J0003 69

90 DRUMTJ0002

0626

0371 0615

6524

69

1679 0062

0568

0371 0615

0677

0062 N J0004

6524

69

BLANB OPREGJ0004

INDEX 0568 00 0001 0375 J 00 0001 J0008

0372 65 0675 0611 R JOO05 65 SUB11 0675 00 0990 0368 J 00 0990 J0001

0373 01 0000 0373 R J0006 01 0000 J0006

0374 69 0391 0371 R J0007 69 ORCEB J0004

0375 20 0185 0177 0185 R J0008 20 P0009 EXITX

EXITX STORE EXIT ALPHABETIC I TO UPPER ANALYZE ALPHABETIC I BRING EQUIVALENT. MULTIBRANCH

STORE EQUIVALENT OF NEW SYMBOL

N.G. OMIT PUNCHING BLANK I. IS DRUM FULL

D. DRUM IS NOT FULL BRING EQUIVALENT OF BLANK BACKWARD L OPREG DRUM OR DRUM EQUIVALENT

TO SUBROUTINE 18 TO INDEX ADDEND AND EXIT FOR SUBROUTINE 18 NEW SYMBOL. FIND BEST VALUE TAGS AND EXIT FOR SUBROUTINE 11 800X RANGE. ERROR. CORE. BRING OYNAMIC LEVEL P0009 OTHER ADDRESS. USUALLY A CONSTANT

1286

1288 1290

1292 1294

1296

1298 1300

1302 1304

1306

1308 1310

1312 1314

1316

1318 1320

1322

0661 24 0179 0432 0179 N SUBR7 24 EXITZ

0432 65 0435 0439 65 LSYMB

0439 15 0392 0747 15 SS 0747 69 0108 8002 69 HSYMB 8002

0392 24 1689 0442 1689 J ss 24 Z0001 0442 65 0435 0489 65 LSYMB

0489 14 0492 1029 14 2DXXX

1029 35 0004 1039 35 0004

1039 20 0294 0797 0294 20 XXXX2

0797 15 1000 0555 15 PI 0555 20 0167 0670 0167 20 xxxxi 0670 44 1073 0674 44 IPOS 0674 65 0536 0541 65 EQUIV

0541 35 0004 0451 35 0004

0451 10 0554 0509 10 P2 A 0509 10 0294 0167 C A 10 XXXX2 XXXXI

1073 65 0536 0591 N IPOS 65 EQUIV

0591 10 0394 0509 10 P3 A 1000 69 1555 8003 P PI 69 E0001 8003 0554 22 155-. 0179 1555 P P2 22 E0001 EXITZ

0394 23 1555 0179 1555 P P3 23 E0001 EXITZ

SUBROUTINE 7 STORE SYMBOL AND ITS EQUIVALENT

EXITZ STORE EXIT SYMBOL-STORING ORDER I SYMBOL-STORING ORDER ) STORE SYMBOL I ZOOOl STORE SYMBOL ) LOCATION OF EQUIVALENT RELATIVE TO El LOCATION OF EQUIVALENT RELATIVE TO El LOCATION OF EQUIVALENT RELATIVE TO El XXXX2 LOCATION OF EQUIVALENT RELATIVE TO El MAKE BRINGING ORDER I XXXXI MAKE BRINGING ORDER I D. USE I-POSITION. I. USE D-POSITION. BRING EQUIVALENT

SHIFT TO D POSITION

MAKE STORING ORDER ) MAKE STORING ORDER ) USE I-POSITION. BRING EQUIVALENT

MAKE STORING ORDER

INITIAL OF BRINGING ORDER

E0001 INITIAL OF ORDER TO STORE D-POSITION

E0001 INITIAL OF ORDER TO STORE I-POSITION

1324 1326

1328 1330

1332 1334

1336

1338

1340

13*2 13*4

13*6

13*8 1350

1352 1354

1356

1358 1360

1362 1364

1366

1368

1024 24 0177 0380 0177

HED

N SUBR8 24 EXITX

SU8R 8 PROCESS TYPE 2 ADDR. ALPH IN UPPER. NUMERIC. LOWR

EXITX STORE EXIT

1370

1372 137*
0380 0559

1146 0254

0412 05590613

1146 11STX

FXT

0412

0969

0777

0663

10

60

1146

8001 8002 0409

0366

0969 0777

0663 0467

1060

1146

8001 8002

20001

RC

0366

1123

1046 1019 0676

1123 0977

1046 DO IFF BAD

0676 10 0409 0713 10 20001 RES

0467

1223 0681 0539

10

10

1146

8001 0726

0334

0542

1223

0681 0539

0977

N RC 10

10

1146

8001 CDIFF 9060

BAD

0542

0713 0720

1021698001 0167

1273

0713

0720 0167 C 1025 RES

10

2169

8001 XXXX1RES SUB2R

1273 65 0167 0177 J 65 XXXX1 EXITX

0613 65 8002 0177 N FXT 65 8002 EXITX

0977 60 0622 0177 N BAD 60 87THX EXITX

0334 00 0000 9060 IC 9060 00 0000 9060

IS FIRST POSITION BLANK

It FIRST IS NON-BLANK. FIXED ADDRESSRESTORE TO POSITIVE

NUMERIC ADDRESS ALONE IN UPPER SUBTRACT 2000

D, DRUM. I. CORE. DRUM. ADD RELOCATION AMOUNT

I. RELOCATED DRUM WILL EXCEED 1999 RESTORE RELOCATED DRUM ADDRESS

CORE ADDRESS. RESTORE THE 2000 ADD RELOCATION AMOUNT

SUBTRACT 9060

I. RELOCATED CORE ADDRESS TOO HIGH

RESTORE THE 9060

XXXX1 STORE ADDRESS TEMPORARILY

RESERVE IF DRUM ADDRESS EQUIVALENT BACK TO LOWER AND EXIT FIXED ADDRESS. CLEAR UPPER AND EXIT. MODIFIED ADDR TOO HIGH. 8000 TO UPPER

1376

1378

1380

1382 1384

1386

1388

1390

1392 1394

1396

1398

1400

1402 1*04

1406

1408 1410

1412 1414

1002 44 1005 0606

1005 11 0108 0763

0763 44 0517 0618 0618 46 0517 0972 0517 10 8001 1323

1323 65 8002 0731

0731 15 0384 8002 0063 24 0179 0482 0179

0482 45 0636 0537

0537 61 0515 1069 0636 21 0108 0961 0108

0961 30 0008 0629

0629 21 0294 0947 0294

0947 11 8001 0604

0604 16 1208 0913

0913 46 0416 0567 0567 11 8003 0725

0725 45 0278 0679

0278 35 0001 0485 0485 44 0416 0240

0240 10 8001 0997

0997 35 0001 0567

0679 65 8001 0535 0535 30 0001 0641

0641 20 0536 0589 0536 0589 10 0294 0399

0399 44 0654 0704

0654 11 1308 0963 0963 46 0466 0416 0466 10 1119 0724

0724 46 0416 0328 0328 35 0004 0639

0639 10 0592 8003

0592 65 1660 0665

0665 45 0668 1219 0668 15 0536 0691

0691 16 0515 1269

1269 23 0536 0704 0536 0416 60 0108 1013 1013 35 0008 0781 0781 44 0585 0686

0585 69 0038 0741

0741 24 0384 0587 0384

SUBROUTINE 9 HED

c LOOP 44

1144 HSYMB

NZ

UND

46 NZ DEF

c NZ 1065 8001 8002

15 T 8002

N SUBR9 24

45 EXITZ

ABC

61 110TH DON

N ABC 2130

21

1116

HSYMB

0008 XXXX2

8001

909

46 SYM LOO

C LOO 1145

3544

10

8003

0001 SYM

8001

OUT

35 0001 LOO

N OUT 653020

1044

1146

10

46

35

10

8001

0001 EOUIV

XXXX2

99THX

29IXX

SYM

0004

ABS

SYM

8003

J 65

45

1516

GOOOl

EOUIV

110TH

NG

23 EQUIV ABS

N SYM 60

3544

69

24

HSYMB

0008

16THX

T

SHRT

ANALYZE AN ADDRESS

i. symbol is not in the table

some symbol was found. subtract ours

d. it was not right one

d. it was not right one . i. it as. wrong symbol. restore upper to plus clear upper advance lower and bring another

exitz store exit

i. the address is blank modify exit and prepare to quit

hsymb address not blank. store symbol

also store first letter of address 1 xxxx2 also store first letter of address ) clear first letter subtract 9090908995

d. address is symbolic,

are last four characters digits i are last four characters digits i are last four characters digits > are last four characters digits ) are last four characters digits ) are last four characters digits i they are digits. get value ) they are digits. get value i equiv store these 4 digits

first character into upper

i. zero. address was absolute

ADDR SYMBOLIC

NON-ZERO. SUBTRACT 90

I. FIRST CHAR IS DIGIT.

ADD 29

D. FIRST IS SPEC. CHAR. MAKE BRINGING ORDER ) MAKE BRINGING ORDER ) BRING EQUIVALENT OF REGION

I. REGION IS UNDEFINED

GET EQUIVALENT OF REGIONAL ADDRESS ) GET EQUIVALENT OF REGIONAL ADDRESS ) EQUIV STORE EQUIVALENT SYMBOLIC ADDRESS. BRING SYMBOL CLEAR ALL BUT LAST CHARACTER

D. LONG SYMBOL

PRESET T AS POSITIVE 1 ) T PRESET T AS POSITIVE 1 I

1416

1418

1420

1422 1424

1426

1428

1430

1432 1434 1436

1438 1440

1442 1444

1446

1446 1450

1452 1454

1456

1458 1460

1462 1464

1466

1468 1470

1472 1474

1476

14T8 1480

1482 1484

1486

1488 1490

1492 1494

1496 1498

1500

1502

1504
0587 65 0290 8001 65 Y B001 0290 10 1689 1002 J Y 10 Z0001 LOOP

0686

0643

0637

66

2065

0038 0384

0340

0643 0637 0384

8001

N SHRT 66

20

65

16THX

T 8001 0340 10 1898 1002 J 10 ZMAXM LOOP

0606

0345 0588

0642 0449

162046

16

46

0290

0435

0791 0395

0352

0345

0588 0435 0642 0449

0791

N UNO 1620

46

1646

YLSYMB

FULL ZTABL FULL

0352 60 0515 1069 60 110TH DON

0972

0445 0754

0638

0904

0715

1616

20

14

35

15

0290

0498

0435 0492

0004

0718

0445 0754

0638 0435 0904

0715

8002

N DEF 16

1620

1435

15

YJBRL LSYMB

2DXXX

0004

8002 0718

0659

69

44 1555 1063 0659

0314

J 6944 E0001

LH 1063 67 8001 1319 67 8001 LR 0314

0721

1319 0776

67

306923

8001

0001 8003 0536

0721

1319

0776 0704 0536

N LH

LR

67

30

69

23

8001 0004

8003 E0U1V

LRABS

0791

1219

01

61 0111

1022

1219

1069

J

C FULL

NG

01

61 0111 2IXXX

NGDON

0704

0770

0729

0775

35

1684

15

0006

8002

1200

0378

0770

0729

0775

8002

N ABS 35

16

84

15

0006

8002

1200 8002

0378

0605 0970

1069

60

35

30

10

0000

0006

0006

0179

0605

0970

1069 8003 C OON

60

3530

10

0000

0006

0006

EXITZ DON

8003

1208 90 9090 8995 K 909 90 9090 8995

BRINGING ORDER INTO LOWER ADD A SYMBOL INTO UPPER. FROM BOTTOM

SHORT, PRESET T AS -1 I T SHORT. PRESET T AS -1 ) BRINGING ORDER INTO LOWER ADD A SYMBOL. STARTING AT TOP SYMB NOT IN TABLE. SUBTRACT Y LSYMB STORE ADDR OF SPACE RELATIVE TO START

D. TABLE IS FULL

I • TABLE IS FULL MODIFY EXIT. AND PREPARE TO QUIT DEFINED SYMBOL. SUBTRACT Y SUBTRACT INITIAL BRINGING ORDER

LSYMB ADDRESS OF SYMBOL RELATIVE TO START DIVIDE BY 2 QUOTIENT INTO D OF LOWER MAKE BRINGING ORDER

BRING WORD SHOWING EQUIVALENT

D. ADOR IS ODD. EQUIV IN RIGHT END EQUIVALENT IS IN I POSITION OF LOWER EQUIVALENT IN D POSITION OF LOWER

EQUIVALENT IN I POSITION OF LOWER

CLEAR DISTRIBUTOR

EQUIV STORE EQUIVALENT OF SYMBOL

STOP IF SYMBOL TABLE IS FULL MODIFY EXIT FOR N G SYMBOL ABSOLUTE ADDRESS OR EQUIVALENT

ADDRESS INTO LEFT END DISTRIBUTOR

SEARCH TABLE ACCORDING TO SIZE OF ADDR

MAKE BRINGING ORDER BRING APPROPRIATE TABULAR VALUE

SHIFT TO REMOVE TABULAR ADDRESS I SHIFT TO REMOVE TABULAR ADDRESS ) FROM MANY PLACES. MULTIBRANCH

1508 1510

1512 1514

1516

1518 1520

1522 1524

1526

1528

1530

1532 1534

1536

1538

1540

1542 1544 15*6

1548

1550

1552 1554

1556

1558 1560

1562 1564

1566

1568 1570

1572 1574

1576

0001 60 0003 0709 N SETCC 60 READC SUB10

0709 15 1044 0499 C SUB10 15 81STX

0499 20 0186 0689 0186 20 P0010

0689 60 8003 0057 60 8003 SB10A

0057 15 0181 0635 c SB10A 15 P0005

0635 15 1022 1027 15 2IXXX

1027 20 0181 0434 0181 20 P0005 0434 71 0177 8003 71 P0001 80 0627 10 0186 0941 N SB10B 10 P0010

0941 21 0154 0759 0154 21 R0004 0759 21 0186 0177 0186 21 P0010 EXITX

0335 20 0062 0177 0062 N SB10C 20 OPREG EXITX

SUBROUTINE 10. MISCELLANEOUS EXITS

SEQUEL TO MANY PSEUDO-OPS.

C.I. TO PUNCH X-9 I P0010 C.I. TO PUNCH X-9 I CLEAR LOWER ADVANCE CARD NUMBER ) ADVANCE CARD NUMBER ) P0005 ADVANCE CARD NUMBER ) PUNCH CARD. PERFORM UPPER. FROM 4-6.19-21. TO SUPPRESS I R0004 TO SUPPRESS IN CASE WE SEARCH

P0010 FROM 4-6.19-21. TO SUPPRESS ) OPREG FROM 4-5. 19-20. STORE DYNAMIC LEVEL

1578 1580

1582 1584

1586

1588

1590

1592 1594

1596

1598 1600

0611 69 1669 1072 N SUB11 69 DRUMT

1072 90 0976 1077 90 0976 20 0178 0931 0178 20 EXITY

0931 96 0484 0736 96 DI 0736 65 8003 0693 65 8003 0484 69 0687 0390 N DI 69 F 0390 22 0167 0441 0167 22 xxxxi 0687 00 0000 0991 J F 00 0000

0991 ?5 0004 0501 35 0004

0501 15 8002 0909 15 8002 0909 15 8002 0693 15 8002 0693 69 0178 0981 C ssw 69 EXITY

SUBROUTINE 11. FIND BEST LOCATION AND RESERVE IT

IS THE DRUM FULL

I. YES. EXITY STORE EXIT OUT OF LOWER

It ADDRESS IS BACKWARD I OR FORWARD L CLEAR ACCUMULATOR AND JUMP PREPARE EXIT AND GO TO SUBROUTINE 13 ) XXXXI PREPARE EXIT AND GO TO SUBROUTINE 13 I

TO BUILD EXIT FROM SUBROUTINE 13

4 TIMES DYNAMIC ADDRESS IN D POSITION

4 TIMES DYNAMIC ADDRESS IN D POSITION

4 TIMES DYNAMIC ADDRESS IN D POSITION

ALL CASES. GOING WHICH DIRECTION

1604

1606

1608 1610

1612 1614

1616

1618 1620

1622 1624

1626

1628 1630
0981 97 0534 0786 Oi FORWARD. I. BACKWARD. 1632 053* 69 0737 0*40 69 OFF

0440 24 0743 0296 07*3 2* SW 0296 15 0549 0954 15 601 0954 20 0959 0462 0959 20 BP1 0462 16 0038 0793 16 16THX ST

1088 44 1241 0743 R TA ** YES SW

0743 65 0346 0551 sw 65 AI SWOF 0737 65 0346 0551 J OFF 65 AI SWOF

0551 16 1054 1009 SWOF 16 799

1009 45 0512 1113 *5 MAX

0512 15 0765 1020 15 800 SAI 1020 20 0346 8001 03*6 C SAI 20 AI 8001 0786 69 0739 0692 N BAR 69 OFB

0692 24 0743 0396 07*3 2* SW 0396 15 0599 1104 15 602

1104 20 0959 0562 0959 20 BP1 0562 15 0038 0793 15 16THX ST 0793 20 1097 1020 1097 C ST 20 AO SAI 0739 65 0346 0601 J OFB 65 AI 0601 16 1354 1059 16 600

1059 45 0612 1213 *5 MIN

0612 15 0915 1020 15 599 SAI 1113 69 0516 1070 N MAX 69 ON

1070 24 0743 0446 07*3 2* SW 0446 65 1354 1020 65 600 SAI 0516 65 0346 0651 J ON 65 AI 0651 16 1097 0701 16 AO 0701 45 0655 0705 *5 FULL

0655 15 0959 1020 15 BP1 SAI

1213 69 0516 1120 N MIN 69 ON

1120 24 0743 0496 07*3 2* SW 0496 65 1054 1020 65 799 SAI 0705 01 0222 1109 N FULL 01 0222

1109 69 0114 0617 69 91STX

0617 24 1669 1122 1669 2* DRUMT

1122 65 0178 1077 65 EXITY PAKT

1077 15 0515 8002 c PART 15 110TH 8002

1241 36 0000 1263 N YES 36 0000

1263 20 0294 12*7 029* 20 XXXX2

1247 69 0197 lioo 69 ALOPT

1100 90 0755 0905 90 SKP

0905 35 0001 1011 35 0001

1011 30 0001 0667 30 0001 0667 11 8003 0975 11 8003 0975 35 0004 0685 35 000*

0685 10 8001 1291 10 8001

1291 15 0444 8002 15 8002 0444 30 0000 0717 J 30 0000

0717 60 8003 1225 60 8003

1225 15 0346 0751 15 AI 0751 69 0955 1209 69 STR 1209 22 0167 8001 0167 22 XXXX1 8001 0955 21 9972 0755 9972 J STR 21 9972 SKP

0755 65 03*6 0951 C SKP 65 AI 0951 16 1354 1309 16 600

1309 30 0004 1220 30 000*

1220 14 077* 1021 1* *IXXX

1021 16 8002 1079 16 8002

1079 35 0001 1035 35 0001

1035 15 8001 13*1 15 8001

1341 10 029* 06*9 10 XXXX2

0649 19 0320 107* 19 90IXX

1074 15 8003 1031 15 8003

1031 20 0536 0178 0536 20 EQUIV EXITY

0915 60 135* 1088 Q 599 60 AOOOO TA

1354 60 1355 1088 600 60 A0001 TA 0549 60 1356 1088 p 601 60 A0002 TA

0599 60 1357 1088 p 602 60 A00O3 TA 105* 60 155* 1088 799 60 A0200 TA 0765 60 1555 1088 Q 800 60 A0201 TA

FORWARD. SET SWITCH OFF FOR 1ST PART

SW FORWARD. SET SWITCH OFF FOR 1ST PART

INITIAL OF VARIABLE BRINGING ORDER

8P1 STORE VARIABLE BRINGING ORDER COMPARISON CONSTANT FOR LAST PART

IS A LOCATION AVAILABLE IN THIS GROUP

NOT PERFORMED—JUST FOR OPTIMIZING

HAVE WE REACHED TOP OF TABLE SUBTRACT END OF TABLE

I . WE HAVE REACHED TOP OF TABLE

ADVANCE VARIABLE BRINGING ORDER

AI STORE BRINGING ORDER. AND DO IT GOING BACKWARD. SET SWITCH OFF ) SW GOING BACKWARD. SET SWITCH OFF 1 INITIAL BRINGING ORDER ) BP1 INITIAL BRINGING ORDER ) COMPARISON CONSTANT FOR LAST PART

AO STORE COMPARISON CONSTANT

START BACKWARDS SEARCH. HOW FAR SUBTRACT COMPARISON CONSTANT

D. WE ARE NOT BACK TO START YET RESTORE AND MODIFY

AT TOP. SET SWITCH ON I SW AT TOP. SET SWITCH ON ) RESET BRINGING ORDER. AND SEARCH MORE AFTER RESTART. BRING BRINGING ORDER COMPARISON CONSTANT. SUBTRACTED

I. THERE IS NO AVAILABLE LOCATION.

RESTORE AND MODIFY SECOND PART. BACKWARDS. CHANGE SWITCH

SW SECOND PART. BACKWARDS. CHANGE SWITCH

START BACK FROM TOP OF TABLE STOP BECAUSE DRUM IS PACKED

CHANGE DRUM TAG TO 9 ) DRUMT CHANGE DRUM TAG TO 9 ) MODIFY EXIT ) MODIFY EXIT ) WE FOUND A CELL. SHIFT AND COUNT

XXXX2 STORE THE COUNT SHOULD WE RESERVE

D. SKIP BECAUSE COMP IS DOUBLE

RESERVE ) RESERVE ) put into distributor

move amount of shift into availability word back into upper

make shifting order

shift modified word back into place

clear lower

new availability word into drum ) new availability word into drum i xxxx1 new availability word into drum i 9972 new availability word into drum i all cases. what did we reserve » what cell did we reserve ) what cell did we reserve ) what cell did we reserve i what cell did we reserve ) what cell did we reserve ) what cell did we reserve t what cell did we reserve ) what cell did we reserve i what cell did we reserve ) equiv store this address in eouiv

163*

1636

1638

16*0

16*2 164*

16*6

16*8 1650

1652

165* 1656

1658

1660

1662 166*

1666

1666 1670

1672

167*

1676

1678 1680

1682 168*

1686

1668

1692 169*

1696

1696 1700

1702 170* 1706

1708 1710

1712 171*

1716

1718

1720

1722 172*

1726

1728 1730

1732 173*

173*

1738

17*0

17*2 17**

17*6

17*8 1750

1752 175*

1756

1758

1760

1762 176*

1T66

1768 1770

1772
SUBROUTINE 13. CALCULATE OPTIMUM DYNAMIC LEVEL

0*41 24 0179 0532 0179 0332 95 0735 0787 0735 97 0688 0490

0787 97 0490 0742

0688 65 0095 0699 0699 35 0001 1055 1055 16 8002 1313 1313 35 0001 1270

1270 15 8001 1227

1227 30 0003 0785 0490 65 0095 0749

0749 92 0402 1105

1105 93 0660 0710

0710 35 0002 0785 0742 65 0197 1051 1051 92 0402 0656

0656 93 0660 1061

1061 91 0364 0688 0364 99 0688 0490 0402 60 0184 0789

0789 35 0009 0760 0760 30 0005 0974

0974 10 1277 8003 1277 65 1250 0706 0706 69 0095 0548 0548 93 1101 0785

1101 35 0004 0785

0660 60 0184 0939

0939 30 0004 0799

0799 16 8002 0910 0910 84 1300 1275 1275 15 0428 8002 0428 65 0000 0756

0756 35 0004 0767 0767 92 0785 1222 1222 16 0095 0785

0785 69 0179 0582

0582 97 0935 0937 0937 20 0792 0495

0495 30 0006 0960 0960 35 0008 0779 0779 20 0733 0936 0936 60 8003 0943 0943 30 0002 0949

0949 20 0906 1010

1010 15 0733 0987 0987 15 0132 1037 1037 14 0540 1048

1048 44 1351 1052 1052 66 0906 1111

1111 30 0002 0917 0917 16 0733 0935

1351 66 0792 0935 0935 20 0167 1320 1320 65 0062 0967 0967 14 1022 1060 1060 44 1014 0414

1014 65 0167 0771

0771 35 0002 1327 1327 65 8002 0985 0414 65 0985 30 0956 15 1017 15 1325 69 0632 95 1087 97 0942 16 1085 14 1272 65

0167 0985

0008 0956

0062 1017 0320 1325 0179 0632

1085 1087

1085 0942

0545 1085 0320 1272 8003 0179

N SUB13

N 9

N FD

N OK

C P

N EVN

C BOTH

24 EXITZ

95

97 FIBD

65 OPTIM

35

1635

1530

0001

8002

0001

8001 0003

65 OPTIM

92 SHOP

93 XAS

35 0002

65 ALOPT

92 SHOP

93 XAS

91

99 FD

60 P0008

35 0009

30

10 0005

65 1250

69 OPTIM

93

35 0004

8003

0002

60 P0O08

30 0004

16 8002

84 1300

15

65 0000

35 0004

92 SEO

16 OPTIM

69 EXITZ

97 P 20 IND 30 0006

35 0008

20 B 60

3020 A 15 B 15 12NDX

14 42ND

44 OK

66 A 30 0002

16 B

66 IND 20 XXXX1

65 OPREG

14 2IXXX

44

65 XXXX1

33 0002

65 8002

65 XXXX1

30 0008

15 OPREG

15 50IXX

69 EXITZ

95 CP

97 CP

16 COUNT

14 50IXX

65 8003

9FIBD

BL

SEO

EXITZ STORE EXIT

D, D ADDRESS. I. FORWARD I OR BACKW L

FDFIBD

SEO SEO

BOTH

BOTH

CPEXITZ

D. FORWARD D. I. BACKWARD D.

Di FORWARD I. I. BACKWARD L. FORWARD D. L-D ADDENDS. LEFT END LOWE

L-D ADDENDS TO LEFT END LOWER ) L-D ADDENDS TO LEFT END LOWER ) L-D ADDENDS TO LEFT END LOWER ) L-D ADDENDS TO LEFT END LOWER I L-D ADDENDS TO LEFT END LOWER ) FORWARD I OR BACKWARD 0. GET ADOENDS

D. IT IS A SHIFT OPERATION

D, IT IS AN INDEXING OPERATION

OTHER. I-ADDENDS TO LEFT END LOWER BACKWARD L« GET ALOPT

D. IT IS A SHIFT OPERATION

D. IT IS AN INDEXING OPERATION

D, IT IS A BRANCH OPERATION

It BACKWARD Li BRANCHt UNFIXED D SHIFT OPERATIDNt FORWARD It BACKW L. ISOLATE LAST DIGIT OF D-ADDRESS ) ISOLATE LAST DIGIT OF D-ADDRESS 1 MAKE RRINGING ORDER BRING SHIFT ADDENDS OPTIMIZING TAGS

Dt OPERATION 31. It 30t35t36. operation 31. take larger addends.

indexing op. forward it backward l. d-address to left end of distr ) d-address to left end of distr ) look up in table make rringing order bring addends

shift addends to left end jump unless operation 80.82. or 88 REDUCE ADDENDS BY 1 FOR 80t82t OR 88 ALL CASES. WHICH DIRECTION

Dt FORWARD. It BACKWARD. BACKWARD. SHOULD WE INTERCHANGE ADDND SHOULD WE INTERCHANGE ADDENDS ) SHOULD WE INTERCHANGE ADDENDS ) SHOULD WE INTERCHANGE ADDENDS ) SHOULD WE INTERCHANGE ADDENDS I SHOULD WE INTERCHANGE ADDENDS 1 SHOULD WE INTERCHANGE ADDENDS I SHOULD WE INTERCHANGE ADDENDS ) SHOULD WE INTERCHANGE ADDENDS I SHOULD WE INTERCHANGE ADDENDS > It WE SHOULD INTERCHANGE INTERCHANGE AND MAKE NEGATIVE ) INTERCHANGE AND MAKE NEGATIVE I INTERCHANGE AND MAKE NEGATIVE ) MAKE NEGATIVEt BUT DO NOT INTERCHANGE

XXXX1 ALL CASES. STORE ADDENDS

WHICH ONE DO WE USE > WHICH ONE DO WE USE ) Dt OPREG WAS ODD. It EVEN.

IND

ODD. SEPARATE LAST ADDEND

ODD. SEPARATE LAST ADDEND.

ODD. SEPARATE LAST ADDEND. EVEN. WE SHOULD USE FIRST ADDEND

BOTH. RIGHT ADDEND TO RIGHT END ADD OLD DYNAMIC LEVEL

ADD 50 TO MAKE SURELY POSITIVE

IF BACKWARD Lt SUBTRACT TAG-COUNT ) IF BACKWARD Lt SUBTRACT TAG-COUNT ) IF BACKWARD Lt SUBTRACT TAG-COUNT I IF BACKWARD L. SUBTRACT TAG-COUNT ) NEW LFVELt MODULO 50 IN UPPER NEW DYNAMIC LEVEL INTO LOWER

1774

1776

1778

1780

1782 1784

1786

17*8 1790

1792 1794

1796

1798 1800

1802 1804 1806

1808

1810

1812 1814

1816

1818

1820

1822 1824

1826

1828

1830

1832 1834

1836

1838

1840

1842 1844

1846

1848

1850

1852 1854

1856

1858 1860

1862 1864

1866

1868 1870

1872 1874

1876

1878 1880

1882 1884

1886

1888 1890

1892

1894

1896

1898 1900

1902 1904

1906

1908 1910

1912 1914

1916 0540 04 0000 0000 04 0000 1918
SUBROUTINE 14. CONTROL INFO. OP. OPTIM. ALOPT. 1920

1922

0039 24 0177 0430 0177 N SUB14 24 EXITX

0430 69 0154 1110 69 R0004

1110 24 0186 0989 0186 24 P0010

0989 65 0155 1210 65 RO005

1210 69 8003 0566 69 8003 0566 22 0183 0986 0183 22 P0007 0986 16 8001 0993 16 8001 0993 35 0005 1006 35 0005

1006 21 0902 1056 0902 21 0902

1056 65 8002 0965 65 8002

0965 30 0005 0628 30 0005

0628 20 0903 1106 0903 20 0903

1106 45 1260 1211 45 BT

1260 65 0515 1211 65 110TH BT 1211 10 0902 1310 C BT 10 0902

1310 44 0464 0514 44 UM 0464 15 0515 0514 15 110TH UM

0514 20 0545 0598 0545 C UM 20 COUNT

0598 60 0183 1237 60 P0007

1237 10 0590 8003 10 8003 0590 65 0800 1306 J 65 0800

1306 24 0095 0648 0095 24 OPTIM

0648 69 8003 1261 69 8003

1261 23 0167 0971 0167 23 XXXXl

0971 35 0001 0678 35 0001 0678 44 1081 0682 44 YES 0682 60 1235 1089 60 8 AX

1081 60 0584 1089 N YES 60 9 AX

1089 10 0167 1071 C AX 10 XXXXl

1071 21 0197 0177 0197 21 ALOPT EXITX

1235 98 8008 0000 K 8 98 8008 0000

0584 98 8009 0000 K 9 98 8009 oooo

EXITX STORE EXIT CONTROL INFORMATION FOR PUNCHING ) P0010 CONTROL INFORMATION FOR PUNCHING ) BRING TAGS AND OPERATION

CLEAR DISTRIBUTOR

P0007 STORE OPERATION FOR PUNCHING

CLEAR OP FROM ACCUMULATOR

D TAG INTO UPPER

0902 STORE TAG DELETE D TAG

I TAG TO RIGHT END LOWER

0903 STORE 1 TAG

D. I TAG IS NON-ZERO

COUNT OF I TAGS IN LOWER

D TAG INTO UPPER

D» D TAG IS NON-ZERO

COUNT OF TAGS IN LOWER

COUNT STORE TAG-COUNT OPERATION IN D OF UPPER MAKE BRINGING ORDER

BRING OPTIMIZING ADDENDS AND TAGS OPTIM STORE OPTIMIZING ADDENDS AND TAGS CLEAR DISTRIBUTOR

XXXXl STORE LAST 4 DIGITS OF OPTIM

ONE DIGIT INTO UPPER

I i D IS NOT TRUE ADDRESS

MORE TAGS INTO UPPER

MORE TAGS INTO UPPER

ADD IN TAGS FROM OPTIM

ALOPT STORE ALL OPTIMIZING TAGS

1924

1926

1928 1930

1932 1934

1936

1938

1940

1942

1944

1946

1948 1950

1952 19S4

1956

1958 1960

1962 1964

1966

1968

1970

1972 1974

1976

1978 1980

1982 1984

1986

SUBROUTINE 17. MODIFY DYN LEV IF D « 8001.8002.8003 1988

1990 0586 24 0178 1231 0178 N SUB17 24 EXITY

1231 20 0294 1297 0294 20 XXXX2

1297 14 1022 1322 14 2IXXX

1322 44 1076 1026 44 EVN

1076 65 1279 1033 65 8002 EO

1026 65 1229 1033 N EVN 65 8003 EO

1033 16 0536 0992 C EO 16 EOUIV

0992 24 0184 1287 0184 24 P0008

1287 45 0640 1042 45 XY 1042 65 0515 0178 65 110TH EXITY

0640 65 1043 1347 N XY 65 8001 1347 16 0536 1092 16 EOUIV

1092 45 0546 0698 45 NZ 0698 66 0515 0178 66 110TH EXITY

0546 67 8003 0178 N NZ 67 8003 EXITY

1043 00 OOOO 8001 K 8001 00 OOOO 8001

1279 00 OOOO 8002 K 8002 00 0000 8002

1229 00 0000 8003 K 8003 00 0000 8003

EXITY STORE EXIT INSTRUCTION

XXXX2 STORE DYNAMIC LEVEL. RIGHT END WORD DIVIDF DYNAMIC LEVEL BY 2 D. DYNAMIC LEVEL IS ODD. ODD. PUT 8002 AT RIGHT END OF LOWER

EVEN. PUT 8003 AT RIGHT END OF LOWER

BOTH. SUBTRACT THE 800X ADDRESS

P0008 STORE THE ADDRESS FOR PUNCHING

I. 8002-8003 + WRONG PARITY

UNIT CORRECTION TO DYNAMIC LEVEL

8001 INTO RIGHT END LOWER SUBTRACT THE ADDRESS IN QUESTION

D. ADDRESS IS NOT 8001

IF 8001. CORRECTION IS -1

IF NOT 8001. CORRECTION IS ZERO

1992 1994

1996

1998 2000

2002 20O4

2006

2008 2010

2012 2014

2016

2016 2020

2022 2024

2026

SUBROUTINE 16. INDEX FOR USE WITH INDEXING REGISTER 2028 2030 0677 24 0176 1281

1281 20 0167 1121 1121 65 0178 0783 0783 30 0004 1093

1093 35 0004 1311

1311 15 0564 8002 0564 65 0902 0662 0662 15 8002 1221

1221 10 0167 12T1 1271 11 1124 0929 0929 46 0732 0933

0933 11 8003 1242

1242 30 0001 0999

0178 N INDEX 24 EXITY

0167 20

6530

35

15

XXXXl EXITY0004

0004

J 65

1510

0902 8002 XXXXl

t 1146

1130

27TH DRM

8003

0001

FOR 0. 1 FOR I ) FOR 0. 1 FOR I I FOR D. 1 FOR I >

EXITY STORE EXIT

XXXXl STORE ADDRESS D-POSITION HOLDS 0-POSITION HOLDS D-POSITION HOLDS BRINGING ORDER

BRING APPROPRIATE TAG DOUBLF IT INDEXABLE ADDRESS INTO UPPER

SUBTRACT 2000. TO DETERMINE RANGE

I. CORE. D. DRUM.

CORE. CLEAR UPPER SHIFT RIGHT FOR CORE ADDEND

2032 2034

2036

2038

2040

2042 2044

2046

2048

2050

2052 2054

2056
0732 10 8001 0999

0999 15 0167 0178 1124 00 0000 2000

N DRM

C A

10 8001

15 XXXX1

AEXITYDRUM. MAKE POSITIVE AGAIN

ADD ADDRESS BEING INDEXED. EXIT.

FOR TELLING WHETHER DRUM OR CORE

2058 2060

2062

HED SUBROUTINE

0042 0480

0712

24

60

69

0177

0151

1015

0480 0177

0712

0063

N SUB19 2460

69

EXITX

R0001

PRE SUBR9

1015 65 0536 0421 J PRE 65 EQUIV L0004

0418 69 1015 0661 N L0001 69 PRE SUBR7

0419 60 0622 0627 R L0002 60 87THX SB10B

0420

1224

69

90 1669 0728

1224

0419

R L0003 69

90 DRUMT L0002

0728

0421

1285 1292

65

20

6069

1023

0182

8001 0595

0421

1285 0182

1292 1025

N L0004

65

20

60

69

BLANK

P0006

8001

L0004

SUB2R

0595 65 0182 1337 65 P0006 MW

0422 0983

0738

6990

65

1030

1001 1342

0983 0738

0611

R L0005 69

90

65

1030 MDFLL

SUB11

1342 00 0890 0418 J 00 0890 LOOOl

0423 00 0000 0001 R L0006 00 0000 SETCC

0424

1335 1337

20

6515

0182

0292

0545

1335 0182

1337 0335

R

C

L0007

MW

20

65

15

P0006 ORCEQ

COUNT MWSB10C

0425 00 0000 0419 R L0008 00 0000 L0002

19. PROCESS L FORWARD

EXITX STORE EXIT ALPHABETICAL L TO UPPER ANALYZE L-ADDRESS BRING EQUIVALENT. MULT I BRANCH

SUB 11 FOUND EOU OF SYMB. RESERVE

N.G. FIX TO OMIT PUNCHING

BLANK ADDRESS. IS DRUM FULL

D, DRUM NOT FULL. I. DRUM IS FULL. USE PROPER VALUE FOR BLANK ADDRESS

P0006 DRUM. STORE ADDRESS FOR PUNCHING

PUT It INTO UPPER RESERVE ADDRESS BRING BACK NUMERICAL ADDRESS

NEW SYMBOL. WHERE ARE WE

D. START SEARCH. I. WE ARE ON QUITT

FIND AN EQUIVALENT

TAGS AND EXIT FOR USE IN SUBR 11 800X ADDRESS. QUIT IMMEDIATELY

P0006 CORE ADDRESS. STORE FOR PUNCHING

DYNAMIC LEVEL OF LAST CORE ADDRESS

CORE OR DRUM. ADD TAG-COUNT TO DYN LV MISCELLANEOUS ADDRESS. QUIT AND OMIT

2064

2066

2068

2070

2072 2074

2076

2078

2080

2082 2084

2086

2088 2090

2092 2094

2096

2098 2100

2102 2104

2106

2108

HED

SUBROUTINI

0045

0630

0762

2<* 60

69

0177

0152

1065

0630

0762

0063

0177 N SUB20 2460

69

EXITX

R0002

PRE SUBR9

1065 65 0536 0472 J PRE 65 EQUIV D0004

0469 20 1023 0476 1023 N D0001 20 BLANK D0008

0470 60 0672 0627 R D0002 60 88THX SB10B

0471

0748 0912

69

94

65

0095 0800

1115

0748 0912

0611

R D0003 69

94

65

OPTIM

0800 SUB11

1115 00 0888 0469 J 00 0888 D0001

0472 69 1226 0677 N D0004 69 INDEX

1226 00 0000 0476 J 00 0000 D0008

0473 65 1276 0611 R D0005 65 SUB11

1276 00 0888 0477 J 00 0888 D0009

0474 69 0778 0441 R D0006 69 SUB13

0778 0782

00

6S 0808 1086

0782

0586

J 00

69 0808 SUB17

1086 15 0294 1049 J 15 XXXX2 B 0475 69 0928 0677 R D0007 69 INDEX 0928 0932

0788

00

206^

0000

0184

1243

0932

078R

0441 0184

J 00

20

69

0000

P0008 SUB13

1243 079800

20 08080292

0798

1049 0292

J 00

20 0808 ORCEQ B 0476 20 0184 1049 0184 R D0008 20 P0008 B

. PROCESS D FORWARD

EXITX STORE EXIT ALPHABETICAL D INTO UPPER ANALYZE D-ADDRESS

BRING EQUIVALENT. MULTIBRANCH

BLANK STORE EQUIV OF BLANK FOR REFERENCE

N.G. QUIT AND OMIT PUNCHING

BLANK D. IS IT MDF OPERATION

IF BLANK D AND MDF, STOP MACHINE

BLANK 0, BUT NOT MDF. FIND VALUE OF D TAGS AND EXIT FOR SUBROUTINE 11 DRUM ADDRESS. INDEX IF TAGGED

ADDEND AND EXIT FOR USE IN SUBR 18 NEW SYMBOL. FIND EQUIVALENT

TAGS AND EXIT FOR USE IN SUBR 11 800X ADDRESS. FIND DYNAMIC LEVEL

TAGS AND EXIT FOR USE IN SUBR 11 PERHAPS MODIFY DYNAMIC LEVEL ) PERHAPS MODIFY DYNAMIC LEVEL ) CORE ADDRESS. INDEX IF TAGGED ADDEND AND EXIT FOR SUBROUTINE 18 P0OO8 STORE THE CORE ADDRESS FOR PUNCHING

FIND DYNAMIC LEVEL

TAGS AND EXIT FOR SUBROUTINE 13 ORCEQ STORE DYNAMIC LEVEL FOR REFERENCE

P0OO8 MISC ADDRESS, USUALLY A CONSTANT

2112 2114 2116

2118

2120

2122 2124

2126 2128

2130

2132 2134

2136

2138

2140

2142 2144

2146

2148 2150

2152 2154

2156

2158 2160

2162
10*9 69 0095 0948 0948 91 0177 0335 0477 69 1065 0661 0478 00 0000 0470

C B 69 OPTIM

91 EXITX SB10C

N D0009 69 PRE SUBR7

R D0010 00 0000 D0002

SEVERAL CASES. WHAT KINO OF OP

D. BRANCH. I. ARITHMETIC.

STORE EQUIVALENT OF NEW SYMBOL

SYMB TABLE FULL OR DRUM PACKED. QUIT

2166

2168 2170

2172

SUBROUTINE 21. PROCESS I FORWARD

0018 0680

0962

2460

69

0177

0153

1215

0680 0962

0063

0177 N SUB21 24

60

69

EXITX

R0003 SUBR9

EXITX

1215 65 0536 0575 J 65 EQUIV 10004

0572 20 1023 0577 1023 N 10001 20 BLANK 10006 BLANK

0573 60 0722 0627 R 10002 60 89THX SB10B

0574

1012 0616

1274

6044

69

90

0152

1265 1669

0978

1012 0616

1274 0573

R 10003 6044

69

90

R0002

DNB DRUMT

10002 0978 65 1023 0579 65 BLANK 10008

1265 65 0768 0611 N DNB 65 SUB11

0768 00 0889 0572 J 00 0889 10001 0575 69 1028 0677 N 10004 69 INDEX

1028 00 0001 0577 J 00 0001 10006 0576 65 0979 0611 R 10005 65 SUB11

0979 00 0889 0580 J 00 0889 10009 0577 20 0185 0177 0185 R 10006 20 P0009 EXITX P0009

0578 69 1331 0677 R 10007 69 INDEX

1331 1236 0938

00

2069

0001

0185

1293

1236

0938 04410185

J 00

20

69

0001 P0009 SUB13

P0009

1293 0998

00

20 0809

0292

0998 0177 0292

J 00

20 0809 ORCEQ EXITX ORCEQ

0579 20 0185 0177 0185 R 10008 20 P0009 EXITX P0009

0580

0988

20

69 0185 0177

0988

0661

0185 N 10009 20

69 P0009EXITX SUBR7

P0009

0581 00 0000 0573 R 10010 00 0000 10002

STORE EXIT ALPHABETIC I TO UPPER ANALYZE I-ADDRESS BRING EQUIVALENT. MULTIBRANCH

STORE EQUIVALENT OF BLANK FOR REFERENC

N.G. QUIT AND OMIT PUNCHING

BLANK I. IS D ALSO BLANK

D. D IS NOT BLANK. BLANK D AND I. CHECK DRUM TAG

I. DRUM IS FULL MAKE BLANK 1 EQUAL TO BLANK D USUAL CASE. I BLANK AND NOT D. TAGS AND EXIT FOR SUBROUTINE 11 DRUM ADDRESS. INDEX IF TAGGED

ADDENDS AND EXIT FOR USE IN SUBR 18. NEW SYMBOL. FIND BEST VALUE. TAGS AND EXIT FOR SUBR 11. BOOX ADDRESS. STORE AND EXIT CORE ADDRESS. INDEX IF TAGGED

ADDEND AND EXIT FOR SUBROUTINE 18. STORE CORE ADDRESS FOR PUNCHING

FIND DYNAMIC LEVEL

TAGS AND EXIT FOR SUBROUTINE 13 STORE DYNAMIC LEVEL FOR REFERENCE

OTHER ADDRESS. STORE AND EXIT. STORE EQUIVALENT OF NEW SYMBOL

STORE SYMBOL AND ITS EQUIVALENT

SYMBOL TABLE FULL. OMIT PUNCHING ADDR

2174

2176

2178

2180

2182 2184

21S6

2188 2190

2192 2194

2196

2198 2200

2202 2204

2206

2208 2210

2212 2214

2216

2218

2220

2222

2224

2228

2230

2232

0201 69 1050 1062

1062 90 8002 1067

1067 69 0292 0645 0645 2* 0486 8002 0486

N SUB22

SUBROUTINE 22. SAVE ORCEQ ON FIRST BACKWARD CARD

69 1050

90 8002

69 ORCEQ

24 SAVOR

FIRST-CARD TAG

D. WE ARE NOT ON FIRST BACKWARD CARD

STORE ORCEQ FOR USE WHEN WE START FORW

SAVOR STORE ORCEQ FOR USE WHEN WE START FORW

2234 2236

2238 2240

2242

HED

0002 69 1112 0039 R 0002 69

1112

1212

1262

65

10

69

0157

0151

1315

1212

1262 1024

J 65

1069

R0007

R0001

1315

1324

44

20 1321 0182

1324

1286 0182

J 44

20 NGL P0006

1321

1343 1286 0614

1312

10

2165

1069

0186

0186

0158

0152

0666

13*3

1286 0614

1312 1024

0186

N

c

NGL PROD

102165

10

69

P0010

P0O10

R0008

R0002

0666 44 1326 1078 J 44 NGD

ROUTINE FOR TYPE 2 CARD. NAMELY RELOCATABLE SUBROUTINE

OP. C.I.. TAGS. OPTIM. ALOPT NUMERICAL L ALPHABETIC L PROCESS L

D. RELOCATED L IS EXCESSIVE

P0006 STORE L FOR PUNCHING

FIX C.I. SO THAT L WILL NOT PUNCH ) PO010 FIX C.I. SO THAT L WILL NOT PUNCH ) NUMERICAL D ALPHABETIC. D PROCESS D

D. RELOCATED D IS EXCESSIVE

2244

2246

2250

2252 2254

2256

2258 2260

2262 2264

2266

2268

2270
1078 69 0982 0677 INDEX 0982 00 0000 1336

1336 20 0184 1238

1326 30 0001 1083

1083 10 0186 0494

0494 21 0186 1238 1238 65 0159 0664

0664 10 0153 0714 0714 69 1117 1024

1117 44 1228 1278

1278 69 1032 0677

1032 00 0001 1288

1288 20 0185 1338

1228 30 0002 1239

1239 10 0186 0544

0544 21 0186 1338

1338 60 0003 0057

0186

0186

N NGI

C ALL

20 0000 P0008 PRO I

30

10

2165

1069

0001 P0010 POOIO

R0009

R0003

PRO I

SUBR8

44

69 NGI INDEX

00

20 0001 P0009 ALL

30

10

2160

0002 POOIO

POOIO REAOC

ALL SB10A

ADDEND AND EXIT FOR INDEXING

P0008 STORE D FOR PUNCHING

FIX C.I. SO THAT D WILL NOT PUNCH ) FIX C.I. SO THAT D WILL NOT PUNCH ) POOIO FIX C.I. SO THAT D WILL NOT PUNCH ) NUMERICAL I ALPHABETIC I PROCESS I

D. RELOCATED I INDEX I IS EXCESSIVE

ADDEND AND EXIT FOR INDEXING

P0009 STORE I FOR PUNCHING

FIX C.I. SO THAT I WILL NOT PUNCH ) FIX C.I. SO THAT I WILL NOT PUNCH ) POOIO FIX C.I. SO THAT I WILL NOT PUNCH ) PREPARE TO PUNCH AND READ NEXT CARD

2274

2276

2278 2280

2282 2284

2286

2288

2290

2292 2294

2296 2298 2300

2302 2304

HED

EQU 0054 60 0153 0764

0025 0764

1217

0118 0119

0120

0121

0122 0123

0124

1098 0914

1267

0125 0126

0127

0128 0129

0130

0131

1289 0594

1099

60 0153

69 1217

65 0536

65 1328

65 1328

20 0095

65 1328

20 0095

20 0095

20 0095

60 0152

69 1267

65 0095

65 1328

65 1328

20 0536

20 0536

20 0536

20 0536

20 0536

69 0594

60 0095

69 0001

0764

0063 0120

1233 1233

1098 1233

1098

1098

1096 0914

0063 0127

1233

1233 1289

1289

1289

1289

1289

0661

1099

1025

0095 0095

0095

0536

0536 0536

0536

0536

1233 10 0003 0709

0098 0964

1064 0968

1317

1082

65 0159

16 0409

46 1317

15 0726

15 1019

15 0409

0964

1064

0968

1082

1082 0124

R 0025

C BOTH

J

R 00001

R 00002

N 00003

R 00004

R 00005

R 00006

R 00007

C X

R Q0008

R 00009

N 00010

R 00011

R 00012

R 00013

R 00014

C SD

N D

C CD

ER0003

R0003

EQUIV

83RD

83RD

E83RD

E

E

ER0002

E83RD

83RD EQUIV EOUIV

EOUIV

EQUIV

EQUIV

ESETCC

R0009

20001

DCDIFF

DDIFF

20001

e0u» syn. and req routines optim double-purpose to conserve drum space both equ entry, alphabetic i both syn entry, alphabetic i subr9 analyze i bring equivalent. multibranch.

invalid address

blank i. card is unusable

drum. put i-equivalent into e new symbol i. card is unusable

800x address

core address

Q0003

BP

BP

XBP

X

X

XSUBR9 Q0010

BP

BP

SD

SD

SD

SD

SDSUBR7

SUB2R

SUB 10

CDQ0007

OTHER ADDRESS ALPHABETIC D ANALYZE D BRING VALUE OF I INTO LOWER

N G D. CARD IS UNUSABLE

BLANK D. CARD IS UNUSABLE

EQUIV OLD SYMBOL. STORE I AS NEW EQUIV

EQUIV NEW SYMBOL. STORE I AS ITS EQUIVALENT

EOUIV 800X. STORE ITS EQUIVALENT.

EQUIV CORE. STORE I AS ITS EQUIVALENT.

EOUIV OTHER. STORE I AS THE EQUIVALENT.

STORE SYMBOL AND EQUIVALENT IN TABLE BRING SYMBOL-EQUIVALENT TO UPPER RESERVE AND PUNCH CARD BY-PAsS INVALID CARD

REO ENTRY. NUMERICAL I CORE OR DRUM

D. DRUM. I. CORE. ADD CORE RELOCATION AMOUNT ADD DRUM RELOCATION AMOUNT RESTORE THE 2000 AND JUMP BACK

2306

2308

2310

2314

2316

2318

2320

2322 2324

2326

2328 2330

2332 2334

2336

2338

2340

2342 2344

2346

2348 2350

2352 2354 2356

2358

2360

2362 2364

2366 2368

2370

2372

1328 00 8000 0000

0094 60 0158 1114

RBD ROUTINE

HED

0094 60 R0008 BEGINNING OF REGION TO BE RESERVED

2376

2378
1114 69 1018 1025 SUB2R RESERVE FIRST CELL IN BAND

1018 60 0153 1214 J 60 R0003

1214 45 1068 1329 45 OUT

1068 60 0158 1264 60 R0008 1264 10 0320 0730 10 50IXX

0730 21 0158 1314 0158 21 R0008 R0008

1314 11 0159 0716 11 R0009

0716 61 8003 0780 61 8003 0780 46 1329 0094 46 OUT 0094

1329 70 0151 1102 N OUT 70 R0001

1102 65 0160 0766 65 R0010

0766 16 0930 1339 16 941 1339 45 0644 0694 45 ALL 0694 60 8001 0709 60 8001 SUB10

1034 16 0038 0744 A 16 16THX 0744 11 8001 0452 11 8001 0452 10 0916 0980 10 0980 46 1283 0634 46 DONE

0634 11 8001 8002 11 8001 8002 0644 61 1248 0966 N ALL 61 SEND

0966 16 1230 8002 16 8002

1230 69 1355 8003 J 69 A0001 8003

1248 21 1359 1034 1359 J SENO 24 A0005 A A0005

1283 55 1680 0690 N DONE 65 ZEROX

0690 69 0794 1025 69 SUB2R

0794 60 0160 0709 60 R0010 SUB10

0916 24 1555 0000 1555 Q Q 24 A0201 0000 A0201 0930 00 0000 0094 K 941 00 0000 0094

IS THE I-ADDRESS BLANK

D. NOT BLANK. It IT IS BLANK. BRING FIRST ADDRESS AGAIN ADVANCE IT R0008 STORE ADVANCED D ADDRESS

SUBTRACT END OF AREA TO BE RESERVED

CHANGE ITS SIGN

D. WE HAVE FINISHED

WHEN DONE. READ NEXT CARD

IS THIS ANOTHER RBD CARD ) IS THIS ANOTHER RBD CARD ) I. IT IS ANOTHER RBD CARD PUNCH A CARD. AND REPEAT RBD DUPLICATE INTO AVAILABILITY TABLE t DUPLICATE INTO AVAILABILITY TABLE ) DUPLICATE INTO AVAILABILITY TABLE ) DUPLICATE INTO AVAILABILITY TABLE ) DUPLICATE INTO AVAILABILITY TABLE I DUPLICATE INTO AVAILABILITY TABLE ) DUPLICATE INTO AVAILABILITY TABLE ) DUPLICATE INTO AVAILABILITY TABLE ) A0005 DUPLICATE INTO AVAILABILITY TABLE ) CLEAR ACCUMULATOR

RESERVE 0000 PUNCH CARD AND PROCEED

2384

2386

2388

2390

2392 2394

2396

2398

2400

2402 2404

2406

2408

2410

2412 2414

2416

2418 2420

2422 2424

2426

2428

2430

2432 2434

2436

BLR. BLA. AND RBR ROUTINES

0029 69 1232 0740 R 0029 69 ZQ SUB

1232 69 0001 1025 J zo 69 SETCC SUB2R

0021

1298

1280

6924

69

1044

1669

1333

1298

1280 07401669

R 0021 69

24

69

81STX DRUMT

SUB

1333 69 0001 1075 J 69 SETCC SUB2U

0099 69 0502 0740 R 0099 69 SUB 0502 10 1019 1232 J 10 DDIFF ZQ 0740

1282 1016

24

65

45

0179

0153

1330

1282

1016

1332

0179 N SUB 24

65

45

EXITZ

R0003

BL 1330

1066

1332

65

16

10

0159

0158

0158

1066

1332 0179 C BL

65

16

10

R0009

R0008

R0008

BLEXITZ

blr entry. to subroutine

to reserving subroutine

bla entry, change drum tag drumt change drum tag. drum cannot be full.

TO SUrROUTINE

TO UNRESERVING SUBROUTINE

RBR ENTRY, TO SUBROUTINE

ADD RELOCATION AMOUNT

EXITZ STORE EXIT ALPHABETICAL I I. I IS UNPUNCHED

NUMERICAL I INTO LOWER SUBTRACT NUMERICAL D FROM LOWER NUMERICAL D INTO UPPER

2438 2440

2442 2444

2446

2448 2450

2452 2454

2456

2458 2460

2462 2464

2466

2468

REG ROUTINE

0097 65 0152 1116 R 1116 30 0008 0790 0790 16 1308 1216 1216 46 0684 0029

0684 15 1119 0734 0734 46 0029 0940

0940 35 0004 0552

0552 15 1266 0784

0784 69 0158 8002

1266 2* 1660 0029 1660 J ST

HED

65 R0002

30 0008

16 99THX

46

15 29IXX

46 0029

35 0004

15 ST 69 R0008

24 G0001

REGION DESIGNATOR TO RIGHT END ) REGION DESIGNATOR TO RIGHT END 1 SUBTRACT 90

IF A DIGIT, TO BLR WITHOUT DESIGNATING

ADD 29

IF SPEC CHAR. TO BLR DIRECTLY

SHIFT TO D POSITION

MAKE STORING ORDER ADDRESS OF 0001 OF REGION

G0001 STORE ADDRESS OF 0001 OF REGION

2470

2472

2474 2476

2478

2480

2482 2484

2486

2488

2490

2492

HED ROUTINE
HEO 0084 65 0990 8002 R 0084 65 8002 0990 10 1898 0608 J 10 ZMAXM U0001

0608 44 1316 0001 R U0001 44 SETCC

1316 35 0008 1040 35 0008

1040 30 0008 1118 30 0008

1118 44 0001 0934 44 SETCC

0934 15 1090 8002 15 K 8002 0609 16 1218 8002 R U0002 16 KA 8002

1090 11 0000 0001 P K 11 0000 0001

1218 11 0001 0001 P KA 11 0001 oooi

ADDING ORDER TO LOWER

ADD A SYMBOL TO UPPER

I i IT IS ZERO AND WE HAVE FINISHED

CLEAR ALL EXCEPT LAST CHARACTER ) CLEAR ALL EXCEPT LAST CHARACTER ) Di QUIT BECAUSE WE HAVE FOUND LONG SYM MAKE STORING ORDER. AND STORE ZERO RESTORE LOWER, AND ADD NEXT SYMBOL

TO CHANGE ADDING ORDER TO STORING ONE

TO CHANGE STORING ORDER TO ADDING ONE

2496

2498 2500

2502 2504

2506

2508 2510

2512 2514

2516

ALF ROUTINE

HED 0016 65 0114 0984 0984 24 1030 1084 1084 24 0197 1350 1350 69 0154 1268

1268 24 0186 1240 1240 69 0944 0042 0944 65 0152 1318

1318 24 0185 1290 1290 30 0004 0602

0602 20 0184 1340 1340 24 0183 0994 0994 60 0003 0057

1030

0197

0184

0183

65 91STX

24 1030

24 ALOPT

69 R0004

24 P0010

69

65 R0002

24 P0009

30 0004

20 P0008

24 P0007

60 READC

TAG IN CASE L IS UNDEFINED SYMBOL ) 1030 TAG IN CASE L IS UNDEFINED SYMBOL ) ALOPT TAG In CASE L IS UNDEFINED SYMBOL ) CONTROL INFORMATION ) P0010 CONTROL INFORMATION ) PROCESS L, IF REGIONAL OR SYMBOLIC ALPHABETIC SYMBOL

P0009 STORE LAST 4 DIGITS OF CONSTANT IN I P0008 STORE NEXT 4 DIGITS IN D POSITION

P0007 STORE FIRST 2 DIGITS IN OP POSITION

PUNCH

2518 2520

2522 2524

2526

2528 2530

2532 2534

2536

2538 2540

2542 2544

PAT ROUTINE

0073 60 0010 0709 R 0073 60 0010 SUB10

0010 69 1234 1244 J 0010 69 85TH

1244 24 0186 1294 0186 24 P0010

1294 60 1348 1284 60 Al 1284 15 1344 1249 15 RSI LOOP

1249 20 0177 1334 0177 C LOOP 20 P0001

1334 15 0695 1299 15 C3 1299 20 0179 0745 0179 20 P0003

0745 15 0695 1349 15 C3 1349 20 0185 0795 0185 20 P0009

0795 15 0695 0652 15 C3 0652 20 0183 8003 0183 20 P0007 8003 0168 ?• 0178 0945 0178 R TOO01 24 P0002 0945 10 0702 8003 10 C6 8003 0169 z« 0180 0995 0180 R T0002 24 P0004

0995 10 0702 R0O3 10 C6 8003 0170 2* 0182 1045 0182 R T0OO3 24 P0006

1045 10 0702 8003 10 C6 8003

0171 24 0184 1095 0184 R T0004 24 P0008

1095 10 0702 8003 10 C6 8003

0172 71 0177 1096 R T0005 71 P0001 1096 11 1352 1046 11 1046 44 0752 0003 44 READC

0752 10 1245 0952 10 OS

0952 16 1295 1249 16 C7 LOOP

1348 69 1355 0168 P Al 69 A0001 T0001

0702 00 0001 0001 P C6 00 0001 0001

1352 69 1555 0172 69 A0201 T0005

1245 69 1555 0168 OS 69 A0201 T0001

1344 00 0000 0450 K RSI 00 0000 0450

0695 00 0500 0500 K C3 00 0500 0500

1295 00 1499 1499 K C7 00 1499 1499

1234 00 0080 0000 K 85TH 00 0080 0000

PUNCH USUAL DUMMY OUTPUT CARD

C.I. FOR AVAILABILITY TABLE ) P0010 C.I. FOR AVAILABILITY TABLE I VARIABLE BRINGING ORDER INTO UPPER

INITIAL WORD SHOWING LOCATION OF TABLE

P0001 STORE LOCATION OF AVAILABILITY WORD MODIFY IDENTIFICATION OF WORD

P0003 STORE LOCATION OF AVAILABILITY WORD MODIFY IDENTIFICATION OF WORD P0009 STORE LOCATION OF AVAILABILITY WORD MODIFY IDENTIFICATION OF WORD P0007 STORE LOCATION OF AVAILABILITY WORD

P0002 STORE AVAILABILITY WORD MODIFY BRINGING ORDER. AND BRING

P0004 STORE AVAILABILITY WORD MODIFY BRINGING ORDER, AND BRING

P0006 STORE AVAILABILITY WORD MODIFY BRINGING ORDER, AND BRING

P0008 STORE AVAILABILITY WORD MODIFY BRINGING ORDER, AND BRING

PUNCH A CARD OF THE TABLE

ARE WF DONE

D, WE ARE NOT DONE. RESTORE VARIABLE BRINGING ORDER MODIFY IDENTIFICATION FOR NEXT CARD

INITIAL VARIABLE BRINGING ORDER

TO MODIFY VARIABLE BRINGING ORDER COMPARISON CONSTANT FOR END OF JOB

TO RESTORE BEFORE END OF JOB INITIAL IDENTIFICATION OF WORD

TO MODIFY IDENTIFICATION

TO MODIFY INDENTIFICATION AT END OF LI

2546

2548

2550

2552 2554

2556 2558

2560

2562 2564

2566

2568 2570

2572 2574

2576

2578

2580

2582 2584

2586

2588 2590

2592 2594

2596

2598 2600

2604

2606

2608 2610

2612

2614
0093 65 0152 1345

13*5 45 0596 0646 0596 65 0158 0646 0646 20 1019 0696

0696 65 0153 0746

0746 45 0796 0946 0796 65 0159 0946 0946 20 0726 0001

1019

HED

REL ROUTINE

0093 65

45 R0002 SOD

6520

65

45

R0008 DDIFF

R0003

SOD

SCD

65

20 R0009

CDIFF SCO SETCC

ALPHARETIC d

IF D IS BLANK, WE SHOULD STORE ZERO BRING NUMERICAL D DDIFF STORE DRUM RELOCATION AMOUNT ALPHARETIC I JUMP IF I IS BLANK BRING NUMERICAL I CDIFF STORE CORE RELOCATION AMOUNT

2616 2618

2620

2622 2624

2626

2628 2630

2632 2634

0027 69 0001 0006

BOP ROUTINE

R 0027 69 SETCC SUBR1 TO INITIALIZING SUBROUTINE

2636

2638

GENERAL CONSTANTS

0515 00 0000 0001 K 110TH 00 OOOO 0001

1022 00 0000 0002 K 2IXXX 00 OOOO 0002 0774 00 0000 0004 K 4IXXX 00 OOOO 0004

0068 00 0000 0008 K 810TH 00 OOOO OOOP 0202 00 0000 0025 K 25IXX 00 OOOO 0025

1119 00 0000 0029 K 29IXX 00 OOOO 0029 0320 00 0000 0050 K 50IXX 00 oooo 0050

0722 00 0000 0080 K 89THX 00 oooo 0080

1308 00 0000 0090 K 99THX 00 oooo 0090

0672 00 oooo 0800 K 88THX 00 oooo 0800

0409 00 oooo 2000 K 20001 00 oooo 2000

0622 00 0000 8000 K 87THX 00 oooo 8000

0038 00 0001 oooo K 16THX 00 0001 OOOO

0492 00 0002 oooo K 2DXXX 00 0002 OOOO

0132 01 oooo oooo K 12NDX 01 oooo OOOO

0254 10 oooo oooo K 11STX 10 oooo OOOO

1044 80 oooo oooo K 81STX 80 oooo oooo

0114 90 oooo oooo K 91STX 90 oooo oooo

0395 00 0210 oooo K ZTABL 00 PAT 0210 oooo LENGTH OF SYMBOL TABLE

2640 2644

2646

2648 2650

2652 2654

2656

2658 2660

2662 2664

2666

2668 2670

2672 2674

2676

2678 2680

2682
INSTRUCTIONS LISTED IN ORDER OF DATA ADDRESS

0520

0523 052* 0527

0264

0277

0624 0727

0927

0373

0378 0687

0428

0*23 0425

1226 0928

0478

0581 0982

1090

1232 1333

1118

1218 0702

0027

0568

1028

1331

1032 1099

00 0000

00 0000

00 0000

00 0000

45 0000

00 oooo

00 0000

00 0000

00 0000

01 0000

60 0000

00 oooo

65 OOOO

00 OOOO

00 OOOO

00 OOOO

00 oooo

00 oooo

00 oooo

00 oooo

li oooo

69 0001

69 0001

44 0001

11 0001

00 0001

69 0001

00 0001

00 0001

00 0001

00 0001

69 0001

0329

0519

0329

0081

0001 0269

0376

0631 0919

0373

0605

0991 0756

0001 0*19

0*76

0932

0*70

0573

1336

0001

1025

1075 093*

0001

0001 0006

0375

0577

1236

1288

1025 099* 60 0003 0057 0100 69 0003 0006

0015 60 0003 0057

0001 60 0003 0709

1338 60 0003 0057

1233 10 0003 0709

0051 69 0004 0107 0256 69 0009 0039 0073 60 0010 0709

0007 44 0011 0012 0283 96 0012 0138

0141 69 0012 0045 0011 69 0014 0107

0012 69 0015 0018

0321 10 0024 8003

0023 45 0026 0077

0071 44 0026 0076 0060 44 0026 0064 0150 94 0026 0055 0307 45 0026 0136

0173 44 0026 0078 0457 45 0026 0111 0734 46 0029 0940

X0003 X0O06

X0007 X0010

c*M0010

C0010

J0006

L0006

L0008

D0010

10010

J ZO

J

N OK

J

N SETCC

C ALL

N BP

N MDFLP

N MDFLI

C ABCDE

00

00

00

00

*500

0000

00

016000

650000

00

00

0000

00

11

oooo

oooo

oooo

oooo

oooo

oooo

oooo

oooo

oooo

oooo oooo

oooo

oooo

oooo

oooo oooo

oooo

oooo

oooo

oooo

oooo

69 SETCC

69 SETCC

** SETCC

11 0001 oo oooi

69 SETCC

00 OOOI

00 0001

00 0001

00 0001

69 SETCC

60 READC

69 READC

60 READC

60 READC

60 READC

10 READC

69 P

69

60 0010

44 MDFLI

96 ABCDE

69 ABCDE

XIX0002

XI

F 0001 M0002

AC0002 J0006

SETCC L0002

D0008

D0002

10002

SUB2R SUB2U

0001

OOOI SUBR1 J0008

10006

SUB2R

SB10A

SUBR1 SB10A

SUB10 SB10A

SUB10

ASUB14

SUB10 ABCDE

SUB20

69 SUB21

10 8003

45 OUITT

44 QUITT

44 QUITT

94 QUITT . 45 QUITT B 44 QUITT

45 QUITT

DRUM. OLD SYMB. REG. FIXED

CORE. TREAT SAME AS BLANK OTHER ADDRESS. FIXED OLD SYMBOL. DRUM. REGION. FIXED DIFFERENCE OF BRINGING AND STORING ORD

NEW SYMBOL. BUT SYMBOL TABLE FULL TAG-IDENTIFICATION. AND EXIT FROM 18 ADDEND AND EXIT FOR SUBROUTINE 18 NEW SYMBOL. BUT TABLE FULL. N.G. 800X RANGE. ERROR. BRING APPROPRIATE TABULAR VALUE

TO BUILD EXIT FROM SUBROUTINE 13 BRING ADDENDS

800X ADDRESS. QUIT IMMEDIATELY MISCELLANEOUS ADDRESS. QUIT AND OMIT ADDEND AND EXIT FOR USE IN SUBR 18 ADDEND AND EXIT FOR SUBROUTINE 18 SYMB TABLE FULL OR DRUM PACKED. QUIT SYMBOL TABLE FULL. OMIT PUNCHING ADDR ADDEND AND EXIT FOR INDEXING

TO CHANGE ADDING ORDER TO STORING ONE

TO RESERVING SUBROUTINE

TO UNRESERVING SUBROUTINE

D. QUIT BECAUSE WE HAVE FOUND LONG SYM

TO CHANGE STORING ORDER TO ADDING ONE

TO MODIFY VARIABLE BRINGING ORDER

TO INITIALIZING SUBROUTINE

ADDEND AND EXIT FOR SUBROUTINE 18 ADDENDS AND EXIT FOR USE IN SUBR 18. ADDEND AND EXIT FOR SUBROUTINE 18. ADDEND AND EXIT FOR INDEXING RESERVE AND PUNCH CARD

PUNCH INITIALIZE AT START OF ASSEMBLY

PREPARE TO PUNCH CARD SEQUEL TO MANY PSEUDO-OPS.

PREPARE TO PUNCH AND READ NEXT CARD BY-PARS INVALID CARD STARTED SEARCH WITH MDF OPERATION

GET OP. C.I.. TAGS. OPTIM. ALOPT. PUNCH USUAL DUMMY OUTPUT CARD

IF SO, START FORWARD SEARCH

IF WITH It PROCESS LIKE 08 PROCESS D. AND TO 08 ROUTINE

STARTED SEARACH WITH INDEXED D PROCESS I STORE PROCESSED CARD )

D. IT IS NOT. AND WE QUIT

IF SO, QUIT SEARCH ) IF N Gi QUIT SEARCH

IF SO, QUIT SEARCH

IF SO, QUIT SEARCH

IF I IS N G, QUIT SEARCH

IF SO, QUIT SEARCH

IF SPEC CHAR. TO BLR DIRECTLY

704

708 710

728 1130

1216 1246

1264 1284

1318

1568

1622

1842 2102 2110

2138 2154

2172

2232 2274

2514 2*44

2452

2508 2516

2602 2638

1312 2206

2216 2294

2358 2544

362

392 1580 2304

2360

398

538

542

390

878 436

444

456

462 466 474

486 2*84

0028 11 0031 0035 STORE SET OF DATA ) 0078 45 0032 0019 0336 95 0032 0012

45 BCDEF

95 BCDEF BACKW

ABCDE

IF I IS FIXED, START BACKWARD

WITH I. EXIT ACCORDING TO WHY SEARCH

476

612

0081 91 0034 0436

0033 69 0036 0039

MULTIPLE BRANCH ACCORDING TO TAGS )

0585 69 0686 66 0462 16 0562 15 1034 16 0035 15 0161 15 0327 16 0265 16 0259 16 0547 150038 0741 0038 0643

0038 0793

0038 0793

0038 0744

0038 0043

0038 0143

0038 0243

0038 0293

0038 0443

0038 8002 0087 24 0040 0193 0040

69 16THX

66 16THX

16 16THX ST

15 16THX ST 16 16THX

15 16THX

15 16THX

16 16THX LOi 16 16THX

16 16THX

15 16THX

24 SAVED

OP, C.I, OPTIM. ALOPT. ETC. PRESET T AS POSITIVE 1 ) SHORT. PRESET T AS -1 ) COMPARISON CONSTANT FOR LAST PART COMPARISON CONSTANT FOR LAST PART DUPLICATE INTO AVAILABILITY TABLE I STORE SET OF DATA ) BRING BACK A SET ) BRING BACK A SET ) BRING BACK A SET I STORE PROCESSED CARD I BRING BACK A SET OF RESULTS ) SAVED SAVE D FROM CARD THAT STARTED SRCH I376

1502 1510

1642 1666 2410

416

560

6*2

652 886

922

628
0135 69 00*0 0343

0041 10 0044 8003 01*7 10 0050 8003 0048 94 0051 0053

0049 24 0052 0205 0090 24 0052 0468

0397 69 0052 0305 0102 65 0052 0201 0257 69 0060 0061 0109 65 0062 0217 0406 65 0062 0267

0376 20 0062 0925

0371 24 0062 0615

0335 20 0062 0177

1320 65 0062 0967 0956 15 0062 1017 0163 69 0066 0400

0065 16 0068 0023

0165 16 0068 0323 0218 60 0068 0177

0219 65 0068 0177

0221 65 0068 0177

0223 65 0068 0177

0224 60 0068 0177

0215 22 0069 0022 0106 16 0069 0623

0571 69 0074 0377

0522 15 0075 0329

0518 15 0075 0329

0521 15 0075 0329 0176 15 0079 0233 0229 10 0082 8002

0083 65 0086 0041 0076 45 0088 0026 0036 69 0089 0042 0088 69 0091 0039

0089 69 0092 0045 0092 69 0688 65 0490 65 0706 69 1222 16 1306 2* 0471 69 1049 69 0120 20 0122 20 0123 20 0124 20 1267 65 0594 60

0095 0048

0095 0699

0095 0749

0095 0548

0095 0785 0095 0648

0095 0748

0095 0948

0095 1098

0095 1098

0095 1098

0095 1098 0095 0127

0095 1099 0193 69 0096 0049

0298 69 0101 0018 0149 69 0195 69 01*8 20 0032 65 0227 65 0258 65 0205 65 0456 60 0331 21 0312 60 0362 60 0747 69 1005 11 0636 21

0102 0018

0102 0045

0103 0056

0103 0407

0103 00*1 0103 0557

0103 0757

0108 0263

0108 0361 0108 0513

0108 0563

0108 8002

0108 0763

0108 0961

0052 0052

0062

0062

0062

0095

0095

0095

0095

0103

LNM

LN

J

JN A

N J0004

N SB10C

R F0001

R F0002

R F0004

R F0006

R F0007

R X0005

R X0001

R X0004

J

C C

J

J

N FD

N FIBO

R 00003

C B N Q0003

R 00005

R Q0006

R 00007

J

J

69 SAVED

10

10 QS

94 MDFLP

24 DONE

24 DONE

69 DONE

65 DONE

69

65 OPREG

65 OPREG

20 OPREG

24 OPREG

20 OPREG

65 OPREG

15 OPREG

69

16 810TH

16 810TH

60 810TH

65 810TH

65 810TH

65 810TH

60 810TH

22 QC

16 QC

15 13RD

15 13RD

15 13RD

15 710

10 SEND

65 SEND

45 C 69

69

69

69 OPTIM

65 OPTIM

65 OPTIM

69 OPTIM

16 OPTIM

24 OPTIM

69 OPTIM

69 OPTIM

20 E 20 E 20 E 20 E 65 E 60 E

8003 8003

69 DN1

NO

SUBR4

SUB22

C0008

EXITX

EXITX

EXITX

EXITX

EXITX

EXITX

XIXI

XI

8002 LOOP OUITT

SUB19

SUB1*

SUB20

X

XO0010

J 69 LN SUB21

J 69 LN SUB20

N OUT 20 FINAL

N BCDEF 65 FINAL

C LP 65 FINAL LOOP

N SKP 65

65

60

FINAL FINAL

SA

C SU 216060

SA

SASA

69 HSYMB 80' 11 HSYMB

N ABC 21 HSYMB

BRING BACK L AND D I STORE SET OF DATA ) STORE SET OF DATA )

D. YEs DONE PRESET EXIT FROM BACKWARDS ROUTINE ) DONE WITH (_• ALTER EXIT ) PROCESS L BACKWARDS

SAVE ORCEQ

IF SO, IS IT FIXED ) SAVE DYNAMIC LEVEL OF L FROM D ) WHICH L IS LESS» MEASURED ON CIRCLE ) OPREG STORE ADDRESS FOR OPTIMIZING NEXT ADDR OPREG DRUM OR DRUM EQUIVALENT

OPREG FROM 4-5 t 19-20. STORE DYNAMIC LEVEL WHICH ONE DO WE USE ) ADD OLD DYNAMIC LEVEL

PROCESS BACKWARDS D ONCE MORE

IS CARD OF TYPE 08 ) IS IT TYPE 08) ADDRESS IS N G BLANK ADDRESS SYMBOLIC ADDRESS. WITH UNDEFINED SYMB CORE ADDRESS

OTHER ADDRESS. USUALLY PART OF CONST.

QC NOT 1ST CARD. MAKE COMP. CONST. ) IS THIS LAST SET MAKE NEW BRINGING ORDER ) 80OX. CALL IT UNFIXED

ADDRESS N G. CALL UNFIXED

NEW SYMBOL. UNFIXED

IS TYPE 01 BRING BACK A SET ) STORE SET OF DATA I

IF SO, QUIT SEARCH I PROCESS L GET OP. C.I., TAGS, OPTIM, ALOPT. PROCESS D

IS IT AN MDF OPERATION ) FORWARD D. L-D ADDENDS, LEFT END LOWE FORWARD I OR BACKWARD D. GET ADDENDS OPTIMIZING TAGS

REDUCE ADDENDS BY 1 FOR 80.32, OR 88 OPTIM STORE OPTIMIZING ADDENDS AND TAGS BLANK D. IS IT MDF OPERATION

SEVERAL CASES. WHAT KIND OF OP

E DRUM. PUT I-EQUIVALENT INTO E

E 80OX ADDRESS

E CORE ADDRESS

E OTHER ADDRESS

BRING VALUE OF I INTO LOWER BRING SYMBOL-EQUIVALENT TO UPPER

PRESET EXIT FROM BACKWARDS ROUTINE ) PROCESS I FORWARDS

PROCESS I FORWARDS

PROCESS D FORWARDS

FINAL STORE VARIABLE ORDER

IS STORAGE AREA FULL ) ALL CASES, BACK TO START OF LOOP

NOT 1ST CARD. MAKE COMP. CONST. ) BRING BACK A SET ) ARE WE TO LAST LINE OF TABLE ) SA STORE VARIABLE STORING ORDER MODIFY TO TAKE FIRST LINE, SAME COLUMN

LAST LINE AND END OF WORD. MODIFY I STORE SYMBOL ) SOME SYMBOL WAS FOUND. SUBTRACT OURS

HSYMB ADDRESS NOT BLANK. STORE SYMBOL

678

408 420

38*

632 684

762 786

*54

818

834

1278

1308

1602 1886

1902

852 43*

496 1154

1156 1160

1164

1166 5*8

568

696

698 706

500

552 406 **6

378

44 8

380

382 1786

1798 1826

18*8

1966 2128

2166

232*

2328 2330

2332

2338

2356

630

78*

79*

422 *78

512 5** 63*

1018 1026

1108 1120 133*

1*22 1**0
0416 60 0108 1013 N SYM 60 HSYMB

0356 65 0109 0113 J 65 SSB 0357 69 0110 0061 69 SUBR3

0791 01 0111 1219 J FULL 01 0111 NG

0309 46 0112 0213 46 OUT

0111 69 Oil* 0017 69 91STX

0188 69 Oil* 0067 N B 69 91STX

1109 69 Oil* 0617 69 91STX

0016 65 Oil* 098* R 0016 65 91STX

0263 11 0116 0671 11 796 016* 24 0117 0020 0117 2* VAR2X

0096 65 0117 0321 J ONI 65 VAR2X

0398 20 0117 0570 0117 N 0UT2 20 VAR2X

0137 65 0117 0571 J ENDED 65 VAR2X

0987 15 0132 1037 15 12NDX 0529 15 0132 0187 R X0012 15 12NDX X2 0525 15 0132 0187 R X0008 15 12NDX X2 0528 15 0132 0187 R X0011 15 12NDX X2 0301 15 0132 0237 15 12NDX

0351 16 0132 0287 16 12NDX XY 0231 61 013* 8003 61 8003 0133 96 0136 0088 96 B C 0288 69 0137 0090 N L 69 ENDED

0286 69 0139 0018 J JUMP 69 SUB21 0*36 99 01*0 0291 99 MISC

0138 69 0141 00*2 69 SUB19

0091 95 01** 00*6 J 95 K 006* 45 01** 0019 *5 K BACKW

02*3 10 01*6 8002 N LOOP 10 8002

00*3 *4 01*7 01*8 ** OUT 0196 69 01*9 0305 J 69 SUBR4

0037 24 0151 010* 0151 2* R0001 0250 2* 0150 0*08 0150 OS 2* ROOOO X 00*4 69 0151 8002 J 69 R0001 8002

0077 60 0151 0005 60 R0001 0253 70 0151 1007 70 R0001

0082 2* 0151 020* 0151 J SEND 2* R0001 X 0261 24 0151 0*08 0151 Q 2* R0001 X 0080 60 0151 0*55 60 R0001 0*80 60 0151 0712 60 R0001

1212 10 0151 1262 10 R0001

1329 70 0151 1102 N OUT 70 R0001 00*6 60 0152 0257 60 R0002

010* 24 0152 0105 0152 24 R0002 0350 60 0152 1057 60 R0002

0230 60 0152 0958 60 R0002

0630 60 0152 0762 60 R0002

0574 60 0152 1012 R 10003 60 R0002

061* 10 0152 1312 10 R0002

1098 60 0152 091* C X 60 R0002 0097 65 0152 1116 R 0097 65 R0002 09** 65 0152 1318 J 65 R0002

0093 65 0152 13*5 R 0093 65 R0002

0136 60 0153 0357 C B 60 R0003

0105 2» 0153 0236 0153 24 R0003 YYY

0255 60 0153 0957 60 R0003

0330 60 0153 1108 60 R0003

0680 60 0153 0962 60 R0003

066* 10 0153 071* 10 R0003 005* 60 0153 076* R 005* 60 R0003 BOTH

0025 60 0153 076* R 0025 60 R0003 BOTH

1018 60 0153 121* J 60 R0003

1282 65 0153 1016 65 R0003

0696 65 0153 07*6 65 R0003

0941 21 015* 0759 015* 21 R0004

0430 69 015* 1110 69 R0004

1350 69 015* 1268 69 R0004

symbolic address. bring symbol

bring back blanb and orceb

is i a fixed address i stop jf symbol table is full clear region and symbol tables ) change first-card indicator to 2nd ) start on l. first-card tag ) change drum tag to 9 ) tag in case l is undefined symbol ) are we to last line of table ) var2x preset to store after processing ) all cases. store processed card ) var2x store processed card ) make new bringing order ) should we interchange addends ) 800x address. unfixed

d is n g. call unfixed

new symbol. unfixed

modify to use routine for unfixed d ) modify alopt again ) clear region and symbol tables ) with i or l. respectively

with l. alter exit ) process i multiple branch according to tags ) process l

is d actually an address

if fixed. start backward processing

bring back a set ) store set of data ) process l backwards

r0001 if so, put in dummy moveable words ) roooo restore comparison constant and modify

store set of data ) alphabetic l read another card

r0001 bring back a set ) r0001 comparison constant for end of set alphabetical l into upper alphabetical l to upper alphabetic l when done. read next card

if so, is it fixed ) r0002 if so, put in dummy moveable words ) alphabetic d, to see whether fixed alphabetic d into upper alphabetical d into upper

blank i. is d also blank alphabetic d alphabetic d region designator to right end t alphabetic symbol

alphabetic d

is i a fixed address ) r0003 if so, put in dummy moveable words ) bring alphabetic i alphabetic i to upper alphabetic i to upper alphabetic 1 eou entry, alphabetic i syn entry, alphabetic i is thf 1-address blank alphabetical i alphabetic i r0004 to suppress in case we search

control information for punching ) control information )

1*96 816 *70

1556 958

488 61*

1700

2522 1020

620

876

892 90*

1870

720

722 730

826

856

952

43

682 386

7*0

540 *50

458

6*6

*18

7B2

50*

750

410

*38

492 556

748 1174

2070

2252 2400

452

506

714 1224

2118 2190

2266 2334

2474 2534

2620 468

508 690

1292 2180 2286

2312 2314

2384

2460

2628

1998

1926 2528
0236 24 0155 0227

0031 69 0155 8002 0607 2ft 0155 0204 0146 24 0155 0408

0989 65 0155 1210

0155 0155

C YYY

Q

J

24 R0005

69 R0005

24 R0005

24 R0005

65 R0005

R0005 EITHER CASEt SOMETHING INTO R0005 COMPARISON CONSTANT FOR STORING

R0005 COMPARISON CONSTANT FOR BRINGING SET R0005 BRING BACK A SET ) BRING TAGS AND OPERATION

510

514

596

648 1930 0050 69 0156 8002 0200 24 0156 0204

1112 65 0157 1212 1286 65 0158 0614

0094 60 0158 1114

1068 60 0158 1264 0730 21 0158 1314

1066 16 0158 1332

1332 10 0158 0179 0784 69 0158 8002 0596 65 0158 0646

QS

OS

C PROD

R 0094

69 R0006

24 R0OO6

65 R0007

65 R0008

60 R0008

60 R0008

21 R0O08

16 R0008

10 R0008

69 R0008

65 R0008

BLEXITZ

8002 SDD

TO RESTORE COMPARISON CONST + ADVAN

R0006 TO RESTORE AND ADVANCE

NUMERICAL L NUMERICAL D BEGINNING OF REGION TO BE RESERVED

BRING FIRST ADDRESS AGAIN

R0008 STORE ADVANCED D ADDRESS

SUBTRACT NUMERICAL D FROM LOWER NUMERICAL D INTO UPPER ADDRESS OF 0001 OF REGION

BRING NUMERICAL D

516

598 2250

2264

2380

2388

2392 2466

2468

2490 2624

1238 65 0159 0664

0098 65 0159 0964

1314 11 0159 0716

1330 65 0159 1066 0796 65 0159 0946

C PROI

R 0098

65 R0009

65 R0009

11 R0009

65 R0009

65 R0009

numerical i req entry, numerical i subtract end of area to be reserved numerical i into lower bring numerical i2284

2362 2394

2464

2632

0058 65 0160 0065

1007 65 0160 0165

1102 65 0160 0766 0794 60 0160 0709

65 R0010

65 R0010

65 R0010

60 R0010

IS CARD OF TYPE 08 ) IS IT TYPE 08)

IS THIS ANOTHER RBD CARD ) PUNCH CARD AND PROCEED

432 494

2402

2432 0003 70 0161 1041 0508 45 0162 0178

0560 65 0163 0113

0313 46 0166 0178

70 ROOU

45

65

46

EXITY

SSB EXITY

READ ONE CARD

D, WE HAVE NOT FINISHED. I» WE HAVE. BRING BACK BLANB AND ALOPT ONCE MORE

1 1 OVER 1999. WE RESERVE NOTHING

364

1012

850 1046

0013 22 0167 0070 0167 22 XXXX1 XXXX1 BRING BACK A SET ) 0377 22 0167 0620 0167 22 XXXX1 LOOP XXXX1 MAKE NEW BRINGING ORDER I 0673 65 0167 0621 J ' 65 XXXX1 BRING BACK A SET OF RESUTTS ) 0448 20 0167 0620 0167 N OUT 20 XXXX1 LOOP XXXX1 STORE MODIFIED BRINGING ORDER + REPEAT

0555 20 0167 0670 0167 20 XXXX1 XXXX1 MAKE BRINGING ORDER ) 0713 21 0167 0720 0167 C RES 21 XXXX1 XXXX1 STORE ADDRESS TEMPORARILY

1273 65 0167 0177 J 65 XXXX1 EXITX EQUIVALENT BACK TO LOWER AND EXIT 0390 22 0167 0441 0167 22 XXXX1 SUB13 XXXX1 PREPARE EXIT AND GO TO SUBROUTINE 13 I 1209 22 0167 8001 0167 22 XXXX1 8001 XXXX1 NEW AVAILABILITY WORD INTO DRUM ) 0935 20 0167 1320 0167 C P ' 20 XXXX1 XXXX1 ALL CASES. STORE ADDENDS

1014 65 0167 0771 65 XXXX1 ODD. SEPARATE LAST ADDEND I 0414 65 0167 0985 N EVN 65 XXXX1 BOTH EVEN. WE SHOULD USE FIRST ADDEND

1261 23 0167 0971 0167 23 XXXX1 XXXX1 STORE LAST 4 DIGITS OF OPTIM

1089 10 0167 1071 C AX 10 XXXX1 ADD IN TAGS FROM OPTIM

1281 20 0167 1121 0167 20 XXXX1 XXXX1 STORE ADDRESS

1221 10 0167 1271 10 XXXX1 INDEXABLE ADDRESS INTO UPPER

0999 15 0167 0178 C A 15 XXXX1 EXITY ADD ADDRESS BEING INDEXED. EXIT.

638

908

912 934

1348 1404

1408

1620 1736

1884

1892

1898 1970

1980 2034

2048

2060

0621 16 0174 0379

0072 65 0175 0429

0323 45 0176 0227

16 QL

65 AVAL

45

BRING BACK A SET OF RESULTS ) MAKE DRUM AVAILABLE I

D. IT IS NOT. I. IT IS.

914

498

0061 0305

0400

0142

1024 0434

0039

0042 0045

0948

0018

0988

1249 0172

24 0177

24 0177

24 0177

24 0177

24 0177

71 0177

24 0177

24 0177

24 0177

91 0177

24 0177

69 0177

20 0177

71 0177

0030

0080

0230 0330

0380

8003 0430

0480

0630 0335

0680

0661

1334

1096

0177

0177

0177

0177

0177

0177

0177 0177

0177

0177

N SUBR3

N SUBR4

N SUBR5

N SUBR6

N SUBR8

N SUB14

N SUB19

N SUB20

C LOOP

R T0005

24 EXITX

24 EXITX

24 EXITX

24 EXITX

24 EXITX

71 P0OO1

24 EXITX

24 EXITX

24 EXITX

91 EXITX

24 EXITX

69 EXITX

20 P0001

71 P0001

SB10C

SUBR7

EXITX STORE EXIT

EXITX STORE EXIT EXITX STORE EXIT EXITX STORE EXIT

EXITX STORE EXIT PUNCH CARD. PERFORM UPPER.

EXITX STORE EXIT EXITX STORE EXIT

EXITX STORE EXIT

D. BRANCH. I. ARITHMETIC.

EXITX STORE EXIT STORE SYMBOL AND ITS EQUIVALENT

P0001 STORE LOCATION OF AVAILABILITY WORD PUNCH A CARD OF THE TABLE

1148

1172

1222 1290

1374 1594

1924

2068 2116

2168

2178 2230

2560

2590 0006

0415

1025

1075 0976

0693

1122 0586

0677

1121 0168

24 0178

46 0178

24 0178

24 0178

20 0178

69 0178

65 0178

24 0178

24 0178

65 0178

24 0178

0231 0569

0381

0431

0931

0981 1077

1231

1281 0783

0945

0661 24 0179 0432

0178

0178 0178

0178 0176

0178

0179

N SUB2R

N SUB2U

N SUB17

N INDEX

R T0001

N SUBR7

24 EXITY

46 EXITY

24 EXITY

24 EXITY

20 EXITY

69 EXITY

65 EXITY

24 EXITY

24 EXITY

65 EXITY

24 P0002

24 EXITZ

EXITY STORE EXIT MAKE DRUM AVAILABLE ) EXITY ENTRY TO RESERVE. STORE EXIT. EXITY ENTRY TO UNRESERVE. STORE EXIT. EXITY STORE EXIT OUT OF LOWER ALL CASES. GOING WHICH DIRECTION MODIFY EXIT ) EXITY STORE EXIT INSTRUCTION

EXITY STORE EXIT D-POSITION HOLDS FOR D. 1 FOR I I P0002 STORE AVAILABILITY WORD

EXITZ STORE EXIT

950

976

1030 1034

1612 1630 1704

1992 2032 2036 2574

1328
0063 24 0179 0*82

1069 10 0179 8003 0*41 24 0179 0532 0785 69 0179 0582

1325 69 0179 0632 0740 24 0179 1282 1299 20 0179 0745

0057 15 0181 0635

1027 20 0181 0434

0650 69 0181 8002 0213 20 0181 0234 0274

0421

0595 0424

1324

0170

0020

0241 0355

0242

0271

20 Oil 20 Oil 65 Oil 20 Oil 20 Oil 2» Oil 69 Oil 24 Oil 69 Oil 24 Oil 20 Oil0385

1285 1337

1335

12B6

1045 0085

0135 8002

0285

0335 0566 22 0183 0986 0598 60 0183 1237 1340 24 0183 0994

0652 20 0183 8003

0631

0925

0402 0660

0992

0932 0476

1336

0602

0171

0191

0343

20 0184

20 0184

60 0184

60 0184

24 0184

20 0184

20 0184

20 0184

20 0184

24 0184

69 0184

24 0184

0487

0177 0789

0939

1287

0788

1049

1238

1340

1095 0087

0137

0179

0179

0179 0179

0169 24 0180 0995 0180

0181

0181 0182

0182 0182

0182

0182

0182

0182

0183

0183

0184

0184

0184

0184

0184

0184 0184

0184

0184

N SUBR9

C DON

N SUB13

C SEO

N SUB

R T0002

C S810A

Q OS2

N OUT

R M0007

N L0004

R L0OO7

R T0003

Q 02

J SEND

N M0004

R C0008

N SHOP

N XAS

24 EXITZ

10 EXITZ

24 EXITZ

69 EXITZ

69 EXITZ

24 EXITZ

20 P0003

24 P0004

15 P0005

20 P0005

69 P0005

20 PO005

20 P0006

20 P0006

65 P0006

20 P0006

20 P0006

24 P0006

69 P00O6

24 P0006

69 P0006

24 P0006

20 P00C6

22 P0007

60 P0007

24 P0007

20 P0007

20 P0008

20 P0008

60 P0008

60 P0008

24 P0008

20 P0008

20 P0O08

20 P0008

20 P0008

24 P0008

69 P0008

24 P0008

MW

PROD

8002

XSB10C

8003

EXITX

BPROI

EXITZ STORE EXIT FROM MANY PLACES. MULTIBRANCH

EXITZ STORE EXIT ALL CASES. WHICH DIRECTION

IF BACKWARD L. SUBTRACT TAG-COUNT ) EXITZ STORE EXIT P0003 STORE LOCATION OF AVAILABILITY WORD P0004 STORE AVAILABILITY WORD ADVANCE CARD NUMBER » P0005 ADVANCE CARD NUMBER ) RESTORE CONSTANT AND MODIFY

P0005 CLEAR CARD NUMBER

POOOfc CORE ADDRESS. STORE FOR PUNCHING

P0006 DRUM. STORE ADDRESS FOR PUNCHING

BRING BACK NUMERICAL ADDRESS

P0006 CORE ADDRESS. STORE FOR PUNCHING

PO006 STORE L FOR PUNCHING

P0006 STORE AVAILABILITY WORD

SAVE L FROM CARD THAT STARTED SRCH I P0006 BRING BACK L AND D ) COMPARISON CONSTANT FOR END OF SET POO06 BRING BACK A SET OF RESULTS ) P0006 DRUM ADDRESS. STORE FOR PUNCHING

P0007 STORE OPERATION FOR PUNCHING OPERATION IN D OF UPPER

P0007 STORE FIRST 2 DIGITS IN OP POSITION

P0007 STORE LOCATION OF AVAILABILITY WORD P0008 STORE CORE ADDRESS FOR PUNCHING

P0008 MISC ADDR. STORE FOR PUNCHING. EXIT SHIFT OPERATION. FORWARD It BACKW L. INDEXING OP. FORWARD It BACKWARD L. P0008 STORE THE ADDRESS FOR PUNCHING

P0008 STORE THE CORE ADDRESS FOR PUNCHING

P0008 MISC ADDRESS. USUALLY A CONSTANT

P0008 STORE D FOR PUNCHING

P0008 STORE NEXT 4 DIGITS IN D POSITION

POOOB STORE AVAILABILITY WORD

SAVE D FROM CARD THAT STARTED SRCH ) P0008 BRING BACK L AND D )

1434

157*

1778 1850

1906 2458 2364

2578

1588

1592

898

962 1200

2086

2092 2104

2258

2582

622 676

896

926

1192 1934

1960

2542 2572

1266

1280

1816

1832 2006 2156

2164

2276

2540

2586 626

680 0375 20 0185 0177 0577 20 0185 0177

1236 20 0185 0938

0579 20 0185 0177

0580 20 0185 0988

1288 20 0185 1338

1318 24 0185 1290 1349 20 0185 0795

0499 0627

0759

1110

1321 1343

1083 0494

1239

0544

1268 1244 0024

0488

20 0186

10 0186

21 0186

24 0186

10 0186

21 0186

10 0186

21 0186

10 0186

21 0186

24 0186

24 0186

69 0186

24 0186

0689

0941 0177

0989

1343

1286 0494

1238 0544

1338 1240 1294

8002 0285

0703 90 0700 24 0386 69 0487 69 0239 69

0291 69 0192 69 0316 00 0393 69 0266 00 0144 69 0468 69 0460 65 0329 20 0510 65

0187 0528 0187 0285 0189 0142 0190 0441 0192 0142

0194 0142

0195 0305

0195 0000

0196 0400

0196 0000

0197 0150

0197 0300

0197 0520

0197 0350

0197 0527

0185

0185

0185 0185

0185

0185

0185

0185 0186

0186

0186

0186

0186 0186

0186

0186

R J0008

R 10006

R 10008

N 10009

N SB10B

N NGL

N 9X8

N MISC

JP C8

N 898

P C6

C K C NO

JC XI

J

20 P0009

20 P0009

20 P0009

20 P0009

20 P0009

20 P0009

24 P0009

20 P0009

20 P0010

10 P0010

21 P0010

24 P0010

10 P0010

21 P0010

10 POO10

21 P0010

10 P0010

21 P0010

24 P0O10

24 P0010

69 P0010

24 P0010

90 X2 24 POOH

69

69

69

00 01S

69

00 01S

69 ALOPT

69 ALOPT

65 ALOPT

20 ALOPT

65 ALOPT

EXITX

EXITX EXITX

ALL

EXITX

PROD

PROI ALL

X0011

XSUBR6 SUB13

SUBR6 SUBR6 SUBR4

0000

SUBR5

0000

X0003

X0010

P0009 OTHER ADDRESS. USUALLY A CONSTANT

P0009 800X ADDRESS. STORE AND EXIT P0009 STORE CORE ADDRESS FOR PUNCHING

P0009 OTHER ADDRESS. STORE AND EXIT. P0009 STORE EQUIVALENT OF NEW SYMBOL

P0009 STORE I FOR PUNCHING

P0009 STORE LAST 4 DIGITS OF CONSTANT IN I P0009 STORE LOCATION OF AVAILABILITY WORD

P001C C.I. TO PUNCH X-9 ) FROM 4-6.19-21. TO SUPPRESS; ) P0010 FROM 4-6. 19-21. TO SUPPRESS ) P0010 CONTROL INFORMATION FOR PUNCHING ) FIX C.l. SO THAT L WILL NOT PUNCH » P0010 FIX C.I. SO THAT L WILL NOT PUNCH ) FIX C.I. SO THAT D WILL NOT PUNCH ) P0010 FIX C.I. SO THAT D WILL NOT PUNCH ) FIX C.I. SO THAT I WILL NOT PUNCH ) P0010 FIX C.I. SO THAT I WILL NOT PUNCH ) P0010 CONTROL INFORMATION ) P0010 C.I. FOR AVAILABILITY TABLE

STORE PROCESSED CARD )

1 P0010

NO. FIXED. YESt UNFIXTD.

process i backward

get dynamic level of core address

process i backwards

process i backwards

process l backwards

modify bringing order to start new col process d backwards

to modify bringing order for next col

is it an mdf operation

is d an actual address multiple exit. according to kind alopt store modified alopt

multiple exit

1322 2212 2218 2226

2228

2296

2536

2568

158*

1396

1600

1928 2260

2262 2280

2282

2300

2302

2530 2554

880 9*0

726

9*2

672 1268 790

758

792 11*2 780

1138

460

686 69*

712 718
0187 20 0450 65 0059 20 1094 65 0237 20 0066 65 0209 20 0317 65 0276 69 1247 69 0742 65 1071 21 1084 2f

0197 0081 0197 0251 0197 0500 0197 0301 0197 0550 0197 0351 0197 0397

0197 0287

0197 0950 0197 1100 0197 1051 0197 0177

0197 1350

0197 0197 0197

0197

0197

0197 0247 10 0200 8002 0199 16 0348 15 0453 60 0203 90

0005 69 0407 16 0358 69 0311 65 0463 45 0705 01 0623 45 0773 21 0363 15 0232 24 0113 69

0202 1107 0202 1107 0206 0057

0207 0058

0208 0061 0210 0115

0211 0164

0214 0113

0216 0417

0222 1109 0226 0160

0228 0481

0228 0583

0235 0388

0235 0438

0228

0235

0233 45 0236 0037

0085 24 0189 69 0238 0191

0238 0241 0289 10 0242 0547

0593 69 0973 69 0417 69 0143 44 0347 10 0251 16 0287 15 0380 11 0557 10 0408 11 0361 10 0513 11 0950 90 0725 45 0226 69 0479 21 0411 60 0333 96 0310 69 0587 65 0606 16 0972 16

0246 0249

0246 0299

0246 0349

0247 0198

0250 8002 0254 0059

0254 0209

0254 0559

0260 0215

0261 0265

0264 8003 0266 0331 0271 0505

0278 0679

0279 0039

0284 0387 0284 0389 0286 0657

0286 0045

0290 8001 0290 0345

0290 0445

N M0009

N BL

N AEB

C A

N 2ND

N SSB

C OK

J

N UNO

N DEF

20 ALOPT

65 ALOPT

20 ALOPT

65 ALOPT

20 ALOPT

65 ALOPT

20 ALOPT

65 ALOPT

69 ALOPT

69 ALOPT

65 ALOPT

21 ALOPT

24 ALOPT

10 OS

16 25IXX

15 25IXX

60

90

69

16 MAX

69 SEN

65

45

01 022

45

21 P

15 P

24 Tl 69 Tl

24 SAVEL

69 SAVEL

69 CI 69 CI 69 CI

LNM

XY

BOT

80T SB10A

NOSUBR3

SSB

ZP

R0010

Tl

0140 98 0291 0145 0339 24 1335 65 0798 20

0292 0003

0292 1337 0292 1049

0292

0292

16 11STX

15 11STX

11 11STX

10 BRNG

11 Q

10 C4 8003

11 C6 SU

90 M0004

45 OUT

69 SUB14

21 XXXXA

60 XXXXA

XXXXA

96 JUMP

69 JUMP NO

SUB20

65 Y 16 Y 16 Y8001

98 MISC 899

24 ORCEQ

65 ORCEQ

20 ORCEQ

READC

MM

B

ORCEQ

ORCEQ

ALOPT STORE MODIFIED ALOPT

ALOPT TO LOWER

ALOPT STORE MODIFIED ALOPT MODIFY TO USE ROUTINE FOR UNFIXED D ) ALOPT MODIFY TO USE ROUTINE FOR UNFIXED D ) MODIFY ALOPT AGAIN ) ALOPT STORE NEW ALOPT. AND JUMP BACK BRING ALOPT. AND JUMP BACK EQUIV OF NEW SYMBOL. SHOULD WE RESERVE BACKWARD L. GET ALOPT

ALOPT STORE ALL OPTIMIZING TAGS ALOPT TAG IN CASE L IS UNDEFINED SYMBOL ) BRING BACK A SET ) WHICH L IS LESS. MEASURED ON CIRCLE ) WHICH L IS LESS. MEASURED ON CIRCLE ) PUNCH CARD

IS THIS FIRST SET OF SEARCH I

IS L FIXED ADDRESS )

IS STORAGE AREA FULL I PRESET TO STORE AFTER PROCESSING ) USE I-COMP. BRING BLANB AND ORCEB

D. NO STOP BECAUSE DRUM IS PACKED

IF SO, MULTIBRANCH + EXIT FROM QUITT

P MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) SAVE IN CASE I IS BLANK

SPEC. SUBR. BRING BACK BLANB + ORCEB

D. NO. I. YES. SAVE L FROM CARD THAT STARTED SRCH ) BRING BACK L AND D t BRING BACK A SET OF RESULTS ) MAKE SEVERAL VARIABLE ORDERS ) MODIFY TO TAKE NEXT COLUMN OF TABLE ) LAST LINE AND END OF WORD. MODIFY ) BRING BACK A SET ) BRING BACK A SET ) CHANGE ITS FIRST DIGIT TO 8 MODIFY ALOPT AGAIN ) IS FIRST POSITION BLANK

NOT 1ST CARD. MAKE COMP. CONST. I BRING BACK A SET ) MAKE VARIABLE BRINGING ORDER MODIFY TO TAKE FIRST LINE. SAME COLUMN

D. CAsE WHERE WE DUPLICATE COMPUTATION

ARE LAST FOUR CHARACTERS DIGITS ) GET OP. C.I.. TAGS. OPTIM. ALOPT. STORE INITIAL ADDRESS TO BE RESERVED

MAKE sEVERALVARIABLE ORDERS )

D. STARTED WITH I. I. WITH L. PROCESS D BRINGING ORDER INTO LOWER

SYMB NOT IN TABLE. SUBTRACT Y DEFINED SYMBOL. SUBTRACT Y MULTIPLE BRANCH ACCORDING TO TAGS ) FINISHED. SAVE SAVOR AS ORCEQ ) DYNAMIC LEVEL OF LAST CORE ADDRESS

STORE DYNAMIC LEVEL FOR REFERENCE

736 806

810 824

828 854

860 866

1210

1712 1806

1982 2526

564 844

846

592 426

440 480

618

862

1096 1698

570 1070

1080 800

868

624

674

1084

1102 1112 562

656

808

858

1376 546 650

1028 1110

1212

1454

572 1040

1058 580

584

1506

1518

1530

938 2106

2162
0998

1067

20

69 0292

0292 01770645 0292 20

69 ORCEQORCEQ

EXITX ORCEQ

0491

1039 0509 0629

0589

1263

1341

1231 1086

152010

21

102010

20

15

0294

0294

0294

0294 0294

0294 0294

0294

0294

0335 0797

0167 0947

0399

1247 0649

1297

1049

0294

0294

0294

0294

C

J

A

1520

10

211020

1020

15

XXXX2

XXXX2 XXXX2

XXXX2

XXXX2

XXXX2

XXXX2 XXXX2

XXXX2

SB10C

XXXX1

B

XXXX2

XXXXI XXXX2

XXXX2

0145 69 0298 0400 N 899 69 SUBR5

0750

0337

21

10 03040304

0458 0359

0304 R XX 2110 UHUH SPRUH

0603 69 0306 0045 N SHX 69 SUB20

0657 69 0310 0042 C NO 69 SUB 19 0563 11 0316 0331 11 C8 SU 0214 69 0317 0142 J 69 SUBR6

0115 45 0318 0026 45 QUITT

0217

0267

0649

1017

1085 1264

14

1419

1514

10

0320

0320

0320

0320 0320

0320

1036

1080

1074

1325

1272 0730c CP

14

14

19

15

1410

501XX

50IXX

50IXX

50IXX

50IXX

50IXX

0569 10 0322 8003 10 OSB 8003

0671 46 0324 0225 46 TP 0272 65 0325 0611 R M0005 65 SUBU

0723

0533

1024 0326

0326

0281 0479 0326 c RU

1024

w

M W 0653 90 0329 0521 90 XI X0004

0379 45 0332 0483 45 OVR

0681 11 0334 0539 11 9060 0504 90 0335 0459 90 SB10C

0383 96 0336 0188 96 B 0034 99 0338 0239 N XX8 99 9X8 0637 65 0340 8001 65 8001 0338 98 0341 0393 98 888 898 0743 0737

1020 0739 0516

1225 0755

65

6520

6565

1565

0346

0346 0346

0346

0346 0346

0346

0551

0551

8001 0601

0651

0751

0951

0346

J

CJ

J

c

swOFF

SAI OFB

ONSKP

6565

20

65

65

1565

AIAIAI

AI

AI

AIAI

SWOF

SWOF

8001 AI

0293 44 0347 0248 44 OUT 0245 46 0348 0199 46 AEB 0449 46 0352 0791 46 FULL 0198

0206

20

65 0353

0353

0106 0229

0353 N

J OUT 20

65 VARVAR LOOP

VAR

0252 11 0355 0259 11 02 0753 69 0356 0305 J 69 SUBR4

0511 0225

0404

0561

22

652024

0359

0359 0359

0359

0262

0413

0312

0362

0359 0359

0359

N TP

22

652024

SPR

SPR SPR

SPR

SPR SPR

SPR 0757 69 0360 0013 69 BRNG

1061 91 0364 0688 91 FD

0112 11 0365 8003 11 OSA 8003

STORE DYNAMIC LEVEL FOR REFERENCE

STORE ORCEO FOR USE WHEN WE START FORW

ADO TO GIVE MODIFIED DYNAMIC LEFEL LOCATION OF EQUIVALENT RELATIVE TO El MAKE STORING ORDER ) ALSO STORE FIRST LETTER OF ADDRESS ) FIRST CHARACTER INTO UPPER

STORE THE COUNT

WHAT CELL DID WE RESERVE ) STORE DYNAMIC LEVEL. RIGHT END WORD PERHAPS MODIFY DYNAMIC LEVEL ) PROCESS D BACKWARDS

REPLACE DIGIT OF AVAIL. WORD BY W ) REPLACE DIGIT OF AVAIL. WORD BY W ) PROCESS D FORWARDS

STARTED WITH L. OR NOT FIRST. PROC. L LAST LINE AND END OF WORD. MODIFY ) PROCESS I BACKWARDS AGAIN

IFSO. QUIT SEARCH

SAVE DYNAMIC LEVEL OF L FROM D ) WHICH L IS LESS. MEASURED ON CIRCLE ) WHAT CELL DID WE RESERVE ) ADD 5n TO MAKE SURELY POSITIVE

NEW LEVEL. MODULO 50 IN UPPER ADVANCE IT MAKE DRUM AVAILABLE )

D» NOT LAST LINE.

NEW SYMBOL. FIND BEST EQUIVALENT

REPLACE DIGIT OF AVAIL. WORD BY W ) STORE OR 1 FIRST. UNFIXED. OTHER. FIXED. BRING BACK A SET OF RESULTS ) SUBTRACT 9060

D. WE SHOULD STORE THIS DYNAMIC LEVEL

D. WITH I. I. WITH L. MULTIPLE BRANCH ACCORDING TO TAGS ) BRINGING ORDER INTO LOWER MULTIPLE BRANCH ACCORDING TO TAGS )

NOT PERFORMED—JUST FOR OPTIMIZING

HAVE WE REACHED TOP OF TABLE STORE BRINGING ORDER. AND DO IT START BACKWARDS SEARCH. HOW FAR AFTER RESTART. BRING BRINGING ORDER

NEW AVAILABILITY WORD INTO DRUM ) ALL CASES. WHAT DID WE RESERVE ) BRING BACK A SET ) WHICH L IS LESS. MEASURED ON CIRCLE >

I . TABLE IS FULL

STORE VARIABLE ORDER BRING VARIABLE ORDER. AND REPEAT

STORE PROCESSED CARD ) PROCESS L BACKWARDS FROM D MAKE SEVERAL VARIABLE ORDERS ) BOTTOM LINE OF TABLE MODIFY TO TAKE NEXT COLUMN OF TABLE ) LAST LINE AND END OF WORD. MODIFY I BRING BACK A SET )

D, IT IS A BRANCH OPERATION

CLEAR REGION AND SYMBOL TABLES )

2224

2240

1260 13*4

1338 1444

1470

1710

1754

1994 2150

772 998

1008 766

582 1122 864

482

820 836

1756 1904

1914 2390

978

1022 1194 1004

1038

702 916

1398 1274 610 744

1314

746

1646

1648

1656 1670

1684

1732 1740 654

842

1526 566

394 884

814

1090

1094

1106

1118 636

1812 960
0663 *6 0366 0467 46 RC 0775 15 0378 8002 15 8002 0429 10 0382 8003 10 8003

0731

0741 0643

15

24

Z0

0384

0384

0384

8002 0587

0637

0384

0384

15 T 24 T 20 T

8002

0433 96 0386 0288 96 L 0388

0600

342 0374

69

2»

20

69

0391

0391 0391

0391

0244

8002 0335

0371

0391 0391

R J0007

69 ORCEB

24 ORCEB

20 ORCEB

69 ORCEB

8002 SB10C

J0004

0439 15 0392 0747 15 SS 0591 10 0394 0509 10 P3 A 0642 16 0395 0449 16 ZTABL

0194

0306

0101

6969

65

0397

0397

0397

0400

0142

0201

J

J

J

69 LNM

69 LNM

65 LNM

SUBR5 SUBR6

SUB22

0749

1051

92

92 04020402

1105 0656

92 SHOP

92 SHOP

0302 10 0405 0309 10 OA 0953 69 0406 0305 J 69 SUBR4

0506

0777 0676

0964

1082

11

111016

15

0409

0409

0409

0409 0409

0313

0663

0713

1064

0124 C CD

11 20001

11 20001

10 20001

16 20001

15 20001

RES Q0007

0907 16 0410 0315 16 OF

0558 46 0411 0212 46 OK 0559 46 0412 0613 46 FXT 0913

0485 0724

46

44

46

0416

0416

0416

0567

0240

0328

46 SYM

44 SYM

46 SYM

LOO

0923 69 0426 0441 R C0006 69 SUB13 0324 10 0427 0331 10 800 SU

1275 15 0428 8002 15 8002 0432

0442

0345 0754

65

6520

20

0435

0435

0435

0435

0439

0489

0588

0638

0435

0435

65 LSYM8

65 LSYMB

20 LSYMB

20 LSYMB

1291 15 0444 8002 15 8002 0244

0282

2469 0447

0447

0450

0600 0447 24 T2 69 T2 0957 69 0460 0063 69 SUBR9

1310 44 0464 0514 44 UM

0963 46 0466 0416 46 SYM

0315 45 0468 0319 45 NO 0931 96 0484 0736 96 DI 0459

0645 0483

202i

69

0486

0486

0486

0335

8002 0339

0486 0486

N OVR

20 SAVOR

24 SAVOR

69 SAVOR

SB10C

8002

0285 11 0488 0493 X 11 0787 97 0490 0742 N 9 97 F1BD BL 0489

0638

14

14 0492 0492

1029 0904

14 20XXX

14 2DXXX

0443 44 0497 0398 44 OUT2

0445 16 0498 0754 16 JBRL

0099 69 0502 0740 R 0099 69 SUB

D» DRUM. I. CORE. MAKE BRINGING ORDER

MAKE DRUM AVAILABLE ) ADVANCE LOWER AND BRING ANOTHER

T PRESET T AS POSITIVE 1 ) T SHORT, PRESET T AS -1 I

D. WITH I It WITH L. SAVE IN CASE I IS CORE ) ORCEB SPEC. SUBR. BRING BACK BLANB + ORCEB

ORCEB STORE DYNAMIC LEVEL OF CORE ADDRESS

CORE. BRING DYNAMIC LEVEL SYMBOL-STORING ORDER ) MAKE STORING ORDER

PROCESS D BACKWARDS

PROCESS I BACKWARDS

SAVE ORCEO

D. IT IS A SHIFT OPERATION

D. IT IS A SHIFT OPERATION

CLEAR REGION AND SYMBOL TABLES ) PROCESS L BACKWARDS FROM I

IS INITIAL ADDRESS LESS THAN 2000 SUBTRACT 2000 RESTORE RELOCATED DRUM ADDRESS

CORE OR DRUM RESTORE THE 2000 AND JUMP BACK

IS THIS LAST SET )

I . LAST ONE WOULD BE OVER 1999

I. FIRST IS NON-BLANK. FIXED ADDRESS.

D. ADDRESS IS SYMBOLIC.

ARE LAST FOUR CHARACTERS DIGITS I D. FIRST IS SPEC. CHAR. SYMBOLIC

800X ADDRESS. GET DYNAMIC LEVEL

RESTORE. AND TAKE WORD FROM NEXT LINE

MAKE BRINGING ORDER SYMBOL-STORING ORDER ) LOCATION OF EQUIVALENT RELATIVE TO El LSYMB STORE ADDR OF SPACE RELATIVE TO START

LSYMB ADDRESS OF SYMBOL RELATIVE TO START MAKE SHIFTING ORDER

T2 SAVE IN CASE I IS CORE ) SPEC. SUBR. BRING BACK BLANB + ORCEB ANALYZE I. FOR TYPE OF ADDRESS

D. D TAG IS NON-ZERO

I. FIRST CHAR IS DIGIT. ADDR SYMBOLIC

D. NO. I . YES.

i. address is backward i or forward l savor store dyn lev of core. and finish up

savor store orceo for use when we start forw finished. save savor as orceo ) bring back a set of results )

d. forward i. it backward l. location of equivalent relative to el divide by 2 store processed card ) subtract initial bringing order

rbr entry, to subroutine

1386

1566 970

1432

1504

1512

670

802 874

1206

1320

1332

1362 1524

760

768 776

1800

1808 956

832 1044

1384

1392 2364

2372 664

1050

1378

1450

1458 1480

1252 1024

1840 1330

1338 1520

1534

1726 804

872

692 1954

1476 666 1614

1276 2242 936

928 1784

1340

1536

888

1532 2454
0303 90 0507 0258 90 SKP

1057 69 0510 0063 69 SUBR9

1009 45 0312 1113 45 MAX

0162 16 0515 0619 16 110TH

0*31 69 0515 0533 69 110TH RU 0669 16 0515 0719 16 110TH 0537 61 0515 1069 61 110TH DON

0691 16 0515 1269 16 110TH

0352 60 0515 1069 60 110TH DON

1077 15 0515 8002 C PAKT 15 110TH 8002 1260 65 0515 1211 65 110TH BT 0*64 15 0515 0514 15 110TH UM

1042 65 0515 0178 65 110TH EXITY

0698 66 0515 0178 66 110TH EXITY

1113 69 0516 1070 N MAX 69 ON

1213 69 0516 1120 N MIN 69 ON 0763 44 0517 0618 44 NZ 0618 46 0517 0972 46 NZ DEF 0530 91 0326 0525 R X0013 91 X0009 X0008

0981 97 0534 0786 97 BAK

0633 65 0536 0220 J 65 EOUIV F0003

0908 65 0536 0271 J PRE 65 E0U1V M0004

0711 65 0536 0921 J PRE 65 EOUIV C0004

0911 65 0536 0371 J PRE 65 EQUIV J0004

0674 65 0536 0541 65 EOUIV

1073 65 0536 0591 N IPOS 65 EQUIV

0641 20 0536 0589 0536 20 EOUIV EQUIV 0668 15 0536 0691 15 EQUIV

1269 23 0536 0704 0536 23 EQUIV ABS EOUIV 0776 23 0536 0704 0536 23 EOUIV ABS EOUIV

1031 20 0536 0178 0536 20 EQUIV EXITY EQUIV

1033 16 0536 0992 C EO 16 EOUIV

1347 16 0536 1092 16 EQUIV

1015 65 0536 0421 J PRE 65 EQUIV L0004

1065 65 0536 0472 J PRE 65 EQUIV D0004

1215 65 0536 0575 J 65 EOUIV 10004 1217 65 0536 0120 J 65 EQUIV Q0003

0127 20 0536 1289 0536 N 000 10 20 EQUIV SD EOUIV

0128 20 0536 1289 0536 R QOOH 20 EQUIV SD EQUIV

0129 20 0536 1289 0536 R 00012 20 EOUIV SD EQUIV

0130 20 0536 1289 0536 R Q0013 20 EQUIV SD EQUIV

0131 20 0536 1289 0536 R 00014 20 EQUIV SD EQUIV

0385 69 0538 0441 69 SUB13

1037 14 0540 1048 14 42ND

0539 46 0542 0977 46 BAD

0942 16 0545 1085 16 COUNT CP 0514 20 0545 0598 0545 C UM 20 COUNT COUNT

1337 15 0545 0335 C MW 15 COUNT SB10C

1092 45 0546 0698 45 NZ 0296 15 0549 0954 15 601 0248 20 0553 0256 0553 N OUT 20 VAR VAR 0009 65 0553 0907 J 65 VAR 0570 65 0553 0243 65 VAR LOOP

0451 10 0554 0509 10 P2 A 0273 01 0555 0273 R M0006 01 0555 M0006

0275 01 0555 0275 R M0008 01 0555 M0008

1103 65 0556 0611 65 SUB 11 1107 46 0560 0311 C BOT 46 2ND

1311 15 0564 8002 15 8002 0262 10 0565 0331 10 C3 SU

0615 6'' 0568 0677 69 INDEX

1081 60 0584 1089 N YES 60 9 AX 0781 44 0585 0686 44 SHRT

1237 10 0590 8003 10 8003

D. ONLY ONE. ANALYZE D

I . WE HAVE REACHED TOP OF TABLE

REDUCE NUMBER YET TO BE DONE ) BRING UNITY TO INDICATE UNRESERVATION

MODIFY TO END WITH 1999 > MODIFY EXIT AND PREPARE TO QUIT

GET EQUIVALENT OF REGIONAL ADDRESS ) MODIFY EXIT. AND PREPARE TO QUIT MODIFY EXIT ) COUNT OF I TAGS IN LOWER

COUNT OF TAGS IN LOWER

UNIT CORRECTION TO DYNAMIC LEVEL

IF 8001. CORRECTION IS -1

AT TOP. SET SWITCH ON ) SECOND PART. BACKWARDS. CHANGE SWITCH

D, IT WAS NOT RIGHT ONE

Dt IT WAS NOT RIGHT ONE I. IT AS. CORE. BRANCH. LIKE BLANK. ARITH. UNF

D« FORWARD. I. BACKWARD. BRING EQUIV AND MULT I BRANCH EQUIVALENT TO LOWER. MULTIBRANCH

BRING EQUIVALENT. MULTIBRANCH

BRING EQUIVALENT. MULTIBRANCH

BRING EQUIVALENT

USE I-POSITION. BRING EQUIVALENT

STORE THESE 4 DIGITS

GET EQUIVALENT OF REGIONAL ADDRESS I STORE EQUIVALENT

STORE EQUIVALENT OF SYMBOL

STORE THIS ADDRESS IN EQUIV

BOTH. SUBTRACT THE 800X ADDRESS

SUBTRACT THE ADDRESS IN QUESTION

BRING EQUIVALENT. MULTIBRANCH

BRING EQUIVALENT

BRING EQUIVALENT

BRING EQUIVALENT

OLD SYMBOL

NEW SYMBOL

MULTIBRANCH

MULTIBRANCH

MULTIBRANCH.

STORE I AS NEW EOUIV

STORE I AS ITS EQUIVALENT

800X. STORE ITS EQUIVALENT.

CORE. STORE I AS ITS EQUIVALENT.

OTHER. STORE I AS THE EQUIVALENT.

FIND DYNAMIC LEVEL OF CORE ADDRESS

SHOULD WE INTERCHANGE ADDENDS )

I > RELOCATED CORE ADDRESS TOO HIGH

IF BACKWARD L. SUBTRACT TAG-COUNT ) COUNT STORE TAG-COUNT

CORE OR DRUM. ADD TAG-COUNT TO DYN LV

D. ADDRESS IS NOT 8001 INITIAL OF VARIABLE BRINGING ORDER

STORE VARIABLE ORDER

IS THIS LAST SET ) BRINGING ORDER. BACK FOR ANOTHER CARD

MAKE STORING ORDER I 800X ADDRESS. OTHER ADDRESS.

STOP THE MACHINE

STOP MACHINE

FIND BEST EQUIVALENT TO BLANK

D. WE WILL USE ONE MEASURED FROM D BRINGING ORDER

MAKE SEVERAL VARIABLE ORDERS I

TO SUBROUTINE 18 TO INDEX MORE TAGS INTO UPPER

D. LONG SYMBOL MAKE BRINGING ORDER

534

716

1652 1014

1036 1054

1438

1*92

1528 1706

1950

1956 2010

2018

1678

1692 1*24

1*26

1632 1152

1178 1228

1296

1352 1360

1*68 1*90 1*9*

1554

1760 2004

201*

207*

2122

218*

2318 23*4

23*6

23*8 2350

2352

1202

1872 1*00

1912

1958 2108 2016

1638

658

662 89* 1356

1198

1208

1188

8*8

2042

1092 1310

1978 1500

1962
0639 10 0592 8003 10 8003

1289 69 0594 0661 C SD 69 SUBR7

1292 69 0595 1025 69 SUB2R

1345 45 0596 0646 45 SDD

0493 44 0597 0448 44 OUT

0396 15 0599 1104 15 602 0300 95 0603 0255 95 SHX 0204 11 0607 0161 X 11 1307 11 0610 0415 11 OB

1059 45 0612 1213 45 MIN

0269 0977

0419

60

6060

0622

0622

0622

0627

0177

0627

R

NR

M0002

BAD L0002

6060

60

87THX 87THX

87THX

SB10B

EX1TX SB10B

0921 69 0624 0677 N C0004 69 INDEX

0922 65 0625 0611 R C0005 65 SUB11

0772 90 0626 0369 90 J0002

0030 69 0633 0063 69 SUBR9

0482 45 0636 0537 45 ABC

1287 45 0640 1042 45 XY 1339 45 0644 0694 45 ALL 0497 10 0650 8003 10 OS2 8003

0399 44 0654 0704 44 ABS

0701 45 0655 0705 45 FULL

0403 90 0657 0308 90 NO 1053

0401

2110 0658

0658

0461 0658 0363

2110

X

X 1105 0656

93

93 0660 0660

0710

1061

93

93 XASXAS

0531 1312

0169 0666

0666 05311024

R X0014 0169 0666 X0014

SUBR8

0665 45 0668 1219 45 NG

0919 047060

60 0672 0672 0627

0627

R

R C0002

D0002

60

60 88THX

88THX SB10B SB10B

0620 60 0673 0057 C LOOP 60 SB10A

0372 65 0675 0611 R JO005 65 SUB 11 1123 46 0676 0977 46 BAD

0280 69 0683 0586 69 SUB 17 1216 46 0684 0029 46 0029 0484 69 0687 0390 N DI 69 F 0735 0364

97

99 0688

0688 0490

0490

97

99 FD

FD FIBDFIBD

1334 0745

0795

15

15

15

0695

0695

0695

1299

1349 0652

1515

15

C3

C3

C3 0597 10 0700 05*7 10 QS A 0945

0995

1045

1095

10

10

10

10

0702 0702

0702

0702

8003

8003

8003

8003

1010

10

10

C6

C6

C6C6

8003

8003

8003 8003

0503 90 0707 0358 90 A 035*

0413

69

16 07080708

0511

0463

69

16 C2

C2 0958 69 0711 0063 69 PRE SUBR9

MAKE RRINGING ORDER ) STORE SYMBOL AND EQUIVALENT IN TABLE RESERVE ADDRESS

IF D IS BLANKt WE SHOULD STORE ZERO BRING BACK A SET OF RESULTS ) INITIAL BRINGING ORDER )

D. NO, It YES. BRING BACK A SET ) MAKE DRUM AVAILABLE I

D. WE ARE NOT BACK TO START YET

N. G. OMIT PUNCHING

MODIFIED ADDR TOO HIGH. 8000 TO UPPER

N.G. FIX TO OMIT PUNCHING

DRUM OR EQUIVALENT. INDEX IF TAGGED

NEW SYMBOL. FIND BEST EQUIVALENT

D. DRUM IS NOT FULL

TO SUBROUTINE 9 TO ANALYZE THE ADDRESS

I. THE ADDRESS IS BLANK

I. 8002-8003 + WRONG PARITY

I. IT IS ANOTHER RBD CARD STORE PROCESSED CARD I

I. ZERO. ADDRESS WAS ABSOLUTE

I. THERE IS NO AVAILABLE LOCATION.

D. IT IS NOT MAKE SEVERAL VARIABLE ORDERS I MAKE SEVERAL VARIABLE ORDERS )

D. IT IS AN INDEXING OPERATION

D. IT IS AN INDEXING OPERATION

OTHER. ERROR. SHOULD NOT BE HERE. PROCESS D

I. REGION IS UNDEFINED

N G. OMIT PUNCHING

N.G. QUIT AND OMIT PUNCHING

TO SUB 10A TO PUNCH ONE CARD

NEW SYMBOL. FIND BEST VALUE

I. RELOCATED DRUM WILL EXCEED 1999 CORRECTION TO DYNAMIC LEVEL

IF A DIGIT. TO BLR WITHOUT DESIGNATING

PREPARE EXIT AND GO TO SUBROUTINE 13 )

D. FORWARD D. 1. BACKWARD D.

It BACKWARD Lt BRANCHt UNFIXED D MODIFY IDENTIFICATION OF WORD MODIFY IDENTIFICATION OF WORD MODIFY IDENTIFICATION OF WORD BRING BACK A SET OF RESULTS I MODIFY BRINGING OKDERt AND BRING MODIFY BRINGING ORDER

t

AND BRING MODIFY BRINGING ORDERt AND BRING MODIFY BRINGING ORDERt AND BRING

IF NOTt JUMP AHEAD

MAKE SEVERAL VARIABLE ORDERS ) IS IT ALSO RIGHT END OF WORD ANALYZE THE ALPHABETIC D ADDRESS

1484

2354

2090

2622 930

1662 688

558 974

1674

1182

1412 2078 1244

1248 1304

1150

1436

2008 2406

890

1*72

1688

576 1064

1078

1802 1810 73*

2268

1232 2126 910 131*

1390 1256

248 1618

1782 1814

2562

2566

2570 932

2576

2580 2584

2588 606

1088

1096
0926 69 0711 0661 0715 15 0718 8002 0369

0573

60

60 0722 0722 0627

0627

1223 0968 094610

1520

0726

0726

0726

0681

1082

0001 0726 0924 69 0727 0677 1224 90 0728 0419

0929 46 0732 0933 0779

1010 0917

20

1516

0733

0733

0733

0936

0987

0935

0733

0532 95 0735 0787 0534 69 0737 0440 0786 69 0739 0692 0440

0692

1070

1120

24

24

2424

0743

0743

0743

0743

0296

0396

0446

0496

0743

0743

0743

0743

1046 44 0752 0003 0500 69 0753 0400

1100 90 0755 0905 0454 69 0758 0561

1058 65 0761 0611 0512 15 0765 1020

1265 65 0768 0611 0216 15 0769 0973

1220 14 0774 1021 0474 69 0778 04*1 0767 92 0785 1222 0588 46 0791 06*2 0937

1351

20

66 07920792 0495

0935

0792

0690 69 0794 1025 0746 45 0796 0946

0590

0748

6594 0800

0800

1306

0912 0778

1243

00

00 08080808

782 0798

1293 00 0809 0998

1115 1276

00

00 0888

0888

0469 0477

0768 097900

00 0889 0889

0572

0580

1342 00 0890 0418

0249 0299

0349

22

22

24

0901

0901

0901

0354

0404

045*

0901

0901 0901 0053

0055

1006

1211 0564

60

6021

1065

0902

0902

0902

0902

0902

0007

0307

1056

1310 0662

0902

0318

0628

6520 0903

0903 04571106 0903

R J0002

R 10002

C SCO

R C0007

N BAK

N BB1

69 PRE

15

60 89THX

60 89THX

10 CDIFF

15 CDIFF

20 CDIFF

69

90

46 DRM

20 B 15 B 16 B

95

69 OFF

69 OFB

24 SW

24 SW

24 SW

24 SW

69

90 SKP

69 C7

65

15 800

65

15 C5

1* 4IXXX

69

92 SEO

46 FULL

20 IND

66 IND

69

45

6594

00

00

0000

00

00

0800

0800

0808

0808

0888

0888 0889 0889

C BT

J

22 0901

22 0901

24 0901

60 0902

60 0902

21 0902

10 0902

65 0902

65 0903

20 0903

SB10B

SB10B

COSETCC

INDEX L0O02

READC

SUBR5

SUB11

SAI

SUB11

SUB2R

SCO

D0001 D0009

10001 10009

store equivalent of new symbol

make bringing order

n.g. omit punching

n.g. quit and omit punching

add relocation amount

add core relocation amount

cdiff store core relocation amount

core address. index it

d. drum not full. it drum is full.

i. core. d. drum.

b should we interchange addends ) should we interchange addends ) interchange and make negative )

d. d address. i. forward i or backw l forward. set switch off for 1st part going backward. set switch off )

sw forward. set switch off for 1st part

sw going backward. set switch off ) sw at top. set switch on i sw second part. backwards. change switch

d. we are not done. process d backwards

d. skip because comp is double

last line and end of word. modify ) get Blank d dynamically from i advance variable bringing order

usual case. i blank and not d. modify to take next column of table ) what cell did we reserve ) 800x address. find dynamic level

jump unless operation 80.82. or 88

d. table is full

ind backward. should we interchange adond

make negative. but do not interchange RESERVE 0000

JUMP IF I IS BLANK BRING OPTIMIZING ADDENDS AND TAGS

IF BLANK D AND MDF. STOP MACHINE

TAGS AND EXIT FOR USE IN SUBR 11 TAGS ANO EXIT FOR SUBROUTINE 13 TAGS AND EXIT FOR SUBROUTINE 13 TAGS AND EXIT FOR SUBROUTINE 11 TAGS AND EXIT FOR USE IN SUBR 11 TAGS AND EXIT FOR SUBROUTINE 11 TAGS AND EXIT FOR SUBR 11. TAGS AND EXIT FOR USE IN SUBR 11

0901 MAKE SEVERAL VARIABLE ORDERS ) 0901 MODIFY TO TAKE NEXT COLUMN OF TABLE ) 0901 LAST L'NE AND END OF WORD. MODIFY )

IS D INDEXED

IS INDEXED

0902 STORE D TAG

D TAG INTO UPPER

BRING APPROPRIATE TAG

IS I INDEXED

0903 STORE I TAG

1282

15*0

1300 2188

1396 2368 2634

1262 2082

2052

1860

1868 1880

1780 163*

1*58

1636 1660 1680 1694

2594

812 171*

1116

12*0 1654

2200

1100

17*6 21**

18*6

1522 1854

1882 2430 2630

1964 2130

21*6 2160

2134

21*2

2202

2210 2100

1086 1104

111*

386 *64

1940

1952 2044 *8*

19*6
09*9 20 1052 66 0455 69 0505 69 0426 00 0190 00

0906 1010 0906 1111

0908 0063

0908 0661

0908 0280

0908 0344

0538 00 0909 0342

1108 69 0368 69 0612 15 0452 10 0475 69 0766 16 0582 97 1240 69 0550 69 0751 69 0954 20 1104 20 0655 15

1072 90 1274 90 0576 65

1078 69 0761 00 0625 00 0556 00 0325 00 0675 00 0084 65 0797 15 0983 90 0900 65 0619 20 0387 20 0166 10 0719 20

1001 69

1002 44

1353 90 1060 44

0712 69 0418 69

0911 0063

0911 0661 0915 1020 0916 0980

0928 0677

0930 1339

0935 0937 0944 0042

0953 0142

0955 1209 0959 0462

0959 0562 0959 1020 0976 1077

0978 0573

0979 0611 0982 0677

0988 0918

0988 0926 0989 0268 0989 0276 0990 0368

0990 8002 1000 0555

1001 0738

1003 0508

1003 0456

1003 0506

1003 0558

1003 0411 1004 0107

1005 0606

1008 1058 1014 0414

1015 0063

1015 0661

0959

0959

1003

1003

1114 69 1018 1025 0366 10 1317 15 0502 10 0646 20 1219 61 0635 15 0967 14 1297 14 0918 20 0728 65 0469 20 0572 20 0978 65 0575 69 0422 69

1019 1123

1019 1082 1019 1232 1019 0696

1022 1069

1022 1027 1022 1060

1022 1322 1023 0376

1023 0421

1023 0476

1023 0577

1023 0579

1028 0677

1030 0983

1023

1023

20

66

AA

J

J

69

69

0000

PRE

PRE0908 0908

SUBR9 SUBR7

J 00 0909

N JO001

69

69 PRE

PRE SUBR9 SUBR7

15 599 SAI

10 Q

R D0007 69

16

97

941

P

INDEX

69

69 STR

20 BP1

20 BP1

15 BP1

0000

0000

0988 0988

0989 0989

N MDFLL

C LOOP

N D

J

C SDD

1023 N C0001

N D0001

N 10001

N 10004

R L0005

00 09S

65

15 PI

90 MDFLL

65 N 20 N 20 N 10 N 20 N

69 L

90

44

69 PRE

69 PRE

69

10 DDIFF

15 DDIFF

10 DDIFF

20 DDIFF

61 21 XXX

15 2IXXX

14 2IXXX

14 2IXXX

20 BLANK

65 BLANK

20 BLANK

20 BLANK

65 BLANK

69

69 102

SUB19 SUBR6

SAI PAKT

10002 SUB11

INDEX C0001 C0009

M0001 M0009

J0001

8002

UNO

BB1 EVN SUBR9 SUBR7

CDZQ

L0004

D0008

10006

10008 INDEX

A SHOULD WE INTERCHANGE ADDENDS ) INTERCHANGE AND MAKE NEGATIVE ) ANALYZE THE ADDRESS

USUAL CASE. STORE SYMBOL AND EQUIV TAGS AND EXIT FOR SUBROUTINE 13 TAGS AND EXIT FOR SUBROUTINE 13 TAGS AND EXIT FOR USE IN SUBR 13 ANALYZE ALPHABETIC I STORE EQUIVALENT OF NEW SYMBOL RESTORE AND MODIFY DUPLICATE INTO AVAILABILITY TABLE ) CORE ADDRESS. INDEX IF TAGGED

IS THIS ANOTHER RBD CARD )

D. FORWARD. It BACKWARD. PROCESS Lt IF REGIONAL OR SYMBOLIC

PROCESS I BACKWARDS

NEW AVAILABILITY WORD INTO DRUM ) 8P1 STORE VARIABLE BRINGING ORDER

BP1 INITIAL BRINGING ORDER ) RESTORE AND MODIFY

It YES.

It DRUM IS FULL

NEW SYMBOL. FIND BEST VALUE.

INDEX D TAGS AND EXIT FOR SUBROUTINE 11 EXIT AND TAGS FOR SUBROUTINE 11 TAGS AND EXIT FOR SUBROUTINE 11 TAGS AND EXIT FOR USE IN SUBROUTINE 11 TAGS AND EXIT FOR SUBROUTINE 11 ADDING ORDER TO LOWER MAKE BRINGING ORDER )

D. START SEARCH. It WE ARE ON QUITT

HAVE WE FINISHED

N REDUCE NUMBER YET TO BE DONE I N STORE N-l UPPER, LAST ADDRESS - 2000

N MODIFY TO END WITH 1999 I STARTED WITH NEW-SYMBOL L

It SYMBOL IS NOT IN THE TABLE

D. THERE WAS A BLANK BACKWARDS L

D. OPREG WAS ODD. It EVEN. ANALYZE L-ADDRESS

SU8 11 FOUND EOU OF SYMB. RESERVE

RESERVE FIRST CELL IN BAND

DRUM. ADD RELOCATION AMOUNT

ADD DRUM RELOCATION AMOUNT

ADD RELOCATION AMOUNT

DDIFF STORE DRUM RELOCATION AMOUNT MODIFY EXIT FOR N G SYMBOL ADVANCE CARD NUMBER ) WHICH ONE DO WE USE ) DIVIDE DYNAMIC LEVEL BY 2 BLANK STORE EQUIV OF BLANK FOR FORWARD L USE PROPER VALUE FOR BLANK ADDRESS

BLANK STORE EQUIV OF BLANK FOR REFERENCE

BLANK STORE EQUIVALENT OF BLANK FOR REFERENC

MAKE BLANK I EQUAL TO BLANK D DRUM ADDRESS. INDEX IF TAGGED

NEW SYMBOL. WHERE ARE WE

1866

1876

1176

1214

1254

1270 1204

1294

1298 1676 2414

2152 2404

1852 2532 830 1734

1640

1664

1690 1610 2196

2208

2272

1242 1250

1190

1196

1316

2498 1346

2096

1010

1016

1042

1048 1056

402 1420

1236

1890

2072 2076

2382

1388 2370

2456

2626

1558 1590

1888 1996

1230 2084

2124

2186

2198 2204

2094
0984 24 1030 1084 1030 0047 24 1030 0033 1030 0107 24 1030 0083 1030 0207 69 1030 0133

0507 69 1030 0283 0308 69 1030 0333

0707 69 1030 0383 0319 69 1030 0433

1278 69 1032 0677

0640 65 1043 1347

1041 0008 0139

0234

0270

0709

0021 1047 0056

0017 0026

0279 0297

0019

0067

0519 0526

0697

0920 0344

0201

0551 0496

69 1044

69 1044

69 1044

69 1044

69 1044

15 1044

69 1044

24 1050

69 1050

24 1050

69 1050

69 1050

24 1050

69 1050

24 1050

69 1050

69 1050

24 1050

69 1050

69 1050

69 1050

16 1054

65 1054

1047 0047

0297

0647

0697

0499

1298 0160

0203

0253

0303

0403

0453

0503

0358 0653

0703

1103

1353 0504

1062 1009

1020 0659 44 1063 0314

0762 69 0477 69 1214 45 0670 44

1322 44 0678 44 0632 95 1087 97 0782 69 0934 15 1036 21 1038 16 0793 20 0651 16 0548 93 0002 69 0912 65 0714 69 0466 10 0684 15 0410 69

1271 11 0086 24 0260 69

0211 24 0174 69 0210 24 0729 84 0604 16 0962 69

1065 0063

1065 0661

1068 1329 1073 0674

1076 1026

1081 0682

1085 1087

1085 0942

1086 0586

1090 8002

1091 1094

1091 0245

1097 1020

1097 0701

1101 0785

1112 0039

1115 0611

1117 1024 1119 0724

1119 0734

1124 8003

1124 0929

1125 002R

1125 8003 1199 0252

1199 8003

1200 0028

1200 0775

1208 0913

1215 0063

1050

1050

1050

1050

1091

1097

1125

1199

1200

N 0008

J

R M0003

C SUB10

R 0021

N QUITT

J

R X0002

R X0009

R C0003

N SUB22

SWOF

J SEND

J BRNG

J SEN

OL

2424

24

69

69

69

69

69

1030

1030

1030

1030

1030

1030

1030

1030

65 8001

69 81STX

69 81STX

69 81STX

69 81STX

69 81STX

15 81STX

69 81STX

24

69

24

69

69

246924

69

69

2469

69

69

16 799

65 799

1050

1050

1050

1050

1050

1050

1050

1050 1050

1050 1050

1050 1050

1050

69 PRE

N D0009 69

45

PRE

44 IPOS

44

44 YES

95 CP

97 CP

21 OLD

16 DLD

20 AO

16 AO

93

69

65

69

10 29IXX

15 29IXX

69 SOOOO

11 27TH

24 S0001

69 S0001

24 SMAXM

69 SMAXM

24 SMAX1

34 1200

16 909

69

R0010

SAI LHSUBR9

SUBR7

SUB17

8002

SAI

SEO SUB14

SUB11

SUBR8

1030 TAG In CASE L IS UNDEFINED SYMBOL ) 1030 DELETE OUITT TAG ) 1030 STORE TAG TELLING HOW SEARCH STARTED

IF SO, WHERE DID SEARCH START WHERE DID SEARCH START

IF SO, WHERE DID WE START

IF SO, WHERE DID SEARCH START

IF SO, WHERE DID SEARCH START

INDEX I

8001 into right end lower restore first card tag ) deletf quitt tag ) change tag to second-card tag ) preset drum tag ) blank, change first-card tag ) c.i. to punch x-9 ) bla Entry, change drum tag

1050 RESTORE first card TAG ) multibranch

is this first set of search ) 1050 change first-card indicator to 2nd ) was there only one searched card

is this first quitt set

1050 change tag to second-card tag ) was there just one search card

1050 start on l. first-card tag ) blank address. is this first card blank. is this first card

1050 change first-card tag i blank address. was there blank back l first-card tag first-card tag subtract end of table

start back from top of table

d, addr is odd. equiv in right end analyze d-address

store equivalent of new symbol

d, not blank. it it is blank.

d, use i-position. i, use d-position.

d. dynamic level is odd.

i, d is not true address

if backward l. subtract tag-count ) if backward l» subtract tag-count ) perhaps modify dynamic level ) make storing order, and store zero

3ld save dynamic level of l from d ) which l is less. measured on circle )

ho store comparison constant comparison constant, subtracted

d, operation 31. i. 30,35,36.

op, c.i., tags, optim, alopt blank d, but not mdf. find value of d process i ADD 29 ADD 29

SUBTRACT 2000, TO DETERMINE RANGE

S0001 STORE SET OF DATA ) BRING BACK A SET ) SMAXM STORE PROCESSED CARD )

SMAX1 CONSTANT FOR WHETHER STORAGE IS FULL SEARCH TABLE ACCORDING TO SIZE OF ADDR

SUBTRACT 9090908995 ANALYZE I-ADDRESS

2524 374

404

428 536

578

608

668 2292 2012

366

372

588 964

1184

1582 2446

368 424

490

532 574

590 604

616

700 724

1186

1234

1272 2236

1650

1696

2120

2170

2386

1350

1998 1974

1908 1910 2148 2510

822 840

1668

1686

1828 2248 2132

2288

1478 2482

752 2050

412 554

882 944

518 1564

1448 2182
076* 69 1217 0063 C BOTH 69 SUBR9

0609 16 1218 8002 R U0002 16 KA 8002

0472 69 1226 0677 N 00004 69 INDEX

1117 44 1228 1278 J 44 NGI

1026 65 1229 1033 N EVN 65 8003 EO 0966 16 1230 8002 16 8002 0029 69 1232 0740 R 0029 69 zq SUB

0010 69 1234 1244 J 0010 69 85TH

0682 60 1235 1089 60 8 AX

1088 44 1241 0743 R TA 44 YES SW

0788 69 1243 0441 69 SUB 13 0752 10 1245 0952 10 QS 0644 61 1248 0966 N ALL 61 SEND

1277 65 1250 0706 J 65 1250

1106 45 1260 1211 45 BT

1012 44 1265 0616 44 DNB

0552 15 1266 0784 15 ST 0914 69 1267 0063 69 SUBR9

0720 69 1273 1025 69 SUB2R

0473 65 1276 0611 R D00O5 65 SUB11 0974 10 1277 8003 10 8003

1076 65 1279 1033 65 8002 EO 0980 46 1283 0634 46 DONE

0938 69 1293 0441 69 SUB13

0952 16 1295 1249 16 C7 LOOP 0910 84 1300 1275 84 1300 0790

0654

16

11 13081308 1216 0963

16

11 99THX

99THX

1262 69 1315 1024 69 SUBR8

0608 44 1316 0001 R U0001 44 SETCC

1064 46 1317 0968 46 D 1315 44 1321 1324 J 44 NGL 0666 44 1326 1078 J 44 NGD

0118

0119

0121 0125 0126

65

65

65

6565

1328

1328

1328

1328

1328

1233

1233

1233

1233

1233

R

RR

R

R

00001

00002 00004

00008

Q0009

6565

65

65

65

83RD

83RD

83RD

83RD

83RD

BP

BPBP

BP

BP 0780 46 1329 0094 46 OUT 0094

1016 45 1330 1332 45 BL 0578 69 1331 0677 R 10007 69 INDEX 1280 69 1333 0740 69 SUB

0738 65 1342 0611 65 SUB11

1284 15 1344 1249 15 RSI LOOP

1294 60 1348 1284 60 Al 1048 44 1351 1052 44 OK

1096 11 1352 1046 11 0601 0446

1665 1354 1354

1059

1020

16

65 600

600 SAI

analyze i restore lower. and add next symbol

drum address. index if tagged

d. relocated i is excessive

even. put 8003 at right end of lower duplicate into availability table i blr Entry, to subroutine

c.i. for availability table ) more tags into upper

is a location available in this group

find dynamic level restore variable bringing order duplicate into availability table ) bring shift addends

d. i tag is non-zero

d. d is not blank. make storing order

analyze d reserve if drum address

new symbol. find equivalent

make bringing order

odd. put 8002 at right end of lower duplicate into availability table ) find dynamic level modify identification for next card

look up in table subtract 90 non-zero. subtract 90 process l

if it is zero and we have finished

D. DRUM. It CORE.

D. RELOCATED L IS EXCESSIVE

D. RELOCATED D IS EXCESSIVE

INVALID ADDRESS

BLANK I. CARD IS UNUSABLE

NEW SYMBOL I. CARD IS UNUSABLE NGD. CARD IS UNUSABLE

BLANK D. CARD IS UNUSABLE

Dt WE HAVE FINISHED

It I IS UNPUNCHED

CORE ADDRESS. INDEX IF TAGGED

TO SUBROUTINE

FIND AN EQUIVALENT

INITIAL WORD SHOWING LOCATION OF TABLE VARIABLE BRINGING ORDER INTO UPPER

It WE SHOULD INTERCHANGE

ARE WE DONE SUBTRACT COMPARISON CONSTANT

RESET BRINGING ORDERt AND SEARCH MORE

2316

2512

2136 2290

2002

2422 2442

2552 1976

1644 2158

2596

2420

1824

1948

2192 2488 2336

1406 2140

1822 2000 2416

2220

2598

1838 2478

1474 2254

2502

2366 2256

2270

2320

2322 2326

2340

2342

2398

2462 2214

2450

2098

2558

2556

1874

2592

1672 1682
0951 16 1354 1309 0915 60 135* 1088 0322 20 1355 0000

0565 20 1355 0900

1354 60 1355 1088 1230 69 1355 8003

1348 69 1355 0168 0610 20 1356 0000

0549 60 1356 1088 0599 60 1357 1088 1248 24 1359 1034 0116 20 1551 0900

0382 20 1554 1307 1054 60 1554 1088 0427 20 1555 0900

1000 69 1555 8003 0554 22 1555 0179 0394 23 1555 0179

0718 69 1555 0659

0765 60 1555 1088 0916 24 1555 0000

1352 69 1555 0172

1245 69 1555 0168 0365 20 1660 0000

0592 65 1660 0665

1266 24 1660 0029 0405 20 1661 0000 0647 24 1669 0072 0370 69 1669 0772

0611 69 1669 1072 0617 21 1669 1122 0420 69 1669 1224 0616 69 1669 1274

1298 24 1669 1280

0341 69 1679 0232 0438 24 1679 0282 0268 20 1679 0271

1008 65 1679 0376 0626 65 1679 0371

1283 65 1680 0690

0381 69 1680 0533

0220 65 1680 0177

0392 24 1689 0442 0290 10 1689 1002 0340 10 1898 1002 0990 10 1898 0608 0134 20 1899 0302 074* 11 8001 0452 0634 11 8001 8002 0070 65 8001 0327

0332 15 8001 0289 0389 10 8001 0295

0461 11 8001 0367

0481 11 8001 0437

0412 10 8001 0969 0467 10 8001 1223 0542 10 8001 0713 0517 10 8001 1323 0947 11 8001 0604 0240 10 8001 0997

0679 65 8001 0535

1063 67 8001 1319 0314 67 8001 0721 0685 10 8001 1291 1035 15 8001 1341 1270 15 8001 1227 0986 16 8001 0993

0732 10 8001 0999

1285 60 8001 1292 0694 60 8001 0709

0465 65 8002 0723 0683 66 8002 0491 0969 60 8002 0777

0613 65 8002 0177

16 600

Q 599 60 AOOOO TA

1355 QSB 20 A0001 0000

1355 P C3 20 A0001 0900

600 60 A0001 TA

J 69 A0001 8003

P Al 69 A0001 T0001

1356 QB 20 A0002 0000

p 601 60 A0002 TA

p 602 60 A0003 TA 1359 J SEND 24 A0005 A

1551 Q 796 20 A0197 0900 1554 J 20 A0200

799 60 A0200 TA 1555 800 20 A0201 0900

p PI 69 E0001 8003

1555 p P2 22 E0001 EXITZ

1555 p P3 23 E0001 EXITZ

J 69 E0001

800 60 A0201 TA

1555 Q 24 A0201 0000

Q 69 A0201 T0005

OS 69 A0201 T0001

1660 Q OSA 20 G0001 0000

J 65 G0001

1660 J ST 24 G0001 0029

1661 QA 20 G0002 0000

1669 24 DRUMT

R J0003 69 DRUMT

N SUB11 69 DRUMT

1669 24 DRUMT

R L0003 69

69 DRUMT

DRUMT

1669 24 DRUMT

N 888 69 BLANB

1679 24 BLANB

1679 N M0001 20 BLANB M0004

65 BLANB A

65 BLANB J0004

N DONE 65 ZEROX

69 ZEROX RU

N F0003 65 ZEROX EXITX

1689 J SS 24 Z0001

J Y 10 Z0001 LOOP

J 10 ZMAXM LOOP

J 10 ZMAXM U0001

1899 J 20

11

ZMAX1

8001

11 8001 8002

65 8001

15 8001

10 8001

11 8001

11 8001

10 8001

N RC 10 8001

10 8001 RES

C NZ 10

1110

8001

8001 8001

N OUT 65 8001

67 8001 LR

N LH 67

10

15

15

16

8001

8001

8001

8001 8001

N DRM 1060 8001

8001

A

60 8001 SUB10

65 8002

J 6660 8002

8002

N FXT 65 8002 EXITX

WHAT CELL DID WE RESERVE )

A0001 RESTORE COMPARISON CONSTANT AND MODIFY

A0001 INITIAL OF STORING ORDER DUPLICATE INTO AVAILABILITY TABLE ) INITIAL VARIABLE BRINGING ORDER

A0002 COMPARISON CONSTANT

A0005 DUPLICATE INTO AVAILABILITY TABLE ) A0197 COMPARISON CONSTANT FOR LAST LINE A0200 MAKE DRUM AVAILABLE )

A0201 TO RESTORE FOR NEXT LINE OF TABLE

INITIAL OF BRINGING ORDER

E0001 INITIAL OF ORDER TO STORE D-POSITION

E0001 INITIAL OF ORDER TO STORE I-POSITION BRING WORD SHOWING EQUIVALENT

A0201 COMPARISON CONSTANT FOR END OF JOB

TO RESTORE BEFORE END OF JOB

G0001 RESTORE COMPARISON CONSTANT AND MODIFY BRING EQUIVALENT OF REGION

G0001 STORE ADDRESS OF 0001 OF REGION

G0002 COMPARISON CONSTANT

DRUMT PRESET DRUM TAG I BLANK I t IS DRUM FULL

IS THE DRUM FULL DRUMT CHANGE DRUM TAG TO 9 ) BLANK ADDRESS. IS DRUM FULL BLANK D AND I. CHECK DRUM TAG

DRUMT CHANGE DRUM TAG. DRUM CANNOT BE FULL. SAVE IN CASE I IS BLANK

BLANB SPEC. SUBR. BRING BACK BLANB + ORCEB

8LANB STORE EQUIVALENT OF BLANK ADDRESS BRING EQUIVALENT OF BLANK BACKWARD L BRING EQUIVALENT OF BLANK BACKWARD L CLEAR ACCUMULATOR

BRING ZERO TO INDICATE RESERVATION

DRUM ADDRESS. OR EQUIVALENT TO DRUM

Z0001 STORE SYMBOL ) ADD A SYMBOL INTO UPPER. FROM BOTTOM

ADD A SYMBOL. STARTING AT TOP ADD A SYMBOL TO UPPER

ZMAX1 CLEAR REGION AND SYMBOL TABLES ) DUPLICATE INTO AVAILABILITY TABLE ) DUPLICATE INTO AVAILABILITY TABLE ) BRING BACK A SET ) BRING BACK A SET OF RESULTS ) MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) MAKE SEVERAL VARIABLE ORDERS ) RESTORE TO POSITIVE

CORE ADDRESS. RESTORE THE 2000 RESTORE THE 9060 WRONG SYMBOL. RESTORE UPPER TO PLUS CLEAR FIRST LETTER

ARE LAST FOUR CHARACTERS DIGITS I THEY ARE DIGITS. GET VALUE ) EQUIVALENT IS IN 1 POSITION OF LOWER EQUIVALENT IN D POSITION OF LOWER AVAILABILITY WORD BACK INTO UPPER

WHAT CELL DID WE RESERVE I L-D ADDENDS TO LEFT END LOWER I CLEAR OP FROM ACCUMULATOR

DRUM. MAKE POSITIVE AGAIN

PUT IT INTO UPPER PUNCH A CARD, AND REPEAT RBD REPLACE DIGIT OF AVAIL. WORD BY W ) CHANGE SIGN OF CORRECTION

NUMERIC ADDRESS ALONE IN UPPER

FIXED ADDRESS. CLEAR UPPER AND EXIT.

1742

1762 986

1128 1764 2424

2600 984

1766

1768

1132 972 1770

1134

1364

1366

1368 1542

1772 2434

2604

2606

982 1486

2492

980

966

1302

1608

1702 2080

2194

2448

798 870

1180

1238 1306 2428

1032

1158

1336

1508

1516 2500

954 2412

2418 640

918

1060

1066

1072 1380 1394

1402 1428 1446

1460 1464

1546

1548 1724

1752 1794

1936 2058

2088

2408

1002

1258

1382 1410
1323 65 0770 16 0501 15 0909 15 1021 16 1055 16 0799 16 1327 65 1056 65 0662 15 1062 90 0022 65 1080 65 0212 16 05*3 10 0567 11 1319 69 0689 60 0736 65 0667 11 0717 60 1074 15 0936 60 1272 65 1210 69 0648 69 0546 67 0933 11 0716 61

8002 0731 8002 0729

8002 0909

8002 0693

8002 1079 8002 1313 8002 0910 8002 0985

8002 0965

8002 1221 8002 1067

8003 0229

8003 1038 8003 0669

8003 0401

8003 0725

8003 0776

8003 0057

8003 0693

8003 0975

8003 1225 8003 1031 8003 0943

8003 0179

8003 0566

8003 1261 8003 0178

8003 1242 8003 0780 0955 21 9972 0755 9972 0360 69 9999 8003 0074 69 9999 8003

65 8002

16 8002

15 8002

15 8002 ssw

16 8002

16 8002

16 8002

65 8002 BOTH

65 8002

15 8002

90 8002

65 8003 LOOP

65 8003

16 8003

10 8003

c LOO 11 8003

c LR 69 8003

60 8003 SB10A

65 8003 SSW

11 8003

60 8003

15 8003

60 8003

65 8003 EXITZ

69 8003

69 8003

N NZ 67

1161

8003

8003

8003

EXITY

J STR 21 9972 SKP

J BRNG 69 9999 801 J BRNG 69 9999 801

clear upper address into left end distributor

4 times dynamic address in d position

4 times dynamic address in d position

what cell did we reserve ) l-d addends to left end lower ) d-address to left end of distr ) odd. separate last addend, delete d tag double it d» we are not on first backward card bring back a set ) which l is less. measured on circle ) modify to end with 1999 i make several variable orders ) are last four characters digits 1 clear distributor

clear lower clear accumulator and jump

put into distributor

clear lower

what cell did we reserve ) should we interchange addends ) new dynamic level into lower clear distributor

clear distributor

if not 8001. correction is zero

core. clear upper changf its sign

9972 new availability - word into drum ) BRING BACK BRING BACK

SET I SET OF RESULTS )

1430

1562 1626

1628

1748 1790

1836

1896

1942 2046

2238

550

838

1052 1076

1452

1552 1586

1616

1720

1730

1758

1862 1916

1932

1968 2020

2054

2396

1738 644

924

1209 •
INSTRUCTIONS LISTED IN ORDER OF LOCATION ADDRESS

OOOl

0002 0003 0004

0005 0006

0007

0008

0009 0010

0011 0012

0013 0014

0015 0016

0017

0018 0019 0020

0021 0022

0023 0024

0025

0026 0027

0028

0029

0030

0031

0032 0033 0034

0035 0036

0037

0038

0039

0041 0042

0043 0044

0045

0046 0047

0048 0049

0050

0051 0053 0054

0055 0056

0057

0058 0059

0060

0061 0063 0064

0065 0066

0067

0068 0070

0071 0072

0073 0074

0075 0076

0077

0078 0079

0080

0081 0082

0083 0084

0085 0086

0087

0088 0089 0090

0091

0092 0093 0094

0096

60 0003

69 1112

70 0161

90 0088

69 0208

24 0178

44 0011

69 1044

65 0553

69 1234

69 0014

69 0015

22 0167

90 0089

60 0003

65 0114

24 1050

24 0177

69 1050

69 0182

69 1044

65 8003

45 0026

69 0186

60 0153

69 1050

69 0001

11 0031

69 1232

69 0633

69 0155

65 0103

69 0036

99 0338

15 0038

69 0089

24 0151

00 0001

24 0177

10 0044

24 0177

44 0147

69 0151

24 0177

60 0152

24 1030

94 0051

24 0052

69 0156

69 0004

60 0902

60 0153

60 0902

69 1050

15 0181

65 0160

20 0197

44 0026

24 0177

24 0179

45 0144

16 0068

65 0197

24 1050

00 0000

65 8001

44 0026

65 0175

60 0010

69 9999

00 1000

45 0088

60 0151

45 0032

00 0000

60 0151

91 0034

24 0151

65 0086

65 0990

24 0238

24 1125

24 0040

69 0091

69 0092

24 0052

95 0144

69 0095

65 0152

60 0158

65 0117

0709

0039

1041 0000

0061

0231 0012

0047

0907

1244 0107

0018

0070 0000

0057

0984

0253

0680

0503

0085

1298 0229

0077

8002 0764

0303

0006

0035 0740

0063

8002 0407

0039

0239

0043

0042 0104

0000

0430

8003 0480

0148

8002 0630 0257

0033

0053

0205

8002 0107

0007 0764

0307

0203

0635

0065 0500

0064

0030

0482 0019

0023

0351 0358

0008 0327

0076

0429 0709

8003 0000

0026

0005 0019

0007 0455

0436 0204

0041

8002

0191 0028

0193 0039

0045

0468 0046

0048

1345

1114

0321

1050

0177

0151 0177

0177

0177

1030

0052

0177

0179

N SETCC

R 0002 READC

K P

N SUBR1

N 0008

J

J 0010

N MDFLI

C ABCDE

K I J

N SUB21

N BACKW

R 0025

N QUITT

R 0027

Q

N BCDEF

N XX8

J

K 16THX

N SUB14

C LOOP

N SUB19

OS

N MDFLP

C SB10A

N NO

N SUBR3

N SUBR9

0238

1125 0040

R 0073

J BRNG

K 13RD

C F

J SEND

R 0084

J SEND

C C

J

JJ

R 0093

R 0094

60 READC

6970 R0011

90 0088

69

24 EXITY

44 MDFLI

69 81STX

65 VAR

69 85TH

69 I 69

22 XXXX1

90 0089

60 READC

65 91STX

24 1050

24 EXITX

69 1050

69 P0006

69 81STX

65 8003

45 QUITT

69 P0010

60 R0003

69 1050

69 SETCC

11 Q 69 ZQ

69

69 R0005

65 FINAL

69

99

15 16THX

69

24 R0001

00 0001

24 EXITX

1024 EXITX

44

69 R0001

24 EXITX

60 R0002

24 1030

94 MDFLP

24 DONE

69 R0006

69 P 60 0902

60 R0003

60 0902

69 1050

15 P0005

65 R0010

20 ALOPT

44 OUITT

24 EXITX

24 EXITZ

45 K 16 810TH

65 ALOPT

24 1050

00 0000

65 8001

44 OUITT

65 AVAL

60 0010

69 9999

00 1000

45 C 60 R0001

45 BCDEF

00 0000

60 R0001

91 XX8

24 R0001

65 SEND

6524 SAVEL

24 S0001

24 SAVED

69

6924 DONE

95 K 69 OPTIM

65 R0002

60 R0008

65 VAR2X

SUB10 SUB14

0000 SUBR3

0000 SB10A

8002 BOTH

SUB SUBR9

8002 SUB14

9X8 SUB19

0000

8003

OUT

8002

ABOTH

SUB10

8003 0000 QUITT

BACKW

0007

LOOP

8002

SUB14

SUB20

NO

sequel to many pseudo-ops.

op. c.i.. tags. optim. alopt

read one card

tag for search started by mdf

is l fixed address ) exity store exit

if so, start forward search

delete quitt tag ) is this last set ) c.i. for availability table ) started searach with indexed d process i xxxx1 bring back a set ) tag for search started by indexed d prepare to punch card tag in case l is undefined symbol ) 1050 change first-card indicator to 2nd ) exitx store exit

was there just one search card

save l from card that started srch ) bla Entry, change drum tag bring back a set ) d. it is not. and we quit

store processed card ] syn Entry, alphabetic i was there only one searched card

to initializing subroutine

store set of data ) blr entry. to subroutine

to subroutine 9 to analyze the address comparison constant for storing

is storage area full i op. c.i.. optim. alopt. etc. multiple branch according to tags ) store set of data ) process l r0001 if so, put in dummy moveable words ] exitx store exit store set of data i exitx store exit store set of data ) store set of data i exitx store exit

if so, is it fixed ) 1030 delete quitt tag i D. YE S done preset exit from backwards routine ) to restore comparison const + advance

started search with mdf operation

is d indexed

equ Entry, alphabetic i is d indexed

is this first set of search ) advance card number i is card of type 08 ) alopt store modified alopt

if n g. quit search

exitx store exit exitz store exit

if fixed. start backward processing

is card of type 08 i modify alopt again ) 1050 start on l. first-card tag ) bring back a set ) if so, quit search ) make drum available ) punch usual dummy output card bring back a set of results )

if so, quit search ) alphabetic l if i is fixed. start backward

ALPHARE MULTIPL

R0001 BRING B STORE S ADDING

SAVEL SAVE L S0001 STORE S SAVED SAVE D GET OP. PROCESS

DONE WITH L«

IS D AC

IS IT A ALPHARE

BEGINNl

ALL CAS

TICAL L INTO UPPER

E BRANCH ACCORDING TO TAGS ) ACK A SET ) ET OF DATA ) ORDER TO LOWER

FROM CARD THAT STARTED SRCH ) ET OF DATA ) FROM CARD THAT STARTED SRCH ) C.I.. TAGS. OPTIM. ALOPT.

DALTER EXIT I TUALLY AN ADDRESS

N MDF OPERATION ) TIC D NG OF REGION TO BE RESERVED

ES. STORE PROCESSED CARD I

1580

2248 364

520 440

950

388

372 662 2552 400

390

638 522

392

2522 490

2178

604

622 2446 550

436

880 2314

532 2638 414

2442

1150 514

478

376

744 416

378 504

2668

1924

408 2068 418

410

2116

452 374

384

632 516

398 386

2312 464

424

1588 432

810 456

1148 1434 458 434

854

616 2650

640 444

968 2550

924

754

446

438

476

526 1174

738

556 406

2498 624

412

628

448

380

684 450

382 2620

2380

876
0097 65 0098 65 0099 69 0100 69 0101 65 0102 65 0104 24 0105 24 0106 16 0107 24 0109 65 0110 35 0111 69 0112 11 0113 69 0114 90 0115 45 0116 20 0118 65 0119 65 0120 20 0121 65 0122 20 0123 20 0124 20 0125 65 0126 65 0127 20 0128 20 0129 20 0130 20 0131 20 0132 01 0133 96 0134 20 0135 69 0136 60 0137 65 0138 69 0139 69 0140 98 0141 69 0142 24 0143 44 0144 69 0145 69 0146 24 0147 10 0148 20 0149 69 0150 94 0161 15 0162 16 0163 69 0164 24 0165 16 0166 10 0168 24 0169 24 0170 2* 0171 2» 0172 71 0173 44 0174 69 0175 11 0176 15 0187 20 0188 69 0189 69 0190 00 0191 69 0192 69 0193 69 0194 69 0195 69 0196 69 0198 20 0199 16 0200 24 0201 69 0202 00 0203 90 0204 11 0205 65 0206 65 0207 69 0208 35 0209 20 0210 2» 0211 24 0212 16

0152 1116 0159 0964

0502 0740

0003 0006 0397 0201 0052 0201 0152 0105

0153 0236

0069 0623

1030 0083

0062 0217

0005 0173 0114 0017

0365 8003 0235 0438

0000 0000

0318 0026

1551 0900

0097

0098 0099 0100

JJ LN

1328 1328

0095

1328 0095

0095

1233

1233

1098 1233

1098

1098 0095 1098

1328 1233

1328 1233 0536 1289 0536 1289 0536 1289 0536 1289 0536 1289 0000 0000

0136 0088

1899 0302 0040 0343

0153 0357 0117 0571

0141 0042 1044 0297

0291 0145

0012 0045 0177 0330 0247 0198

0197 0150

0298 0400

0155 0408 0050 8003 0103 0056

0102 0018

0026 0055 0038 0143

0515 0619

0066 0400

0117 0020

0068 0323

1003 0558

0178 0945 0180 0995

0182 1045 0184 1095 0177 1096 0026 0078

1199 8003

1111 1111 0079 0233

0197 0081 0114 0067

0238 0241 0908 0344

0184 0087

0195 0305 0096 0049

0397 0400

0102 0045 0149 0305

0353 0106

0202 1107 0156 0204

1050 1062 0000 0025 0207 0058

0607 0161 0103 0757

0353 0229

1030 0133

0005 0071 0197 0397

1200 0028

1199 0252

8003 0669

0152 0153

0095

0095

0095

0536

0536

0536

0536

0536

0155

0103

0178 0180

0182 0184

0353

0156

N SSB

K 91STX

Q 796

R 00001

R Q0002

N Q0003

R 00004

R Q0005

R 00006

R 00007

R Q0008

R 00009

N Q0010

R 00011

R Q0012

R Q0013

R 00014

K 12NDX

J ENDED

J

J 0177 N SUBR6

C K

N 899

J

N OUT

J

T0001

T0002

T0003 T0004

T0005

OL

AVAL

N X2

N B J

J

J

J

J

N OUT

OS

N SUB22

K 25IXX

0197

1200

1199 MAXSEN

65 R0002

65 R0009

6969 REAOC

65 LNM

65 DONE

24 R0002

24 R0003

16 OC

24 1030

65 0PRE6

35 0005

69 91STX

11 QSA

69 Tl 90 0000

45

20 A0197

65 83RD

65 83RD

20 E 65 83RD

20 E 20 E 20 E 65 83RD

65 83RD

20 EQUIV

20 E0U1V

20 EQUIV

20 EQUIV

20 EOUIV

01 0000

96 B 20 ZMAX1

69 SAVED

60 R0003

65 VAR2X

69

69 81STX

98 MISC

69 ABCDE

24 EXITX

44

69 ALOPT

69

24 R0005

10 OS

20 FINAL

69 LN

94 QUITT

15 16THX

16 110TH

69

24 VAR2X

16 810TH

10 N 24 P0002

24 P0004

24 P0006

24 P0008

71 P0001

44 QUITT

69 SMAXM

11 1111

15 710

20 ALOPT

69 91STX

69 SAVEL

00 0908

69 POOOB

69

69 DN1 69 LNM

69 LN

69

20 VAR

16 25IXX

24 R0006

69 1050

00 0000

90

1165 FINAL

65 VAR

69 1030

35 0005

20 ALOPT

24 SMAX1

24 SMAXM

16 8003

region designator to right end ) req entry. numerical i sub rbr Entry, to subroutine

subr1 initialize at start of assembly ' SUB22 SAvE ORCEQ

SUB22 SAVE ORCEO

R0002 IF SO, PUT IN DUMMY MOVEABLE WORDS ) YYY R0003 IF SO, PUT IN DUMMY MOVEABLE WORDS ) IS THIS LAST SET 1030 STORE TAG TELLING HOW SEARCH STARTED

SAVE DYNAMIC LEVEL OF L FROM D I IS I A FIXED ADDRESS ) CHANGE FIRST-CARD INDICATOR TO 2ND ) 8003 CLEAR REGION AND SYMBOL TABLES ) SPEC. SUBR. BRING BACK BLANB + ORCEB

0000 QUITT IFSO. QUIT SEARCH

0900 A0197 COMPARISON CONSTANT FOR LAST LINE

BP INVALID ADDRESS

BP BLANK I. CARD IS UNUSABLE

X E DRUM. PUT I-EQUIVALENT INTO E BP NEW SYMBOL I. CARD IS UNUSABLE

X E 800X ADDRESS

X E CORE ADDRESS

X E OTHER ADDRESS

BP N G D. CARD IS UNUSABLE

BP BLANK D. CARD IS UNUSABLE

SD EQUIV OLD SYMBOL. STORE I AS NEW EQUIV

SD EQUIV NEW SYMBOL. STORE I AS ITS EQUIVALENT

SD EQUIV 800X. STORE ITS EQUIVALENT.

SD EOUIV CORE. STORE I AS ITS EQUIVALENT.

SD EQUIV OTHER. STORE I AS THE EQUIVALENT.

0000

C WITH I OR L, RESPECTIVELY ZMAX1CLEAR REGION AND SYMEOL TABLES ) BRING BACK L AND D ) IS I A FIXED ADDRESS ) MAKE NEW BRINGING ORDER ) SUB19 PROCESS L CHANGE TAG TO SECOND-CARD TAG I 899 MULTIPLE BRANCH ACCORDING TO TAGS ) SUB20 PROCESS D, AND TO 08 ROUTINE

EXITX STORE EXIT OUT BRING BACK A SET ) IS IT AN MDF OPERATION

SUBR5 PROCESS D BACKWARDS

X R0005 BRING BACK A SET ) 8003 STORE SET OF DATA ) FINAL STORE VARIABLE ORDER

SUB21 PROCESS I FORWARDS

IF SO, QUIT SEARCH

BRING BACK A SET ) REDUCF NUMBER YET TO BE DONE ) SUBR5 PROCESS BACKWARDS D ONCE MORE VAR2X PRESET TO STORE AFTER PROCESSING ) IS IT TYPE 08) UPPER, LAST ADDRESS - 2000

P0002 STORE AVAILABILITY WORD P0004 STORE AVAILABILITY WORD

P0006 STORE AVAILABILITY WORD

P0008 STORE AVAILABILITY WORD PUNCH A CARD OF THE TABLE

IF I IS N G, QUIT SEARCH

8003

1111 AVAILABILITY WORD

IS TYPE 01

F ALOPT STORE MODIFIED ALOPT

START ON L. FIRST-CARD TAG ) BRING BACK L AND D I TAGS AND EXIT FOR SUBROUTINE 13 SAVE D FROM CARD THAT STARTED SRCH ) SUBR4 PROCESS L BACKWARDS

PRESET EXIT FROM BACKWARDS ROUTINE ) SUBR5 PROCESS D BACKWARDS

SUB20 PROCESS D FORWARDS

SUBR4 PROCESS L BACKWARDS

VAR STORE VARIABLE ORDER

BOT WHICH L IS LESS. MEASURED ON CIRCLE ) X R0006 TO RESTORE AND ADVANCE FIRST-CARD TAG

0025 NO IS THIS FIRST SET OF SEARCH ) BRING BACK A SET ) BRING BACK A SET ) LOOP BRING VARIABLE ORDER, AND REPEAT

IF SO, WHERE DID SEARCH START

IS L FIXED ADDRESS ) LNM ALOPT STORE NEW ALOPT. AND JUMP BACK

X SMAX1 CONSTANT FOR WHETHER STORAGE IS FULL SMAXM STORE PROCESSED CARD I MODIFY TO END WITH 1999 )

2474

2362 2454

362

776 786

506

508 568 404

818

472 488 960

868 2678

482

1132 2320

2322 2324

2326

2328 2330

2332 2340

2342 2344

2346

2348 2350

2352

2672 430

954

678 468

904

540

588 742 542

1290

562 460

772 648 420

422 784

462 560 1014

852 620 496

1048 2574

2578

2582 2586

2590 474

944

988 500

736 614

674

1270 626

792 630

760 794

782 566 844

598 2236

2652 426

558 634

594

428

442 860

518

882 1052
0213 20 0214 69 0215 22 0216 15 0217 14 0218 60 0219 65 0220 65 0221 65 0222 35 0223 65 0224 60 0225 65 0226 69 0227 65 0229 10 0230 60 0231 61 0232 24 0233 45 0234 69 0236 24 0237 20 0239 69 0240 10 0241 24 0242 24 0243 10 0244 24 0245 46 0246 35 0247 10 0248 20 0249 22 0250 2l 0251 16 0252 11 0253 70 0254 10 0255 60 0256 69 0257 69 0258 65 0259 16 0260 69 0261 24 0262 10 0263 11 0264 45 0265 16 0266 00 0267 14 0268 20 0269 60 0270 69 0271 20 0272 65 0273 01 0274 20 0275 01 0276 69 0277 00 0278 35 0279 69 0280 69 0281 30 0282 69 0283 96 0285 11 0286 69 0287 15 0288 69 0289 10 0290 10 0291 69 0293 44 0295 30 0296 15 0297 24 0298 69 0299 22 0300 95 0301 15 0302 10 0303 90 0305 24 0306 69 0307 45 0308 69 0309 46 0310 69

0181 0234

0317 0142 0069 0022

0769 0973

0320 1036

0068 0177

0068 0177

1680 0177

0068 0177

0005 0177

0068 0177

0068 0177

0359 0413

0279 0039

0103 0041 0082 8002

0152 0958 0134 8003 0235 0388

0236 0037

1044 0647

0155 0227

0197 0550

0192 0142

8001 0997

0182 0135

0182 0285 0146 8002 0447 0450

0348 0199

0000 0750

0200 8002

0553 0256

0901 0354 0150 0408 0254 0059

0355 0259

0151 1007 0000 0000

0153 0957

0009 0039

0060 0061 0103 0557

0038 0443

1125 8003

0151 0408

0565 0331

0116 0671 0000 0001 0038 0293

0196 0000 0320 1080 1679 0271 0622 0627

1044 0697

0182 0335

0325 0611 0555 0273

0182 0385

0555 0275 0197 0950

0000 0269

0001 0485

1050 0403

0683 0586

0001 0337 0447 0600

0012 0138

0488 0493 0139 0018 0254 0209 0137 0090

0242 0547

1689 1002 0194 0142

0347 0248

0003 1053 0549 0954

1050 0453

0101 0018

0901 0404

0603 0255

0132 0237

0405 0309

0507 0258

0177 0080 0397 0142

0026 0136

1030 0333

0112 0213

0286 0045

0181 0069

0155 0197

0182

0182

0553

0901 0150

1679

0182

0182

1050

0901

N OUT

J

R F0001

R F0002

N F0003

R F0004

R F0005

R F0006

R F0007

N TP

LPLOOP

C YYY

N 9X8

J SEND

N LOOP

P CI

N OUT

Q QS

J BRNG

P C6

N M0001

R M0002

R M0003

N M0004

R M0005

R M0006

R M0007

R M0008

N M0009

R M0010

J Y

N MISC

20 P0005

69

22 QC

15 C5

14 50IXX

60 810TH

65 810TH

65 ZEROX

65 810TH

35 0005

65 810TH

60 810TH

65 SPR

69

65 FINAL

10 SEND

60 R0002

6124 Tl 45 YYY

69 81STX

24 R0005

20 ALOPT

69

10 8001

24 P0006

24 P0006

10

24 T2 46 AEB

35 0000

10 QS

20 VAR

22 0901

24 ROOOO

16 11STX

11 02 70 R0001

10 0000

60 R0003

69

69

65 FINAL

16 16THX

69 S0001

24 R0001

10 C3

11 796

45 0000

16 16THX

00 0196

14 50IXX

20 BLANB

60 87THX

69 81STX

20 P0006

65

01 0555

20 P0006

01 0555

69 ALOPT

0000

0001

1050

0001

00

35

6=1 6 '3 3069 T2

96 ABCDE

1169

15 11STX

69 ENDED

10 SEND

10 Z0001

6944

30 0003

15 601

24 1050

69

22 0901

95 SHX

15 12NDX

10 QA

90

24 EXITX

69 LNM

45 OUITT

69 1030

46

69 JUMP

EXITX

EXITX

EXITX

EXITX

EXITX

EXITX

EXITX SUB14

LOOP

8002

LPSUBR6

SUB14

SUBR3

0001 0000 M0004

SB10B SB10C

SUB11 M0006

M0008

M0002

LOOP SUBR6

OUT

SKP SUBR6

OUT SUB20

P0005 CLEAR CARD NUMBER PROCESS I BACKWARDS AGAIN

QC NOT 1ST CARD. MAKE COMP. CONST. ) MODIFY TO TAKE NEXT COLUMN OF TABLE ) SAVE DYNAMIC LEVEL OF L FROM D ) ADDRESS IS N G BLANK ADDRESS

DRUM ADDRESS. OR EQUIVALENT TO DRUM SYMBOLIC ADDRESS. WITH UNDEFINED SYMB

800X ADDRESS

CORE ADDRESS OTHER ADDRESS. USUALLY PART OF CONST. BOTTOM LINE OF TABLE

GET OP. C.I.. TAGSl OPTIM. ALOPT.

ALL CASES. BACK TO START OF LOOP BRING BACK A SET ) ALPHABETIC D INTO UPPER CLEAR REGION AND SYMBOL TABLES ) Tl SAVE IN CASE I IS BLANK

D. NO, I . YES. PRESET DRUM TAG ) R0005 EITHER CASE. SOMETHING INTO R0005

ALOPT MODIFY TO USE ROUTINE FOR UNFIXED D ) PROCESS I BACKWARDS

ARE LAST FOUR CHARACTERS DIGITS I °0006 BRING BACK L AND D ) P0006 BRING BACK A SET OF RESULTS ) BRING BACK A SET ) T2 SAVE IN CASE I IS CORE I WHICH L IS LESS. MEASURED ON CIRCLE ) TO PRFSET LEFT SHIFT ORDER BRING BACK A SET ) VAR STORE VARIABLE ORDER

0901 MAKE SEVERAL VARIABLE ORDERS ) ROOOO RESTORE COMPARISON CONSTANT AND MODIFY CHANGE ITS FIRST DIGIT TO 8 STORE PROCESSED CARD I READ ANOTHER CARD BRING AL°HABETIC I GET OP. C.I., TAGS. OPTIM. ALOPT.

IF SO, IS IT FIXED ) NOT 1ST CARD. MAKE COMP. CONST. ) STORE PROCESSPD CARD ) BRING BACK A SET I R0001 COMPARISON CONSTANT FOR END OF SET MAKE SEVERAL VARIABLE ORDERS ) ARE WF TO LAST LINE OF TABLE ) DIFFERENCE OF BRINGING AND STORING ORD BRING BACK A SET ) TO MODIFY BRINGING ORDER FOR NEXT COL WHICH L IS LESS. MEASURED ON CIRCLE ) BLANB STORE EQUIVALENT OF BLANK ADDRESS

N. G. OMIT PUNCHING

BLANK. CHANGE FIRST-CARD TAG ) P0006 DRUM ADDRESS. STORE FOR PUNCHING

NEW SYMBOL. FIND BEST EQUIVALENT

800X ADDRESS. STOP THE MACHINE

P0006 CORE ADDRESS. STORE FOR PUNCHING

OTHER ADDRESS. STOP MACHINE

EQUIV OF NEW SYMBOL.

NEW SYMBOL. BUT SYMBOL TABLE FULL ARE LAST FOUR CHARACTERS DIGITS ) IS THIS FIRST QUITT SET CORRECTION TO DYNAMIC LEVEL REPLACE DIGIT OF AVAIL. WORD BY W ) SPEC. SUBR. BRING BACK BLANB + ORCEB

IF WITH I . PROCESS LIKE 08 BRING BACK A SET OF RESULTS ) PROCESS I MODIFY ALOPT AGAIN ) WITH L« ALTER EXIT I BRING BACK A SET OF RESULTS I ADD A SYMBOL INTO UPPER, FROM BOTTOM

PROCESS I BACKWARDS

BRING BACK A SET ) MAKE SEVERAL VARIABLE ORDERS ) INITIAL OF VARIABLE BRINGING ORDER

1050 CHANGE TAG TO SECOND-CARD TAG ) PROCESS I FORWARDS

0901 MODIFY TO TAKE NEXT COLUMN OF TABLE I D. NO. I. YES. MODIFY TO USE ROUTINE FOR UNFIXED D ) CLEAR REGION AND SYMBOL TABLES I D» ONLY ONE. EXITX STORE EXIT PROCESS I BACKWARDS

IF SO, QUIT SEARCH

IF SO, WHERE DID WE START CLEAR REGION AND SYMBOL TABLES ) PROCESS D

962

864

548 1100

820 1154

1156

1158 1160

1162 1164

1166

1094

572

512

552 1224

952

800

502 964 510

828 790

1460 676 926

646

804

842 1124

564

658 1086 750

808 884

492 2674

690

660 454

544

886 554

748

1092 1020

1130

652

1138 836

1180

1182 1184

1192 1194

1198 1200

1208 1210

1216

1456 574

1256 1006

872

538 928

586

858

682 920

1508 758

654

1062

1638 590

774 1104

688 826

956

534

1172

768 466

578 958

584
0311 65 0214 0113 N 2ND 65 SSB

0312 60 0108 0513 60 SA 0313 46 0166 0178 46 EXITY

0314 67 8001 0721 N LH 67 8001 0315 45 0468 0319 45 NO 0316 00 0195 0000 P C8 00 0195 0000

0317 65 0197 0287 J 65 ALOPT XY 0313 65 0903 0457 65 0903 0319 69 1030 0433 69 1030 0320 00 0000 0050 K 50IXX 00 0000 0050

0321 10 0024 8003 10 8003

0322 20 1355 0000 1355 QSB 20 A0001 0000 A0001 0323 45 0176 0227 45 LP 0324 10 0427 0331 10 800 SU 0325 00 0989 0276 J 00 0989 M0009

0327 16 0038 0243 16 16THX LOOP

0328 35 0004 0639 35 0004

0329 20 0197 0350 0197 c XI 20 ALOPT ALOPT

0330 60 0153 1108 60 R0003

0331 21 0108 0361 0108 c SU 21 SA SA 0332 15 8001 0289 15 8001 0333 96 0286 0657 96 JUMP NO 0334 00 0000 9060 K 9060 00 0000 9060

0335 20 0062 0177 0062 N SB10C 20 OPREG EXITX OPREG

0336 95 0032 0012 95 BCDEF ABCDE

0337 10 0304 0359 10 UH SPR 0338 98 0341 0393 98 888 898 0339 24 0292 0003 0292 24 OR CEO READC ORCEO

0340 10 1898 1002 J 10 ZMAXM LOOP

0341 69 1679 0232 N 888 69 BLANB

0342 20 0391 0335 0391 20 ORCEB SB10C ORCEB

0343 24 0184 0137 0184 24 P0008 ENDED P0008 0344 69 1050 0504 69 1050 0345 20 0435 0588 0435 20 LSYMB LSYMB 03*7 10 0250 8002 10 OS 8002 0348 15 0202 1107 N AEB 15 25IXX BOT 0349 24 0901 0454 0901 24 0901 0901 0350 60 0152 1057 60 R0002

0351 16 0132 0287 16 12N0X XY 0352 60 0515 1069 60 110TH DON

0354 69 0708 0511 69 C2 0355 69 0182 8002 02 69 P0006 8002 0356 65 0109 0113 J 65 SSB 0357 69 0110 0061 69 SUBR3

0358 69 0211 0164 C A 69 SEN 0360 69 9999 8003 J BRNG 69 9999 8003 0361 10 0264 8003 10 C4 8003 0362 60 0108 0563 60 SA 0363 15 0228 0583 15 P 0364 99 0688 0490 99 FO FIBD

0365 20 1660 0000 1660 OSA 20 G0001 0000 G0001 0366 10 1019 1123 10 DDIFF 0367 35 0001 0773 35 0001 0368 69 0911 0661 N J0001 69 PRE SUBR7

0369 60 0722 0627 R J0002 60 89THX SB10B

0370 69 1669 0772 R J0003 69 DRUMT

0371 24 0062 0615 0062 N J0004 24 OPREG OPREG

0372 65 0675 0611 R J0005 65 SUB11

0373 01 0000 0373 R J0006 01 0000 J0006

0374 69 0391 0371 R J 000 7 69 0RCE8 J0004

0375 20 0185 0177 0185 R J0008 20 P0009 EXITX P0009 0376 20 0062 0925 0062 N A 20 OPREG C0008 OPREG

0377 22 0167 0620 0167 22 XXXX1 LOOP XXXX1 0378 60 0000 0605 60 0000

0379 45 0332 0483 45 OVR 0380 11 0254 0559 11 11STX 0381 69 1680 0533 69 ZEROX RU 0382 20 1554 1307 1554 J 20 A0200 A0200

0383 96 0336 0188 96 B 0385 69 0538 0441 69 SUB13

0386 69 0189 0142 69 SUBR6

0387 20 1003 0506 1003 20 N N 0388 69 0391 0244 69 ORCEB

0389 10 8001 0295 10 8001 0390 22 0167 0441 0167 22 XXXX1 SUB13 XXXX1 0392 24 1689 0442 1689 J ss 24 Z0001 Z0001 0393 69 0196 0400 N 898 69 SUBR5 0394 23 1555 0179 1555 P P3 23 E0001 EXITZ E0001 0395 00 0210 0000 K ZTABL 00 0210 0000 0396 15 0599 1104 15 602 0397 69 0052 0305 J LNM 69 DONE SUBR4

0398 20 0117 0570 0117 N 0UT2 20 VAR2X VAR2X

0399 44 0654 0704 44 ABS

0400 24 0177 0230 0177 N SUBR5 24 EXITX EXITX

0401 10 0658 0363 10 X 0402 60 0184 0789 N SHOP 60 P0008 0403 90 0657 0308 90 NO 0404 20 0359 0312 0359 20 SPR SPR

0405 20 1661 0000 1661 QA 20 G0002 0000 G0002 0406 65 0062 0267 J 65 OPREG

0407 16 0210 0115 16 MAX

USE I-COMP. BRING BLANB AND ORCEB MODIFY TO TAKE FIRST LINE, SAME COLUMN

I. OVER 1999. WE RESERVE NOTHING

EQUIVALENT IN D POSITION OF LOWER

D. NO. I. YES. MODIFY BRINGING ORDER TO START NEW COL BRING ALOPT, AND JUMP BACK

IS I INDEXED

IF SO, WHERE DID SEARCH START STORE PROCESSED CARD 1 A0001 RESTORE COMPARISON CONSTANT AND MODIFY

D, IT IS NOT. If IT IS. RESTOpE, AND TAKE WORD FROM NEXT LINE TAGS AND EXIT FOR USE IN SUBROUTINE 11 BRING BACK A SET ) MAKE BRINGING ORDER ) ALOPT STORE MODIFIED ALOPT ALPHABETIC I TO UPPER

STORE VARIABLE STORING ORDER BRING BACK A SET OF RESULTS ) D, STARTED WITH I. I, WITH L. FROM 4-5, 19-20. STORE DYNAMIC LEVEL

WITH I. EXIT ACCORDING TO WHY SEARCH

REPLACE DIGIT OF AVAIL. WORD BY W ) MULTIPLE BRANCH ACCORDING TO TAGS 1 FINISHED. SAVE SAVOR AS ORCEO ) ADD A SYMBOL, STARTING AT TOP SAVE IN CASE I IS BLANK STORE DYNAMIC LEVEL OF CORE ADDRESS

BRING BACK L AND D ) FIRST-CARD TAG STORE ADDR OF SPACE RELATIVE TO START BRING BACK A SET ) WHICH L IS LESS, MEASURED ON CIRCLE ) LAST LINE AND END OF WORD. MODIFY ) ALPHABETIC D, TO SEE WHETHER FIXED MODIFY ALOPT AGAIN ) MODIFY EXIT, AND PREPARE TO QUIT

MAKE SEVERAL VARIABLE ORDERS ) COMPARISON CONSTANT FOR END OF SET BRING BACK BLANB AND ORCEB

IS I A FIXED ADDRESS I PRESET TO STORE AFTER PROCESSING I BRING BACK A SET ) MAKE VARIABLE BRINGING ORDER

LAST LINE AND END OF WORD. MODIFY I MAKE SEVERAL VARIABLE ORDERS ) I, BACKWARD L, BRANCH, UNFIXED D RESTORE COMPARISON CONSTANT AND MODIFY

DRUM. ADD RELOCATION AMOUNT

MAKE SEVERAL VARIABLE ORDERS I STORE EQUIVALENT OF NEW SYMBOL

N.G. OMIT PUNCHING

BLANK I , IS DRUM FULL DRUM OR DRUM EQUIVALENT

NEW SYMBOL. FIND BEST VALUE

800X RANGE. ERROR.

CORE. BRING DYNAMIC LEVEL OTHER ADDRESS, USUALLY A CONSTANT

STORE ADDRESS FOR OPTIMIZING NEXT ADDR MAKE NEW BRINGING ORDER I BRING APPROPRIATE TABULAR VALUE

BRING BACK A SET OF RESULTS I IS FIRST POSITION BLANK BRING ZERO TO INDICATE RESERVATION

MAKE DRUM AVAILABLE ) D. WITH I. I , WITH L. FIND DYNAMIC LEVEL OF CORE ADDRESS

PROCESS I BACKWARD

STORE N-l SAVE IN CASE I IS CORE ) MAKE SEVERAL VARIABLE ORDERS ) PREPARE EXIT AND GO TO SUBROUTINE 13 ) STORE SYMBOL ) PROCESS D BACKWARDS

INITIAL OF ORDER TO STORE I-POSITION

LENGTH OF SYMBOL TABLE

INITIAL BRINGING ORDER I PROCESS L BACKWARDS

STORE PROCESSED CARD ) I, ZERO. ADDRESS WAS ABSOLUTE

STORE EXIT

MAKE SEVERAL VARIABLE ORDERS ) SHIFT OPERATION. FORWARD I, BACKW L. D, IT IS NOT MODIFY TO TAKE NEXT COLUMN OF TABLE ) COMPARISON CONSTANT

WHICH L IS LESS, MEASURED ON CIRCLE ) IS STORAGE AREA FULL )

862 1108 1046

1548

666

1142 866

484

668 2656

878

986 498 1024

1196

642

1482 712

1292 1026 918

580 1414

1602 612

1008

746 938

1516

798

1206 680

1272 1520

656

846 1114

714

856

1528

1088 896

816 470

618

644

1028 1120

1080

1814

982

1388

1068

1298 1300

1302

1308 1314

1318 1320

1322 1278

908

1568 916 1376

1032

972 610

1202

672

1042

802 1060

1620

1336 780

1368 2680

1662

762

892

1472

1222

1078 1816 576

1106 980

834 480
0408 11 0261 0265

X 11

Q 0*09 00 0000 2000 K 20001 00 0000 2000 0410 69 1124 8003 Q OF 69 SOOOO 8003

0411 60 0284 0389C OK 60 XXXXA

0412 10 8001 0969 10 8001 0413 16 0708 0463 16 C2 0414 65 0167 0985 N EVN 65 XXXX1 BOTH

0415 46 0178 0569 46 EXITY 0416 60 0108 1013 N SYM 60 HSYMB

0417 69 0246 0349

N ZP 69 CI 0418 69 1015 0661 N LOOOl 69 PRE SUBR7

0419 60 0622 0627

R L0002 60 87THX SB10B

0420 69 1669 1224

R L0003 69 DRUMT

0421 20 0182 1285 0182

N L0004 20 P0006

0422 69 1030 0983R LOO05 69 1030

0423 00 0000 0001

R L0006 00 0000 SETCC

0424 20 0182 1335 0182R L0007 20 P0006

0425 00 0000 0419

R L00O8 00 0000 L0002

0426 00 0908 0280

J 00 0908 0427 20 1555 0900 1555 Q 800 20 A0201 0900

0428 65 0000 0756J 65 0000

0429 10 0382 8003 10 8003 0430 69 0154 1110 69 R0004

0431 69 0515 0533 69 110TH RU

0432 65 0435 0439 65 LSYMB

0433 96 0386 0288 96

L 0434 71 0177 8003 71 P0001 8003 0436 99 0140 0291 99 MISC

0437 35 0002 0543 35 0002 0438 2» 1679 0282 1679 24 BLANB

0439 15 0392 0747 15 SS 0440 24 0743 0296 0743 24 SW 0441 24 0179 0532 0179 N SUB13 24 EXITZ

0442 65 0435 0489 65 LSYMB

0443 44 0497 0398 44 0UT2

0444 30 0000 0717J 30 0000

0445 16 0498 0754 16 JBRL 0446 65 1354 1020 65 600 SAI 0448 20 0167 0620 0167 N OUT 20 XXXX1 LOOP

0449 46 0352 0791 46 FULL 0450 65 0197 0251 65 ALOPT

0451 10 0554 0509 10 P2

A 0452 10 0916 0980 10 Q 0453 60 0206 0057 60 SB10A

0454 69 0758 0561 69 C7 0455 69 0908 0063 69 PRE SUBR9

0456 60 0108 0263 60 SA 0457 45 0026 0111 45 QUITT

0458 35 0001 046 5 35 0001 0459 20 0486 0335 0486 20 SAVOR SB10C

0460 65 0197 0520

J 65 ALOPT X0003

0461 11 8001 0367 11 8001 0462 16 0038 0793 16 16THX ST 0463 45 0216 0417 45 ZP 0464 15 0515 0514 15 110TH UM

0465 65 8002 0723 65 8002 0466 10 1119 0724 10 29IXX 0467 10 8001 1223 N RC 10 8001 0468 69 0197 0300 C NO 69 ALOPT

0469 20 1023 0476 1023

N D0001 20 BLANK D0008

0470 60 0672 0627R D0002 60 88THX SB10B

0471 69 0095 0748R D0003 69 OPTIM

0472 69 1226 0677

N D0004 69 INDEX 0473 65 1276 0611 R D0005 65 SUB11

0474 69 0778 0441

R 00006 69 SUB13

0475 69 0928 0677R D0007 69 INDEX 0476 20 0184 1049 0184 R D0008 20 POOOH 8 0477 69 1065 0661 N D0009 69 PRE SUBR7

0478 00 0000 0470

R D0010 00 0000 00002

0479 21 0284 0387 0284 21 XXXXA

0480 60 0151 0712 60 R0001

0481 11 8001 0437 11 8001

0482 45 0636 0537 45 ABC 0483 69 0486 0339 N OVR 69 SAVOR

0484 69 0687 0390

N DI 69

F 0485 44 0416 0240 44 SYM 0487 69 0190 0441 69 SUB13

0488 24 0186 0285 0186 24 P0010X 0489 14 0492 1029 14 2DXXX 0490 65 0095 0749 N F1BD 65 OPTIM

0491 15 0294 0335 15 XXXX2 SB10C

0492 00 0002 0000K 2DXXX 00 0002 0000

0493 44 0597 0448 44 OUT 0494 21 0186 1238 0186 21 P0010 PROI 0495 30 0006 0960 30 0006 0496 65 1054 1020 65 799 SAI 0497 10 0650 8003 10 QS2 8003

0499 20 0186 0689 0186 20 P0010

0500 69 0753 0400 69 SUBR5

0501 15 8002 0909 15 8002

0502 10 1019 1232

J 10 DDIFF ZO

BRING BACKA SET )

MAKE sEVERALVARIABLE ORDERS ) RESTORE TO POSITIVE

IS IT ALSO RIGHT END OF WORD

EVEN. WE SHOULD USE FIRST ADDEND

MAKE DRUM AVAILABLE ) SYMBOLIC ADDRESS. BRING SYMBOL

LAST LINE AND END OF WORD. MODIFY ) SUB It FOUND EQU OF SYMB. RESERVE

N.G. FIX TO OMIT PUNCHING

BLANK ADDRESS. IS DRUM FULL

DRUM. STORE ADDRESS FOR PUNCHING

NEW SYMBOL. WHERE ARE WE 800X ADDRESS. QUIT IMMEDIATELY

CORE ADDRESS. STORE FOR PUNCHING MISCELLANEOUS ADDRESS. QUIT AND OMIT

TAGS AND EXIT FOR SUBROUTINE 13 TO RESTORE FOR NEXT LINE OF TABLE

BRING ADDENDS

MAKE DRUM AVAILABLE ) CONTROL INFORMATION FOR PUNCHING ) BRING UNITY TO INDICATE UNRESERVATION SYMBOL-STORING ORDER ) 0. WITH I. It WITH L. PUNCH CARD. PERFORM UPPER. MULTIPLE BRANCH ACCORDING TO TAGS ) MAKE SEVERAL VARIABLE ORDERS ) SPEC. SUBR. BRING BACK BLANB + ORCEB SYMBOL-STORING ORDER I FORWARD. SET SWITCH OFF FOR 1ST PART

STORE EXIT LOCATION OF EQUIVALENT RELATIVE TO El STORE PROCESSED CARD ) SHIFT MODIFIED WORD BACK INTO PLACE SUBTRACT INITIAL BRINGING ORDER

RESET BRINGING ORDER. AND SEARCH MORE

STORE MODIFIED BRINGING ORDER + REPEAT 1 .

TABLE IS FULL ALOPT TO LOWER MAKE STORING ORDER ) DUPLICATE INTO AVAILABILITY TABLE I PUNCH CARD

LAST LINE AND END OF WORD. MODIFY ) ANALY7E THE ADDRESS

ARE WF TO LAST LINE OF TABLE ) IF SO, QUIT SEARCH

REPLACE DIGIT OF AVAIL. WORD BYW ) STORE DYN LEV OF CORE. AND FINISH UP MULTIPLE EXIT. ACCORDING TO KIND

MAKE SEVERAL VARIABLE ORDERS ! COMPARISON CONSTANT FOR LAST PART

D. NO COUNT OF TAGS IN LOWER REPLACE DIGIT OF AVAIL. WORD BY

W ) ADD 29 CORE ADDRESS. RESTORE THE 2000

ISD AN ACTUAL ADDRESS

STORE EOUIV OF BLANK FOR REFERENCE

N.G. QUIT AND OMIT PUNCHING

BLANK D. IS IT MDF OPERATION

INDEX IF TAGGED

FIND EQUIVALENT

FIND DYNAMIC LEVEL

INDEX IF TAGGED

USUALLY

A CONSTANT

drum address,

new symbol. 800x address,

core address.

p0008 misc address.

store equivalent of new symbol

symb table full or drum packed. quit xxxxa store initial address to be reserved alphabetical l to upper make several variable opders ) i. the address is blank finished. save savor as orceq ) prepare exit and go to subroutine 13 i are last four characters digits ) get dynamic level of core address

P0010 LOCATION of equivalent relative TO El FORWARD I OR BACKWARD D. GET ADDENDS

ADD TO GIVE MODIFIED DYNAMIC LEFEL BRING BACK A SET OF RESULTS I P0010 FIX C.I. SO THAT D WILL NOT PUNCH ) SHOULD WE INTERCHANGE ADDENDS I START BACK FROM TOP OF TABLE STORE PROCESSED CARD ) P0010 C.I. TO PUNCH X-9 I PROCESS D BACKWARDS 4 TIMES DYNAMIC ADDRESS IN D POSITION

ADD RFLOCATION AMOUNT

650 2664

752 1058 1380

1096

1898 976

1496

1112 2076

2078 2080

2086

2094

2102 2104

2110

1254

1134

1842 970

1926 1036

1330 670

1594

740 1074

870

1332 1636

1778

1338

888 1728

1532 1682 934

1526

806

1356 2414

592 1116

1176

1018 486

1000

1276 694

1066

1642 1098

1956

1002 1478 1394

686 2124

2126

2128 2136

2140 2144

2152 2164

2170

2172 1040 2070

1072

1436 936

1613

1458

1268 940

1340

1798

1260 2670 930

2282

1856

1696 890

1584

812

1626 2456
0503 90 0707 0358 90 A 050* 90 0335 0459 90 SB10C

0505 69 0908 0661 69 PRE SUBR7

0506 11 0409 0313 11 20001 0507 69 1030 0283 69 1030

0508 45 0162 0178 45 EX1TY

0509 10 0294 0167 C A 10 XXXX2 XXXX1

0510 6i 0197 0527 J 65 ALOPT X0010

0511 22 0359 0262 0359 22 SPR SPR 0512 15 0765 1020 15 800 SAI 0513 11 0266 0331 11 C6 SU 0514 20 0545 0598 0545 C UM 20 COUNT COUNT

0515 00 0000 0001 K 110TH 00 0000 0001 0516 65 0346 0651 J ON 65 AI 0517 10 8001 1323 C N2 10 8001 0518 15 0075 0329 R X0001 15 13RD XI 0519 69 1050 0653 R X0002 69 1050 0520 00 0000 0329 R X0003 00 0000 XI 0521 15 0075 0329 R X0004 15 13RD XI 0522 15 0075 0329 R X0005 15 13RD XI 0523 00 0000 0519 R X0006 00 0000 X0002

0524 00 0000 0329 R X0007 00 0000 XI 0525 15 0132 0187 R X0008 15 12NDX X2 0526 69 1050 0703 R X0009 69 1050 0527 00 0000 0081 R X0010 on 0000 F 0528 15 0132 0187 R X0011 15 12NDX X2 0529 15 0132 0187 R X0012 15 12NDX X2 0530 91 0526 0525 R X0013 91 X0009 X0008

0531 01 0666 0531 R X0014 01 0666 X0014

0532 95 0735 0787 95 9 0533 24 0326 0479 0326 C RU 24 W W 0534 69 0737 0440 69 OFF

0535 30 0001 0641 30 0001 0537 61 0515 1069 61 110TH DON

0538 00 0909 0342 J 00 0909 0539 46 0542 0977 46 BAD

0540 04 0000 0000 K 42ND 04 0000 0000

0541 35 0004 0451 35 0004

0542 10 8001 0713 10 8001 RES 0543 10 8003 0401 10 8003 0544 21 0186 1338 0186 21 P0010 ALL P0010

0546 67 8003 0178 N NZ 67 8003 EXITY

0547 15 0038 8002 C A 15 16THX 8002 0548 93 1101 0785 93 SEO

0549 60 1356 1088 P 601 60 A0002 TA 0550 69 0953 0142 69 SUBR6

0551 16 1054 1009 SWOF 16 799 0552 15 1266 0784 15 ST 0554 22 1555 0179 1555 P P2 22 E0001 EXITZ E0001 0555 20 0167 0670 0167 20 XXXX1 XXXX1 0556 00 0989 0268 00 0989 M0001

0557 10 0260 0215 10 BRNG

0558 46 0411 0212 46 OK 0559 46 0412 0613 46 FXT 0560 65 0163 0113 65 SSB 0561 24 0359 0362 0359 24 SPR SPR 0562 15 0038 0793 15 16THX ST 0563 11 0316 0331 11 C8 SU 0564 65 0902 0662 J 65 0902 0565 20 1355 0900 1355 P C3 20 A0001 0900 A0001 0566 22 0183 0986 0183 22 P0007 P0007 0567 11 8003 0725 c LOO 11 8003 0568 00 0001 0375 J 00 0001 J0008

0569 10 0322 8003 10 OSB 8003 0570 65 0553 0243 65 VAR LOOP

0571 6 9 0074 0377 69 BRNG

0572 20 1023 0577 1023 N 10001 20 BLANK 10006 BLANK

0573 60 0722 0627 R 10002 60 89THX SB10B

0574 60 0152 1012 R 10003 60 R0002

0575 69 1028 0677 N 10004 69 INDEX 0576 65 0979 0611 R 10005 65 SUB 11 0577 20 0185 0177 0185 R 10006 20 P0009 EXITX P0009

0578 69 1331 0677 R 10007 69 INDEX 0579 20 0185 0177 0185 R 10008 20 P0009 EXITX P0009

0580 20 0185 0988 0185 N 10009 20 P0009 P0009

0581 00 0000 0573 R 10010 00 0000 10002 0582 97 0935 0937 97 P. 0583 35 0004 0593 35 0004

0584 98 8009 0000 K 9 98 8009 0000

0585 69 0038 0741 69 16THX 0586 24 0178 1231 0178 N SUB17 24 EX1TY EXITY

0587 65 0290 8001 65 Y 8001 0588 46 0791 0642 46 FULL

0589 10 0294 0399 10 XXXX2 0590 65 0800 1306 J 65 0800

0591 10 0394 0509 10 P3 A 0592 65 1660 0665 J 65 G0001 0593 69 0246 0249 69 CI 0594 60 0095 1099 J 60 E 0595 65 0182 1337 65 P0006 MW

0596 65 0158 0646 65 R0008 SDD

IF NOT« JUMP AHEAD

D» WE SHOULD STORE THIS DYNAMIC LEVEL USUAL CASE. STORE SYMBOL AND EQUIV

IS INITIAL ADDRESS LESS THAN 2000 WHERE DID SEARCH START

D. WE HAVE NOT FINISHED. Ii WE HAVE. MAKE STORING ORDER ) MULTIPLE EXIT MAKE SEVERAL VARIABLE ORDERS ) ADVANCE VARIABLE BRINGING ORDER MODIFY TO TAKE FIRST LINE. SAME COLUMN

COUNT STORE TAG-COUNT

AFTER RESTART. BRING BRINGING ORDER WRONG SYMBOL. RESTORE UPPER TO PLUS ADDRESS N G. CALL UNFIXED

BLANK ADDRESS. IS THIS FIRST CARD DRUM, OLD SYMB. REG. FIXED

NEW SYMBOL. UNFIXED

800X. CALL IT UNFIXED

CORE. TREAT SAME AS BLANK OTHER ADDRESS. FIXED

D IS N G. CALL UNFIXED

BLANK. IS THIS FIRST CARD

OLD SYMBOL. DRUM, REGION. FIXED

NEW SYMBOL. UNFIXED

800X ADDRESS. UNFIXED

CORE. BRANCH, LIKE BLANK SHOULD NOT

I, FORWARD I

ARITH, UNF

BE HERE.

OR BACKW L OTHER. ERROR.

D, D ADDRESS.

STORE OR 1 FORWARD. SET SWITCH OFF FOR 1ST PART THEY ARE DIGITS. GET VALUE ) MODIFY EXIT AND PREPARE TO QUIT

TAGS AND EXIT FOR USE IN SUBR 13

I, RELOCATED CORE ADDRESS TOO HIGH SHIFT TO D POSITION

RESTORE THE 9060 MAKE SEVERAL VARIABLE ORDERS ) FIX C.I. SO THAT I WILL NOT PUNCH ) IF NOT 8001, CORRECTION IS ZERO

BRING BACK A SET OF RESULTS I D, OPERATION 31. I, 30,35,36. PROCESS I BACKWARDS

SUBTRACT END OF TABLE

MAKE STORING ORDER

INITIAL OF ORDER TO STORE D-POSITION

MAKE RRINGING ORDER ) TAGS AND EXIT FOR SUBROUTINE 11 NOT 1ST CARD. MAKE COMP. CONST. I I, LAST ONE WOULD BE OVER 1999

I, FIRST IS NON-BLANK. FIXED ADDRESS. BRING BACK BLANB AND ALOPT ONCE MORE

LAST LINE AND END OF WORD. MODIFY ) COMPAPISON CONSTANT FOR LAST PART

LAST L'NE AND END OF WORD. MODIFY ) BRING APPROPRIATE TAG INITIAL OF STORING ORDER

STORE OPERATION FOR PUNCHING

ARE LAST FOUR CHARACTERS DIGITS I ADDEND AND EXIT FOR SUBROUTINE 18 MAKE DRUM AVAILABLE ) BRINGING ORDER. BACK FOR ANOTHER CARD

MAKE NEW BRINGING ORDER ) STORE EQUIVALENT OF BLANK FOR REFERENC

N.G. QUIT AND OMIT PUNCHING

BLANK I. IS D ALSO BLANK DRUM ADDRESS. INDEX IF TAGGED

NEW SYMBOL. FIND BEST VALUE.

800X ADDRESS. STORE AND EXIT CORE ADDRESS. INDEX IF TAGGED

OTHER ADDRESS. STORE AND EXIT. STORE EQUIVALENT OF NEW SYMBOL SYMBOL TABLE FULL. OMIT PUNCHING ADDR

D» FORWARD. I, BACKWARD.

MAKE SEVERAL VARIABLE ORDERS ) PRESET T AS POSITIVE 1 ) EXITY STORE EXIT INSTRUCTION BRINGING ORDER INTO LOWER

D, TABLE IS FULL FIRST CHARACTER INTO UPPER BRING OPTIMIZING ADDENDS AND TAGS MAKE STORING ORDER

BRING EQUIVALENT OF REGION

MAKE SEVERAL VARIABLE ORDERS ) BRING SYMBOL-EQUIVALENT TO UPPER

BRING BACK NUMERICAL ADDRESS

BRING NUMERICAL D

606 1274 1214

1044

536

1012 1358

718 1090

1654

1110

1958 2644

1684

1428

698 700 704

706 696

708 710

722 724

728 730

720

732 734

1780 1038 1634

1466

1438 1204

1400

1918 1354

1402 1076

2302 2020

922

1828 1766

830 1650

2486

1366

1348 1190 546 1050

1378

850

1118

1666

1122 2044

1128 1934

1452

1312 978 894

906

2186 2188

2190 2204

2208

2212 2214

2226

2228

2232

1852

1082

1986

1502

1992 1506

1522 1470

1964

1362 1486 1084 2356

2092 2624
0597 10 0700 0547 10 OS A 0598 60 0183 1237 60 P0007

0599 60 1357 1088 P 602 60 A0003 TA 0600 24 0391 8002 0391 24 ORCEB 8002

0601 16 1354 1059 16 600

0602 20 0184 1340 0184 20 P0008

0603 69 0306 0045 N SHX 69 SUB20

0604 16 1208 0913 16 909 0605 35 0006 0970 35 0006

0606 16 0290 0345 N UND 16 Y 0607 2« 0155 0204 0155 Q 24 R0005 X 0608 44 1316 0001 R U0001 44 SETCC

0609 16 1218 8002 R U0002 16 KA 8002 0610 20 1356 0000 1356 QB 20 A0002 0000

0611 69 1669 1072 N SUB11 69 ORUMT

0612 15 0915 1020 15 599 SAI 0613 65 8002 0177 N FXT 65 8002 EXITX

0614 10 0152 1312 10 R0002

0615 69 0568 0677 69 INDEX 0616 69 1669 1274 69 DRUMT

0617 24 1669 1122 1669 24 DRUMT 0618 46 0517 0972 46 N2 DEF 0619 20 1003 0456 1003 20 N 0620 60 0673 0057 C LOOP 60 SB10A

0621 16 0174 0379 16 OL 0622 00 0000 8000 K 87THX 00 0000 8000

0623 45 0226 0160 45 R0010

0624 00 0000 0376 J 00 0000 A 0625 00 0988 0926 J 00 0988 C0009

0626 65 1679 0371 65 BLAN3 J0004

0627 10 0186 0941 N SB10B 10 P0010

0628 20 0903 1106 0903 20 0903 0629 21 0294 0947 0294 21 XXXX2 0630 60 0152 0762 60 R0002

0631 20 0184 0487 0184 20 P0008 0632 95 1085 1087 95 CP 0633 65 0536 0220 J 65 EQUIV F0003

0634 11 8001 8002 11 8001 8002

0635 15 1022 1027 15 2IXXX

0636 21 0108 0961 0108 N ABC 21 HSYM8

0637 65 0340 8001 65 8001

0638 14 0492 0904 14 2DXXX 0639 10 0592 8003 10 8003 0640 65 1043 1347 N XY 65 8001 0641 20 0536 0589 0536 20 EQUIV

0642 16 0395 0449 16 2TABL

0643 20 0384 0637 0384 20 T 0644 61 1248 0966 N ALL 61 SEND

0645 2

1

0486 8002 0486 24 SAVOR 8002 0646 20 1019 0696 1019 C SDO 20 DDIFF

0647 24 1669 0072 1669 24 DRUMT

0648 69 8003 1261 69 8003 0649 19 0320 1074 19 50IXX 0650 69 0181 8002 QS2 69 P0005 8002

0651 16 1097 0701 16 AO 0652 20 0183 8003 0183 20 P0007 8003 0653 90 0329 0521 90 XI X0004

0654 11 1308 0963 11 99THX

0655 15 0959 1020 15 BP1 SAI 0656 93 0660 1061 93 XAS 0657 69 0310 0042 c NO 69 SUB19

0659 44 1063 0314 44 LH 0660 60 0184 0939 N XAS 60 P0008

0661 24 0179 0432 0179 N SUBR7 24 EXITZ

0662 15 8002 1221 15 9002 0663 46 0366 0467 46 RC 0664 10 0153 0714 10 R0003

0665 45 0668 1219 45 NG 0666 44 1326 1078 J 44 NGD 0667 11 8003 0975 11 8003

0668 15 0536 0691 15 EQUIV

0669 16 0515 0719 16 110TH

0670 44 1073 0674 44 IPOS 0671 46 0324 0225 46 TP 0672 00 0000 0800 K 88THX 00 0000 0800

0673 65 0167 0621 J 65 XXXX1 0674 65 0536 0541 65 EQUIV

0675 00 0990 0368 J 00 0990 J0001

0676 10 0409 0713 10 20001 RES 0677 24 0178 1281 0178 N INDEX 24 EXITY

0678 44 1081 0682 44 YES

0679 65 8001 0535 N OUT 65 8001 0680 60 0153 0962 60 R0003

0681 11 0334 0539 11 9060

0682 60 1235 1089 60 B AX 0683 66 8002 0491 J 66 8002 0684 15 1119 0734 15 29IXX

0685 10 3001 1291 10 8001 0686 66 0038 0643 N SHRT 66 16THX 0687 00 0000 0991 J F 00 0000

0688 6 5 0095 0699 N FD 65 OPTIM

BRING BACK A SET OF RESULTS ) 932 OPERATION IN D OF UPPER I960

1768 ORCEB SPEC. SUBR. BRING BACK BLANB + ORCEB 874 SUBTRACT COMPARISON CONSTANT 1672 P0008 STORE NEXT 4 DIGITS IN D POSITION 2540 PROCESS D FORWARDS 766 SUBTRACT 9090908995 1*«8 SHIFT TO REMOVE TABULAR ADDRESS ) 1570 SYMB NOT IN TABLE. SUBTRACT Y 1518 R0005 COMPARISON CONSTANT FOR BRINGING SET 596

I IT IS ZERO AND WE HAVE FINISHED 2502 RESTORE LOWER. AND ADD NEXT SYMBOL 2512 A0002 COMPARISON CONSTANT 984

IS THE DRUM FULL 1608 RESTORE AND MODIFY 1676 FIXED ADDRESS. CLEAR UPPER AND EXIT. 1410 ALPHABETIC D 2266

TO SUBROUTINE 18 TO INDEX 1310 BLANK D AND I. CHECK DRUM TAG 2194

DRUMT CHANGE DRUM TAG TO 9 ) 1702

D. IT WAS NOT RIGHT ONE • It IT AS. 1426

N REDUCE NUMBER YET TO BE DONE ) 1016

TO SUB 10A TO PUNCH ONE CARD 910 BRING BACK A SET OF RESULTS ) 914 2666

IF SO, MULTIBRANCH + EXIT FROM QUITT 570 TAG-IpENTIFICATION, AND EXIT FROM 18 1246 EXIT AND TAGS FOR SUBROUTINE 11 1250 BRING EQUIVALENT OF BLANK BACKWARD L 1306 FROM 4-6.19-21. TO SUPPRESS ) 1596

0903 STORE I TAG 1946 XXXX2 ALSO STORE FIRST LETTER OF ADDRESS ) 1444 ALPHABETICAL D INTO UPPER 2118 P0008 STORE CORE ADDRESS FOR PUNCHING 1266

IF BACKWARD L. SUBTRACT TAG-COUNT ) 1908 BRING EQUIV AND MULTIBRANCH 1152 DUPLICATE INTO AVAILABILITY TABLE ) 2418 ADVANCE CARD NUMBER ) 1590 HSYMB ADDRESS NOT BLANK. STORE SYMBOL 1440 BRINGING ORDER INTO LOWER 1514 DIVIDE BY 2 1536 MAKE BRINGING ORDER ) 1484

8001 INTO RIGHT END LOWER 2012 EQUIV STORE THESE 4 DIGITS 1468

1524

T SHORT, PRESET T AS -1 ) 1512 DUPLICATE INTO AVAILABILITY TABLE ) 2420

SAVOR STORE ORCEO FOR USE WHEN WE START FORW 2242 DDIFF STORE DRUM RELOCATION AMOUNT 2626

DRUMT PRESET DRUM TAG ) 966 CLEAR DISTRIBUTOR 1968 WHAT CELL DID WE RESERVE ) 1756 RESTORE CONSTANT AND MODIFY 898 COMPARISON CONSTANT, SUBTRACTED 1686 PO007 STORE LOCATION OF AVAILABILITY WORD 2572 FIRsT. UNFIXED. OTHER, FIXED. 702 NON-ZERO. SUBTRACT 90 1474 RESTORE AND MODIFY 1690

D, IT IS AN INDEXING OPERATION 1810 STARTFD WITH L, OR NOT FIRST. PROC. L 582

D. ADnR IS ODD. EQUIV IN RIGHT END 1544 INDEXING OP. FORWARD I, BACKWARD L. 1832 EXITZ STORE EXIT 1328 DOUBLF IT 2046

D, DRUM. If CORE. 1386 ALPHABETIC I 2286

It REGION IS UNDEFINED 1488

Dt RELOCATED D IS EXCESSIVE 2270

PUT INTO DISTRIBUTOR 1720

GET EQUIVALENT OF REGIONAL ADDRESS I 1490 MODIFY TO END WITH 1999 ) 1054

D, USF I-POSITION. I, USE D-POSITION. 1350

D. NOT LAST LINE. 1022 2662 BRING BACK A SET OF RESUTTS ) 912 BRING EQUIVALENT 1352 TAGS AND EXIT FOR SUBROUTINE 11 1316 RESTORE RELOCATED DRUM ADDRESS 1392 EXITY STORE EXIT 2032

It D IS NOT TRUE ADDRESS 1974

THEY ARE DIGITS. GET VALUE I 1464 ALPHABETIC I TO UPPER 2180 SUBTRACT 9060 1398 MORE TAGS INTO UPPER 1976 CHANGF SIGN OF CORRECTION 1258 ADD 29 2482 AVAILABILITY WORD BACK INTO UPPER 1724 SHORT. PRESET T AS -1 ) 1510

TO BUILD EXIT FROM SUBROUTINE 13 1622 FORWARD D. L-D ADDENDS. LEFT END LOWE 1786
0689 60 8003 0057 60 8003 SB10A

0690 59 0794 1025 69 SUB2R

0691 16 0515 1269 16 UOTH

0692 24 0743 0396 0743 24 SW 0693 69 0178 0981 C ssw 69 EXITY

0694 60 8001 0709 60 8001 SUB10

0695 00 0500 0500

K C3 00 0500 0500

0696 65 0153 0746 65 R0003

0697 24 1050 1103 1050 24 1050

0698 66 0515 0178 66 110TH EXITY

0699 35 0001 1055 35 0001 0700 24 0187 0285 0187 OS 24 POOH

X 0701 45 0655 0705 45 FULL

0702 00 0001 0001 P C6 00 0001 0001 0703 90 0187 0528 90 X2 XOOU

0704 35 0006 0770N ABS 35 0006

0705 01 0222 1109

N FULL 01 0222 0706 69 0095 0548 69 OPTIM

0707 69 1030 0383 69 1030

0708 30 0009 0108 P C2 30 0009 SA 0709 15 1044 0499 C SUB10 15 81STX 0710 35 0002 0785 35 0002 SEO

0711 65 0536 0921

J PRE 65 EQU1V C0004

0712 69 1015 0063 69 PRE SUBR9

0713 21 0167 0720 0167

C RES 21 XXXX1 0714 69 1117 1024 69 SUBR8

0715 15 0718 8002 15 8002 0716 61 8003 0780 61 8003 0717 60 8003 1225 60 8003 0718 69 1555 0659 J 69 E0001 0719 20 1003 0411 1003 20 N OK 0720 69 1273 1025 69 SUB2R

0721 30 0004 1319 30 0004 LR 0722 00 0000 0080 K 89THX 00 0000 0080

0723 10 0326 0281 10

W 0724 46 0416 0328 46 SYM

0725 45 0278 0679 45 OUT 0727 00 0000 0631 J 00 0000

0728 65 1023 0421 65 BLANK L0004

0729 84 1200 0775 84 1200 0730 21 0158 1314 0158 21 R0008

0731 15 0384 8002 15T 8002 0732 10 8001 0999 N DRM 10 8001 A 0734 46 0029 0940 46 0029

0735 97 0688 0490 97 FD FIBD

0736 65 8003 0693 65 8003 SSW 0737 65 0346 0551 J OFF 65 AI SWOF

0738 65 1342 0611 65 SUB11 0739 65 0346 0601 J OFB 65 AI 0740 24 0179 1282 0179 N SUB 24 EXITZ

0741 24 0384 0587 0384 24T 0742 65 0197 1051 N BL 65 ALOPT

0743 65 0346 0551 SW 65 AI SWOF

0744 11 8001 0452 11 8001 0745 15 0695 1349 15 C3 0746 45 0796 0946 45 SCO

0747 69 0108 8002 69 HSYMB 8002

0748 94 0800 0912 94 0800

0749 92 0402 1105 92 SHOP

0750 21 0304 0458 0304

R XX 21 UH

0751 69 0955 1209 69 STR 0752 10 1245 0952 10 OS 0753 69 0356 0305 J 69 SUBR4

0754 20 0435 0638 0435 20 LSYMB

0755 65 0346 0951

C SKP 65 AI 0756 35 0004 0767 35 0004

0757 69 0360 0013 69 BRNG

0758 30 0000 0108 P C7 30 0000 SA 0759 21 0186 0177 0186 21 P0010 EXITX

0760 30 0005 0974 30 0005

0761 00 0988 0918

J 00 0988 C0001

0762 69 1065 0063 69 PRE SUBR9

0763 44 0517 0618 44 NZ 0764 69 1217 0063 c BOTH 69 SUBR9

0765 60 1555 1088

Q 800 60 A0201 TA 0766 16 0930 1339 16 941 0767 92 0785 1222 92 SEO

0768 00 0889 0572

J 00 0889 10001 0769 30 0010 0108 C5 30 0010 SA 0770 16 8002 0729 16 8002

0771 35 0002 1327 35 0002

0772 90 0626 0369 90 J0002

0773 21 0228 0481 0228 21 P 0774 00 0000 0004 K 4IXXX 00 0000 0004

0775 15 0378 8002 15 8002 0776 23 0536 0704 0536 23 EOUIV ABS

0777 11 0409 0663 11 20001 0778 00 0808 0782 J 00 0808 0779 20 0738 0936 0733 20 B 0780 46 1329 0094 46 OUT 0094

0781 44 0585 0686 44 SHRT

CLEAR LOWER RESERVE 0000

get equivalent of regional address ) sw going backward. set switch off ) all cases. going which direction

puncha card. and repeat rbd

to modify identification alphabetic i 1050 change first-card tag ) if 8001. correction is -1 l-d addends to left end lower ) POOH

i. there is no available location.

to modify variable bringing order

no. fixed. yes. unfixed. absolute address or equivalent

stop because drum is packed

optimizing tags

if so, where did search start presetter and also comparison constant

c.i. to punch x-9 ) other. i-addends to left end lower bring equivalent. multibranch

analyze l-address

xxxx1 store address temporarily

process i make bringing order changf its sign clear lower bring word showing equivalent

n modify to end with 1999 ) reserve if drum address equivalent in i position of lower replace digit of avail. word by w ) d. first is spec. char. symbolic

are last four characters digits ) addend and exit for subroutine 18 use ppoper value for blank address

search table according to size of addr

r0008 store advanced

d address advance lower and bring another

drum. make positive again

if spec char. to blr directly

d. forward d. i. backward d. clear accumulator and jump

have we reached top of table

find an equivalent

start backwards search. how far exitz store exit t preset t as positive 1 ) backward l. get alopt

not performed—just for optimizing

duplicate into availability table ) modify identification of word

jump if i is blank

store symbol ) if blank d and mdf, stop machine

d. it isa shift operation

uh replace digit of avail. word by

w i new availability word into drum i restore variable bringing order process l 8ackwards from d lsymb address of symbol relative to start all cases. what did we reserve i shift addends to left end bring back a set ) presetter for start of new column

p0010 from 4-6.19-21. to suppress ) isolate last digit of d-address ) tags and exit for subroutine 11 analy7e d-address

d. it was not right one analyze i

is this another rbd card ) jump unless operation 80.82. or 88 tags and exit for subroutine 11 to restore after subtracting c2 address into left end distributor

odd. separate last addend,

d. drum is not full

p make several variable orders ) make bringing order

equiv store equivalent of symbol subtract 2000 tags and exit for use in subr 11 b should we interchange addends i d. we have finished

d. long symbol

1586 2430

1492 1660 1630

2408 2610

2628

1186

2018

1788 942

1688 2602 726

1560

1698 1826

608

1126

1582 1804

1228 2072

1404

2288

1540 2396

1730

1542 1056

1406

1550 2658

1004

1480

1454

1264 2084

1564

2392

1432 2058 2484

1782 1616

1648 2098

1670

2458 1504

1806

1646

2412 2566

2630

1334

2130

1800

998 1734

2596 814

1534

1740

1844 636 1140

1600

1820

1242 2120

1424 2316

1772 2404

1846

2202

1136

1562 1894 1304

1070

2648 1566

1554 1384

21*6

1860

2398

1500
0782 69 1086 0586 69 SUB17

0783 30 0004 1093 30 0004

0784 69 0158 8002 69 R0008 8002

0785 69 0179 0582

C SEO 69 EXITZ

0786 69 0739 0692

N BAK 69 OFB 0787 97 0490 0742 N 9 97 FIBD BL 0788 69 1243 0441 69 SUB13

0789 35 0009 0760 35 0009 0790 16 1308 1216 16 99THX

0791 01 0111 1219

J FULL 01 0111 NG 0793 20 1097 1020 1097 C ST 20 AO SAI 0794 60 0160 0709 60 R0010 SUB10

0795 15 0695 0652 15 C3 0796 65 0159 0946 65 R0009 SCO 0797 15 1000 0555 15 PI 0798 20 0292 1049 0292 20 ORCEQ B 0799 16 8002 0910 16 8002 0800 00 0404 9998 K 0800 00 0404 9998

0801 00 0404 9998

K 0801 00 0404 9998

0802 33 2322 8999

K 0802 33 2322 8999

0803 00 0505 8998K 0803 00 0505 8998

0804 00 0505 8998K 0804 00 0505 8998

0805 00 0505 8998

K 0805 00 0505 8998 0806 00 0505 8998 K 0806 00 0505 8998 0807 00 0505 8998 K 0807 00 0505 8998

0808 33 1212 9999K 0808 33 1212 9999

0809 33 0202 9999

K 0809 33 0202 9999

0810 33 0504 9999

K 0810 33 0504 9999

0811 33 0504 9999K 0811 33 0504 9999

0812 99 9999 8999

K 0812 99 9999 8999 0813 99 9999 8999 K 0813 99 9999 8999 0814 33 1110 8999 K 0814 33 1110 8999

0815 33 0504 9999K 0815 33 0504 9999

0816 33 0504 9999

K 0816 33 0504 9999

0817 33 0504 9999K 0817 33 0504 9999

0818 33 0504 9999

K 0818 33 0504 9999 0819 33 2120 8999 K 0819 33 2120 8999

0820 54 0303 9999K 0820 54 0303 9999

0821 45 0303 9999

K 0821 45 0303 9999

0822 3* 0303 9999

K 0822 34 0303 9999

0823 30 0303 9999K 0823 34 0303 9999

0824 33 0303 9999

K 0824 33 0303 9999

0825 4* 0505 9999

K 0825 44 0505 9999

0826 00 0505 9998

K 0826 00 0505 9998 0827 00 0505 9998 K 0827 00 0505 9998

0828 33 1212 9999K 0828 33 1212 9999

0829 33 0202 9999

K 0829 33 0202 9999

0830 00 0000 9988K 0830 00 0000 9988

0831 00 0000 9888K 0831 00 0000 9888

0832 33 2726 8999K 0832 33 2726 8999

0833 33 2726 8999K 0833 33 2726 8999

0834 33 2726 8999K 0834 33 2726 8999

0835 00 0000 9988

K 0835 00 0000 9988 0836 00 0000 9988 K 0836 00 0000 9988 0837 33 2726 8999 K 0837 33 2726 8999

0838 33 2726 8999

K 0838 33 2726 8999

0839 33 2726 8999K 0839 33 2726 8999

0840 33 0404 9998K 0840 33 0404 9998

0841 33 0404 9998

K 0841 33 0404 9998

0842 33 0404 9998K 0842 33 04O4 9998

0843 33 0404 9998K 0843 33 0404 9998

0844 34 0405 9998

K 0844 34 0405 9998

0845 43 0504 9998

K 0845 43 0504 9998 0846 33 0404 9998 K 0846 33 0404 9998 0847 33 0505 9998 K 0847 33 0505 9998

0848 33 0404 9998K 0848 33 0404 9998

0849 33 0404 9998K 0849 33 0404 9998 0850 00 0000 9898 K 0850 00 0000 9898

0851 00 0000 9898

K 0851 00 0000 9698

0852 00 0000 9898K 0852 00 0000 9898

0853 00 0000 9898K 0853 00 0000 9898

0854 44 0505 9999

K 0854 44 0505 9999

0855 00 0505 8998

K 0855 00 0505 8998 0856 00 0505 8998 K 0856 00 0505 8998 0857 00 0505 8998 K 0857 00 0505 8998 0858 00 0000 9898 K 0658 00 0000 9898 0859 00 0000 9898 K 0859 00 0000 9898

0860 33 0504 9999K 0860 33 0504 9999

0861 33 0504 9999K 0861 33 0504 9999

0862 99 9999 8999

K 0862 99 9999 8999

0863 99 9999 8999

K 0863 99 9999 8999

0864 33 1110 8999K 0864 33 1110 8999

0865 33 0504 9999K 0865 33 0504 9999

0866 33 0504 9999K 0866 33 0504 9999

0867 33 0504 9999

K 0867 33 0504 9999

0868 33 0504 9999K 0868 33 0504 9999

0869 33 0303 9999K 0869 33 0303 9999

0870 00 0504 8999K 0870 00 0504 8999

0871 00 0504 8999K 0871 00 0504 8 999 0872 00 0504 8999 K 0872 00 0504 8999

0873 00 0504 8999K 0873 00 0504 8999

PERHAPS MODIFY DYNAMIC LEVEL ) D-POSITION HOLDS FOR D, 1 FOR I ADDRESS OF 0001 OF REGION

ALL CASES. WHICH DIRECTION

GOING BACKWARD. SET SWITCH OFF ) D. FORWARD I. It BACKWARD L. FIND DYNAMIC LEVEL

ISOLATE LAST DIGIT OF D-AODRESS ) SUBTRACT 90 STOP IF SYMBOL TABLE IS FULL

AO STORE COMPARISON CONSTANT

PUNCH CARD AND PROCEED

MODIFY IDENTIFICATION OF WORD BRING NUMERICAL I MAKE BRINGING ORDER ) ORCEO STORE DYNAMIC LEVEL FOR REFERENCE

D-ADDRESS TO LEFT END OF DISTR 1 FOR OPERATION = LOCATION - 0800

FOR OPERATION e LOCATION - 0800

FOR OPERATION e LOCATION - 0800

FOR OPERATION = LOCATION - 0800

FOR OPERATION = LOCATION - 0800

FOR OPERATION = LOCATION - 0800

FOR OPERATION = LOCATION - 0800

FOR OPERATION e LOCATION - 08 00 FOR OPERATION = LOCATION - 0800

FOR OPERATION = LOCATION - 0800

FOR OPERATION E LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION S LOCATION - 0800

FOR OPERATION =t LOCATION - 0800

FOR OPERATION = LOCATION - 0800

FOR OPERATION E LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

a LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION S LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION E LOCATION - 0800

FOR OPERATION = LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION 3 LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION S LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION E LOCATION - 0800

FOR OPERATION = LOCATION - 0800

FOR OPERATION E LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION S LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION E LOCATION - 08 00 FOR OPERATION E LOCATION - 08 00 FOR OPERATION E LOCATION - 0800

FOR OPERATION E LOCATION - 0800

FOR OPERATION E LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

a LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION

— 0800

FOR OPERATION E LOCATION

— 08 00 FOR OPERATION B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION S LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION E LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

a LOCATION - 0800

FOR OPERATION • LOCATION - 0800

FOR OPERATION

B LOCATION - 0800

FOR OPERATION

a LOCATION - 0800

FOR OPERATION LOCAT ION

— 0800

FOR OPERATION • LOCATION - 0800

FOR OPERATION

x LOCATION - 08 00 FOR OPERATION • LOCATION - 0800

2148

2038 2490

1850

1658 1784

2158

1818 2478

1556

1668 2432 2570

2632

1346

2162

1836

110

112

114 116

118 120

122 124

126

128 130

132 134

136

138 140

142 144

146 148

150

152 154

156

158 160

162 164

166

168 170

172 174

176

178

180

182 184

186

188 190

192 194

196

198 200

202 204

206

208 210

212 214

216

218

220

222 224

226

228

230

232 234 236

238 240

242 244

246

248

250

252 254

256
0874 00 0504 8999 K 0874 00 0504 8999 FOR OPERATION = LOCATION - 0800

0875 00 0504 8999 K 0875 00 0504 8999 FOR OPERATION = LOCATION - 0800

0876 00 0504 8999 K 0876 00 0504 8999 FOR OPERATION = LOCATION - 0800

0877 00 0504 8999 K 0877 00 0504 8999 FOR OPERATION = LOCATION - 0800

0878 00 0504 8999 K 0878 00 0504 8999 FOR OPERATION = LOCATION - 0800

0879 00 0505 9999 K 0879 00 0505 9999 FOR OPERATION = LOCATION - 0800

0880 01 0100 9898 K 0880 01 0100 9898 FOR OPERATION = LOCATION - 0800

0881 00 0000 9898 K 0881 00 0000 9898 FOR OPERATION = LOCATION - 0800

0882 01 0100 9898 K 0882 01 0100 9898 FOR OPERATION = LOCATION - 0800

0883 00 0000 9898 K 0883 00 0000 9898 FOR OPERATION = LOCATION - 0800

0884 33 2526 8999 K 0884 33 2526 8999 FOR OPERATION = LOCATION - 0800

0885 00 0606 8998 K 0885 00 0606 8998 FOR OPERATION = LOCATION - 0800 0886 00 0606 8998 K 0886 00 0606 8998 FOR OPERATION = LOCATION - 0800

0887 00 0606 8998 K 0887 00 0606 8998 FOR OPERATION = LOCATION - 0800

0888 01 0100 9898 K 0888 01 0100 9898 FOR OPERATION = LOCATION - 0800

0889 00 0000 9898 K 0889 00 0000 9898 FOR OPERATION = LOCATION - 0800

0890 44 0505 9998 K 0890 44 0505 9998 FOR OPERATION = LOCATION - 0800

0891 33 0505 9998 K 0891 33 0505 9998 FOR OPERATION = LOCATION - 0800

0892 33 0505 9998 K 0892 33 0505 9998 FOR OPERATION = LOCATION - 0800

0893 33 0505 9998 K 0893 33 0505 9998 FOR OPERATION = LOCATION - 0800

0894 33 0505 9998 K 0894 33 0505 9998 FOR OPERATION = LOCATION - 0800

0895 33 0505 9998 K 0895 33 0505 9998 FOR OPERATION = LOCATION - 0800

0896 33 0505 9998 K 0896 33 0505 9998 FOR OPERATION = LOCATION - 0800 0897 33 0505 9998 K 0897 33 0505 9998 FOR OPERATION = LOCATION - 0800

0898 33 0505 9998 K 0898 33 0505 9998 FOR OPERATION = LOCATION - 0800

0899 44 0505 9998 K 0899 44 0505 9998 FOR OPERATION = LOCATION - 0800

0900 65 1003 0508 R 0900 65 N HAVE wE FINISHED

0904 35 0004 0715 35 0004 QUOTIENT INTO D OF LOWER

0905 35 0001 1011 35 0001 RESERVE ) 0907 16 0410 0315 16 OF IS THIS LAST SET ) 0908 65 0536 0271 J PRE 65 EQUIV M0004 EQUIVALENT TO LOWER. MULTIBRANCH

0909 15 8002 0693 15 8002 SSW 4 TIMES DYNAMIC ADDRESS IN D POSITION

0910 84 1300 1275 84 1300 LOOK UP IN TABLE

0911 65 0536 0371 J PRE 65 EQUIV J0004 BRING EQUIVALENT. MULTIBRANCH

0912 65 1115 0611 65 SUB11 BLANK D. BUT NOT MDF. FIND VALUE OF D 0913 46 0416 0567 46 SYM LOO D. ADDRESS IS SYMBOLIC.

0914 69 1267 0063 69 SUBR9 ANALYZE D 0915 60 1354 1088 Q 599 60 AOOOO TA 0916 24 1555 0000 1555 24 A0201 0000 A0201 0917 16 0733 0935 16 B P INTERCHANGE AND MAKE NEGATIVE ) 0918 20 1023 0376 1023 N C0001 20 BLANK A BLANK STORE EQUIV OF BLANK FOR FORWARD L 0919 60 0672 0627 R C0002 60 88THX SB10B N G. OMIT PUNCHING

0920 69 1050 1353 R C0003 69 1050 BLANK ADDRESS. WAS THERE BLANK BACK L 0921 69 0624 0677 N C0004 69 INDEX DRUM OR EQUIVALENT. INDEX IF TAGGED

0922 65 0625 0611 R C0005 65 SUB11 NEW SYMBOL. FIND BEST EQUIVALENT

0923 69 0426 0441 R C0006 69 SUB13 800X ADDRESS. GET DYNAMIC LEVEL

0924 69 0727 0677 R C0007 69 INDEX CORE ADDRESS. INDEX IT 0925 20 0184 0177 0184 R C0008 20 P0008 EXITX P0008 M1SC ADDR. STORE FOR PUNCHING. EXIT 0926 69 0711 0661 N C0009 69 PRE SUBR7 STORE EQUIVALENT OF NEW SYMBOL

0927 00 0000 0919 R C0010 00 0000 C0002 NEW SYMBOL. BUT TABLE FULL . N.G. 0928 00 0000 0932 J 00 0000 ADDEND AND EXIT FOR SUBROUTINE 13 0929 46 0732 0933 46 DRM I . CORE. D, DRUM. 0930 00 0000 0094 K 941 00 0000 0094

0931 96 0484 0736 96 DI It ADDRESS IS BACKWARD I OR FORWARO L 0932 20 0184 0788 0184 20 P0008 P0008 STORE THE CORE ADDRESS FOR PUNCHING

0933 11 8003 1242 11 8003 CORE. CLEAR UPPER 0934 15 1090 8002 15 K 8002 MAKE STORING ORDER. AND STORE ZERO

0935 20 0167 1320 0167 C P 20 XXXX1 XXXX1 ALL CASES. STORE ADDENDS

0936 60 8003 0943 60 8003 SHOULD WE INTERCHANGE ADDENDS 1 0937 20 0792 0495 0792 20 IND [NO BACKWARD. SHOULD WE INTERCHANGE ADDND

0938 69 1293 0441 69 SUB13 FIND DYNAMIC LEVEL

0939 30 0004 0799 30 0004 D-ADDRESS TO LEFT END OF DISTR ] 0940 35 0004 0552 35 0004 SHIFT TO D POSITION

0941 21 0154 0759 0154 21 R0004 R0O04 TO SUPPRESS IN CASE WE SEARCH

0942 16 0545 1085 16 COUNT CP IF BACKWARD L. SUBTRACT TAG-COUNT ) 0943 30 0002 0949 30 0002 SHOULD WE INTERCHANGE ADDENDS ) 0944 65 0152 1318 J 65 R0002 ALPHABETIC SYMBOL

0945 10 0702 8003 10 C6 8003 MODIFY BRINGING ORDER. AND BRING

0946 20 0726 0001 0726 c SCD 20 CDIFF SETCC CDIFF STORE CORE RELOCATION AMOUNT

0947 11 8001 0604 11 8001 CLEAR FIRST LETTER

0948 91 0177 0335 91 EXITX SB10C D. BRANCH. I, ARITHMETIC.

0949 20 0906 1010 0906 20 A A SHOULD WE INTERCHANGE ADDENDS ) 0950 90 0271 0505 90 M0004 D. CAsE WHERE WE DUPLICATE COMPUTATION

0951 16 1354 1309 16 600 WHAT CELL DID WE RESERVE 1 0952 16 1295 1249 16 C7 LOOP MODIFY IDENTIFICATION FOR 1 v|EXT CARD

0953 69 0406 0305 J 69 SUBR4 PROCESS L BACKWARDS FROM I 0954 20 0959 0462 0959 20 BP1 BP1 STORE VARIABLE BRINGING ORDER

0955 21 9972 0755 9972 J STR 21 9972 SKP 9972 NEW AVAILABILITY WORD INTO DRUM ) 0956 15 0062 1017 15 OPREG ADD OLD DYNAMIC LEVEL

0957 69 0460 0063 69 SUBR9 ANALYZE It FOR TYPE OF ADDRESS

0958 69 0711 0063 69 PRE SUBR9 ANALYZE THE ALPHABETIC D ADDRESS

0960 35 0008 0779 35 0008 SHOULD WE INTERCHANGE ADDENDS 1 0961 30 0008 0629 30 0008 ALSO STORE FIRST LETTER OF ADDRESS ) 0962 69 1215 0063 69 SUBR9 ANALYZE I-ADDRESS

0963 46 0466 0416 46 SYM If FIRST CHAR IS DIGIT. ADDR SYMBOLIC

0964 16 0409 1064 16 20001 CORE OR DRUM

0965 30 0005 0628 30 0005 I TAG TO RIGHT END LOWER

0966 16 1230 8002 16 8002 DUPLICATE INTO AVAILABILITY TABLE ) 0967 14 1022 1060 14 2IXXX WHICH ONE DO WE USE ) 0968 15 0726 1082 15 CDIFF CD ADD CORE RELOCATION AMOUNT

0969 60 8002 0777 60 8002 NUMERIC ADDRESS ALONE IN UPPER

258 260

262 264

266

268 270

272

274 276

278 280

282 284

286 288 290

292 294

296

298

300

302 304

306

308 1010

1538 1716 664

1178

1628 1838

1296

2132

1450 2336

1762 2434

1880 1230

1232 1234 1244

1248

1252

1262 1280

1282 1284 2154

2052 2436

1614 2156

2054

2510

1884

1862 1854 2220

1834

2486

1598

1912 1864 2534

2576 2634

1446 2168

1866 1212

1742 2598

832 1640

1738

1902 692 1226

1858

1442 2182

1476 2364

1944

2422

1888 2368

1382
0970 30 0006 1069 30 0006 DON

0971 35 0001 0678 35 0001 0972 16 0290 0445 N DEF 16 Y 0973 69 0246 0299 69 CI 097* 10 1277 8003 10 8003

0975 35 0004 0685 35 0004

0976 20 0178 0931 0178 20 EXITY

0977 60 0622 0177

N BAD 60 87THX EXITX

0978 65 1023 0579 65 BLANK 10008 0979 00 0889 0580 J 00 0889 10009 0980 46 1283 0634 46 DONE

0981 97 0534 0786 97 BAK 0982 00 0000 1336 J 00 0000

0983 90 1001 0738 90 MDFLL

0984 24 1030 1084 1030 24 1030

0985 30 0008 0956C BOTH 30 0008 0986 16 8001 0993 16 8001 0987 15 0132 1037 15 12NDX

0988 69 0177 0661 69 EXITX SUBR7

0989 65 0155 1210 65 R0005

0990 10 1898 0608

J 10 2MAXM U0001

0991 35 0004 0501 35 0004

0992 24 0184 1287 0184 24 P0008 0993 35 0005 1006 35 0005 0994 60 0003 0057 60 READC SB10A

0995 10 0702 8003 10 C6 8003 0997 35 0001 0567 35 0001 LOO

0998 20 0292 0177 0292 20 ORCEQ EXITX

0999 15 0167 0178 c A 15 XXXX1 EXITY

1000 69 1555 8003

p PI 69 E0001 8003

1001 69 1004 0107N MOFLL 69

L

A 1002 44 1005 0606 C LOOP 44 UNO

1004 90 0090 0000KL 90 0090 0000

1005 11 0108 0763 11 HSYMB

1006 21 0902 1056 0902 21 0902

1007 65 0160 0165 65 R0010

1008 65 1679 0376 65 BLANBA 1009 45 0512 1113 45 MAX

1010 15 0733 0987 15

B 1011 30 0001 0667 30 0001

1012 44 1265 0616 44 DNB

1013 35 0008 0781 35 0008 1014 65 0167 0771 65 XXXX1

1015 65 0536 0421

J PRE 65 EQUIV L0004

1016 45 1330 1332 45 BL 1017 15 0320 1325 15 50IXX

1018 60 0153 1214J 60 R0003

1020 20 0346 8001 0346C SAI 20 AI 8001

1021 16 8002 1079 16 8002

1022 00 0000 0002

K 2IXXX 00 0000 0002 1024 24 0177 0380 0177 N SUBR8 24 EXITX

1025 21 0178 0381 0178

N SUB2R 24 EXITY

1026 65 1229 1033N EVN 65 8003 EO

1027 20 0181 0434 0181 20 P0005

1028 00 0001 0577J 00 0001 10006

1029 35 0004 1039 35 0004

1031 20 0536 0178 0536 20 EQUIV EXITY

1032 00 0001 1288

J 00 0001

1033 16 0536 0992

C EO 16 EOUlV

1034 16 0038 0744

A 16 16THX

1035 15 8001 1341 15 8001 1036 21 1091 1094 1091 21 DLD

1037 14 0540 1048 14 42N0

1038 16 1091 0245 16 OLD

1039 20 0294 0797 0294 20 XXXX2

1040 30 0008 1118 30 0008

1041 69 1044 1047 69 81STX

1042 65 0515 0178 65 110TH EXITY

1043 00 0000 8001

K 8001 00 0000 8001 1044 80 0000 0000 K 81STX 80 0000 0000

1045 10 0702 8003 10 C6 8003

1046 44 0752 0003 44 READC

1047 24 1050 0160 1050 24 1050 R0010

1048 44 1351 1052 44 OK 1049 69 0095 0948 C B 69 OPTIM

1051 92 0402 0656 92 SHOP

1052 66 0906 1111 66A 1053 21 0658 0461 0658 21 X 1054 60 1554 1088 799 60 A0200 TA 1055 16 8002 1313 16 8002 1056 65 8002 0965 65 8002

1057 69 0510 0063 69 SUBR9

1058 65 0761 0611

N BB1 65 SUBU

1059 45 0612 1213 45 MIN

1060 44 1014 0414 44 EVN

1061 91 0364 0688 91 FD 1062 90 8002 1067 90 8002

1063 67 8001 1319 67 8001 LR 1064 46 1317 0968 46 D 1065 65 0536 0472 J PRE 65 EQUIV D0004

1066 16 0158 1332 16 R0008 BL

SHIFT TO REMOVE TABULAR ADDRESS ) ONE DIGIT INTO UPPER DEFINED SYMBOL. SUBTRACT Y MODIFY TO TAKE NEXT COLUMN OF TABLE]

MAKE BRINGING ORDER

MOVE AMOUNT OF SHIFT INTO

D EXITY STORE EXIT OUT OF LOWER MODIFIED ADDR TOO HIGH. 8000 TO UPPER MAKE BLANK I EQUAL TO BLANK D TAGS AND EXIT FOR SUBR 11. DUPLICATE INTO AVAILABILITY TABLE ) D. FORWARD. I. BACKWARD. ADDEND AND EXIT FOR INDEXING

D. START SEARCH. It WE ARE ON QUITT

1030 TAG In CASEL IS UNDEFINED SYMBOL ) BOTH. RIGHT ADDEND TO RIGHT END CLEAR OP FROM ACCUMULATOR

SHOULD WE INTERCHANGE ADDENDS I STORE SYMBOL AND ITS EQUIVALENT BRING TAGS AND OPERATION

ADDA SYMBOL TO UPPER 4 TIMES DYNAMIC ADDRESS IN

D POSITION

P0008 STORE THE ADDRESS FOR PUNCHING D TAG INTO UPPER

PUNCH MODIFY BRINGING ORDER. AND BRING

ARE LAST FOUR CHARACTERS DIGITS I ORCEQ STORE DYNAMIC LEVEL FOR REFERENCE

ADD ADDRESS BEING INDEXED. EXIT. INITIAL OF BRINGING ORDER STARTED WITH NEW-SYMBOL L

It SYMBOL IS NOT IN THE TABLE

TAG. SEARCH STARTED BY NEW-SYMBOLL SOME SYMBOL WAS FOUND. SUBTRACT OURS

0902 STORED TAG

IS IT TYPE 08) BRING EQUIVALENT OF BLANK BACKWARD

L I . WE HAVE REACHED TOP OF TABLE

SHOULD WE INTERCHANGE ADDENDS I RESERVE ) D. D IS NOT BLANK. CLEAR ALL BUT LAST CHARACTER

ODD. SEPARATE LAST ADDEND ) BRING EQUIVALENT. MULTIBRANCH I . I IS UNPUNCHED

ADD 50 TO MAKE SURELY POSITIVE

IS THE 1-ADDRESS BLANK

AI STORE BRINGING ORDER. AND DO IT WHAT CELL DID WE RESERVE ) EXITX STORE EXIT EXITY ENTRY TO RESERVE. STORE EXIT. EVEN. PUT 8003 AT RIGHT END OF LOWER

P0005 ADVANCE CARD NUMBER I ADDENDS AND EXIT FOR USE IN SUBR 18. LOCATION OF EQUIVALENT RELATIVE TO El EQUIV STORE THIS ADDRESS IN EQUIV ADDEND AND EXIT FOR INDEXING

BOTH. SUBTRACT THE 800X ADDRESS DUPLICATE INTO AVAILABILITY TABLE ) WHAT CELL DID WE RESERVE ) DLD SAVE DYNAMIC LEVEL OF L FROM D I SHOULD WE INTERCHANGE ADDENDS I WHICH L IS LESS. MEASURED ON CIRCLE ) XXXX2 LOCATION OF EQUIVALENT RELATIVE TO El CLEAR ALL EXCEPT LAST CHARACTER ) RESTORE FIRST CARD TAG ) UNIT CORRECTION TO DYNAMIC LEVEL

modify bringing order. and bring

d. we are not done.

1050 restore first card tag ) multibranch

i. we should interchange several cases. what kind of op

0, it isa shift operation

interchange and make negative i ( make several variable orders )

l-d addends to left end lower ) delete d tag analyze d get Blank d dynamically from i d. we are not back to start yet

d, oppeg was odd. i. even.

d, it is

a branch operation

d, we are not on first backward card equivalent is in i position of lower

d. drum. i. core, bring equivalent. multibranch

subtract numerical

d from lower

1572

1972 1530

1102

1822

1722

1612

1412 2198 2210

2416

1632 2274

2096 2524

1900 1936

1870 2230

1930 2500

1624

2006

1938 2544

2580

1462 2224

2060

1364

402

1420 524

1422 1940 494

1238

1652

1868 1718

2192

1498

1892 2074

2462 1904 2384

1656

1748 2646

1374

1030

2002

1592 2206

1342 1760 2294

2004

2410

1752

822 1872 840

1344

2506 366 2010

2022

2676 2584 2594

368

1874 2166

1808

1876 1064

1770

1790

1942 716 1240

1674 1890

1812 2238

1546 2366

2122

2466
1067 69 0292 0645 69 ORCEQ

1068 60 0158 1264 60 R0008

1069 10 0179 8003 C DON 10 EXITZ 8003

1070 24 0743 0446 0743 24 SW

1071 21 0197 0177 0197 21 ALOPT EXITX

1072 90 0976 1077 90 PAKT

1073 65 0536 0591 N IPOS 65 EQUIV

107* 15 8003 1031 15 8003

1075 21 0178 0431 0178 N SUB2U 24 EXITY

1076 65 1279 1033 65 8002 EO

1077 15 0515 8002 C PAKT 15 110TH 8002

1078 69 0982 0677 69 INDEX

1079 35 0001 1035 35 0001 1080 65 8003 1038 65 8003

1081 60 0584 1089 N YES 60 9 AX

1082 15 0409 0124 C CD 15 20001 Q0007

1083 10 0186 0494 10 P0010

1084 24 0197 1350 0197 24 ALOPT

1085 14 0320 1272 C CP 14 50IXX

1086 15 0294 1049 J 15 XXXX2 B 1087 97 1085 0942 97 CP 1088 44 1241 0743 R TA 44 YES SW

1089 10 0167 1071 C AX 10 xxxxi

1090 11 0000 0001 P K 11 0000 0001

1092 45 0546 0698 45 NZ 1093 35 0004 1311 35 0004

1094 65 0197 0301 65 ALOPT

1095 10 0702 8003 10 C6 8003

1096 11 1352 1046 11 Q 1098 60 0152 0914 C X 60 R0002

1099 69 0001 1025 69 SETCC SUB2R

1100 90 0755 0905 90 SKP

1101 35 0004 0785 35 0004 SEO

1102 65 0160 0766 65 R0010

1103 65 0556 0611 65 SUB11

1104 20 0959 0562 0959 20 BP1 1105 93 0660 0710 93 XAS

1106 45 1260 1211 45 BT 1107 46 0560 0311 c BOT 46 2ND

1108 69 0911 0063 69 PRE SUBR9

1109 69 0114 0617 69 91STX

1110 2N 0186 0989 0186 24 P0010

1111 30 0002 0917 30 0002

1112 65 0157 1212 J 65 R0007

1113 69 0516 1070 N MAX 69 ON 1114 69 1018 1025 69 SUB2R

1115 00 0888 0469 J 00 0888 D0001

1116 30 0008 0790 30 0008

1117 44 1228 1278 J 44 NGI 1118 44 0001 0934 44 SETCC

1119 00 0000 0029 K 29IXX 00 0000 0029

1120 24 0743 0496 0743 24 SW

1121 65 0178 0783 65 EXITY

1122 65 0178 1077 65 EXITY PAKT

1123 46 0676 0977 46 BAD 1124 00 0000 2000 K 27TH 00 0000 2000

1200 19 9900 0000 K 1200 19 9900 0000

1201 79 9900 0004 K 1201 79 9900 0004

1202 80 0300 0002 K 1202 80 0300 0002

1203 80 0400 0004 K 1203 80 0400 0004

1204 80 0700 0002 K 1204 80 0700 0002

1205 89 9900 0004 K 1205 89 9900 0004

1206 90 5900 0003 K 1206 90 5900 0003

1207 99 9999 0004 K 1207 99 9999 0004

1208 90 9090 8995 K 909 90 9090 8995

1209 22 0167 8001 0167 22 XXXXI 8001 1210 69 8003 0566 69 8003

1211 10 0902 1310 C BT 10 0902

1212 10 0151 1262 10 R0001

1213 69 0516 1120 N MIN 69 ON 1214 45 1068 1329 45 OUT

1215 65 0536 0575 J 65 EQUIV 10004

1216 46 0684 0029 46 0029

1217 65 0536 0120 J 65 EQUIV 00003

1218 11 0001 0001 P KA 11 0001 0001

1219 61 1022 1069 C NG 61 2IXXX DON

1220 14 0774 1021 14 4IXXX

1221 10 0167 1271 10 XXXXI

1222 16 0095 0785 16 OPTIM SEO

1223 10 0726 0681 10 CDIFF

1224 90 0728 0419 90 L0002

1225 15 0346 0751 15 AI 1226 00 0000 0476 J 00 0000 D0008

1227 30 0003 0785 30 0003 SEO

1228 30 0002 1239 N NGI 30 0002

1229 00 0000 8003 K 8003 00 0000 8003

1230 69 1355 8003 J 69 A0001 8003

1231 20 0294 1297 0294 20 XXXX2

1232 69 0001 1025 J ZO 69 SETCC SUB2R

1233 10 0003 0709 N BP 10 REAOC SUB10

1234 00 0080 0000 K 85TH 00 0080 0000

STORE ORCEQ FOR USE WHEN WE START FORW BRING FIRST ADDRESS AGAIN

FROM MANY PLACES. MULT1BRANCH

SW AT TOP. SET SWITCH ON ) ALOPT STORE ALL OPTIMIZING TAGS

I. YES. USE I-POSITION. BRING EQUIVALENT

WHAT CELL DID WE RESERVE ) EXITY ENTRY TO UNRESERVE. STORE EXIT.

ODD. PUT 8002 AT RIGHT END OF LOWER MODIFY EXIT ) INDEX D WHAT CELL DID WE RESERVE I WHICH L IS LESS. MEASURED ON CIRCLE ] MORE TAGS INTO UPPER RESTORE THE 2000 AND JUMP BACK

FIX C.I. SO THAT D WILL NOT PUNCH ) ALOPT TAG IN CASE L IS UNDEFINED SYMBOL ) NEW LEVEL. MODULO 50 IN UPPER PERHAPS MODIFY DYNAMIC LEVEL ) IF BACKWARD L. SUBTRACT TAG-COUNT ) IS A LOCATION AVAILABLE IN THIS GROUP

ADO IN TAGS FROM OPTIM

TO CHANGE ADDING ORDER TO STORING ONE

D. ADDRESS IS NOT 8001 D-POSITION HOLDS FOR D. 1 FOR I I MODIFY TO USE ROUTINE FOR UNFIXED D ) MODIFY BRINGING ORDER. AND BRING

ARE WE DONE ALPHABETIC D RESERVE AND PUNCH CARD

D. SKIP BECAUSE COMP IS DOUBLE OPERATION 31. TAKE LARGER ADDENDS.

IS THIS ANOTHER RBD CARD ] FIND BEST EQUIVALENT TO BLANK

BP1 INITIAL BRINGING ORDER ) D. IT IS AN INDEXING OPERATION

D. I TAG IS NON-ZERO

D. WE WILL USE ONE MEASURED FROM D ANALYZE ALPHABETIC I CHANGE DRUM TAG TO 9 I P0010 CONTROL INFORMATION FOR PUNCHING ) INTERCHANGE AND MAKE NEGATIVE ) NUMERICAL L AT TOP. SET SWITCH ON ) RESERVE FIRST CELL IN BAND

TAGS AND EXIT FOR SUBROUTINE 11 REGION DESIGNATOR TO RIGHT END ) D. RELOCATED I IS EXCESSIVE

D> QUIT BECAUSE WE HAVE FOUND LONG SYM

SW SECOND PART. BACKWARDS. CHANGE SWITCH D-POSITION HOLDS FOR D. 1 FOR I ) MODIFY EXIT ) I. RELOCATED DRUM WILL EXCEED 1999

FOR TELLING WHETHER DRUM OR CORE

IF DRUM ADDRESS. USE REGULAR EXIT

IF NOT AN ADDRESS. ADD 4

IF 800X ADDRESS. ADD 2 IF NOT AN ADDRESS. ADD 4

IF 800X ADDRESS. ADD 2 IF NOT AN ADDRESS. ADD 4

IF CORE ADDRESS. ADD 3 IF NOT AN ADDRESS. ADD 4 XXXXI NEW AVAILABILITY WORD INTO DRUM ) CLEAR DISTRIBUTOR

D TAG INTO UPPER ALPHABETIC L SECOND PART. BACKWARDS. CHANGE SWITCH

D. NOT BLANK. I. IT IS BLANK. BRING EQUIVALENT. MULTIBRANCH

IF A DIGIT, TO BLR WITHOUT DESIGNATING

BRING EQUIVALENT. MULTIBRANCH.

TO CHANGE STORING ORDER TO ADDING ONE MODIFY EXIT FOR N G SYMBOL

WHAT CELL DID WE RESERVE ) INDEXABLE ADDRESS INTO UPPER REDUCE ADDENDS BY 1 FOR 80.82. OR 88 ADD RELOCATION AMOUNT

D, DRUM NOT FULL. I I DRUM IS FULL. NEW AVAILABILITY WORD INTO DRUM I ADDEND AND EXIT FOR USE IN SUBR 18 L-D ADDENDS TO LEFT END LOWER ) FIX C.I. SO THAT I WILL NOT PUNCH ) DUPLICATE INTO AVAILABILITY TABLE ) XXXX2 STORE DYNAMIC LEVEL. RIGHT END WORD

TO RESERVING SUBROUTINE

BY-PAsS INVALID CARD

2240

2388

1574

1680

1982

1610 1360

1758 1034

2000

1706 2272

1750

838

1978 2372

2280 2526

1914 2150

1910 1644

1980

2514

2016 2040 824

2588

2592 2334

2358 1714

1830

2402

1188 1664

1802 1948

848 1294

1700

1928

1878 2250

1678 2382 2134

2476

2290

2508 2654

1694 2036

1704

1390

2062 344 346

348

350

352 354

356

358

1576

1736

1932 1952 2252

1692 2386 2184

2480

2318

2516

1558 1746

2048

1848

1396

2082

1732 2138

1796

2298 2026 2424

1994 2444

2360

2614
1235 98 1236 20 1237 10 1238 65 1239 10 1240 69 1241 36 1242 30 1243 00 1244 24 1245 69 1247 69 1248 2i 1249 20 1250 23 1251 07 1252 07 1253 09 1254 11 1255 13 1256 15 1257 17 1258 19 1259 21 1260 65 1261 23 1262 69

1263 20 1264 10 1265 65 1266 24 1267 65 1268 24 1269 23 1270 15 1271 11 1272 65 1273 65 1274 90 1275 15 1276 00 1277 65 1278 69 1279 00 1280 69 1281 20 1282 65 1283 65 1284 15 1285 60 1286 65 1287 45 1288 20 1289 69 1290 30 1291 15 1292 69 1293 00 1294 60 1295 00 1297 14 1298 2» 1299 20 1300 19 1301 80 1302 80 1303 80 1304 80 1305 99 1306 24 1307 11 1308 00 1309 30 1310 44

1311 15 1312 69 1313 35 1314 11 1315 44 1316 35 1317 15 1318 24 1319 69 1320 65 1321 10 1322 44 1323 65 1324 20 1325 69 1326 30 1327 65

8008

0185 0590

0159 0186

0944

0000

0001

0808 0186

1555 0197

1359

0177

2225 0607

0609

0811

1013

1215 1417

1619

1821 2023

0515

0167

1315 0294

0320

0768

1660

0095 0186

0536

8001 1124

8003 0167

0978 0428

0888

1250

1032 0000

1333 0167

0153

1680

1344

8001 0158 0640

0185 0594

0004 0444

0595

0809

1348 1499

1022 1669 0179

9906

0008 0106

0209

0308

9908

0095 0610

0000

0004

0464

0564

0666

0001 0159

1321 0008

1019

0185 8003

0062 0186

1076 8002

0182 0179

0001 8002

0000

0938

8003 0664

0544

0042

1263 0999

0798 1294

0168

1100 1034 1334

2400

0600

0800

1000

1200

1400

1600

1800 2000 2200

1211 0971 1024

1247 0730

0611 0029

0127

1240 0704

1227 0929

0179

0177

0573

8002 0477

0706

0677

8002 0740

1121 1016 0690

1249

1292 0614

1042

1338

0661 0602

8002

1025 0998

1284

1499

1322 1280 0745

0690

0880

0680

0880

0980

0880

0648

0415

0090

1220 0514

8002 1024

1270 0716

1324

1040

1082 1290 0776

0967

1343 1026

0731

1286 0632

1083 0985

1359 0177

2225

2023

0167 0294

1660

0186

0536

1669 0179

C PRO I

N YES

J OS

J SEND

C LOOP

K 1250

K 1251

K 1252

K 1253

K 1254

K 1255

K 1256

K 1257

K 1258

K 1259

N DNB

J ST

J

J

K C7

1300

1301 1302 1303

1304

1305

J

N

C LR

N NGL

98 8008

20 P0009

1065 R0009

10 P0010

69

36 0000

30 0001

00 0808

24 P0010

69 A0201

69 ALOPT

24 A0005

20 P0001

0000

8003

2225 0607

0609

0811

1013

1215

1417 1619

1821

2023

23

07

07

09

1113

1517

1921

65 110TH

23 XXXX1

6920 XXXX2

10 50IXX

6524 G0001

65 E 24 P0010

23 EQUIV

15 8001

11 27TH

65 8003

65 XXXX1

90

1500

6569

00

6920 XXXX1

65 R0003

65 ZEROX

15 RSI

60 8001

65 R0008

45 XY

20 P0009

69

0888 1250 0000

30

156900 08 60 Al

00 14 14 21XXX

24 DRUMT

20 P0003

0004

9906

0008 0106

0209

0308

9908

24 OPTIM

11 QB 0000 0004

00

3044

1569

35 0001

11 R0009

44 NGL

35 0008

15 DDIFF

24 P0009

69 8003

65 OPREG

10 P0010

44

65 8002

20 P0006

69 EXITZ

30 0001

65 8002

2400 0600

0800

1000

1200 1400

1600

1800 2000

2200

SUB11

0029 O0010

EXITZ EXITX

10002

8002 00009

INDEX

6002 SUB

ALL SUBR7

8002 SUB2R

0690 0880

0680 0880

0980 0880

UM

8002 SUBR8

EVN PROD

=0009 STORE CORE ADDRESS FOR PUNCHING

MAKE RRINGING ORDER NUMERICAL I FIX C.I. SO THAT I WILL NOT PUNCH ) PROCESS L. IF REGIONAL OR SYMBOLIC

WE FOUND A CELL. SHIFT AND COUNT SHIFT RIGHT FOR CORE ADDEND

TAGS AND EXIT FOR SUBROUTINE 13 P0010 C.I. FOR AVAILABILITY TABLE ) TO RESTORE BEFORE END OF JOB SHOULD WE RESERVE

A0005 DUPLICATE INTO AVAILABILITY TABLE ) P0001 STORE LOCATION OF AVAILABILITY WORD

2225 TABLE TO OPTIMIZE SHIFT OPERATIONS

TABLE TO OPTIMIZE SHIFT OPERATIONS

TABLE TO OPTIMIZE SHIFT OPERATIONS

TABLE TO OPTIMIZE SHIFT OPERATIONS

TABLE TO OPTIMIZE SHIFT OPERATIONS

TABLE TO OPTIMIZE SHIFT OPERATIONS

TABLE TO OPTIMIZE SHIFT OPERATIONS

TABLE TO OPTIMIZE SHIFT OPERATIONS

TABLE TO OPTIMIZE SHIFT OPERATIONS

2023 TABLE TO OPTIMIZE SHIFT OPERATIONS

COUNT OF I TAGS IN LOWER

XXXX1 STORE LAST 4 DIGITS OF OPTIM

PROCESS L XXXX2 STORE THE COUNT ADVANCE IT USUAL CASEi I BLANK AND NOT D. G0001 STORE ADDRESS OF 0001 OF REGION

BRING VALUE OF I INTO LOWER

P0010 CONTROL INFORMATION ) EOUIV STORE EQUIVALENT

L-D ADDENDS TO LEFT END LOWER ) SUBTRACT 2000. TO DETERMINE RANGE

NEW DYNAMIC LEVEL INTO LOWER EQUIVALENT BACK TO LOWER AND EXIT

I . DRUM IS FULL

MAKE BRINGING ORDER

TAGS AND EXIT FOR USE IN SUBR 11 BRING SHIFT ADDENDS

INDEX I

TO SUBROUTINE

XXXX1 STORE ADDRESS ALPHABETICAL I CLEAR ACCUMULATOR

INITIAL WORD SHOWING LOCATION OF TABLE

PUT IT INTO UPPER NUMERICAL D

I. 8002-8003 + WRONG PARITY

P0009 STORE I FOR PUNCHING

STORE SYMBOL AND EQUIVALENT IN TABLE MAKE SHIFTING ORDER RESERVE ADDRESS

TAGS AND EXIT FOR SUBROUTINE 13 VARIABLE BRINGING ORDER INTO UPPER

TO MODIFY INDENTIFICATION AT END OF Li DIVIDE DYNAMIC LEVEL BY 2 DRUMT CHANGE DRUM TAG. DRUM CANNOT BE FULL. P0003 STORE LOCATION OF AVAILABILITY WORD TABLE TO OPTIMIZE INDEXING OPERATIONS

TABLE TO OPTIMIZE INDEXING OPERATIONS

TABLE TO OPTIMIZE INDEXING OPERATIONS

TABLE TO OPTIMIZE INDEXING OPERATIONS

TABLE TO OPTIMIZE INDEXING OPERATIONS

TABLE TO OPTIMIZE INDEXING OPERATIONS

OPTIM STORE OPTIMIZING ADDENDS AND TAGS MAKE DRUM AVAILABLE ) WHAT CELL DID WE RESERVE ) D. D TAG IS NON-ZERO

BRINGING ORDER PROCESS D L-D ADDENDS TO LEFT END LOWER ) SUBTRACT END OF AREA TO BE RESERVED

D. RELOCATED L IS EXCESSIVE

CLEAR ALL EXCEPT LAST CHARACTER )

' ADD DRUM RELOCATION AMOUNT

P0009 STORE LAST 4 DIGITS OF CONSTANT IN I CLEAR DISTRIBUTOR

WHICH ONE DO WE USE ) FIX C.I. SO THAT L WILL NOT PUNCH ) D. DYNAMIC LEVEL IS ODD. CLEAR UPPER

P0006 STORE L FOR PUNCHING

IF BACKWARD L. SUBTRACT TAG-COUNT ) FIX C.I. SO THAT D WILL NOT PUNCH ) ODD. SEPARATE LAST ADDEND.

1984

2218

1962 2284

2300

2532

1708 2056

2160 2554

2606

1712 2426 2560

310

312 314

316

318 320

322 324

326

328 1950

1970 2254

1710 2390 2200

2492

2338 2530

1494

1794

2050

1916

1408 2196

1840

2142 1824

2292 2024

2450 2034

2460

2428

2558

2088

2264

2008 2296

2354

2538

1726 2090

2222 2556

2612

1996

2448 2564

330

332

334

336

338 340

1966 974 2660

1744

1954

2042 2268

1792 2394

2256 2504

2370

2536

1552 1886 2260

1998 1430

2258

1906 2278

1896
1328 00 8000 0000 K 83RD 00 8000 0000

1329 70 0151 1102 N OUT 70 R0001

1330 65 0159 1066 65 R0009

1331 00 0001 1236 J 00 0001

1332 10 0158 0179 C BL 10 R0008 EXITZ

1333 69 0001 1075 J 69 SETCC SUB2U

133* 15 0695 1299 15 C3 • 1335 65 0292 1337 65 ORCEO MW

1336 20 0184 1238 018* 20 P0008 PR01 1337 15 0545 0335 C MW 15 COUNT SB10C

1338 60 0003 0057 c ALL 60 READC SB10A

1339 45 0644 0694 *5 ALL

1340 24 0183 0994 0183 2* P0007

13*1 10 0294 0649 10 XXXX2

13*2 00 0890 0418 J 00 0890 L0001

13*3 21 0186 1286 0186 21 P0010 PROD

13** 00 0000 0450 K RSI 00 0000 0450

13*5 45 0596 06*6 45 SDD

13*7 16 0536 1092 16 EOUIV

13*8 69 1355 0168 P Al 69 A0001 T0001

13*9 20 0185 0795 0185 20 P0009

1350 69 0154 1268 69 R0004

1351 66 0792 0935 N OK 66 IND P 1352 69 1555 0172 Q 69 A0201 T0005

1353 90 1008 1058 90 BB1 135* 60 1355 1088 600 60 A0001 TA

WHEN DONE, READ NEXT CARD NUMERICAL 1 INTO LOWER ADDEND AND EXIT FOR SUBROUTINE 18. NUMERICAL D INTO UPPER

TO UNRESERVING SUBROUTINE

MODIFY IDENTIFICATION OF WORD DYNAMIC LEVEL OF LAST CORE ADDRESS

P0008 STORE D FOR PUNCHING

CORE OR DRUM. ADD TAG-COUNT TO DYN LV PREPARE TO PUNCH AND READ NEXT CARD

If IT IS ANOTHER RBD CARD P0007 STORE FIRST 2 DIGITS IN OP POSITION

WHAT CELL DID WE RESERVE ) TAGS AND EXIT FOR USE IN SUBR 11 P0010 FIX C.I. SO THAT L WILL NOT PUNCH ) INITIAL IDENTIFICATION OF WORD

IF D IS BLANK> WE SHOULD STORE ZERO SUBTRACT THE ADDRESS IN QUESTION

INITIAL VARIABLE BRINGING ORDER

P0009 STORE LOCATION OF AVAILABILITY WORD CONTROL INFORMATION ) MAKE NEGATIVE, BUT DO NOT INTERCHANGE COMPARISON CONSTANT FOR END OF JOB

D, THERE WAS A BLANK BACKWARDS L

237*

2*00 2*64

2216 2*68

2452

2562 2106

2276

2108 2304

2406

2542

1754 2100

2262

2608 2622 201*

2600

2568

2528

1882 260*

1236

176*

1209 •

DEPARTMENT OF COMMERCE

Frederick H. Mueller, Secretary

NATIONAL BUREAU OF STANDARDS

A. V. Astin, Director

THE NATIONAL BUREAU OF STANDARDS

scope of activities of the National Bureau of Standards at its major laboratories in Washington D.C and

Boulder Colo., is suggested in the following listing of the divisions and sections engaged in technical work. In

general,' each section carries out specialized research, development, and engineering in the field indicated by its

Sic. A brief description of the activities, and of the resultant publications, appears on the inwde of the front cover.

SHINGTON, D.C. . ELECTRICITY. Resistance and Reactance. Electrochemistry. Electrical Instruments. Magnetic Measurements.

Dielectrics. . METROLOGY. Photometry and Colorimetry. Refractometry. Photographic Research. Length. Engineering

Metrology. Mass and Scale. Volumetry and Densimetry.

HEAT Temperature Physics. Heat Measurements. Cryogenic Physics. Rheology. Molecular Kinetics. Free

Radicals Research. Equation of State. Statistical Physics. Molecular Spectroscopy.

RADIATION PHYSICS. X-Ray. Radioactivity. Radiation Theory. High Energy Radiation. Radiological

Equipment Nucleonic Instrumentation. Neutron Physics.

CHEMISTRY Surface Chemistry. Organic Chemistry. Analytical Chemistry. Inorganic Chemistry. Electrodeposition. Molecular Structure and Properties of Gases. Physical Chemistry. Thermochemistry. Spectrochemistry. Pure Substances. MECHANICS. Sound. Pressure and Vacuum. Fluid Mechanics. Engineering Mechanics. Combustion Controls. ORGANIC AND FIBROUS MATERIALS. Rubber. Textiles. Paper. Leather. Testing and Specifications.

Polymer Structure. Plastics. Dental Research.

METALLURGY. Thermal Metallurgy. Chemical Metallurgy. Mechanical Metallurgy. Corrosion. Metal Physics.

MINERAL PRODUCTS. Engineering Ceramics. Glass. Refractories. Enameled Metals. Constitution and

Microstructure. . BUILDING RESEARCH. Structural Engineering. Fire Research. Mechanical Systems. Organic Building Materials Codes and Safety Standards. Heat Transfer. Inorganic Building Materials. APPLIED MATHEMATICS. Numerical Analysis. Computation. Statistical Engineering. Mathematical

PllVS'CS. DATA PROCESSING SYSTEMS. Components and Techniques. Digital Circuitry. Digital Systems. Analog

Systems. Applications Engineering.

ATOMIC PHYSICS. Spectroscopy. Radiometry. Mass Spectrometry. Solid State Physics. Electron Physics.

Atomic Physics. . INSTRUMENTATION. Engineering Electronics. Electron Devices. Electronic Instrumentation. Mechanical

Instruments. Basic Instrumentation.

Office of Weights and Measures. BOULDER, COLO.

CRYOGENIC ENGINEERING. Cryogenic Equipment. Cryogenic Processes. Properties of Materials. Gas

Liquefaction.

IONOSPHERE RESEARCH AND PROPAGATION. Low Frequency and Very Low Frequency Research, ionosphere Research. Prediction Services. Sun-Earth Relationships. Field Engineering. Radio Warning Services. RADIO PROPAGATION ENGINEERING. Data Reduction Instrumentation. Radio Noise. Tropospheric Measurements. Tropospheric Analysis. Propagation-Terrain Effects. Radio-Meteorology. Lower Atmosphere Physics.

RADIO STANDARDS High frequency Electrical Standards. Radio Broadcast Service. Radio and Microwave

Materials. Atomic Frequency and Time Standards. Electronic Calibration Center. Millimeter-Wave Research.

Microwave Circuit Standards.

RADIO SYSTEMS. High Frequency and Very High Frequency Research. Modulation Research. Antenna Research. Navigation Systems. Space Telecommunications.

UPPER ATMOSPHERE AND SPACE PHYSICS. Upper Atmosphere and Plasma Physics. Ionosphere and

Exosphere Scatter. Airglow and Aurora. Ionospheric Radio Astronomy.
NBS