PX1790_unicod Cmp Tec V1_Apr61 PX1790 Unicod V1 Apr61

PX1790_unicodCmpTecV1_Apr61 PX1790_unicodCmpTecV1_Apr61

User Manual: PX1790_unicodCmpTecV1_Apr61

Open the PDF directly: View PDF PDF.
Page Count: 577

DownloadPX1790_unicod Cmp Tec V1_Apr61 PX1790 Unicod V1 Apr61
Open PDF In BrowserView PDF
I~

UNIVAC

TECHNICAL
DOCU MENTATION
for

UNICODE

Automatic Programming System for
Univac Scientific 1103A and 1105

Volume I
April

I

1961

PX 1790
DIVISION
UNIVAC

OF SPERRY RAND CORPORATION
'ARK, ST, 'AUl 16, MINNESOTA

VOLUME I

Page
Table of Contents .
I.
II.

INTRODUCTION.

3

GENERAL
1.
2.
3.
4.
5.
6.

III.

I-v

UNICODE Service Routines. .
Library Routines. . • . • . .
UNICODE System Tape Package.
UNICODE Sample Coding . . . . • . . . .
UNICODE Card Input. . •
. • . . •
Statistical Miscellany. .
. .

7
49
123
153
163
185

TRANSLATION AND CORRECTION
1.
2.
3.

UNICODE Sentinel Blocks
Tape Merge. .
Translation Phase
a. Translation Subroutines
b. Trans lators .

. ..

.....

. 203
217
. 291
434

VOLUME II
Table of Contents . . • • • • . • • • • . . II-v
III.

TRANSLATION AND CORRECTION
3.

IV.

Translation Phase
b. Translators (cont.) • • • . • • • . 569

GENERATION PHASE
1.
2.
3.

Generation Set-up and Drum Loader . . . 949
Generation Subroutines.
• • 959
Generators . . . . • . . • • • . . . . . 1013

VOLUME III
Table of Contents . . . . . . . • . . . . III-v
IV.

GENERATION PHASE
3.

V.

Generators (cont.) . . . . . . . . . . . 1193

ALLOCATION PHASE
1.
2.
3.

Segmentor. . . . . . . . . .
Allocator . . . . . . . .
In i t ial ization Gene rator. .

1461
1551
1607

VI.

PROCESSING PHASE . . . .

1671

VII.

PROGRAM LISTING PHASE.

1747

VOLUME I
TABLE OF CONTENTS

Page

I.
II.

INTRODUCTION

.........................

3

GENERAL
1.

UNICODE SERVICE ROUTINES
A.

2.

Flex
(1)
(2)
(3)

to Excess-Three Routine
Flex to Excess-Three Flow Charts.
1105 Version . . . • . . . .
Changes for 1103A Version •

7

10
17

B.

Compilation Service Routines •••

18

C.

Object Program Service Routines
(1) Flex Code Print . . . • .
(2) Object Program Loaders.

33
35

LIBRARY ROUTINES
A.

UNICODE Librarian Symbolic Listing. . . • . . . . ••

B.

Permanent Library Routines
65
Write-Up. . . • • . • • • • • . . . . . • .
66
Permanent Library Catalog . • • • . . • • • .
Op File I for Permanent Library Routines • . • • . . 67
Region Definitions for Permanent Library Routines . 68
70
Flex Print Routine (50002) • • . • . . . . •
General Power Routine (50012) •••
72
75
Variable Exponent Routine (50022) •.
79
Natural Logarithm Routine (50031)
~
Exponential Routine (50041) . . • •
Square Root Routine (50051) . . . . • . .
85
88
Floating-Point Conversion & Print (50062) •.
"Inner" List Routine (50077)
92
Write-Up . . . . .
94
Flow Charts . . . .
98
Coding . . . . . . .
"Inner" Read Routine
. 102
Notes . . . • .
Flow Charts. .
. . 106
. 113
Coding . . . . . . . .

I-v

49

TABLE OF CONTENTS (cont.)

3.

VOLUME I

UNICODE SYSTEM TAPE PACKAGE
Introduction • • • • • • • • • •
Flow Charts for Five Routines
Regions for System Tape Package
System Tape Package (Parameters) • • • • • • • • • •
Produce Master Tape • • • • • •
Print Digit • • • • • • • • • • •
•• • •
Update System Tape or Reproduce System Tape
Dump System Tape on Servo 3
Compare System Tapes • • • • •
Regions for Read-Write.
Write Magnetic Tape
Read Tape N • • • • •
• • • •
Read Tape
• • • • . • • • •
Read One Block of Tape •
Print

·....

4.

UNICODE SAMPLE CODING
a.
b.
c.

5.

·..

Matrix Inversion by UNICODE • • • • • • •
Floating-Point to Fixed-Point Sub-Program
Linear Programming Application • • • • ••

153
155
156

UNICODE CARD INPUT
Notes
Flow Charts
Coding • • •

6.

123
128
131
132
133
133
135
136
137
139
140
145
147
148
149

163
169
172

STATISTICAL MISCELLANY
a.

b.
c.

Call Words of UNICODE
(1) Regular Call Words
(2 ) Supplementary Call Words and Associated Prelude
Entries •
(3) Use of Call Words to Reference Sub-program
Input List.
•
(4 ) Use of Call Words to Reference Argument List for
Functions •
Fixed Locations During Compilation •
Uniservo Usage.
(1) Five Uniservo Layout
(2 ) Seven Uniservo Layout.

············..
.·············
··· ···········..
· · · · · · · · · ·· · ·
.····
····
·
··
···· ·
I-vi

185
186
189
192
194
195
196
197

TABLE OF CONTENTS (cont.)

d.
e.
III.

VOLUME I

Corrections to UNICODE Manual (U-145l. Rev. 3) • • ••
Use of Second and Third Memory Cores in Object Program

198
199

TRANSLATION AND CORRECTION
1.

UNICODE SENTINEL BLOCKS
Write-Up • • • • • • • • • • • • • • •
Flow Chart • • • • • • • • • • • • • •
UNICODE System Tape Sentinel Blocks • • • •
Check LIB Tape (1103A and 1105) • • • • • • • • • • • •
Check Generation Tape Sentinel (1103A and 1105)
Check "UNICODE Program." Position #5 •
Read n Block s to Storage • • • • • • • • • • • •

2.

TAPE MERGE

.....

Write-Up •••
Flow Chart • • • •
Coding •••
3.

203
204
205
208
209
210
213

217
220
252

TRANSLATION PHASE
a.

Translation Subroutines
(1) Abbreviations Used

291

(2)

General Description •

292

(3)

Core During Translation •

293

(4)

Drum During Translation •

294

(5)

Error Texts of Translation Subroutines

295

(6)

List Formats
(a)

Combination List (CB)
1) Subscripted Variable
•
2) Pseudo Operation
3) Function •
4) Floating-Point or Fixed-Point Variable
5) Library Routine

· ··.
. . . ·· ·· ·· ·· ·· · ·· ·· ·· ··
·
······..····

1- vii

296
297
297
298
298

VOLUME I

TABLE OF CONTENTS (cont.)

(b)

(c)
(d)
(e)

Pseudo Operation Dummy List
1) Subscripted Variable. • • • • • • • ••
2) Function. • • • • • • • . • . • • • ••
3) Floating-Point or Fixed-Point Variable.
Translation List (WL). • . • • • . • • •
Referenced Sentence Numbers (12) • • • • ••
VARY (Variable) List (UL)
• • ••

(~...

"J\RV 1;'; 1

(g)
(h)

Rewind List of Referenced Tape Numbers (WR).
List of Second Sentence of Pseudo Operations

(i)
(j)

Constant Pool for Object Program (CL)
Key Words of UNICODE. • . • • • •

\.L ,/

v ru,l. ....

£'lo

.I..L.Lv

(TTl;''''
'VI.

~

•

•

•

•

•

•

•

•

•

•

(IN) • • • • • • • • • • • •

(7)

298
299
299
299
300
300
~()()
uvv

301
301
301
302

Descriptions of Translation Subroutines
(a)
(b)
(c)
(d)
(e)

(f)
(g)
(h)

(i)
(j )
(k)
(1)
(m)
(n)
(0)

(p)
(q)

(r)
(s)
(t)
(u)
(v)

(w)
(x)
(y)
(z)

Translation Control • . • • • • •
Get Next Sentence (GS)
Get Next Character (GN)
Get Next Symbol (SY) . • • • •
Get Rest of Lower Symbol (RL) ••
Get Rest of Superscript Symbol (RU)
Build Symbol (BS) • • • • • • •
Fill Symbol (FS) • • • • • • •
Delete Spaces (DS) • • • • • •
• •
Send File Back to Combination List (TO)
Add Fi Ie to CB Li st (TC) • • • • •
Get File from CB List (TA) • • • •
Get Call Word from Pseudo Operation Dummy
List (TS) • • • • • • . • • • • • • • • •
Send Call Word to Translation List (EW)
Increase 66XXX, 65XXX, 64XXX Call Word
Counter (TK) • • . • • • • . . • • • .
Increase Sentence Call Word Counter for 26XXX,
27XXX, or 22XXX Type Call Words (XJ) •
Print Error Heading (WA) . • • . •
Error Routine (U2) . . . • . • . • .
Check Floating-Point Constant (RB) • • • ••
Check Fixed-Point Constant (RD). • • • • ••
Print Text (UP) • • • • • • • • •
Put Call Word in List of Referenced Sentence
Numbers • • • • • • • • ••
•••••
Translation Set-Up Subroutines (OT and UB).
Write Translation List on Tape (WT or SS)..
Put Referenced Sentence Number in List 12 (IX)
Excess-Three Decimal to Octal Routine (RS).

I-viii

302
303
303
304
305
305
306
306
306
306
306
306
306
307
307
307
307
307
308
308
308
309
309
310
310
310

TABLE OF CONTENTS

(con~)

(aa)
(ab)
(ac)
(ad)

VOLUME I

Excess-Three Decimal to Floating Point (GG).
Assign Constant Call Word (GW) •
Tape Handlers (TH or GT) ••
Line Number Processor (LN) •

(8)

Region Assignments of Translation Subroutines

(9)

Flow Charts of Translation Subroutines

(ac)

Set-Up Translation Phase •
Translation Control (CT) •
Get Next Sentence (GS) •
• • • • •
Get Next Character (GN) • • • •
Get Next Symbol (SY) • • • • • • • • • •
Get Rest of Lower Symbol (RL) • • • .
Get Rest of Superscript Symbol (RU) •••
Build Symbol (BS) • • . . . • • .
Fill Symbol (FS) • • • • • • •
Delete Spaces (OS) • . • • ••
Send File Back to Combination List.
Add File to CB List (TE) • . . . •
Get File from CB List (TA) • • . . •
Get Call Word from Pseudo Ope Dummy List ••
Send Call Word to Translation List •••
Increase 66XXX, 65XXX, 64XXX Call Word
Counter (TK) • • • • • • • • • • • • •
Increase 26XXX, 27XXX, 22XXX Sentence CW
Counter (XJ) • • • • • • •
• • • • •
Print Error Heading (WA) . .
Error Routine (U2) • • • • • • • • •
Check Floating-Point Constant (RB) •
Check Fixed-Point Constant (RD) ••
Check Variable Type Symbol (RH)
Print Text (UP) •• • • • • • • • • • • • •
Put Call Word in Sentence Number Ref. List (RS)
Rewind All Tapes (RW) • • • • •
• ••.
Tape Handlers (TH) 1105 and 1103A • • • • •
Routine to Set TN Indicator for 5 or 7 (MJI)
Uniservos (OT) • • • • • • • . • • • • • •
Setup Translation Output Tape and Routine WT
or SS (UB) • • • • • • • • • • . • • •
Put Referenced Sentence Number into List 12

(ad)
(ae)

Excess-Three Decimal to Octal . • • •
Excess-Three Decimal to Floating Point (GG).

(a)
(b)
(c)
(d)
(e)
(f)
(g)
(h)
(i)

(j )
(k)
(1)
(m)
(n)
(0)
(p)

(q)

(r)
(s)
(t)

(u)
(v)

(w)
(x)
(y)

(z)
(aa)

(ab)

(IX) . • • • . . . • . . • • . . . •

I-ix

311
312
313
314
318

321
322
324
325
326
327
327
328
328
328
329
329
330
330
331
332
333
334
335
336
336
337
338
339
339
340
341
342
344
345
346

TABLE OF CONTENTS (cont.)

(af)
(ag)
(ah)
(10)

VOLUME I

······
····
····

Assign Constant Call Word (GW) •
Close VARY File (VE) •
Line Number Processor

347
348
349

Coding of Translation Subroutines
(a)
(b)
(c)
(d)

(e)
(f)
(g)
(h)
(i)
(j)
(k)
(1)
(m)
(n)
(0 )

(p)
(q)

(r)
(s)
(t)
(u)
(v)
(w)
(x)
(y)
(z)

(aa)
(ab)
(ac)
(ad)
(ae)
(af)
(ag)
(ah)
(ai)
(aj)
(ak)
(al)

· · · ··
····
···
········

Setup Translation Phase
Translation Control
Switch to Translator List
Get Next Sentence
Get Next Character •
Get Next Symbol
Bui ld Symbol •
Fill Symbol
Delete Spaces
Constants
Send File Back to CB List
Add File to CB List
Get File from CB List
Get CW from Dummy Pseudo Operation List
Call Word to Translation List
Increase 66, 65, 64 Call Word Counter.
Increase Sentence CW Counter (Output-A or VB4)
26, 27, 22 •
Print Error Heading
Error Routine
Check Floating Point Constant
Check Fixed Point Constant
Check Variable Type Symbol •
Constants
Print Text •
Sentence CW to Reference List IZ •
Rewind All Tapes .
1105 Tape Handler Regions
1105 Tape Handler
Regions for 1103A Tape Handler •
1103A Tape Handler •
Error Prints of Translation Subroutines
Set TN for 5 or 7 Uniservos
Setup Translation Output Tape
Write Translation List on Tape
Put Referenced Sentence Number in List IZ
Excess-Three Decimal to Octal
Excess-Three Decimal to Floating Point
Assign Constant Call Word.

········
·····
····
····
·········

·

.·

···

· · · ·· ·· ·· ·· ·· ·· · · ·

············
····
.······ ··
··········
··········
········
··· ·· ····
······
· ····
·····
·
····
·······
I-x

350
355
358
360
362
364
367
368
368
369
371
371
372
374
376
376
377
378
379
380
381
382
382
383
385
385
386
387
396
397
406
414
414
415
416
417
418
422

VOLUME I

TABLE OF CONTENTS (cont.)

(am)
(an)
(ao)
b.

Close VARY File Item and Variable List File
Item • • • • • • • • • • •
Flex Codes for Print Text
Line Number Processor ••

Translators

•

423
426
428
434

DIMENSION String-Out No. 1
Write-Up
.•••
Flow Charts • • • • • • •
Coding • . • • . • • • •
DIMENSION No. 2 Translator
Write-Up ••
Flow Chart s •
Coding
• • • •
COMPUTE String-out
Write-Up • • • • • • •
Flow Chart s •
• • • • •
Coding
• • • •
READ String-Out
Flow Chart • • • •
Coding • • • • • • • •

435
437
443

····

450
451
454

.····

458
460
467

····
·· · · ·
···

502
503

TYPE String-Out
Write-Up •
Flow Charts
Coding

507
509
514

LIST String-Out
Note s . . • . • • . .
Flow Charts • • . . • •

538
542

I-xi

I. INTRODUCTION

I.

INTRODUCTION

This collection of notes, flow charts and annotated coding has been
gathered together to form a documentation of UNICODE, the automatic programming system for Univac Scientific computers 1103A and 1105.

The material

supplements that contained in the UNICODE Manual (U-145l, Rev. 3).

It is

not needed to operate the UNICODE System but it would be useful to anyone
desiring to modify the System.
Following the flow charts and annotated coding of UNICODE Service Routines which are given in the General section. the coding of the Librarian
is given in Use Compiler form. The use of the Librarian to build up an
Installation Library is explained in Chapter 11 of the UNICODE Manual. More
complete coverage is given here to the Permanent Library Routines described
in the same chapter.
The notes on the System Tape Package explain the use of this bioctal
tape in updating or changing the UNICODE Master Tape. Flow charts and annotated coding of Routines 1-5 are also presented.
UNICODE coding samples given in Section II are a matrix inversion program.
a system of converting floating-point numbers to fixed-point, and a linear
programming application.
Use of UNICODE with card input is also discussed in the General section.
Flow charts and coding are given for a routine which will convert a card-totape converted tape to a UNICODE input tape.

The latter routine may readily

be added to the UNICODE System.
A page of corrections to the UNICODE Manual is included in a miscellaneous
statistical section.

How the compiler can be altered to produce two- and

three-core Object Programs is also explained at the end of the General section.
The remainder of this manual contains notes and flow charts, when available, and the annotated coding of the routines used for compilation from
the beginning processes of correction and translation to the final listing,
by sentence, of the Object Program produced.

3

D. GENERAL
1. UNICODE SERVICE ROUTINES

A.

Flex to Excess-Three Routine

Flow Charts for Flex to Excess-Three Routine

Bootstrap
Program to
Core

Next Frame
to A

Stop
Reader

Initialize Test Parameters,
Set Counters,
Set Addresses,
Etc.

Tape Feed
(00) or
Delete (77)

Load ~ Symbols
into Digit
Hopper and
Block Image

Store Frame in
Next Available
Storage
Location

Read Extra
Frame to
Stora e

Tape Feed
(00) or
(77) ?

Adjust
Storage
Address

No
Stop (43)?

Start Reader
(Free Run)

Store in
FIRST Location

Next Frame
to A from
Stora e

1

Flow Charts for Flex to Excess-Three Routine (Cont.)

Print "Alarm"
and Line No.

Select Upper or Lower
Case List for Subsequent Character
Translations
co

Translate
Character
t E

Store Word
into Next
Word of
Block Image

Store in
Digit
Ho er

Load Digit
Hopper with
al16 symbols

Assemble the Six
Excess-3 Digits in
the Hopper into one
Word

Write One
Block onto
Tape

Load Block
Image with
all D. symbols

s:XV

Flow Charts for Flex to Excess-Three Routine (Cont.)

Advance
Line
Counter

Wri te One
Block
Ta e

Unload Digit Hopper
into Partially Filled
Block Image

Load Block
Image with
a 11 ~ S ymb 0 1s

!\ssemble Digit
and load into
lock Image

Is MJI
On?

Adjust Block Image
Address to First
Word of Next Line

Rewind the
Tape

Is the Block
Image Empty
?

Restore
Parameters

Wri te a
Block onto
Ta e

Flex to Excess-Three Routine
Regions
RE
RE
RE
RE
RE
RE
RE
HE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE

BS76300
FC76303
INI
RD42
CD56
ERl02
CS132
WD141
WB156
LC165
UC172
CR177
EX206
MS223
FA255
EA301
FB325
EB400
WS453
S0464
B1472
SF662

10

Flex to Excess-Three Routine (1105 Version)

0
1
2

IN

RO

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
0
1
2
3

4
5
6
7

IA
TP
RP
TP
CA
IA
LT
TP
TP
SP
ZJ
TJ
PR
SP
SA
TP
MS
MJ
MJ
SP
TP
QS
QS
LQ
SP
TJ
TJ
MJ
QS
QS
TP
SP
QS
SP
QS
RP
TP
RP
TP
EF
ER
RJ
EJ
EJ
TP
EJ
RA

BS
FC14
30454
FC
BS3
FC
0
A
Q
WS3
INS
EA6.
0
WS2
WS3
WS4
0
0
0
A
MS5
A
A
MS6
WS4
MS7
Q
0
A
A
MS6
WS4
A
WS4
A
10006
EA23
10170
MS10
0
0
R02
EA10
MS13
A
EA
RD5

~NIN }
WS2
WS3
WS4
0
IN6
IN15
FB32
44
0
Q
IN13
IN
IN
14
Q
MS3
MS4
Q3
30

IN6
IN26
IN6
MS3
MS4
Q
33
MS2
32
WB
1N37
SO
RO
BI
MS
A
R01
R01
R01
SF
ROll
EA23

}

Bootstrap routine to core

Store A
Store Q
(AR)~A

If = 0--.a1arm
If not too 1arge---.IN15
"ptt

}

Restore A & Q

}

Stop
Recycle
Not used
Position Uniservo No. in A
Mask--+Q
Uniservo No. ---+ ef words for writing
and rewinding
TCU mask--+Q
TCU No. ~A
If i11ega1~IN6
I f OK ----+ IN26

j
}
}

TCU No.~ef word for writing, and rewinding
Buffer No. mask~Q
Buffer No.---+A
Buffer No. ef word to "write buffer"
Buffer No.---.A to mod MJ4 command
Modify MJ4 command
Load the digit hopper with
all (00 l)'s
Load the block image with
all l1 t S
Start reader
Frame~A

}

Discard 1st frame
Ignores (00 & 77)
Store frame in image
If stop, ----. ROll
Advance storage address of frame

11

10
11
12
13
CD

CD12

NiSll

CD3
7777
EAI0
MS13

CD12

EJ

EA

10
11
12

TP
RA
MJ
SP

A
RDS
0

EX
SF
EA23
RD

30000

o

13

EJ

EAll

LC

14
IS
16
17
20
21
22
23

EJ
MJ
RJ
EJ
EJ
RP
EJ
EJ
PR
PR
SP
PR
5S
ZJ
TP
TP
TV
TP
DV
TP
RS
IJ
TP
TV
SP
AT

EB23

VC

0

ER
COl
CR
WD
CD23 }
CSI
EX
EA11
EB2S

o
1

2
3
4
5
6
7

ER

o
1

2
3
4
S

6
7

10
11
12
13
14
IS
16
17
20
21
22
23
24
2S
26
27
CS

o
1

2
3

o

RA
IJ
MS
MJ
MJ
TP
SP
ST
AT

M514
0

If not next to last, recycle
Stop reader
Last frame ~7777
Start of image -+RDS
Starting address---.CD12
Advance by One
Test &-. C012
Last frame ~A

TJ
EF
ER
TV
TU
RA
TJ
SP
EJ
EJ

0

CD7
M520

CDlS
EB2S
EB21
40000
30000
EA
0
0
MS17

RDI
MSI
7777
ROS
C012

o
RD
RD

}

ER3
WS
EBS
MS31

~CSI

If a
"lc"
"cr"

stop,~

EX; if i 11egal.,.---+ ER

1:6 }
Q

W5S
ER13

Q

A

EB4Z

Q

A
30000
EA23
ER13
ERII
WSS
EBS
WSS
MS31
ER20
30000 o
ER22
MS12
0

Stop
Store in 1st location
Advance address
Return for another block
Frame--+ A
If shift down~LC
If shift up ----+ UC
To ER if not a shift on 1st frame
Clear the v address of CD14
If carriage return--+ CR
If tab ---.WD
If a digit, character, or symbol,

"Error spIt

0

A

Ignores

o

MSII
ER20
WSS
ER26
0
30000 EX6
COl
0
30000 SO
17
Q
30000 A
CS4
CS

Last 3 decimal digits of line
No.---.storage Cline No. = 1 + No.
of cr executed so far)

Print last three decimal digits
of line No.

ER20

Stop
If MJ3 is on---+exit
If not, ignore the error
Dummy
j, n-r-+CAR)u
Subtract j,n, leaving -r
Add to dummy instr. & store

12

WD

400

o

S
6

RA CS
IJ WSI

EA23
CDI

o

SP
RP
SA
SA
TP
RP
TP
TV
TP
RA
RJ
TJ
TV

SD
20004
SDI
SDS
A
10006
EA23
WD6
FB22
WD4
WD12
MSlS
WB6

i

MJ
EF
RP
EW
EF
RP
TP
TU
TU
TU
TU
MJ
TU
TU
TU
TU
MJ
RA
RJ
TP
AT
TJ
TP
MJ
SP
EJ
RJ
SP
EJ
RJ
MJ
MJ
EF

40000
0
10170
10000
0
10170
MSIO
MS21
MS22
MS23
MS24
0
MS2S
MS26
MS27
MS30
0
WS
WD12
MS16
FB3S
WD4
A
0
WSI
FB22
WD12
WD4
MS16
WBS
10000
0
0

WB

1

2
3
4

S

6
7

10
11

12
13
14
WB

o
1
2

3
4
S

6

LC

o
1
2

3
4

UC

o
1
2

3
4

CR

o
1
2

3
4
S
6

EX

o

1
2
3
4

5
6
7

10

Execute the storage of excess-three
symbol
Advance storage address
Recycle until digit hopper is full;
when full~WD
Form word in AR

D3
}

BI
WD7 }
SD
CS
WSI
EA23
WD13
CDI
WD4
MS2

WB4}

BI
MS3
CDl·}
BI

Store in block image
6-+ digi t hopper
Start at top of digit hopper (in CS)
Reset index counter
Advance block image add
On shut
If not at end of block, recycle
Restore v of WD4 to start a new block
WRITING A BLOCK
Test buffer activity
ef for ··wri te buffer"
Load buffer from image
ef for 1twri te one block"
Load image with all /:1·s and exit to CDI

CD21}
CD22
CS
CS2
CD16

Arrange to take lower case lists
(FB and EB)

CD21}
CD22
CS
CS2
CD16
EA23
WD

Arrange to select upper case lists
(FA and EA)

A

~R3

}

WD4
WD13

o

EX3
WD

o

EX6
WB

EXIO}
EXll
MS4

Advance counter
Store one word and advance storage
Initial word~A
TP A BI
Add No. of words in a line until
word 4 is no longer>
Store in WD4
Check for end of block
Index for hopper
If empty -+EX3
If not, dump into block image
Command to store next word into BI
If block image is empty~EX6
If not, dump the block
If MJl is on, rewind without
interlock

13

MS

FA

EA

11
12
13
14
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
0
1

TP
SP
SA
MS
10
10
0
0
0
0
0
1
1
0
PR
0
TP
TP
TP
20
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

WS4
WS2
WS3
0
2
1
0
646
200
1
30000
0
1010
1
0
0
A
A
A
12120
BI167
20053
FB
EB53
MS21
20024
FA
EA24
MS25
WS6
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

~4}
BS

0
0
400
0
0
70000
0
0
10101
0
FA1
77
7777
BI170
BI
31204
0
0
0
0
0
0
0
0
0
WS10
4
37
52
74
70
64
62
66
72
60
33
56
44
22
54
27
13
11
46
42
43
17

}
}

Restore Q and A
Stop on entry
(EF) Start reader
(EF) Stop reader
(EF) Write buffer
(EF) Write one block
(EF) Rewind w/o interlock
Uniservo No. mask
TCU and Buffer mask
Min TeU No. (for tj)
All II
u advance
Print 0 (start of 10 dec. digits)
Ignore
For tj
For tj
For the CR routine & the EX routine
"error t1 ••
sf (-1) = BI 167
For I£ routine

For UC routine
For ER routine
UPPER CASE LIST
space
0
1
2
3
4
5
6
7
8
9
D ( I)

/

X (*)
G ( »

L (< )
(
)
)
(

14

FB

2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

37
16
56
64
15
62
0
57
36
75
55
35
41
20
40
61
60
01
04

37
52
74
70
64
62
66
72
60
33
30
23
16
22
20
26
13
05
14
32
36

11
07
06
03
15
35
12
24
01
34
17
31

<
>

*
/

/

9
8

7
6
5
4
3
2
1
0

Superscripts

~

II
0
1
2
3
4
5
6
7
8
9

a
b

c
d

e
f

g
h
i
j
k

1
m
n
0

P
q
r

s
t

u
v

w

15

Lower case list

Regular

EB

WS

42
43
44
45
46
47
50
51
52
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
0
1

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
CA

0
0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0

0
0
0
0
0
0
0
0
0
0
0
0
0
FC454

27
25
21
56
44
54
46
42
50
42
22

x
Y

z

(lc)

=

+

,

21

,

63
76
02
74
73

+

=

z

y

72

x

71
70
67
66

w

65
54
53
52
51
50
47
46
45

44
34

33
32
31
30
27
26
25
24
14
13
12
11
10
07
06
05
04
03
01
1
5

( lc)
(abs mag)

v

u
t
s
r
q

P
0

n
m
1
k

j
i
h

g
f
e
d
c
b
a
9
8
7
6
5
4
3
2
1

0
A

Line counter
IJ counter for symbols/wd

16

Changes in Flex to Excess-Three Routine
To Produce the 1103A Version

IN33

WB

0
1
2

3
4
5
6

IA
MJ
CA

FC33
0
FC34

IN35

Bypasses setting of MJ4

IA
EF
RP
EW
0
0
RP
TP
CA

FC155
0
10170
10000
0
0
10170
MSIO
FC164

MS3
WB5
BI
0
0
COl
BI

Write one block
1708 extern al writes

}

}
}

Unused area
Load image with all Il 's

17

B.

Compilation Service Routines

This group of routines is used to start compilation and to act as a gobetween for the different phases of Unicode. To begin a new compilation, set
PAK = 77000 and start. In order to continue compilation from allocation on,
set PAK = 77004 and start.
The various phases of Unicode exit to 77010 to read in the next phase
and continue compilation.
Among the routines is a read routine and a print routine. The read
routine reads one block of tape number 1. The parameter is sent to BB2 and an
RJ BB BBI is executed. The parameter has the form:
Op

o

u
N

v
(address)

where N (~1708 ) is the number of words to store and the address is the location of the first word. Words are stored in ascending order. This routine
will reread a block six times in case of parity or sprocket errors and give
an error print-out if all six attempts to read fail.
The print routine prints stored flex codes according to the parameter in
PC2. The parameter has the form:
Op

o

u
(address)

v
N

where N is the number of words of codes to print and the address is the location of the first word. Successive words are picked up in ascending order.
With a start at either 77000 or 77004 the first block of tape 1 is read
and the sentinel (in words 3 to 6) is checked. The first six words on the
system tape are as follows:
read into

7230
7231
7232
7233
7234
7235

Op
MJ
MJ
67
30
30
30

u
0
0
50342
77657
47776
77777

v
7236
7243
65127
36566
62452
77777

18

for 77000 start
for 77004 start
U N I C 0 D
E 77 S y S T
E M 77 T A P
E 77 77 77 77 77

If words 3 to 6 are not as above, tape 1 is rewound and the following print-out
occurs on the typewriter:
MOUNT UNICODE SYSTEM TAPE ON
SERVO 1. ST ART.
and the machine stops with PAK

= 77000.

If the sentinel is correct the service routine jumps to
7230 in case of a 77000 start.
7231 in case of a 77004 start.
A jump to 77010 merely reads one block of Uniservo 1 into 7230-7417 and
jumps to 7230.
In the sentinel checking region the read and the print routines are bootstrapped from drum to core before operating. The read and print routines are
used by the coding in the first two blocks of the system tape and the two
blocks of the Set-up Translation phase.

The tape handler (TH) and the print

text (UP) routines are not in the core at these times.

19

Compilation Service Routine (ZA)

77000 or
77004

77004

Subs to
Core

Restart

Rewind
#1

Subs to
Core

Read Subroutine (BB)

Set Up
Address

Set Up
# Words

Read Block up to
Six Times if
~----~
Parity Error

6 Pari ty
Errors?

Yes

Restart

Print Subroutine (PC)

Set Up
Address

Set Index

Print
Character

res
No

Regional Assignments for Compilation Service Routine
(Both 1103A and 1105)

Drum

Core

ZA77000
CA77014
ZB77054 ---------------~~
B077102
~
P077173
~

YC7070
BB7116
PC7207
ZZ7230

Unicode Compilation Service Routines (1105)

1st entrance

0
1
2
3

Entrance after
stop
4
5
6

7
Merge &
others

10
11
12
13

IA
TP
RJ
RJ
MJ

ZA
ZA3
ZA12
YC
0

0
ZA12
YCI
ZZ

Set up zero
Subs & 1st dri ver --+core
--.lst dri ver
~lst entrance of buffer

TP
RJ
RJ
MJ

ZA3
ZA12
YC
0

0
ZA12
YCI
ZZI

Set up zero
Subs & 1st driver--.core
---+lst driver
~2nd entrance of buffer

RJ
MJ
RP
TP
CA

ZA12
0
30140
ZB

Subs~eore
ZA12
2nd driver--+ core~2nd driver
YC23
(30000)}0 .
YC
rIvers & subs---+core

ZA14

22

Constants (1105)
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

IA CA
0
170
67 50342
30 77657
30 47776
30 77777
0
0
0
0
1
0
CA15
0
CA27
0
77777
0
2
200
200
1
47 12203
20 12120
46 15301
25 04031
15 12031
01 42574
04 24013
04 26031
20 12203
57 42040
47 07033
04 34061
22 20042
01 20070
15 20040
24 20121
57 52420
24 01301
42 04040
CA CA40

ZZ
65127
36566
62452
77777
77777
1
0
12 }
11
0
10000
10000
02204
31204
21401
20424
63620
24704
01201
20412
02224
40404
40601
41603
42524
40130
30604
70304
40447
20157
40404

I C
77 S y
M 77 T
77 77 77
V mask

V
E
E
E

N

0
S
A
77

0
T
P
77

Print parameter

u mask
Rewind #1 TCU2
Rewi nd #1 TC VI
R E A o
E R R 0 R
(
P A R I
Y II 0 R II
P R 0 C K
T ) ~
II S T A R
II F 0 R II
E R E A 0
A II II
~
M
0 U N
t
II U N I C
0 E II S Y
T E M II T
P E II 0 N
S E R V 0
II II
~ 1
S T A R T
II II II II

t

. t

.

.

.

23

II
II
T
S
E
II
T
R
S
II
T
0
S
A
II
II

t

t

II

1st & 2nd Drivers (1105)

YC

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25

IA
MJ
TP
RJ
RP
CC
SP
RP
SA
ZJ
MJ
EF
MJ
EF
TP
RJ
TV
RS
MS
0
TP
RJ
MJ
CA

ZB
0
CA
BB
30004
11)'2
ZZ2
20003
ZZ3
YCII
20000
0
0
0
CAll
PC
YC
YC21
0
0
CA
BB
0
ZB26

(30000)
BB2 }
BBI

Exit
Read 1st blk.

YC5 }
CAl

~CIO

Check Sentinel

YC
YC14
CA14
YC15
CA13
PC2 }
PCl
YC21 }
YC22
(30000)

O.K.---+exit; no~
TC U2 ----. YC 14: reUI.
Rewind #1 TCU1

3

BB2
BBl
ZZ

}

Rewind #1 TCU2
MOUNT UNICODE ON TAPE #1
Set address
Stop while tape changed
Constant
2nd driver
----. blk.

24

Read One Block of Tape #1 (1105)
Parameter Format
Op
00

BB

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
41
50
51
52

IA
MJ
MJ
0
TP
MJ
TP
RP
QS
TP
RP
QS
EF
EF
TV
TP
QS
QT
TP
ST
AT
RJ
ER
ZJ
EF
RJ
ER
ZJ
EF
RJ
ER
ZJ
EF
TP
RJ
MS
EF
MJ
2
2
2
2
2
0

BO
0
0
(30000)
B856
20000
B860
10005
8867
8B57
10005
BB70
0
0

BB2
BB53
BB2
BB2
BB54
Q
BB55
BB65
0
BB27
0
BB65
0
BB3-3
0
BB65
0
BB37
0
CAI0
PC
0
0

0
6<12
14
1
1
1
20000

(30000)
BB3
(30000)
Q
8810
8852
8813 }
8B45
B852
B813 }
BB45
BB51
BB52
8B64
Q
BB63
Q
A
A
BB65
BB62
A

BB43
BB50
BB61
A

BB43
BB47
BB61
A

BB43
8B46
PC2 }
PCl
BB24
BB51
BB
10000
10001
70000
60000
50000
04000

u

(No. words S 1708 ).

Exit
Start
Par. = 0 n address
Mask-+Q
TCDI +; TCU2--.B810
Set bypass #1
Set TCDI
Set bypass #2
Set TCU2
Set normal bias
Bypass #1 or #2
Set address
Mask--+Q
n of repeat
n~Q

1708-+Au
1708 - n-+Au
1708 - n-+RP inst.
Read block
IOA-+A
Parity lo; no~
Set high
Reread
IOA---+A
Parity +
Set low
Reread
IOA-+A
Parity +; no--+
Move back one b1k.
Print PARITY ERROR
Stop for re read
Set normal
Exit
Read one block & stop
Move bwd one blk.
Low gain
High gain
Normal gain
Set bypass

25

v
address

53
54
55
56
57
60
61
62
63
64
65
66
67
70

0
RP
7
0

07777
170
0
0
20000

0
0
(30000)
0
04000

0

10000

04000

0

EF
EF
RP
ER
0
ER
1
2

0
0
1(0000)
10000
0
10000
0
0
CA BD71

8846
B845
BB65 }
(30000)
0
A

Mask
12010
Set up RP
Mask
Bypass #2
Bypass #i
Move bwd. one block
Read one b1k & stop
Read to core
RP 0 eXit} throw
away

0
0

26

read sub.

Print (1105)

PC

0
1
2
3
4
5
6
1
10
11
12
13
14
15
16
11
20

IA
MJ
MJ
0
TP
QT
ST

PD
0
0
(30000)
PC2
CAS
CA6
TV PC2
SP ( 300(0)
PR o
S5 A
ZJ PCI0
RA PC1
IJ PC20
MJ 0
RP 4
PR 0
0 0
CA PD21

(30000)
PC16
0

Q
A45 }
PC20
PC1
52

A
6
PC13
CA1
PC1
PC
PC3
PC4
0

Exit
Start
Par. = 0 address n
Set index
Set address

}

Print one word
Set for next word
Finished
no ~ PC1
Exit
Four carriage returns
Index

+;

}

21

Unicode Compilation Service Routines (1103A)

1st
entrance 0
1
2
3
Entrance
after
stop
4
5

6
7
Merge
and
others

10
11
12
13

IA

ZA

TP

ZA3
ZA12
YC
0

0
ZA12
YC1
ZZ

Set up zero
Subs and 1st dri ver --!It> core
~ 1st driver
~ 1st entrance of buffer

0
ZA12
YC1

MJ

ZA3
ZA12
YC
0

Set up zero
Subs and 1st dri ver -+ core
---+ 1st dri ver
---+2nd entrance of buffer

RJ
MJ
RP

ZA12
0
30140

TP

ZB

ZA12
YC20
(30000)}
YC

CA

ZA14

RJ
RJ

MJ
TP
RJ
RJ

ZZI

Subs -+core
2nd driver --+core ---+ 2nd driver
Dri ver & subs --+ core

28

Constants (1103A)

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34

IA
0
67
30
30
30
0
0
0
0
0

0
47
20
46
25
04
04
20
57
47
04

22
01
15
24
57
24
42
2
CA

CA
170
50342
77657
47776
77777
0
0
1
CA13
CA23
77777
12203
12120
15301
42574
24013
26031
12203
42040
07033
34061
20042
20070
20040
20121
52420
01301
04040
200
CA35

ZZ
65127
36566
62452
77777
77777
1
0
10 }
11
0
02204
31204
21401
24704
01201
20412
02224
40404
40601
41603
42524
40130
30604
70304
40447
20157
40404
10000

ZZ probe =
UN I C
E 77 S y
E M 77 T
E 77 77 77
V mask

7230
0 D
S T
A P
77 77

Pr.int parameters
u mask
l' R E A D A
E R R 0 R A
(
P A R I T
y

)

t

.

t

A

A A

A

S T A R T
F 0 R A R
E R E A D S

A
A

t

+

A
D

T
P
S

t

S

.

.

A

0 U N
U N I C
E A S y
E M A T
E A 0 N
E R V o
A A
1
T A R T
M

.

A A

A

T
0
S
A
A
A

+
-¥

A A

Rewind Uniservo 1

29

FLEX
COlES

1st and 2nd Drivers (1103A)

YC

0
I
2
3
4
5
6
7
10
II
12
13
14
15
16
17
20
21
22

IA
MJ
TP
RJ
RP
CC
SP
RP
SA
ZJ
EF
TP
RJ
TV
RS
MS
0
TP
RJ
MJ
CA

ZB
0
CA
BB
30004
ZZ2
ZZ2
20003
ZZ3
YCII
0
CAll
PC
YC
YC16
0
0
CA
BB

0
ZB23

(30000)
BB2 }
BBI
YC5 }
CAl

~CIO
YC
CA34
PC2 "\
PCl J
YC16
YC17
(30000)
3
BB2
BBI
ZZ

}

Exit
Read 1st blk
Check Sentinel
O. K.--+ exi t;
no ~
Rewind tape #1
UNICODE NOT ON TAPE #1
Exi t - 3
Stop while tapes changed
Constant
2nd driver
~blk

30

Read One Block of Tape Ul (1103A)
Parameter Format
Op
u
00
(No. words ~ 1708)
TP (par) BB2
RJ BB
BBI

BB

1

IA
MJ
MJ

2
3

o

BO
0
0
30000

MJ

0

TV

BB2

o

4
5
6
7

10
11

12
13
14
15
16
17
20
21
22

23
24
25
26
27
30
31
32
33

34
35
36
37
40
41
42
43
44
45
46
47
50
51

Q

2

602

2
2
2

14
1

2

1

10000
10001
70000
60000
50000

o
o

1

07777
170
RP 0
EF 0
EF 0
RP Ie 0000)
ER 10000
o 0
ER 10000
CA B052

Exit
Start
Par.
Set normal bias
Set address
Mas k ---+ Q
n of RP
n ---+ Q

(30000)
BB3
30000
BB4
BB47

TP BB41
QS BB2
QT BB2
TP BB42
ST Q
AT BB43
R.J BB50
ER 0
ZJ BB16
EF 0
RJ BB50
ER 0
ZJ BB22
EF 0
RJ BB50
ER 0
ZJ B826
EF 0
TP CAI0
RJ PC
MS 0
EF 0
MJ 0

B846
Q
A
A

}

inst.

lOA ~A
Pari ty
no ~ BB32
High
Reread
lOA ~A
Pari ty
no ~ BB32
Low
Reread
lOA ----+ A
Parity
Move bwd one blk.
Print parity error

+;

B832
8B37
8B44
A

+

B832
8B36
8B44
A

+

}

BB

o

(30000)
BB35
BB34
BB50 }
(30000)

o

~RP

Rea~ block

A

o

1708 - n ---+ Au

170 - n

B850
B845

B832
BB35
PC2
PCl
8813
BB40

v

address

Stop for reread
Set normal
Exit
Read one blk & stop
Move bwd. one blk.
Low
High
Normal
Mask
120
10
Move bwd one bike
Read one blk. & stop
Read to core
RP 0 eXit-, throwaway

A

31

read
sub.

Print (1103A)
PC

PD
0

2
3
4
5
6
7
10
11
12

1A
MJ
MJ
0
TP
QT
ST
TU
SP
PR
SS
ZJ

13

RA

or7

14
15
16
17
20

1J
MJ
RP
PR
0
CA

PC20
0
4
0

0
1

(30000)

Exit

0

orl/..

(30000)
PC2
CAS
CA6
PC2

(0)

Par. = 0 address n

Q
A45 }

Set index

PC20
PC7

Set address

L

'"'~v

c:::+ ....... +

IJ"QL"

(30000) 52 }

o

A
PCIO
L

'-' •

0

A
6
PC13

.
PC7

rA7

"'.,

PC
PC3
PC4
0

Print one word
C:::o+

IJ .... "

~ft_

..LVL

"o~+

11 .... .110."

~ft~~

nVLU

Finished t; no -+ PC7
Exit
Index

PD21

32

C.
1.

Object Program Service Routines

Flex Code Print-out
Stored at:
Operates at:

77250-77272
750-771

This routine does not preserve all of HSS.
Function
To print out on-line stored Flex codes.
Calling Seguence

a
+1
+2

TP
RJ

L (Parameter)
PR3
PR2
PR
Control returned here

Notes:
No editing is done - therefore all carriage return codes,
etc., should be provided.
Parameter is of form

0 - u - v, where u

= initial

address of stored codes (6 per word)
v

= number

of words to be printed.

This routine is used by the Object Program Loader, Sections 1
and 2 of Initialization, and by some of the generated routines of
the Object Program.

33

Regions for Flex Print Routine
RE
RE

PR77250
RP750

Storage address
Operating area

Flex Print-Out (N.B. - Stored at PR; Operates at RP)
(Core Requirement = 22 Locations)

RP

o
1
2
3

IA PR
RP 30021
TP PR2
MJ

o

TV
TU

4

IJ

5

MJ

6
7

10
11

12
13
14
15
16
17
20

TP

RP2 }
RP
(30000)
0
30000 (30000)
RPI
RP20
RPI
RP6
RP6
RP20
RP
0
(30000) Q

LQ Q

PR 0
QT RP17
RS Q
ZJ RP7
RA RP6
MJ

o
o
o

Operating routine

6
Q

0

RP21
RP21
RP14
RP16
RP4

1
0
0

o

CA PR23

Send down to core
Exit
Parameter
Set up index

o

77

34

2.

Object Program Loaders

These routines, one for the 1103A and one for the 1105, perform the
initial loading of data from magnetic tape on Uniservo 1 to High Speed Storage,
and on recognition of a transfer block, transfer control to an address indicated
on the tape.
The tape format on which these routines depend for proper loading of the
Object Program is prepared by the Initialization Generation Phase according
to the requirements of the problem.
The first word of each block has special significance.

It either contains

the loading address and word count of the block or a transfer address.
In the former case, the u portion holds the word count (at most 1678 ) and
v holds the initial loading address, from which as many words as are specified
by the word count are stored sequentially as read from tape. If the word count
is less than 1678 , but not zero, the remainder of the block is disregarded.
The transfer word is recognized as the first word of a block because its u
field is zero (or a zero word count).

In this case the remainder of the block

is read but disregarded, and control is transferred to the location specified
by the contents of the v field.
For further description of the loading of Object Programs, refer to the
Initialization Generation write-up and its related diagram showing the layout
of the Object Program. tape.

35

Transfer Box 1
From Drum to
HSS

Box 1
Set MJ at O.
Clear Rest of
H

Move Uniservo
1 Back One
Bl

Data Block. Set
up RP-ER to Read
No. Words Specified by Word
Count

Set Index
to Two

Read Data to
Address Sp.ecified by V of
1st Word

Transfer Remainder
of Object Program
Loader From Drum
to HSS

Read 1st
Word of Bloc

Set Transfer Address
from V-Field of 1st
Word into Exit of
Sub rout ine A

Execute
Throwaway Reads
and Check Pari ty

Print .. READ
ERROR ( PARITY) •
START FOR REREADS."

Move

BaCI~

-";'

One BI0CI~

Set to
Normal
Bias

Rewind
Uniservo

Set
to Two

Print Out: "MOUNT
UNICODE OBJECT
PROGRAM ON UNI-

smvo

Read 1st Block
of Object Program
Tape (Uniservo n
Contains Sentinel
& 3 Blkts. of
Tape Handler

Rewind
Uniservo

1. tt

Printout: "READ
ERROR (PARITY).
START FOR REREADS.'

.=
( "'l

o

co+

Regions for 1103A Object Program Loader
RE DA77300
RE PR77250
RE rn1500
RE LE1564
RE LT1624
RE SNl14

Storage address
Flex print routine

~

1

Operating area
Address for loading Sentinel block

Object Program Loader (1103A)

0
1
2
3

0
1
2
3
4
5
6
7

IA DA
RP 30004
TP DA4
RP 30124
TP DAlO
MJ 0
0 0
RP 17776
TP 1
CA DAI0

0
0
W34
ill

2
0

~A2 }

Clear one bank of core

38

ffi
@

@

@

@

(1)

®
@)

@

@
@

LD

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56
57
60
61
62
63

IA
EF
TP
TP
MJ
EF
ER
QT
ZJ
TV
AT
0
ER
RJ
MJ
TV
TU
RS
RP
ER
ER
ZJ
IJ
TP
RJ
MS
RA
EF
MJ
TP
TP
MJ
EF
EF
RP
ER
ER
ZJ
IJ
TP
MJ
RA
MJ
TP
EJ
TP
RJ
EF
MS
RA
RA
IJ
MJ
CA

DAI0

0
LE
LE7
167
0
10000
LE5
LOIO
Q
LE6
30000
10000
LD24
0
Q
LD3
LD21
0
10000
0
LD25
LTI
LEIO
PR2
0
LT2
0
0
LE
LE7
0
0
0
10170
10000
0
L045
LTI
LEIO
0
LT2
0

( SN24)
( LE32)
LEl1

PR2
0
0

LD52
LD53
LE37
0
DA74

Move back one block
Set to normal bias
Set index

~1

LT2
LTI
L04
LE2
Q
LT
LD16
LD13}
L012
30000}
30000
LD17
LOl
LD24
LD21
LT
LD23
A

Prepare to read one block
Read one word
Save word count
=0 ?
Non-zero 50 set up Read and Repeat
Read info to Loading Address
Check parity and throwaway
Back to read next block
Set transfer address
Determine no. of throwaway words

}
}
~OOOO}

LD31
PR3
PR
LD
LE4
LEI
LD3
LT2
LTI
LD37
LE3
LE2
LD43
SN
A
LD52
L050
PR3
LD55
LE4
LD36
A
LD60
PR3
PR
LE3
D.A
LE36
LE36
LD52
LOI

Throw away
Check parity

}

Print READ ERROR
Change bias
Move back one block
Set to normal bias
Set index
Rewind Uniservo 1
Prepare to Read one block Uniservo 1
Read 1st block, Sentinel + 3 blkts.
of Tape Hand ler.

}
}

Parity error?

}

Print READ ERROR
Change bias
Try again

}

Print MOUNT UNICODE OBJECT PROGRAM
Rewind

}

Increment test instructions

39

LE

IA
02
02
02

DA74
1
14
602

50000
10001
10000

Normal bias
Move Uniservo 1 back one block
Read Uniservo 1 one block

'1

A')
V'

') AA
&:"VV

,AAAA
1.VVVV

n __ ,.. ':_...l

11_.:_,...._.,.'"'

oJ

nCW~JlU

UII~O)CLVU

4
5
6
7
10
11
12
13
14

0
0
RP
0
0
0
45
22
12

0
177
10000

10000
0
LD14

0

2

LE12
LE22
45471
04201
04461

10
10
22030
21203
53012

Change bias
Word count mask
Dummy
Index for parity rereads
Parameter for READ Error
Parameter for wrong tape
CR CR l' R E A
D b. E R R 0
R I:l ( P, A R

0
1
2

1.,)

A, ') t!' A
V1.&:...)<:I

') t!' "'1 A')

1.<:1

16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

04
12
04
22
45
06
16
23
15
07
20
52
67
30
26
32
0
0
CA

04472
01042
12201
24574
45470
01043
03222
32201
12031
04030
12170
42040
50342
01512
66015
54244
1
0
DAl34

40130
60312
22030
24545
70334
40614
00403
60104
31230
60424
30457
44545
65127
54430
25451
72201
0
3

,t!'

,

A

&:..oJ.<:I&:..

T

•

rr
~

v

~

I

1

L

..

.I.

I:l I:l t S T A
R T I:l F 0 R
I:l R E R E A

D
CR
N
C

S
CR

t

t

.

M
T b. U
0 D E
B J E C
P R 0 G
M l:l 0 N
E R V 0

Flex

CR CR
0 U
N I
l:l 0
Flex

T l:l

R A
l:l S
l:l

+

l:l l:l CR CR
1
U N I C 0 D
E I:l 0 B J E

] Excess Three

C T II P R 0
G R A M
l:l
u-advance
Index for Sentinel check

40

Transfer Box 1
From Drum
to HSS

Box 1
Set MJ at O.
Clear Rest of
HS

Move Uniservo
1 Back One

Transfer Remainder
of Object Program
Loader from Drum
to HSS

Set Normal
Bias for
TCU
Set Normal
Bias for

B

Set Index
to Two

TCl12

Data Block. Set
up RP-ER to Read
No. Words Specified by Word
Count

Read 1st Word
of Block

Set Transfer
Address from v
field of 1st word
into Exit of
Subroutine

Compute No. of
Throwaway Words
for Bl k

Print: "READ ffiRO
(PARITY OR
SPROCKE:!' .) STAR
FOR REREADS."

Read Data to
Address Specified
by v of 1st Word

Execute Throwaway Reads and
Che k rit

Parity
or Sprocket
Failure?
Yes

Move Tape on
Uniservo 1 Back
One Bl k

Set Tape Parameters for reUl
(Includes Normal
Yes

Read 1st Block of
Object Program
Tape (Uniservo 1 ).
Contains Sentinel
& 3 Blkts. of Tape
Handler

Print Out: "MOUN
UNICODE OBJECT
PROGRAM ON UNISERVO l"

Index

= O?

Set l~f8\
Bypass ~

Set Tape Parameters for TCU2
(Includes Normal
Bias)
Rewind
Servo #1

Set
Bias

Set Index
to Two

Printout: "READ
ERROR (PARITY OR
SPROCKET). START
FOR REREADS. It

N~

Rewind
Uniservo 1

-C"l

o
:s

c-+

No

Change
Bias

Regions for 1105 Object Program Loader
RE DA77300
RE PR77250
RE W1500
RE LE1575
RE LT1645
RE SNl14

Storage address
Flex print routine

}

Operating area
Address for loading Sentinel block

Object Program Loader (1105)

0
1
2
3

IA DA
0 RP 30004
1 TP DA4
2 RP 30145
3 TP DAI0
4 MJ 0
5 0 0
6 RP 17776
7 TP 1
CA DAI0

0
0
I.D40
ill

2
0

~A2 }

Clear one bank of core

43

a5
@

@)

LD

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23

@

(j)

@

24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56

57
60
61

1A
EF
MJ
TP
MJ
TP
EF
TP
EF
EF
ER

DAIO
LT3
0
20000 LD4
LE
LT2
LD5
0
LE5
LT2
LT2
167
LE15
LTI
LT5
0
LT4
0
Q
10000
LT
QT LE13
ZJ LD14
LD22
TV Q
LD17}
LD16
AT LE14
0 30000 3000'O}
ER 10000 30000
LD23
RJ LD30
MJ 0
LDI
LD30
TV Q
TU LD5
LD25
LT
RS LD25
LD27
RP 0
ER 10000 A
ER 0
ZJ LD31
LD35
1J LTI
PR3
TP LE16
PR
RJ PR2
MS 0
LD
LE12
RA LT2
EF 0
LT3
MJ 0
LD7
MJ 20000 LD43
RP 30005 LD45
LT2
TP LE
RP 30005 LD45
LT2
TP LE5
LTI
TP LE15
LT5
EF 0
LT2
EF 0
LT6
EF 0
LT4
EF 0
RP 10170 LD54
ER 10000 SN
A
ER 0
LD63
ZJ LD56
LD61
1J LTI
PR3
TP LE16
LD66
MJ 0
LE12
RA LT2

Move back one block
TCUI or TCU2?
Set normal bias for TCUI

}

Set normal bias for TC02
Set Bias
Set Index
Set Bypass
Prepare to read one block
Read one word
Set word count into temp.
= O?
Non-zero, so set up Read
and repeat
Read info to load i ng add res s
Check parity and throwaway
Back to read next block
Set transfer address
Determine no. of throwaway words

}

Throwaway

~OOOO}

}

}

}

}
}

Check Pari ty
Parity failure
Print READ ERROR
Change bias
Move back one block
TCUI or TCU2?
Set TCUI parameters
Set TCU2 parameters
Set Index
Set Bypass
Set Bias
Rewind Uniservo 1
Prepare to read first block
Read 1st block, Sentinel + 3 blkts. of
Tape Handler
Pari ty or sprocket error?
READ ERROR
Change bias

44

®

62
63
64
65
66
67
70
71
72
73
74

MJ
TP
EJ
TP
RJ
EF

LD47
0
(SN24) A
( LE42) LD7l
LE17 PR3 }

PR2
0

Try again
Print MOUNT UNICODE OBJECT PROGRAM

PR

LT6
DA
0
RA LD63 LE46 }
RA LD64 LE46
IJ LE47 LD63
MJ 0
LDI
CA DAlO5

Rewind

MS

Increment test instructions
To continue loading

45

LE

0
1
2

IA DAI05
01 1
01 14
01 600

50000
10001
10000

3

0

4000

10000

4
5
6
7
10
11
12
13
14

01 200
02 1
02 14
00 600
0 20000
02 200
0 0
0 177
RP 10000

10000
50000
10001
10000
4000
10000
10000
0
LD20

15

0

0

2

16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47

0
0
45
22
12
14
04
36
04
12
04
22
45

LE20
LE32
45471
04201
04461
012-5-0
24151
20014
04472
01042
12201
24574
45470
01043
03222
32201
12031
04030
12170
42040
50342
01512
66015
54244
1
0
DA155

12
10
22030
21203
53012
40312
20316
25742
40130
60312
22030
24545
70334
40614
00403
60104
31230
60424
30457
44545
65127
54430
25451
72201
0

06

16
23
15
07
20
52
67
30
26
32
0
0
CA

3

1

Normal bias
Move Uniservo 1 back one block
Read Uniservo 1
RlJffpr 1- -hvnsu:!Ii:
oIr---

------

TeUI

)
Rewind Uniservo 1
Normal bias
Move Uniservo 1 back one blOCk}
TCU2
Read Uniservo 1
Buffer 2 bypass
Rewind Uniservo 1
Change bias
Word count mask
Dummy
Index
Parameter for Read Error
Parameter for Wrong Tape on Uniservo 1
CR CR t REA
D II E R R 0
R II ( P A R
I T y II 0 R
Flex
II S P R 0 C
K E T ) t
II II t s T A
R T II F 0 R
II R E R E A
D S -¥
CR CR
CR CR t M 0 U
Flex
N T II U N I
C 0 D E II 0
B J E C T II
P R 0 G R A
M II 0 N II S
E R V 0 II -¥
II II CR CR
1
XS-3
U N I C 0 D
E
B
E II 0
J
C T II P R 0
/::,.
G R A M
u-advance
Index for Sentinel check

.

.

.

.

46

2. LIBRARY ROUTINES

2.
a.

00004 00004 45
00005 00005 37
00006 00006 45
00007 00007 00
00010 00010 00
00011 00011 00

.£:0.
-.t:>

00012
00013
00014
00015
00016
00017
00020
OD021
00022
00023
00024
00025
00026
00027
00030
00031
00032
00033
00034
00035
00036
00037
00040
00041
00042

00012
00013
00014
00015
00016
00017
00020
00021
00022
00023
00024
00025
00026
00027
00030
00031
00032
00033
00034
00035
00036

00037
00040
00041
00042

55
51
47
75
11
11
II
II
11
23
11
II
23
11
11
11
11
II
75
53
31
37
37
45
54

00000

40005

00012
40007

00000 30000
00000 00000
00000 00000
00000 100000

00420
00007
00042
11130
00421
00422
00423
00424
00425
01510
00426
00427
01700
00422
00430
00431

31006
3!OOO
00015
00017
01316
01342
01343
01506
01507
32000
01676
01677
3!OOO

00432

<12257
31000
00036
00663

00433
10010
00434
00477
00543
00635

<12066
~067

<12256

00000

00533
00622
00000 00046
32000 00006

Library Routines

Unicode Librarian Symbolic Listing
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

X
X

1.

2.
3.
4.
5.
6.
7.
8.
9.
10.
II.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.

, SUB
, INOur
, MJ
, ALARM , ALARM
, EXIT , MJ
, PARI
, PAR2
, PAR3 ,
, RTN
, EQUALS
, ENrRY ,lO
, QT
, ZJ

,
,
,
,
,
,
,
,
,
,
,
,
,

' SI

RPV
TP
TP
TP
TP
TP
RS
TP
TP
RS
TP
TP
TP
t TP
, TP
, RPV
, QS
t
SP
, RJ
, RJ
, MJ
,LA

,WFUA05
,3

,714
,0
,EN11IY

,UNICODE LIBRARIAN

,FlU
,0

,

,

,0

,

,0

,600(0)B
,Cl
,PARI
,SI
.600
,C2
,C3
.C4
,C5
,C6
,BF+122
,e7

,60(00)B

,ca

,BF+242
,C3
,C9
,CIO
,Cl1
,C12
,8
,C13
,5V
,MTWREX
,MTCHEX

,

, A

,0+6
,A
,L+l
,L+2
,BF
,BF+20
.BF+21
.BF+12 0
.BF+121
.A
.BF+24 0
.,BF+241

.A

,P ARAMETE RS

,
,
,IS INPUf SERVO ZERO

,
,YES-LOAD BUFFER

.BF+360
.BF+361
.BF+480
,BF+481

,

JJ

,SET SERVO NlJI1BERS

.L+2
.Ml'WRIT
.0

,
,
,WRITE DUMMY LIBRARY

.MTWRE 1 ,
.MTCIlEK
,S2

.6

,CHECK DUMMY LIBRARY

,

,SET SERVO NlJI1BERS

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

$
$
$
$
$
$
$

00043 00043 11
00044 00044 75
00045 00045 53
00046 00046 54
00047 00047 75
00050 00050 53
00051 00051 31

'-1l

0

00433
10004
32000
00007
10004
32000
00474

31000 X
00046 X
00667 X
32014 X
00051 X
00663 X
00000 X

35.
36.
37.
38.
39.
40.
4l.

, S2

,
,
,
,
,
,
,

TP
RPV
QS
LA
RPV
QS
SP

,Q
,L+2
,MTHDFW
,A+12
,L+2
,MTWRIT
,0

$
$
$
$
$
,
$
,READ TAPE AND CATALOGUE $

,MTHEAD

,

00052
00053
00054
00055
00056
00057
00060
00061
00062
00063
00064
00065
00066
00067
00070
00071
00072
00073
00074
00075
00076
00077
00100
00101
00102

00052
00053
00054
00055
00056
00057
00060
00061
00062
00063
00064
00065
00066
00067
00070
00071
00072
00073
00074
00075
00076
00077
00100
00101
00102

37
31
43
11
31
55
61
41
17
17
17
11
45
11
55
51
47
23
55
51
47
21
21
21
11

00565
01342
00422
00436
00477
31000
00000
32000
00000
00000
00000
00437
00000
01510
00007
00440
00073
01510
00010
00440
00077
01510
00521
00522
01510

00555
00000
00067
31000
00000
00006
31000
00057
00660
00670
00665
31000
00005
00520
31014
00521
00074
00474
31014
00522
00100
00474
00504
00504
00523

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.

RJ
SP
EJ
TP
, SP
,LQ
, PR
, IJ
,
, ALARM 1 , EF
, EF
, EF
, TP
,
, MJ
, TP
, S3
, LQ
, QT
, ZJ
, RS
, LQ
, QT
, ZJ
, RA
, RA
, RA
t TP

00103

00103

31

00474

00000 X

67.

, SP

,2V

,0

00104

00104

37

00543

00533

68.

, RJ

,MTWREX

,MTWREI

X

,
,
,
,

,C12
.4
,A
,PARI
,4
,A
,2V
.MTRDEX
,BF+20
,C3
,C15
,5V
,Q

•,A
,
,C16

,

,BF+122
,PARI
,C17
,L+l
,BF+122
,PAR2
,C17
,L+l
,BF+122
,T2
,T3
,BF+122

,

(LABErs )

,ALARM IF NO TAPE LABEL

,S3
,Q
,0
,6
,Q
,L-:~

,MTNOBI
,MTINRW
,MTOURW
,Q
,ALARM
,Tl
,Q+12
,T2

,
,STORE WORD COUNT
,REVISE WORD COUNT

,L+~~

,2V
,Q+12
,T3
,L+:~

,2V
,120V
,120V
,T4

,
,STORE REVISED WORD
COUNT
,WRITE TAPE AND
CATALOGUE LABELS

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

c..n
~

00105
00106
00107
00110
00111
00112
00113
00114
00115
00116

00105 31
00106 73
00107 47
00110 21
00111 31
00112 75
00113 11
00114 37
00115 37
00116 55

00520
00504
00110
00520
00520
12000
00421
00565
00115
00007

00000
00520
00111
00473
00000
00114
01316
00555
00116
31030

X
X
X
X
X
X
X
X
X
X

69.
70.
71.

00117
00120
00121
00122
00123
00124
00125
00126
00127
00130
00131
00132
00133
00134
00135
00136
00137
00140
00141
00142
00143
00144
00145
00146
00147
00150
00151

00117
00120
00121
00122
00123
00124
00125
00126
00127
00130
00131
00132
00133
00134
00135
00136
00137
00140
00141
00142
00143
00144
00145
00146
00147
00150
00151

51
47
35
11
11
55
51
47
21
41
11
11
11
11
23
41
37
11
11
11
11
11
11
15
16
11
55

00502
00121
00443
00011
00477
31000
00420
00130
31000
00524
31000
00442
00445
30000
00134
00526
00137
00447
00450
00440
00441
00504
00451
00452
00452
30000
30000

32000
00132
00525
31000
00524
00006
32000
00127
00420
00124
00524
00526
00134
30000
00446
00134
00140
00527
00530
00531
00526
00514
00150
00151
00154
30000
32000

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.

72.
73.
74.
75.
76.
77.
78.

t

t

54

• 55

, 56

, 57

,
, 58
, 59

,
,
,
,
,

5P
DV
ZJ
RA
5P
t
RPV
, TP
•, RJ
RJ
, LQ
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

QT
ZJ
AT
TP
TP
LQ
QT
ZJ
RA
IJ
TP
TP
TP
TP
R5
IJ
RJ
TP
TP
TP
TP
TP
TP
TU
TV
TP

,LQ

,Tl
,120V
,L+l
,Tl
,Tl
,1024
,C2
,MTRDEX
,L
,PARI

,

,7V

,A
,56
,T6
,Q
,T5
,6
,A
,L+l
,Cl
,L-4
,T5
,T7
,L+l
,FILL
,C24
,L-2
,L+l
,T8
,T9
,TI0
,T7
,ADDCWD
,59
,L+3
,L+5
,FILL
,A

,L+l
,C21
,PAR3
,5V
tQ

,el
,L+2
,Q
,T5
,Q

,C20
,C23
,FILL

,L-l
,T7
,L
,C25
,C26
,C17
,C18
,120V
,C27
.C28
,C28
,FILL
,FILL

,READ CATALOGUE

,Tl
,L+2
,IV

,

,L+2
,BF
,MTREAD
,L+1
,Q+24

,
,GENERATE CATALOGUE
ITEM

$
$
$
$
$
$
$
$
$
$

$
$
$
$
$
$
$
$
$
$
,
$
,GENERATE NEW CATALOGUE $
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

CJl
I'-'

00152
00153
00154
00155
00156
00157
00160
00161
00162
00163
00164
00165
00166
00167
00170
00171
00172
00173
00174
00175
00176
00177
00200
00201
00202
00203
00204
00205
00206
00207
00210
00211
00212
00213
00214
00215
00216
00217

00152
00153
00154
00155
00156
00157
00160
00161
00162
00163
00164
00165
00166
00167
00170
00171
00172
00173
00174
00175
00176
00177
00200
00201
00202
00203
00204
00205
00206
00207
00210
00211
00212
00213
00214
00215
00216
00217

43
51
35
51
43
43
21
21
21
37
75
21
37
16
16
11
31
35
16
16
45
21
43
16
75
11
37
37
31
73
47
21
31
37
31
37
11
31

00421
00530
00526
00531
00522
00521
00526
00150
00154
00163
20002
00150
00166
00150
00154
00524
00526
00525
00164
00176
00000
00514
00522
00150
10004
00421
00166
00205
00523
00504
00211
00532
00532
00543
00473
00565
00523
00473

00177
32000
30000
00514
00166
00164
00527
00474
00474
00164
00150
00475
.00167
00171
00173
30000
00000
30000
00163
00166
00160
00527
00167
00203
00204
30000
00166
00206
00000
00532
00212
00473
00000
00535
00000
00555
01320
00000

106.
107.
108.
109.
110.
Ill.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
X 143.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

,
, 510

,
, 511

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

EJ
QT
AT
QT
EJ
EJ
RA
RA
RA
RJ
RPU
RA
RJ
TV
TV
TP
5P
AT
TV
TV
MJ
RA
EJ
TV
RPV
TP
RJ
RJ
5P
DV
ZJ
RA
5P
RJ
5P
RJ
TP

t

SP

,
,
,
,
,
,
,

,
,
,
,
,
,
,
,
t

,
t

• 512

,
• 513

,C2
,T9
,T7
,TI0
,T3
,T2
,T7
,59
,59+4
,L
,2
,59
,L
,59
.59+4
,T5
,T7
,T6
,510+4
,L+l

,

,ADDCWD
.T3
.59
,4
,C2
.511
.L
,T4
,120V
.L+1
.Tll
,TIl
,MTWREX
,IV
,MI'RDEX
.T4
,1V

,51:2
,A
,FILL
,ADDCWD
,511
,510+4
,T8
,2V
.2V
,L+l
,59
,2U
,L+l
,L+:2
,L+3
,FILL

,

,

•

,

,FILL
,510+3
,511
,510
,T8
.511+1
,L+:2
,L+:2
,FILL
,511
,L+1

,

,
,

•
,WRITE
NEW CATALOG

,TIl
,L+:2
,IV

,

,MTWRE2
,0
,MTREAD
,BF+2
,0

,
,READ OP FILE LABEL

,

,5ET REVI5ED WORD COUNT
t

WR I'm

(F

FILl& LABEL

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

!

c.n
c..v

00220
00221
00222
00223
00224
00225
00226
00227
00230
00231
00232
00233
00234
00235
00236
00237
00240
00241
00242
00243
00244
00245
00246
00247
00250
00251
00252
00253
00254
00255
00256
00257
00260
00261
00262
00263
00264
00265

00220
00221
00222
00223
00224
00225
00226
00227
00230
00231
00232
00233
00234
00235
00236
00237
00240
00241
00242
00243
00244
00245
00246
00247
00250
00251
00252
00253
00254
00255
00256
00257
00260
00261
00262
00263
00264
00265

37
37
55
51
55
52
11
42
45
55
45
55
55
55
55
55
11
11
15
16
11
11
11
21
21
21
41
37
37
11
16
11
37
37
31
37
31
37

00543
00115
00007
00453
00010
00464
00435
00506
00000
00525
00000
00527
00530
00531
00521
00522
00444
00454
00455
00452
30000
30000
31000
00244
00245
00246
00526
00253
00137
00465
00474
00466
00205
00253
00532
00543
00473
00565

00535
00111
31025
00524
31022
00524
31000
00231
00056
00017
00233
00017
00017
00017
00017
00017
00526
00245
00244
00246
31000
30000
30000
00475
00472
00474
00244
00254
00132
00526
00526
00514
00145
00240
00000
00535
00000
00555

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.

, RJ
, RJ

,LQ
•
,
,
,
,
,
,
,
,

QT
LQ
QA
TP
TJ
MJ
LQ
MJ
LQ

,LQ
t

,
, S14

t

,
,
,
,
,
,
,

,
t

LQ

,LQ
,LQ

S15

,
,
,
,
,
•
,
,
,
,
,
,
,

TP
TP
TO
TV
TP
TP
TP
RA
RA
RA
IJ
RJ
RJ
TP
TV
TP
RJ
RJ
SP
RJ
SP
RJ

,MTWREX
,S5
,PARI
,C30
,PAR2
,K7
,C14
,513V

,

,T6

,

,T8
,T9
,T10
,T2
,T3
,C22
,C32
,C33
,C28
,FILL
,FILL
,Q
,L-3
,L-3
,L-3
,T7
,L
,S7
,K8
,2V
,K9
,S13
,S15
,TIl
,MTWREX
,IV
,MTRDEX

,MTWRE2
,S4
,Q+21
,T5
,Q+18
,T5

,
,READ OP FI LE
,GENERATE OP FILE ITEM

,Q
,L+2
,ALARMl-4 ,
,15
,
,S13+22
,GENERATE NEW OP FILE
,15
,15
,15
t 15
,15
,T7
,L+4
,L+2
,L+3
,Q
,FILL
,FILL
,20
,K13
,2V
,L-6
,L+l
,S6
,T7
,T7
,ADDCWD
,S8
,
,S14
,
,WRITE NEW OP FILE
,
,MTWRE2
,READ SUBROUTINE LABEL
,0
,MTREAD

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

CJl
~

00473 00000
00543 00535
00465 00507
00465 00510
00007 31000

X
X
X
X
X

00273

00273

51

00457

00511

X 187.

00274
00275
00276
00277
00300
00301
00302
00303
00304
00305
00306
00307
00310
00311
00312
00313
00314
00315
00316
00317
00320
00321
00322
00323
00324
00325
00326
00327
00330
00331

00274
00275
00276
00277
00300
00301
00302
00303
00304
00305
00306
00307
00310
00311
00312
00313
00314
00315
00316
00317
00320
00321
00322
00323
00324
00325
00326
00327
00330
00331

51
51
11
51
51
51
55
55
21
21
37
31
43
45
31
22
31
32
32
35
55
11
23
11

00460
00462
00010
00457
00463
00464
00511
00514
00511
00514
01222
00507
00514
00000
00513
00000
00512
00510
01317
00461
00512
31000
01317
00515
II 00473
11 00011
11 00477
55 01323
51 00420
47 00333

00512
00513
31000
00514
00515
00516
00033
00033
00466
00466
01141
00000
00312
00354
00025
01317
00003
00000
00000
01316
00030
01321
00516
01320
01322
01323
01324
00006
32000
00332

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.

,IV
,MTWREX
,K8
,K8
,PARI

,0
,MTWRE2
t ICWOC
,OCWOC
,Q

, QT

,K2

,DELCWD

,
,
,
,
,
,
,

t K3
,K5
,PAR2
,K2
,K6
,K7
,DELCWD
,ADDCWD
,DELCWD
,ADDCWD
,HSPEX
t ICWDC
,ADDCWD

,INPUTS
tNOWDS
,Q
,ADDCWD
,QNP
,P
,27
,27
9
tK
,K9
,HSPEI
,0
,L+2
,B5
,21
,BF+1
,3
,0
,0
,BF
,24
,BF+3
,P
t BF +2
,BF+4
,BF+5
,BF+6
,6
tA
,L+l

,
,
,
,
,

182.
183.
184.
185.
186.

00266 00266 31
00267 00267 37
00270 00270 11
00271 00271 11
00272 00272 11

SP
RJ
TP
TP
TP

QT
QT
TP
QT
QT
QT
LQ

,LQ

•, Bl

,
,
,
,
,
,
,

,

,
,
f

,

RA
RA
RJ
SP
EJ
MJ
SP
LTL
SP
SA
SA
AT

,LQ

t
, B2

,
,
,
,
,
•
,
,
,

TP
RS
TP
TP
TP
TP
LQ
QT
ZJ

,

,NOWDS
t
,INPUfS
,OCWDC
,BF+l
,K4
,INPUfS
.Q
,BF+l
,QNP
,IV
,PAR3
,5V
,BF+5
,Cl
t L+2

,WRITE S UBROUrINE LABEL

$
$
,PRES ET I NP Uf AND OUfP UT $
, CWD COUNTEIRS
,EXTRACT INFO FROM
$
PARAMETERS

,

$
$
$
$
$
$

$
$
$
$

,
,IS ROUfINE TO BE ADDED
, NO
YES-SET UP PRELUDE

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

~

C..!l
C..!1

,RTN
,NOWDS
,120U
,L+l
,Q
,Q
,MTWREX

,IV
,B2
,Kl
,Q
,B3
,B4
,120U
,L+2
,BF+6
,HSPE2
,L+2
,BF+6
,6U
,Q
,L+2
,IV
,0
,MTWRE2

, SP
, RJ

,IV
,MTRDEX

,0
,MTREAD

00000 X 238.
00407 X 239.

, SP
, EJ

,BF
,CI0

,0
,B7

31000 X 240.
32000 X 241.
00517 X 242.
00365 X 243.
00473 X 244.
00000 X 245.
00401 X 246.

,
,
,
,
,
,
,

TP
QT
DV
ZJ
RA
SP
EJ

,K10
.BF
,120V
,L+1
,TEMPI
,ICWOC
,DELCWD

,Q
,A
,TEMPI
,L+2
,IV
,0
,B6

,
,
,
,
,
,

RA
TP
QS
RA
RJ
RS

.ICWOC
,K11
,OCWDC
,OCWOC
,HSPEX
,TEMPI

,K1
.Q
,BF
,K1
,HSPE2
.IV

00332
00333
00334
00335
00336
00337
00340
00341
00342
00343
00344
00345
00346
00347
00350
00351
00352
00353

00332
00333
00334
00335
00336
00337
00340
00341
00342
00343
00344
00345
00346
00347
00350
00351
00352
00353

21 31000
41 01324
21 00510
11 00462
53 00513
53 00513
21 00341
75 10000
11 00421
37 01222
75 30000
11 60000
21 00513
73 00505
47 00351
21 31000
31 31000
37 00543

00473
00327
00456
31000
00341
00344
00505
00343
01324
01156
00346
01324
00501
31000
00352
00473
00000
00535

X 218.
X 219.
X 220.
X 221.
X 222.
X 223.
X 224.
X 225.
X 226.
X 227.
X 228.
X 229.
X 230.
X 231.
X 232.
X 233.
X 234.
X 235.

,

00354
00355

00354
00355

31
37

00473
00565

00000
00555

X 236.

, B5

X 237.

00356
00357

00356
00357

31
43

01316
00431

00360
00361
00362
00363
00364
00365
00366

00360 11
00361 51
00362 73
00363 47
00364 21
00365 31
00366 43

00467
01316
00504
00364
00517
00507
00511

00367 00367 21 00507 00456 X
00370 00370 11 00470 31000 X
00371 00371 53 00510 01316 X
00372 00372 21 00510 00456 X
00373 00373 37 01222 01156 X
00374 00374 23 00517 00473 X

247.
248.
249.
250.
251.
252.

,
, B3
, B4

,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

RA
IJ
RA
TP
QS
QS
RA
RPV
TP
RJ
RPB
TP
RA
DV
ZJ
RA
SP
RJ

,Q
,BF+6
,OCWOC

,KS
,NOWDS
,NOWDS
,B3
,0
,C2
,HSPEX

,

$
$
$
$
$
$
,
$
,FILL BUFFER WITH Z COIES$
$
$
$
$
$
$
$

$
,
$
,WRITE ROUfINE ON OUfPUf $
TAPE
,
$
,READ 1 BLOCK FROM
$
INPUT TAPE
,
$
,IS THIS END OF ENTRY
$
, BLOCK
,NO
$
$
$
$
$
,
$
,IS ROUfINE TO BE
$
DELETED
,NO
$
$
$
$
$
$

00375
00376
00377

00375 37
00376 21
00377 37

00400 00400 45
00401 00401 23
00402 00402 11
00403 00403 53
00404 00404 17

U1

0'

00405
00406
00407

00405 21
00406 45
00407 11

00410
00411
00412
00413
00414
00415
00416
00417
00420
00421
00422
00423
00424
00425
00426
00427
00430
00431
00432
00433
00434
00435
00436
00437

00410
00411
00412
00413
00414
00415
00416
00417
00420
00421
00422
00423
00424
00425
00426
00427
00430
00431
00432
00433
00434
00435
00436
00437

75
11
31
37
17
37
37
45
00
74
01
01
46
26
01
31
65
30
01
00
00
31

00565 00556
00517 00473
00543 00535

X 253.
X 254.
X 255.

00000
00517
00471
00517
00000

X
X
X
X
X

00307
00473
31000
00672
00672

00507 00456
00000 00307
00432 01317

10546
00421
00476
00543
00000
01222
00635
00000
00000
74747
01463
66245
34250
24660
01015
34463
67255
50270
30506
00001
00000
03122
06 03041
31 26343

00412
01320
00000
00535
00670
01250
00622
00006
00077
47474
42501
23001
10101
10101
15201
00104
46650
15131
65473
70000
40000
22404
11423
03762

256.
257.
258.
259.
260.

X 261.
X 262.
X 263.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
274.
275.
276.
277.
278.
279.
280.
281.
282.
283.
284.
285.
286.
287.

,86

, B7

t

, Cl
, C2
, C3
t C4
, C5
, C6
, C7
, C8
, C9
, CI0
, Cll
, C12
, C13
, C14
, C15
,C16

, RJ
, RA
, RJ

,MTRDEX
,TEMPI
,MTWREX

,

,

,
,
,
,

MJ
RS
TP
QS
EF

, RA
, MJ
, TP
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,

RPV
TP
SP
RJ
EF
RJ
RJ
MJ
B
B74
BOI
BOI
B46
B26
BOI
B31
B65
B30
001
B
B
B31
B06
B31

,TEMPI
,K12
,TEMPI
,ICWOC

,

,C 11
,358
,C2
.3V
,MTWREX

,

,HSPEX
,MTCHEX

,
,74747
,01463
,66245
,34250
,24660
,01015
,34463
,67255
,50270
,30506
,1

,

,03122
,03041
,26343

,MTHEAD+l ,READ REST OF ROUfINE
,
,IV
,MTWRE2
,WRITE ROUfINE TO OUfPUf
TAPE
,Bl
,IV
tQ
,MVF'WIN
•.MOVE PAST ROLTINE TO
,MVFWIN
BE DELETED
,Kl
,Bl
t
,BF+l
,WRITE END OF ENTRY
BLOCKS TO OUfPUf TAPE
,L+2
,BF+2
,0
.,
,MTWRE2
,MfINRW
,
,HSPE3
,MTCHEK
,CHECK OlITPUf TAPE
,
,EXIT
,77
,CONSTANTS
,47474
,425101
,23001
,J0101
,10101
,15201
,00104
,46650
,151.31
,65473
,70000
,40000
,22404
,11423
,037'62

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

*$$
$
$

Ul

-J

00440 00440 00 00000 07770
00441 00441 00 00000 00200
00442 00442 00 00000 01775
00443 00443 00 00000 50000
00444 00444 00 00000 00776
00445 00445 11 03313 03315
00446 00446 00 00001 00001
00447 00447 00 00000 00010
00450 00450 00 00000 50007
00451 00451 11 01320 01316
00452 00452 00 01321 01317
00453 00453 00 00000 07777
00454 00454 11 01317 01316
00455 00455 00 01316 00000
00456 00456 00 00010 00000
00457 00457 77 70000 00000
00460 00460 00 00000 70000
00461 00461 00 50000 00006
00462 00462 00 07777 00000
00463 00463 00 07777 77777
00464 00464 00 00000 00777
00465 00465 00 00200 00000
00466 00466 00 00170 00000
00467 00467 00 00000 77777
00470 00470 00 07770 00000
00471 00471 00 00000 07777
00472 00472 00 00002 00002
00473 00473 00 00000 00001
00474 00474 00 00000 00002
00475 00475 00 00002 00000
00476 00476 00 00000 00003
00477 00477 00 00000 00005
00500 00500 00 00000 00006
00501 00501 00 00006 00000
00502 00502 00 00000 00007
00503 00503 00 00000 00017
00504 00504 00 00000 00170
00505 00505 00 00170 00000

X

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X

288.
289.
290.
291.
292.
293.
294.
295.
296.
297.
298.
299.
300.
301.
302.
303.
304.
305.
306.
307.
308.
309.
310.
311.
312.
313.
314.
315.
316.
317.
318.
319.
320.
321.
322.
323.
324.
325.

, C17
, C18
, C20
, C21
, C22
, C23
, C24
, C25
, C26
, C27
, C28
, C30
, C32
, C33
, Kl
,K2
• K3
, K4
• K5
• K6
, K7
, K8
, K9
, KI0
, Kll
, K12
, K13
, IV
, 2V
, 2U
, 3V
, 5V
, 6V
, 6U

,7V
, 15V
, 120V
, 120U

, B
, B
, B
, TP

, B
B

,
,BF+I021
,1

,

,

, TP

,BF+2
,BF+3

,

B

, TP

,
,
,
,
,
,
,
,
,
,
•
,

BOO
B77
BOO
BOO
B
B
B
B
B
B
B
B

,

,BF+l
,BF
,00010
.70000
,00000
.50000
,7777
,7777

,

,200
,170

,

,7770

,

,2

,

,7770
,200
,1021
,50000
,510
,BF+I023
,1
,10
,50007
,BF
,BF+1
,7777
,BF

,

,00000
,00000
,70000
,00006
,00000
,77777
,777
,00000
,00000
,77777
,00000
,7777
,2
,1
,2

,2

,

,

,3
,5
,6

.6

,
,120

,

,7
,15
.120

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

$
$
$
$
$

c:.n

CP

00506
00507
00510
00511
00512
00513
00514
00515
00516
00517
00520
00521
00522
00523
00524
00525
00526
00527
00530
00531
00532
00533
00534
00535
00536
00537
00540
00541
00542
00543
00544
00545
00546
00547
00550
00551
00552
00553

00506
00507
00510
00511
00512
00513
00514
00515
00516
00517
00520
00521
00522
00523
00524
00525
00526
00527
00530
00531
00532
00533
00534
00535
00536
00537
00540
00541
00542
00543
00544
00545
00546
00547
00550
00551
00552
00553

00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
00
11
11
16
15
17
11
41
17
45
21
21
21
31
75
32
11
75

00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000

00000
00000
00674
00674
00673
00673
00000
32000
00714
00000
00000
00554
00551
00712
00713
20170
30000
32000
10170

01001
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00000
00712
00713
00554
00551
00663
00714
00544
00657
30000
00701
00700
00675
00000
00552
00000
00713
00541

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
I

X

X
X

X
X
X
X
X
X
X
X

326.
327.
328.
329.
330.
331.
332.
333.
334.
335.
336.
337.
338.
339.
340.
341.
342.
343.
344.
345.
346.
347.
348.
349.
350.
351.
352.
353.
354.
355.
356.
357.
358.
359.
360.
361.
362.
363.

, 513V
, ICWOC ,
, OCWOC ,
, DELCWD,
, INPlJfS.
, NOWDS ,
, ADDCWD,
,QNP
, P
, TEMPI ,
, Tl
,T2
, T3
, T4
, T5
, T6
, T7
, T8
, T9
, TI0
,
, TIl
, MTWREl, TP
, TP
, MTWRE2, TV
, TU
, EF
,
, TP
, MTWRI , IJ
,
, EF
, MTWREX, MJ
, MTWR2 , RA
, RA
, RA
, SP
,
, RPU
, MlWR3 , SA
, TP
, RPV

,513
,0
,0
,0
,0
,0
,0
,0
,0
,0

,

,

,MTZERO
,MTZERO
,MTSET
,MTSET

,MTBLKS
,MTSUM
,MTEW
,MTWR3
,MTWRIT
,MTINDI
,MTWR2
,MTSTOP
,FILL
,MT120V
,MT120U
,MTIV
,0
,L+2
,0
,MTSUM

,

,A
,MTINDI

,
,MTEW
,MTWR3
,MTBLKS
,MTSUM
,120
,FILL
,A
,,120

~MTWRI

,

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
,
$
,ENTRY 1 WRITE MAG TAPE $
,
$
,ENTRY 2
$
$
$
$
$
,
$
,EXIT FOR WRITE MJ~G TAPE $
$
$
$
$
$
$
$
$

,TEMPORARI ES

CJ1

-.0

00554
00555
00556
00551
00560
00561
00562
00563
00564
00565
00566
00561
00510
00511
00572
00513
00514
00515
00516
00511
00600
00601
00602
00603
00604
00605
00606
00601
00610
00611
00612
00613
00614
00615
00616
00611
00620
00621

00554
00555
00556
00551
00560
00561
00562
00563
00564
00565
00566
00561
00510
00511
00572
00513
00514
00515
00516
00511
00600
00601
00602
00603
00604
00605
00606
00601
00610
00611
00612
00613
00614
00615
00616
00611
00620
00621

11
16
11
41
11
11
41
11
11
45
21
15
16
16
41
41
15
11
31
21
54
61
44
31
44
11
45
11
21
45
11
21
45
11
23
31
11
45

10000
00613
32000
00560
00000
00611
00114
00000
00000
00000
00510
10110
10000
00000
00513
00115
00110
00103
00104
32000
32000
00000
00603
30000
00062
00000
00000
00000
00606
00000
00000
00606
00000
00000
00606
00611
00000
00000

30000
00510
00114
00565
00661
00115
00566
00651
00660
30000
00101
00511
30000
32000
00561
00605
00603
31000
00044
00105
00006
32000
00600
00044
00600
00611
00601
00661
00616
00611
00662
00616
00611
00660
00100
00620
00661
00561

X
X
X
X
X

X
X
X
X
X
X
X

X
X
X
X

X
X
X

X
X
X
X
X
X

X
X
X
X
X

X
X

X
X
X
X
X
X

364.
365.
366.
361.
368.
369.
310.
311.
372.
313.
314.
375.
316.
311.
318.
319.
380.
381.
382.
383.
384.
385.
386.
381.
388.
389.
390.
391.
392.
393.
394.
395.
396.
391.
398.
399.
400.
401.

, MTEW ,
, MTREAD.
,
,
,
,
, MTRDI ,
,
,
,
,
, MTRDEX,
, MTRD2 ,
,
, MTER ,
,
,
,
,
,
,
,

,

EWB
TV
TP
ZJ
EF
TP
IJ
EF
EF
MJ
RA
RPV
ERB
ERA
ZJ
IJ
TU
TP
SP

, CC

, MTRD3 ,LA
, PR
, QJ
, SP
, QJ
, MTRD4 , EF
, MJ
, EF
, RA
, MJ
, EF
, RA
t MJ
t
t EF
, RS
t
, MTRD5 , RJ
, EF
, MJ
t

,
,MTSET
,A
,L+l
t

,MT5V
,MTINDI

,
,MTER
,120

,
,L+l
,MTIND2
,MTK6
,MTKI
,MTK2
,A
,A

,

,L+l
,FILL
,ALARM 1

,
,MTRD4+1
,
f

,MTRD4+1

,
,MTRD4+1
L

t

t

,FILL
,MTER
,MTINDI
,MTRDEX
,MTRDFW
,MTIND2
,MTRD2
,MTSTOP
,MTNOBI
,FILL
,MT120V
,L+2
,FILL
,A
,MTRDI
,MTRD4
,MTRD3+3
,Q
,36
,MTK3
,6
,A
,MTRD3
,36
,MTRD3
,MTMVBA
,L+l
,MTHIBI
,MT3V
,MTRD5
,MTLOBI
,MT3V
t MTRD 5
,MTNOBI
,MT6V
,L+l
,MTRDFW
,MTRD2+1

,
,ENTRY TO READ Mf

• FOR READ MT
.EXIT
t

t

,

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

0'
0

00622
00623
00624
00625
00626
00627
00630
00631
00632
00633
00634
00635
00636
00637
00640
00641
00642
00643
00644
00645
00646
00647
00650
00651
00652
00653
00654
00655
00656
00657
00660
00661
00662
00663
00664
00665
00666
00667

00622
00623
00624
00625
00626
00627
00630
00631
00632
00633
00634
00635
00636
00637
00640
00641
00642
00643
00644
00645
00646
00647
00650
00651
00652
00653
00654
00655
00656
00657
00660
00661
00662
00663
00664
00665
00666
00667

75
11
17
11
41
17
17
37
31
47
17
45
31
32
75
34
11
37
75
76
76
47
41
15
45
17
37
17
45
02

02
02
02
02

02
02
02
02

10170
00674
00000
00677
00712
00000
00000
00643
00713
00651
00000
00000
00457
00713
20170
01316
32000
00643
10170
10000
00000
00650
00715
00711
00000
00000
00617
00000
00000
00600
00001
00001
00001
00006
00012
00200
00004
00002

00624
01316
00664
00715
00636
00657
00665
00636
00000
00634
00660
30000
00011
00000
00642
00000
00713
00644
00646
01316
32000
00625
00653
00603
00575
00666
00606
00664
00644
00000
50000
70000
60000
00000

00000
00000
00001
00000

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

402.
403.
404.
405.
406.
407.
408.
409.
410.
411.
412.
413.
414.
415.
416.
417.
418.
419.
420.
421.
422.
423.
424.
425.
426.
427.
428.
429.
430.
431.
432.
433.
434.
435.
436.
437.
438.
439.

, MfCHEK,
,
,
, MTCH2 ,
,
,
,
,
,
,
,
,
• MTCHEX,
,
,
,
,
,
,
, MTCH3 ,
,
,
,
,
•
,
, MTCH5 ,
,
,
,
,
, MTSTOP,
, MTNOBI,
, MTHI BI,
• MTLOBI.
, MfWRIT,
, MTRDBW,
, MTOURW,
, MTMVFW,
, MTRDFW,

RPV
TP
EF
TP
IJ
EF
EF
RJ
SP
ZJ
EF
MJ
SP
SA
RPU
SS
TP
RJ
RPV
ERB
ERA
ZJ
IJ
TU
MJ
EF
RJ
EF
MJ
B02
B02
B02
B02
B02
B02
B02
B02
BOO

,J20
,MTZERO

,

,MT5V
,MTBLKS

,
,MTCH3-1
,MTSUM
,MTCH5-2

,
,K2
,MTSUM
,120
,BF
,A
,L
,120

,
,L+1
,MTIND2
,MTK7

,
,MTRD5

,
,00600
,00001
,00001
.00001
,00006
,00012
,00200
.00004
.00002

,ENTRY TO CHECK MAG TAPE $
,BF
$
,MTHDBW
$
,MTIND2
$
,MTCHEX+1 ,
$
,MTSTOP
$
,MTOURW
$
,MTCHEX+l ,
$
,0
$
.L+l
$
,
,MTNOBI
$
,FILL
,EXIT FOR CHECK MAG TAPE $
,9
$
,0
$
t
,L+2
$
,0
$
,MTSUM
$
,L+l
$
,L+~~

tL+~~

,BF
,A
,MTCH2
,MTCH5
,MTHD3+3
,MTHD3-3
,MTMVFW
,MTHD4+1
,MTHDBW
,MTCH3
,00000
,50000
,70000
,60000
,00000
,001000
.001000
,00001
,00000

,

$
$
$
$
$
$
$
$
$
$
$
$
",.

.;

t

$
$
$
$
$

l

0"~

00670 00670 02 00200
00671 00671 02 00014
00672 00672 02 00004
00673 00673 00 01126
00674 00674 00 00000
00675 00675 00 00000
00676 00676 00 00000
00677 00677 00 00000
00700 00700 00 00000
00701 00701 00 00000
00702 00702 00 00170
00703 00703 00 01006
00704 00704 45 47040
00705 00705 26 30141
00706 00706 12 20302
00707 00707 16 05201
00710 00710 00 00706
00711 00711 00 00707
00712 00712 00 00000
00713 00713 00 00000
00714 00714 00 00000
00715 00715 00 00000

00000
00001
00000
01126
00000
00001
00003
00005
00006
00170
00000
00000
70104
12404
20404
63604
00000
00000
00000
00000
00000
00000

00000
10214
01262
30005
01300
30003
01305
01310
01311
01312
01313
01314
01275

00000
01143
00716
01145
00742
01147
01012
01016
01020
01022
01024
01026
01140

01140 01140 00
01141 01141 75
01142 01142 11
01143 01143 75
01144 01144 11
01145 01145 75
01146 01146 11
01147 01147 11
01150 01150 11
01151 01151 11
01152 01152 11
01153 01153 11
01154 01154 11

X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X

440.
441.
442.
443.
444.
445.
446.
447.
448.
449.
450.
451.
452.
453.
454.
455.
456.
457.
458.
459.
460.
461.
462.
463.
464.
465.
466.
467.
468.
469.
470.
471.
472.
473.
474
475.
476.
477.

, MTINRW, B02
, MTMVBA, 802
, MVFWIN, B02
t MTSET ,
, MTZERO,
, MT1V
, MT3V , B
, MT5V
, MT6V ,
, MT120V,
, MT120U,
, MTK1 , BOO
, MTK2 , B45
, MTK3 , B26
, MTK4 , B12
, MTK5 , B16
, MTK6
, MTK7 ,
, MTBLKS,
t MTSUM ,
, MTINDl,
, MTIND2,
, HSPBKT t RESERV
, HSPBLK, RESERV
, HSPTS , RESERV
, HSPCTR,
, HSPEI , RPV
, TP
, RPB
, TP
, RPB
, TP
, TP
, TP
• TP
, TP
t TP
, TP

,00200
,00014
,00004
,BF-120

,
,120
,01006
,47040
,30141
,20302
,05201
,MfK4
,MTK5

,
,20
,120
,6
,140
,HSPKI
,5
,HSPHDI
,3
,HSPHD2
,HSPHD2+3
,HSPHD2+4
,HSPHD2+5
,HSPHD2+6
,HSPHD2+7
,HSP4V

,00000
,00001
,00000
,BF-120
,0
,1
_,3
,5
,6
,120

,

,00000
,70104
,12404
,20404
,63604
,0
,0
,0
,0
,0
,0
,20
,120
,6
,
,0
,ENTRY 1 HSP LISTING
,L+2
,HSPBKT
,L+2
,HSPBLK
,
,L+2
,HSPBLK+40,
,HSPBLK+44 ,
,HSPBLK+46,
,HSPBLK+48,
,HSPBLK+50 t
,HSPBLK+52 ,
,HSPCTR

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

0"[\j

01155
01156
01157
01160
01161
01162
01163
01164
01165
01166
01167
01170
01171
01172
01173
01174
01175
01176
01177
01200
01201
01202
01203
01204
01205
01206
01207
01210
01211
01212
01213
01214
01215
01216
01217
01220
01221
01222

01155
01156
01157
01160
01161
01162
01163
01164
01165
01166
01167
01170
01171
01172
01173
01174
01175
01176
01177
01200
01201
01202
01203
01204
01205
01206
01207
01210
01211
01212
01213
01214
01215
01216
01217
01220
01221
01222

45
11
51
55
51
36
37
11
11
23
37
11
31
37
11
11
51
55
51
55
51
37
11
31
37
11
31
37
11
21
71
35
75
00
31
43
37
45

00000 01222 X
01316 31000 X
01264 01136 X
31000 00022 X
01263 32000 X
00503 32000 X
01247 01231 X
32000 00716 X
01323 00720 X
01136 01276 X
01247 01231 X
32000 00722 X
01321 00000 X
01247 01231 X
32000 00724 X
01320 31000 X
01263 01136 X
31000 00022 X
01263 01137 X
31000 00011 X
01263 32000 X
01247 01231 X
32000 00730 X
01136 00000 X
01247 01231 X
32000 00732 X
01137 00000 X
01247 01231 X
32000 00726 X
01140 01273 X
01140 01277 X
01265 01216 X
30024 01217 X
00000 00000 X
01140 00000 X
01276 01223 X
01221 01222 X
00000 30000 X

478.
479.
480.
481.

482.
483.
484.
485.
486.
487.
488.
489.
490.
491.
492.
493.
494.
495.
496.
497.
498.
499.
500.
501.
502.
503.
504.
505.
506.
507.
508.
509.
510.
511.
512.
513.
514.
515.

,

,
, HSPE2 ,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
•
,

MJ
TP
QT
LQ
QT
ST
RJ
TP
TP
RS
RJ
TP
SP
RJ
TP
TP
QT
LQ
QT

,LQ
,
,
,
,
,
,
,
,
,
,
,
t HSPI
,
,
,
,
,
,
,
,
, HSP2 •
, HSPEX ,

QT
RJ
TP
SP
RJ
TP
SP
RJ
TP
RA
MP
AT
RPB
B
SP
EJ
RJ
MJ

,
,BF
,HSPK3
,Q
,HSPK2
,15V
,HSP5

,A
,BF+5
,HSPTS+4
,HSP5

,A
,BF+3
,HSP5
,A
,BF+2
,HSPK2

.Q
,HSPK2
,Q
,HSPK2
,HSP5
,A
,HSPTS+4
,HSP5
,A
.HSPTS+5
,HSP5
,A
,HSPCTR
,HSPCTR
,HSPK4
,20

,

,HSPCTR
.HSP6V

,L
t

,HSPEX
,Q
,HSPTS+4
,18

,
,ENTRY 2 HSP LISTING

,A
,A
,HSP3
,HSPBKT
,HSPBKT+2 ,
,HSP6V
,HSP3
,HSPBKT+4 ,
,0
,HSP3
,HSPBKT+6 ,
,Q
,HSPTS+4
,18
,HSPTS+5

t

,9
,A
,
,HSP3
,HSPBKT+10,
,0
,
,HSP3
,HSPBKT+12,
,0
,HSP3
,HSPBKT+8 ,
,HSPIV
,HSP20V
,L+2
,L+2
,0

,a

,HSP2A
,L+l
,FILL

,
,EXIT FOR HSP LISTING

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

0"
VJ

01223
01224
01225
01226
01227
01230
01231
01232
01233
01234
01235
01236
01237
01240
01241
01242
01243
01244
01245
01246
01247
01250
01251
01252
01253
01254
01255
01256
01257
01260
01261
01262
01263
01264
01265
01266
01267
01270

01223
01224
01225
01226
01227
01230
01231
01232
01233
01234
01235
01236
01237
01240
01241
01242
01243
01244
01245
01246
01247
01250
01251
01252
01253
01254
01255
01256
01257
01260
01261
01262
01263
01264
01265
01266
01267
01270

17
23
75
77
75
11
75
73
35
23
42
42
42
45
21
21
21
31
75
32
45
75
11
37
31
37
11
11
37
11
45
01
00
00
11
00
00
00

00000 01272
01140 32000
10170 01227
10000 00742
10170 01221
01262 00742
30003 01233
01266 01132
01274 01135
31000 32000
01132 01241
01133 01242
01134 01243
00000 01244
01132 01274
01133 01274
01134 01274
01262 00052
20004 01247
01132 00006
00000 30000
10024 01252
01262 00716
01221 01212
00712 00000
01247 01231
32000 00716
01315 00717
01221 01212
01271 01106
00000 01223
01010 10101
00000 00777
00000 77777
00716 ·00716
00000 01750
00000 00144
00000 00012

x 516.
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

517.
518.
519.
520.
521.
522.
523.
524.
525.
526.
527.
528.
529.
530.
531.
532.
533.
534.
535.
536.
537.
538.
539.
540.
541.
542.
543.
544.
545.
546.
547.
548.
549.
550.
551.
552.
553.

, HSP2A , EF
, RS
, RPV
, EWB
, RPV
,
, TP
t HSP3
t RPB
, DV
, AT
, RS
, TJ
, TJ
, TJ
, MJ
, HSP4 , RA
, RA
, RA
, SP
, RPU
, SA
, HSP5 , MJ
, HSPE3 , RPV
, TP
, RJ
, SP
, RJ
, TP
, TP
, RJ
, TP
, MJ
, HSPKI , BOI
, HSPK2 , B
, HSPK3 , B
, HSPK4 , TP
, HSPKS , X
t X
, X

, HspeTR
,120

•,120
.HSPKI
,3
,HSPKS
,HSP2V

,Q
,HSPTS
,HSPTS+l
,HSPTS+2

,

,HSPTS
,HSPTS+l
,HSPTS+2
,HSPKI
,4
,HSPTS

,

,20
,HSPK1
,HSP2
,MTBLKS
,HSP5
,A
,HSPHD3
,HSP2
,HSPK6

,

,01010

,
,HSPBKT

,HSPWR
,A
,L+2
,HSPBLK
,HSP2
,HSPBLK
,L+2
,HSPTS
,HSPTS+3
,A
,HSP4
,HSP4+1
,HSP4+2
,HSP4+3
,HSP2V
,HSP2V
,HSP2V
,42
,L+2
,6
,FILL
•,ENTRY 3 HSP LISTING
,L+2
,HSPBKT
,HSP1
,0
,HSP3
,HSPBKT
,HSPBKT+l ,
,
,HSPI
,HSPBLK+I00,
,HSP2A
,10101
,777
,
,77777
,HSPBLK-20,
,1000
,100
,10

$
$
$
:$

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

0"-

~

01271 01271 37
01272 01272 02
01273 01273 00
01274 01274 00
01275 01275 00
01276 01276 00
01277 01277 00
01300 01300 67
01301 01301 30
01302 01302 51
01303 01303 01
01304 01304 54
01305 01305 52
01306 01306 51
01307 01307 01
01310 01310 01
01311 01311 34
01312 01312 01
01313 01313 01
01314 01314 01
01315 01315 25

60010
00646
00000
00000
00000
00000
00000
50342
01656
67663
46342
73010
51653
50010
50244
71515
50526
01010
01010
01010
46512

10101 X 554.
30000 X 555.
00001 X 556.
00002 X 557.
00004 X 558.
00006 X 559.
00024 X 560.
65127 X 561.
72554 X 562.
45030 X 563.
55424 X 564.
10137 X 565.
46634 X 566.
10101 X 567.
73001 X 568.
42765 X 569.
76665 X 570.
15301 X 571.
15001 X 572.
15201 X 573.
64565 X 574.
X 575.
X 576.

, HSPK6 ,
HSPWR ,
• HSP1V ,
, HSP2V ,
• HSP4V ,
• HSP6V ,
, HSP20V,
, HSPHD1,
•
,
,
,
, HSPHD2,
,
•
,
,
,
,
,
, HSPHD3,
, BF
,
,
t

B37
B02

867
B30
B51
B01
854
B52
B51
B01
B01
B34
B01
B01
B01
B25
EQUALS
ENDSUB

,60010
,00646

,10101
,30000
,1
,2
,4
.6
,20
•
.50342
.651'27
,01656
,72554
,67663
,45030
,46342
,55424
.73010
,10137
,46634
.51653
,50010
,10101
,50244
,73001
,71515
,42765
,50526
,76665
,01010
,15301
,01010
,15001
,01010
,15201
,46512
.64565
,HSPHD3+1 ,

$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$
$

B.

Permanent Library Routines

The Permanent Library consists of routines required by UNICODE to provide
its Input/Output facilities, and the general exponentiation system. Three
sections of the Master Tape are used to contain the routines and related
information in positions most advantageous to the compiling procedure.
The first such section is the Permanent Library Catalog containing the
names of all routines and their associated UNICODE call words.

This catalog

is read from the Master Tape by the Dimension #2 Translator and is stored
in the Combination List.

It is then available throughout the Translation

phase for recognition and proper handling of references to these routines.
The second section of the Permanent Library appearing on the Master Tape
is Op File I consisting of an item for each routine.

This file gives all the

information that is necessary in allocating storage to those routines used
by the various segments of the Object Program.
The third section is the collection of Permanent Library routines coded
relative to address 01000.

These routines are read from the Master Tape

by the processor and modified according to the Object Program addresses given
by the allocator.

65

Permanent Library Catalog

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24

RE
IA
0
31
0
32
0
70
0
46
0
30
0
65
0
31
0
46
0
54
0
34
0
CA

LC7230
LC
0
46307
0
30505
0
24543
0
50777
0
72527
0
53546
0
46662
0

34656
0
30242
0

50662
0

24
25266
50002
25171
50012
07252
50022
77777
50031
77777
50041
67777
50051
67066
50062
65450
50077
75450
50100
67066
50112

No, words following
FLEXPT

GENPOW
VAREXP
LN
EXP
SQRT
FLTC VT
LISTRN
READRN
INTCVT

LC25

66

Op File I for Permanent Library Routines

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35

RE
IA
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
74
CA

PF7230
PF
50002
0
50012

0
50002
50022
50051
50022
0
50002
50031
50041
50031
0
50002
50041
0
50002
50051
0
50002
50062

0
50077

0
50100
0
50112

0
74747
PF36

2
41
5
107
0
0
0
5
113
0
0
0
3
67
0
3
77
0
3
53
0
2
203
2
234
2
606
2
73
47474

FLEXPT
GENPOW

VAREXP

LN

EXP

SQRT

FLTCVT
LISTRN
READRN
INTCVT
End Sentinel

67

Region Definitions for Permanent Library Loading
RE

TPI0

50002

1\J..:.

01:'

O'.Tl')nn
1 nt:..vv

oJVV.l~

RE

VP370

50022

RE

L1\l56 0

50031

RE

EX750

50041

RE

SQl140

50051

01:'

IU;'

ur
1 'l'ln
VV.loJoJV

oJVVV"

RE

W11710

50077

RE

NI2270

50100

RE

CI3230

50112

RE

PTI000

50002

RE

GPI000

50012

RE

VEI000

50022

RE

LGI000

50031

RE

XPloo0

50041

RE

SRloo0

50051

R~

CV1000

50062

RE
RE
RE
RE
RE
RE
RE
RE

1W1000
XEl147
RVl157
TZ1200
GT210
B171oo4
BF71oo5
TN71003

50077

RE
RE
RE
RE
RE
RE

1NI0oo
DRI012
BMII01
ST1131
PSl146
SC1233

50100

e::fV\l'l

~nnt...?

68

RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE

MF1243
TB1252
EP1264
GG1303
CF1473
NT1551
XXI552
CC1557
FX71 000
8U610
GT210
PR77250

RE

ICI000

50112

69

Flex-Print Routine (50002)
Purpose
To print out a stored sequence of Flex codes, with automatic
carriage returns where required.
Calling Sequence

a

TP

L(Parameter 1)

PT3

+1

TP

L(Parameter 2)

PT4

RJ
+3

PTI

PT

Control returned here

Parameter 1 is 00 - L - n, where L = initial loco of stored
Flex codes, and n = no. of words. The characters should be packed
to the left, and filled in with zeros.
Parameter 2 is 00 - x - x, where x = address of an index previously
set to the desired number of characters per line. Each time a
character is printed by this routine, this index is reduced, and when
zero a c.r. is given

and the index reset to 79 10 .

Storage
378 orders and constants
2
erasable locations

70

Flex-Print Routine (50002)

IA

o

o

o
o
o
PT

o
1

2

3
4
5

6

7
10
11

12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40

31
MJ
RJ
MJ

~TP
TV
TV
TV
TV

IJ

MJ
TP
LQ
PR
Qf

EJ
EJ

TP
50002

45

o
o

6

o

o

46307

25266
PT5
30000
[3000Q]
300001
.3000QJ
PT37
PT37
PT14
PT22}
PT24
PT14
PT2

o
o

30000

o
30000
30000
PT31
PT3
PT3
PT4
PT4
PT37

o

~OOOQ)
Q

o

PT32
PT33
PT34

IJ

~OOOQ]

PR
TP
RS

PT35

ZJ

RA

MJ

o
o
o
o
o

o

CA

o

Q

PT15
PT14

o
o
o
o
o

o
1

TP45

31

2

Q

Call word; No. of lines prelude &
routine
No. of lines for address modification
No. of unmodifiable constants
No. of inputs
No. of outputs
Name (FLEXPT)
EXIT
Parameter; u = init. loc.; v = No. of words
Line index address. u & v = address
Zeroize index
Set it up
Location of 1st word
Set line index addresses
Countdown
Word for printing to Q

6

Q45
PT40
PT25}
PT25
PT25
PT16
[;IDoo~
PT40
PT27
PT36
PT12

o
77
47
57
117

o

Print one character
Save it
Test for non-printing character
Car. ret. (if necessary)
Reset index
Delete character already printed
Modify
and back
Constant

79 decimal
Constant
Erasable (number of words index)
Erasable (Temp. storage for printed
digit code)

71

General Power Routine (50012)
This routine is called from the Permanent Library as a result of thp
appearance in the source program of an expression of the form X POW Y where Y
is unknown during compilation.
The routine tests the values of X and Y during the Object Program to
determine what other routine, if any, of the Permanent Library is needed to
evaluate the expression.

For special cases of X and Y values the expression

is evaluated within this routine.
x

= 0,

y>O; x f 0, y

= O.

These include integral values for Iyl <64;

Other cases are handled by reference to the

Variable Exponent or to the Square Root routines.

72

GENPOW (50012)

GP

0
I
2
3
4
5
6
7
10
II
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36

IA
0
0
0
0
0
32
MJ
RJ
MJ
0
0
0
SP
ZJ
EJ
TJ
TP
10
TP
10
TP
RJ
10
MS
TP
10
TP
10
MJ
TP
TP
MJ
TM
ZJ
TP
TP
MJ
EJ
TJ
TP
10
TP
10
RJ
10

PW
50012
0

0
0

126
104
14
2

No. of words for address modification
No. of unmodifiable constants

0

1

30505
0
30000
0
0

25171
GP6
30000
30000
0
0
0
0
GPI0
GP17
GP22

0

0
GP4
GP25
GP5
GP5
GP70
0
GP71
0
GP73
50002
2
0
GP67
0
GP71
0
0
A
A
0
GP5
GP32
GP76
Q

0
GP75
GP77
GP4
0
GP5
0
50022
2

Y
X

Name (GENPOW)
Entry
Exit
Out
In X (base)
In Y (exponent)

}

~0002}
50002
4
GPI06
50002
0
GP2

X = O?
Y = O?
Y > O?

RUN ERROR 2 (X = 0, Y< 0)
Set index

~0002}
50002

RUN ERROR I (X = 0, Y = 0)

4
GP14
Q

GP3
GP2
A
GP27
Q

GP3
GP2
GP40
GP43
50022

}

}

Y
X = 0, Y > 0 => X = 0

X

f:. 0,

Y= 0

~

Y
X = 1

I YI = 1/2?
IYI < 64 ?

4

50022
5
50022
25

Use VAREXP (50022 )

73

37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76
77
100
101
102
103
104
105
106

MJ
TP
10
RJ
10
MJ
LT
LT
SS
SJ
TV
SP
LT
SP
ZJ
SP
SS
TU
TP
RP
FM
TP
SJ
FD
TP
MJ
0
0
0
0
0
0
20
20
20
45
04
04
45
04
04
CA

0
GP4
0
50051
2
0
10011
0
GP74
GP34
A
Q
0
A
GP34
Q
GP72
A
GP4
30000
Q

GP5
GP64
GP76
Q

0
GPI00
GPI03
GPI06
0
0
0
4000
14000
74000
45471
20121
57524
45471
20121
57744
PW126

GP2
50051
Use SQRT (50051)

4

50051
0
GP62
Q
A
0
GP47
GP50 }
30000
Q
0
GP54
")
0
17
J
GP60

}

Integral part ~Q
If IYI non-integral use VAREXP
l,rI

\1\

X

Q

GP62
GP4

Mantissa of Iyl ~Q35 ... 9
Characteristic + 128 ~ A
Less bias
If characteristic < 0 use VAREXP
Shift mantissa by characteristic

}

_

_

l ' _ __ __

integral so 10rlIl

I" I

III

,

-.1

~Q

Form X Iyl in Q

A

GP65
Q

GP3
GP2
3
3
GPI06
1
117
200
0
0
0
23406
20312
20445
23406
20312
20445

Y < O?
Form reciprocal of (Q) if Y < 0
Store resul t in output line
Parameter for RUN ERROR 1
Parameter for RUN ERROR 2
Index address
1
79
128
1/2 F. P.
1 F.P.
64 F.P.
CR CR l' R U N
~ E R R 0 R
1
~ CR
~ ~
CR CR t R U N
~ E R R 0 R
2
~ CR
~
Temporary

+

74

Vari ab Ie Expone nt Rout i ne (50022)
This routine is referenced directly from the Object Program equations as
a result of the appearance in the Source Program of expressions X POW Y or
a
X , where Y and a are known during compilation, but are neither integers with
magnitude less than 64, nor are they equal in magnitude to 1/2.
As stated previously, this routine may also be referenced by the General
Power routine as a result of the above determinations during the Object Program.
The routine references the Natural Logarithm routine and the Exponential
routine to evaluate the expression.

75

Y
VAREXP (50022) X
IA

VP

n
v

50022

133

rUT.
__ w., No. of lines

0

0

107

0

0

0

0

16
2

No. of words for address modification
No. of unmodifiable constants

0
VE

1
07252

Name (VAREXP)

0

0
70 24543
M.J 0

VE6

Entry

1

RJ

30000

30000

2

MJ

0

30000

3

0

0

0

Exit
Out

4

0

0

0

In

5
6

0
SP

0
VE4

0

In

7

ZJ

VE25

~EIO }

10

EJ

VE5

VE17

= O?
Y = O?

11

TJ

VE5

VE22

Y > O?

12

TP

VE71

50002

10

0

3

13

TP

VE73

50002

RUN ERROR 2

14

10 0
TP VE76

4
VE112

Set index

15

RJ

50002

50002

10 2
17

MS
TP

20

10 0
TP VE73

16

0
VE70

X (base)
Y (exponent)

X

(X

= 0,

Y < 0)

RUN ERROR 1 (X

= 0,

Y

0
VE2
50002
3
50002
4
VE14

22

10 0
MJ 0
TP A

Q

23

TP

A

VE3

24

MJ

0

VE2

21

Prelude & Routine

}

X

76

= 0,

Y> 0

Y

=> X

=0

= 0)

TM
ZJ

TP
TP
MJ
LT
LT

SJ

0
10011
0
VE77
VE45

36

TJ

VE75

VE40

37
40
41
42
43
44
45
46
47

MJ
TV

0
A

os characteristic of IY! S

SP

Q

VE52
VE41
30000

Integral part to Q

S5

VE5
VE32
VEl00

~E27
~E3

25
26
27
30
31
32
33
34
35

Q

Q

ZJ
TP

~E53
~E52

TP

VE45
VE4
VE47
VE72

10

0

50

TP

51
52

10
MJ
LT

VE73
0
0
0

53

QT

VE74

54

TM
10
RJ
10

VE4

56
57
60
61
62
63
64
65
66
67
70
71

72
73
74
75
76

2

FM Q
TP

Q

10
RJ
10
TP

0
50041

SJ

SP
ZJ
TN

0
VEIOI
VEI04
VEI07
VEl12

0

0

0
0

0
0

Is IY! an integer?

Y non-integral, is X > O?

RUN ERROR 3 (X < 0, Y non-i ntegra 1)

VE14

Set (Q) = 0 if Y is even integer or
non-integral
If Y is odd integer set output line to
1 indicator

Q
VE3
5003 I }

~OO31

Compute

VE5

Form Y . LN !X!

~0041}

LN Ixi in Q

Compute

eyeLNIXI

= IX!

Y ~ Q

50041

~E66
~E66

MJ
0
0
0
0

}

27

4

o

Q

}

50002

VE4
VE63
VE3
VE65

Q

XY = 1

~0002}

2

TP

=>

Mantissa of !YI ~Q35"'9
128 + characteristic of IYI ~ A
Less bias
If characteristic of !Y! < 0, Y is
non-integral
Characteristic ~ 28? If so IYI is even
integer

o

A

50031

=0

}

VE36

0

55

= O?

X f 0, IY!

Q
A

LT

0

Is IYI

VE2

SP
SJ

}

Q
VE3

}
}

Is X< O?
Is Y an odd integer?
X< 0 and Y is ojd integer, so form

- IX! Y

-+Q

VE2

3
3
3
VEl12
1
34

117

Parameter for RUN ERROR 1
Parameter for RUN ERROR 2
Parameter for RUN ERROR 3
Index address
1
28
79

77

77
100
101
102
103
104
105
106
107
110
111
112

0
20
45
04
04
45
04
04
45
04
04
CA

0
14000
45471
20121
~

... ,.n ..

::>I::>~q

45471
20121
57744
45471
20121
57704
VP133

200
0
23406
20312
n n. ..

A'"

128
1 F.P.
CR

CR

II

t

E

R

I.

1
~

1\

~Uqq~

'-'

'f

23406
20312
20445
23406
20312
20445

CR

CR ~
R

II
II

E

t

.

R
R

2

CR

CR

t

II
II

E

R

~ 3
Temporary

78

R
R

R
R

.

0

N
R

1\

f"D

U
'-'

Vll.

N
0 R
II CR
U N
0 R
II CR
U

Natural Logarithm Routine (50031)
This routine is adapted from the USE subroutine, WFMR03, Natural
Logarithm - Single Precision Floating Point.
Given X, this routine computes y(x) =*Loge
with accuracy: Iy(x) - Loge x I ~ 2-27
where X ranges: 2- 129 ~ x < 2127
For numerical method see Rand Sheet 42.

*Approximation.

79

X

Natural Logarithm Routine (50031)
IA

LN
50031

o
o
o
o
o

0
0
0
0

77
16
1
1

46

50010

10101

MJ

0

1

RJ

30000

2

MJ

LGO
3
4

5
6
7

10
11

12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33

34
35
36
37
40
41
42
43

o
o

LQ
TJ
UP
SS
LT
SP
AT
SS

0

LG5
30000
30000

0
0

o
o

LG4
LG57

A

Q

A
11

}

i2

}

LG55
0

LG54
LG56

DV

Q
Q

LT
TP
TP

2

LT

o

RA
TJ
LA
SA
MA

r.:r

Exit
Out
In

LG40
LG3

Q

MP

MP

Cw; No. of lines on tape
No. of lines for address modification
No. of unmodifiable constants
No. of inputs
No. of outputs
Name (LN)
Entry

53

LG47
LG50
Q
2
30000
LG24
LG13
LG66
LG60

Q
0

LG66

x

x > O? If not; alarm
Unpack x
Form and store C-l
Form and store y = (2u - Root 2)/
(2u + Root 2) scaled 34
2

2G4 }
LG24
Q

Form and store y scaled 34
Form (LN2 u-2)/y - (LN 2)/2~Q
scaled J5

LG4
A

30000
LG57
LG22
Al
}
43
~E66 }

Form 2Y + (LN2)/2 scaled
Form

LN2u

scaled

33~

69~A

A

MA
LT
NP
TP

LG3
37
LG3
LG3

LG60 }
LG3
~G6l }

Form and store (C-l)LN2 + LN2uI scaled 28

MJ

0

LG2
LG66
50002

Exit
Set index

TP LG62
TP LG45
10 0
TP LG46
10 0
RJ 50002
10 2

Form and store LN xin floating point

3

50002

RUN ERROR 4

4

50002

o

80

(LN x, x

~

0)

44
45
46
47
50
51
52
53
54
55
56
57
60
61
62
63
64
65
66

MS

0
0
AT
II

14
25
77
13
20
26
0
05
17
0
45
04
04
CA

0
LG63
LG66
LG51
50353
62377
25255
77777
24047
10000
50117
1
42710
70000
0

45471
20121
57644
LN77

LG2
3
LG66
Q

45377}
45540

47723
77445
46320
0
14640
0
27760
0
117
23406
20312
20445

Parameter for RUN ERROR 4
Index address
Dummy command
Rand coefficients scaled 35
Root 2 scaled 33
Bias for input
2 Root 2, scaled 33
LN2, scaled 33
Bias for output
Print index
CR CR t R U N
II E R R 0 R
II
~ 4 . II CR
Temporary

81

Exponential Routine (50041)
This routine is adapted from the USE subroutine, WFMR06, Exponential Single Precision Floating Point.
Given x, this routine computes y(x)
with accuracy:
where x ranges:

I

vex) -

EXP
EXP x

-129 loge2

~

= EXP*

I

x~

2

x

-27

x < 127 loge 2

For numerical method, see Ramo-Wooldridge EXP-2 in ERA Central Exchange
Letter No.8.

*Approximation

82

Exponential Routine (50041)

IA

o
o
o
o
o
XPO
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50

30
MJ
RJ
MJ
0
0
TP
UP
LT
AT

TJ
TP
TP
10
TP
10
RJ
10

EX
50041

o
o

107
56
23

o

1
1

o

72520

o

30000

o
o
o

11

~

XP63
XP64
XP72
XP51

o

XP52

o

50002
2

o
XP20
XP65
XP25

TV

A

LA

XP76
XP25

DV
ST
TU

TP
MP

LT

o

XP66
XP67
XP66
XP50
XP53
Q
1

RS
TP

30000
XP35
XPIO
Q
XP76
Q
XP44
XP3
XP3

EJ

A

AT

RA

TJ
NP
LA
AT
SJ

o
o
~P76 }

MS

SA

10101
XP5
30000
30000

XP4
XP76

SJ
SA
SJ

QJ
LT

Cw; no. of lines on tape
No. of lines for address modification
No. of unmodifiable constants
No. of inputs
No. of outputs
Name (EXP)
Entry

MJ

o

0

XP54

XP17
XP76
50002
3
50002

}

Exi t
Out
In X
Unpack X
Form C+8 in A and Q
If C > 34, X is out of range
Set index
RUN ERROR 5 (X is out of range)

4

50002

o

XP2

~P22 }

If C+8 < 0, form C+44 in A

XP22
XP23
30000}
XP26

If C+44

A

<

0, EXP X = 1

Set X in A scaled 35

o

X = K LN2 + R where R ~

XP76
XP3
XP35

Compute EXP R scaled 34

Q

ILN2/2 I

XP3
A
Q

XP70
XP33
XP7l
A33
XP3

Pack and adjust characteristic of EXP X

~P45 }

If characteristic underflow occurs,
EXP X is zero

Q
XP2
XP12

o

EXP X out of range?
Yes, so ALARM
Set-up
83

51
52
53
54
55
56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76

0
0
0
0
0

XP73
XP76
150
1333
10421

3
XP76
35404
23520
01327

0

52525

06225

02
10
17
20
77
0
0
13
26
0
17
0
45
04
04
CA

52525
0
77777
0
77777

25343
271
77777
0
77607
53
44
57737
37677

0

0
5620
13441
1

0

10000
0
45471
20121
57624
EXI07

0
117
23406
20312
20445

Parameter for RUN ERROR Print
Index address

-120
43
36
(LN 2)/2 scaled 35
L1\J 2 sea led 35

CR CR t R U N
II E R R 0 R
II CR
II ~ 5
Temporary

84

Square Root Routine (50051)
This routine is adapted from the USE subroutine, WFMR04, Square Root Single Precision Floating Point.
Given x, this routine computes y (x)
with accuracy:

where x ranges:

y(x)

-..IX

<

= Fx *

2-27

0 ~ x < 2127

The numerical method is by Newton-Raphson approximation.

*Approximation

85

Square Root Routine (50051)
IA SQ
50051

o

o
o
o
o

0

0
0

1

0

1

65
MJ
RJ
MJ

53546
0
30000

60101
SR5
30000
30000

5
6
7
10

TP
SJ
TP
TP

SR4
SR7
SR45
SR43

10

0

11

TP SR44
10 0
RJ 50002

SRO
1

2
0
300
4
0
0

12
13
14
15
16
17
20
21
22

23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46

o

A7i

SR14
SR52
50002
3

2

o

0
10

SR2

DV

AT
SP
DV

AT
Sf>
DV

AT
SP
SA

NP
TP
MJ
0
0
0
35

A

SR22

Set index
RUN ERROR 6 (SQRT X or X< 0)

50002
4
50002

10

SR17
A

Exit
Out
In X

o

MS
LT
TP
QJ
SA
TP
ZJ
SP
SA
LT
SP

A

Cw; no. of words on tape
No. of lInes for aaaress modiiication
No. of unmodifiable constants
No. of inputs
No. of outputs
SQRT
Entry

63
50
5

i:

If characteristic is odd (even), form
and store y = 2u eu), scaled 35

O}

SR3
SR2

}

If X

= 0,

SQRT

X

=0

A

o

SR46

37
SR52

First approximation is (y+(2 Root 2-1)/
~/2 scaled 31

33
A

Newton-Raphson Iteration

0

SR3
SR52
SR52
SR3
SR52
SR52
SR3
SR52
SR52
SR4
SR5
SR3
SR3
0
SR47
SR52
0
20236

SR52
35
A

SR52
37
A

SR3

o

Form characteristic of Root X

33
A
Q

Pack and exi t

SR2
3
SR52

Para.meter for RUN ERROR 6
Index address

117

31500

(2 Root 2-1)/2, scaled 35

86

47
50
51
52

45
04
04
CA

45471
20121
57664
SQ63

23406
20312
20445

CR CR t RUN
~ ERR
0 R
~ t 6 . ~ CR

Temporary

87

Floating-Point Conversion & Print-Out (50062)

To convert to decimal, and print out on-line, a binary floatingpoint number, with a carriage return depending on the contents of a
specified index.
Calling Sequence

a

TP

L(Number)

+1

TP

L(Parameter)

+2

RJ CV2

+3

CV3
CV4
CV

Control returned here.

The parameter is the same as "Parameter 2" described in the
Flex-print routine.
Storage
176 8
5

orders and constants.
erasable locations.

88

Floating Point to Decimal Print Routine (50062)
IA

o

VC
50062
0

o
o

0
0
0

o
o

CVO
1

2
3

4
5
6
7

10
11

12
13
14
15
16
17
20
21
22

23
24
25
26
27
30

31
32
33

34
35
36
37
4J
41
42
4:\

44
45
46
47
50
51

31
MJ
RJ
MJ
[0
[0
PR

46662
0
30000
0
30000
30000
0
TU CV4
TV CV4
TP CV3
ZJ CVl5
PR 0
RJ CVl37
MJ 0
TP CV142
TM A
SJ CV20
PH

0

RJ
SP
TJ
TJ
FD
RA
SP
TJ
MJ
FM
RS
SP
TJ
TP

CV137

UP

Q

CVl46
CV151
A

CVl76

2

o
67066
CV5
30000

~OOOQ]

30ooQ]
3OO0Ql

eV32
CV36
CVl50
CV162

Test v.
Test v.
Too big,
Increase

o

o
CV36
CV25
CVl50
CV162

A
CV176

Exi t
Quantity for conversion
Line index address
Shift down
Set up line index address

Negative?
Yes, print - sign
Count

CV150
0

Call word; no. of lines prelude + routine
No. of lines for address modification
No. of unmodifiable constants
No. of inputs
No. of outputs
Name (FLTCVT)
Entrance

CVIO
CV134}
CVl36
A57
CVl2
CVl63
CV134
CV2
CVl76
Q56
CV22
CVl6
CVl34

Q

Quantity ~ A
Zero?
Yes Print Zero
Go count
And out
Zeroize dec. expo store
Iql~Q

I q I---+A

MIN. Jump
MAX.+ 1.
divide by
dec. expo

Test v. 10.

Too small, so multiply by 10
Decrease exponent by 1

Q

o
CV32
CVl77
A42

Characteristic~A

55

C-

A
CVl77
CV145

0

HJ CV137
MJ 0

if too small
Jump if O.K.
10
by 1

If < , then O.K.

CV147

SS
TV A
SP CV177
TP A
LT 0
TP CV143
ZJ CV52
PH

204
142
34

If < 1, back again
O. K., in scale now.

Send to erasable

119~Av

CV42

[OJ

CV177
A4
CV200
CV47
CVl63
CVl34
CV57

Position point between AL, ~
Save fractional part
Integral part~Afl
8--.index, as 9 dIgits wanted (in ALL)
Integral part zero?
Yes, so print
Count
Jump to process fractional part

89

52

TU CV140

CVl16

53
54
55

TP CV143
RJ CV127
TP CV200

CV201
CVl13

JO

,-/

5J

vVJI

57
60
61
62
63
64
65
66
67

PR
RJ
SP
ZJ
SA
TP
LT
AT

IQ

CV2

o

CV137
CV177
CV63
CV177
A

o

CV12
30000

~~T~"'7

1

Non-zerg integral part. Start dividing
by 10
9 powers of 10 to be used (.'. 8~index)
Go convert
Now if digit index -ve, no fractional
__

.J

CV37
CV134
2

CV72
1

CV177
A45
CV67
3000Q]

~_.L.

lJcUl-

..l

_ _ ..J

.:

WClJll-~U

dJiU

LL

_____ 4- _

~

_ _

_ ......

;:)u,

VUL.

Otherwise, print decimal point
Go Count
4f
Zero?
No, then digit formed in AL
Preserve remainder
Digit to AR
Form print order

IV

flu

\..I V i.J I

I"'lT'~"'7

I"'lT,':>A
\..IV i.J':I:

r_ ... _+

71
72
73
74
75
76
77
100
101
102
103
104
105

IJ
TP
ZJ
PH
RJ
PR
RJ
PR
RJ
TP
SJ
PR
RJ
TM
TU
TP

CV200
CV176
CV74

CV61

Back for 9 digits in all
How about decimal exponent?
If zero, out.
Print space
Count
Print E
Count
Print space
Count
Exp --.A again
Sign?
Negative, so print
Count
I expl--.A
Start dividing with 10 1
2 powers of 10 (no matter about no. of
digits printed)
Convert exponent
And out.

"'7n

106

107
110
III
112
Integer
conversion 113
114
115

116
117
120
121

122
123
124
125

126
127

nT

0

CV137
0
CV137
0

CV137
CV176
CVI04
0
CV137
CV176
CV141
CV162

RJ CV127
MJ 0

A

CV2
CV44
CV134
CV55
CV134
CV44
CV134
A

CVI07
CV16
CV134
A

CVl16
CV201
CVl13
CV2

TP A
CV202
CV122
TP CV132
SP CV202
o
DV ~000Q] Q
CV202
TP A
RA CVl16 CV175
SP Q
o
U> 30000 300061
[0
30000
3OO0Q]
RJ CV137 CV134
RS CV200 CV162
I J CV201
CVI15
MJ 0
~oooQJ

VVUUI.

Int~working store
Set switch to suppress leading zeros
Prepare to divide
Divide by 10'1
Save remainder
Modify divisor address
Examine qu~tient
ZJ
: AT
CV123
PH
0
Count across line
Count 1 output digit
Count 1 powe r 10
Exit

90

130
131
132
133
134
135
136
137
140
141
142
143
144
145
146
147
150
151
152
153
154
155
156
157
160
161
162
163
164
165
166
167
170
171
172
173
174
175
176
177

CV133 C\l122 }
MJ 0
CV122
ZJ CV130 CV126 }
AT CV12
CV123
IJ ~OOOQ) CV137
PR 0
CV65
TP CV144 ~000Q)
MJ 0
~000Q]
0
0 CV152
0 CV161
0
0
0
0
0
0
10
0 0
117
16 70000 0
DE 1.0 A -lAF
DE 1.0AOAF
DE 1.0AIAF
DE 1.0A9AF
0 5753
60400
0
13200
461
0 36
41100
0
03240
3
0
23420
0
0 0
1750
0
0
144
0 0
12
0 0
1
0
0
37
0 0
52
0
0
74
0 0
70
0
0
64
62
0
0
0
0
66
0 0
72
60
0
0
0 0
33
0
0
1
CA VC204
TP

Set switch to commence printing
Instructional constants
Count down on line index
Carriage return
Reset index
And out
8
Address of 10 1
Address of 10
Zero
8
79
119 in ch. field
Min.
1
10
Ma~. +1
10
107

1~

10
104
103
102
10 1
100
0
1
2
3
4
5
6
7
8

Flex codes

9

Dec. exponent }
Fractional part

91

Working space

"Inner" List Routine (50077)
Pu~e

Either: - To convert a binary floating-point number to decimal
XS3 form, and insert in buffer
Or:

- To convert a binary fixed-point number to decimal
XS3 form, and insert in buffer

Or:

- To test buffer for contents, and if anything there,
to dump buffer onto tape, clearing out buffer afterwards.

Calling Sequence
1)

2)

To empty buffer onto tape (.Q.!!.!.x. after some other usage)

a

RJ

+1

~

IW2

Control returned here--+

To write a floating-point number (n)

a

TP

L(n)

A

+1

RJ

IW3

IW

+2
3)

IW3

~

Control returned here ----+

To write a fixed-point number ( i )

a

TP

L(i)

A

+1

RJ

IW3

IWl

+2

~

Control returned here ---+

Initialization
Before the first usage of this routine, we must have:
TV

BI

IW121

where Blv holds the address in the buffer of the first word to be written into.
Each word in binary, when converted, occupies four words in the List buffer.
Each List sentence will use this routine from 1 to 5 times, each time it is
referenced.

After the initializing order above, words will be sequentially

written in the buffer

(thus occupying, at most, one blockette).

92

After all

such references in one List sentence coding, we must increment BI (the buffer
index) so that the next reference starts in the next blockette (i.e., - next
line) at the correct point.
For I variable, increment BI by 4
For 2-5 variables, increment BI by 2010
When this has been done, test the index to see if the buffer needs to
be emptied.

(Test with BF165, where BF is initial address of buffer).

After

any emptying, reset BI, in the case of 2 to 4 variables, in order to space
the XS3 correctly in the middle of the paper.
For 2 variables, increment BI by 6
For 3 variables, increment BI by 4
For 4 variables, increment BI by 2
For I and 5 variables, writing starts at the left side of the paper.
In addition, fixed location TN should hold the current tape number.

93

Floating-Point Conversion
Clear 24 Digit
Code Storages, 1
'r-'--';~ Sign Code Storage,
1 Exponent Storage

Put Point in
12th Digi t

Is Number
Negative?

Is Number

P

Put Negative
Code in Indicator

No
Put Zero in
11th Digit Place
Multiply
Number by 10

Decrease
Exponent
b 1

Yes

Unpack
Number

ITake Absolute
Maunitude of
Number

Store Fractional
Part and Set
Index for 9-Digit
Output

Set up Subroutine
to Start Storing
in 11th Position
as Uni ts Spot

Put Zero Code in
11th Digit
Position
Put Negat:hre
Code, if Any, in
10th Digit Position

~~es~;

~>

Number?
o

[';i vide

~)y 10

[

Find Position
for Sign and
Insert if An

1 Billion

Number

Increase
Exponent
b 1

r

~.

en
~

Obtain Next Digit
of Decimal Conversion by an
SP u 2 Followed
by SA u 1

Set Up Storing
Instruction so
1st Figure of
Fraction Goes to
13th Digit
Position

-I

~~I

Store ExcessThree Code of
Di it
Set Up Next
Storing Address
of Excess-Three
Decimal

Store E Following
Last Decimal Digit
of Converted
Number in Digit
Temporary List

Insert Sign
Code as Needed

Add 3 to Decimal
Digit for ExcessThree Conversion

Clear Sign
Code Ind icator

Integral
Conversion

ake Absolute
Value of
Exponent

Put Excess-Three
Code for Negative
Si n in Indicator

Set Index For
Maximum of 2
Figures

Set Up Loader of
Conversion Subroutine to Units
Position of Exponent

Integral Conversion
Divide by 10 and
Store Quotient for
Next Time Through
Loop

Store Code in
Digit Temporary
Storage

Add 3 to Remainde-r to Form
Excess-Three Code
for Digit

Reduce Storing
Address by 1

Have
been
No

Fixed-Point Conversion

Clear 24 Digi t
Code Storages and
I Si n Code Stora e

Set Up Storing
Instruction of
r-----..,,... Conversi on Subroutine to Initial
18th Units Position

Set Index for a
Maximum of 11
Digits

{Is

Put Zero ExcessThree Code in 18th
Di it Position

Number

~Negative?

Put Negat i ve
Excess-Three Cod
in Tern orary

No
Put Negative Sign
Code, if Present,
in Stora e

Integral
Conversion

Take Absolute
Value of Number

Clearing Buffer

Clearing
uffer Entr

re First 10 Addresses in Buffer
all Zero?

Add Uniservo
No Number to Param.
~ eter Referencing ~ WrIte Buffer ~
Tape Handler
Block on Tape

Clear
Buffer

Yes

~~~~--------------------------------------------------~'
Reset Initial
Buffer Loading
Add ress to Fi rst

~_~~~~\1Xit
-

l.inf>

Packing of Co~dile~s~~~~~====~-----------Initialize Masking
Set Up I ndex for ~ Operate
Instruction
to
on First
.;.. 0 0to 77Q Mask ~ Set Up Index for
5
4 Words
Line of Temporaries
,~ 6 Characters in
Word

&
1

I-+)

o

"'1

rF-

,
Up Address of
Packing Instruction so next Code-=Will Come From
Next Address

Pack a Temporary
with an ExcessThree Code Obtained from Digit
Storage

Has a Word
No
Been Completed?~--------------------~
Yes

No

Have 4 word~ Increase Storing
Store Word
been Stored?
Address for Next ~ in Buffer
Word

n

o

:l
(""I'

Inner List Routine (50077)
IA

Prelude

IW

0
1
2
3
4

5
6
7

10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33

34
35
36
37
40
41
42
43
44
45
46
47
50
51

o

WI
50077

o

o
o

o
77

L~6MJ
MJ
MJ
MJ
RP
TP
TP
ZJ
TP
M.T
SJ

TP
TM
TJ
TJ
FD
RA
SP
TJ
MJ
FM
RS
SP
TJ
TP

77777

o

34656

o
o

o
o
10032
RV
RV7
IW12
RV3

o
IW13
RV2

o

65450
IW4
IWIOI
IWl25
30000
IW6 }
TZ
TZl3
IWIO
TZl2
IWll1
IWl5
TZ30

A

A

IW24
IW30
RV16
RVI

Q

o

Test v. Min., jump if too small
Test v. Max. +1, jump if O.K.
Too big, divide by 10
Increase exponent by I

RVl6

IW30
IWl7
RVl6
RVI

If now < 10.0, O. K.
Otherwise, divide again
Too small, multiply by 10
Decrease exponent by 1

Q

o

RV15

IW24
TZ33

If > 1.0, O.K., otherwise back
Now in range
Biased char. ~ACH
Position binary point between
AL and AR
Save fractional part
Integral part to AR
Set index to 8
Or is integral part zero?
Yes, insert zero code
Place sign in position
Go process fractional part
Units position is 11th digit code store
Go convert integral part
Find sign position
And insert it
If A < 0, no fractional digi ts (or exponent)
1st fractional position is 13th digit
code store

A

TZ31

o

A

TZ31
A

TZ33
RV13

TV
SP
TP
LT
TP
ZJ
TP
TP
MJ
TV
RJ
TV
TP

A

SJ

157
21
77775

u is call word
v is number of words in routine plus prelude
Number of lines for address modification
Number of unmodifiable constants
Number inputs (-2 for Processor)
Number outputs
Name (LISTRN)
Entry for floating-point conversion
Entry for fixed-point conversion
Entry for buffer emptying
Exit
Clear 24 digit code stores, one sign
code store, one exponent store
Insert point code
Quantity zero?
Yes, insert zero code
Go pack
Non-zero, test sign
Negative, so note

RV17
RV20

UP
SS

TV

206

TZ33
A

o

RV5
IW44
RV3
TZ30

o
IW41
IW146
IW143
TZ30
IWl11
XE7

A

55
}
IW34
30000
TZ33
A

TZ32
IW41
TZl2
TZII
IW51
IW143
IWl37
IW47
30000
IW51
IW56

98

FixedPoint
Conversion

52
53
54
55
56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76
77
100
101
102
103
104
105
106

107
110
III
112
113
114
115
Packing
of
Codes

Clear
Buffer

116

117
120
121
122
123
124
125
126
127
130
131
132
133
134
135
136

SP
ZJ
SA

LT
AT
RA

1J
TP
ZJ
TV
TP
TP
SJ
TP
SP
SA

TV
TP
TM
RJ
TV
TP
MJ
RP
TP
ZJ
TP
MJ
RJ
TV
TP
TP
TU
TP
TP
LA
QS
RA

1J
TP
RA

1J
MJ
SP
RP
TJ
SP
AT

RJ
RP
TP
TV

MJ

TZ33
IW54
TZ33
44
RV3
1W56
TZ32
TZ31
IW63
IW56
RVI0
RV
IW67
RV2
IW64
RV3
A

RVI
TZ31
IW146
IW143
TZ30

o

10031
RV
1WI06
RV3

o

XE6
IW143
TZ30
RV3
XE7
RVl1
RV4
TZ53
30000
IW116
TZ30
TZ33
IW121
TZ32

o

RV
20012
BF
TN
RV14
GT2
10171
RV
RVl4

o

2

1W6l
1

TZ33
30000
RVl
IW52

Form and
store code

A

~ow

IWlll
IW64
30000
TZ30
IW70 }
TZ30

o

IW135 }
1W130
17
GT3 }
GT
IW135 }
BI
BI
IW3

process decimal exponent

Find address for E
Store E code
Clear sign code temp. store
Note negative sign if wanted

~W143}

TZ32
Q
IW140
IW77 }
30000
IWl11
IWI03 }
TZ
IW104
TZ21
IWIll
XE
IWII0}
30000
TZ32
IWl16
Q
TZ30
6
TZ33
RV12
IW115
30000
RVI
IW114
IW3

Fractional loop

Units position of decimal exponent
is 3 beyond fiE·' store
1 to index

Go count
Insert sign code as required
Jump to pack
Fixed-point entry. Clear 2410 digit
code stores and 1 sign code store
Quantity zero
Yes, so note
Jump to pack
Patch correction
Negative sign in excess three
added, if number is negative
3 to 1st index
Initialize
Mask~Q

5 to 2nd index

Store one word in buffer
Increment buffer address
Jump to exit
If 1st 10 stores not> 0, buffer empty,
so out (but index may be at BF+n)
Tape number to u of A
Send parameter to GTH and write
block on tape
Clear buffer
Reset buffer index
Out

99

137
140
141
Integer
142
Conversion 143
144
145
146
CorrecXEO
tion
1
Patch for
2
Fixed3
Pt. Num4
bers
5

TP
SP
ZJ
DV
AT
RS

6
7

MJ

0

o
o

TZ

RV

0
1

2
3
4

5
6
7

Constants

10
11

12
13
14
15
16
17
20

IJ

A

o

IW142
RV6
RV3
IW143
TZ32

IW146
Q
30000
RVI
IW140
30000
IW143
TZ32
XES
TZ30

MJ

0

TV
TP
SJ
TP
TM
RJ

IWI04
RV6
XE3
RV2
A
IW146

o
o
o

o

o
o
o

o
o
o
16
74
DE
DE
DE
DE
CA

Integer -+Q

Q

Q

0
0
0
0
0
0

0
0
0
0
1

70000
20100
1.0
1.0
1.0
1.0
WI206

A

IW137
30000
TZ14

o

Divide by 10
Form and store code
Exit
units position is 18th temp. store
Set index to 1010
Is number negative?
Yes, put XS3 code in temporary
Take absolute value of number
Go convert
N~

u is beginning address of temporaries
v is location of period for floating pt.

1

2

Negative code

3
5

10
12
22
30

Code for period
Code for E

77

o

o

1005
o F
1

F

-1 F
9 F

119 in ch. field
GTH code
1.0

10.
0.1 (Min.)
Max. + 1

100

Explanation of Temporaries Used
TZ-TZ27 are used for storing the XS3 codes of the 4 words resulting from
anyone number that is listed by the routine.
and the exponent letter E are stored here.

Signs, decimal digits,

If the number is floating-

point, the units position is TZl2 and a period is put in TZl3.
fractional part of a floating-point number starts at TZl4.

The

If the

number is fixed-point, the units position is TZ2l.
TZ30 {Minus XS3 code is stored here, as needed.
Holds index for packing 6 characters in a word.
TZ31

Exponent of floating-point numbers that are to be expressed

in scientific notation is built up here.
Index for 9 digits of fractional part of floating-point number.
TZ32

Index for possible two digits of an exponent.
Index for 4-word output of anyone input number.
Index for maximum 11 decimal digits of an output number.
Floating-point number in a certain range put here temporarily.

TZ33

Fractional part of floating-point number put here
as it is converted to decimal form.
Output words of any number are built up here prior to insertion
in the Output Buffer of the List routine.

101

"Inner" READ Routine (50100)
Purpose
Either:

Or:

To position data tape to beginning of required data

To extract one word of decimally coded data from tape, and convert
to binary floating point.

Calling Sequence
1)

Tape positioning

a

TP

+1

RJ

+2 :

L(Variable Name)
IN
Abnormal ""end of data

I

INl
IN2
return

H

I

+3

Normal return, with tape positioned

~

a + 2 will hold a MJ instruction.

If READ is of type

including

"IF END OF DATA JUMP TO SENTENCE---tt, then the appropriate sentence
CW is filled into v.

Otherwise, we have MJ

0

a

,i.e., to return

to beginning of data, and commence extraction over again.
2)

Data Extraction

a

RJ

IN

+1
+2

TP
RA

Q

+3
+4

[

IN3

[

?

]

Normal return, word in Q

IJ
Abnormal return, insufficient data

If the routine is referenced enough

times to cause the tape to

move onto the next data set, an alarm stop is met.

If START is hit,

remainder of array is filled in with zeros, and exit is made at a + 4.
Initialization
None as such, but FX and FXl must hold the initial location of the
data index, andj n, n describing it, respectively.
Storage
606 8 orders, constants, and temps
+
+
Note:

1708 word buffer (which is termination buffer)
2 fixed locations.
This routine includes the XS3 to Floating-Point conversion routine
from GGO-CF16. (See Section III,3-Translation Subroutines.)

102

A Note on the Mechanism of Tape Positioning
The "data index" is read in and translated into the form shown in the
accompanying diagram.

When a variable is requested by generated READ coding,

the index is searched to find this variable, and hence thet\ape synonym."
is noted, and then scanning continued, to find the first ·'TAPE

tt

-

This

and hence

the containing tape number, and hence the uindicator."
Now, at the start of the problem, the tapes are rewound, and "ADATAA" placed
in the indicator.

If this is seen, we scan the tape forward, searching for

the required tape synonym.

If not, we search the index again, to determine

whether the "indicator" word can be found before the required synonym.
so, we scan the tape forward.

If not, we scan backward.

If

If the tape is at

the extreme end, this also is signified by a special "indicator", and the tape
scanned backward.
When positioning is completed, the synonym is placed in the indicator for
this tape.

103

INDEX FORMAT AND DESCRIPTION

The necessary information to describe the data index is contained in two
(running) fixed locations:
FX

o

L

L

+1

o

J,n

n

Where L is the initial location of the index, J

= 2,

and n

= number

of

locations occupied.
Format

I X

Vtl,l

+1

Stl,l

+2

Vtl ,2

+3

St 1 ,2

+4
I

Vtl,3

Where: V represents the name of the
variable as referenced in the program
S represents the synonym for
this data, as actually written on tape
t represents the octal tape
number containing all preceding information,
back as far as the previous "TAPE" word

~tl' 3

,

etc

it represents the tape synonym
of the data last read in from tape t.

I
I

T AP E

OOOOOOOOOOt

l

(N. B. This word may also hold nLl DATA A 4',
indic2t.ing that this tape is rewound, OR,
t
II ~ END.10· , showing that
the tape is at
the end of all information written thereon.)

Vt2, 1

St2,1
Vt2,2
St2,2
TAP E

OOOOOOOOOOt 2
tt2
I

etc.
V's will be XS-3 coded, pushed to the left of the word, and filled with 77's.
S's will be XS-3 coded, pushed to the right of the word, and filled with space
symbols.
104

"End of Dat a·' Procedure
This example shows three sets of A, each of two blocks, fOllowed by two
sets of B, each of three blocks.
r_ _ _

A
~A~

B

__________A_ _ __ _

Data extracted,
normal exit

1st Read A

v

2nd Read A

Data extracted,
normal exit

Data extracted,
normal exit

3rd Read A

:v

4th Read A (i)

So back up, leaving
B in indicator, take
end-of-data exit

( i i)

( i v)

Then

/'NO

Y-,....-l\,L-/-+----+--+---+-----I

/><;:Jump,
I
then eventually
:
'Re ad B
~'-+---+---'-i__
L-_+y__--1

V '..'

I

or

,

,
"-

Back up to start of A

jump)

I

I

B Sentinel seen

'Read A

105

Read forward, B seen,
go ahead, extract
data

Entry I
START

DATA EXTRACTION

Initialize ST
Routine.
r ~ ~~~ox 3
in®

Clear Input
Lines to Routine
GG (fl. pt.conv.)

Set CC~ 1110
(Index for
Character Extraction)

Enable Routine
GG Only.
K~M

M~~

2010~XX.

(i.e. Ignore 1st
Bloc ket te of any
One Data Set)

N~N3

(Set NC to pick
up NL for Initialization

Entry 2
TAPE POSITIONING

Inner Read Routine

Ini tializatim
for Data
Extraction

Normal
Exit

M

... MI

i . e., Enab Ie
Complementation
of Output from
Conversion

B ~--~--------------~

CC
(Countdown
Index)

CC-I~

on

Inner Read Routine (Cont.)

Scan to End of Field
----------------------------~~--------------------------l

Normal Exi

~

o
co

K~

L

i.e., Enable Output from GG to be
Raised to Appropriate Power

L~

Ll

i . e. As s u me a
Positive Decima
Exponent
I

O~XX4

(Results Store)

1 ~ CC
(Index)

Inner Read Routine (Cont.)

Add in C(XX4)
Times 1010' and
Place Result bac
in XX4

Subtract 3
from Character

L ~

CC-l~

CC

LQ

i.e .• Prepare
for negative
Decimal Exponen
Perform
RP W
i.e. Set NC to
Pick Up NL Routine
Next Time Used.
(To Start New
Bkt. )

FM

Q

L( 10)

Output of
GG~

Q

Perform
RP W
FD Q L(IO)

TN

Q

Q

EXIT
Inner Read Routine (Cont.)

START -..-,.

XX2 -1 ---;. XX2

XX1-1~XXl

(i.e., Decrease
Shift Index by

(Le., Decrease
Word Index by 1)

1)

___t:..___~ End
N~Nr)

of

'L'lne EXl. t

Inner Read Routine (Cont.)

r

+

(Box

--

START XX+20

1~

r

1)

~

5~XX2

XX

Box 1
Send Word from
pth row, rth pOSe
to XX3 (Word for
Current Processing)

6

~XX2

~~~

19

~

Set Normal
Exit

XXI

Shift C(XX3)
Left in Q by 6,
Mask Out 1
Character

Send Word in pth
row, rth pOSe
to XX3

Set
in

Normal
Exit

B~l
~

No
Read 1 Block of
Data from Tape
Referenced by TN,
in Forward
Direction

or 2nd Word
a Sentinel?

O~XX

Yes

ERROR ROUTI NE 2

Inner Read Routine (Cont.)

EXI

Box 2

Box 3
n-6~

START

LA

A n

AT

GGr

GGr

n

in Box 2

CCl-l

r+l+ r, Box 3

~

CCI

5

~ c~ ~30.
n

!lox

:~

EXIT

Inner Read Routine (Cont.)
~----------------------------------------------------------------------------------------.----------~

"Inner" Read Routine (50100)
IA

o

o
o
77

o
1:'\0
1

2
3
4

5
6
7

10
11

DRO
1

2
3
4

5
6

7
10
11

12
13
14
15
16
17
20
21
22
23
24
25
26
27

30
31
32
33
34
35
36
37

54
MJ
[0
~lJ

TP
TP
TP
TV
TV

TP
RJ
RJ
EJ
EJ
EJ
EJ
MJ
TP
TP
MJ

TJ
RJ
RJ
EJ
EJ
EJ
EJ
MJ

~I

50100

o
o

77777

o

30242

o

30000

o

CF13
CFl3
CF3
DR56
DR62
ST14
ST12
BM27
CF3
CF22
CF20
CF23

o

CFl3
CFl3

o

CF1
ST12
BM27

CF3
CF22
CF20
CF23

o

TV

DR64

RJ
EJ
MJ

CF3

TV

TP
TP
RJ
EJ

TJ
ST
SP
SA
AT
RJ

BM27

o
DR63
DR65
CF13
B~27

CF3
CFI
CFl

XX4
XX4

Q
B\127

557
473
56
77775

o

75450
[3000Q)
3000Q]
PS
GG4

}

GG5
CC
DR53 }
DR60

STI }
ST10
BM
B~1

BM
DR6
DR6
D111
XX }
XXI
BM
DR21
ST
BM
DR51
DR25
DR47
DR47
OR12
OR60
BM
BM
ORl5
DR53
DR57
XX4
BM }
BM
DR45

}

L4 }
B~1

Call word; no. of lines prelude & routine
No. of lines for address modification
~o. of unmodifiab1e constants
~o. of inputs (-2 for Processor)
No. of outputs
l'\ame (READRN)
Exit
Input line
Entry for tape positioning
Entry for data extraction
Clear GG input lines
1 to ST word index (2 input lines only)
Set switches for GG conversion only
Initialize ST
Obtain one character
Dis card 1e ad i ng "
Discard E
If,} end line
If;
O.K. or digit
Start new line
Continue search for start
St art. - s i gn?
No, digit, store
Get next character
If /\, out
If E, go process expo
If, } end line, out
If;
Otherwise, go store
- seen. enable complementation
Discard any /\ between - and digits
E Seen, enable exponentiation

Assume +ve exponent
Zeroize exponent store
Discard /\ between E and first expo
character and - and 1st exp.digit
- sign?
:'\0, form exponent

Get next character

113

40
41
42
43
44

TJ
EJ
EJ
EJ
MJ
'T'O
Ll

46
47
50
51
52
53
54
55
56
57

60
61
62
63
64
65
66
BM 0
1

2
3
4
5
6
7

10
11

12
13
14
15
16
17
20
21
22
23
24
25
26
27
5T

0
1

2
3
4

MJ
TP
TP
RJ
TP
MJ

o

DR5l
DR47
DR47
DR5l
DR33

UHVV

UPul

o

DR30
XX
XXI
GG

CFI
CF20
CF23
CF21
no,:..,:..

CFl3
CFl3
GG2
GG3

o

LA

XX4

TU

A

RP

ro
C;'

MJ

[OJ
30000
o

TN

Q

MJ

o
o
o

o

o

FM
FD
1J
1J
1J

Q
Q

XX
XXI
XX2

SP

TN

AT
RJ
TP
EJ
EJ
TP
TP

CF37
GT2
CF26
BF
BFI
CF2
BM21
XX3
XX3
CF23

TU

RA
TP
TP
RA
TP

LQ
QT
EJ
TJ
RP

EJ
MJ
[0
[0
R5
1J
1J

[30ooQ]
BMl6
CF2
BF
CF
CFl3
CF24
20004
CF20

If " or - lout
If, } c 1ear, out
If;
If ., out
Otherwise, back

not::.,

- exp. seen.

Zeroize shift index
Zeroize word index
Go convert
Output -+ Q

Q

[3000Q]
17
DR56
OR60 )

r

~()()()O\

...,V'-v-vV.,J"I

[3000Q)
Q

IN

And out

DR54
DR61
CF25
CF25
BM21
BMl6
BMl3
17
GT3
GT

Jump on shift index
Jump on word index
Jump on line index

}

Z--Z~A

A

EP5
EP5
XX2
XX3
BM16
CF17
XXI
BF
CF4
XX
6
A

Read one block (forward)

}

If Sentinel, go to probable error routine.
(It will be necesaary to back up tape)
5/to line index
Initialize to BF
Inc. by 20 (u)
19 10 ~word index

}

BM
BM27
BM
}
BM27
[30006]
o
30000 (30000)J
(30000) (30000>]
CF27
5T
5Tl2
CCI
5T7
CC

Inc. by 1 (u)
5 ~ shift index
Extract 1 frame
If 00 (i) discard
If < 15S, O.K.
~ 15 - check for permitted , .
E
otherwise reject
Exit
LA A n (or MJ 0 STI2)
AT GGr GGr
Decrease shift by 6
Count down on character index
Insure not more than two words of input

114

5

TP

6
7

MJ

o

RA
TP
TP

CF2

10
11
12
13
14

STI
ST13

o

[30009]

LA
AT

A

36
GG4
SC
SCI

GG4
FXl
FX
INI
SC7

TU

1

TV

2
3
4
5

TP
RJ
TP
TP

6
7

LQ
TO

10

TV

11

12
13
14
15
16
17
20
21

TP
RJ
TP
RA
TV
S5
SA
TV
RA

22

TV

23
24
25
26
27

LQ
TV
TP
EJ
EJ
EJ
RP
EJ

[3006<21

33
34
35

RJ
EJ

MF6
CF35

MJ

2

36
37
40
41
42
43

SP
AT
RJ
RJ

TN
CF40
GT2
TBII

31
32

44
45
46
47

ST
ST12
CF30
CCI
ST

M.J

PS 0

30

FORWARD

ST6

A

SC

A

CC

SC6

CCl

Q

17
SC
SCI

Q
SC6
CF33
SC7

A

Note tape number
Form address of indicator
And set up order
Add 17774 in "u

A

CCI
CF41

o

o

A
CCI
A

Q

PS31
PS35
PS32
Q25
TB6

[3000Q]

A

CF34

PS33
PS55
PS36
PS33
PS36

A

PS25

CC

CF35

[OJ

o

MJ
MJ

o

EJ

Store synonym of variable requested
Save order containing syn. address (TP L
(syn) A)
Set up RP for continued scan
Set up EJ for continued sCan
1\ 1\ TAPE" ~ A

SC
TN
CF4
PS25

SC6

Yes, set entrance skip
And out
Augment u and v, to input 2nd line
Reset index to 5
Reset 1st instruction
Exit
Constant
Constant
Set up RP
Set up EJ
Variable required

MF
EP
PS33
17 }
GT3
GT
TB
PS36
PS46

CF34

MJ

o

EP
PS36

SP
EJ

BF3
CF32

~S51 }

11

tl
,

forming jn for repeat

Increment by 2 in "u" field
Set up subroutine with address of indicator
Indicator syn.~A
= 1\ DATA 1\ ? (i.e., at start of tape?)
= Required Synonym?
= 1\ ENOl\O? (i.e., at end of tape?)
None of these. Scan from L(Syn)~L(TAPE)
If indicator scan, move backward; if not,
forward
Go read forward
Return here if Sentinel seen, but incorrect
one. So test for end of tape, & if not
carryon
Read 1 block backwards
Read 1 block backwards
Return here if ~ Sentinel seen
Return here if correct syn seen, so go
test Set No.
Incorrect syn, check not start of tape
Test for 1st set

115

50

51
52
53
54
INDIC= 55
SYN
56
57
60

61
62
63
64
SC 0
1
2
3
4
5
6

7
MF 0
1

2
3
4

5
6
TB 0
1

2
3

4
5
6
7
10
11

EP 0
1

2
3
4
5
6
7
10

11
12
13
14
15
16

MJ
SP
SA
EF
MJ
RJ
MJ
RA
TP
TP
TP
TP
MJ
RP

EJ
SN
SA
SA
TU

TP
MJ
SP
AT
RJ
RJ
MJ
MJ
MJ
TP
RP
EJ
RA
AT
TP
TP
EJ

[0
MJ
TP
RJ
TP
MS

o
RA
TP
RJ
TP
MS

o

SP
SA
EF
MJ

o
TN
CF36

PS36
14

o

o
o

PS57

iviF6

iviF

o

IN
CF13
CF13
CF2
CF52

o

[OJ

r-~ ~~~~.,

L.juuuuJ

Q
FXl
FX
A
[30000J

o

TN
CF37
GT2
TBII

o

o

o

A

EP13
CF3
XX
XXI
XX2
XX3
IN

~~2
17

~C6

}

}

}
And extract word following that sought

[3000Q]

~~3

GT
TB
MF
PS57

}

[30000J

CF26

A

20002

TBII }
TB3
CF3
TBIO

BF
TBll
CF3
BF2
A

CC

A

~OOO~

TSII

30000

o

3000~
[3000Q]

EP4
CF55
INI

~F53}

o

CF42
IN
EP12
CF55
INI

o

CF46
TN
CF31

o

o

Not 1st set, so go back and read more
Now move 1 block forward
Add in EF code
And execute
Go to normal exit (modified)
Read iorward until next Sentinel
Incorrect syn;:. end of data,,'. abnormal
exit
Normal (modified) exit
Clear shift index
Clear word index
5--+1ine index
Erasable address store to BF24
And out
Scan index as specified

PS

Exit
Read in one block
Go perform tests
No 2 - 2 Sentinel, read more
Required synonym, go modify exit (as usual)
Incorrect synonym - exit
2--2 -+A
If either of 1st two words all 2's,
accept test
Examine syn. of this data, and place in
indicator
= Required synonym?
Exit 3
Exits 1 and 2
Data cannot be found on tape
(DATA INDEX ERROR)
(N.B. - tape may be mounted at this stage)

4

CFl

Inadequate data.

gF53 }
Q
EP13

Print out
Note data

r}

Set abnormal exit

4

IN

Back up tape I block
And exit

116

XS3 to Floating Point Conversion
Routine GGO-CFl6 used here (See Section
III, 3-Translation Subroutines)

CF 17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55

24
0
0
0
0
0
0
0
0
0
0
0
DE 1.0616F
74
74747
0
0
1
0
02
14
65662
01
66245
01
27246
01
30502
01
4
02
50 00100
60 00100
0
17774
47223
45
04
14062
20121
04
24202
44
47140
45
20
35343
04 22300
24202
04
BF24
0
TP
Q
RJ PR2
MJ 0
CA NI557

0
21
22
30
23
15

~}

XS3 codes
(Also 19

10

)

10 (floating pt)

47474
6
1
1

45466
23001
62401
70151
1
BF
BF167
0
00130

22027
20312
00435
63022
00120
13044
00435
0
PR3
PR
[3000~

z-z

Move bac kward one block
II START
ATAPE A
6 DATA A
II END 110
Move forward one block
Read forward
Re ad bac kward

t

DATA
cr
11 INDEX
A ERROR
. SEE II Q
cr t INAD
EQUATE
A DATA.
I:l SEE II Q

117

PS section error

Integer Conversion & Print-Out Routine C50ll2)
Purpose
To convert to decimal, and printout on-line a positive binary fixedpoint integer, with a carriage return depending upon the contents of a
specified index.
Calling Sequence

a

TP

LCInteger)

+1

TP

LCParameter) IC4

+2

RJ

IC2

+3

IC3
IC

Control returned here.

The parameter is the same as "Parameter 2'\ described in the Flex-Print
routine.
Storage

71e
2

orders and constants
erasable locations

A and Q destroyed

lIe

Integer Conversion and Print-Out Routine (50112)
IA

o

o
o
o
o

CI
50112

o

o
o
o

2

50662

67066
IC5
30000
30000
30000
30000
IC22
IC27}
IC31
A56
IC12
IC34
rCIO
IC72

2

34
MJ
RJ
MJ

3

0

4
5

0
PR

6

TU

7
10
11
12
13
14

TV
TP
SJ
ZJ
PR

o

TM

A

15
16
17
20
21
22
23
24
25
26
27
30
31
32

TP
TP
TV
RA
TP
DV
TP
SP

IC53
IC41
IC16
IC22
IC72
30000

IC 0
1

0
0

IJ
PH
TP
IJ

o

30000

o

30000
30000

o

IC4
IC4
IC3
IC13
IC14

A

Q
30000
30000
3OOQO

o
IC67
IC71

33

MJ

o

34
35
36
37
40
41
42
43
44
45
46
47

TP
TP

A

MJ

PR
AT
ZJ

IC40

o
o

0
0

IC37
IC35
24027
73465
5753
461
36

0

3

11

0

0

77
42
27

o

IC71
IC25
IC22
IC70
A45
Q57
IC72

o

30000
30000
IC32
IC21
30000
IC20
IC2
IC71
IC25 }
IC25
IC55
IC26
IC32
62000
45000
60400
13200
41100
03240

Call word; no. of lines prelude + routine
No. of lines for address modification
No. of unmodifiable constants
No. of inputs
No. of outputs
Name (INTCVT)
Entrance
Exit
Binary Integer Input
Line Index Address
Switch to lower case
Set line index address
Negative?
Zero?
Print minus sign
Non-zero, send positive integer to working
space
Set divide index to 10 decimal
Set switch to suppress zeros
Initialize divide
Prepare for next power of 10
Store remainder
Quotient ----,.A
ZJ IC35 IC32; AT IC37
PR 0 IC55 +n
Test for end of line
Carriage return
Reset index

IC26

To exit
Set divide index to zero
Set switch to commence printing

119

1043
102
10
1001
10
n __

23420
1750
144
12

50
51
52
53
54

0
0
0
0
0

I:::=:

n
v

n
V

oJ.

v

56
57
60
61
62
63
64
65
66

0
0
0
0
0

0

1
2
3

67

0

70
71
72

0
CA

oJ..J

0

0
0

0
0

'l"7

0

0

0

0

0

0
0

52
74
70
64
62
66
72
60
33

0
1

0

0

0

0
0
0

CI77

4

Flex Codes

5
6
7
8
9

117

}

Temps. and index

120

3. UNICODE SYSTEM TAPE PACKAGE

3.

UNICODE SYSTEM TAPE PACKAGE

This package makes possible a reproduction of a UNICODE Master Tape and
a quick comparison by sections with the original to check the accuracy of the
reproduction.

Also an octal copy of the UNICODE Master Tape can be taken for

listing by the High-Speed Printer.

Corrections and/or alterations to the

UNICODE System are facilitated by its use.
There are two versions of this set of subroutines; one for the 1103A and
one for the 1105. High-speed memory usage is confined to the first core bank
of 4096 addresses.
The main routines to perform the functions mentioned above are described
in this write-up as well as a number of subsidiary routines which are used by
the main routines and are also usable by an operator from the console.
A list of these routines follows:
1) Reproduce UNICODE Master Tape
2) Compare Two UNICODE Master Tapes
3) High-Speed Printer Octal Listing of UNICODE Master Tape
4) Read Magnetic Tape
5) Write Magnetic Tape
6) Biocta1 Paper Tape Loader
7) Flex Paper Tape Loader
8) High-Speed Printer Octal Dump on Magnetic Tape
9) Read to Q
10) Write From Q
11) Changed-Word Post Mortem
The package is stored as follows:
40200 - 40330}
40400 _ 40435
Reproduce UNICODE Master Tape
40500 - 40520 High-Speed Printer Octal Listing of UNICODE
Master Tape
40600 - 40746
Compare Two UNICODE Master Tapes
41000 - 41430 Read. Write Magnetic Tape
44600 - 45741
Routines 6-11
The Read and Write Magnetic Tape routines bootstrap themselves into
core addresses 6230-6661.
6227.

They use a read-write buffer located from 5270-

The core is not restored after their use.

123

Compilation with UNICODE or running an Object Program destroys this
package.
On the Master Tape, UNICODE has been divided logically into 23 sections.
Thus a set of 23 parameters is used to read or write a UNICODE Master Tape.
Following is a table giving the sections of UNICODE, their length in blocks
(octal), and their loading addresses in the core or drum.
Section
Number

Number
Blocks
(Octal)

Section Title

1

UNICODE Sentinel Blocks

2

Merge

3

Set-up Translation

4

5

Translation Sub Prints & Translators
Region FC (Flex Codes)

6

Translation Subroutines

7

Dimension Translators No. 1 and No. 2
Fixed Library Catalog

8

2

Addresses
7230-7607

16
2
133

35-3134
7230-7607
50333-75600

1

40001-40100

17
4

21-3316
4400-5267

1

7230-7417

1
66

7230-7417
50212-64731

6

537-2043

1

7230-7417

11

674-2726

10

Set-up Generation
Generators

11
12

Generation Subroutines
Set-up Segmentation

13

Segmentor

14

Op File I for Fixed Library

1

7230-7417

15

Set-up Allocation

1

7230-7417

16
17

Allocation

7

Set-up Initialization

I

674-2403
7230-7417

18

Initialization Generator

16

2000-5057

19

1

7230-7417

20

Set-up Processor
Processor

21

Fixed Library Routines

6
17

653-2172
10-3417

22

Set-up Listing
Listing Routine

1
12

7230-7417
653-3027

9

23

124

Following is a brief description of the routines and their use:
1.

Reproduce UNICODE Master Tapes
The UNICODE Master Tape should be loaded on Uniservo 2 (Tape Control Unit

2, if 1105).

A blank tape should be loaded on Uniservo I (TCrn, if 1105).

MSI is on, a stop occurs after each typing of a section number.
the tape is reproduced without stopping.

If

If MSI is off,

Start with PAK at 40400.

Uniservo 2 is read according to the set of addresses of the first section
and the figure I is typed.
40414.

If MS I is set, the computer stops with PAK at

If this section is to be changed, Flex, bioctal, or magnetic-tape

inputs should be loaded at this point.
40000, Master Clear and Start.

If this loading does not alter address

If address 40000 has been altered, Master

Clear, set PAK at 40414, and Start.

The altered contents of section 1 is

then written on Uniservo 1; Uniservo 2 is read according to the parameter of
the second section; the figure 2 is typed; and the computer stops again on
MSI with PAK at 40414.

Now corrections or changes may be made in section 2

before restarting as explained above.

This procedure continues in a like

manner through the 23 sections of UNICODE.
40400.
2.

The final stop occurs with PAK at

Tapes I and 2 are automatically rewound.

Compare Two UNICODE Master Tapes
Put the UNICODE Master Tapes to be compared on Uniservos 1 and 2.

Set

PAK at 40000 and start.
The routine compares the two tapes and prints out any differences on
the typewriter in changed-word post mortem format.
only the section numbers are typed.

If the tapes are identical,

When comparison is finished, both tapes

are rewound and the computer stops at 40600.

This routine should be run after

every updating to see if the new tape has been properly reproduced.
3.

High-Speed Printer Octal Listing of UNICODE Master Tape
Put the UNICODE Master Tape on Uniservo 1 (TCU2, if on 1105); put a

blank tape on Uniservo 3 (TCU2, if on 1105).

Set PAK at 40500 and start.

The output on Uniservo 3 can be later run off on the High-Speed Printer
to secure the desired listing. Both tapes must be rewound from the console
after the computer stops at 40500.

125

4.

Read Magnetic Tape
Op
Q

= xxy

v

u

First
Address

yyy

Last
Address

where x is any binary digit and yyyy is the binary representation of the
Uniservo number.

If on the 1105, use a Uniservo under Tape Control Unit 2.

With Q set as desired, set PAK at 4i152 and start.

References from within

a program may be made by loading Q as desired and using the instruction, 37

412 17 41152 .

Op
Q

= Zxy

u

yyy

where Z

v

Last
Address

First
Address

= 1,

x is any binary digit,
yyyy is the binary representation of the Uniservo number.
Unit 2 if on the 1105.

Control

Set PAK at 41000 and start.
program by the instruction, 37

6.

Use Tape

This routine may also be referenced from a

41036

41000.

Bioctal Paper Tape Loader
Put the tape in the Ferranti reader, turn the reader on, set PAK at 44601,

and start.

The routine can also be used by the program reference, 37

44636

44601.

7.

Flex Paper Tape Loader
Put the tape in the Ferranti reader, turn the reader on, set PAK at 44602,

and start.

The routine can also be used by the program reference, 37

44602.
8.

High-Speed Printer Octal Dump on Magnetic Tape
Op

Q = zxy yyy

v

u

Last
Address

First
Address

126

44636

where z
z

=0
=1

means use of Tape Control Unit 1

means use of TCU2 if on the 1105. If on the 1103A,
must be set at 1 for any use of the routine.

Z

x = 0 means no rewind of tape
x = 1 means rewind with interlock and printer stop.
yyyy is the binary representation of the Uniservo number.
Set PAK at 44625 and start.

The output tape, when listed on the High-

Speed Printer, will give an octal dump of the storage area between the
addresses specified in u and v.
by the instruction, 37 44636
9.

This routine may be referenced from a program
44625.

Read to Q

Put address which is to be read in A , set PAK at 44603, and start. The
v
content of the address appears in Q and the address in A is increased by 1
v

for a read of the next address, if desired.

The computer stops on 44603.

10. Write from Q
Put address which is to be filled in A , put content that is desired in Q,
v

set PAK at 44604, and start.

The content of Q is stored in the address speci-

fied and the address in A is increased by 1 for another write in the next
v

address, if desired.

The computer stops on 44604.

11. Changed-Word Post Mortem

Q=

Op

u

v

XX

yyyyy

ZZZZZ

where XX = 00
XX f 00
YYYYY is
ZZZZZ is

gives punched paper tape output.
gives typed output.
the first address of the area to be compared.
the first address of the image.

In A should be put the number of words to be compared.
v

44613 and start.
struction, 37

Set PAK at

The routine may be referenced from a program by the in-

44636

44613.

127

Reproduce System Tape (KK)

Print Digit

Set Up

MSl

ON?

Restart
No

Rewind
Tapes

High-Speed Printer Octal Listing of Unicode System Tape (ZB)

Set Up

Write in XS3
acta 1 on Tape
ft:3 Us i ng Dump
Routine

23 Sections
Written?
No

Compare Two Unicode System Tapes

Do Changed Word
Post Mortem on
Typewriter

23 Sections
Read?
No

Rewind
Tapes

Write Magnetic Tape

Set Up

All Words
Written?

Fill Buffer

No

Read Magnetic Tape

Set Up

Transfer Buff.
to Storage

All Words
Read?

No

~

Yes

Regions for System Tape Package
BAT230

CA35
EA50333
FA40001
GA21
HA4400
JAT230

KA50212
LA537
NA674
RA674
TA2000
VA653
WAI0
YA653

BZ7607
CZ3134
EZ75600
FZ40101
GZ3316
HZ5267
JZ7417
KZ64731
LZ2043
NZ2T26
RZ2403
TZ5057
VZ21 T2
WZ3417
YZ3027

GG40200
22
PR40222
10
CE40232
10
CC40242
40
FF40302
27
KK40400
31
C040431

Z041152
M041000
RS40000
EN44600

5

ZB40500
14
CP40514
5

HH40600
102
HJ40702
15
VV40717
30
40747

131

Read
Write
Restart
Other Routines

System Tape Package
(Parameters)
IJNICODE

MASTER
TAPE SECTIONS
1
2
3
4
5
6

7

0
1
2
3
4
5

8

6
7

9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

10
11
12
13
14
15
16
17
20
21
22
23
24
25
26

IA
41
4l
41
41
41
41
41
41

41
41
41
41
41
41
41
41
41
41
41
41
41
41
41
CA

FF
SA
CA
SA
EA
FA
GA
HA
JA
JA
KA
LA
JA
NA
JA
JA
RA
JA
TA
JA
VA
WA
JA
YA
FF27

1st & 2nd blks.
Merge
Two blks. after merge set-up S.O.S.
S.O. & S.O.S. prints
FC
S.O.S.
Dim. :ttl &:tt2
Lib. r.~t~lnn
------.,
Set-up Generation
Generation
Generation Subs
Seg. Set-up
Segmentation
Ope file 1 for Fixed Library
Set~up Allocation
Allocation
Set-up Initialization
InitializatIon Generation
Processor Set-up
Processor
Fixed Librarv routines
List ing Set-up
Listing

SZ
CZ

SZ
EZ
FZ
GZ
HZ
JZ
JZ
KZ
LZ

JZ
NZ
JZ
JZ
RZ
JZ
TZ
JZ
VZ
WZ
JZ
YZ

132

Produce Master Tape

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21

GG
CC
GG5
GG17
GGII
CE4
CE3
GGIO
CE5
RS
CE6
(30000) CE7
PH
PRI
0
EN2
(30000)
GGIO
(30000) Q
M036
MOL
CE
GGII
GG5
CE
CE3
GG4
GG
0
FF
Q
MO
MD36
GG13
0
GG22

1A
TU
TU
TP
TV

TP
TP
RJ
MS
RJ
TP
RJ
RA
RA
1J
MS
TP
RJ
MJ
CA

Set to print ~l
Set address of 1st par.
Set index
Set one shot
Set restart address (40000)
No. to print
Print number
Stop for load
One shot
other params
Write tape

}

Modify
n parameters

Print Digit
0
I
2
3
4
5
6
7

1A
MJ
RP
PR
PR
SP
PH
SS
ZJ
CA

PR
0
2
0
0
CE7
0
A
PR5
PRIO

(30000)
PR3
CE2
CEI
52
A
6
PR

Exi t
Lower carriage

}

Print word

Constants
IA
0
1 0
2 0
3 0
4 0
5 0
0

6 MJ
7 0
CA

CE
1

0

0
0
0
0
0
0
0

57
45

Shift down
Return carriage
Index
Set index

0

26
GG17
GGlO

Set restart
No. to print

0

CElO

133

'*

Constants
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

IA
0
52
74
70
64
62
66
72
60
33
52
52
52
52
52
52
52
52
52
52
74
74
74
74
74
74
74
74
74
74
70
70
CA

CC
eCl
0
0
0
0
0
0
0
0

0
37000
52000
74000
70000
64000
62000
66000
72000
60000
33000
37000
52000
74000
70000
64000
62000
66000
72000
60000
33000
37000
52000
CC40

0
0

Flex for 1

0

2

0

3
4
5
6
7
8

0
0
0

0

0
0

9

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
.0

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

30
31

134

Update System Tape or Reproduce System Tape

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30

IA
TU
TV
TP
TV
MJ
TP
TP
RA
RJ
TP
RJ
MS
TU
RJ
TP
RJ
RA
RA
IJ
EF
EF
MS
TP
RJ
MJ
CA

KK
CC
KK26
CE4
CO
0
COl
(30000)
Q

Z045
(30000)
PR
10000
KK6
KKI5
(30000)
M036
KK6
KKII
CE3
0
0
0
FF
M036
0
KK31

Set to print :It 1
Set address of 1st par.
Set index
Set one shot
Skip
Set restart address
Set to read tape tt2

KKII
KK6
CE3
KKI5
KK5
RS
Q

}

C04
ZO
CE7
PRI
KKI4
KKI6
(30000)

~DI

CE
CE
KKS
CO2
CD3
KK

Read tape
Set print number
Print number
Stop for write
Set write address
One shot
Write tape

}

}

Modify
Rewind :It 1
Rewind :lt2
Stop

Q

MD
KK20
Constants

0
1
2
3
4

IA
0
MJ
2
2
01
CA

CD

0
0
200
200
0
CD5

KK26
KKI4
10000
20000
0

Rewind :It 1
Rewind 1t2

135

Dump System Tape on Servo 3 TCU2

0
1
2
3
4
5
6
7

10
11
12
13

IA
TP
TU
MJ
TP
RJ
TU

TP
RA
RJ
RA
IJ
MS
CA

ZB
CP3
CPl
50000
(30000)
ZD45
ZB3
(30000)
Q
EN36
ZB3
CP2
0
ZB14

CP2
ZB3
ZB2
Q
ZD

Set index
Set par. address
Test buffer.
Par.--+Q
Read Uniservo 1

~B6 }

Par.--+Q
Uniservo 3
Wri te Uniservo 3
Next parameter
23-parameter index
Stop

CP
EN25
CP4
ZB2
ZB

Constants
0
1
2
3
4

IA
2
0
0
0
0
CA

CP
0
FF

0

0
1

TCU2 designator
1st parameter address
Index
Set index
1 in u

0

0
0
26
0

CP5

136

Compare System Tapes

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56
57

1A
TU
TU
TP
TP
TP
RJ
TU
TP
RA
LT
TV
TP
ST
AT
RJ
TP
RJ
TP
TP
RJ
RA
RA
RJ
1J
TP
RJ
TP
RJ
TP
TP
TP
RJ
TP
RJ
TP
RJ
TP
RJ
TP
RJ
TP
TP
RJ
RA
RA
TP
RJ
1J

HH
CC
VV2·7
VV6
(30000)
Q

Z045
HH3
(30000)
Q

25
A
Q

VV
VV4
Z045
(30000)
PR
VV
VVI
EN36
HH3
HH17
HH26
VV5
FF3
ZD45
CC4
PR
VV7
VVI0
VV17
HJ
VV12
HJ
FF4
Z045
CC5
PR
VV14
ZD45
VV15
VV14
EN36
HH3
HH17
VV17
HH26
VV5

Set to print 1
Set 1st parameter
Set index

HH17
HH3
VV5
Q

Set prog. address
Tape 1--+ storage

VV
ZO

~H7 }

Set parameter in Q

VV2
A
VV
A
A
VVI
ZD
CE7 }
PRI

1st add. of image to Av
Set image address
Last add.~A
Last - 1st ----+ Av
+1 to set A parameter
Read to image (No.2)
Print number

:N13}

Do CWPM

VV23}
VV23
HH27
HH3

Modify
One shot
3 parameters
Read in S. O. from No. 1

Q

}

ZO
CE7 }
PRI

Print 4

H~
H.J3 }

Compare S. o.

HJ4
H.n
HJ2 }
HJl
Q

Last of S.O.

}

Read FC

ZD
CE7 }
PRI

Print 5

}

Read Fe

Q

ZD

(+t! )

( #2)

:N13}

Compare Fe

VVI6}
VV16
VV5
HH3 }
HH56

Set for S.O.S.
Set index
Up to generators

137

60
61
62
63
64

TP
RJ
TP
RJ
TP

FFll
Z045
CC12
PR
VV7

l..c:.

TP
.LL

UUI)f\
~ V""" v

66
67
70
71
72
73
74
75
76

TP
RJ
TP
RJ
RA
RA
TP
RJ

VV4
HJ
VV22
HJ
HH3
HH17
VV24
HH26
VV5

'7'7

EF
EF
MS
CA

U • .J

I

I

100
101

IJ

f\
v

0
0
HHI02

Q
ZO
CE7
PHI
HJ2
J..I

T~

HJ4
HJl

}
}

I

J

HJ2 }
HJl
VV23}
VV23
VV5
HH3 }
HH75
lTlT9
. . _...,c;
VV26
HH

Read generator

(11:1 )

Print 10
Compare gen:

Last generator read
Skip generator parameters
Set index
Do rest of parameters
Rewind
Rewind

138

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27

IA
0
0
1
0
0
0
0
2
1
0
2
0
2
1
0
0
1
0
2
0
0
2
2
0
CA

0
1
2
3
4
5
6
7
10
11
12
13
14

IA
MJ
MJ
0
0
0
TP
RJ
TP
TP
RJ
RA
IJ
MJ
CA

VV
0
0
50000
0
0
0
0
1
50333
5120
1

1

Index
Set index
Read 5.0. & gen.
Compare 5.0.
For more reads
Last read of 5.0.

2

5120
1
0
546
0

1
40001
2
0
50212

100
1
0
3
1
0
2260
0
14
10000}
20000
0

1
1

0
200
200
FF
VV30
HJ
0
0
30000
30000
30000
HJ2
Z045
HJ3
HJ2
EN36
HJ3
HJ4
0
HJlS

A for CWPM
Set for image read
Mask

0

0

0

Q for CWPM

0
0
50000
77777

Read FC
Compare FC
Set index
Compare gen.
Last gen. read
Set index
Rewinds

Exit
Start
Read par. & compo par. for A
Compare par. for Q
Index
Read 5.0. or gen.

30000
HJ5
30000
30000
30000
Q

ZD

}

CWPM

:N13}

Modify
N times
Exit

VVII
HJ5
HJ

139

Regions for Read-Write
Core

(Coding for both 1103A and 1105 versions shown)

B55267
1

.J.

Drum

BF5270
740
006230
40
EE6270
14
FF6304
5
WB6311

M041000
40
ME41040
14
MF41054
5
MB41061

Write

MR41106

CR6336
5
5U6343

5

MU41113

4

4

CC6347
20
BG6367
13
2A6402
51
ZB6453
13
ZC6466
40
BB6526
55
CA6603
35
PC6640
21
226661
CN740
CL737
LA6227
CM741
NN432

MC41117
20
MG41137
13
2041152
51
CB41223
13
OC41236
40
OB41276
55
CT41353
35
P041410
21
41431
No. of words
No. of words
Last add. of
No. of words
No. of words

in buffer
-1
buffer
+1
to bootstrap

140

Read

Write Magnetic Tape
DD

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36

37

IA
MJ
RP
TP
0
0
TP
QT
LQ
QT
ST
AT
TP
TJ
TV
TP
QS
TU
RP
TP
TP
SA
SA
LT
RS
ZJ
RJ
RJ
TP
TP
MJ
RJ
MS
CA

MD
0
NN3OO00
MD
30000
30000
Q
CC2
Q
CC2
BG2
CC5
BG5
BG6
DD4
CCll
BG6
D03
30000
30000
004
BG6
BG6
0
BG5
FF

WB
CR
DD4
BG5
0
M036
0
M040

MU
DD5
DD
30000
30000
DD3
BG2
17
BG3
BG4
BG6
A
EE

~D22

--+

}

Setup

Bootstrap
40 1st add. last add.
Par-OO
Next add. in buffer
1st add. ---+ temp.
Last add.~temp.--+A
Last - 1st --+ temp.
Last - 1st + 1
No. left--+A
No --+EE
Room this load t

}

Set RP & TP

D021
0022
0023 }
30000
A
17
25
004
BG6
0031
WB1
CRI
M04
MG5
M036
MD37
MOl

Words -+buffer

}

Update address
Set cells left
no ----+FF
Buffer full
Write tape
Clear
Set drum
--+drum
Exit
Stop

+

}

141

No room this load
EE

0
1
2
3
4
5
6
7

10
11
12
13

IA
TV
TU
TP

QS
RP
TP
RA
TP
RJ
RJ
TP
MJ
CA

ME

DD4
DD3
CCII
BG5
30000
30000
DD3
CC
WB
CR
OD3
0
ME14

EE5
EE ;)

}

Set addresses

Q

}

Set n of RP

}

Fill buffer
Update parameter
Clear number of cells left
Write on tape
Clear
Return to finish parameter

EE4
EE6 }
30000
BG5
BG5
WBI
CHI
Q

DD6

Room & buffer not full
IA
FF

MF

0

TP

003

QJ
RJ
RJ
MJ
CA

Q

I

FF2

0033

WB
CR
0
MF5

WBI
CRI
DD33

2
3
4

}

40 f 00--+ exi t
Write tape
Clear
Exit

142

Write Buffer

WB

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24

IA
MJ
TP
ST
DV

ZJ
RS
SP
AT
EF
TV
TP
LQ
QT
TP
QS
EF
RP
EW
RA
IJ
MJ
CA

MB
0
CC14
BG5
CC7
WB6
BG7
BG7
CC6
0
CCIO
DD3
Q
CCl7
CCl7
A
0
10170
10000
WB21
BG7
0
MB25

(30000)
A
A
BG7
WB5
CC6
0
BGI0
CC3
WB21
Q
22
A
Q
CC4
CC4
WB22
(30000)
CCl6
WB17

Exit

}

No.

}

blks.~Q

Index

= No.

blks -I--+BB7

Set bypass (=MJ 0 WHil on II03A)
Set at BF
Set tape No. in code word

BF + n(170)
Write n blks.
Exit

WB

Clear
CR

0
1
2
3
4

IA
MJ
TP
TP
RP
TP
CA

MR

0
CCIO
CCl4
CNIOOOO
CCI
MR5

Exit
= BF
No. of cells left = I buffer load
Buffer = Z's -+exi t

30000
DD4
BG5
CR
BF

}

Set-up
SU

0
1

2
3

IA
RP
TP
RJ
MJ
CA

MU
NN30000 SU2
DD
MD
CRI
CR
DD5
0
MU4

SU in core
Bootstrap
Clear

}

143

Constants

CC

0
I

2
3
4
5
6
7
10
11
12
13
14
15
16
17

IA
0
74
0
0
02
0

MC
0
74747
77777
20000
00606

0

0
170

0
0
0
0
0
0
0
0
0
CA

1

BF
07777
0
2

CN
LA
0
1

Zero
Fill buffer - Z's
u mask
Set bypass mode - TCU2
Write & 128/in-tape ttl
1 in u
1 in v
Words/b lk. in u
1st add. of buffer
fAas k

0
47474
0
04000
0
0
1
0
BF
0
0

2
0
LA
170
70000

Set number of cells left
Last address in buffer
Words/blk. in v

MC20
Explanation of Temporaries and Variables

Core
BG

Drum
MG
0
1
2
3
4
5

6
7
10
11
12

0
0
0
0
0
0
0
0
0
0
0

0
0
u
u
u
u
u

0
0
0
0
0
0
0

0

v
0
0
0

u
0
0

High
Check sum
Low
u is first address
u is last address
u = Last-first
u = No. cells left in buffer
u = Last-first +1
v = No. of blocks -1 (Index)
u = No. of blocks

}

144

Read Tape N

ZA

0
I

2
3
4
5
6
7
10
II
12
13
14
IS
16
17
20
21

22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50

IA
TP
MJ
0
LQ
QT
TP
QS
QS
TP
QT
LQ
QT
ST
AT
TJ
TP
RJ
TP
LQ

TV
RP
TP
RA
TP
MJ
TP
LQ
TP
AT
RJ
TP
LQ
TV
TP
QS
RP
TP
RJ
MS

RP
TP
CA

ZD
Q
0
30000
Q
ZB
ZB
ZBl
ZBl
ZA2
ZB2
Q
ZB2
ZB3
ZB4
ZB6
ZB7
ZC
ZA2
Q
Q
CN30000
BF
ZA2
ZA2
0
ZB5
Q
ZBll
Q
ZC
ZA2
Q
Q
Z812
ZB5
30000
BF
Z045
0
NN30000
MD

Z02
ZD47
30000
22
ZBI
Q
BB36
BB37
Q
ZB3
17
A
A
ZB5
ZA31
ZC2
ZCI
Q
25
ZA25
ZA26
(30000)
ZBI0
Q
ZA3
Q
25
A
ZC2
ZCl
Q
25
ZA44
Q

Par.

1st add.

Set tape number
1st add. --+ZB3
Last add. --.. A
Last - 1st + I~ZB5
Fi t ---+ZA31 No+
Fill buffer

}

}

Buffer~storage

Update par.
No.--+ V

}

ZA43

0

Read to buffer

Set address
Mask----.Q

}

Buffer ----+ storage

ZD45
(30000)
Z046
ZO
ZA3
DO

Exit

ZD51

145

last add.

Constants and Variables

ZB

0
1
2
3
4

5
6
7
10
11
12

LA

CR

0
0
0

1
0
77777

0

(

1

o)

Mask
Tape No.
r~as k
1st address

70000
0
0
0
0
0
0

0
0
0
0
0

eN

BF

LA

Standard par. to fi 11 buffer

0

SF

0
CA

07777
CB13

0
BS
0

Other par.
Mask

(

eM

o)

Last - 1st + 1

146

Read Tape

ZC

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

IA
MJ
MJ
0
TP
QT
LQ
QT
ST
AT
LQ
TV
DV
TP
TP
ZJ
RS
TU
RJ
RA
IJ
TP
ZJ
TU
RJ
MJ
0
0
0
0
0
0
0
CA

DC

0
0
30000
ZC2
ZC34
Q
ZC34
ZC35
ZC37
Q
Q
BB45
A
Q
ZC17
ZC33
BB45
BB
BB2
ZC33
ZC32
ZC26
ZC32
BB
0

0
0

0
77777
30000
0

1
DC40

Exit
Start
address
o add ress
1st add. ---+ 35

30000
ZC3
30000

~C35

17
A
A
A
6
BB2
ZC33
ZC32
A
ZC26
ZC36
BB2
BB1
ZC31

}

}

Last - 1st

}

u

Address ---+BB2
No. of blks. --+index
Store remainder
No. of blks. f:. zero t No ----. ZC26

}

Index - 1
No. of words = 170
Read
Increase address
n blks.
Remainder zero ~exi t

ZC'21

A
ZC
BB2
BBI
ZC
170
0
0
0
0
1

+1~A

}
}

Read remainder
Exit
Remainder
No. of blocks
1st address

0

147

,',0 +

~,

Read One Block of Tape

Of)

ULJ

IA

DB

V

A

1'l i1T.,

V

1
2
3
4
5
6
7
10
11

MJ
0
MJ
EF
EF
TV
TP
QS
QT

0
(30000)
0
0
0
BB2
BB44
BB2
BB2

,1")

'T'n
J.':-

OOA!:.

.1"

13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54

ST
AT
RJ
ER
ZJ
EF
RJ
ER
ZJ
EF
RJ
ER
ZJ
EF
TP
RJ
MS
EF
MJ
2
2
2
2
2
0
0
0
RP
EF
EF
RP
ER
0
ER
CA

A

UU'-iJ

Q
8846
8853
0
8820
0
8853
0
BB24
0
BB53
0
BB30
0
CAIO
PC
0
0
0
602
14
1
1
1
20000
07777
170
0
0
0
10000
10000
0
10000
DB55

(

r. __ !
LX.1"
~

'1AAAA\

\,JVVVV)

BB3
(30000)
BB4
BB43
BB42
BB52
Q
BB51
Q

Par. = 00 n address
(on 1103A = MJ 20000 BB5)
Set bypass (ll03A = MJ 0 BB5)
Set normal bias
Set address

}

"

Set n of RP
n~Q
",,--/\
1 -t'"
.
LIv--,n

1"\

A
8853
8B50
A
8834
8841
8847
A
BB34
BB40
B847

}

170 .,. n--.RP
Read
lOA ----. A

Parity +
Set high
Read

,'Jo--+ 34

IOA~A

Parity ~
Set low
Read

1':o~34

A

IOA~A

BB34
BB37
PC2
PCl
BBI
BB42
SB
10000
10001
70000
60000
50000
04000
0
0
(30000)
BB37
8836

Pari ty ~
Move bac k
Print PARITY

}

BB53

Stop for rereads
Set normal (1103A = MJ 0 BB35)
Exit
Read one blk. fwd.
Move back one blk.
Low
High
Normal
Set bypass

Move back one blk.
Read one bike

}

(30000)

~

RP
Throwaway
BB55 in core

}

148

Print

PC

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20

IA
MJ
MJ
0
TP
QT
ST
TU
SP
PH
SS
ZJ
HA
IJ
MJ
HP
PH
0
CA

PD
0
0
30000
PC 2
CAS
CA6
PC2
30000
0
A
PCI0

pC7

PC20
0
4
0
0
PD21

Exit
Start
address n
0

30000
PC16
0
Q
A45
PC20
PC7
52
A

6

PC13
CA7
PC7
PC
PC3
PC4
0

Index

149

Constants
(From 1103A Unicode Service Routines)

IA
CA

0

1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34

CT

0

170

ZZ

67

50342
77657
47776
77777

65127 }

30

30
30
0
0
0
0
0
0

47
20
46
25
04
04
20
57
47
04
22
01
15
24
57
24
42
2
CA

0

0
I

CA13
CA23
77777
12203
12120
15301
42574
24013
26031
12203
42040
07033
34061
20042
20070
20040
20121
52420
01301
04040
200
CT35

Sentinel

36566
62452
77777
77777
1
0
10
11
0

02204
31204
21401
24704
01201
20412
02224
40404
40601
41603
42524
40130
30604
70304
40447
20157
40404
10000

Rewind ttl

150

4. UNICODE SAMPLE CODING

4.
a.

UNICODE SAMPLE CODING.

Matrix Inversion by UNICODE
Assume A is the matrix to be inverted and iC is the i-th approximation

to the inverse.

Set

°c

to AT.

Then for the i-th iteration (i=l, 2, •••

f

n

where n is the rank of the matrix)
i

C. k=
J

i-I

for k=i

C. k
1

A. i-lC.
1

1

ie _i-l
i
( i-I )
J'kC'kC
..
A.
Ck
J
J
JI 1

for k "f i

where A. is the i-th row of A and j C.1 is the i-th column of jC.
1
repetitions C
Inverse of A.
n
Next an estimate of the error is made

After n

=

Average error =

IT
.. A. nC,)
(' 11
1
1 -n
2
n

If the average error is greater than the error allowed by the routine,
nC is used as a new value for

°c

and a new approximation is made.

2.7 of the program establishes the error allowed.

Sentence

Reducing ae (allowable

error) to a smaller amount may increase the number of iterations needed to
obtain the desired inversion.
To run the program for a different size matrix, change sentences I, 2.5,
and 3.

In 2.5, n is given the size of the new n x n matrix.

given a numerical value 1 less than n.

In 3, m is

The numerical value of n determines the

new dimensions used for the subscripted variables in sentence 1.
The input matrix A must be prepared on a data tape.
the computer by the Automatic Data Read-In.

153

It is brought into

r,~-~~;.c;.O,,;.2

j.:.::

~-:~2 tl"

'91'O:.;T·::1l;~
=~_ ~.~ril/:;rl

•

s j_ '::rL

2.5
2.7
V-3.YY i. C)

:';.2
~'. 3
L~

V8.1"',"

(1

..... J

c~ ~J ( 1

;~

I

j.-

list 3.(:;_.!;;
~.'..

,1'""",("
'-..' _'_

J. J " . ' t;::>.D::; iJ.
.~f:.'.l
..~-,p~r.-l\:0.c:.)rT-.:.'1.;"~l
(:; ~v-ilP?l
•.")\1 lnl-p.
~ _
v _
,,_._
v
_ , ..
~_~

~/ ~r~~,~ (~

(~) ( 1

s e ~~~i~ e :~lC e .~) t ~~: e ! J. 1<') ,:~ s \)~~>.e t~

,J- -....
"'Y' ,.... ':.i,-'.

J

c ( ~. :.j ) =::1, ( .j ) j_ )
3C~'rtcJ:"'~(~e ~-;

7
7

'.--' t,:-~.l"l.-L 2·;-~

•

se~-~terJ.'2C~ [~ -t~:~l"~t J_'~) .'~:1:2tl ~~'1,l1:".7) to l~_

~

'/

,,

..J_ ...

l 1

..L-i-

J::.'.=C,
lb=2.

21

(1 i\'~r) ·~t",o"+C':>~"CQ'" ..L~ 7 +'l"r'!
I: t..>JPL
v...
\....
__
"/:11'"r .i 0 (1 )!'1 se~ltence l~ t:en re:)Ul.e 1·:)
C (~1 ., 1:) =c (.j ,1=) - ( C C~ )i) ~( T CJ )
j.~' lb = l'r
t.o 2)
la, = 1+2
1b = Fi

22..5

~f .La :} ITt .ju1'(1"9 to 21.~.1

16

-;r.::::>-.v,",'.'
':.k L

2C

~-

." 1....

1',

-,_(-'.I

_

..l-....

;J ....... -

l V

'-' ,~)

'-- J....l.

I

"--I

_

'-'"

jw'ny to sentence: 16

22

1

=

1+1

reSl.~r.1e

7

q=O
vary j. O(l)m se~1te~ce3 2~L2 tl'lr'.l 2!.~.5 then jump to 24.35
vary k O(l)m sentences 2,4.25 tnru 2L~.3 '~hen resune 24.15
vary j O(l)m sentence 24.j then resune 24.2
or
q = q + ((
a i} tl.) oil.
C (.
;)} 1.)
~ '/)
c = (q-n;//-{ .
24.39
tVTIe e •
I') 4 )+
i ~.' i e I, G d.C} . -.J~ 1.)J~.~'8_. to 6. r;
24.5
vary _.. 0(1)n sentcnc2S 24.6 thru 25 t~nen ~juaD to 26
2~·.G
vary 1· G(l)n sentence 25 t1:.en resun2 24.S
25
list c(i,~),i,k, tape 4,
2S
stop .
zzzz3zend of tape •

24.15
2)+.2
24.25
24 • -,)0
24.35
L..

•

:

'

./

154

b.

Floating Point to Fixed Point Sub-Program
This is a method of converting a floating-point number to the

nearest integer.
100 to 106.

The sub-program to do this is shown operating at sentences

Controlling sentences of the main program which reference the

sub-program are given here as sentences 50-51.
Note that the Vary loop shown is never finished.

A jump out is made

to exit sentences when the nearest integer is found.
50.

Compute Fix (Z(J)) 6.

51.

I = KK ~.

100.

Fix

101.

12

102.

Vary KK

103.

If ZZ < 0.5 jump to 104 ~.

104 •

If Q (KA) > = 0 j ump to 106 ~ •

105.

KK

106.

Exit ~ .

(Q( KA)) ~ •

= /Q(KA) r

~

.

o( 1) 999999

wi th ZZ ZZ( -1) -2 Sentence 103 ~ •

= -KK ~ •

155

c.
T'T __

!

__ -1 _ _ _ ..... ___

lJl

UIU \; UUt::

~

Linear Programming Application.

... ..,._

U'd 1. dill

linear program
original dantzig method
1

dimension a(17),x(8,17), z(17), delta(17), c(17), psi(8), p 8), temp(17), work(8)

2
2.1
2.2

start
If = 7
Ig = 16

2.3

g = 16

3.1

read x

3.2

read c

3.3

read psi.

3.4

read p

4

x(O,O) = x(O,O) + 1

5

vary i O(l)lg sentences 6 thru 8

6

z(i)=O.

7

vary j l(l)lf sentence 8 .
z(i) = z(i) + xCj,i) X psiCj)
vary i O(l)lg sentence 10

Note:

Only sentences 1 - 2.3 need be changed
for matrices of different size.

BEGINNING OF CYCLE

8
9

10
11

Cycle Count
.

}
J

de1ta(i) = z(i)-c(i)
temp(O) = 0

12
13
14
15

k = 0

16

vary j l(l)lf sentence 16.1

16.1

if b = p(j), jump to sentence 15

16.2

tempCO)

17
18

k

19

type k

20
21
22
23
24
25
26

temp(O)
1000
vary j l(l)lf sentences 22 thru 29
if x(j,k)G O,jump to sentence 25
temp(j) = -1
resume 21
if xU ,0) L 0, jump to sentence 23
temp(j) = xCj,O)/xCj,k)

27

if tempCj) G= temp(O) jump to sentence 24

0)

z.

1)

z. - c.

1

=8

I I i

.

vary i l(l)lg with b l(l)g sentences 14 thru 17
if temp(O) G delta(i), jump to sentence ]6
resume 13

= delta

Find smallest negative 8

(i)

=i

if k

= 0,

If no negative 8 is found, go
to output
Type k
subscript of incoming
vector

jump to sentence 44

=

=

.

Find mr (position in basis)
for out going vector

156

(Continued)

028
29

temp(O) = temp(j )
mr = j

30
31

type mr
psi(mr) = c(k)

Type mr
3) place coefficient of incoming vector in new position

32

p(mr) = x(O,k)

4)

33

vary j l(l)lf sentence 34

34

ternp(j) = x(j,k)

34.1
35

work(O) = x(mr,k)
vary i O(l)lg sentences 36 thru 42

36

x(mr,i) = x(mr,i)/work(O)

37

if x(mr,i) not= 0, jump to sentence 40

38

resume 35

39
40

resume 40 .
vary j l(l)lf sentences 41 thru 42

41
42

if j = mr, jump to sentence 39
x(j,i) = x(j,i) - x(mr,i) X temp(j)

43

jump to sentence 4

J

.
.

.

place number of incoming
vector in new position

}

Save column k and xrk = a

}

5)

calculate incoming row

}

6)

calculate remaining parts
of matrix by columns

Go to start next cycle
END OF CYCLE - START OUTPUT

44

vary j l(l)lf sentence 45

45
46

list p(j),j,tape 3,«variables in basis»
vary i O(l)lg sentence 47

47

list delta(i),i,tape 3, «delta»

48
49

vary j O(l)lf sentences 49 thru 50
vary i O(l)lg sentence 50

50

list x(j,i),j,i, tape 3 «final tableau»,
(matrix), (row), (column)

51

vary i l(l)lg sentence 52

52

temp (i) = 0

53

vary j l(l)lf sentences 54 thru 56
vary i l(l)lg sentence 55

54
55
56
58
59

}
}

.

.}

List numbers of variables in
basis
List 8's (shadow prices)

List whole final matrix

Find and list values of
variables

if x(O,i) = p(j), jump to sentence 56
temp(i) = x(j,O)
vary i l(l)lg sentence 59

60

list temp(i),i,tape 3, «values of variables»
vary j l(l)lf sentences 61 thru 66

61

read a

62

work (j) = 0
157

lr

Compute and list back solution

(Continued)

63
64

vary i l(l)lg sentences 64 thru 65
work(j) = work(j) + temp(i) x a(i)

65

z(j)

66

list z(j),j,tape 3, ((back solution))"
(deviation), (equation)

67
68

c(O) =
vary i l(l)lg sentence 69

= work(j)

Compute and list back solution

- a(O)

°

l

bY
ceO) = ceo) + temp (i) X c(i)
70
list c(O), tape 3, ((profit function»
71
type c(O)
71.1 list x(O,O), tape 3, ((cycle count»
71.2 type x(O,O)
72
stop
zzzzzzend of tape

J}

Arrangement of the data tape:
A(1)

Y(J,1)

Constant.0(
terms

Constant
term

Compute and type and list
profit function

Type and list cycle count

Coefficient

Coefficient

Coefficient

7 sets of A (rows of original equation)
Cycle
counter

Vector numbers
2

°

1

Xl

Xl 1 Xl 2
x
2 1 x2 2

°
x2 °

3

16

Xl 3·

Xl 16
x
2 16

x23 ·

)-

x 7 0 x 7 1 "7 2 x 73 ·

x7

Coefficient
matrix

16
I ....

° Cl C2 C3 . . . C16
PSI(J) ° 0/2 0/3
P
° PI P2 P3 . P7
C (I)

~l

(J)

~7

coefficients of profit function
coefficients of profit function of the vectors in the basis
vector numbers in basis

The slack variables and artificial variables must be inserted in the data tape.
The starting basis is the unit matrix.

158

fhis column
outside tableau need
not be saved
(for outgoing
vector)

How the new tableau is computed from the preceding one: (Method taken from Charnes, Cooper, Henderson, "An Introduction to Linear PrograDllling".)·
x ik are the values of column k in the old tableau, k being the number of the vector that was selected in the old tableau to enter the base.
xri are the values in the outgoing row.
Ai = xi Dare the coefficients of Po (the constants in the input data).
C.~

J

values

basis vector number
designator

CIO

"'~

P

C
r

P
r

Cl2

P
12

-M
Po (A

-M

P10

i)

Pr

P~
X

x lO 0

lO

- ----" r 0 - - - - - -

__ x

XlO

IO 10
r 10---

__ x
x

12 10

r

r
l2 r

Cl6
Zj
1)

x

x

a

\,o

C12

P l2

6)

C16

P
16

6) x 160 - -;-x 16k

6)

6)

6)
5) --L.!Q
a

5)

6)

r

x

--L.!!

x

5)

6)

6)

6)

6)

6)

6)

6)

6)

6)

6)

a

5)

-E....!
a

5)

a

5)

Z.
J
Z. - C.
J
J

The new tableau is generated in the steps 0 - 1 - 2 - 3 - 4 - 5 - 6.
But watch~: Compute for step 6 only columns, where step 5 gave element # 0 and xik # 0; otherwise column remains unchanged .. In this example the
slack and artificial variables (10-16) are placed before the real variables (1-9). The sequence is unimportant but the constant vector Po must
remain in the first·column. The coded program has in the data tape the variables in their natural order I, 2 ... 10 ... 16.

s.

UNICODE CARD INPUT

5.

UNICODE Card Input

Card input to UNICODE is possible without any change in the UNICODE Master
Tape if a Card-to-Excess-Three Routine is written and added to the UNICODE
Service Routines.

Then the tape produced by this routine with card input may

be used in UNICODE similarly to the tape produced by the Flex-to-Excess-Three
Routine.
Assuming only 48 characters available on cards, certain restrictions in
the writing of the UNICODE programs must be adopted.

Superior figures can be

eliminated by the use of the symbol POW followed by regular figures.
one of the two signs, > and < , can be used.
punch on the cards.

The space is simulated by no

The dash becomes the minus sign.

for the comma and period.

Only

No simulation is needed

Counting the 26 alphabetic, 10 numeric, and the 4

mentioned, only 8 available characters remain.

The operator can obtain the

essential UNICODE characters needed by an arbitrary assignment of characters
which will later be changed by the conversion routine to the excess-three
value desired.

The following is one such possible assignment.

Excess-Three
Character

Card
Character

Card
Punching

/

/

o-

<

@

4 - 8

*

*

X- 4 - 8

+

&

y

=

8

3
y

1

4

8

$

X- 3 - 8

%

o-

4 - 8

In the above assignment, there is no greater than ( > ) sign.

If in

the IF sentence, a term such as "X > y" is wanted, it should be written as
"y < Xu.

S i mil a r 1y, i fat e r m "X >

= y.t

163

is wan ted, its h0 u1d be wr itt e n

tty < = X".

If the converse of the latter is wanted, in addition, in an IF

sentence, it is supplied automatically by a jump to the following sentence
on failure of the <

= relation

to hold.

Further flexibility can be introduced

here by making this next sentence a JUMP sentence.

It can be seen that only

two clauses are now permitted in the IF sentence, but, because of the
possibilities of combining the IF sentence with a subsequent JUMP sentence,
there is no real loss in generality.
Each 80-column card should be considered a complete blockette.

The con-

version routine should use spaces to fill out the remaining 40 characters in
the blockette.
If a sentence overruns from one card to another, care must be taken not
to break a symbol into two parts.
on a divider or a space.

One must always end the punching of a card

Any number of spaces may be put between symbols

of a UNICODE sentence.

Thus, 40 or more spaces between symbols in a sentence

will not cause trouble.

However, putting only part of a symbol on one card

will destroy its meaning.
The first 6 positions of a regular UNICODE program card are reserved for
the line number.
be punched.

The first 6 positions of an overrun program card must not

On an overrun Data card, no indentions are needed.

no figures may be broken at the end of a Data card.

Of course,

Thus, on Data cards,

scientific notation numbers may not be broken into separate parts by use of
spaces because spaces indicate the start of a new figure on Data lists.

On

the other hand, on a program card, the symbols making up a scientific notation
number may be separated by spaces.

Use of a comma following the last figure

on a Data card will save computer time because it stops further analysis of
the blockette and ignores the spaces used to fill the line.
The PRINT sentence, being limited to 6 blockettes, is somewhat limited
in size by the use of cards, but this restriction is easily overcome by
writing two or more PRINT sentences in succession.
The rules of tape preparation explained in the UNICODE Manual must be
simulated when using cards.

Thus, whenever blockettes of spaces are needed

to fill out a block, the right number of blank cards must be inserted.

164

Card input for UNICODE programs and Data can be used at a computer installation which has no direct provision for card input to the computer if
there is available a Card-to-Magnetic Tape Converter.

If the cards have been

properly prepared in accordance with the conventions described here, they can
be run through the Card-to-Magnetic Tape Converter and this output tape then
translated to a UNICODE tape by means of a short conversion routine.
Though this latter routine is at present specifically adjusted to the
arbitrary assignment of characters given earlier in this paper, it can be
readjusted to any other assignment merely by modifying the order or content
of two 8-line tables.

165

Cards to UNICODE Tape
This routine has as input a magnetic tape obtained from cards via the
Card-to-Magnetic Tape Converter.

The characters on this tape are changed,

as needed, to the excess-three equivalents which are recognized by UNICODE.
The space-fill option for no punch should be used in producing the input
tape on the Card-to-Tape Converter.

Further conventions followed in writing

the programs and Data lists and punching the cards are described in the
write-up, UNICODE Card Input.

The arbitrary assignment of card characters

given in the table therein is assumed to be standard.

No special translation

is needed for the first three characters of this table after the Card-to-Tape
conversion.

However, the remaining five characters have to be translated

from one excess-three value to another before they are acceptable to UNICODE.
When it is known that none of these five characters have been used, there
is no need to use this routine. The tape from the Card-to-Tape Converter may
be used directly as an input to UNICODE.
with Data lists.
(=)

This will happen most frequently

If a Data list is preceded by a Data Index, which uses equal

signs, of course, it will still be necessary to run the tape from the Card-

to-Tape Converter through this conversion routine.

Other than the equals sign

which only occasionally occurs in a Data Index, only one character on Data
lists, the semicolon, has no counterpart among the usual card characters. The
semicolon should always be replaced by the comma in Programs or Data lists
using cards.

Thus, many sets of Data list cards, when properly punched and

run through the Card-to-Tape Converter, will produce a tape completely
acceptable to UNICODE.
If a Card-to-Magnetic Tape Converter is available, it will be found a more
economical procedure to prepare all Data lists in this way because of the
greater ease of correction.

This will be true regardless of whether or not

the program has been prepared on cards.
To translate the five characters mentioned
of excess-three values are used in this routine:

166

above, the following two tables

Card-to-Tape Produced Excess-Three Value
00
00
00
00
00

00000
00000
00000
00000
00000

&

00016
00035
00062
00055
00075

#

$

%

UNICODE Accepted Code for Character
00
00
00
00
00

00000
00000
00000
00000
00000

+

00063
00076
00042
00017
00043

=
I
(
)

Each of these tables is contained in an 8-line space.

Thus, they can be

increased in size up to eight lines and altered as needed to produce a
different conversion.

The order within the tables is significant.

Thus,

recognition on an input tape of the third value in the first table would give
a substitution on the UNICODE tape of the third value of the second table.
There are two versions of this routine; one for the 1103A and one for the
1105.

With the 1105 version an MJ2 setting indicates that Tape Control Unit 2

is being used.

No MJ2 setting indicates use of TCUI.

No settings are needed

with the 1103A version.
To operate either version, after checking whether an MJ2 setting is needed,
put the tape produced by the Card-to-Magnetic Tape Converter on any Uniservo.
The number of this Uniservo should be placed in A.
v

In Q put the number
v

of the Uniservo on which the UNICODE tape is to be written.

The octal number

of input blocks must be in Q •
u

Start with beginning address at 77460.
core where it operates from 6300-6736.
of the translation.

The routine transfers itself to

Both tapes are rewound on completion

The computer stops with PAK at 6300, which address, since

the core is not restored, can be used for a start of any additional translation.
No check is made for illegal parameters.

A failure to recover from a parity

error after 5 additional reads with varying bias and direction will cause
a computer stop with the print-out:

PY.

at this point by pushing the START button.

167

Another 6-read trial can be obtained

The flex copy of this routine loads in the drum from 77460-77714.
be added to the bioctal tape of UNICODE Service Routines.

It may

It has not been

included on any of the tapes of the UNICODE System but flow charts and
are

nrr thi
c: TAlritp-1Jn
..,~hntAln
.. "' .... fnllnlAli
.. ..
_ .. -..
-r·
~"'~~"'

~

~

~--~

On both versions of the routine the first table is located at 77675 and
the second table at 77705.

A change in the number of significant values in

the tables would necessitate a change in the repeat instruction that controls
use of the first table.

On the 1103A version this instruction reads 75 20005

06345 and is located at 77515.
20005

On the 1105 version this instruction reads 75

06362 and is located at 77532.

For example, an increase to 8-1ine sets

of significant values in the tables in the 1105 version would require a change
of the content of 77532 to 75

20010

06362.

168

Flow Charts for Routine to Convert Card-To-Tape Converted
Tape to UNICODE Tape (1103A or 1105)

Transfer Routine
From Drum to Core
and Jump to Core
Start

Set Normal
Bias

If on 1105, Set Bypass
of Appropriate Buffer

Read I Block
From Tape to
Input Buffer
in Core

Set up Tape
Paramete rs and
Indexes

Is there a
Parity Error?
Yes

Character One
Those that is
Changed?

Extract a Character from Word

......
-.J

o

L.

-....

Yes

Replace Character by One
Which Unicode
will Recognize

Write Translated
Block to Output
Tape

Set up to Examine
Next Word

~o

Have Number of )
Blocks Been Used
U?
Rewind Input and]
Out put Un i se rvos

_r--~

Read Tape Backward 1 Block

Is There a

Set Low
Bias

I--~~

Read Tape Forward 1 Block

Yes
Parity Reread Routine
Set Normal
Bias

Set Normal
Bias

Move Tape Forward 1 Bloc k

Yes

Read Tape
Backward 1
B

k

Set High
B] as

1-----';::.1

Read Tape Forward 1 Block

Print-out:
PY

Read Tape Backward 1 Block

Regions for 1103A or 1105 Routine To Convert Card-To-Tape
Converted Tape to UNICODE Tape
RE
RE
RE
RE
RE
RE
RE
RE
RE

DH77460
HL6300
BL6377
TC6460
NU6513
BE6522
NE6523
UC6533
T56547

172

1105 Routine to Convert Card-to-Tape Converted Tape to UNICODE Tape
IA DH
RP 30233 HL
HLO
1

TP DH2 HL
LA A 14
TP A UC 6
4

Transfer Routine from drum to core

Number of input Uniservo to UC6 in shifted position.

3

TP Q UC
MJ 20000 HL5

4

~J 0 HLII

Jump to bypass buffer 1

5

M.T 50000 HL5

Is Buffer 2 active?

2

6

TP

7

EF

10

MJ

11

MJ

12

TP

13

EF

14

TP
RP

15
16
17
20
21
22

23
24
25
26

TC 1 UC 13
0 TC 13
0 HL 14
40000 HL 11
TC UC 13
0 TC 12
26
TC
Q
10010 HL17
UC 13 TC 2

QS
SP UC 6 0
AT TC 2 UC
TP TC 32 Q
QT UC 4 UC 12

LQ A 25
ST TC 23 OC 5
TP TC 22 UC 12
TV

u:: 4 UC 12

27

LA UC 12 14

30

TP A UC 4
AT TC 3 UC 1
17 0 TC5

31
32
33

34

17 0 UC
}
75 10170 HL36

35

76 10000 TS

Storing q in UC4
Is MJ2 set,

If so, jump to bypass buffer 2

Set up TCU2 selection
Bypass buffer 2
Is buffer 1 active?
Set up TC Ul se lect i on
Bypass buffer 1
Put reu selection in tape handling parameter

"Read forward 1 block from input servo" set up in UC

u of Initial Q transferred to A

v

Index of number blocks formed in OC5
v of Initial Q transferred to UC4 in shifted
position. This is output servo number

ttWrite 1 block to output servo" set up in UCI
Set normal bias
Read forward 1 block to core

173

36
37

76 0 A
ZJ HL40 HL41

40

RJ BL BLI

41
42
43
44
45
46
47
50
51
52
53

TU TC 21 HL45
TU TC 21 HL47
TP TC 20 UC 3
TP TC 16 UC 2
LQ TS 6
14
TP TC
Q
TS A
RP 20005 HL62
52
EJ NU HL
Ql'

SN

}

Is there a parity error?
Recover from parity error by attempted rereads
at different bias

}

I
?

J

Set up start of analysis of block at 1st address of
buffer, TS
Index of greatest possible (162) number of words
set up. Rest of block words are spaces
Index for number characters in word
Character to A for examination

Is character one of 1st table?

Q 17

r~u

SA HL 50 0
TU A HL61
LQ HL 45 Q25

of substituting command

54
55
56

TV Q HL61

57

RA HL61 TC 15

r + BE to u of Substituting command to get proper
character of 2nd table

60

14
TP TC
Q
}
QS 30000 30000

Character substitution (2nd table char. for 1st
table char.)

IJ UC 2 HL 45

Index jump on no. characters in word

61
62

Location in block to v of substituting command

}

63
64
65

RA HL45 TC 17

66
67
70
71

17 0 UCI
}
75 10170 HL71

72

73
74
75
76

RA HL 47 TC 17
IJ UC 3 HL 44

Set-ups to examine next word
Index jump on number possible
block

non-space words in

Write 1 translated block on Output Uniservo

77 10000 TS
IJ UC 5 HL 33

RA UC 6 TC 4
17 0 UC6
RA UC 4 TC 4
17 0 UC4
MS 0

HL

Index on number of blocks
Rewinds input Uniservo
Rewinds output Uniservo
Stop with core starting address in PAK

174

BL

Pari ty
Reread
Routine

o

MJ 0 30000

1

TV TC

25
24

BL6

Set-up to read from last address of buffer

IO
UC

Index of number of words in buffer to UCIO

2

TP TC

3

5

TP TC 10 A
7
6
AT UC UC
17 0 UC7

6

76 10000 TS 167

7

RS BL6 TC

4

10

23

6

10

IJ UC

11

76 0 A

12

ZJ BL 13 BL52

13

17 0 TC6

14

17 0

15

BL

}

Read backward I block input Uniservo

Providing 170 external reads into descending
addresses
Is there a parity error?
Set low bias

UC

75 10170 BL17

Read forward I block input Uniservo

16

76 10000 TS

17

76 0 A

Is there a parity error?
Set-up to read into last address of buffer

23

ZJ BL21 BL57
TV TC 25 BL24
24
lO
TP TC
UC
17 0 UC 7

24

76 10000 TS167

25

RS BL24 TC 23

26

IJ UC lO BL24

27

76 0 A

20
21

22

31

52

31

ZJ BL
BL
17 0 TC 7

32

17 0 UC

33

75 10170 BL35

34

76 10000 TS

35

76 0 A

30

36
37
40
41
42
43
44

Index of number of words in buffer to UCIO
Read backward I block input Uniservo
Providing 170 external reads

Is there a parity error?
Set high bias
Read forward 1 block input Uniservo

Is there a parity error?

ZJ BL37 BL57
TV Tc2 5 BL42
24
lO
TP TC
OC
17 0 UC 7

Set-ups for reading backward

76 10000 TS167

Read backward 1 block input Uniservo

RS BL42 TC 23
IJ UC IO BL42
175

45

Is there a parity error?

50

76 0 A
{
52
ZJ BL47 BL
75 10003 BL51
PR 0 TC 27

51

MS 0 HL 32

Stop with PAK at complete restart of attempt to read block
Set normal bias

55

17 0 Tc5
ll
TP TC
A
AT UC 6 UC ll
17 0 UC11

56

MJ 0 BL

Exit from parity read

57
60

17 0 TC5

Set normal bias
Exit from parity read

46
47

52
53
54

TC 0
1

Constants 2
3

4

5
6

7

10
11
12
13
14
15
16
17
20
21
22
23
24

n __

j

}

MJ 0 BL

~

"_-L

_

__ L

tt _ _ . ___ !

_

~

_ _ _ _ ..... ____

._1.

rrlIll UUl (;ctrrlctye relurn

.

TC U1 i nd i cat 0 r

2 0 0

TCU2 indicator

o 602 0
o 646 0

Read forward 1 block & stop
Write 1 block and stop

0

o 1 50000
o 1 60000

o1

70000

o 612 0
o4 1
o 10000 04000
o 20000 04000
o 0 77

o BE

0

005
010

o0

161

o TS

0

rl

Move forward Input servo 1 block

100

o 200

n,'

Rewind tape
Normal bias
Low bias
High bias
Read backward 1 block
Move forward 1 block
Bypass buffer 1
Bypass buffer 2
Mask
Address just before 2d table
Index for characters in a word
Adder
Index for greatest possible number (162)
words in block
Starting address of buffer

000

Zero

001

Adder
Index for number words in block

o0

167

176

25
26
27
30
31
32
NU

0
1
2
3
4
5
6
7

NE

0
1
2
3
4
5
6
7

o0

T5167
7-r 0 0

o 0 45
o 0 15
o 0 25
o 77777
o 0 16
o 0 35
o 0 62
o 0 55
o 0 75
000

Address of last word in block
Mask
Carriage return
P
y

0
&

Mask
First Table Card-to-Tape Produced
Excess-Three Values

#.

$

%

000
000
0063

o0
o0
o0

76
42
17

° 0 43

+

=

Second Table Excess-Three Values
Accepted by Unicode

(

)

000
000
000
CA DH 235
Temporaries Used

UC

0
1

2
3
4
5
6
7

10
11

12
13

Read forward 1 block of tape
Write 1 block on output tape
Index for characters in a word
Index for total words possible in block (162)
HoI dsin i t i a 1 val ue 0 f Q. La t e rho 1d sou t put tape no. s h i f ted
Index for number of blocks
Holds initial Av shifted of input tape number
Read backward 1 block
Index to read backward
Move forward 1 block
Temporary to get output servo no. shifted to right position
Holds Tape Control Unit No. In "Operation" part of word.

T5 Buffer of 1708 lines used for reading into and writing from after
translation to UNICODE characters.

177

1103A Routine to Convert Card-to-Tape Converted
Tape to UNICODE Tape
IA DH
RP vV'-'vv HL
~f'\<) ~~

Transfer routine to core from drum and
jump to start in core

TP DH2 HL
HLO LA A 14
1

Number of input Uniservo to temporary in 5thdigit position

TP A UC 6

2

AT TC OC
3 TP Q UC 4
25
4 TP TC
Q
12
4
5 QT UC UC
6 LQ A 25
7 ST TC 11 UC 5

Parameter for tape read to temporary
Store q in temporary

I

J

10 TP TC 10 UC 12
TV UC 4 UC 12
11

12

15
16
17

17 0 UC
75 10170 HL21

20

76 10000 TS
76 0 A

14

21
22
23
24
25
26

ZJ HL 23 HL24
RJ BL BL 1
TU TC 7 HL30 }
TU TC 7 HL 32
TP TC 6 UC 3

27 TP TC 4 UC 2
30 LQ TS 6
31 TP TC 2 Q
32
33
34

Output tape number in 5th position to temporary

LA UC 12 14
TP A UC 4
AT TC 1 UC I
17 0 TC 13

13

Forming index for number blocks in temporary

QT TS A

RP 20005 HL 45
EJ NU HL35

Forming parameter for tape write in temporary
Set normal bias
Read 1 block of tape
Providing 1708 external reads
Is there a parity error?
Jump to parity reread routine
Set up examining loops to beginning of block
Index for 162R (maximum possible non-space)
words in blocK set up
Index for 6 characters in line set up

Is a character one of those in first table?

178

35
36

SN Q 17
SA HL33 0

Replace character by the corresponding
one in second table

37 TU A HL44
30
40 LQ HL Q25
41
42

TV Q HL44

RA HL44 TC 3
2
43 TP TC Q
44 QS 30000 30000
45 IJ UC 2 HL 30
RA HL30 TC 5
5
47 RA HL32 TC
3
50 IJ UC HL27
46

51
52
53
54

17 0 UCl
75 10170 HL54
77 10000 TS
IJ UC 5 HL16

57

RA UC6 TC 12
17 0 UC6
RA UC 4 TC 12

60

17 0 UC4

61

MS 0 HL
000

55
56

}

Jump back to beginning of loop toexamine
next character in line
Set-ups to examine next line in block
Jump back to loop to examine next line. Is
block used up?

}

Write completely translated block to output
tape
Provide 1708 external writes
Have number of blocks been exhausted?
Rewind input Uniservo
Rewind output Uniservo
Stop with core starting address in PAK

000
000
000
000
000
000

Unused fill lines put in so this routine will occupy
same regions as 1105 counterpart

000
000
000
000
000
000

179

BL 0
Pari ty
Reread
Routine

1

2

MJ 0 30000
TV TC 20 BL6
TP TC 17 UC lO

Set-up to read from last address of buffer
Index of number of words in buffer to temporary

I

5

TP TC 16 A
AT UC 6 UC 7
17 0 UC7

6

76 10000 TS167}

3
4

J

Read backward 1 block of input Uniservo

Providing 1708 external reads into descending
core addresses

10

RS BL6 TC 11
IJ UC lO BL6

11

76 0 A

12

Z.J RL13 BL52

13

17 0 TC14

Set low bias

14

17 0 UC
75 10170 BL17

Read forward 1 block input tape

7

15
16
17
20
21
22

23
24
25
26
27
30
31
32

76 10000 TS
76 0 A
ZJ
TV
TP
17
76

BL21 BL57
TC 20 BL24
TC 17 UC lO
0 UC 7
10000 TS 167

RS BL24 TC II
IJ UC lO BL24
76 0 A
ZJ BL31 BL52
17 0 TC 15

33

17 0 UC
75 10170 BL35

34

76 10000 TS

35

76 0 A
ZJ BL37 BL 57
TV TC 20 BL42
TP TC 17 UC lO

36
37
40
41
42
43

17 0 UC 7
76 10000 TS 167

1
J

Is there a parity error?

170 external reads provided
Is there a parity error?

Read backward 1 block of input tape to
descending core addresses

Is there a parity error?
Set high bias

Reading forward 1 block input tape
Is there a parity error?

Read backward 1 block of input tape to
descending core addresses

RS BL42 TC II
IJ UClO BL42
180

45

50

75 0 A
Z J BL47 BL52
75 10003 BL51
PR 0 rc 22

51

MS 0 HL 15

Stop with PAK at place where read can start all
OiTer

52

17 0 TC 13
21
TP TC
A
AT VC 6 VC ll
17 0 VCll

Set normal bias

46
47

53
54
55
56
57
60
TC

0

Constants 1
2
3
4

5
6
7

10
11
12
13
14
15
16
17
20
21

22
23
24
25

Is there a parity error?
Print-out:

PY

}
Move forward 1 block

MJ 0 BL
17 0 TC13

Set normal bias

MJ 0 BL
2 602 0

Exit
Parameter for reading 1 block forward

2 656 0

Parameter for writing 1 block

o 0 77
o BE 0

Exit from reread routine

Mask
Address of word before 2nd table

005

Index set-up for 6 characters of line

010

o0

161

Index set-up for maximum possible (162 8 )
words in bloc k

o TS 0
000

Beginning address of buffer

001
2 200 0

Rewind parameter

2 1 50000

Normal bias parameter

2 1 60000

Low bias parameter

2 1 70000

High bias parameter

2 612 0

Read backward 1 block

o 0 167

o0

TS167
241

Move forward 1 block parameter

o 0 45

Carriage return

o0

15
0025

o 77777

Address of last word in buffer

P
Y

0

Mask

181

000
000
Dummy fill lines put in to maintain
correspondence with 1105 routine

000
000

J

000

4

o0
o0
o0
o0
o0

5

000

6

000

7

000

NU 0
1
2
3

16

&

35

:n:

62
55

$

75

%

4

o0
o0
o0
o0
o0

5

000

6

000

7

000

NE 0
1
2
3

First table - Card-to-Tape
Produced Excess-Three Values

63

+

76

=

42

I

17

(

43

)

CA DH

Second Table-Excess-Three
Codes Accepted by Unicode

235

Temporaries Used
UC

0
1
2
3
4
5
6
7
10
11
12
13

Read forward 1 block of tape from input Uniservo
Write 1 block on output tape
Index for characters in a word
Index for total words possible in block (162 )
8
Holds initial value of Q. Later holds output tape No. shifted
Index for number of blocks
Holds initial Av shifted of input tape number
Read backward 1 block
Index to read backward
Move forward 1 block
Temporary to get output servo ~~o. shifted to right position
Not used on 1103A version

TS Buffer of 1708 lines used for reading into and writing from after
translation to Unicode characters.

182

6. STATISTICAL MISCELLANY

6.

STATISTICAL MISCELLANY

a.

Call words of UNICODE
1.

Regular call words

7 7

Subscripted variable

7 6 X- -

Subscripted 'dummy' variable for Subprogram - X denotes the
number of subscripts

7 5 - - -

Subscripted 'dummy' variable for functions

6 7 -

Constant (Floating or Fixed Point)

66-

Function (Floating)

65-

Floating point variable

6 4

Fixed point variable

6 3 -

Non-subscripted dummy variable in Subprogram

6 2

Non-subscripted dummy variable for functions

6 1

Dummy function in Subprogram

5 4

X
XX

Library routine - X denotes the number of operands
Pseudo operation - X X denotes the number of operands

2 7 -

Statement of Main Program

2 6 -

VARY statement of Main Program

2 5 -

Equation defining 6 6 - - -, 6 5
variable (before START)

2 4

Equation defining 7 7 - - - type variable (before START)

2 3 -

ENDAOFATAPE

2 2

Sentence of Subprogram (including VARY statement)

7 1-

Absolute address call word for those addresses 1000 thru 1777

185

or 6 4 - - - type

2.

SUPPLEMENTARY CALL WORDS AND ASSOCIATED PRELUDE ENTRIES

The following supplementary call words will be unique only within a given
generated routine.
Call words
10---

Relative constants

20---

Fixed constants

60---

Fixed temporary storage

70---

Working temporary storage

The rightmost three octal digits of the call words specify the relative
running location of the item within the designated region, the first item of
a region being designated by the digits, "000".

Thus, the call word, 10003,

would be used as a relative address to reference the fourth relative constant
in order of increasing memory address.

These call words facilitate the

generation of machine instructions referencing items in the constant or
temporary regions without predetermining the actual addresses of these items
relative to the beginning of the running routine.
Relative constants are those which are relatively coded and must be
modified during processing.

Modifying "10" lines appearing in the Relative

Constant region must not be counted when determining the three call-word digits
specifying the relative location of constants within the region.

Fixed

Constants are those constants which are coded in absolute and are not to be
modified.

Fixed temporaries are those in which information is stored at some

time during the execution of the routine and is retained for the duration of
the routine.

On the other hand, working temporaries* would be those which

are used and reused to store different information during a given execution of
the routine.
The number of entries in each of the constant or temporary regions, exclusive of "10" lines, must be included in the third word of the Prelude for
* NOTE:

Distinguishing between two types of temporary storage was necessary
in the generation of equation routines. In general, this may not be
necessary.

186

the routine.
each.

This word will be divided into four groups of three octal digits

Each group will contain the number of entries in the corresponding

region, packed to the right and filled with zeros within the group.

The word

will be divided as follows:
Number of Fixed
Temporaries

Number of Working
Temporaries

3 octal digits

3 octal digits

Number of Relative
Constants

Number of Fixed
Constants

3 octal digits

3 octal digits

When any of the regions is not used, a corresponding zero entry must be made
in the third word of the Prelude.
An example of the use of supplementary call words in a generated routine
would be:
Relative
Address

Generated Routine
Op
.tu·t
'tv"

--

-00

----- ----I

I

li001:0
I
1

""\

--,--I

021003
__1I__ -

----

._I__ ..J_

1000

45

00000

1001

15

10000 01002

1002

66

30000 20000

1003

11

31000 60000

1004

67 20002

60000

1005

11

31000

70000

1006

65

60000

70000

1007

11

31000

70000

1010

66

60000 20000

1011

64

31000

70000

1012

16

10001

01014

1013

21

01014

20001

1014

11

31000

30000

1015

45

00000

01000

----- --------- ----30000

Prelude

r<

>

v

187

Body of routine

10000

00

77000

00000

10001

00

00000

77005

20000

20

04000

00000

20001

OU

OOOOU

00001

20002

20

54000

00000

~

>

~

----- >

60000
70000

>

}

188

Relative constants

Fixed constants
Fixed temporary
Working temporary

3.

USE OF CALL WORDS TO REFERENCE SUB-PROGRAM INPUT LIST

The inputs for a sub-program are designated by means of dummy variables
appearing in the heading of the sub-program.

These inputs may be floating or

fixed-point single-valued quantities, subscripted variables, or functions.
The dummy variables will be assigned dummy call words depending on the type of
input.

The leftmost two octal digits of the call words indicate the type of

input, the third octal digit specifies the number of subscripts in the case
of subscripted variables, and the rightmost two octal digits indicate the
relative location of the particular entry in the sub-program input list.

These

call words are used in the generated routines of a sub-program to reference
the entries in the sub-program input list.
The input file for a dummy subscripted variable will contain the call word
of the subscripted input variable, and the values of its multipliers, modulus
and subscripts in that order.

The dummy subscripted variable will have a

76--- type call word; the multipliers, modulus, and subscripts will have 63--type call words.

SUBSCRIPTED DUMMY VARIABLE INPUT FILE*
Dummy
Call word

Op

u

v

764--

00

77---

77---

Call word of input variable in u and v
Numerical value of fi rst multiplier

630-630--

"
"

630-630--

tI

630--

tI

..

630--

*Note:

"
"

"

,. third

. ..
II

second

--

first subscript

~,

630--

It

tI

" third

630--

tt

"

" fourth

189

••

modulus

1t

Length of file varies with number of subscripts.

.,

second

"
"
"

The input file for a dummy function will contain the call word for the
input function, and the call word of the equation defining the function.

The

dummy function will have a 61---type call word.
DUMMY FUNCTION INPUT FILE
Dummy
Call word

Op

u

v

61---

00

66---

66---

Call word of input function in"d'and'V'

61---

00

25---

25---

Call word of e0uation defining input
fun c t ion in" u" n(1 " V "
':l

The input file for a dummy floating or fixed-point single-valued variable
contains only the value of the input quantity.
DUMMY

SINGLE~VALUED

Dummy
Call word

Op

VARIABLE INPUT FILE
u

v

Numerical value of input quantity

63---

The files for the inputs for a sub-program must appear consecutively in
the sub-program input list in the order in which the corresponding dummy
variables appear in the sub-program heading; the file for the first (leftmost)
input variable beginning at the initial address of the input list.
Consider the following:
DIMENSION .

.X(2,4)

SUB-PROGRAM REFERENCE .

.Compute INT(X(1,3), F, L, 0.5)
. .INT(W(I,J), G, K, T)

SUB-PROGRAM HEADING
where:
(1)

INT is a Pseudo Operation

(2)

"X" is a subscripted input variable with call word, 77003.

(3)

"F" is an input function with call word, 66001, and a
defining equation with call word, 25005.

(4)

"L" is a fixed-point input variable with value, 2.

(5)

"0.5" is a floating-point constant input.

190

The entries in the sub-program input list and the associated dummy call
words would be:
Dummy
Variable

Dummy
Call word~~

Op

u

v

W

76200

00

77003

77003

Call word of X in "u" and "v"

63001

00

00000

00004

Value of multiplier for 'X"

63002

00

00000

00010

Value of modulus for "X"

I

63003

00

00000

00001

Value of first subscript for "X"

J

63004

00

00000

00003

Value of second subscript for "X"

G

61005

00 66001

66001

Call word of "F" in "u" and

61006

00 25005

25005

Call word of equation for
in "u'" & "v·t

K

63007

00

00000

00002

Value of ttL"

T

63010

20

04000

00000

Floating-point constant "0.5"

tt

v"

"F~'

All sub-program references utilize a common input region, with the current
input list overlaying the previous list during running of the object program.
The total number of entries in the input list for any sub-program reference
must not exceed 100 octal, since only the rightmost two octal digits of the
dummy call words are available for designating the relative location of an
entry within the sub-program input list.

*Note:

The last two octal digits of the dummy call words indicate the relative
location of the entry within the input list.

191

4.

USE OF CALL WORDS TO REFERENCE ARGUMENT LIST FOR FUNCTIONS

The dummy arguments for a function are specified on the left of the
function equation and may be non-subscripted variables or subscripted variables
with only one subscript.

These dummy arguments will be assigned dummy call

words which will be used in the generated routines to reference the arguments
for the function.

Argument files pertinent to the real arguments to be used

in the evaluation of a function will be transferred to an Argument List for
the function by the COMPUTE statement referencing the function.

The rightmost

two octal digits of the dummy call words indicate the relative location of the
particular entry in this Argument List; the leftmost two digits specify the
type of entry, i.e., subscripted or non-subscripted.
The argument file for a dummy subscripted argument will contain the call
word of the real subscripted argument, the value of the modulus for the
argument, and the value of the subscript.

The dummy argument will be assigned

a 75--- type call word, the dummy subscript and modulus 62--- type call words.
SUBSCRIPTED ARGUMENT FILE
Dummy
Call word

Op

u

v

750--

00

77---

77---

620-620--

Call word of subscripted argument in "u" and
t'v"

Numerical value of modulus
Numerical value of subscript

The argument file for a dummy non-subscripted argument will contajn only
the value of the real argument.

The dummy argument will have a 62--- type call

word.
NON-SUBSCRIPTED ARGUMENT FILE
Dummy
Call word

620--

Op

u

v

I --1----- 1----- I Numerical value of real argument

The argument files for a given reference to a function equation must appear
consecutively in the Argument List in the same order as the corresponding dummy

192

arguments appear on the left of the equation; the file for the first (leftmost)
argument beginning at the initial address of the Argument List.
As an example, consider the following:
DIMENSIONS . . . . .
FUNCTION EQUATION
FUNCTION REFERENCE
where:

. 5(10), Y(4)
F(X(I), Z, W, Y(J» - - - - - . . COMPUTE F(S(3), 0.5, T, Y(J»

(3)

T is a float ing- poi nt variable with value, 16. O.
J is a fixed-point variable with value, 2.
5 is a subscripted argument with call word, 77004.

(4)

Y

( I)

(2)

(5)
(6)

is a subscripted argument with call word, 77001.
tt3" is a fixed-point constant.
"0.5" is a floating-point constant.

The entries in the Argument List and the associated dummy call words
would be:
Argument List
Op
u
v

Dummy
Variable

Dummy
Call word

x

75000

00

77004

77004

Call word of "5'" in "u" and "v".

62001

00

00000

00012

Value of modulus for 1'5".

I

62002

00000

00003

Value of subscript for "5".

Z

62003

00
20

04000

00000

Floating-point constant "0.5".

W

62004

20 54000 00000

Y

75005

00

77001

77001

00

00000

J

62006
62007

00

00000

00004
00002

Value of T, i.e., floating-pt
const. 16. O.
Ca II wo rd of "Y" in "u" and v".
4t

Value of modulus for "Y".
Value of Subscript "J".

A common region is used for the Argument Lists for all function equations,
with each list overlaying the previous list during the running of the object
program.

The maximum number of entries in an Argument List is twelve, since a

maximum of four arguments is allowed and the maximum argument file contains
th ree e nt ries .

193

B.
FIXED
ADDRESS

0020000

00006

002 n
s
n =0 # words Dimension List
s =0 # arrays

00007

00

00010

00 2 n
n
n == # words Constant Pool

00011

00 2 n
n
n = If. words Reference List

0

0
n
n == # single-valued
variables

00012

00013

OWI4

GENERATION

TRANSLATION

00005

Fixed Locations During Co.piIation
SEGMENT ATI ON

INITI ALI ZATI ON
GENERATION

ALLOCATION

LISTING

X2 n
n
n = If. words in LIST I
x
00 if n = 0
x = 20 if a II Library Call words
> 50177 (Standard)
x = 40 if all Library Call words
< 5~ 00 (F i xed)
x = 60 if both types occur

s
s
00 2m
00 2n
m = If. words mod ified Di m. List
n = If. words Dimension List
s = If. arrays
0

n

00 x
n
x - J st add ress for single valued
variables
n
If. single-valued variables
If n = 0, X = 0

002 n

n

00

2
n
x
x = 1st address of constants
n = If. constants
If n = 0, X = 10000 (20000,
30(00)

00

OOOOx
a
a = Load i ng add ress
for segments

00

00 OOOOx
x = 0 if
x = I if
x = 2 if
x = 3 if

0
no LIST or READ
LIST only
READ only
both

00
0
n
n = # blocks Corrected
Problem

!!._~_~_~_L

__

= If.

blocks Constant Pool

=#

blocks DIM LIST

w

= If.

blocks Symbol LIST

x
y

= READ, LIST i nd i cator
= If. blocks thru Constant

u

+ Label + End

v

+ Label + End
+ Label + End

00015

PROCESSING

Pool

o 2n

s
0 2m
Description as above

I

s

00

2m

s

00

2m

s

c.

Uniservo Usage

On the following pages are given the two layouts of Uniservo usage
during compilation of a UNICODE program; one using five Uniservos, the other
seven.

These charts show the important contents of each tape at the beginning

of compilation and at the end of each phase.

Entries only appear on the chart

when the preceding phase has added to or changed the contents of the tape.
The bottom line shows the contents of all tapes at the end of compilation.

195

UNICODE COMPILATION - Fi ve Uniservo Layout

UNISERVO 1
UNICODE MASTER

UNISERVO 2

UNISERVO 3

LIBRARY

PROGRAM

UNISERVO 4

(J\JISERVO 5

CORRECTIONS (if any)

PHASE

BLANK

MEHGE
BLANK

BLANK

CORHECTED PROGRAM
TRANSLATION

STRINGOUT
GENEHATION
GENERATED ROUTINES

COR RECTED PROGRAM
OP FILE I
LIST I
DIMI~NSION LIST
CONST ANT POOL
SfM130L LIST
SEGMENTATION

OP FILE II
ALLOCATION
ALL OF PRECEDING

~~E~;,~~

lIIL

TERMINATIONJ

by
segment
INITIALIZATION
GENEHATION

TAPE HANDLER
CONTROL
INITIALIZATION
CONSTANT POOL
PROCESSOR
OBJECT PROGRAM
LISTING
PROGRAM LISTING

I
UNICODE MASTER

LIBRARY

OBJECT PROGRAM

PROGRAM LISTING

CORRECTED PROGRAM

END OF
COMP::LATION

UNICODE COMPILATION - Seven Uniservo Layout

UNISERVO 1
lI'lICODE MASTER

UNISERVO 2

UNISERVO 3

LIBRARY

PROGRAM

UNISERVO 4

UNISERVO 5

CORRECTIONS (If any)

UNISERVO 6
BLANK

BLANK

UNISERVO 7

PHASE

BLANK
~lERGE

CORRECTED PROGRAM
TRANSLATI ON
STRINGOUT
GENERATION
CORRECTED PROGRAM
OP FILE I
LIST I
DIMENSION LIST
CONST ANT POOL
SYMBOL LIST

GENERATED ROUTINES

SEGMENT ATI ON
OP FILE II
ALLOCATION
ALL OF PRECEDING

~~E~~~~

III}
TERMINATION

By
Segme nt
INITIALIZATION
GENERATION
TAPE HANDLER
CONTROL
INITIALIZATION
CONST ANT POOL
PROCESSOR
O.3JECT PROGRAM
LISTING
PROGRAM LISTING

lINICO[)E MASTER

LIBRARY

PROGRAM

CORRECTI ONS (If any)

,

,

CORRECTED PROGRAM

OBJECT PROGRAM

I

~

PROGRAM LISTING

END OF
COMPILATION

d. Corrections to UNICODE Manual
Page 4:

(U-1451 Rev. 3)

Insert after tenth line of first paragraph the following:
This size restriction on fixed-point constants written
in a UNICODE program does not prevent the generation,
use, or output of fixed-point numbers greater than
999999 in the running of an Object Program.

Page 7:

Change first line of third paragraph to read:
Superior symbols available are minus sign, divide sign,
and figures, all superior

Page 10:

Change first two lines of list under first paragraph
opposite "Hierarchy of Operations" title to read as
follows:
1.

2.

Library Functions
Exponentiation

Add paragraph at bottom of page 10:

= sin
such as
sine of
applies

Z

Page 23:

y 2 is interpreted as Z = (sin y)2. A term
sin 2 y causes an error print-out. To get the
y2, one must write sin (y2). Similar usage
to other library functions.

Change second and third line from the bottom of page to read:
DOT

(A(I), B(J))

where A( I) and B( J) are dummy vectors.

No "'dummy" operand in

Also add at the bottom of the page the sentence:
No dummy operand (including subscripts) may have the same
designation as another dummy operand in the same heading,
although different dummies may be equated to the same
real variable by the COMPUTE statement which references
the sub-program.

198

e.

Use of Second and Third Memory Cores in Object Program

To modify the UNICODE Master Tape so that more than one core of 10000
8
addresses is available to the Object Program, update a Master Tape until the
number 13 for the Segmentation Phase has been typed.

Stop the updating at

this point and load into absolute address 2555 the upper threshold desired.
At present this address holds 00 00000 10000. It may be changed to
00 00000 20000 for 2 cores or 00 00000 30000 for 3 cores or any value above
10000 for Object Programs needing more than one core but less than the full
memory_
After this correction, resume the updating of the Master Tape as explained in the System Tape Package write-up by starting at 40414.

Upon

completion of the updating, a changed-word post mortem (start at 40600)
should show only the changing of this one word.

If it does, the updated

Master Tape will now generate Object Programs using the new memory area
designated.

199

III. TRANSLATION AND CORRECTION
1. UNICODE SENTINEL BLOCKS

III.
1.

Translation and Correction

UNICODE Sentinel Blocks (ZZ)

The first two blocks of the system tape contain coding to:
A.

Read in the merge and jump to it (start at 77000)

B.

If start was at 77004, read in:
1.

Flex Codes (FC)

2.

Tape Handler (TH)

3.

Print Text (UP)

4.

Alarm Routine

then move tape on Uniservo 1 forward to Segmentation
Set-Up and check Sentinels on following tapes:
1.

Library

2.

Generated Routines

3.

·'UNICODE Program'"

then move

:tt5

(:tt2)
(:tt4

or

:tt7)

(:tt5)

forward to Ope File I and jump to 77010.

This will read in Segmentation Set-Up and jump to it,
thus initiating Pass III.

203

Unicode Sentinel Blocks (ZZ)

77000
start

Service Rout.
read 2nd hlk.

)------~

Read in merge &
Jump to it

77004
start
Read in TU, UP, FC.
BR and move #1 fwd.
to Seg. setup hlk.

Check sentinels:
LIB tape
GEN tape
"Unicode program"
Position #5

Unicode System Tape Sentinel Blocks
(1105 & 1103A Regions and Coding)
Region

Address

zz

7230
7267
7344
7407
7437
7444
7474
7534
7610
7116

CC
CE
ZU

ZW
ZX

Zy
'l£

TI
BB
TH
TN
UP
OW

FC
ZA

XA

XB
BR

Name

}

21
20
421 }

513
40001
77000
35
3134
537

Sentinel and Reads
Constants
Check Library Sentinel
Move No. 5 forward
Check for 1'Unicode Program"
Check Generated Tape Sentinel
Read N blocks
Tape Image
Read Subroutine
Tape Handler
Indicates 5 or 7 servos
Print text
Flex Codes
Service Routine
Beginning of Merge
End of Merge
Start of Generatio~ subs

205

Unicode System Tape Sentinel Blocks
(1103A)
ZZ

1

OUT
m
...

n

V

~~J..J

2

67
30
30
30
TP
RJ
TP
RJ
MJ

50342
77657
47776
77777

65127
36566
62452
77777
BB2 }

L

3

4

5
6
7

10
11
12

o

CCI

BB
CC2
ZC

o

~

TO
..LL

r
rl
vv L

14
15
16
17
20
21
22
23
24
25
26
27
30
31
32

RJ
EF
TP
RJ
RP
TP
TP
RJ
TP
RJ
TP
RJ
TP
RJ
MJ
CA

BB

1

= 7230

IA
MJ

o

.LV

o

CE42
BB
30100
TI
CC4
ZC
CE31
TH2
CE30
TH2
CE27

ZZ6

77000 Start

. . , , . , , , , , AI

'7'7,q

BBI

ZC2 }

zel
XA
DDI)

~i;i
CC3

'\

J

BB2 }
BBI

TH2

ZZ22}
FC
ZC2 }
ZCI
TH3 }
TH
TH3 }
TH
TH3 }
TH

o

ZU

,....

•

IIU\jq

;:)1..arl.

UN

I COD

E 77 S
E M 77
E 77 77
Read in

Y S T
TAP
77 77 77
subs

Read in merge
~ Merge
Read in subs
Move fwd to FC
Read in FC
FC~drum

Read in GTH, UP
Move fwd to BR
Read in BR
Move fwd to seg. setup
~ LIB check

ZZ33

206

Unicode System Tape Sentinel Blocks
(1105)

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36

IA
MJ
MJ
67
30
30
30
TP
RJ
TP
RJ
MJ
TP
RJ
MJ
EF
MJ
EF
TP
RJ
RP
TP
TP
RJ
TP
R.J
TP
RJ
TP
RJ
MJ
1
CA

zz

0
0
50342
77657
47776
77777
CCI
BB
CC2
ZC
0
CCI
BB
20000
0
0
0
CE42
BB
30100
TI
CC4
ZC
CE31
TH2
CE30
TH2
CE27
TH2
0
4
ZZ37

ZZ6
ZZ13
65127
36566
62452
77777
BB2
BBI
ZC2
ZCl
XA
BB2
BBI
ZZ20
ZZ36
Z721
CC3
BB2
BBI
ZZ25
FC

ZC2
ZCl
TH3
TH
TH3
TH
TH3
TH
ZU
10153

}
}
}

= 7230
77000 Start
77004 Start
U N I
C 0 D
S T
E 77 S y
E M 77 T A P
E 77 77 77 77 77
Read in subs
Read in merge
~ Merge
Read in subs
TCUI ~
fwd to FC
20
fwd to FC
in FC

TCU2~ZZ20

}

}
}
}
}
}

Move
Skip
Move
Read
FC

~

drum

Read in GTH, UP
Move fwd to BR
Read in BR
Move fwd to seg. setup
~ LIB Check
Move fwd to FC TCUI

207

Check LIB Tape
( 11 03A &. 1105)

2
3
4
5
6

IA
TP
RJ
TP
EJ
MJ
TP
EJ

7

TP

10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27

RJ
TP
RJ
TP

0
I

MS

ZJ
TP
RJ
TP
DV

ZJ
RA

ZU
CC5
TH2
TI24
CC6
0
TI25
CC7
CCI0
TH2
CC35
UP2
CC
0
ZY
CC5
TH2
TI2
CC12
ZU23

SP

Q
Q

AT
RJ
MJ
CA

CCII
TH2
0
ZU30

TH3
TH
A
ZU5
ZU7
A
ZU16
TH3

TH
UP3
UP
A
ZU15
ZU
TH3
TH
A
Q

ZU24
CC13
25
TH3
TH
Zy

}

}
}
}
}

}
}

Read LIB sent.
Check LIB sent.
Wo rd 2 I = llll LIB II
Word 22 = II TAP E II
Error + O.;K. ~ ZU16
Rewind #2
"LIB on 2"
A= 0
Not required ~ GEN check
Read 2nd blk. of LIB tape
No. blks. in catalog

~

Move past LIB catalog
~ GEN sent. check

208

A

Check Generation Tape Sentinel
(1103A & 1105)

0
1
2

1A
TP
MJ
TP

3

TP

4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

AT
RJ
TP
AT
RJ
TP
EJ
TP
MJ
TP
TP
RJ
MS

TP
TP
RJ
RJ
RP
CC
SP
SA

SA
ZJ
TP
RJ
TP
RJ
MS

CA

ZY
CC15
10000
CC
TN
CC16
TH2
CC20
TN
TH2
CC17
T124
CC22
10000
CC21
CC23
UP2
0
T125
CE25
TH2
ZX
30003
CE3
CE3
CE4
CE5
ZY33
CE24
TH2
CE32
UP2
0
ZY40

TN
ZY3
TN
A
TH3
TH
A
TH3
TH
A
ZY21
CC33
ZY16
CC33
UP3
UP
ZY
CE
TH3
TH
ZXl
ZY27
CE6
0
0
0
ZW
TA3
TH
UP3
UP
ZY22

TN = 0 3 0
Five servos ~ 7 ~ ZY3
TN = 0

}

Read GEN sent.

}

Rewind gen. tape

}
}

}

Sent. O.K. ~ZY21 No t
Set for 7 servo print
Fi ve servos ~ 7 ~ ZY16
Set for 5 servo print
"GEN tape not on servo 4 or 7·'
Stop for re-entry
Sent. O. K., store # blk. on 5
Read 1 blk. #5
Pick up Sentinel
Check Sentine 1

}
}

No ~ O.K. ~ ZW
Rewind #5
"Mount Unicode Program #5 etc."

209

Check "Unicode Program"
(1103A & 1105)

0
1
2
3
4

5
6
7
10
11

12
13
14
15
16
17
20
21
22
23
24
25
26
27

IA
MJ
TV
TV
TP
RP
TP
TP
LQ
QT
EJ
IJ
MJ
SP
AT
TP
IJ
TP
RA
TP
TP
IJ
RA
IJ
MJ
CA

zx
0
CEll
CEll
CC
30004
CEl7
CE20
(30000)
CE23
CC13
CEl5
0
CEl
CE2
CEI
CE16
CEI
ZX20
CC
CE22
CE14
ZX7
CE13
0
ZX30

(30000)
ZX7
ZX20
CEl
ZX6
CEl3
CEl4
6
CE2

}
}
}

Setup
Set indexes
One word index
Char. ~ CE2
~~

ZX24

ZX14
ZX24
6
CEI
CE5
ZX24
( 3(000)
CC13
CEl
CE16
ZX7
CE12
ZX6
ZX

Exit

1\1....

nv

\~
•

}

14 non lJ.'s

}

Collect char. in CEI

~
No~

CEI full ~ No~
Store CEl
Modify
Clear temp
Reset index
One word index
MOdify
20 word index
Exit

Position #5
(1103A & 1105)

0
1
2
3
4

IA
RS

SP
AT
RJ
MJ

CA

zw

CE
A

CE26
TIl2

0
ZW5

CC13
25
TH3

# blocks on 5
Move #5 fwd to op file I

TIl

ZAIO

~

210

seg, setup

Constants and Variables
(1103A & 1105)

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54

IA
0
0
0
2
0
50
01
01
10
30
0
0
0
0
50
01
10
07
12
0
47
67
30
54
54
30
65
0
24
0
47
67
30
24
01
01
31
34
01
54
66
66
54
01
54
CA

CC
0
170
XA

4
TH

102
01463
66245
2

2
0
0
0
3
104
01323
4
22010
22010
CC24
51675
50342
01323
24663
51676
65015
30547
0
54662
CC36
51675
50342
01463
54730
65305
05220
01505
25542
54305
30270
01240
01760
51220
01016
66227

0
ZZ170
XB
10153
UW23
TI
42501
23001
0
0
170
1
07777
0
TI
05001
0
16566
16566
11
06601
65127
05030
02701
63450
15001
05101
0
27777
17
06601
65127
42554
15150
47051
10134
10146
45473
36734
16530
15051
17430
10101
56624
77777

Zero
Read in subs
Read in me rge
Move fwd to FC TCU2 & 1103A
Read in GTH, UP, etc.
Read LID sent. & 2nd blk.
66LIB6
6TAPE6
Rewind 112
Move past LIB catalog
Mask
Set TN
Read GEN sent. (4 or 7)
66GEN ~
Rewind GEN (4 or 7)
4 (print with 5 servos)
7 (print with 7 servos)
Par. for print GEN sent. error
M 0 U N T l:l
U N I C 0 0
E l:l G E N E
R A T E 0 l:l
R 0 U T I N
E S l:l 0 N l:l
S E R V 0 l:l
filled in
4 . ~ l:l S T
T
A R
. 77 77
M
U
E
A
66-

F
I

b.

R
T
T

R
b.

R

CC~~

211

0 U N T l:l
N I C 0 0
b. L I B R
R Y b. 0 N
S E R V 0
2 . b. 6- I
b. N 0 l:l L
B R A R Y
R E Q U I
E 0 6- S E
b. A b. N 0
6- = 6- Z E
0
b. b. 66- 6- S T A
T
77 77 77

Constants & Variables (Cont.)

LA

CE

0
0
0

5
6
7
10

0
0
0
0
0
0
67
30
0

11

0

12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42

0
0
0
0
0
0
0
0
0
0
10
50
30
30
50
30
0
47
67
30
54
01
01
66
0
CA

0
1
2

3
4

0

0
0
50342
52545
0
TI
1
0
0
0

0
0
0
0
0
0
5
105
5
501
101
11001
CE33
51675
50342
01525
24470
65305
10220
24546
170
CE43

(0 )
0
0
3
4
5
65127
13254
02447
CE3
0
0
0
0
0
23
5
16
5
77
0
TI
0
0
BR
0
7
06601
65127
45132
15150
47051
10165
62277
TI

}

}
}

~ blk. servo 5
Bui Id word
Char.
UNIeOD
E PRO G R } bui Id
o 0 0 0 AM
UNICOD
E PRO G R
o 0 0 0 AM

Indexes

Set indexes
Mask
Rewind ~5
Read 1 blk.
Move 11:5 fwd
Move 11:1 fwd
Read in BR
Move 11:1 fwd
U N
U N I C
E ~ P R
R A M ~
~ S E R
~ 5
~
T A R T
Read in FC
M 0

.

212

11:5
n blks. to Op File
to segmentor
to BR routine
T
0
0
0
V
~

.

~

D
G
N
0
S
77

Read n Blocks to Storage
(1103A & 1105)

0
1
2
3
4
5
6
7
10
11

12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
3.5
36
37
40

IA
MJ
MJ
0
TP
QT
LQ
QT
ST
AT
LQ
TV
DV

TP
TP
2J
RS
TU
RJ
RA
IJ
TP
2J
TU
RJ
MJ
0
0
0
0
0
0
0
0
CA

2C
0
0
(30000)
2C2
2C34
Q
2C34
2C35
2C37
Q

Q
2C40
A
Q
2C17
ZC33
ZC40
BB
BB2
2C33
2C32
2C26
ZC32
BB
0
0
0
0
77777
(30000)
0

1
170
ZC41

(30000)
ZC3
(30000)

Exit

Q

ZC35
17
A
A
A
6
BB2
ZC33
ZC32
A
ZC26
ZC36
BB2
BBI
2C31
2C21
A
ZC

BB2
BBI
ZC
170
0

0
0
0
1
0
0

}

o 1st address last address
Par. ~ Q
Store 1st address in u
Last address ~ Qu
Last address ~ Au
Last - 1st + 1 ~ Au
1st add. ~ Qv
Set up 1st address
n/1708 ~ index
Store remainder

}

Quotient = 0

}

Index - 1
No. of words = 1708
Read blk
Address + 1708
n blks
Remainder = 0 ~ exi t

~

2C26

Remainder ~ par.
Read remainder
Exit
Constant
Remainder
Index
Mask
1st address
Constant

213

no ~

no

~

2. TAPE MERGE

2.

Tape Merge

The tape merge routine is used to produce a corrected program tape, or,
if no corrections are desired, to copy the program onto Uniservo 5.
used to determine which of the two options is taken.
tape is produced; if not, the tape is copied.

MJ3 is

If it is set, a corrected

Corrected Tape
Correction tape is read in 168 blocks at a time. While corrections are
being read in, a table is built up which contains an entry for each correction
item.
For a change or insert sentence, the table entry consists of the line
nl~ber

and a directory word which contains the drum address where the item will

be stored, and the number of words the correction contains.

The sign bit of

the directory word is set to negative so that the entry will be recognized
as a change or an insert.
For a delete sentence, the table entry contains the first and last line
number of the group of items to be deleted.
The Line-Number processor is used to process all line numbers in the
table.

The line numbers of insert and change items are processed between read-

in of successive blockettes and the processed line number included in the table
entry.

The line numbers of delete items are processed after 16 blocks have
8
been read in and tape has been stopped.
Since there is not enough time available between blockettes to print out
errors, a modified version of the Line Number Processor is used.

When an er-

ror is encountered, the line number and the type of error are stored so that
errors can be printed out after the tape is stopped.

Also, the output given

by Line-Number Processor for an illegal line number is set to zero so that the
line will not appear on the corrected tape.
After 16 blocks have been read in, the corrections are transferred to the
8
drum, the line numbers of delete items are processed, and any Line-Number Pro~­
essor

errors are printed out.
If more corrections remai, to be read in, the routine repeats the process.

217

When all corrections have been read in and all table entries have been
formed, the table is sorted so that the corrections can be brought down from
drum in ascending order. At this time, all table entries with item numbers
oi zero are thrown away.
After the table has been sorted, read-in of program tape is begun. Items
are read in from the program tape seven blocks at a time. Line numbers are
processed between the read-in of successive blockettes.
When seven blocks have been brought in from program tape, the read is
stopped.

Next all change and insert items referring to the program items are

transferred from the drum to the correction buiier.

The iine-number position

of all sentences to be deleted is filled with zero.
Next the routine starts to write the corrected program onto tape 5.
insertions and changes are made as the tape is written.

All

Program items with

line numbers of zero are not written out on corrected tape.
When the last complete block which can be produced from the group of items
in core has been written, the tape is stopped and any remaining blockettes are
stored to be written on the next pass.
items from program tape.

The routine then goes back to read more

When no more program or correction sentences remain to be written, the
routine fills in the final block with END OF TAPE sentences and stops the
tape. Next all tapes are rewound and the routine exits to ZAIO.
Copy Tape
Program tape is read in 248 blocks at a time and written on tape 5
until all of tape has been copied.
to ZAIO.

Then tapes are rewound and routine exits

Print-Outs
If merge is selected, routine prints:
MERGE
CORRECTION TAPE
Following the correction tape print-out t all errors detected on correction
tape are listed. Next the routine prints:
PROGRAM TAPE

218

and all errors occurring on program tape are listed.
When either the merge or the copy tape is completed, the routine prints
PROGRAM NOW ON TAPE 5
If only 5 servos are available, the routine prints
PUT 1500 FT. TAPES ON S. 3 AND 4
and stops so tapes can be changed.
When the computer is restarted, the routine exits to ZAIO.
Error Print-Outs
If an out-of-sequence item appears on the program tape, the line-number
position of the sentence is filled with a zero so that the sentence will be
dropped and the routine prints
SENTENCE

t

t

OUT OF SEQUENCE

Label blocks of both the correction tape and the program tape are checked
to determine whether correct tape is being read.

If label is incorrect,

routine prints:
WRONG TAPE SERVO 3 (or 4) SHOULD BE UNICODE PROGRAM
(or UNICODE CORRECTION)
After the Error print-out, the routine rewinds the tape and stops set to
re-enter after tape has been changed.
If a parity error occurs, and the parity reread routine fails to correct
the error, the routine prints:
PARITY REREAD FAILS.
A NCYr = 0 AND START.

TO REREAD START.

TO IGNORE SET

and stops set to re-enter.
If parity error is ignored, routine prints:
PARITY ERROR IGNORED
repositions tape and goes on with next block.
If more than 300 corrections appear on correction tape, the routine
prints:
TOO MANY CORRECTIONS, 300 IS MAXIMUM
After print-out, routine ignores any remaining corrections and goes on to
write corrected tape.
219

Merge Routine
TCUl or TCU2
TCUl

Set tape
codes for
TCUl

~-.---::iOI

Set bypass
mode

Merge

copy
tape

I Print:
MERGE
'-r----'

Print
CORRECTION
TAPE

Set label check
error print to servo
4 and unicode
correction

Set initial addresses
for Line number
Processor error
Storage

Read 1st
block from
tape 4

Rewind tape
and stop

Wrong
Label

Merge Routine (Cont.)

Start read on Servo 4
Set initial table
address (3073). Set
initial buffer
address (4225).

Set counter for 15
blocks. Set initial
drum address (400001
Set blockette
counter to 5,

Read block

Check

to buffer

parity

Parity
good

Test: does end of
of tape line appear
in thi s block?

Yes
Stop
tape

Merge Routine (Cont.)

Process
b10ckette

Read 1st word of b10ckette to current buffer

Set end of tape

tape?

switch to

)

storage address and to
A

No

0
Read rest of blockette to current
buffer storage

JE-----\

Test blockette counter
fini shed with block?
No
4

Set next buffer
storage address

Merge Routine (Cont.)
End of
tape switch

Is buffer
full?

Yes

~--~

Stop Tape

1---_==-58

No

Transfer contents
of buffer to
drum
Set initial buffer
address into 'process
blockette' routine

Set blockette
index to 5

Start
Head

Reset buffer address to
initial address. Set blockette and block counters.
Set for next drum transfer.
Set for next group of delete
items

Process 'delete
command' item numbers

Set process
blockette
switch to

CD

Merge Routine (Cont.)

Stop
Tape

Set for next
line no.

line no.
to A

Rewind
tape

ransfer
corrections
to drum

Process
blockette

If first table item was
a delete, adjust no. of
in sequence items
counter

Process delete
"
command item numbers

Merge Routine (Cont.)

Set no. of in sequence
items into instruction
which moves data from
Set total no. of
items~
1----:,;..,. O.H.~----:...I buffer tot a b1e
Set no. of in
sequence items
Set exit from sort to

@

t---~

Set addresses
into compare s
A, B, C, D, E, F,
G, H

Set initial switch settings
Is total no. of
items > new no. of
in seq. items
Yes

J.oE-----i

Form new no. of
in seq. items

A~13A

F~21A

K~24A

B~14A

G~22A

L~18A

C~15A

H~16A

M~15A

D --;.19A

I

E~20A

J~23A

~

17A

Merge Routine (Cont.)

~

Set total number of
items into no. compares
index

...,

Fill out table with
largest number

IIi'

-"'"
~

Set exit from
sort to @

Set new number of in
seq' items into no.
...
compares index

~

..,..-

,
12 ..

,-

-

Set initial buffer
address into instruction
which moves data from
buffer to table

\1/

Merge Routine (Cont.)

Com are A
Is item of in
sequence string >
out of sequence item

Store address of
in sequence item
in com are I

Is A of in
sequence i terns
exhausted?
No

Set address of
largest no. in
place of address
in seq. item in
(compare A)

Yes

L -_ _ _ _ _ _

~

Store address of out of
sequence item.
Set address of largest
no. in place of address
of out of seq. item in
(compare A)

l3A
Set Switch A exit
to

@

Compare I

Compare B
Compare two items.
Put address of smalkr
item into compare I.
Put address of largest no. in place of
smaller item.

Merge Routine (Cont.)

Compare 2 items - put
add of smaller item
into compare M.
Put add. of compare
from which item came
into tern 1
Set switch
B exit to

l4A

Compare C
Compare two i terns. Put
address of smaller
item into compare J.
Put address of largest
no. in place of
smaller item above

l5A

Set switch C
exit to

@

Set Switch I
exit to

@

compare M
Compare 2 items - pu
add. of smaller into
~~compare P.
18
Put add. of compare
from which it came
(temp 1 or 2) into
temp 5

Set Switch M
to ~~
Compare 0
Compare two i terns. Put
address of smaller
i tern into compare J.
Put address of largest no. in place of
smaller item address
above

Compare J
Compare 2 items. Put
add. of smaller item
into compare M.
Put address of compare. from which item
came, into temp 2
19A

Set Swi tch 0
exit to

@

Set switch J
exit to

@

Compare K
Compare two items.
Put address of smaller
into compare N. Put
address of compare
from which item came
into temp 3

Compare E
Compare two items.Put
address of smaller
item into compare K.
Put address of largest no. in place of
smaller item address

Compare G
Compare two items.
Put address of smaller
item into compare L.
Put address of largest no. in place of
smaller item address

exit to

\----~

22A

G J----~

Set Switch F
to

@

@

Compare N
Compare two items.
Put add. of smaller
into compare P. Put
add. of compare from
which it came (temp
3 or 4) into temp 6

Set Swi tch G
to

@

l6~A~____~>L_s_e_t
__S_w~i~t_c_h______~~
_ H to @
I -'C/

1_ _ _ _

to

@

Compare L
Compare two items.
Put address of smalle
into compare N.
Put address of compare from which item
came into tern 4

Compare H
Compare two items.
Put address of smaller
item into compare L
Put address of largest no. in place of
smaller item address

Set Switch K

Set Switch E

20A

Compare F
Compare two items
Put address of smaller
item into compare K.
Put address of largest no. in place of
smaller item address

Merge Routine (Cont.)

Set Switch L
to

~

Merge Routine (Cont.)

Compare P
Compare two items.
Put address of smaller
into transfer command
Put address of compa~
from which it came
into exit (temp 5 or 6)

Transfer item from
table to buffer. Set
next buffer address

est: finishe
wi th . thi s group of
Items (no.
ares index)

No
Exit to address
set by compare
P

Yes Transfer sorted
string back to
table
Last

"-

PasS'~

®

Merge Routine (Cont.)

Set parity reread
~_

~.

end of tape test
~ exits to @ and

Set Read commands
for servo 3

t--~,..

Set up tout of se-

Reset label check

quence' counter and

error print for
PR OGRAM TAPE

~

initial address

@

&28

Copy
tape

__

~

I

I

merge

I

__ J

eXIt
\

Print PROGRAM
Set write fill
counter & write fill
temp
Find address of 1st
28 JoE~;"---1

non zero table item
and set into commands
which reference table

Merge Routine (Cont.)
Set up printout
for sentence
OUT OF SEQUENCE

Read one block
from tape 3

Rewind
tape

No ~:t: was
1E------------------4e!l correct

merge
exit 29

/

Yes
Write header
block on tape 5

/
/

Set initial buffer
Start
Read

address into commands which reference buffer

Set end of tape
test counter and
buffer counter.
Set total no. of
blockettes into
tern 1 and 3

copy
tflpe
exit

/

@5

Set address of
1st non zero
table item into
commands which
reference table

Yes

47

Read
Block

Set blockette
counter

Merge Routine (Cont.)
Item no. from
Set test A
buffer to A
counter to 1

Read blockette to next

Test A

buffer location
No

~------------------------~

Is it end
of tape?
Yes

31 tE-~---1 Set end of tape

switch to

@

Store address of end
of tape line.
Store
blockette counter. Set
to bypass end of tape
test on rest of blockettes o

No
Set next
buffer address

Test blockette
Has whole
been read?

Yes
Is it all
Spaces?
No
32

Check

End of tape
switch

Test A
Current item
no. to A

Set test A
counter to 5

Stop
tape

Test buffer counter.
~--'Is buffer full ?
Yes

No
30

Merge Routine (Cont.)

Line no. proeessor output to
buffer & A

Was line no.
output illega 11
Yes

Store in tout of sesequence \ list.
Set output line of line
no. processor to all
spaces.
Set for
next out of se • item

s It ~
previous line
number?

Was it all
spaces?
Yes

Yes

Set Line no. processor output line
to all spaces

Store in previous line :num-ber position

JE---,I

,/

/

Set.for next]
1 tem

-----------

C-YEXit when used as: subroutine
__. . . . . ._ _-.Yes Store last legal
line no. in line
no. processor out~
put line (lN3)

Test 2

Test 1
Is

Line no. of curtable item
to A

Is lN3

A?

=A?
1st time

35~--...--.
/

./

/'

/'

@)

/'

/'

@J

/'

Fill next correction
buffer location with
lar est number

Merge Routine (Cont.)

Is
Equal Switch A

Yes

equal

Set line no. from table
into correction buffer
not equal Use 2nd word of table
item to set up transfer
and transfer rest of item
from drum to correction
buffer

€fSet test 1
test 2
36~---I

N
W

c.n

Set for next
correction buffer
location,
Set
new address into
equal test

Set for next
table item

Are there more
corrections?
Yes

Set transfer exit to

Set to bypass
read in of
corrections

Merge Routine (Cont.)

Extract next item
from buffer~A

~""--~no

No

Is 1st delete
item no. > A?
Yes

Is last delete
item no. > A?

Fill buffer item
no. position with
zero.

No

Finished with
Set for next
all buffer items?K-----------~
buffer item
I Set

for next

buffer item

Next buffer
item no. to
A

Set table so delete
command will be continued on next group of
items

No

Fini shed witli
13111 buffer
items?

Merge Routine (Cont.)

Test next
correction item:
should it be
deleted?

correction
exhausted?

Set for next
correction item

No

L---~39A

Reset table

No

references

Set equal switch

@

A to
Set equa 1 swi tch

B to

§

Set equal switch
B

to

@

Set equal switch
4lH.l--~

A to not equal

condition

Merge Routine (Cont.)
Reset 'fill counter'
from tfill tempt

Start Write
Servo 5

Program item no.
to A

]

r - - - - - - Is it = O?
Is it to be
deleted?

No
Set current program item address
into TM.
Set for
next program item

No

Finished with
all program item?

Set up
and write

Set for next
program item

item =

No

L--_~42C

La st

Set current correction item address into TM.
Set for next
table item

Set up
& wri te

item store
Put address of
current correctio
item into TMI

normal
1r----~44

.....

.....

......

f no'more
L-----------'P. rogram . . . ~
ltems
V

Merge Routine (Cont.)
Set for next
program item

I\..:)

c..v

-..0

Set up and
write

Test: is it
all spaces?

Store "fill counter" in
Store
'fi 11 temp·
address of next write
conunand to be filled

Set for next
program item

Write

Has all of last
block been
No

Transfer unwritten
blockettesto Temp Buff
& reset references to
blockettes

Stop
Tape

Yes

Merge Routine (Cont.)
Compute no. of
blockettes in program buffer and
set counter

Stop Tape

Put largest number
into LN3 and into
line no. position
of End of Tape line
Set exit of last
item store to

Reset all Z·s into
line no. position
of end of tape
line

Write remaInIng
blockett and fill
out block with end
of tape lines

Stop Tape

Are there any
out of sequence
items remaining?

Rewind tapes
3 and 5
Print: PUT 1500

5 servos

FT TAPES ON S.
3 AND 4
7 servos

5 or 7 servo
layout MJl off

Print: PROGRAM
NOW ON TAPE 5

~

Put sentence no.
into print codes
print: SENTENCEOUT OF' SEQUENCE

Merge Routine (Cont.)
Set switch to Band
and write blockette I
Test fill counter.
Has full block been
filled?

Set switch to C and
write blockette 2

Set switch to D and

""

~

......

write blockette 3

Set switch to E and
write blockette 4

Store address in TM in
current write conunand
Set next storage address

Set switch to F and
write blockette 5
Yes

Write blockette 6

Reset block counter
Set switch to A
Set storage address
to blockette I

Merge Routine (Cont.)

Process
Blockette

Find first word in
blockette that is

Is
number all
spaces?

No

not all spaces

No

~---,

Increase no. of
words count for
previous two

No

Is it a delete
sentence which needs
to be ali!}ned?
Yes

Store line number
in table

Store drum address
and no. of words

Store address of
first "out of sequence" line number. Set exit so
subsequent ones
will be ignored.
Yes

~-"""7I

Test: Is line
number out of
sequence?

No

Set for next
blockette

Align delete sentence
and store in temp

Merge Routine (Cont.)
Set to ignore
rest of
corrections

Set end of tape
switch to

Stop
tape

0

Print: TOO MANY
CORRECTIONS 300
IS MAXIMUM

Put delete
command into
temp

Test:
Fill output lines
wi th spaces

No

Find length of line
number; mask out and
store in both
table locations

Yes

Check alignment of
THRU to determine
length of 1st line
no. Mask out line no
and store in table

Shift 2nd line no.
into position, mask
out and store in
table

Set table address of
item into tdelete
list' so line nos.
can be processed
later

Merge

Routine (Cont.)

Process delete
item numbers
Print line no.
errors for
ordinary sentence

T---~H'processor

Get corresponding
line numbers
from table

Process line
numbers

Finished with
No
'-------------f all delete items?

Restore line
nos. to table

r -...........~

Extract
i tern from
delete list

Yes
Pr i nt line nll:""\)--___~~~Xi t /
processor err l

J

V

Merge Routine (Cont.)

Set A not zero to
indicate
label is good
Find 1st word of
blockette that is
not all spaces

Align label so that
1st char. is in
leftmost bit
position

Test:
label

Print
WRONG TAPE SERVO __
SHOULD BE _____ -

Set A to zero to
indicate
error

Par i ty Rereads

Merge Routine (Cont.)

Set addresses
into reread clear
end of tape
switch

Start
read
Yes

Set parity A
exit to

@

Set parity B
exit to ~

Set parity A
exit to

§

Set label block
addresses into
reread

®

Clear end of
tape indicator

Restore
exit to

Parity B
Exit

Parity A
exit

Normal

Ki:\

~'---~)~

----~

-

--~

Set reread switch
to
Set blockette
counter

8

Start Read
backward

~~~

Read blockette into
descending storage
locations

Z's?

Set reread switch

@

to
Set low bias

Set blockette

Yes

counter

Finished
with block?

Start read

Set for next
blockette

forward
Set reread switch

Read blockette into

to
Set high bias

ascending storage

S

locations
Set for next
blockette

54HJ--,..--~

Print: PARITY
REREADS FAIL. TO
REREAD START. TO
IGNORE ERROR SET
A NOT 0 AND START

Clear
A

Merge Routine (Cont.)

Was A set
not zero?
No

Yes

Print:

PARITY

ERROR IGNORED

~-~55A

Merge Routine (Cont.)
Check

Move forward
1 block

Parity

toe

Set reread switch
set normal bias

NG

L-_~

54

Check
Parity

OK

NG

Set end of tape
indicator

Set end of tape
indicator

~-~54F

Reset addresses
for read backward~-~54E

Merge Routine (Cont.)
Set to ignore sub59}---~

sequent lines of Z's

Store address of all Z
~--~

word.

Store blockette

counter.

Set end of

tape switch to

60J---~

Store address of all
Z word. Adjust bkt.
counter and store.

Set exit from parity
r---~

routine to ~

47

Set parity routine

t----~

exi t to

@

J---~54F

Set end of tape switch
to (47)

@ __~>< Reread

Reread

I----~)~

Is buffer

No

full?

Start
read

Yes
~--7(3IC

t---~3IB

~

54G

Merge Routine (Cont.)
Copy
Set end of tape
Tape
65 ....-_ _~ exits for parity
reread to
and (TI)

@

Start read
Servo 3

Set buff er c oun tHr
Set initial read
addresses

Set blockette

I

counter

No

Read

I

blocket~
Set end of tape

I\j

CJl

o

Ok

for Read

Yes

Check line number
position: Is it end
of tape line?
1\10

End of tape
switch for read
Is buffer
full?

Start write
Servo 5

L . -_ _ _ •_ _ _ _

~ Set

for Next

blockette

I

Set buffer
index

Yes
Stop
tape

~--~~6D~------~

Set initial
write addresses

Set

blOC~

counte~ '-.Y

Merge Routine (Cont.)
Write
blockette

Set for next
blockette

Finished
with block?

Is buffer

No

67

Compute new
buffer index for
write

68

Start Write
on Servo 5

End of tape
switch for write

Set end of tape
switch for write

Will)

to

tV

c..n

Stop

empty?

No

Stop
tape

Yes

.......

Set addresses
into reread

End of tape
switch for
parity

Not End of
Tape

End of Tape
Set parity end
of tape switch
to ~

Set parity end
of tape switch
to

@

68A

Is buffer
full?

No

Start
read

TAPE MERGE REGIONS
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE

RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE

GQ761
PZ3071
ZA77000
UC2507
RQ35
RR52
RS110
LP140
CN147
CX232
XY273
JL375
XX433
VF525
MG543
MN604
NW711
MP770
KW1003
BJ1042
UN1077
NRl164
ET1213
SV1310
1£1374
SR1453
XZ1553
WT1655

252

NZ1736
ZR1766
WX2005
FT2045
PB2105
DL2205
RB2246
LN2340
002353
MR2375
RC2471
WS2534
PA2540
CD2575
UP2653
UQ2675
US2705
UW2745
FC2771
DT40002
BR7635
TM5
BU4225
CB6125
GZ3073
GR5735
1B3073

TAPE MERGE ROUTINE

o
1

2
3

4
5
6

7
10
11

12
13
14

o
1

2
3
4
5

o
1

2
3
4

5
6
7

10
11

12
13
14
15
16
17

IA
RJ
EF
MJ

RQ
PZ2

o

30000

PZ
VF14
SV

MJ 0 RQ2 on 1103A tape
Set bypass
If MJ3 is set go to SV from MERGE. If
MJ3 not set take next instruction and copy
tape
Set up tape commands and parity reread
Read label, check and write
Set end of tape exit for parity reread

RJ
RJ
RJ
TV
MJ

ET42
MG14
XYll
RQ13

SR60
MG
RQIO
RS14
XY12

RJ
TV
MJ
0

XY35
RQ13

RR
RS14
XY36
RS2
24

Set end of tape exit for parity reread
Set new exit for parity reread
Go back to finish reread

RQl
VF14
}
30000
PZ4

Test: Is TCU2 to be used?

o

0

o
o
o

CA

RQ15

IA
MJ
TP
RP
CC
03
00
CA

PZ
20000
PZ5
20014
VF

IA
EF
TP
TU

TV
TP
RP
ER
TP
EJ
RA
RA

o

o

10000
PZ6

4000

If so go to RQl

If not, reset tape commands for TCDI

RR

o

RQ14
RR35
RR35
CN4
10024
10000
30000

VF
TM2
RR7
RR6
TM4
RR7
30000
A

RS
CN5
CN12
RR5

IJ

CX6
RR6
RR7
TM4

ER
ZJ
RJ
IJ

o

A

RSll
RR16
TM2

RR16
RR17
RR4

Start read
Set buffer index

}

}

}
}

Set initial read addresses
Set blockette index
Read blockette
Test: Is it end of tape blockette?
go to RS
Set for next blockette
Test: Finished with block?
back to RR5

}

If so

If not go

Check parity
Is buffer full?

253

If not go back to RR4

20
21
22
23
24
",~;)

EF
EF
TP
TV
TP

o
o
RQ14
RR35
CN4

VF10
VF12
TM2
RR26
TM4

RP

lUU~q

, ",,1"\ ..

",nn....,
nn~1

26
27

EW
RA

10000
RR26

30000 J
CN5

30
31
32
33
34
35

IJ
IJ

TM4
TM2

EF
RJ
MJ

RR33

RR25
RR24
VFI0
RR34
RR
GZ

o

o

o

GZ

vii

,..."

nn.:>o

RS
RR16

12
13
14

IA
RJ
EF
TP
ST
EF
RJ
EF
EF
MJ
TV
TU
RJ
RJ

15
16
17
20
21
22
23

TP
ZJ
EF
MJ
TP
RJ
MJ

24
25
26

TP
RJ
MS

o

RS27

27

MJ
CA

o

ZAI0

RS30

o
1

2
3
4

5
6
7

10
11

,

~

If so, stop tape
Start write on Servo 5
Set buffer index
Set initial write address
Set blockette index
Write blockette
Set for next blockette
Finished with block?
Is buffer empty?
If so stop tape
Go back to read more items

nnoJ'

o

RQ14
TM2

o

RR33

o
o

o

RR6
RR7

RR11
VF10
A

TM2
VF12
RR23
VF11
VF2
RS21
XY5
XYIO

XY20

JL26

RS14

RS15

TM2
RS17

o
o

A

RR21
VF
RR16
UP3

CX31
UP2
10000

RS27

XX71

UP3

UP2

UP

UP

}

Stop tape
Set buffer index for write
Start write
S

}

}
}
}

}

Rewind tape 5
Rewind tape 3
Go to RS21
Set addresses into parity reread
Reread
Switch set by parity routine if end of tape
occurred in block
Are more blocks to be read? If not, go to
RR2l to write
If so, start read and go to RR16
Print: PROGRAM NOW ON TAPE 5
If MJl is set, go to exit. If not, take
next instruction
Print: PUT 1500 FT. TAPES ON SERVO 3 AND 4
Stop, set to re-enter after tapes are
changed
Exit

254

o
I

2
3

4
5
6
7

10
II

12
13
14
IS
16
17
20
21
22

23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
5;3

54
55

56
57
60
61
62
63

IA
TP
RJ
TP
RJ
EF
MJ
TV
MJ
TV
MJ
TV
MJ
TV
TP
TV
RA
RA
TP
MJ
TP
RS
LT
TU
TV
IJ
M.J

TV
TP
RJ
RA
RA
MJ
TP
RP
TP
TV
TV
RJ
MJ
00
00
00

SV
CX40
UP2
CX33
UP2

UP3
UP
UP3
UP
o
VF14
o
SV40
TM
SV47
o
SV15
SV50
TM
I--~>
o
SV15
SV51
TM
o
SV15
SV52
TM
LN4
(30000)
TM
(30000)
SV15
CNI
SV16
CNI
CN52
LN3
o
LN2
SV15
TM
TM
SV55
43
TM
SV54
SV32
SV53
SV33
TM
SV32
o
SV43
(30000) SV34
(30000) m4
LN2
(30000)
SV32
CN14
SV33
CN14
o
SV30
CX36
XXIO
30003 SV43
CX20
XXl3
SV55
SV15
SV54
SV16
SV45
SV46

o

o
o
o

00

o

00
00
TP
TP
RJ
MJ
TP
RJ
MJ
CA

BR
BRI
LN4
CX35
UP2

o

XX24
UP2

o

}
}

Print:

MERGE

Print correction tape
Set bypass if 1105 MJ 0 SV5 on 1103A copy
Out to rest of setup

Set address of error entry

}

Store illegal line number
Store entry for error print
Set for next entry
Set LN3 to zero
Exit

}

Store no. of illegal line no's. in index

}

Set up initial addresses
Finished with all error prints
If so --;. SV 43
Set entry to LNP no. 3
Send line number to LNP no. 3
Go to LNP for error print

}

Set for next print
Go back for remaining items

}

Set print for label check

}

Set initial error entries

}

Line number error print entry addresses

WX

PAll
PA16
PA23
PA30
0
BRI
BR
}
UP3
UP
(30000)
UP3
}
UP
ET7

Print:

SENTENCE - - - (DELETE)

Print: TOO MANY CORRECTIONS
MAXIMUM

SV64
255

300 IS

0
1
2

IA
EF
RP
ER

WX
0
10170
10000

rt
.J

r:.n

I":'n

v

i'\

4

ZJ
TP
TP
RJ

JL.12
CX25
CX30

WX5
lLC3
1£4

LC2

LC

10
11
12
13

ZJ
EF

WX13

MS

0
0

WXll
VF2
SV2
VF

,

'1"lT

5
6
7

A

J.':t

15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

0
1
2
3

4
S
6
7
10
11
12

EF

A

0

VF3
WX3
BU
A

nn~rt

J.V

I\U..J..J

nn""

TV

CN22
CN23
CN7

PB4
PB5
TM5

CN46
CN46
CN20
CN20
CN25
CN4
CN24
10170
10000
0
JL21
WX35
MP5
MN25
CX6
0
WX40

PB6
PB7
FT20
CN17
FT5
TM4
FT2
WX31
BU
A
WX33
MP2

TV

TP
TU
TU
TV
TU
TV
TP
TV
RP
ER
ER
ZJ
TV

RJ
TV
EJ
MJ
CA

IA
RJ
ER
TP
EJ
RP
ER
RA
RA
IJ
ER
ZJ

FT
PB35
10000
A

CX6
10023
10000
FT2
ITS
TM4
0
JL

}

Read label

}

Check parity

}

Check label

}

Was label in error?
If so, rewind tape & stop set to re-enter
If not start read

ro,

}
}

Check parity
Check: end of tape
If so ~ ETI
If not, to FT23

MP

MP5
ET1
FT23

PB
A
30000
ET
FT6
30000
CN5
CNS
FT
A
FT13

Set initial buffer storage address
Set block index
Set initial drum address
Read 1 block

}
}
}

Process blockette
Read 1st word
Store 1st word
End of Tape? If so ~ ET
Read rest of blockette
Increment addresses
Finished with block?
Check parity

256

End of tape switch
Last block of group switch
Test: Is buffer full? If not go to FT24
If so, stop tape
Transfer corrections to drum
Out to print errors and process delete
item no's.
Set last block of group switch to exit to
FT23 and go to FT26
Reset first buffer address
Set block index
Go back to IT
Start read

13
14
15
16
17
20
21

RJ
RJ
IJ
EF
RP
TP
RJ

FT13
FT14
TM5
0
33220
BU
ET20

FT14
FT15
FT24
VF10
FT21
30000
ETII

22

RJ

FT14

FT26

23
24
25
26
27
30
31
32
3:3
34
35
36
37

TU
TP
MJ
EF
TV
SP
SA
TV
TP
TP
RA
TV
MJ
CA

FT20
CN4
0
0
WX2
FT2
CN
A
CNIO
CN4
FT20
CN41
0
FT40

PB
TM4

PB
BU
CX7

PB22

A

LN4

5
6
7

IA
TP
EJ
TP
RJ
TP
TP
TP
TJ

LN2
LN3
CN17
30000
30000

LNI
30000
30000

10
11
12
13
14

TU
RA
RA
RA
IJ

PB6
PB6
PB4
PB5
CX26

PB7
CN14
CNI
CNI
PB33

}

Set for next table entry

15
16
17

TV
RA
RJ

PB35
FT
FT13

FT
CN
PB35

}

Have 300 corrections been processed?
If not, go to PB33
If so, set to ignore remaining corrections
Back to read, remainder of block

20
21
22
23
24
25

EF
MJ
TP
AT
TP
EJ

o
o

VFlO
SV61

PB
CN13
PBl
RB62

PB24

o
1

2
3
4

}

FT

VF
FT2
0
0
FT5
TM5
TM4
CNII
RB50

}

Reset initial buffer address
Set buffer index
Set block index
Set for next drum transfer

IT

Sentence number to A
Is it all spaces? If so, go to PB22

A

A

PB74

A
A

DL

}
}

Process line number
Store line no. in table
Store directory word in table
Test: Is item out of sequence?
go to PB74

If so,

Stop tape
Go to SV61 to indicate error

}
}

Set up test
Test: Is the first word of sentence
'DELETEt? If so, go to DL

257

26
27

MJ
SP

0
PB5

PB36
17

30

SS

CN14

0

31

III

A

PB32

32
33
34
35
36
37

RA
RA
RA

30000
PB
CN17
0
PB24
CX7
PB40

CN5
CN12
CN12
30000
PB41
A

40
41
42
43
44
45
46
47
50
51
52
53
54
55
56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76
77

MJ

TO
TP
CA

IA
RP
TJ
TP
ST
LA
AT

PB40
20020
30000
RB63
Q

TU

A

TP
EJ
RP
EJ
TP
ST

30000
RB62
20005
RB55
RB64

A

PB24

}

A

}

TM
17
PB24
PB47
A

DL
PB27
PB53
A

TM

LA

SA

TM

1
1

TV

A

PB65

TU

PB47
CN37
Dl2

PB64
TM
PB66
PB70
44
30000
30000
CN
PB65
CN13
PB64
RB67
PB7
CN30

TV
MJ

o

SP
SA
TP
RA

30000
30000

TU

RA
IJ

A

PB66
PB64
PB64
TM

MJ

o

TV
TV

PB77
PB4

TV

PB77

MJ

o

CA

PBloo

1
J

PB27
PB42

Q
A

TP

If not, go

~o

PB36

Continuation of last sentence. Increase
word count in directory word
Set for next blockette
Set for next table entry
Exit

Find 1st word that is not all spaces
Set address of 1st word that is not all
spaces into PB24 and PB47

}
}

If word is not delete, test alignment of word

}

Set number of shifts needed to put 1st
significant character at 1st character
position

If word is delete, go to DL

Align sentence and store

Go to RB67
Set to bypass out of sequence test
Set address of 1st out of sequence item
into CN30

RB53
PBIO

258

o
1
2
3
4
S
6
7
10
11
12
13
14
IS
16
17
20
21
22
23
24
2S
26
27
30
31
32
33
34
3S
36
37
40

0
1
2
3
4
S
6
7
10
11
12

IA
TU
RP
TP
TV
RP
TP
TP
QT

DL
PB24
30006
30000
PB4
10002
CX7
CNlS
TMIO

EJ
SP
SA
TP

RBS4
TMII
TMIO
A
DLS

TV

TV
TV
RJ
LQ
MJ
TP
MJ
TP
MJ
TP
QS

DLS

PBS
RB44
CNlS
0

DL40
0

DL36
0

DL37
TM12

M.T

o

TV

PB4
PB4
PB4
CNlS

TV
TV
LQ
MJ
77
77
77
CA

o

77770
77777
77000
DUI

DL2
DL3
}
TM6
DLS
}
DL6
30000

~

DL31

44
30
TM12

}

Dl27

}

RB47
RB52
RB40
Q22
DL27
Q
DL27
Q
DL27
Q
30000
RB65
RB5
RB15
RB36
Q22
RB

Test:

Is more than one sentence to be
deleted?
Position sentence number

Set up storage address for line number

Set mask into Q
Set line number into table and into A
Go to RB65
}

Set storage address
Set mask into Q
Go to RB

70000

o

MJ

Q
30000
D15
DU4

TP
ST
TJ

RB64
Q
CN3

A
TM
RB25

TV

Fill output lines in table with spaces

Find length of number

o

RB
TM12
A
2OO0S
CX
CN6
TMIO
PBS
0

IA
QT
TP
RP
EJ
TP
QS

}

Put aligned delete command into TM6-TM13

A
A

RB4
RBIO

}
}
}

Mask out character
Check alignment of THRU to determine
length of 1st number
Character was not T,H,R,U or space. Put
last character of TMIO into table
Set new output storage

Was first character of TM12 a T?

259

13
14
15
16
17

SP
SA
TP
LA
SA

TMII
TMI0
A
TM
TM

44
36
30000
Al

20
21
22
23
24
25
26
27

TV

A

SP
SA
TP
MJ
LA
SA

TM13
TM12

RB22
44
}
30000
TM12
RB6

TV

A

TP
ST
SP
TP
SP
SA

CN3
TM
CN50

TMll
TMIO

QS

A

MJ
CA

0
RB40

IA
TP

RB40
CN2
TM12

30
31
32
33
34
35
36
37

40
41
42
43
4-1
45
46
47

LQ
LQ

A

0
A
TM

A

1

}

1
J

iB32 }

~M

}

If so, align TMIO and TMll
Store 1st line number in table
Set no. of shifts to align second line no.
Align second line no. and put into TM12
Go to RB6
Set no. of shifts to align first line no.

Adjust index in TM

goooo }

Put mask into Q

44
}
36
30000
RB16

Store 1st line no. in table

TM

Set space test index to 3

Go to RB16

Q6

Mask out character and check for space
If space is found, exit

CNI
RB42
30000

}

TP

CN6
CN
RB44
TM
TM12

~OOOO

}

50

TV

PB4

30000

}

51
52
53
54
55
56
57
60
61
62
63
64
65
66
67
70
71

RA
TP
MJ
00
01
01
01
01
01
27
00
00
TP

RB50
TM12

CN
30000
PB74
50000
63066
04630
73046
12730
10127
06630
20017
20005
TM12
RB50

If no space is found, set to check next
character
If no more characters are to np tested,
store all of TM12 in line no. position.
Set table address of delete item into
delete list
Set for next delete item
Store 2nd line number in table
Exit to PB74

QT
EJ

RA
IJ

Q

o

6
27304
01273
01012
01010
01010
30463

o
o
A

MJ

o

TP

TM6
RB62

EJ
MJ

CA

o

RB72

A
DL3
PB27

Constants

Store line number in TM12 and go to RB50

}

Test: Is first word of aligned sentence
'Delete'? If SOt go to DL3. If not, go to
PB27
260

IA
RJ

ET
FT13

o
PB
30000
CX6
PB35

6
7

EF
TV
TP
EJ
RJ
MJ
EF

o

o

PBl
ET2
VF2

10
11

RJ
RJ

FT17
SV45

FT17
SV23

12
13
14
15
16

TP
RS
SP
TV
IJ

RB50
TM3
CN41

TM3
CN4l
17

A

ET22

TM3

ET22

17

RJ

SV45

SV23

Finished with all delete command item
numbers? If not go to ET22
Print Line Number Processor errors

20
21
22
23
24
25
26

RJ
MJ
TP
TV

ET20

ET21
ET70

Exit when used as subroutine
Exit after end of tape has been found

o
1

2
3
4

5

LA

27

TV
TP
TP

30
31
32
33
34

RJ
TP
RA
RA
IJ

35
36
37

RA
MJ
TP

40
41
42
43
44
45
46
47

TP
TP
RP
TP
TP
R.J

TP
TP

o

FT4
VFIO
ET3
A
ET7

30000

A

A
A
A

ET31
17
ET27

CN
30000

TMI

LN2
LN3

~OOO

ET27
ET3l
TMl
ET22

Transfer last group of corrections to drum
Print Line Number Processor Errors for
ordinary sentences

}
}

Set to process delete command item numbers

Set address of item number to be processed

LN4

CN13
CN
ET27

CN52

CN13
ET16
TM17

CN52
CX37
30003
CX15
CX34
UP2
CN4
CN4

TM15
XXlO
ET44
XX13
UP3
UP
TMlO
TM5

o

}

Set end of tape switch to exit to ETI and
go to FT4
Stop tape
Set next line number address
End of tape? If so. go to ET7
If not, process line number
Go back for next item
Rewind tape 4

}
}

}

Process line number and store
Set to process next item no. of delete
command
Finished with both line numbers? If not go
to ET27
If so, set for next delete item and go back
to ET16
Set out of sequence item counter to zero

}

Reset tape label error print for servo 3
and program tape

}

Print:

}

Set up write fill counter and write fill
temp_

261

PROGRAM TAPE

50
51
52
53
54
55
56
57

TU
TP
TP
ZJ

60
61
62
63
64
65

AT
RS

RA

CN
CN43
ET52
ET52
ET52

TU

A

66

RP

onn.no
.)uuu.)

MG

67

TP

CN55

XX:21

70
71
72
73
74

TP
EJ

CN30
CN22
CN51
PB4

A

RA

IJ
SP
SS

TU
TU

TJ
TV

CN46
CN43
30000
ET56
ET52
TMl
ET52
CN46

MJ

o

CA

ET75

IA

o

RA

GQ
CN30

1

MJ

o

CA

GQ2

ET52
TMI
A

ET54
CN14
ET52

TM
TM
MN42
MN63
CN13
MN54

GQ
SR

CN30

Set up printout ior out oi sequence items
and go to MG

}

If 1st table item was a delete adjust number
of in sequence items

CNI

Set new number of in sequence items

sa

7

10101
23022
43026
00166
12277
03201
00165
10177

10
11
12
13
14
15
16
17

01
65
01
01
01
01
65
26

01010
33516
25300
01010
01010
01010
30506
30010

10101
74627
17777
10101
10101
10101
63050
10101

20
21
22
23

17
30
52
47

27304
43010
54513
01662

63066
10101
25424
45230

6

}

Go to SR

01010
30543
51545
34515
52300
54515
24523
54705

5

Set up address of 1st non zero table entry

SR

xx:

2
3
4

)

70

IA

1

Find address of first non zero table entry

o

01
47
26
66
24
71
66
30

o

}

UP parameters & XS3 codes for printouts

}

}
}

}
}

Correction Tape
Wrong Tape Servo ___ Should be __ _

Sentence -----(Delete)
Program Tape

262

24
25
26
27

00
66
50
54

XX25
51510
73012
30266

14724
65154
63451

30
31
32
33
34
35
36
37

50
01
72
52
01
27
65
54

65010
34650
34476
24543
54305
01312
22016
30543

60303
14724
74701
46673
43024
43446
65101
02427

40
41
42
43
44
45
46
47

01
22
32
30
65
50
03
65

65662
01665
50515
54545
30660
51660
01245
66245

45466
10134
43001
15401
12401
17601
02701
46622

50
51
52
53
54
55
56
57

52
01
01
30
00
01
52
47

24543
30545
34325
27227
XX50
01010
54513
01505

46673
45154
05154
77777
10101
25424
17101

60
61
62
63
64
65

51
30
01
52
03
01
01
01

50016
01102
01010
67660
03013
66245
51500
06012

62452
27777
10101
10410
16622
23065
16522
45027

70
71

01
00
CA

07227
XX62
XX72

77777
7

o

IA

TV
RS

SR
PB4
CN43
43
CN30
CN44
43
CN45
CN33

66

67

1

2
3

LT

4

TV
RS

5

LT

6
7

SP
AT

6

Too many corrections 300 is maximum

Parity reread fails: to reread start.
To ignore error set A not = 0 and start

Parity Error ignored

4

CN43
CN22
CN43
CN44
CN22
CN45
20
ZEI0

~~~~~~Program

~~~~~~put

}
}
}

now on tape 5 ..

1500 ft. tapes on s. 3 and 4

Set total number of items
Set number of in sequence items
Set up transfer command

263

10
11
12
13
14
15

16
17

TU
SP
AT
TU

TP
TP
TV
TV

CN46
CN45
XZ
A
XZl
CN37
XZ20
XZ15

XZ
20
A
XZl
TM
TMI
SR21
SR23

TM
A
TM
A
SR21
SR23
TMI
SR70

CN14
30000
CN14
30000
CN35
CN35

A
XZ31
XZ51
XZ71
XZ21
A
XZ41
XZ61
XZIOI
WTIO
A
WT32
WT21
WT43
NZIO
A

20
21
22
23
24
25
26
27

RA
TU
RA
TU
RA
RA

30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47

TP
AT
AT
AT
TV
TP
AT
AT
AT
TV
TP
AT
TV
TP

XZ4
CN61
CN61
CN61
SR71
XZ21
CNI
CNI
CNI
SR72
WTIO
CN61
SR73
SR74
SR75
CN45

50
51
52

ST
RA
TJ

CN
CN45
CN43

TM
CN47
SR64

53
54
55
56
57
60
61
62
63
64
65
66
67
70
71

TP

CN43
PB4
10036
CN50
ZRIO
SR77
SR76
20005

TMI
SR56
SR57
30000
SR66
XYll
XY35
ET37
VF15
TM!,
CN

IJ

TV

TV
TV

TV

RP
TP
RJ
TV
TV
RP
RS
TP
RS
TV
MJ
0
0

VF

CN45
TMI
CN54
0
0
0

SR20

XZ4

Set addresses into compares

)

Set initial exits of switches

}

Set switch J to WT44
Set switch L to WT46
Set switch M to NZ26
Set no. compares index.
Form new no. of in sequence items
Te st: Is tota 1 no. of items > than new no. of
in sequence items?

}

Fill remainder of table with largest number

}
}

Set parity reread exits for program tape
Reset tape read codes for servo 3

2'R5

XZ
WT
WT51

264

72
73
74
75
76
77

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

0
0
0
0
0
0
CA

0
0
0
0
0
0
SRI00

NZ
WT44
WT46
NZ26
XY65
XY73

1A
TP
TJ
TU
TU
MJ
TU
RA
1J
TU
MJ
TP
TJ
TU
TU
MJ

XZ
30000
30000
XZl
WT50
0
XZ
XZ
TI\1
WT50
0
30000
30000
XZ13
WT50
0
XZ12
WT50
0
30000
30000
XZ23
WT50
0
XZ22
WT50
0
30000
30000
XZ33
WT50
0
XZ32
XZ40

A
XZ5
WTl
XZl
WT
WTl
CN14
XZ4
XZ
XZ4
A
XZ17
WT2
XZ13
XZ21
WT2
XZ12
WT51
A
XZ27
WT12
XZ23
XZ31
WT12
XZ22
WTll
A
XZ37
WT13
XZ33
XZ41
WT13

XZ40
WT50
0
30000
30000
XZ43
WT50
0
XZ42

XZ32
WT53
A
XZ47
WT23
XZ43
XZ51
WT23

TU
TU

MJ
TP
TJ
TU
TU

MJ
TU

TU
MJ
TP
TJ
TU
TU
MJ
TU
CA
1A

40
41
42
43
44
45
46
47

TU

MJ
TP
TJ
TU
TU
MJ
TU

}

Compare A
Switch A

}

Compare B

Swi tch B

}

Compare C

Switch C

}

Compare 0

Switch 0

}

Compare E

265

50
51
52
53
54
55

56
57
60
61
62
63
64
65

TU
MJ
TP
TJ
TU
TU
MJ
TU

WT50
0
30000
30000
XZ53
WT50
0
XZ52

XZ42
WT22
A
XZ57
WT24
XZ53
XZ61
WT24

TU

WT50
0
30000
30000
XZ63
WT50

XZ52
WT55
A
XZ67
WT34
XZ63
XZ71
WT34

66

MJ
TP
TJ
TU
TU
MJ

67

TU

XZ62

70
71
72
73
74
75
76
77
100
101

TU
MJ
TP
TJ
TU
TU
MJ

WT50
0
30000
30000
XZ73
WT50
0
XZ72
WT50
0
XZ102

XZ62
WT33
A
XZ77
WT35
XZ73
XZ101
WT35
XZ72
WT57

WT
XZ4
30000
30000
WT2
XZ20
0
WTl
XZI0
0
XZ31
30000
30000
WT13
XZ40
0
WT12

XZ12
A
WT6
NZI
NZ22
WT10
NZ1
NZ22
NZ
XZ32
A
WT17
NZ2
NZ23
WT21
NZ2

0
1
2
3
4
5
6
7
10
II
12
13
14
15
16
17

TU

TU
MJ
CA
IA
RJ
TP
TJ
TU
TV

MJ
TU
TV
MJ
RJ
TP
TJ
TU
TV

MJ
TU

0

Switch E

}

Compare F

}

Switch F
Compare G

}

Switch G
Compare H

Switch H

Set switch A to exit to WT1 and go to XZ12

}

Compare I

}

Swi tch I
Set Swi tch C to exi t to WT12 and go to XZ32
Compare J

266

20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

TV

MJ
RJ
TP
TJ
1U
1V

MJ

ru
TV

MJ
RJ
TP
TJ
TIJ
1V

40
41
42
43
44
45
46
47

MJ

50
51
52
53
54
55
56
57
60

00

0
1
2
3
4
5
6
7

TIJ
1V

MJ
TV

MJ
1V

MJ

XZ30
0
XZ51
30000
30000
WT24
XZ60
0
WT23
XZ50
0
XZ71
30000
30000
WT35
XZIOO
0
WT34
XZ70
0
WTIO
0
WT32
0

CA

CN50
XZ4
0
XZ31
0
XZ51
0
XZ71
0
WT61

TV

MJ
TV
MJ
1V

MJ
1V

MJ

IA

I'll

RJ
TP
TJ

WTIO
30000
30000

TIl

Nl2
Nl23

TV
MJ

0

TIl
1V

Nll
Nl22

Nl23

WT44
XZ52

A
WT30

}

Swi tch J
Set Swi tch E to exit to WT23 and go to XZ52
Compare K

}

Switch K
Set Switch G to exi t to WT34 and go to XZ72
Compare L

}
}

Switch L
Set Swi tch J to exit to NZl and go to
compare K
Set Switch L to exit to Nlll and go to
compare M

}

Compare M

Nl12

NZ24
WT32
NZ12
Nl24

NZll
XZ72

A
WT41
Nl13
Nl25

WT43
Nl13
Nl25

WT46
WT21
WT23
WT43
NZl
0
XZ21
XZ22
XZ41
XZ42
XZ61
XZ62
XZI01
WT1

WT12

A
Nl6

ZR
ZR15
NZ10
ZR
ZR15

267

10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16

0
1
2
3
4
5
6
7

10
II

12
13
14
15

MJ
RJ
TP
TJ

0
WT32
30000
30000

W
'IV

Nl13
Nl25

MJ

0

W

Nl12

IV

Nl24

MJ
0
0
0
0

0
0
0
0
0
NZ21
0

TV

MJ
CA
IA
TP
TJ

MJ
00
00
CA
IA
EF
RP
ER
ER
ZJ
TP
TP
RJ
ZJ
EF
MS
EF
RP
EW

MG
0
10170
10000
0
JL24
CX24
CX30
LC2
MG13
0
0
0
10170
10000

IV

RP
TP
RA
IJ
RP
TP
TV
IV

WT34
A
NZ17
ZRl
ZRl6
ZR
ZRl
ZRl6
ZR
30000
30000
30000
30000

}

}

NlI0
Nl12

Compare N

{compare
Compare J
I

Storage for return a dd ress

Compare K
.... Compare L

Set Switch M to ZR and go to compare N

Nl30

ZR
30000
30000
ZRl
ZR16
30002
30000
ZR5
1Ml
30000
BU
ZR
ZR15
0
0
0
ZR17

1U

Switch M

Nl26

A
ZR12
ZR5
ZR7
ZR6
30000
CNI
30000
30000
1B

}

Compare P

}

Transfer table item to buffer

}

Set next buffer address
Test: finished with this group of items?
Transfer sorted string back to table
Yes:

ZR5
ZR7
ZR4
30000
30000

VF3
MG3
BU
A
MG5
LC3
LC4
LC
MGll
VF2
MG
VF13
MG16
BU

}

Read label block

}

Check pari ty

}

Check label
Was label correct?

}

If not, rewind tape and stop set to re-enter

}

If so, write label block on tape 5

268

16
17

EF
SP

0
MNI

20

W

A

21
22
23
24
25

SP

CN24

W
1V
1V

A

26
27
30
31
32
33
34
35
36
37
40

TP
TP
TP

TP

TU
1V
W
1V
1V
11]

TU

TP
CA

CN4
CN62
CN62
MN5
MN77
MN5
CN26
NW56
CN26
CN26
CX7
MG41

33

TP
EJ

MN
10170
10000
0
XY52
CN4
BU
CN
NR25
0
10024
10000
BU170
CX6
MN5
0
MN12
MN13
TM4
0
XY55
MN24
1M2
0
CN4
MN5
CN42
30000
CX7

34

TP

A

o
1

2
3
4

5
6
7

10
11

12
13
14
15
16
17
20
21
22

23
24
25
26
27
30
31
32

IA
RP
ER
ER
ZJ
TP

MNI
CN24
CN4

TP
TP
RJ
MJ
RP
ER
TP
EJ
RA
MJ
RA
RA
IJ
ER
ZJ
RJ
IJ
EF
TP
W
1V

Start read

VF

17
MN5
17
MN13
MN36
MN12
1M4

Set up initial buffer addresses

Set block index
Set buffer index

1M2

un

1M3
NW23
MN64
KW3
MN63
MN65
KW5
KW6

}

Set No. of blockettes into TMl and 1M3

}

Set initial correction buffer address
into KW5 and KW6
MN must equal MG41

}
}

Read block

LN3

MN2
BU
A

MP
1M4

Check Parity
Set block index

A

1M14
MN33
MNII
MN13
BU

}

Read blockette

~

}

Was line no. all Z's?

CN12
MN17
CN5
CN12
MN5

}

A

}

MN24
MN25
MN4

If so. go to NR

Set for next blockette
Finished with block?
If so. check parity
End of tape switch
Finished filling buffer?
I f so S to pta pe

VFIO

I

'IM14 }
MN32
NR25

Set to process line numbers of last block

~N36

Test: Is line number all spaces?
go to MN36

}

LN4

269

If so,

35
36
37

40
41
42
43
44
45
46

RJ
TP
TP
CA

LN2
LN3
LN3
MN40

IA
ZJ

MN40

TP

nU5
1B
LN3
LN3
MN63
CN50

TP

TJ
EJ
TV

TP

4;
50
51
52
53
54
55
56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76
77
100
101
102
103
104

TV

TV
RJ
EJ
TP
SJ

RJ

NR17

NR23
LN3
A

MN54
MN54
MN46
30000

}

Test: was line number illegal? If so, go
to NR23. If not, go to NR17
Put last legal line number into LN3
Correction item number to A
Test: does correction refer to this group
of program items?
If not, fill next correction buffer location with largest number
Go to NW46

MN52
MN67
MN44
30000

MN64
MN43
MN66
NW

}

Set new exit for drum transfer command
Set new exits for tests at MN43 and MN44
and go to MN66

'ffil

A

MN56
MN56

NW2l
MN57
MN65
lM14
17

}

Test:

TV

CN5l

W

A

TP
RP
TP
SP

1B
30000
30000
MN63

W

A

RA
AT
RA
1U
AT
IJ
MJ
00

MN63
CN
MN42
A
CN13
CN43
0
0
MNlOl

TV

A

NW46

SA

MJ
RJ
RJ
MJ
CA

Process line number
Put processed line number back in buffer

o

A
A

W

LNI
30000

0

NW44
MN56
0
MNl05

Is this a delete sentence?

Equal Switch for drum items
Set drum address into MN65

}

Set number of words into MN64

MN64
30000
MN50 }
30000
17
}
MN53

Item number to correction buffer
Remainder of item from drum to correction
buffer

nn4

Set next correction buffer location

MN65
CN14
MN63
MN54
MN42
LP
MN50
MN14
MN15
MN54
MN56
NW3

}
}

Set address of last item transferred

Set for next table entry
Have corrections been exhausted?
Out to block next correction phase

}

Set to ignore additional lines of Z'

210

S

NW
MN56
NW44

4

IA
RJ
RJ
MJ
RS
AT

5
6

ill
W

7
10
11
12

TP
TJ
RA
IJ

NWlO
CN43

NW14
CN14
NW7

13

MJ

o

LP

14

W
ill
ill

NWI0
NWlO
NWlO
MN54

o

MN42
MN63
MN54
CN13
MN42

W
ill

MN42
MN54

NW24
NW34

TP
TJ
MJ
RA

BU

A

30000

NW26
NW3l
CN12
NW23

o
1
2
3

15
16
17
20
21
22
23
24
25
26
27
30
31
32

RA
MJ

IJ

MJ
LQ

o

MN63
CN
MN54
MN42
1131
1B

o
NW23
1Ml

o

MNI02
NW44
MN72
1M14
MN65
NW7
NWI0
A

MN45
Q25
NW36
NW35

33

TV
W

NW23
Q
NW23

34
35
36

TP
TJ
TP

'ffil

A

30000
CN52

NW44
30000

37

RA

NW35

CN12

40
41
42

RA
RA

NW36
NW23
1Ml

CN5
CN12
NW34

43
44
45
46
47

MJ
RJ
MJ
RJ
MJ
CA

o

NW52
NW45
NW5
SV23
KW

IJ

NW44

o

SV45

o

Set equal switch for drum items

}
}
}

Reset transfer command
Set up test
Test: Is item to be deleted? If not, go
to NW14
If so, set to test next item
Test: Are there any more correction items
to be tested? If so, go to NW7
Out to set end of corrections

}
Reset table addresses
Go to MN42

}

}

}

Test: Is program item greater than 1st
delete address? If not, go to NW26
If so, go to NW3l
Set to test next item
Have all items been tested? If not, go
back to NW23
If so, go to MN45
Set address of item from above into NW35
Last address of delete item to A
Test: Is this program item to be deleted?
Yes, store zero in line number position so
that item will be dropped
Set for next program item
Test: Finished with current group of program i terns? If not, go back to test next item
If so, go to NW52
Print line number processor errors

NW50

271

52
53
54
55

o
1
2

IA
LQ

NW52
NW24

TV

Q

TP
MJ

CN52
0

CA

NW57

IA
TP
AT

KW

Q25
NW54
30000
MN45

}

CN

A
1M7

}

DUO

Set zero as 1st address of delete command

Set up write fill index

EF

0

VF12

3
4
5

TP
ZJ
TJ

30000
KW5
30000

A

KW34
KW23

Start write
Current program item no. to A
Is it to be deleted?
Is current correction item> than current

6

EJ

Is current correction item = to current prO]. item

W
RA
W

30000
KW5
KW5

KW14

7

A

RJ

BJ34

10
11

12
13
14
15
16
17
20
21
22

MJ

o

RA

KW3

TP
IJ
MJ

A
1M3

00

30000
CX7

EJ
MJ

o

o

23
24
25
26

1U
RA

KW3
KW3

TP
IJ

A
1M3

27
30
31
32

MJ

o

1M

CN12
KW6
BJ
KW3
CN12
KW20
KW20
UN32
30000
KW14
KW7

34
35

RA

KW3

IJ

1M3

36

MJ
CA

o

UNI

KW37

33

00

EJ
MJ

BJ34
30000
CX7

o

}
}

TM

CN12
KW3l
KW30
UN
BJ
30000
KW23
KW3
CN12
KW3

RJ

}

Set correction item address into TM·
Set for next correction item
Out to set up and write blockette
Back for next item
Set for next program item
Finished with all program items
If so, go to UN32 to write remainder of
block
Test: Is next program blockette a continuation of last sentence?
If not, go to KW7 to write correction item

Test: finished wi th all progl If.l i terns?
not, go to KW30
If so, go to UN
Set up and write next blockette

Finished with all program items?
go to KW3
If so, go to UNI

272

If

If not,

o
1
2

3
4
5
6

IA
IJ

BJ
1M7

RJ
RJ
RJ
RJ
RJ
RJ

BJI
BJI
BJI
BJI
BJI
BJI
CN53
BJI
10024
10000
10024
10000
10024
10000
10024
10000
10024
10000
10024
10000
BJ25

7

TV

10

RJ
RP
EW
RP
EW
RP
EW
RP
EW
RP
EW
RP
EW
RJ
LQ

11

12
13
14
15
16
17
20
21
22

23
24
25
26
27
30
31
32
33

34

TV

RA
IJ
TP
MJ
MJ
CA

o

IA
RJ

1

TV

2
3
4
5
6

TP
RJ
IJ
EF
RJ
MJ

7

10
11
12
13
14
15
16
17

TP
TP
TP

RJ
TP
LA

RA
TV

TId

Q
BJ27
1M5

BJ26

Has whole block been set up?
to BJ26

BJll
BJ13
BJ15
BJ17
BJ21
BJ23
BJ27
BJ34
BJ25
30000
BJ25
30000
BJ25
30000
BJ25
30000
BJ25
30000
BJ25
30000
BJ26
Q25
BJ12
CNI
BJ34

}
}
}
}
}
}

Reset store address of 1st write
Reset switch to write 1st b10ckette
Write 1st blockette and go to BJ25 to
up new '1st Blockette'
Write 2nd b10ckette and go to BJ25 to
up new '2nd Blockette'
Write 3rd b10ckette and go to BJ25 to
up new '3rd Blockette'
Write 4th b10ckette and go to BJ25 to
up new '4th Blockette'
Write 5th blockette and go to BJ25 to
up new '5th Blockette'
Write 6th blockette and go to BJ25 to
up new '6th Blockette'

}

Set address from TM into write command

CN4

1M5

o

BJ7
30000

o

If not, go

set
set
set
set
set
set

Set for next write command
Has full block been written?
Reset index
Back to BJ7
Exit

BJ35
UN
BJ34
BJ27
1M5

BJ25
1M5

o
UN56

o
CN52
CN50
CN50
UN33
CX6
CN30
UN64
CN30

BJ
TMll
lMI0
BJ
UN3
VFI0
UN34
MG16
ThH4

LN3
30000
MN42
30000
17
TM5
'D1

}
}

Set up and write last block
Store index and address of next write
command to be set up
Write remainder of block
Stop tape
Transfer unwri tten blockettes to teJlll buffer
Go back to MG16 for next group of program
tape items

}

Put largest number into LN3
Put largest number into end of tape line
Out to bring in remaining corrections
Reset all Z's into end of tape line

}

Set index for remaining block(s)
Set address of end of tape line into 1M

273

20
21
22
23
24
25
26
27

RJ
IJ
EF
IJ
MJ

BJ34
UN64

TP

CX27
1M20
UP2

UP3

30
31
32
33
34
35

RA
MJ

UN26

W

KW5

,)0

/

TV

,... .,1' n.
vl~OU

CN13
UN23
1M
UN
UN37
1M

37

SP

30000

17

40
41
42
43
44
45

TIl

A

RP
TP
RA
RA
IJ

30024
30000
UN37
UN42
'!M

UN42
UN43
30000
CN14
CN5
UN37

46
47

TP
TP

CN60
A

A
BJ12

50
51
52
53
54
55
56
57

AT
AT
AT
AT
AT
TP
MJ
TP

CN5
CN5
CN5
CN5
CN5
1MI0

BJ14
BJ16
BJ20
BJ22
BJ24
1M5
30000
1M20

60
61
62
63
64

TP
RA
RA
MJ

CN52
UN57
'!M17

o

o
o

CA

UN65

....

o
1

2

TP
RJ

o

nn7

o

o

MJ

o

W

CN42
CN4

TP

0
A

IA

NR

TV

MN12
1M4
MN24

TP
RJ

XX20
UP

UN42

LN3
CN
CN
MN36
14

VFIO
A

5
6

DV

CN30
CN54
CN5

7

TP

Q

}

}
}

}
}
}

o
1M3
1Ml

Write remaining block(s)
Stop tape
Are there more out of sequence items?
If not, go to RS6
If so, fill in sentence number and print:
SEN'IE~E - - - OUT OF SEQUE~E
Set for next item
Back to test
Set correction item address into '!M and go
to UN
Set temp buiier address into transfer conunand
Set address of item into transfer command
Move blockette to temp buffer so it will
not be overwritten by next read in
Set for next blockette
Have all blockettes been transferred? If
not, go to UN37

Reset addresses of write commands

Exit
Store sentence no. of out of sequence item

}

CN30
1M16
MNI00

o

EF
TP
SS

3
4

BJ
UN20
VFI0
UN25
RS6

Set a zero into LN3 so item will be deleted
Set for next out of sequence item

Set address of end of tape line into CN30
Store block index
Set End of Tape Switch to exit to NR3 and
go to MNIOO
Stop tape

}

Compute no. of blockettes read in before
end of tape and set into TM3 and TMl

274

10
11
12
13
14

TP
ST

15
16
17

RJ
MJ
EJ

20
21
22
23
24
25
26

CN3
lM16
CN30
CN30
UNI0

A

NR26

CX7

MN30
UNI0
NR23

TJ

nus

UNS7

TP
TP
RA
RA
IJ
MJ
CA

LN3
CX7
MN36
MN32

IA

TV

TV

SJ

o

n114

o

TIl

1

2
3
4

TP
EJ
RA
IJ

MP
MN5
30000
CX6
MPI
1M4

5

RJ

MP2

6
7

EF
LQ

10

TV

11

TP
MJ
CA

o

IA

}

Compute no. of line number left to be
processed

}

Set address of end of tape line
If no line numbers are left to be processed.
go to UNIO
Out to process line numbers
Go to UNIO
Was line number all spaces? If so, go to
NR23
Was previous line number greater than this
line number? If so, go to UNS7
If not. set current line number into 1MlS
Put all spaces into LN3

nus
LN3
CN5
CN12
[MN32]
MN41

}

Set for next line number
Finished with all line numbers
Exi t to MN41

NR27

o

12

TM14
UN12
UN14
NR15

o
MPI
Q
lM4

o

MPI
A

MP6
CN12
MPI

}

If not. set for next line number
Finished with all line numbers? If not. go
to MPI
Exit, end of tape not found

[MN4]
VFIO
Q2S
CN30
lM16
NR4

Set up line number address
Is line number all Z's? If so. go to MP6

}

Stop tape
Set address of end of tape line into CN30
Store block index
Go to NR4

MP13
LP
LP2
LP2

1

TV
TV

2
3

MJ
ZJ

o

4
5
6

TP
RJ
MJ
CA

XX54
UP2

LP4

o

NR26
UN13
MN45
JL30
UP3
UP
XY15

}

Set to bypass correction phase
Is parity error to be ignored? If not, go
to JL30
If so. print: PARITY ERROR IGNORED
Go to XY15 to reposition tape

LP7

27S

Parity Error Routine

IA
1\

JL

'l"ITT

.1 V

rrrvl

V

1

SP

FT2

2
3

W

A
FT13

4
5

RJ
RJ
RJ

r

.1'"

... , .. ,.,..

AI;:)

XY20
JL5

17
XYI0
FT13
JL26
JL6

6

TP

1M5

A

7

ZJ

JL10

FTl7

10

EF

0

VF

11

MJ

0

FTl3

1 ~

rrtT

lalV A

~"

.L V

1V

14

SP

15
16
17
20
21

W

CN24
CN24
A

RJ
RJ

XY20
JL5

M,J

o

RJ

JLll

22

TV

FT12

23

MJ
RJ
MJ
RJ
RJ
RJ
RJ

JL26
JL26
JL26
JL26

TP

CX32

RJ

UP2
CN52

25
26
27
30
31

32
33
34

TP

35

MS
CA

}

o
JL20

o

o

XY5
17
XY10
JL26

}

[30000]
JL
JLll
FT23
JLl3

XY23

XY45
UP3
UP
A

LP3

Clear end of tape indicator
Reread
End of tape?
Buffer index = 0

Set addresses into reread
Reread
Clear end of tape indicator
Exit
Out for set up

JL5

MG5
JL27
XYl

Set addresses into reread

Start read
Exit
Set exit

nA'i

13

24

}

Exit
Out for se1 up
Exit

}

Distributor for reread cycles

}

Print error indication
Set A to 0
Stop set to re-enter

JL36

276

Reread Cycles for Parity Error

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51

IA
00
TP
EF
TP
RS
ER
IJ
RS
TP
EJ
IJ
ER
ZJ
EF
RJ
EF
MJ
TV
MJ
EF
TP

XY
0
XYI
11\14
CN4
0
VFl
CN21
Th16
XY5
CN
10000 [30000J
XY4
TIVl6
XYIO
CN12
[30000] A
CX6
1M4
0
JL26
0
JL26

a

ru

0
XY51
0
0
CN4
XY5
XYIO

EF
TP
ER
RA

CN21
10000
XY31

TV

IJ
TP
EJ
RA
IJ
ER
ZJ
TV
TIl

a

'IM6
[30000]
CX6
XY34
TM4

0
XY42
XY31
XY34

MJ
EF
MJ

a
a
a

TV

XY51

MJ
00

XY51

a

XY21
XY3
A
XY15
VF4
JL26
VF5
30000
JL5
XY12

}
}

XY31
A
XY47
CN12
XY30
A
XY16
XY5
XYIO
XYI
VF7

XY24
JL5
XY36
ET2

Finished with block?
Check pari ty
Move forward 1 block
Reset distributor
Set to normal bias
Exit

VF6

TM4
XY31
XY34
VF3
Th16
[30000]
CN

Set block index
Start read backward 1 block
Set blockette index
Reset read command
Read word
Finished with blockette
Set for blockette
End of corrections? (i. e •• line number
all Z's)

}

Set to low bias
Set block index
Set initial addresses
Start read
Set blockette index
Read word
Set for next word

}

}

Finished with blockette
End of corrections
Set for next blockette
Finished with block
Check parity
Pari ty error: Reset addresses
and go back to reread
Set to high bias
Go to reread

277

52
53
54
55
56

RJ
EF
MJ

XY60

XY55

o
o

VF

TV
1U

MNI2
MNI3

57

RJ

XY::!O

60
61
62
63
64
65
66
67
70

RJ

XY60
1M2
XY63

71

72
73
74
75
76
77
100
101

TP

ZJ
EF
MJ
LQ

I
2

3
4
5
6
7

XY34

TV

Q

RJ

NR2
MN24

TV

IV
MJ

XY72

TV

XY5
CN4
1M4
NR2
MN24
XY60

TP
ST
RJ
TV

RA
MJ
CA

o

o
o

IA
MJ
RS
MJ
00
00
TP
1U

o

o

MN4
XY51
XYIO
JL26
XY61
A

MN27

LC

o
1M

o
30000
30000
CX5
LC3

LC5
1M
[30000]
30000
30000

TP
EJ

30000
CX7
20006
CXI0

A

I£ll

1M3

CN13
LCII

LC4
UP2

UP3
UP

o

LCI

CX23
Q

A
TM

CN37

LC55

A
TM
A

1

25
26
27

LA
SA
TV

=0

to indicate error

}

Storage for correct label

}

Find 1st word that is not all spaces

}
}

Determine alignment of 1st word that is
no t a II spa c e s

1M3

II

23
24

Set A

LCII
17
LC47

LC3

TP

1J

XYI02

A

RJ
MJ
TP
ST
EJ

}

1M16
NR2
XY60
CN
XY22

1U

EJ
RA
IJ

Reread
Exit
Test: Is buffer full? If so, go to MN27
If not, take next instruction
Start read

A

SP

RP

}

VF

MN25
Q25
CN30
NRI
XY60
XY35
XY36
CN30

10
12
13
14
15
16
17
20
21
22

Set XY go to exit to NI and go to XY55
Start read
Go to MN4
Set address into end of tape test

LCI5
LCI7
LC22

}

Find 1st word that is not all spaces.
Error - out to print

Set up number of shifts needed to align
sentence

I

LC36

278

30
31
32
33
34
35
36
37

111

LCll
LCl1
A
LC23
CNI
30000
30000
A
LC35
LC35
LC37
TM3
Lc26
CN
30000
30000
0
LC46
LC47
1M3
0
LCll

MJ
CA

LC57

111

RA
TIl

TV

TP
SP
SA
TP

40

1U

41
42
43
44
45
46
47
50
51
52
53
54
55
56

RA
RA
IJ
1U

TP
TP
EJ
MJ
RA
RA
IJ
MJ

a

LC36
CN13
LC35
LC37
1M3
44
30000
30000
LC36
CN13
CN
LC35
LC46
TM3
A
LC51
LC17
CN13
CN13
LC46
LC2
LC46
LC45

}

Set up addresses and index

Align label so that 1st significant
character is to left

}

}

Check a word of label.
Word is incorrect; go to LC17
Set to check next word
All words have been checked and label is OK

Tape Codes

a
1
2
3
4
5
6
7
10
11
12
13
14
15

IA
02
02
02
02
02

00002
00612
00200
00602
00004

[4]0000
[4]0000
[4]0000
[4]0000
[4]0001

02
02
02
02
02
02
02
00
00
CA

00001
00001
00001
00600
200
00146
00746
20000
0
VF16

50000
60000
70000
00000
50000
50000
50000
04000
10000

VF

Read forward
Read backward (stop included)
Rewind
Read forward (stop included)
Move forward 1 block
Set normal bias
Set low bias
Set high bias
Stop tape
Rewind servo 5
Write 1" bkt. 2.4" bk, 128!in-servo 5
Write 1" bkt, (stop included)
Bypa ss buffer
Increment to reset tape codes

279

Excess Three Characters and Words

loR

Til

rov
vA

1
2
3
4
5
6
7
10

54
67
01
33
66
00
74
01
01

00000
00000
00000
00000
00000
00000
74747
01010
67503

11

01

U.lOI;j

u.:>q~O

12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40

01
01
01
67
30
54
67
30
30
00
00
00
00
00
00
00
00
00
00
00
77
77

01016
01010
01010
50342
01525
24470
50342
01265
26663
0
BU
BU
0
XX16
XX5
XX55
XX33
XX2
XX22
XX16
77777
77777

75034
16750
10167
65127
45132
12201
65127
15454
45150
20006
CX15
CX20
454
6
11
5
15
3
2
4
70701
70601
2

CA

CX41

a

a

n,/""'"

xx

00000
00000
00000
00000
00000
00022
47474
10101
42651
r\.6"lAn/

R

U
~

H

T
Period
All Z's
All spaces

tJ.
U
N
A
A
D. D. U

I

C 0

N

I
N

tJ.tJ.tJ.U
tJ. tJ. tJ. tJ.
~ tJ. tJ. tJ.
U N I C
E tJ. P R
R A M tJ.
U N I C
E tJ. C 0
E C T I

C
I
N

u
tJ. U
0 D
0

.

0

G

tJ.

D
R R
0 N

Ta pe label s

Index for no. corrections
To set index
Constants for error print - correction tape
Constants for error print - program tap e
Constants for error print - parity error
Constants for heading print - correction tape
Constants for heading print - program tape
Constant for delete print
f. f. f. f. 4t::,.
f. f. f. f. 3t::,.

280

Constants

IA
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54

00
00
00
00
00
00
77
00
00
00
00
00
00
00
00
77
00
00
00
00
00
00
00
00
00
00
00
75
00
00
00
00
00
TV
00
00
00
00
TP
00
37
00
00
00
00

CN
1
0
2
0
3
0
4
0
5
0
24
0
0
0
14
0
15
0
3220
0
0
24
0
1
0
2
70000
7
1
1
[30000] 00024
DT
DTI
0
23
0
m
0
TBI
0
BU170
0
BU171
CB
CB
2
2
30000
0
4
4
36
0
30036
SR6
4
0
0
10
0
7
0
6
0
FT21
PB4
1M14
BJ12
M~32
[30000]
0
[30000]
0
[30000]
0
1B

A

0
77777
0
0

17
77777
30000
0
BU12
BU

a
a

Constants

To set buffer index 1st group only
To set buffer index all other groups
Increment for drum transfer

Sequence indicator

Total no. of items
Number of storage locations
Number of in sequence items

281

55
56
57
60
61
62

01
31
30

EW
00
00
CA

51676
01653
50263
10000
0
0
CN63

60151
05367
02277

}

XS3 codes fo r
OUT OF SEQUENCE

GR

11
51

282

Line-Number Processor

0
1
2
3
4
5
6
7
10
11
12

IA
MJ
MJ
MJ
00
00
TV

MJ
TV

MJ
TP
MJ
CA
IA

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21

0
1
2
3

4
5

6
7
10
11

TV

TV
RJ
RJ
TP
TP
TP
TV
TV

TV
TV

TV
IJ
RJ
TP
EJ
EJ
MJ
CA
IA
LQ
QT
RP
EJ
EJ
EJ
RP
EJ
TV

TV

LN
0
0
0
30000
30000
RC14
0
RC15
0
LN4
0
LN13

LN5
LN7
30000
30000
30000
PAl
ORO
PAl
OR
LN3
LN2

OR
RC6
OR
MR12
MR43
UC23
UC4
LN4
RCI0
RC13
RC12
RCII
RCI
WS3
OR15
LN3
UC23
UC24
0
OR22

MR27
OR15
MR12
MR43
LN3
WS3
WS
MR3
MR4
MR5
MR7
MR16
MR
30000
A
SV14
SV14
LN2

The remaInIng coding is a modified version
of the Line-number Processor used in the
translation phase. Instructions which have
been changed are noted below. Explana tion
and annotation for non-changed instructions
are to be found in Section III. 3. A Translation Subroutines.

MR
WS
UC20
20004
UC14
UC13
UCI
20011
UC2
RC
RC2

6
A
MR4
30000
30000
30000
ISV61

Exit to store line number and type of
error for later print out

30000
MR16
MR3

283

12
13
14
15
16
,..,

RJ
RJ
RJ
MJ
MJ

MR12
MR12
MR12
0
0

CO"
u1-\

LI~'"

U

20
21
22
23
24
25
26
27
30

TP
MJ
RJ
MJ
TV

A
0
MR21

RJ
RJ
MJ

LN3
30000
MR16
DR14
MR5
MR7
MR16
30000
DR14

'l,

CD

32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56
57
60
61
62
63
64
65
66
67
70
71
72
73

SA
SA
AT
MJ

l.1

vl.

TV

oJ!.

TV
TV
TV
TV

MJ
RJ
RJ
MJ
EJ
LA

TP
QS
TP
TP
MJ
LT
TP
MJ
TV
TV

EJ
AT
TP
QS
MJ
TV

TV
TV
TV

MJ
CA

r

1\11)

0

RC3
RC3
MR21
MR27
0
r
Ll,'"
UC13
UC14
UC14
0
RC2
RC5
RC7
RC7
0
MR43
MR43
0
UCI
A
UC21
A
UC
UC20
0
10006
UC22
0
RC4
RC4
UC1
WS1
WS2
WSI
0
RCI0
RC5
Re5
RC5
0
MR74
1\11)

MR13
MR22
MR22
MR24
30000
/

A

U

6
6
LN3
DR14
MR3
MR4
MR5
MR7
MR27
MR44
MR46
MR60
MR55
6
Q
LN3
WSI
WS2
DR14
WS1
WS2
DR14
MR5
MR7
DR14
WSI
Q
LN3
DR14
MR3
MR4
MR5
MR7
DR14

284

0
1
2
3
4
5
6
7
10
11
12
13
14
15

IA
0
0
0
0
0
0
0
0
0
0
0
0
0
0
CA

RC
0
0
0
0
0
0
0
0
0
0
0
0
0
0
RC16

MR17
MR21
MR67
SV10 SV12 SV14 MR31
MR43
DR14
MRIO
MRII
MR36
PA3
PA5

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24

IA
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
CA

UC
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1010
1012
UC25

0
3
4
5
6
7
10
11
12
13
14
22
1
77
17
43
77
7700
7777
10100
20101

0
1
2
3

IA
0
0
0
0
CA

WS
30000
30000
30000
30000
WS4

30000
30000
30000
30000

}

Used to set error exits so that line number
and type of error will be stored for later
print out

285

11
12
13
14
15

IA
MJ
MJ
MJ
RJ
MJ
TP
TP
RJ
MJ
RJ
TP
TP
RJ
MJ

0
1
2
3
4
~

u

6
7
10

PA
0
0
0
SV60
0
LN4
CO
UP2
0

16

HJ

17
20
21
22
23
24
25
26
27
30
31
32
33
34

TP
TP
RJ
MJ
RJ
TP
TP
RJ
MJ
RJ
TP
TP
RJ
MJ
CA

PA2
LN4
CD5
UP2
0
PA2
LN4
CD17
UP2
0
PA2
LN4
CD31
UP2
0
PA2
LN4
CD44
UP2
0
PA35

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23

IA
00
65
26
01
01
40
34
46
24
34
66
50
01
01
43
40
30
34
24
34

CD
CDI
30506
30010
01010
01017
CD6
46463
01263
26663
50016
30502
67472
77777
01010
77777
CD20
72665
50663
46012
66650

PAl
0

0
SV56
PA2
CD3
UP3
UP
PA2
PA
C015
UP3
UP
LNII
PA
CD27
UP3
UP
LNII
PA
C042
UP3
UP
LNll
PA
CD54
UP3
UP
LNII

Out to print sentence type

4
63050
17777
10101
77777
11
03224
32454
05401
53050
63001
53054
77717
10101
77777
11
42401
03254
73432
13450

286

24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55

01
50
47
01
43
40
30
31
51
34
34
66
50
01
01
43
40
34
46
30
50
30
67
17
01
43
CA

65305
26300
25305
01010
77777
C032
72665
54242
50244
32346
50016
30502
67472
77777
01010
77777
C045
46463
01653
50263
01653
50263
47253
77777
01010
77777
C056

06630
15067
40117
10101
77777
12
42401
66634
60127
66501
53050
63001
53054
77717
10101
77777
11
03224
05367
00134
05066
00150
05401
77777
10101
77777

287

3. TRANSLATION PHASE

3.
a.

Translation Phase

Translation Subroutines
(1) Abbreviations Used
WL - Translation List (output of translators)
FXX - (where XX is a decimal number) An error number
CB - Combination List
BF - Read in Buffer
CW - Call word
DP - List of Pseudo Operation Dummies
VL - Vary List
VF - Vary File
FC - Flex Codes
12 - List of Referenced Line Numbers
CL - Constant Pool

Vv~B -~

T

}

Variable or Temporary Regions

XS3 - Excess Three Code
SS - Subscripts or Subscripted
Line - Sentence
String Out - Translation or Translation List
S.O. - Translation

291

(2)

General Description

This phase of UNICODE reads the UNICODE Program sentences from tape 5.
assigns call words to symbols, and detects errors in the program. The output
is a list made up in region WL for each sentence. When the space period (fi.)
symbol is encountered. the list in region WL is written on tape 6 (3) to become
the input to the generation phase for the sentence translated.
continues until END OF TAPE is encountered and translated.

This process

The translation subroutines remain in the core and a translator for the
type of sentence encountered is transferred from the drum and referenced by
translation control (CT) which acts as a switch~ Most translators are tra.nsferred into core addresses 4400 to 4400 + Ni where Ni is the length of the
translator. The equation and LIST translators are transferred into 4000-4000 +
Ni. the IF into 4566 to 4566 + Ni, and the JUMP into 4700 to 4700 + Ni.
Each translator uses as many of the translation subroutines as necessary
to make up the translation list (WL). There is no standard format for the
translation list with the exception of the heading (WL-WL3). The heading format
is described in the format of lists section.

292

(3)

Core During Translation (Not all regions mentioned)
Name

1.
2.

Indicates 5 or 7 servos
5 servos - TN
7 servos - TN
Tape Handler

Region
TN

=0

=0

3

Addresses
20

0

lli

21-420

GT
3.
4.
5.

6.
7.
B.
9.
10.
11.
12.
13.
14.
15.
16.
17.
lB.
19.
20.
21.
22.
23.
24.
25.
26.
27.

2B.
29.
30.
31.
32.
33.
34.
35.

Print Text
Print Error Heading
Build Symbol

UP

Translation Control
Delete Spaces
Send Call Word to Translation List
Fill Symbol (with 77 codes)
Switch List (used by control)
Convert Constant to Floating Point
Get Next Character
Get Next Sentence
Assign Constant Call Word
Send Referenced Sentence Number to List
Check and Standardize Sentence Number
Set TN for 5 or 7 servos
Send Sentence Call Word to Reference List
Check Floating Point Constant
Check Fixed Point Constant
Check Variable Type Symbol
Get Rest of Lower Symbol
Decimal to Octal Conversion
Get Rest of Superscript Symbol
Rewind all Tapes
Get Next Symbol
Get File From Combination List
Send File Back to CB List
Add File to CB List
Increase 66, 65, 64 Call Word Counter
Get C.W. from Dummy Pseudo Ope List
Setup Translation Tape
Error Routine
Close Vary File
Send Translation List to Tape

WA
WB
BS
CT
OS
EW
FS
FW
GG
GN
GS
GW
IX
LN

OT
RA
RB
RD
RH
RL
RS
RU

RW

SY
TA
TO
TE
TK

TS

UB
UZ

VE

SS

421-536
537-562
563-602
603-627
714-751
1001-1007
1010-1031
1032-1060
1061-1117
1134-1323
1324-1376
1377-1456
1457-1474
1552-1621
2037-2145
2146-2155
2156-2171
2172-2220
2237-2264
2265-2315
2316-2347
2350-2424
2425-2443
2444-2465
2466-2545
2546-2653
2654-2662
2663-2741
2742-2761
2762-3004
3013-3032
3065-3110
3122-3202
3207-3224

WT

36.
37.

3B.

Increase 26, 27, 22 Sentence Number
Call Word Counter
Read Buffer
Translation List

39. Operating Area for Translators

293

XJ

3225-3245

BF

3317-3506
3507-3757

WL
VN
OR

4000-7777

(4)

Drum During Translation
Name

1.
2.
3.
4.
5.
6.
7.
8.
9.

Flex Codes
Combination List: Dimension List and List
of Library Routines, Pseudo operations and
Variables
Constant Pool
Vary File
Referenced Line Numbers
Pseudo Op Sentence Call Words of 2nd Sentences
Rewind List of Referenced Tape Numbers
List of Pseudo Operation Dummies
Vary List: Variables which cannot be altered
.; ............. ,... .....

.J.J1

10.

Region

.1.QUIjV

,..f!
V.J.

FC
CB

40001-40100
40101-46100

CL
VF
IZ

46101-47100
47101-47245
47246-47721
47722-50022
50023-50045
50046-50177

IN
WR

DP

VL

lTI\OV
vnu.L.

Error Texts (Translation Subroutines)

FA
FB
FD
FE
FF

FG
FH
FI
NO
PA
CD
Translators
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.

Addresses

50200-50332
50333-50406
50407-50446
50447-50512
50513-50544
50545-50574
50575-50623
50624 -50672
50673 -50721
50722 -50751
50752-51006
51007-51074

Locations
Transferred

COMPUTE
22538
READ
223 8
TYPE
12208
LIST
37538
PRINT
2508
IF
2423 8
VARY
2444 8
RESUME
678
JUMP
1448
STOP
308
END OF TAPE
225 8
EXIT
52 8
START
45 8
Equation
36638
Pseudo Operation Heading
10508
Remainder of drum is service routines
I

294

CP
RE
TL
LM
PS
KP

VY
RV
SJ
SP
EU
EZ
ST

YA
HE

51075-53347
53350-53572
53573-55012
55013-60765
60766-61235
61236-63660
63661-66324
66325-66413
66414-66557
66560-66607
66610-67034
67035-67106
67107-67153
67154-74527
74530-75600

(5)

Error Texts of Translation Subroutines

Fl

Sentence
before START, begins with a key word (VARY, LIST, etc.).
Rest of this sentence not checked.

F2

Sentence - - - - First symbol, - ,does not indicate legal UNICODE
sentence. Rest of this sentence not checked.

F3

More than five errors.

F4

More than 25 errors this program. Reread specifications.
checked beyond sentence - -

F5

More than 512 lines in this program. 513th sentence number is - - - -.

F6

Number of unsubscripted variables plus functions is greater than 512.
513th symbol is - - - -. Working on sentence - - - •

F7

More than 12 characters in floating point constant.

F8

More than one decimal point in constant.

F9

Assumed constant contains a letter.

FlO

More than six characters in fixed point constant. (Const.)

Fll

A decimal point in a fixed point constant.

F12

More than six characters in variable type symbol.

F13

Variable type symbol contains a point.

F14

No sentence number on sentence following - - -

F15

List of variables, Library routines, functions and pseudo operations
has become too long. Working on sentence ________ •

F16

Too many symbols.

F17

No end of sentence symbol.

F18

Incorrect symbol sequence.

F19

Key word, - - - - - , used as variable.

Rest of this sentence not checked.

(Const.)

(Const.)

(Const.)

(Const.)
(sym.)

(sym.)

-lJ.lJ.- - - -

295

Program not

(6)
(a)

List Formats

Combination List (CB)

40101-46100

This list consists of an item for each variable, library routine, and
pseudo operation.

The order in which these items appear in the list is as

follows:
1)

Subscripted Variables, if any (Dimension List)

2)

Library Routines

3)

Unsubscripted Variables (Floating & Fixed Point)

Functions and

Pseudo Operations in the order in which they appear in the program.
Op
v
u
Address CB = 0
where N = the number of words in the CB
2(N)
0
i nr.lllti
i no CB"
l i st not ---N is increased ea.ch time an item is added to the CB list.
--'----;:J
The items have somewhat different formats so each will be described.
Parentheses indicate the extent of the word used.
1.

Subscripted Variable

Op

v

u

00

D )

(

00000
)

S

(

00
O(Z)

o0

o0
o0

(

000

t

\.

M

~

CW

)

N
)

(
(

0

ml
m3

)

)

= The first drum address of this variable in the object program.
S = The XS3 code for the symbol.
CW = The call word (77xxx)
Z = An octal digit with binary representation Zl~Z3
Zl = 1 the variable is defined by an equation before START
~ = I the variable is defined by an equation
Z3 = I the variable appears in a READ sentence
M = The modulUs (the total number of words of storage needed by this
D

variable in the object program).
N

=

ml ,

The number of subscripts.
~,m3

- multipliers used m the manipulation of subscripts
ml
~

m3

= product

of rightmost n-l dimensions

= product of rightmost
= rightmost dimension
296

n-2 dimensions

2.

Pseudo Operation
Op

u

v

s

(

)

000

(

cw

)

O(N)

00000

(

Fl

)

0(2)

N 000 0

(

O(N)

o0

(

0

0

o0

0 0 0

F2 )
etc. )

S

= the

XS3 code for the symbol

CW

= the

call word (4XXYY where YY

function

= the

number of operands;

XX

= pseudo

operation number.)
FIt F , etc.
2

= Operand

formats which read from right to left with the following

codes:
1 - Floating point operand
2 - Fixed point operand
3 - Function
4 - Subscripted variables
For example, the function F (X, Y(I)) would have format: 413.
The subscripted variable

0(1, J, K, L) would have format:

The variable R would have format:

1.

The constant 3.49 would have format:
The constant 75 would have format: 2.

1.
(a constant with a decimal point is

floating point, one without is fixed point.)

= number of commas for a function.
N = number of subscripts for a subscripted
N = 0 for other operands.
N

variable.

2 is the same as 2 described under the subscripted variable.

3.

Function
Op

u

(

o0
o2
S
CW

= XS3
= Ca 11

v

-

)

S
0 0 0 0

(

CW

)

N0 0 0 0

(

F

)

o

4

code of symbol
word (66XXX)

297

= Format as described under
Z = Same as Z described under
N = The number of commas.
F

4.

CW

=
=

subscripted variable.

Floating Point or Fixed Point Variable
Op

u

(

S

o0

o0
oz
S

Pseudo Operation item.

v
)

000

00000

(

CW

o0

)

0 0 0

XS3 code of symbol
Call word (65XXX for floating point, 64XXX for fixed)

Z is described under subscripted variable item.
5.

Library Routine
Op
(

o0
S
CW

=
=

(b)

I

u
S
0 0 000

v
)

(

CW

)

XS3 code of symbol
Call word (5XXXY where Y = number of operands.
XXX = routine number.)
Pseudo Operation Dummy List (DP)
50046-50177

This list is made up by the pseudo operation heading translator. The
entire list is searched for a symbol even if the list is not full since it is
short (1328). The list is cleared before adding the first symbol. The items
in the list are as follows:
1.

Subscripted Variable
Op

u

(

S

o0
S

=

76YXX

I 0 0 000

v
)

7 6 YXX

XS3 code of dummy symbol

= dummy

call word (Y
XX

= number of subscripts,
= variable number.)

298

2.

Function
Op

v

u

(

)

S

o0

000 0 0

oZ

N0 0 0 0

= same as described
X X X = Call word.

S, Z, N, F
6

1

3.

6 1 XXX

under Pseudo operation in combination list.

Floating Point or Fixed Point Variable
Op

v

u

(

)

S

6 3 XXX

1

S

= XS3

(c)

of dummy symbol

= Call word

63XXX

F

(the same for both floating or fixed point)

Translation List (WL)
WL

WLI

= Number

~

of words (includes word WL) in translation list

= Standardized

sentence number.

This is of the form:

where X. is the XS3 code for a decimal digit or XS3 for a space (01).
1

for the point (22) always appears.

2508 •

The XS3

Spaces will not separate digits or a digit

and the point.
WL2 = the sentence type (READ, LIST, DIMENS, etc.) in XS3 code.

Only the

first six codes appear for words of more than six characters and for words of
less than six characters. WL2 is filled on the right with 77 codes. There are
two special cases t the equation and the pseudo operation heading.

For the

equation:
WL2
WL2

= EQUATN
= EQUATI

(XS3) - Before START
(XS3) - After START

For the pseudo operation heading:
WL2 - The XS3 codes for the symbol which represents the pseudo operation.
WL3 - Sentence call word in v address.
2 2 X X X - Sentence within pseudo operation
2 3 0 0 0 - END OF TAPE sentence
2 4 X X X - Equation for S.S. variable (before START)

299

2 5 X X X - Equation for other variables (before START)
2 6 X X X - VARY sentence (not in pseudo op.)
2 7 X X X - Sentence (other than VARY) START or after.
where X is an octal digit;

The rest of the translation list is not standard but depends on the particular translator.
(d)

Referenced Sentence Numbers (12)

Op
(

o
S

CW

u

v

S
0 100000
I

)

I (

CW

I

)

= Standardized Sentence Number
= Sentence call word (26XXX, 27XXX

(e)

VARY (Variable) List (VL)

Op

o0

47246-47721

u

or 22XXX)

50200-50332
v

I VLX

I

VLX

(

Sl

)

(

S2

)

(

~3

)

~-l

)

I
I

(
I

VLX
VLX = Next available address in list
Sl' S2' etc. = XS3 code for symbols which cannot be altered within range
of a VARY sentence.
(f) VARY File (VF) 47101-47245

VF

Op
0 0

2 (

(

Y2

v

u

(

N )
S

CW

l

)

(

M

)
)

(CW

2

an item of file

)

M = Number of words down to first 22XXX VARY sentence. if any.
N
S

= Number

of words in file not including VF
= Standardized sentence number of last sentence in range of VARY.

300

CW I

= Call

CW

= Call

2

word of sentence jumped to or resumed at end of VARY loop (27XXX,
26XXX or 22XXX)
word of the VARY sentence (26XXX or 22XXX)

= Count of number of "with" words.
bits) = Yl 'Y2 where:
Yl = 1 Indicates closed out or completed item.
Y = 0 Item not closed out or completed.
l
12 = 0 Normal jump
Y = 1 Resume jump (either stated or implied)
2

Z (4 bits)

Y (2

(g)

Rewind List of Referenced Tape Numbers (WR)
50023-50045
Op

o0
o0
o0

WR

WRI

etc.
N

= Number

u

2{

v

N
CW
CW

0

)

(

N

)

00000

I

00000

2

of words in list not including WR, CW , CW , etc.
I

2

= Call

words of

tape numbers (67XXX or 64XXX)
This list is used by the STOP object program

so the machine operator may

rewind input and output tapes from the console.
(h)

List of Second Sentences of Pseudo Operations (IN)
Op
IN

o0
o0
o0

v

u

2
(
(

(

47722-50022

N

)

CW
I
CW
2

)

o0
o0

)

00000

0 0 0
000

N = Number of words in list not including IN.
CW l , CW 2 , etc.
pseudo operations.

= Call

words of Sentence numbers of second sentences of

This list is used in generation to check for illegal jumps from one pseudo
operation to another.
(i)

Constant Pool for Object Program (CL) 46101-47100

This is a list of the constants both floating point and fixed point, one
constant per word.

301

address 10 =00 2 ( N ) 0 ( N )
N = Number of constants in list CL.
The constants are assigned call words according to their position in the
list. i.e., the constant in CL has call word 67000, in CLI 67001 and so forth.
(j)

Key Words of nNICODE (Region KB - 1664-1722)

The following words cannot be used as variables in UNICODE.
KB of coding.)
DIMENS

JUMP

~AAT

SIDP

VAAY
COMPUT

END
EXIT

READ
LIST
TYPE
PRINT
IF
RESUME

POW

(7)

(See region

NOT
TAPE
WITH
THEN
AND

Descriptions of Translation Subroutines
(a) Translation Control (CT)
This routine gets the next sentence (GS), gets the first

symbol of the sentence (SY), sets up the translation list (WL) heading,
transfers the proper translator to the core (depending on the first symbol of
the sentence), and jumps to this translator.
After the translator has completed building list WL and found the space
period ( Ll.) of the sentence it writes WL on tape by referencing routine SS.
Then it jumps back to translation control (CT).

302

Sometimes a translator will find a sentence so full of errors that it is a
waste of time to continue checking it.
~.

(CT) before finding the

symbol.

Then the translator will jump to control
Translation control will pick up symbols

until a 1:1. appears in SY2.
This routine is not written as a subroutine and is referenced by:
MJ
(b)

0

CT

Get Next Sentence (GS)
This routine sets the Get Next Character (GN) routine to pick up the first

character of the next sentence, standardizes the sentence number, reads tape if
necessary, and sets up the first two words of the translation heading.

It is

referenced by the instruction.
RJ

GS

GSI

If the sentence number word is all Z's it sets up the entire translation
list for END LiOFLlTAPE ,and goes directly to the end of tape translator.
If the sentence number word is all spaces it checks the entire sentence and if
all spaces proceed to the next sentence.

If the entire sentence is not all

spaces it prints NO SENTENCE NUMBER ON SENTENCE FOLLOWING - - - - -

(Error

F14).
It also clears the indicator of previous print-out in routine EW.
(c)

Get Next Character (GN)
This routine picks up the next character from the raw input, read into BF,

of the corrected problem tape and places the character in the rightmost six bits
of A and GN4.

It is referenced by the return jump.
RJ

GN

GNI

The first time the routine is used, the address where the character is
located must be put in both the u and v addresses of GN2, and a shift count
in GN3.

To explain the shift count, consider the characters of a word to be

numbered from 1 to 6 left to right.

To obtain the first character at the address

in GN2, set the shift equal to zero and perform RJ GNO GNI.

But to obtain the

second character, first left shift word in address at GN2 by 6, and set shift
count equal to 6, then perform the return jump.
all cases:

303

The following table gives

No. of Places to shift
word at address
put in GN2

Set shift count
in GN3 equal to:

1

0

0

2

6

6

3

14 8

148

4

228

5

3°8
368

228
30 8

Character
Number

6

36 8

References after the first are by the return jump only since the routine
automatically sets itself for successive characters.
(d)

Get Next Symbol (SY)
To pick up the next symbol from the raw data, the instruction is used.
RJ
SY
SYI
In picking up the symbol, the routine ignores spaces until a significant

character is encountered, then characters are assembled into a symbol until a
symbol separator character is encountered.

The following characters are

separators:
1.

2.
3.
4.
5.
6.

6.

(

)

+

7.
8.

9.

Any lower case character when building a
superscript symbol.

10.

Any superscript character when building a
lower case symbol.

11.

/

12.

super scr i pt -

13.

super scr i pt I

14.

=

15.
16.

>

17.

<

All of these characters, except I, 9, and 10 are symbols by themselves.
Following is a list of all symbols:

5.

)

2.

6.

+

3.

7.

1.

4.

6. .

(

304

9.
10.

I

11.

superscript /

14.
15.
16.

12.

=

17.

Variable Type Symbol
Constant

18.

Super scr i pt Constant

superscript

-

13.

>
<

A symbol of type 16, 17, or 18 may contain any number of characters, but
the routine will save only the first 18 of these in SY2 - SY4. All symbols are
stored with characters packed to the left, and unused spaces in SY2 - SY4 are
filled with 77 codes.
Op
SY2

x

SY3

77
77

SY4

For example, if the symbol were XYZt SY2 - SY4 would be
u

Y Z 7
77 77

7

77 77

7

v
77777
77777
77777

SY2 is sent to A before exiting.
SY5 = Number of characters
SY6
SY7
SYIO
SYll
SY12
SY13
SY14

The rest of the outputs are:

= Number of decimal points
= Indicator; 1st character a letter
= Indicator; 1st character I, J. K L or
= Indicator; 1st character decimal point
= Indicator; symbol contains a letter
= Indicatori symbol is superscript
= Indicator; space was separator
t

M

or digit

where the indicator is 40 in operation portion of word if condition on right of
semicolon is satisfied.
This routine uses the Get Next'Character, Build Symbol, Fill Symbol, Get
Rest of Lower Symbol, Get Rest of Upper Symbol, and Delete Spaces routines as
subroutines.
(e)

Get Rest of Lower Symbol (RL)
This routine builds the symbol in SY2-SY4 until a separator for a lower

case symbol is encountered.

Reference:
RJ RL RLI

(f)

Get Rest of Superscript Symbol (RU)
This routine huilds the symhol in SY2-SY4 until a separator for a superscript

symbol is encountered.

Reference:
RJ

RU

RUI
305

(g)

Build Symbol (BS)

This routine adds the last character picked up by the Get Next Character
(GN) routine to the symbol in SY2-SY4. Reference:
RJ BS BSI
(h)

Fill Symbol (FS)

This routine fills the symbol in SY2-SY4 on the right with 77 codes.
Reference:
RJ
FS
FSI
(i)

Delete Spaces (OS)
This routine picks up characters until a character other than a space is

encountered.

It sets the indicator in SY14 if a space is encountered so the

Get Next Symbol routine (SY) will recognize the
RJ
OS
OSI
(j)

~.

combination.

Reference:

Send File Back to Combination List (TO)
This routine returns the file of a variable to the CB list when it has

been picked out of the CB list by the Get File from CB List (TA) routine. The
file is located at TA2 up to TA3l. The exact number of words in the file is in
the u address of TA47. The routine is necessary since a file may be altered
after adding it to the list.
(k)

Add file to CB List (TE)

The file of a variable is built in TF up to TF27 with the exact number of
words in both addresses of TF. When the file is complete this routine is
referenced and the file is added to the CB list.
(1)

Get File from CB List (TA)

The file of the variable in SY2 is picked up from the CB list and placed
in TA2-TA3l by this routine if the file is in the CB list. If RJ TA TAl is at
address Y, then the exit is to Y + 1 if the file is not in the list.

If the

file is in the list, the exit is to Y + 2.
(m)

Get Call Word from Pseudo Operation Dummy List (TS)
The pseudo operation heading translator makes up a list of dummy variables

in region OP. The list consists of the XS3 and the dummy call word of each variable which appears in the heading. This routine searches the list for the
variable in SY2 and if it is in the list the output is as follows:

306

TS2
TS3

= XS3

of symbol
= Call word in v address

If RJ TS TSI is at address Y, then the exit is as follows:
Y + 1, if variable is not in list.

Y + 2, if variable is in list.
(n) Send Call Word to Translation List (EW)
This routine transfers the contents of EW2 to the next available location
in the translation list (region WL). The word to go into the translation list
is sent to EW2; then the instruction RJ EW EWI is executed.
(0)

Increase 66XXX, 65XXX, 64XXX Call Word Counter (TK)
This routine is referenced before assigning a variable a 66, 65 or 64

type call word.

The counter is in VBl and is less than or equal to 777 •
8

The

counter is left in A and VBI so that 66000, 65000, or 64000 may be added to it
to obtain the proper call word.
(p)

Reference the routine with RJ TK TKI.

Increase Sentence Call Word Counter for 26XXX, 27XXX, or 22XXX Type Call
Words (XJ)
This routine is exactly like TK (above) except that the counter is in VB4

and A.
(q)

Reference is by RJ XJ XJl.

Print Error Heading (WA)
This routine prints the following on the typewriter:
SENTENCE ~ ~ X ~~ ~ (Y) ~ ~
where:

= sentence number from WLI (1-6 characters),
Y = type of sentence (IF, COMPUTE, etc.). First

X

six characters

from WL2 if more than six, otherwise all characters from WL2.
Reference the routine as follows:
RJ WA WAI If it is desired that the error routine (UZ) be
referenced.
RJ WA WA2 If the error routine (UZ) is not to be referenced.
(r)

Error Routine (UZ)
This routine should be referenced before each error print out.

It will

add up the number of errors and when a maximum of 25 has been exceeded, it
will print F4, rewind all tapes, and stop the computer.
After five errors in a single sentence F3 is printed, the rest of the
sentence is skipped and error checking on following sentences begins.
The Error Routine is referenced by the following instruction:
RJ

UZ

UZI

307

The sum of the errors per program is kept in UZ2, the number of errors
per sentence in U23.
(s)

Check Floating Point Constant (RB)
This routine uses the indicators in SY5-SY13 to check the constant for

errors F8, F9 and F7.
Check Fixed Point Constant (RD)

(t)

This routine uses the indicators in SY5-SY13 to check the constant for
errors F9, FlO, and Fll.
Print Text (UP)

(u)

Send the parameter to UP3 and perform the instruction:

RJ

UP2

UP

The parameter is of the form:

QQ
OP
where X

= address

!!.
X

N

of the first word of six XS3 characters and N is the number

of words in octal to be printed.

If OP

= 00,

the following will precede print-

ing:

If OP

1)

Set to print 8010 characters this line.

2)

Set to print spaces.

3)

Print 4 carriage returns.

= 40,

printing will continue where left off.

When 8010 characters have been printed and N is not exhausted, Print Text
will suppress spaces until a character other than space is encountered.

If

this character is a 77 code, this routine will pick up characters until a code
other than 77 is encountered.

If N is not exhausted by 77 codes or suppressed

spaces, it will:
1)

Print two carriage returns.

2)
3)

Print 1910 spaces.

4)

Set to print 6110 more characters this line.
Print the character.

If one wishes more indentation than 19 spaces, place a 77 code before the desired
number of spaces to be printed in excess of 19.
If N

= ° and

OP

= 00,

four carriage returns will be printed before the exit.

308

X can not be A or Q.

If X is an illegal address, an

The character count is in UW21.

sec

fault will occur.

It is counted down.

The routine assumes a manual jump instruction is at address O.
The routine leaves the Flexowriter in the upper case position.
The XS3 character> is printed "gtr" and < is printed "lsr" but the Print
Text routine only counts each as one character, when actually three are printed.
Hence, if too many of these symbols appear in one line of printing. the character
count of 80 will not be reached before printing runs off the right side of the
paper.

The alternative is to make the user of Print Text count three characters

instead of one for > and < •
(v)

Put Call Word in List of Referenced Sentence Numbers (RA)
This routine searches the list (12) for the sentence number in WLI and

if it is in the list, the call word of the sentence which is in WL3

is put in

the list following the sentence number.
The sentence numbers are put in the list when encountered by the VARY,
JUMP,
(w)

I~

READ and RESUME translators.

Translation Set-Up Subroutines (OT and UB)
When seven Uniservos are to be used for UNICODE, the MJI switch should be

set.

When only five Uniservos are used, this switch should not be set.
Routine OT puts 0

cleared.

3 0 in TN if the MJI switch is set.

Otherwise TN is

Parameters for the generalized tape handler are prepared initially

for the five.Uniservo

layout.

If the same Uniservo is used by a routine.

whether there are five or seven Uniservos available, no alteration is made on
the parameter.

If a different Uniservo is used in these two situations, addition

of TN to the parameter will ensure selection of the proper Uniservo.

This is

true because when a different Uniservo is used with seven Uniservos available,
there is a constant difference of 3 between the logical numbers of the two
Uniservos involved.
Routine DB puts the proper parameter word in WT, the Tape Write routine,
depending upon the assigned value to TN.
block of the string-out tape:

Also this routine writes the title

20 words of Z's; the title, String-Outs; and

the balance of the block in Z's.

309

RJ OT OTI and RJ UB UBI are the instructions needed for these set-up subroutines.
(x)

Write Translation List on Tape (WT or 55)
Instruction RJ WT WTl will cause a completed string-out to be written on

tape if no errors have been recorded in UZ2 previously.

A quick exit with no

tape action results when the Error routine has been referenced.
The routine divides the number of lines by 170 to determine the number
8
of blocks to be written and sets up the proper parameter for use in referencing
the generalized tape handler.
(y)

Put Referenced Sentence Number In List IZ (IX)
Region IZ, the list of line numbers and call words, may expand to 454

addresses.

8

Each line number in IZ is followed either by its call word in the

v position of the next address or by zero.
which keeps track of the size of IZ.
00 20000 00000 is put into 11.

In fixed location 11 is a counter

At the beginning of string-out

Each new line number added to the list increases

11 by 00 00002 00002.
To use routine IX, a referenced line number is first put into proper form
by sending it to the Line Number routine.

The line number in proper form is

then put into A and the routine is set into operation by RJ IX IXI.

First

list IZ is checked to see if the line number is already in the list. Ifit is
there, no further action is taken. If it is not in the list, it is added at
the end and the number in the subsequent address is cleared to zero.
As 11 is increased with each new number, it is checked to see if it exceeds
00 20454 00454.

If this happens, the following error print-out occurs:

- REFERENCED LINES EXCEED 150.

At the same time a return jump is made to the

UZ Error routine and all subsequent referenced line numbers, if not found in
the list, are used merely to increase a count of excess referenced line referrals contained in IX47.

A later subroutine EE of the End of Tape instruction

prints the number in IX47 if it is other than zero.
(z)

Excess-Three Decimal to Octal Routine (RS)
Input to this routine is assumed to be one line of six characters packed

starting at the left.

Numbers are positive integers varying from 0 to 999999.

Decimal fractions are not converted.

A non-digit character in the leftmost

310

position of the input line causes an early exit from the routine with the output line cleared to zero.
RS4 is the input line.

RS3 is the output line.

The instruction of entry

to the routine is RJ RS2 RS.
One reco region, RS, contains all instructions, constants, and workingstorage locations comprising the routine.

This region takes up 55 8 addresses.
Each character of the line of input is masked out and converted from
excess three. Before storing in a common line with other digits, it is checked
to see if it has a value below 0 or above 9.

Such a value causes a termination

of further assembly of characters and, if the count of digits is not zero, the
immediate beginning of octal conversion.
Before starting conversion, the number of digits is subtracted from six
and this difference multiplied by six to determine an initial shift of the line
of digits.
To obtain the index for the loop used in conversion, one is subtracted from
the number of digits.
The conversion-to-octal loop consists of a left Q-shift of the digit line
six places, an SP u 2 command, an SA u 1, and a Q-controlled-add masking
operation setting up the u of the preceding steps for the next loop.
(aa)

Excess-Three Decimal to Floating Point (GG)
The two lines of excess-three input are GG4 and GG5.

starting from the leftmost position.

Numbers are packed,

Positive numbers from .00000000001 to

999999999999 are permissible input to the routine.

Negative numbers may be

converted to floating point by complementing the floating point output.
number starts in GG4.

The output goes to GG3.

routine is RJ GG2 GG.
Three reco regions contain the routine.

Each

The instruction to use the

locations; CF
8
occupies 178 places; and CC, temporary storage, is in 278 addresses. Thus
236

8

GG takes up 170

addresses are needed for its operation.
Each line of input contains six excess-three characters.

number represents each character.

A 6-bit binary

If a character number is less than three or

greater than 12, it acts as an end-of-digits notice to the routine.

The one

exception to this notice is the number representing a first period (or decimal
point) occurring in the input lines.
All characters following an end-of-digits character are ignored by the
routine.

If no significant figures have preceded an end-of-digits number,

311

the output line is cleared to zero.

The routine converts to floating point

only the figures preceding an end-of-digits representation.
Zeros in front of a decimal point when not preceded by a figure greater
than zero are not counted as significant figures. Significant figures. whether
preceding or following a decimal point. are stored after subtracting three in
a set of consecutive registers and converted in a multipying loop to an octal
number stored in two address locations.
This number is divided by 10 to a power equal to the number of original
decimal figures following the decimal point. Before this division the dividend
is shifted left by the number of binary places needed to give a quotient of 10
significant octal figures. Special provision is made in the case of 11 figures
after the decimal point when the divisor lOll overflows a 36-bit register. If
no decimal point was among the original decimal figures. or if no figures
followed the decimal point. this division is bypassed.
In either case. the scale factor command is used in the routine to determine the size of the result and location of the first significant bit. The
number is rounded off to 9 octal places and shifted till it occupies the
positions i 26 ••••• i O in the output. It becomes the mantissa of the floating
point number with i 26 as its first significant bit.
The k of the scale factor command is used to compute the biased characteristic (b) as fOllows: (numbers are in octal)
If k = 45 t both the biased characteristic and mantissa equal zero.
If k > 45, b = k - 110 + 243 + (CC 6) - (CC 5).
I·f k < 45. b = k + 243 + (CC 6) - (CC 5).
(CC 6)

=1

or 0 depending upon whether a round off caused or didn't cause

a carry-over from the first significant bit.

(CC 5)

= shift

of dividend before

division.
(ab)

Assign Constant Call Word (GW)
To use this routine. put the input constant in A and give instruction RJ

GW GWI. Call-word output goes to Au and Qv •
If n of 0 2t n n in absolute address 10 exceeds 10008 t the Error routine
UZ is referenced and the alarm print-out occurs:

TOO MANY CONSTANTS.

The

computer does not stop. A count is kept in FX13 of the number of excess referrals to the routine beyond the maximum. Later an End of Tape subroutine
EA prints out this number if it is other than zero. Call-word number 67777 is
assigned to all constants beyond the maximum.

312

The counter for number of constants, 10, is set at 00 20000 00000 at the
start of translation.
(ac)

Tape Handlers (TH or GT)
There are two Tape Handlers, one for the 1105 and one for the 1103A. They
are essentially the same. The 1105 version operates in the Bypass mode only
but on either tape control unit as follows:

OFF
ON
The 1103A version ignores MJ2.
MJ2
MJ2

TCUl
TCU2

When the routine is entered, a parameter must be present in TH3. This
parameter is not destroyed so that consecutive references to accomplish identical
operations do not require that a parameter be sent to the routine for each
reference.

However, the general calling sequence is
TP
RJ

PM
TH2

TH3
TH

where PM is the address of the parameter.
The parameter has the following form:

R MT N N S S V V V V V
each letter representing one octal digit.
R specifies the operation desired:
R = 1 Rewind
R = 2 Rewind with Interlock
R = 3 Move forward
Move backward
R =4
R = 5 Read forward
R = 6 Read backward
R = 7 Write
R =0
Write ( spec i a 1 ca se, explained later)
M specifies blockette spacing (for write only)
M= 1
M= 2

0.0 inches

0.1 inches
1.2 inches
M= 4
T specifies block spacing and density (for write only)

313

=0
T =1
T =2
T =3
T

1.2 inches
1.2 inches

lower density
higher density

2.4 inches - lower density
2.4 inches - higher density

= number of blocks to be written.
MTNN = number of blocks to be read or moved.
SS = Uniservo number
VVVVV = High speed storage address for read and
NN

write. It specifies the
first location to or from which the first word on tape is read

or written. Thus, successive words on tape correspond to ascending
storage addresses for Read Forward and Write operations. In Read
Backward operations successive words on tape are read into descending storage locations.
If the number of blocks to be moved, read, or written is zero, the Tape
Handler will not cause a move, read or write, except in the case of R = 0 when
one block is written. Hence, it is suggested that R = 0 never be used in a
parameter.

There is a print-out and stop after six reads of a block in which

a parity

sprocket error occurs.

(ad)

~

Line Number Processor (LN)
A Line or Sentence number may be any positive, rational number which re-

quires at most three decimal digits to the left of the decimal point and at
most two to the right.

Every Sentence of a UNICODE Program must be numbered and

each Sentence number must be greater than the Sentence number corresponding to
the preceding Sentence.
According to the above definition, a Line or Sentence number need consist
of at most six characters (five digits and a decimal point).

Hence, if six

characters are allowed for each number and no further restrictions are made,
representation of those Line numbers which have less than five digits will not
be unique. To clarify this statement, consider the following possible representations of Line Number 1.3:
~
(

~
~

~

3

1

0

0

(

1

~

~

3

3
)

~

~

1

1
~

3 0

1

3
1

314

0

)

3

~

The purpose of this routine is to process all input Line numbers so that
each processed number can be represented in one and only one way.

This is done

in such a way that equality and threshold jumps can be used to make direct
comparisons of the numbers.
makes this possible.

The excess-three representation of decimal digits

Because six Unityper codes occupy one 36-bit word, these

comparisons can be single precision comparisons.
Definition of Legal Input to Line Number Processor
Input consists of the six Unityper characters which represent the Line
number.

Let these characters be numbered 1 through 6 from left to right.

To

be legal, an input Line number must obey the following rules:
1.
2.
3.
4.

No Uni typer codes other than those for ( ) b. . 1 0 1 2 3 4 5 6
7 8 9 may appear, (here f denotes the "Nonexisting character" whose
code is 77).
At most one "." code may appear (none is needed if the Line number is
an integer).
At least one non-zero digit code must appear.
An input Line number can not have more than three digits to the left
of the "." or more than two digits to the right of the "." regardless
of whether or not these digits actually contribute something to the
Line number (see examples below).

5.

The four characters (

)

~

• are all considered equivalent and, hence,

are all treated in the same way.

They are ignored (or discarded)

except that none of them can appear between the first and last digit
of the Line number.
Description of Output Line Numbers
The output Line numbers also consist of six Unityper characters.

The out-

put or processed Line number will, of course, satisfy the five conditions given
above.

In addition, it will satisfy the following requirements;

1.

Character 4 will always be the decimal point ".".

2.

In the integral part, only non-zero digits and zero digits which follow
at least one non-zero digit will appear.

3.

In the fractional part only non-zero digits and zero digits which are

4.

followed by at least one non-zero digit will appear.
The integral digits appear in character positions I, 2, 3 and the
fractional digits in character positions 5, 6.

315

5.

All character positions which are not filled with digits or a
fi lIed wi th space (fj) codes.

"

.

II

are

Hence, the effect of this routine operating on a Line number is to shift
if there is none), delete all unnecessary digits, and put

fj

codes in all unused

positions.
Examples:
Legal Input
Line number s

Corresponding Output
Line numbers

123~45

123 .. 45

023.40
003.00

Ll23 .. 4 Ll
LlLl3.LlLl

(tj,lLl~

LlLll. f!lLl

000.01
999.99

!J.LlLl.Ol
999.99

Illegal Inl2ut Line Numbers
A12.3Ll
0000.2

0127.9

1.23.Ll

.004LlLl

9~2.6

4321LlLl

.12000

Ll f:l f:l 0 Ll Ll

Two classes of Line numbers are taken care of by the Line number processor;
those occurring within a UNICODE instruction and those appearing in the lefthand margin in the first six character positions of a Sentence.
For both classes of numbers, the input number is put into LN4 and the outout number is obtained from LN3.
Operation of the routine for those numbers appearing within a UNICODE
instruction is called Case I and is done by instruction RJ LN2 LN.
Case II operation of the routine takes care of Line numbers in the lefthand margin. Instruction RJ LN2 LNI is used for this type of number.
In either case, if there is an error print-out. the output cell, LN3, will
contain the input Line number and the routine sets the error bit by instruction
RJ UZ UZI before the print-out.
Error I2rint-outs, Case I:

In this case the Print Error Heading routine,

316

is used to print the number and type of the sentence in which the illegal
Line number occurred. This is then followed by one of the four possible alarm
comments and the input Line number which gave rise to the alarm.
WAf

Examples of the four different alarm print-outs for Case I follow:
SENTENCE
SENTENCE
SENTENCE
SENTENCE

123.45
123.45
123.45
123.45

(VARY)
(VARY)
(VARY)
(VARY)

ILLEGAL CHARACTER IN SENTENCE NUMBER (ABCDEF)
EXTRA INTEGRAL DIGITS IN SENTENCE NUMBER (1234.0)
EXTRA FRACTIONAL DIGITS IN SENTENCE NUMBER (12.345)
ILLEGAL SEQUENCE IN SENTENCE NUMBER (1.2.3.)

Note that the length of the longest comment is 74 characters plus the number
required by the sentence name.
Error print-outs. Case II:
Because the Line numbers in the left-hand
margin are examined before the type of sentence has been determined. it is not
possible to use the WA routine to give the type of sentence. The illegal
sentence numbers are given twice as shown in the four examples below:
SENTENCE ABCDEF ILLEGAL CHARACTER IN SENTENCE NUMBER (ABCDEF)
SENTENCE 1234.0 EXTRA INTEGRAL DIGITS IN SENTENCE NUMBER (1234.0)
SENTENCE 12.345 EXTRA FRACTIONAL DIGITS IN SENTENCE NUMBER (12.345)
SENTENCE 1.2.3.

ILLEGAL SEQUENCE IN SENTENCE NUMBER (1.2.3.)

317

(8)
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE

Region Assignments of Translation Subroutines

TN20
GT21
TH21
UP421
UQ443
US453
UW513
WA537
WB563
BS603
CC630
CF657
CJ676
CT714
DG752
00757
DSIOOI
EWIOIO
FSI032
FWI061
FXl120
GGl134
GNl324
GRl377
GSl406
GUl444
GWl457
GXl475
HA1500
HBl541
IXl552
KAl622
KBl664
KKl723
LL2030
LN2037
MR2052
OT2146
RA2156
RB2172
RC2221
RD2237
RH2265
RL2316
RS2350
RU2425
RW2444
SY2466
SZ2530

Indicates 5 or 7 servos
1

J

Tape Handler

}

Print Text

}

Print Error Heading
Build Symbol

}

Constants
Translation Control
Part of Get Symbol
Delete Spaces
Send Call Word to Translation list
Fill Symbol
Switch List
Part of Constant C.W. routine
XS3 constant to floating point
Get Next Character

}
}

}
}

}

Get Next Sentence
Assign constant C.W
Part of Get Sentence
Part of Trans. Control
Referenced line no. to list
Constants
Part of Get Symbol
Line no. Processor
Set for 5 or 7 servos
Sentence C.W. to Reference List
Check Floating Point Constant
Part of line no. processor
Check Fixed Point Constant
Check Variable Type Symbol
Part of Get Symbol
Decimal to Octal Conversion
Part of Get Symbol
Rewind All Tapes
Get next symbol

318

RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE

TA2546
'IB2637
1D2654
TE2663
1F2702
TG2732
TK2742
TS2762
UA3005
UB3013
UC3033
UD3060
UM3065
UZ3067
VB3111
VD3116
VE3l22
VG3142
VH317l
VI3176
WS3203
WT3207
SS3207
XJ3225
XM3246
Z03263
ZS3267
BF3317
VN3507
WL3507
FC4000l
CB40l01
CL46101
VF47l01
IZ47246
JN47722
WR50023
DP50046
VL50200
FA50333
FB50407
FD50447
FE505l3
FF50545
FG50575
FH50624
FI50673
N:>50722
PA50752
CD5l007

}

Get File from CB list
Send File back to CB list

J

}

}
}

}

Add File to CB list
Increase 66, 65, 64 C.W. counter
Get C.W. from dummy pseudo OPe List
Part of Trans. Control
Setup Translation Tape
Part of Line no. processor
Part of Get Symbol
Part of Get Symbol
Error Routine
Variables
Close Vary File
Part of line no. processor
Send Translation List to Tape
Increase 26, 27, 22 C.W. counter
Part of Get Symbol
Part of Trans. Control
Part of constant call word routine
Read buffer
Translation List
F lex Codes
Combination List
Constant Pool
Vary File
List of Referenced Line Numbers
2nd lines of Pseudo operations
Rewind List of Referenced tape nos.
List of Pseudo OPe Dummies
Vary List

Error Texts

319

RE
RE
RE
RE
RE
HE
RE
RE
RE
HE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE
RE

OA32253
OC30223
OD31220
OE33753
OF30250
OG32423

OH32444
0130067
OJ30144
OK30030
OL30225
OM30052
ON30045
0033663
OP31050
004400
--c:----

OR4000
054566
OU4700
CP51075
RE53350
TL53573
LM55013
PS60766
KP61236
VY63661
RV66325
SJ66414
SP66560
EU66610
EZ67035
ST67107
YA67154
HE74530

Compute
Read
Type
List
Print
If
Vary
Resume
Jump
Stop
End of Tape
Exit
Start
Equation
Pseudo Ope Heading
Most Translators ....
Eq and List
If
Jump
Compute
Read
Type
List
Print
If
Vary
Resume
Jump
Stop
End of Tape
Exit
Start
Equation
Pseudo Ope Heading

3 ( n )
Where n = number
of words to transfer
from drum.

J i~~~~;;" addresses

320

"'t~r'tin(T

1st addresses
of Translators
on drum

(a)

Flow Charts of Translation Subroutines
(a)

Send translators
to drum (1338
blocks) 5033375600

Setup Translation Phase
Flex codes (FC)
to drum 4000140100

Read trans.
subs to core
21-3316

Dimension
translation to
core.
4400-5267

Setup
Subs

Jump to setups
for no dimension
5075

Move #5 fwd.
1 block

Jump to
dimension
translator
4400

Print: PASS I.
TRANSLATION AND
ERROR DETECTION

(b)

Translation Control (CT)

WI2

=

EQUATN
To start
trans.

Var. type

Yes

Sym?

No
To heading
trans.

Yes

No

Key word?

L...-_ _ _

~

To Eq.
trans.

To End
[ trans.

Var. type
symbol?
Yes
Sym
~WL2

In pseudo
o~?

Yes

WL3 =
22XXX

No

WL3 =
27XXX

To translator
for particular
sentence

(c)

Errors/Sent.
=0

Get Next Sentence (GS)

beginning of
blockette
Yes
Char. add.
+ 1

In last
blockette
No
Set Get Char.
routine

No

Sent. no. ]
to WLl
L--.--...r--

to ENE'!

trans.----.J
>

No

7

(d)

Get Next Character (GN)

Char. count
~

Ys

120?

Yes

Shift

=6

Yes

=BF

+

1

No

Shift word
blockette
count + 1

+

add.

Char. count

~---.......

Char.

Char.

add. + 1

No
Shift + 6

blockette
count ~ 5?

t--_~Char.

by 6

add.
1

Char. count
= 6

Char. add.
+ 1

Clear
shift
No

Clear errors
per Sent.

(e) Get Next Symbol (SY)
No
\0------:::..1

Superscr~

Clear
SY2-SYl4

Previous sym.
~S12-SZl4

digit~

Yes
6..~

output

dec.
+ 1

~~~

Yes

pOintsl

No
dec. points

+

1

Set constant
indicator

Set constant
indicator I E - - - - - - J

Set superscript
ind.
~--------------------------------------~
Yes
Superscript
- or I ?

No

Set super-J
script Ind.

It J. K, L

or M?
Yes
SymbOl]
Set Ind.

~A

~

(f)

Get Rest of Lower Symbol

(RL)
o

No. of char.
>17

Yes

Separator?
Yes

(1)

The Get Rest of Superscript Symbol (RU) is the same as above except that the characters
which are separators are somewhat different.

(h)

Build Symbol (BS)

Add character
at GN4 to Symbol
in SY2 - SY4.

(i)

Fill remaining
characters of
SY2 - SY4 with
77 codes

(j)

Char. in A
= l:l ?

Fill Symbol (FS)

~~E~

I_ _

Delete Spaces (OS)

Yes

Set II ind.

1-----..::;.(

---

) NOSW

(k)

Set up RP
inst.
(1)

Send File Back to Combination List (TO)
Transfer
TA2 - TA(n)
Set up add.
to CB list
in CB list
Add File to CB List (TE)

No

CB list
full?

r-----------------~

Yes
Previous
Print?

No

Set Ind. of
print

Transfer
TFI ... TF(n)
to CB list

(m)

Get File from CB List (TA)

Transfer file
'\---::.t

(SY2)

~

A

(n)

Yes

In CB
Ii st

to TA2 - TA31
Exit + 1

No

-V

Get Call Word from Pseudo Operation Dununy List (TS)
XS3

In Pseudo
Op?

~

In List?
No

Yes

~

TS2

CW ~ TS3
Exit + 1

(0)

Send Call Word to Translation List (EW)
Send (EW2)

\---~

Add. in list

+

I

List

No

full?
Yes
Previous
print?
No

Set ind. of
print

Add. in list
- I

to next address
in WL list

(p)

Increase 66XXX, 65XXX, 64XXX

Call Word Counter (TK)

(VBl) + I
~(VBI)

Yes
Previous
print?
No

Set print
ind.

and A

(q)

Increase 26XXX. 27XXX, 22XXX

No

=

Yes
Previous
print?
No

Set print
ind.

Sentence CW Counter (XJ)

(VB4) + 1
~ VB4 and A

(r)

Print Error Heading (WA)

Sent. No. (WLl)

WB3
WAI = RJ UZ UZI

4
'---~

(WL2)

=

COMPUT?

= ~~

(WL2)
DlMENS?

.~

(WI.2 ) -? WB5

Yes

Yes
WB5

= EQUATI

WB6 = ON 7-1

WB5
WB6

= COMPUT
= E 7-7

Yes
WBS = DIME~
WB6 = ION

:J-J

(s)

Error s/Prog.
'r---~

+

1 (U12)

Error Routine (U2)

More than
25?
Yes
Print F4

No

Errors/sent.

+

1 (U23)

More than
5?
Yes
Print F3

Clear
Errors/sent.

(t)

Check Floating Point Constant (RB)

o. of char.
> 12?

I---~

(u)

Check Fixed Point Constant

(RD)

Contain a

of
>

Yes

Yes

Yes

Contain a
letter?

6?
Yes

points?
Yes

letter?
Yes

(v)

of char.
> 6?
Yes

Check Variable Type Symbol

dec.
point?
Yes

(RH)

Key
word?
Yes

(w)

Print Text (UP)
Word to
working sp.

Par. = 00
or 40

All words
printed?

~~

Ye~

00

Set?

Set to print
80
char.
10

No

Cleal Ind.

Print 4
carr. rets.

Yes
No
No

Set Ind.

eCha~?

T
Print CR CR &
19 spaces

8lst char.?

No

6 char.
printed

Yes
6

~---~

Print char.

Set to pr int
80
10 char.

I

Yes

(x)

Put Call Word in Sentence Number Reference List (RA)

Sent. no.
in list?

Yes

Sent. no. CW
from WL3 to
Ii st.

No

(y)

Rewind All Tapes (RW)

5 Servos?

NO

Rewind
1 - 7

Yes
Rewind
1 - 5

(z)

Tape Handlers (TH) 1105 and 1103A
Yes

Set servo no.
and tape bi t

Code word
~VV

No

Yes

Yes

Set index
code word-::;'VV

Read fwd
(bwd)

Build
Write code
Yes

Read, Write

EF

0

VV

Move N
blocks

Write N
blocks

Read b~~

(fwd)nol~
Move fwd
(bwd) 1 blk

No
Yes
Read f\l~
(bwd) }~

No

Read bwd
(fwd) low

Print out
and stop

Yes
Read bwd
(fwd) high
Read fwd
(bwd) low

Yes

(aa)

Routine To Set TN Indicator for 5 or 7 (MJl) Uniservos (OT)

Puts 0000003 00000 into
Is MJl set?

Yes

indicator TN to show
that 7 Uniservos are
to be used

No
Puts zero into indicator
address TN to show that
only 5 Uniservos are
to be used

Routine To Write Title Block of String-Out Tape and Select Proper Parameter for
WT Tape-Write Routine Depending on Value in TN or Availability of 5 or 7 Uniservos (UB)

Using indicator TN,
inserts proper paramete
into WT Tape-Write
Routine so String-Outs
will be written either
on Tape 3 or 6

Fills first blockette of title block
wi th lines of Z's

Puts String-Out:s
on first 2 lines of
2nd blockette of
title block

Fills remail:Jder
of title block
with Z lines

~.-------,

Writes title block
on tape via tape
handler GT

(ab)

Has error
routine been
referenced?
Yes

Translation Tape Write Routine (SS or WT)

No

Calculate no. blocks
from no. lines in
routine. (1708 lines
= 1 block)

Make up parameter
for gen. tape
handler

Reference generalized
tape handler to write
string-out on tape

(ac)

Put Referenced Sentence Number Into List 12 (IX)

s line number
reference
list
Yes
Is line number
reference
list
No
Up count of
excess
referrals

No

Up counter 11
of referenced
lines

Yes

Yes
Start count
of excess line
no. referrals

Yes
Error Print-Out:
Referenced Lines
Exceed 150

Clear subsequent
line in list

Reference
error
routine

Add line number
to next position
in list

(ad)

Excess-Three Decimal to Octal (RS)

Clearing and resetting
working storage

Conversion
from excess 3

Checking for end
of digits signs
Yes

Counting and accumulating digits in one
line
Computing and performing initial
shift on di its
Computing index
of octal conversion
Jump to
exit

Decimal to octal
conversion

No

(ae)

\7

I

Excess-Three Decimal to Floating Point (GG)

Output

I

EJ c:J

Clear and set
storage elements

,~

Conv ert from excess
3, c ount, and store
inte gral portion of
input
Con vert from excess
3, count, and store
fra ctional portion
of input

MJ

Conv ert decimal
numb ers to oetal via
mult iplication and
divi sion

--

""'"-

Add biased characteristic and
mantissa and store
in output

~

Compute biased characteristic and
mantissa

-

(af)

Assign Constant Call Word (GW)

CD
s length of
constant list
1000?

Is constant
in list?

Obtain position
~~~
of constant
in Ii st

Yes
Is constant
in list?

Yes

r---------------~

Add base number
66777 to this
ordinal position
to get call word
for constant

Obtain position
constant
in list.

Put call word
output in Au
andQv

~~------------------~of

No
Up excess
count of
referrals

Giving the fixed
ca 11 word 67777 to
all excess constants

Up count in 10 of
length of
constant list

Add constant to
next position
in list
No
Print-Out:
Too Many
constants
Reference
Error
Routine
Start excess
count of constant
referrals

Obtain ordinal
position of
constant

(ag)

Are there any
unclosed items
in vary file?

~

s current sentenc e
no. > sentence no. in
last unclosed item
of vary file?

Insert call word of
current sentence in Uportion of word at
address given by TempI

(y) -+ a
(y)

Close VARY File (VE)

{3

Insert call word given
by (0:')+1 (V-portion) into U-portion of word at
address given by temp 1
Close last file
in variable
list

Close Vary File item by
inserting "Jump" flag
in word at address given
by Temp 1

Close Vary file item by
inserting "Resume"
flag into word at addre~
given by temp 1

Record address
given by (a)+l into temp 1

Decrease
(a) by two

Is current sentence
number> sentence number
at addre ss given by (~)?

Is word at addressN0
given by (a}+l
8
flagged?

(0) =

({3)
(y)

address of last unclosed item in vary
file.

= address
= address
file

Close Vary File and Variable List

Set index to
number of
"with" words

first unclosed item in vary file
for inserting next item in vary

To what class does this

Ilenotp Switch Sl'ttings.

Heading Alarm Tag

ALAHM PHINT ENTHIES

[' ~ I j ,

[

'n I l' r i

i>flnt ln~~

Ifr

nt

Th.,

rOil tIn j

1S

;ll;Hm

1 17
< 17 t

}
}

Upper case ~ RL23
No ~
Other separator ~RL23
No ~

KKO

RL21

---:.
IH ') 1
,.
.I.1.L...I-...L

KK51
GN4
GN4
KKI04
0
KK57
0
SY6
0
FSO
0
GNO
20015
KKI
20015
KK60
RL60

A
RL17
A
RL17
RLI
SY12
RLl
KK53
RLl
FSl
RLO
GNI
RL30
RL23
RL25
RL23

14 ~ A
Not a digi t

~

RL25

~

RL17

~

RL17

3~A

Not a digi t
Set a letter

No. Pts + 1
F ill symbol
Exi t
Get char.

}

Separator ~ RL23
No. ~ RL25

366

digit ~

Get rest of upper symbol

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16

IA
MJ
RJ
TP
TJ
RJ
EJ
RP
EJ
RJ
MJ
RJ
RP
EJ
RA
MJ
CA

RUO
0
BSO
KK75
SY5
GNO
KKI
20012
KK2
FSO
0
GNO
20012
KKI
SY6
0

(30000)
BSI
A
RU12
GNI
RUlS
RUIO
RUI
FSI
RUO
GNI
RUIO
RU12
KKS3
RU1

IA

MJ
MJ
0
0
TP
EJ
EJ
TU

LQ
TP
TV

QS
RA
RA
MJ
TP

TP
MJ
TP
TP

MJ
CA

}

17~RU12

no ~
Get char.
Upper . ~ RU15
Upper digi t ~ RUI
Fill symbo 1
Exit
Get char.
Pts. + 1

RU17
( g)

0
1
2
3
4
5
6
7
10
11
12
13
14
IS
16
17
20
21
22
23
24

}

Exit
Build symbol
Char. count >

BSO
0
0
0
(SY2)
SYS
KK76
KK77
BS3
(30000)
KKS2
BS3
GN4
BS2
SY5
0
KKIOO
KKS4
0
KK101
KKS4
0
BS2S

(30000)
BS4
(0)
(SY2)
A
8S17
BS22
BSI0
6
Q
BS13
(30000)
KK76
KK53
BS
BS3
BS2
BS7
BS3
BS2
BS7

Build Symbol

}

}
}

Exit
Start
Shift
Address of word SY2 - SY4
Char. count = 6 ~BS17
= 12 10 ~ BS22
Left shift by 6

Mask ~Q
Char. ~ sym.
Shift + 6
Char. count + 1
Exit
Set for 2nd word
Clear shift
Return
Set for 3rd word
Clear shift
Return

367

(h)

IA
0
1
2

MJ

oJ

I:J

W

4

LQ

5
6
7
10

TP
IV

11

12
13
14
15
16
17
20
21
22
23
24
25
26

TP

EJ

QS
RA

EJ
MJ
TP

EJ
EJ
TP
TP

MJ
TP
TP

MJ
TP

EJ
MJ

CA

FSO

(30000)
0
A
BS2
KKI02
FS13
BS3
FS4
(30000) 6
KK52
Q
BS3
FS7
(30000)
KK52
KK76
BS2

,
J

}

IA
MJ
EJ
MJ
TP

RJ
EJ
MJ
CA

Exit
Start
Shift = 36 ~ FS13
Shift word by 6
Mask ~Q
77 fill
Shift + 6

KKI02

FS24

Shift

0
BS3
KKI03
KKIOO
KK54
KKI03
0
KK56
KK56
0
BS3
KKIOl
0
FS27

FS4
A
FS21
FS22
BS2
BS3
FSO
SY3
SY4
FS16
A
FS16
FS14

Return

DS
0
CJ13
0
KK57
GN
KK60
0
DS7

= 36

-7

FS24

1st word ~
2nd word ~
Clear shift
Set for 1st word
Exit
Fill 2nd word
Fill 3rd word

}

3rd word
No

(i)
0
1
2
3
4
5
6

Fill Symbo 1

(30000)
DS3
DS
SY14
GNI
DS4
DS

~

~

FS16

FS14

Delete Spaces
Exit
DS3
No ~ exit
Set ~ ind.
Get next char.
~ ~GN
no ~
Exit

~ ~

368

(j)

Constants

SY, BS, FS

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52

IA
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

KKO
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

22
62
60
61
40
20
41
35
55
75
36
57
00
15
24
25
26
27
30
31
32
33
34
44
45
46
47
50
51
52
53
54
65
66
67
70
71
72
73
74
02
14
77

.

~

\Y

~
~

~

W

'-.{y

\]/
~
~

"-::/
\j/
A
B
C
D
E

F
G
H

I
J
K
L
M
N

0
P
Q
R
S
T
U
V
W

X
Y
Z

369

53
54
55
56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76
77
100
101
102
103
104

0
0
01
77
40
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
CA

0
0
22777
77777
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
SY3
SY4
0
SY2
0
KKI05

1
0
77777
77777
0
01
63
02
56
64
23
21
42
76
16
37
17
43
21
6
14
SY3
SY4
44
SY2
03

6.
D

+

*
/

=
>
<

(
)

17 10
12 10

370

(k)

a
1
2
3
4
5
6

IA
MJ

LQ
TV

TP
QS
RP
TP
CA

TO

a

rA3l
Q

(30000)
25

1
2
3
4
5
6

7
10
11
12
13
14
15
16

a
1
2
3
4
5
6
7

IA

MJ

MJ

a
a

1D6

Q
TA47
ID5
(30000) ID
(30000)
TA2
107

a

TF

TP

TB4
TE3
TE

UZ
WLI
FH22
UP2
TB5

a

MJ
CA

TE17

IA
TV
TP

TG
TE2
TB6

QS
TP
QA
RA
RP

TF

TP

CA

~

list

Add File to CB List

(30000)
TE4
(30000) (30000)

SA
TJ
TP
QJ
RJ
RJ

Exit
File

TE

TE2

TP

}

a
a

SP

TP

Exit

1B6

(1)

a

Send File Back to CB list

CB
TF

a
a
a

TG
Q
TEll
UZI
FH46
UP3
UP
TE3

}

OK~TG

}

}

TE2
(30000) TE
(30000)
TFI
TGIO

Prev. print
No ~

no ~
~exit

F15
Set ind.
Exit

TE

TG7
Q
TG6
A
CB
TF

Exit
Start
Next add. in CB list
Ind. of prev. point
Increase address

}
}
}

Set 1st address
Set repeat
Set CB for search
Increase address
Exit
Send file to list

371

(m)

0

1
2
3
4
5

IA
MJ
MJ
CA

TA
0
0
TA2

RJ
MJ

TA
0

TAl
0

M.J

0

0

(30000)
TA32

Exit

(

I

TA32
CB
W
TP SY2
RP (20000)
EJ
CBl
LQ Q
TP CB
ST Q
AT 1132
RS
TA46
TA46
1U
RA
TA
RP
30004
0
0
(0)
0
TP
1137
TP
TA4
11310
QT
EJ
11310
11311
QT
EJ
11312
0
MJ
TA46
TO
RA TA63
RA TA47
RP
30002
TP (30000)
11]
TA46
RA TA70
RA TA47
RP
30023
TP (30000)
CA TA71

not in list
in list

Drum add. in u if from dim.
XS3 of sym
CW

J

31
IA

32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56
57
60
61
62
63
64
65
66
67
70

Get File From CB List

TA34
A
TA

TA36
17
A
A
TA46
1133
TA31
TBl
TA50
0
0
TA47
Q

A
TA57
A
TA64
TA
TA63
1137

}

}

Store address
Set up repeat
Sym ~A
No tin 1i s t ~ ex i t
In list ~
Set up address
Store address
Set exit for "in list"

}
}

nn4

TA
TA6
TA70
TB7
TB13
TA
TA6

Format etc.
TA5 - TA31

}

TP CB+
TA2
No. words in file
No. words = 4
CW
CW

=
=

77XXX
4XXXX

~
~

TA57
TA64

Exit
77XXX
Set add. from CB list.
Count + 2
--+ Exit
2 more wds ~ output
4XXXX
Count + 1910

}

19 10 more words

372

~

output

Constants

0
1
2
3
4
5
6
7
10
11
12
13
14

IA

m

RP

0
TA23
1
0
CB
TA2
1
0
CB6000 CB6000
0
0
7777
0
4
0
77000
0
70000
0
40000
0
23
0
0
2
IB15

0
TP

0
0
40
0
0
0
0
0

0
0
CA

Max. of CB list + 1
Ind.
Mask

373

(n)

Get CW From Dummy P.O. Li st
y
y +
y +

0
1
2
3
4
S

6
7
10
11
12
13
14
15
16
17
20
21
22

IA
MJ
MJ
0
0
0

TS TSI
(not in list)
(in list)

1'5

0
0

(30000)

0

0
(0)
0

0
0

TSS

TP

154

Q

QJ

TS7
SY2
20132
DP
TS21

TS
A
TS
TS12
0
17
TS17
TS20
TS
0
1
20131
TS2

TP
RP
EJ
SP
SS
AT
RA
RP
0
0
0
TP
CA

RJ
1
2

Q
TS22
TS

30002
0
0
0
DP
TS23

l

J

}

Exit
Start
XS3
CW
Indicates within P.O.
Not in P.O. ~ exit
in ~
Sym ~A
Not in list ~ exi t
in ~

}

r - 1 ---+ Au

}

Set exit for in list
Exit
File --7 output
J

N- 1

374

Translation Variables

0
I

2
3
4

0
I

2
3

IA
0
77
77
77
77
CA

VB
0
77777
77777
77777
77777
VB5

IA
0
0
0
TP
CA

VD
0
0
0
KAI

37700
77776
77776
77776
77776

Next P.O C. W.
Next 66. 65. 64 C.W.
Not used
Next Dummy in Equation
Next stm't C.W. 26. 27. 22

0
0
0
GN2

No. of STARTS
EXIT indicator
Index

VD4
Explanation of Temporary Build File Area

1F

0
1

2

0
0
0

(0)
(0)
0
0
(0)
0
Words 1F3 - 1F27

No. of word s in file
XS3 of symbol
C.W.

}

Formats. etc.

375

Ca 11 Word

(0)

0
1
2
3
4
5
6
7
10

IA
MJ
MJ
0
0
0
RA
TJ
TF
QJ

II

n"

12
13
14
15
16
17
20
21

nT

TP
RJ
TP
RS
MJ
TV
TP

MJ
CA

EW
(30000)
0
0
EW5
)
(0
0
(30000) (30000)
0
0
EW3
CJ7
CJI0
EW17
EW4
Q
EW15
EWll
,.,,'
nR

FI
UP2
CJ2
EW3
0
EW3
EW2
0
EW22

"lA'
VVl-\.1

UP3
UP
EW4
CJ7
EW
EW20
(30000)
EW

7

10
11
12
13
14
15
16
17

IA TK
MJ
0
MJ
0
0
0
TP VBl
TJ
CJ3
TP 1K2
QJ
TK
RJ
UZ
TP WLI
TP
SY2
TP FD16
RJ
UP2
TP
CJ2
MJ

0

RA
MJ
CA

VBl
0
TK20

J

}

Translation Li st

Exit
Start
C.W.
Address of last C.W.
Ind. one print-out
Add + 1
OK ~ EW17 no ~
Prevo print ~ EW15
No "
F16
Set bit
Add - 1
Exit
CW ~ string
Exit

Increase 66, 65 64 Call Word Counter

(p)

0
1
2
3
4
5
6

}
'\

~

(30000)
TK3
0
A
TK16
Q
TK7
UZI
FD43
FD36
UP3
UP
TK2
TK
CJl
TK

}
}

}

Exit
Start
Indicator
OK ~TK16
No iPrevo Print
No ~
Error
F6
Set indo
~exit

CW + 1
Exit

376

~

exit

(q)

0
1
2
3
4
5
6

7
10
11
12
13
14
15
16
17
20

IA
MJ
MJ
0
0
TP
TJ
TP
QJ
RJ
TP
TP
RJ
TP
TP
MJ
RA
MJ
CA

Increase Sentence C.W. Counter (Output-A or VB4,)
26, 27, 22

XJ
0
0
0
0
VB4
XJ3
XJ2
XJ
UZ
WLI
FD
UP2
VB4
CJ2
0
VB4
0
XJ21

(30000)
XJ4
0
777
A
XJ17
Q
XJI0
UZI
FD15
UP3
UP
A
XJ2
XJ
CJl
XJ

}
}

}

Exit
Start
Indicator
Constant
OK ~ XJ17
No -f
Prev. print
No ~
Set error
F5
CW ...-+ A
Set ind.
Exit
CW + 1 --+ A
Exit

377

~

exit

(r)

0
1
2
3

4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23

IA
MJ
RJ
TP
TP
TP
TP
EJ
EJ
EJ
EJ
TP
RJ
MJ
TP
TP
MJ
TP
MJ
TP
MJ
CA

WA
0
UZ
WL1
Wl2
A
WB10
WB15
WB11
WB16
WB17
WB
UP2
0
WB11
WB12
0
WB13
0
WB14
0
WA24

(30000)
UZ1
WB3
A
WBS
WB6
WA15
WA16
WA20
WA22
UP3
UP
WA
WB5
WB6
WA12
WB6
WA12
WB6
WA12

Print Error Heading
RJ WA WAI Set Error
WA2 Don't Set Error

Exit
Set error
Line number

}

}

Sentence type ~ A ~ fi Ie
Fill
E Q U A T N
E Q u A T I
C 0 M P U T
D I M E N S
Print heading
Exit
Load E Q u A T I
0 N 77 77 77 77
E

77 77 77 77 77

I

0 N 77 77 77

Constants
IA

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17

0
65
26
0
01
0
0
43
77
30
51
30
34

30
26
27
CA

WB
WB1
30506
30010
0
01011
0
0
01017
77777
53672
50777
77777
51507
53672
51475
34473
WB20

7
63050
17777
0
77777
0
0
77777
77777
46634
71777
77777
77777
46650
26766
05065

S E N T E N
C E !J. !J. 77 77
Line U
!J. !J. !J. ( 77 77
)

!J.

!J. 77 77 77

77

fill
E Q u A
0 N 77 77
E 71 77 77
I 0 N 77
E Q u A
C 0 M P
D I M E

378

I
77
77
77

T
77
77
77
T

N

U
N

T
S

(5)

0
1

2
3
4
5
6

7
10
11
12
13
14
15
16
17
20
21

IA
MJ
MJ
0
0
RA
TJ
RJ
TP
TP
RJ
MS
RA
TJ
RJ
TP
RJ
TP
MJ
CA

UZ
0
0
0
0
U72
CJ14
RW
WLI
FB15
UP2
0
UZ3
CJ15
WA
FB
UP2
UW
0
UZ22

(30000)
UZ4
0
0
CJl
UZ13
RWI
FB37
UP3
UP
UZ
CJl
UZ
WA2
UP3
UP
UZ3
CT

Error Routine

}

Exit
Start
No. of errors for entire project
No. of errors this sentence
Errors + 1
O.K. ~ UZ13 no ~
Rewind tape
F4
Stop on exi t

}

Too many errors

+no~exit

F3
Clear errors/sentence
~ Control

379

(t)

TI\

.Ll"l

o
1

2
3
4
5
6
7

MJ
TP
TJ
RJ
RP

12

TP
TP
RJ
TP
TJ
RJ

13

RP

14
15
16
17
20
21
22
23
24
25
26

TP
TP
RJ
TP

,10,
.L.L

QJ
RJ
RP

Check Floating Point Constant

DO

UU

o
SY5
CJ4
WA
30003
SY2

FE
UP2
SY6
rv..,T~
v

WA
30003
SY2

FE17
UP2
SY12
RB21
WA
30003

TP
TP
RJ
MJ

FF
UP2

CA

RB27

SY2

o

(30000)
A

RBI0
WAI
RB6
FE14
UP3
UP
A
0017

UU.L I

}

}
}
'"

WAI
RBIS
FE27
UP3
UP

}

Q

}

RB
WAI
RB24
FF7
UP3
UP
RB

}

Exit
Start
No. of char. > 12

~

no ~ RBI0

F7

No. pt S >

1

t

no ~ RB17

F8

Contains a letter ~ no ~ exi t
F9

Exit

380

(u)

0
1
2
3

4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25

IA
MJ
TP
TJ
RJ
RP
TP
TP
RJ
TP
ZJ

RJ
TP
TP
RJ
TP
QJ
RJ
RP
TP
TP
RJ
MJ
CA

RD
0
SY5
CJ6
WA
30003
SY2
FF12
UP2
SY6
RD12
WA
SY2

FG
UP2
SY12
RD20
WA
30003
SY2
FF
UP2
0
RD26

Check Fixed-Point Constant

(30000)
A
RDI0
WAI
RD6
FF25
UP3
UP
A
RD16
WAI
FGI0
UP3
UP
Q
RD
WAI
RD23
FF7
UP3
UP
RD

Exit

}

No. of mar. > 6 ~ no --+ RDIO

}

FlO

}

No. pts. > 0 ~

}

Fll

}

Contains letter ~ no ~ exi t

}

F9
exit

381

no ---+ RD16

(v) Check Variable Type Symbol

IA

RH

0

MJ

0

1
2
3

TP
TJ
RJ
RP
TP
TP
RJ
TP
ZJ
RJ
TP
TP
RJ
MJ
TP
RP
EJ
RP
EJ
RJ
TP
TP
RJ
MJ
CA

SY5
CJ6
WA
30003
SY2
FGll
UP2
SY6
RH12

4

5
6

7
10
11
12
13
l4
15
16
17
20
21
22
23
24
25
26
27
30

A
RHIO
WAI

}
1

RH6

FG24
UP3
UP
A
RH17

WA

t.T" ,

SY2
FH
UP2
0
SY2
20023
KB
20004
KB33
WA
SY2
WB15
UP2
0
RH31

FHI0
UP3
UP
RH
A
RH22
RH24
RH
RH24
WAI
WB20
UP3
UP
RH

IA

0
0
40
0
0
0
0

0
0
0
71
0
0
0
CA

CJ
0
0
0
0
0
0
0
1
WL250
0
0
0
0
0
CJ16

No. of char.

~

> 6

no

~RHIO

F12

J

}

Contains a point

~

no

~

exi t

\

Wi\,!

J

}
}

F13
Exit

Key word

+no

~exit

F19
Exit

(w)
0
1
2
3
4
5
6
7
10
11
12
13
14
15

Exit

(30000)

0
1
0
777
15
2
7
1
WL250
170
WL
01
31
5

Constants
Zero
One
Indicator
RCO
RC1
RC2
Limit of string
Wr it e @0 in

&

128 lines/in

6

Errors/prog.
Errors/sentences

382

(x)

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21

0
1
2
3

4
5
6
7

0
1
2
3
4
5
6
7

IA
MJ
0
MJ
0
TV
TV

TP
TV
MP

TP
TP
TU
PR
TP
QJ
TP
RP
PR
CA

IA
RJ
RJ
PR
MJ
RJ
RJ
PR
MJ
CA

IA
0
RA
TP
IJ
PR
MJ
LQ
QT

Print Text

UP
0
UP4
30000 (30000)
(30000)
0
(30000) (30000)
UW1S
UQ
UQ3
UQ4
UW20
UW
UW20
UP3
UW3
UW20
UW20
A
US
UW13
US
UP3
0
UW7
UP3
Q
UP17
US
UW4
UW21
US
4
0
UW11
UP22

UQ
UQ
UQ4
0
0
UQ4
UQ
0
0
UQ10

(30000)
US25
UW7
UQ5
(30000)
US25
UW10
UQl

US
(30000) (30000)
US
UW2
UW5
002
USb
UW20
0
UW7
UP2
0
6
UW23
UW6
UW16

Start

}

}
}

Exit
Par.
Set up switch to UP
Set up N counter
6 char. word pick up
Shift up
Q
00 ~ 40 ~US
Counter = 80 10
4 cr's
Par.~

}

DOWN
Exit
Shift up

Up-down
switch

UP
Exit
Shift down

Six char. pick up
Modify pick up
Set up 5 count
N counter
Shift up
Exit
Uni typer code ~ Q
~A ---+OW1h

383

10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32

II ' s
77's

33
34

35
36
37

0
1
2
3

4
5
6

7
10
11
12
13
14
15
16
17
20
21
22
23

EJ
EJ
TV

1J
TP
PR
PH
RP
PH
SP
AT
0
SJ
LA

SS
PH
SS
ZJ
1J
MJ
TP

ZJ
TV

MJ
CA

1A
0
0
0
0
0
0
0
0
0
0
0
TP

UW1
US34
UW6
US36
US35
U537
UW21
US21
UW17
UW21
0
UW11
0
UW11
23
US12
0
UW12
mV16
17
UW14
U523
(30000) (30000)
UQ
UQ4
A
3
A
6
0
A
A
6
US32
US27
US3
UW22
0
us
OW21
A
US12
(DS32)
US17
US35)
0
US32
US40

SP

UW
0
0
1
0
0
0
0
0
0
0
0
(30000)
Fe

0
0
0
0
0
0
0
CA

0
0
30000
30000
30000
30000
004

0

0
1
0
6

120
5
77
47
57
45
4

UW23
44
UQ6
0
75
30000
30000
30000
30000

}
}

~ ~US34
No ~
77 ~ US36
Test for suppress
80 counter
Char. count = 66 10
CR. CR.

19 spaces
XS3 ~

}

}
}
}

Au

Codes

~A

Codes

~

shift 44 0n

posi tion

Print codes
Loop
5 count
~ new word
81st ~ no ---+ US12
Or~US/~

Print

~ 's

Zero
1 in V and ~ code
1 in u
6
8°10
5 counter
Mask and 77 code
Shift up
Shift down
Carriage return
Space code
Pick up dummy
Flex pick up dummy
Set switch
XS3 of char.
61 10
N counter
80 counter
5 counter
Work space

384

Sentence CW to Reference List 12

(y)

0
1
2
3
4
5
6
7
10
11
12
13

IA
MJ
TP
TU

RP
EJ
SN

SA
LT
AT
(0
MJ
TP
CA

RA
(30000)
0
WLI
A
11
RA3
(20000) RA
12
RA5
17
Q
11
25
0
A
RA13
RAIl
0)
0
0
RA
WL3
12
RA14

(z)

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21

IA
MJ
MJ
20
20
0
0
0
0
TP
TP
TP
ZJ

RA
TP
RJ
RA
IJ
MJ
CA

RW
0
0
1
1
1
0
0
0
RW3
RW6
TN
RW14
RW5
RW2
TH2
RW2
RW5
0
RW22

Exit
Line no.

}

~A

Not in list
In list -¥
11

=0

j

Sentence CW

~

n
~

Exi t
n
list

~Exit

Constant

Rewind all tapes

(30000)
RWI0
0
0
0
0
4
2

RW2
RW5
A
RW15
RW7
TH3
TH

RW4
RW15
RW

}

}
}

Exit
Start
Parameter
Set up parameter
Modifier
Index
Set index
Set parameter
Set index
5 servo s ~ RW15
7 servo s ~ RW14
Increase index
Rewind tapes
Change parameter
Return
Exit

385

(aa)

TH21

1105 Tape Handler Regions

IAIOO

Control Region
Exit
Rewind
Ignore Address

WHIOI

Bui ld Wr i te Code

WWl13

Write
Read Subroutine

EX70

RW73

RRl25
REl43
RF206

Reread If Parity Error
Read Forward

RB214
RW222

Read Backward

MF227

Move Forward

MB240
PC242

Move Backward

WE263

Constants

CC274
CE334

Constants

Rewind Region (Redundant - Not Used)

Print

VV375

Constants
Constants
Constants
Temporaries

CR402

Check for Zero Blocks

CF352
CD365

386

(ab)

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46

IA
MJ
MJ
MJ
0
MJ
TP
EF
MJ
MJ
TP
EF
TP
RP
QS
EF
TP
QT
LT
TP
AT
TV

RJ
QT
TP
EJ
EJ
EJ
EJ
EJ
EJ
QT
EJ
EJ
QT
EJ
EJ
EJ
RA
MJ
CA

TH
20000
0
0
30000
50000
CO2
0
0
40000
COl
0
CC27
10005
CD
0
TH3
CE5
41
A
CD
CE15
CR5
CC4
A
CC5
CC6
CC7
CCIO
CCII
CC12
CC27
CC31
CC32
CC30
CC33
CC34
CC35
VV

0
TH47

TH4
THIO
(30000)
30000
TH4
CD
CC3
TH13
THIO
CD
CC2
Q
THl6
CD3
CD5
Q
A
A
VV2
VV
IA
CR
A
A
RW
RW3
MF
MB
RF
RB
A
WB
WB2
A
WB4
WB6
WBIO
CC21
WW

1105 Tape Handler

Start - TCU2
Start - TCUI
Exit
Parameter
Test buffer 2
Set TCU2
Bypass buffer 2
Test buffer 1
Set TCUI
Bypass buffer 1

}

Set leU bit in code words
Set norma 1 bia s

}
}

Servo no. VV2
Servo no. and leU

bit~VV

Set ignore address
~Test for zero blocks
Op code ~A
Rewind ~RW
wi interlock ~RW3
Move fwd ~MF
Move bwd ~MB
Read fwd ~RF
Read bwd ~RB
"A" ~A
A= 2
"A" = 4
B~A

= 1
= 2
= 3
= 0
---+ Wr i te

B
B
B
B

387

Exit
IA
0
1
2

TV

MJ
0
CA

EX
CE15
0
0
EX3

Set ignore
Exit

IA
TH2
RE33

Build Write Code Words
0
1
2
3
4
5
6
7
10
11

IA
RA
MJ
RA
MJ
RA

WB
VV
0
VV

MJ

0
VV
0
VV
0

RA

VV

MJ

0
WB12

MJ

RA

CA

CC25
TH41
CC26
TH41
CC22
WW
CC23

A= 2
sec.
A =4
~ B sec.
B= 1
~B

B

WW

CC24
WW

=2

B= 3

Write
0
1
2
3
4
5
6
7
10
11

IA
RJ
TP
QT
TV
EF
RP
EW
RA
IJ
MJ
CA

WW
RE5
CEll
VV3
TH3
0
10170
10000
WW6
VV3
0
WWl2

REI
Q
VV3
WW6
VV
WW7
(30000)
CE12
WW4
EX

}
}

Set index
Set address
Start writing
Write block
Add. + 1708
No. of blocks
Exit

388

Read Subroutine

0

1
2
3

4
5
6
7
10
11
12
13
14
15

IA
MJ
MJ
CC
0
CC
CC
RJ
TP

EF
ER
0
IJ
ER
MJ
CA

RR
0
0
RR3
30000

VV

(30000)
RR7
CD2
30000
CC36
CD2
RR7

RR12
RR6
CC37
VV4
0
VV
10000 (30000)
(30000) (30000)
VV4
RRII
0
A
0
RR
RR16

Exit
Normal entrance
Reread entrance
RA (RS) RRII CCI
Reverse direction
RA (RS)
One shot exi t
Set index
Start reading
Read
RA (RS) RRll CCI
One block
lOA ~A
Exit

389

Read Fwd (Bwd)

o
1

2
3
4
5
6
7

10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32

IA
TV
TP

QT
SS

LT
RJ
RJ
ZJ

RE
TH3
TH3

CE4
CE6

o
RE5
RR
REIO

RJ

RR

ZJ
EF

REl2

RJ
ZJ
RJ
ZJ
EF
RJ
ZJ
RJ
ZJ
TP
RJ
EF
RJ

RR
RE15
RR
RE17

TV

o

o

RR
RE22
RR
RE24
CF
PC

o

RR6
EX2

Q
A

17
VV3
RE6
RRI
RE41
RR2
RE32
CD6
RR2
RE40
RR2
RE32
CD7
RR2
RE40
RR2
RE32
PC2
PCl
CD5
RR2
IA
RE6
RR2
IA

MS

o

RJ
AT

RR6
CEIO
VV2
VVI

EF

o

A

30000

30000
CD5
RE6
EX

33

TV

34
35
36
37
40
41
42

TP

o
EF

o

IJ

VV3

MJ

o

CA

RE43

Set address

RRII

A
A

}

Index = No. of blocks - I
Exit
Read blk fwd (bwd) (normal)
Pari ty t no ~RE37
Read bwd (fwd) (normal)
Pari ty ~ no ~ RE31
Set high
Read fwd (bwd) (high)
Parity ~ no~RE36
Read bwd (fwd) (high)
Pari ty ~ no-+RE31
Set low
Read fwd (bwd) (low)
Pari ty ~ no ~RE36
Read bwd (fwd) (low)
Pari ty ~ no ~RE31
Print error

}

}

Set norma 1
Set to read fwd (bwd)
Set ignore address
Stop for rereads
Reverse direction
Set ignore add.
Move fwd (bwd) 1 blk
RA (RS) RRII
Set normal
No. blks.

CE12

Read Fwd

o
1
2
3
4
5

IA
RA
TP
TP
TP
TP
MJ

RF
VV
CEI
CEI
CE2
CD3
0

CA

RF6

CC17

RR3
RRl2
RE37
VVI
RE

Set read fwd

}

~ VV

Set for read fwd

390

Read Bwd
0
1
2
3
4
5

IA
RA
TP
TP
TP
TP
MJ
CA

RB
VV
CE
CE
CE3
CD4
0
RB6

CC20
RR3
RR12
RE37
VVI
RE

Set read

}

bwd~VV

Set for read bwd
~Read

Rewinds
0
1
2
3
4

IA

RW

RA
EF
MJ
RA

VV

CC13

0
0
VV
0
RW5

VV

MJ

CA

EX
CC14
RWI

Rewind
Exit
Rewind w!interlock

Move Fwd
IA

0

TO

1

RJ
TV
EF

2
3
4

TP

5
6
7
10

AT
EF
IJ
MJ
CA

MF

CE7
RE5
CE7
0
(30000)
VV
0
VV3
0
MF11

MF4
REI
IA
CD7
A
VV
VV
MF6
EX

Set for fwd
Set index
Set ignore address
Set low gain
Set for fwd (bwd)
Set EF word
Move 1 b1k
n b1ks
Exit
Move Bwd

0
1

IA

MB

MJ
CA

CE10
0
MB2

ro

MF4

MF1

391

Print Out

0
1
2
3
4
5
6
7

IA
MJ
MJ
0
TP
QT
ST
1U

SP

PC
(30000)
0
0
PC16
(30000) (30000)
PC2
Q
CE13
A45
CCI
PC20
PC7
PC2
(30000) 52

10

PR

0

A

11
12
13
14
15
16
17
20

S5
ZJ
RA
IJ
MJ
RP
PR
0
CA

A
PCI0
PC7
PC20
0
4
0
0
PC21

6
PC13
CE14
PC7
PC
PC3
PC4
0

IA
TP
RJ
MS
0
47
01
12
47
57
CA

WE

0
1
2
3
4
5
6
7
10

WE3
PC
0
WE4
16300
04141
20574
12201
42040
WEll

0
1
2
3
4
5
6
7
10
11
12
13
14

IA
0
0
0
0
70
10
20
30
40
50
60
0
0

CC
0
0
10000
20000
0
0
0
0
0
0
0
200
400

PC2
PCl
IA
5
60603
30603
20404
23406
40404

0
1
04000
04000
0
0
0
0
0
0
0
0
0

Exit
Start
Par.= 0 address

}

n

Set index
Set address

\

]

Print one lAJord

Set for next word
no ~ PC7
Exit
4 ers.

F ini shed ~

Index

}

"Can't ignore.

t C A

N

N

Rerun."

0

T

~

I

G N 0

-¥

.

~

6.

R E ~ . ~ ~
t R E R U N
~

~

Zero
One
8ypa ss buff.l
8ypa ss buff. 2
Mask off OPe code
Rewind
Rewind w/inter1ock
Move fwd
Move bwd
Read fwd
Read bwd
Rewind
Rewind w/interlock

392

15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

0
0
0
0
0
0
0
0
0
0
07
0
02
04
0
0
0
0
0
CA

4
14
602
612
606
616
706
716
20
40
0
70000
0
0
10000
20000
30000
10
0
CC40

1
1
0
-0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
167

Move fwd
Move bwd
Read fwd
Read bwd
Write low and stop B = 0
B ::. 1
Write high
B= 2
Write low
B= 3
Write high
A =2
A =4
Mask off A
Mask off B
A =2
A =4
B =1
B =2
B =3
To reverse read
Set index

393

1"
1"
2.4
2.4

blk
blk
blk
blk

Constants

0
1
2
3
4
5
6
7
10
11
12
13
14
15

IA
RS
RA
RA
RS
7
0
0
0
0
0
0
0
0
0
CA

CE
RRII
RRII
RRII
RRII
77700
77
100
CClS
CC16
0
0
0
1
0
CE16

0
1
2
3
4
5
6
7
10
11
12

IA
0
47
20
46
25
15
01
04
04
20
57
CA

CF
CFl
12203
12120
15301
04031
12031
42574
24013
26031
12203
42040
CF13

12
02204
31204
21401
20424
63620
24704
01201
20412
02224
40404

0
1
2
3
4
5
6
7

IA
0
1
2
0
0
0
0
0
CA

CD
0
0
0
4
14
1
1
1
CDI0

0
0
0
1
1
50000
60000
70000

CCI
CCI
CE12
CE12
0
0
0
MF7
RE37
77
170
77777
0

}
}

Set RR3 & RR12

fwd
bwd
Set RE34
fwd
bwd
Mask no. of blocks (read)
Mask off servo no.
Subt. 1 from no. of blks.

Mask
120 10
v mask
1 in u

WE

l' R E A
E R R 0
(
P A R
y !J. 0 R
P R 0 C

D !J.
R !J.
I T
!J. S
K E

T ) ~
l' !J.
!J. S T A R T
!J. F 0 R !J. R

E R E A D
~

.

!J.

!J.

!J.

5

!J.

TeU bi t
Set '!CU bit to 1
Set '!CU bi t to 2
Move fwd 1 blk
Move bwd 1 blk
Set normal
Set high
Set low

394

Variables
0
I
2
3
4

IA
0
0
0
0
0
CA

VV
0
0
0
0
0
VV5

EF code word
Move fwd (bwd) I blk
Tape no.
Index (n blks)
Index I blk

0
0
0
0
0

Check for Zero Blocks
0
I
2
3
4
5
6
7
10

IA
QT
TP

EJ
QT
TP

RP
EJ
70
77
CA

CR
CR7
A
CC4
CRIO
A
20004
CC7
07700
77700
CRll

A
A
EX
A
A
(30000)
EX
0
0

395

(ac)

TH21
RR55
MB75
IAlOO

Regions for 1103A Tape Handler

Control Region
Read Subroutine
Move Backward
Ignore Address

WHlOl
WWl13

Build Wri te Code

RE125

Set Index

RA134

Reread If Parity Error

RF173

Read Forward

RB203

Read Backward

RW2l3

Rewind

MF220
PC231

Move Forward

WE252
CF263
CC276
CE336
CD361
VV371
CR377

Write

Print
Constants
Constants
Constants
Constants
Constants
Temporaries
Check for Zero Blocks

396

(ad)

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33

IA
MJ
TV

MJ
0
MJ
TP
QT
LT
TP
AT
TV

RJ
TP
EJ
EJ
EJ
EJ
EJ
EJ
QT
EJ
EJ
QT
EJ
EJ
EJ
RA
MJ
CA

TH
0
CEI5
0
30000
0
TH3
CE5
41
A
CD
CE15
CRIO
A
CC5
CC6
CC7
CCIO
CCll
CC12
CC27
CC3l
CC32
CC30
CC33
CC34
CC35
VV
0
TH34

TH4
IA
(30000)
30000
TH5
Q
A
A
VV2
VV
IA
CR
A
RW
RW3
MF

MB
RF
RB
A
WB
WB2
A
WB4
WB6
WBIO
CC2l
WW

II03A Tape Handler

Start
Set ignore address
Exi t
Parameter

}

Servo no. ~ VV2
Servo no. & tape bit

~VV

Set ignore address
~ Test for ze . . o blocks
Ope code ~A
Rewind ~RW
W/interlock ~ RW3
Move fwd ~ MF
Move bwd ~ MB
Read fwd ~ RF
Read bwd ~ RB
"A" ~ A
A =2
A =4
"B" ~ A
B =1
B =2
B =3
B =0
~Write

397

Build Write Codes

IA

riB

2

RA
MJ
RA

VV
0
VV

0
1

"A" = 2
~B sec.
A= 4
~B sec.
B= 1

CC25
TH26
CC26
TH26
CC22

3

MJ

0

4
5
6
7
10

RA
MJ
RA
MJ
RA

VV
0

WW

VV
0
VV

11

MJ

0

CC23
WW
CC24
WW

CA

WB12

B= 2
B= 3

Write
0
1
2
3
4
5
6

IA
RJ
TP
QT
TV

EF
RP
EW

7

RA

10
11

IJ
MJ
CA

WW

RE

CEll
VV3
TH3
0
10170
10000
WW6
VV3
0
WW12

REI
Q
VV3
WW6
VV
WW7
(30000)
CE12
WW4
THI

}

Set index
Start writing

}

Write blk
Add + 170
No. blks
Exit

398

Read Sub

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17

IA
MJ
MJ
CC
CC
CC
0
RJ
TV
TV

TP
EF
ER
0
IJ
ER
MJ
CA

RR
0
0
VV
RR14
RR5
(30000)
RR6
VV5
RR17
CC37
0
10000
(30000)
VV4
0
0
RR20

(30000)
RR7
CC36
CO2
CO2
(30000)
RR7
RR13
IA
VV4
VV
(30000)
(30000)
RR13
A

Exit
Start (normal entrance)
Reverse direction
RA (RS)
RA (RS)
RS (RA) VV5 CC37
One shot
Set address
Set ignore
Set index
Start reading
Read
RA (RS) RR13 CC1
One block
I 0 A~A
Exit

RR

Index to VV3
0
1
2
3
4
5
6

IA
MJ
TV

TP
QT
SS
LT
MJ
CA

RE
0
TH3
TH3
CE4
CE6
0
0
RE7

(30000)
VV5

Q
A
17
VV3
RE

Exit
Set address

}

Index to VV3
Exit

399

Read Fwd. or Bwd.

IA

nil
n}\

0
1
2
3
4
5
6
7
10

RJ
ZJ
RJ
ZJ
EF
RJ
ZJ
RJ
ZJ

RR
RA2
RR
RA4
0
RR
RA7
RR
RAIl

11

EF

u

\JUI

12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36

RJ
ZJ
RJ
ZJ
TP
RJ
EF
RJ

RR
RA14
RR
RA16
CF

RR2
RA35
RR2
RA24
PC2
PCl
CD5
RR2
IA
RA
RR2
IA
A
A
A
30000
CD5
RA
THl
30000
RA32

TV

MS
RJ
TV

TP
AT
EF
0
EF
IJ
MJ
0
MJ
CA

r'\

PC

0
RR6
CEIO
0
RR6
CE20
VV2
VVI
0
30000
0
VV3
0
30000
0
RA37

Fwd (bwd)
normal
Pari ty ..v no ~ RA35
Bwd (fwd)
normal
Pari ty t no ~ RA24
Set high
Fwd (bwd)
high
Pari ty ..v no ~ RA35
Bwd (fwd)
high
Pari ty ..v no ~ RA24
Set low
Fwd (bwd)
low
Pari ty ..v no - RA35
Bwd (fwd)
low
Pari ty ~ no ~ RA24

RRI
RA35
RR2
RA24
CD6
RR2
RA35
RR2
RA24
"..,.-7

}

}

Print PARITY ERROR
Set normal
Reverse direction
Set ignore address~
Stop for rereads
Reverse direction
Set ignore

:J

Move fwd (bwd) 1 blk
RA (RS) VV5 cel
Set normal
n blks
Exit
RA (RS) VV5 CE12

400

Read Fwd.

0
1
2
3
4
5
6
7

IA
RJ
TP
TP
TP
TP
TP
RA
MJ
CA

RF
RE
CE21
CE
CE2
CE16
C03
VV
0
RFI0

REI
RR5
RR14
RA31
RA35
VVI
CC17
RA

Set index and address
Set for fwd.

Read Bwd.
0
1
2
3
4
5
6

7

IA
RJ
TP
TP
TP
TP
TP
RA
MJ
CA

RB
RE
CE22
CEl
CE3
CE17
CD4
VV
0
RBI0

REI
RR5
RR14
RA31
RA35
VVI
CC20
RA

Set index and address
Set for bwd.

401

Rewinds

0

1
2
3
4

IA
RA
EF
MJ
RA
MJ
CA

RW
VV
0
0

VV
0

CC13
VV
THI
CC14
RWI

Rewind
Exit
Rewind with interlock

RW5
Move Fwd.

IA
0

TIl

1
2

RJ
TV
MJ
TP
AT
EF
IJ
MJ
CA

3

4
5
6
7
10

MF
CE7
RE
CE7
0
(30000)

VV
0

VV3
0

MF4
REI
IA
MF4
A
VV
VV
MF6
THI

Set for fwd.
Set index
Set ignore address
Set for fwd (bwd)
Set EF wd.
Move 1 blk
Y\ blks
Exit

MFll
Move Bwd.

IA
0

TIl

1

MJ
CA

MB
CEIO
0

MF4
MFl

Set for bwd.
~ move fwd.

MB2

402

Print Sub.

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20

0
1
2
3
4
5
6
7
10

0
1
2
3
4
5
6
7
10
11
12

IA
MJ
MJ
0
TP
QT
ST
TIJ

SP
PR
SS
ZJ
RA
IJ
MJ
RP
PR
0
CA
IA
TP
RJ
MS
0
47
01
12
47
57
CA
IA
0
47
20
46
25
15
01
04

04
20
57
CA

PC
0
0
30000
PC2
CE13
CCI
PC2
30000
0
A
PCI0
PC7
PC20
0
4
0
0
PC21

(30000)
PC16
30000
Q
A45
PC20
PC7
52
A
6
PC13
CE14
PC7
PC
PC3
PC4
0

Exit
Start
Par. = 0 address

}

n

Set index
Set address

}

Print one word
Next word
Finished ~ no
Exit

~

PC7

Index

WE

WE3
PC
0
WE4
16300
04141
20574
12201
42040
WEll
CF
CFl
12203
12120
15301
04031
12031
42574
24013
26031
12203
42040
CF13

PC2
PCl
IA
5
60603
30603
20404
23406
40404

12
02204
31204
21401
20424
63620
24704
01201
20412
02224
40404

}

Rerun"

"Cannot ignore.

t C A N N
T !:1 I G N
b.
R E ~
t R E R U

.

~

.

b.

N

b.

b. b.

l' R E A
E R R 0
( P A R
y b. 0 R
P R 0 C
T ) ~ .
b. S T A
b. F 0 R
E R E A
b. b.
t

D b.
R b.

.

403

b.

0
0

I

T

b.

S

K

E

t

~

R T
b. R
D

S

b.

~

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

IA
0
0
0
0
70
10
20
30
40
50
60
0
0
0
0
0
0
0
0
0
0
0
0
07
0
02
04
0
0
0
0
0
CA

CC
0
0
10000
20000
0
0
0
0
0
0
0
200
400
4
14
602
612
606
616
706
716
20
40
0
70000
0
0
10000
20000
30000
10
0
CC40

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22

IA
RA
RS
RA
RS
7
0
0
0
0
0
0
0
0
0
RA
RS
0
RS
RA
CA

CE
RR13
RR13
VV5
VV5
77700
77
100
CC15
CC16
0
0
0
1
0
VV5
VV5
0
VV5
VV5
CE23

0

Zero
One
Bypa ss no. 1
Bypa ss no. 2
Mask off OPe code
Rewind
Rewind with interlock
Move fwd
Move bwd
Read fwd
Read bwd
Rewind
Rewind with interlock
Move fwd
Move bwd
Read fwd
Read bwd
Write low and stop B = 0 Iff b1k
B = 1 Iff blk
Write high
B = 2 2.4 blk
Write low
B = 3 2.4" blk
Write high
A =2
A =4
Mask off A
Mask off B
A =2
A =4
B =1
B =2
B =3
To reverse read
Set index

1

04000
04000
0

0
0
0
0
0
0
0
0
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
167

CCl
CC1
CC1
CC1
0
0
0
MF7
RA25
77
170
77777
0

t1

}
}

fwd
bwd
fwd
Set RA31
bwd
Mask no. b1ks (read)
Mask servo no.
No. of b1ks - 1 subtractor
Set RR14

Mask
120
10
v mask
1 in u

WE

CE12
CE12
RA31
CC37
CC37

}

Set RA35

fwd
bwd

}

Set RR5

fwd
bwd

404

0
1
2
3
4
5
6
7

IA
2
1
2
2
2
2
2
2
CA

CD
0
0
0
4
14
1
1

1
COlO

0
0
0
1
1
50000
60000
70000

Tape bi t
Move fwd 1 blk
Move bwd 1 blk
Set normal
High
Low

Don't Punch Variables
0
1
2
3
4
5

IA
0
0
0
0
0
0

VV
0
0
0
0
0
0

CA

VV6

EF code word
Move fwd (bwd) 1 blk (read)
Tape no.
Index (n blks)
Index 1 blk
Address

0
0
0
0
0
0

Check for Zero Blocks
0
1
2
3
4
5
6
7
10
11
12

IA
QT
TP
EJ
QT
TP

RP

EJ
QT
MJ

70
77
CA

CR
CRII
A
CC4
CR12
A
20004
CC7
CC4
0
07700
77700
CR13

A
A
THl
A
A
CR7
THI
A
30000
0
0

405

(ae)

Fl

F2

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53

IA
0
65
26
0
01
54
54
32
34
45
54
0
43
65
01
01
31
01
50
66
45
0
65
26
0
01
01
46
0
01
65
34
66
24
26
30
30
01
54
31
01
50
66
45
CA

FA
FAI
30506
30017
0
01253
30016
66210
34506
66330
30730
27010
0
22010
66010
01010
01010
01663
65305
26300
01263
30272
FA26
30506
30017
0
31345
65734
21017
0
21012
01505
50273
30014
46016
51273
50663
22010
01010
30656
01663
65305
26300
01263
30272
FA54

Error Prints of Translation Subroutines

24
63050
77777
0
03151
56624
12530
50171
12401
17151
10117
0
15430
10101
10101
10151
33465
06630
15051
33026
27777
26
63050
77777
0
46566
72551
77777
0
75130
16601
42624
63032
75034
00165
05026
10101
10101
60151
33465
06630
15051
33026
27777

S E N T E
C E fj, 77 77
Line no.
fj, fj, B E F
R E fj, S T
R T , fj, B
G I N S fj,
I T H fj, A
K E Y fj, W
R

D

fj,

fj,

fj,

N

77
0
A
E
W
fj,

0
(

Key word
)

S T
fj,
fj,

fj, fj, R
fj, fj, fj,
fj, fj, fj,
fj, fj, fj,

F

fj,
fj,
fj,

fj,

S E

N C
T fj,

T
E

H
N
fj,

I
T
N

C H E
77
K E D
S E N T E
C E fj, 77 77
Line no.
fj, F I
R S
fj, S y M B
fj, 77 77
L
sym.
fj,
fj, D 0
fj,
S
N 0 T
I N D I C
T E fj, L E
A L fj, U N
C 0 D E fj,
E N T E N
fj, fj, fj,
E
t

R E

S T

fj,
fj,

F

T H

I

fj,

fj,
fj,

fj,

fj,

S E N T
C E fj, N
fj, C H E
77
K E D

fj,

N
T

406

E
fj,
fj,

0
S
E
0
C
77
N

77
T

0
77
E
fj,

A
G

I
S
C
fj,
fj,

0
S
E
0
C
77

IA

F3

F4

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37

40
47
33
30
22
66
33
50
01
01
01
26
27
0
47
33
01
65
01
24
30
65
34
50
54
01
33
01
25
01
50
0
CA
IA

F5

0
1
2
3
4
5
6
7
10
11
12
13
14
15

0
47
33
05
30
34
65
54
10
65
26
25
01
0

FB
FBI
51543
24500
54545
01015
01513
34650
66305
50516
01010
01010
33302
22777
FB16
51543
24500
30545
01663
52545
47220
54302
52302
26246
65220
51325
50516
30244
01010
30735
65305
26300
0
FB40
FD
FDI
51543
24500
01653
50263
50016
01525
24472
04066
30506
30015
30540
77777
0

14
00166
11001
15465
43065
10166
16530
02630
60101
10101
10101
64530
77777
22
00166
10510
45154
33465
13254
10154
42701
63431
63451
10152
42447
60126
53027
10101
15027
06630
17777
0

15
00166
11004
05066
06501
63334
45132
20101
63301
63050
06747
13465
77777
0

0

R E
H A N ~
E R R 0
~ ~ R

~

T

5

~

R
E

S
S
T

M

.

T

~

0

F

~

H
N

I S
T E

~

S

~
~

N 0

T

~

~

~

~

~

~
~

C

H E

C

N C

E
E

~
~

~
~

~

~

K

E

D

.

77 77 77 77

M

0

R

E

~

T

~

~

2 5
E R R 0 R

S

~

T

H I

~

P

R

0 G R

H A N

~

A M
E

!:::,.

S
R

A D ~
C I F
A T I 0
!:::,. ~ P
G R A M
0 T ~ C
C K E D
6. !:::,. ~ 6.
E
E

R

P
C
N S

S
I

.

R

0

!:::,.

H

N
E

~

~

D

B E Y 0

N

~

N

T E

~

77 77

S E
N C E

line no.

M 0 R
H A N
2 ~ S
E N C
I N ~
S ~ P
R A M

5 1 3

E

~

T

~

5

1

T
S ~
T H I

E
E
R

.

N

0 G
~

~

T H ~
S E N T E N
C E ~ N U M
B E R ~ I
S
~

77 77 77 77 77
Line no.

407

F6

16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43

0
50
01
65
34
70
46
31
51
01

30
50
01
33
51
34
0
22
45
50
30
0
CA
IA

F7

F8

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31

40
47
33
01
26
34
24
52
01
01
01
66
0
0
0
40
47
33
30
47
34
01
24
0
0
0
CA

FD17
67472
51310
67256
52663
24543
30650
67502
50650
32543
54016
01100
01100
01657
46010
65017
0
01017
34503
01653
50263
0
FD44

25
53054
16750
52654
02701
42425
16301
66634
13465
02466
63324
40522
40666
34725
10101
77777
0
15154
20151
05066
00177
0

FE
FEI
51543
24500
26332
66305
50013
66345
51345
01010
01010
01265
24506
0
0
0
FE20
51543
24500
01273
24460
50660
26515
50662
0
0
0
FE32

16
00166
10405
45424
46501
14651
03201
06601
10101
10101
15065
62201
0
0
0
12
00166
15150
02634
15251
13450
06566
20101
0
0
0

M B

E R

N

U

~

0 F

~

S

U

I
V
L

P T
A R
E S

C R
E D ~
I A B

B

U

N

S

~

+

~

F U N C T I
0 N S ~ I S
~

G

R

E R

~

E
T

A

T

H A

~

~
~

5 1 2 .
5 1 3 T

H

~

S

y

M B

0

L

~

~

~

I

S

~

77 77 77

.

~

N

~

Sym.

K I

~

W 0

R

N

G

~

0

N ~ S E N T
E N C E ~ 77

Sent. no.

M
H

0 R E

~

T

A N ~ 1 2
C H A R A
C T E R S ~
I N ~ F L 0
A T I N G ~
P 0 I N T ~

~

11 IJ. 11 11 11 11
11 11 11 11 11 11
~
6 C 0 N S
T

}

A N

.

6

T

Constant

M
H

0 R E

~

A N 6

0 N

E

~

M

A
I N
~ C
A N

}

T

D E C I
~ P 0

L
T

~

.

Constant

408

I

N

0 N S T
~ 6
T

F9

FlO

0
I
2
3
4
5
6
7
10
II
12
13
14
15
16
17
20
21
22
23
24
25
26
27

IA
40
24
27
66
51
65
66
0
0
0
40
47
33
26
66
50
27
66
66
01
01
0
0
0
CA

FF
FFI
65656
01265
24506
50662
01240
66305
0
0
0
FF13
51543
24500
33245
30546
01313
01525
01265
24506
01010
01010
0
0
0
FF30

II
74730
15065
60126
43450
14630
42201
0
0
0
15
00166
11101
42426
50134
47230
13450
15065
62201
10101
10101
0
0
0

A S S
D !:1 C
T A N
0 N T
S !:1 A
T

M E
N S
T !:1 C

U

0

A I

!:1 L
T E R

}

.

N
E

!:1

Constant
M 0
H A
C H
T E
N
D

R E !:1 T
N ~ 6 !:1
A R A C
R S !:1 I
6 F I X E
6 P 0 I N
6 C 0 N S
A N T
6

T
T
6 6
!:1 6

}

.

6
6

6 6
6 6

Constant

409

6
6

Til

r.ro

40
24
47
34
01
01
01
24
0

FGl
01273
24460
50660
31347
52513
26515
50662
0

H\

Fll

..,..,,,
r

.1~

0
1
2
3
4
5
6
7
10
1 1

Af\

l.l.

~v

12
13
14
15
16
17
20
21
22
23
24
25
26

47
33
26
66
50
24
73
47
01
01
0
0
0
CA

fU

L'rl~

l·U.L~

51543
24500
33245
30546
01702
25463
52300
25514
01010
01010
0
0
0
FG27

10
02634
15251
13450
23027
45066
06566
20101
0

A

fj.

D

E

M
I

A L

fj.

N

T

~

fj.
fj.

F

I

X
I
N

fj.

P 0
C 0

.

C I
P 0
I N
E D
N T
S T

fj.
A N T
Constant

fj.

It:=:
"'...,

00166
11101
42426
50134
45434
00166
16573
62201
10101
10101
0
0
0

0 R E

fj. T
N fj. 6 t:.
A R A C
R S fj. I
V A R I
L E fj. T
Y P E fj. S y
fj.
M B 0 L

M

H A
C H
T E
N t:.
A B

.

fj.
fj.

}

fj.
fj.

fj.
fj.

Symbol

410

fj.
fj.

fj.
fj.

fj.
~

IA

F13

F14

F15

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46

40
70
46
30
51
66
24
66
0
0
50
66
50
01
50
01
71
0
0
46
31
24
01
54
66
01
34
50
67
30
50
01
30
51
22
45
50
30
0
CA

FH
FHl
24543
30016
01657
46012
24345
01525
22010
0
FH12
51016
30502
67472
51500
66305
31514
34503
0
FH23
34656
01702
25463
46342
73015
34503
31675
51506
27015
27510
54246
65013
25302
01010
01465
01017
34503
01653
50263
0
FH47

10
42425
67352
34725
65150
06501
13450
17777
0
10
53050
63001
53054
16530
02630
64651
20101
0
24
60151
45434
06521
55424
45167
06521
02666
50124
26530
15152
63451
32465
65147
16651
15032
15154
20151
05066
00177
0

R I A B
6 T y P
S y M B
6 C 0 N
I N S ~
P 0 I N
6 ~ 77 77
Symbol

V

A
L E
E 6
0 L
T A
A ~
T

N
T
N

0

~

E
U

N

~

0

N
E

L

I

S

T ~

0

F

~

V

I

A B
~
L
R Y
T I

L
I

A R
E S
B R
R 0
E S
N C
S ~
P S
b.. 0
T I
H A
C 0
6 T

S E
C E

N
~

E

R
S E
N C E
N T
L L 0
~ F 0
W I N G ~ ~
Line no.

~

I

F
0

M B

~

N
U
N

6

N
U
E
N

R A
S ~

6

B

0
0

E

~

0

~

0
E

~

,
A
U
I

T

A
E

P

0
S
M

6
0
L 0 N G
~ ~ W 0
R
K I N G 6 0
N 6 S E N T
E N C E 6 77
Line no.

411

F16

0
1
2
3

F17

4
5
6
7
10
11

F18

12
13
14
15
16
17
20
21
22
23
24
25
26

IA
40
66
50
25
40
50
01
50
01
46
40
34
30
47
30
30
0
0
0
01
0

FI
FIl
51510
73016
51466
FI5
51013
51310
66305
65734
22777
FI13
50265
26660
25514
53673
22010
0
0
0
01777
0

3
14724
57347
52277
5
05027
16530
02630
72551
77777
14
15454
16573
60165
05026
10177
0
0
0
77777
0

0

0

0

0

0
FI27

0

CA

T 0 0
N Y 6
B 0 L

6

N 0

E

6

F 6

N

T

6

S

E
y

L

I N
E C
M B
E Q
E

}

77
N

S
N C

D
E
E

M B 0
77 77 77 77

.

.

M A
y M

S

0

6

C 0
T 6

R
S

R

0

u

L
E

6

S

6

~

6

y

N C

77

1st sym.
6

}

S

6

77 77 77 77

2nd sym.

412

F19

F20

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27

IA

I'D

40
45
54
0
01
27
01
25
40
27
34
50
21
66
24
67
01
31
01
01
34
66
50
30

l'D1
30730
27210
0
21016
01246
70245
46302

CA

mIl

34473
51500
66305
01343
01245
54652
65660
01010
34546
01543
51310
65016
30502
51660
26453
1\030

7
17151
17777
0
76530
50124
43424
27777
17
05065
16530
02630
10134
25230
10147
12530
10101
56622
06566
16633
53050
63001
12633
02722

K
R

E

Y

6

, 6
Word

D

W 0
77 77

.

6 U 5 E
6
D 6 A 5 !J. A
6 V A R I A
77 77
B L E

.

D I
I 0
N T
, !J.
T !J.
A R
U 5
!J. !J.
F I
!J. !J.
!J. 0
I S
T E
N 0
E C

413

M
N
E
I
A

5
T
6
R
R

F
!J.
N

T
K

N

5

5
N C
F !J.
P P
, !J.
!J. B
!J. !J.
5 T
E S
!J. T
5 E
C E
6 C
E D

E

E

!J.

E
I
E
M
E
!J.

.

T
H
N
!J.
H

.

(af)

o
I
2
3

4
5
6
7

IA
MJ

OT

MJ

10000
OT7

TP
MJ
TP

MJ

o
o

CA

o

o

Set TN for Five or Seven Uniservos
30000
OT4

Exit
Entry. Jwmp to OT4 if MJl is set~
Puts zero into TN when MJl is not set.

TN

OT

OT6

Puts 0 3 0 into TN when MJl is set.

TN

o

OT

o

3

o

o
OTlO

IA

TN

o

0

CA

TNI

0

(ag) Set up Translation Output Tape

o
I
2

IA

UB

MJ
TP

o

30000

TN

A

AT

UB17

WT13

10024

UB5

3

RP

1
5
6
7

TP

1m,

TP
RP

10

TP

UBI5
U8l6
10142
UB14
WT13
GT2

TP

II

TP

12
13
14
15
16
17

RJ
MJ
74
65
02
71
CA

It

VI.J.L~

o

74747
66543
51676
00103

lT1\l
W11

VN24
VN25
UBII
VN26
GT3
GT
UB
47474
45032
66501

}
~
J

}
}
}

Puts proper parameter into tape-write
routine so that String-Outs will be written
either on tape 3 or tape 6.
Puts 20 lines of zt s into title block
String-Outs goes on beginning of 2nd
blockette of block.
Filling remainder of title block with
lines of Z's.
Writing title block on either tape 3 or
tape 6.
Jump to exi t
S
-

T
0

VN

UB20

414

R
U

I
T

N G
S 6

(ah)
0
1
2
3
4
5
6
7
10
11
12
13
14
15

IA
MJ
TP
ZJ
TP

DV

Write Translation List on Tape (also region SS)

WT
0
UZ2
WT
VN
WT14
WT7

30000
A
WT3
A
Q

LA

Q
Q

AT
RJ
MJ
71

WT13
GT2
0
00103

WT6
WT15
25
GT3
GT
WT
VN

0
0

0
0

170
1

CA

WT16

ZJ

RS

}

}

Has error routine been referenced?
No. of lines to A
No. of blocks to Q
Is remainder zero?
If so, reduce no. of blocks by one.
No. of blocks to rt. position in A
Adding in standard parameter with one block
and using generalized tape handler.
Exit
Standard parameter for use in gen. tape
handler.
No. of lines to a block.

415

(ai)

o
1
2
3

IA
MJ
TP
TP
TJ

4

TP

5
6

Put Referenced Sentence Number in List IZ

IX

o
A

30000
IX46

11
IX40
IX46
20454
IZ
IX47

A

IXll
A

7

RP
EJ
RA

10

MJ

o

IX7
IX
IX36
IX

11

Ttl

11

.lA.lJ

12
13
14
15
16
17
20
21

TP
RP
EJ

IX46
30000
IZ

A

TV

11
11

RA

TJ
TP

IX40
IX34
UP2
UZ
IX36

IX15
IX
IX26
IX37
IX25
UP3
UP
UZI
IX47

23
24

M.l

o

25
26

RA
TP

IX26
IX46

IX33
30000

TV

IX26
IX31
IX35

IX31
IX36
30000
IX
IZ
5

27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47

RA
TP

MJ

o

o
o
o
o
o

o
o

IX41

o

2

2

54
50
34
72
04

20455
30313
26302
50306
26303
10037

455
05430
70146
50130
02701
77777

CA

00000
IX50

o

}

Is 11 S 00 20454 00454?
Is line no. in ref. list?
Counting excess line no. referrals.
Setting up repeHt for
ing to length of IZ.

}
}

~earch

of IZ accord-

Is line no. in ref. list?
No. of lines n in IZ to v of IX26
Adding 0 2 2 to 11.
Is 11 S 0 20454 454?
Error Print-out: Referenced lines
exceed 150.
Referral to string-out error routine
Putting 1 into excess line-referral counter

TX

o
o

o
o

}

..... , , . , f"\

RJ
RJ
TP

22

Line no. to storage.

IZ+n~vofNl

}

Line no. goes to next location at end of
IZ 1 i st
Subsequent address of IZ list is
cleared.

1

o
o

REF ERE
N C E D 6 L
I

N E

S

6

E

X C E E D 6
150111111

416

(aj)

a
1

2
3

4
5
6

7
10
11

12
13
14
15
16
17
20
21
22

23
24
25
26
27
30
31
32

IA
MJ
RJ
MJ

a
a

TP
TP
TP
TP
TP
LQ
QT

RS

o

a
a
a
a

MP

RS51
RS51
RS51
RS52
RS54
RS4
RS46
RS41
RS20
RS50
RS22
RS42
RS26
RS42
RS43
RS43
RS44
RS45
RS45

TV

A

LQ

RS43
RS42
RS43
RS3
RS3
RS46
RS42

RS
SJ
ST
SJ

TP
ZJ
RA

LQ
RA
IJ
RS

RS

33

LQ

34
35
36
37
40
41
42

SP
SA
QA
IJ
MJ

43
44
45
46
47
50
51
52
53
54

o
o
o

o

a

o
o

o

a
o

Excess-Three Decimal to Octal

RS5

a

30000

a

o

RS3
RS42
RS43
RS44
RS45
6

RS41
RS47
RS16
A

RS20
A

RS2
RS53
6

RS41
RS12
RS42
RS54
RS31

o

RS53

a

a

o

o

o
o
o
o
o
o

o

a

o
o
o

CA

RS55

}

}

}

}

6
2
1

RS3
RS33
RS2

o

}

Below-O end-of-digits check
Above-9 end-of-digits check
Count-of-digits zero check
Count of digits
Accumulation of decimal digits in one line

Computing and performing initial shift on
line of decimal digits.
Computing index of octal conversion
Decimal-to-octal conversion

Jump to exi t
Storage for single decimal digits
Ist-Counter for digits; 2d-Index for octal
conversion
Line of decimal digits is accumulated here.
Set at start to index 5
Set at start to 6
Mask
Subtrahend to convert from excess three
10
10
Zero constant
Index constant

a

o
o

a

77
3
12

a
5
1
6

Entrance
Alarm exit
Exi t
Out put
Input
Clearing output
Clearing digit counter
Clearing decimal number accumulator
Setting index 5
Setting 6 in working storage
Masking out each character and converting
from excess 3.

}

Constants

417

(ak)

T/\

.I.n,

o

GG6

o
o
o

10

TP
TP
TP

CF2
CF3
CF6

11

RP

10006

TP

CC
CCI
CC2
GG13
CC3
GG15
GG33
6
CC12
CFl
GG24

2
3
4

5
6
7

12
13
14
15
16

MJ
RJ
MJ

26

TP

27

ZJ

CF13
GG165
GG164
GG4
CF
CC12
GG21
CC3
CC4
GG66
CF16
GG30
CC3
GG32

30
31
32
33
34
35
36
37

RS

A

SJ

GG32
CC3
CC12
GG33
CC
CCl

40
41
42
43
44
45
46

W

17

20
21
22
23
24
25

Assembly
of digits
after
decima 1
point

GG

o
o
o
o
o
o

1

Assembly
of digits
before
decimal
point

Excess-Three Decimal to Floating Point

47
50
51
52
53
54

1U
TV

LQ
QT
RS
SJ
TP
AT

ZJ
EJ
ZJ

RA
TP
RA
IJ
IJ
MJ
TP
MJ
TP

o

QT
RS
SJ
RS
SJ
RA
TP

a

o
GG166
CF2

o

GG15

o

CF
CC12
GG21
A

GG52
CC4
GG33

a

Entrance
Alarm exit not used
Exit
Floating point output

o
30000

o
o
o

}
}

Input in excess-three decimal
Set indexes
Set divisor at 128

r

}

t162 }
~35
CF6
GG21
CF3
CC13
CF3
GG15
GG40
GG64
GG15
CC
GG15
GG44

}

}

.0<"\'"

t..
V

n

1

<"\

r> .0

co

t-'.LOV"''''

n

+'

V..L

",n ... V ; n rr
"V.L'\'..L"~

+ n ...

rr a

co
<"\
"'l-V.LO~vl

CC3-CCll
Put GG4 in u part of GG15
Put CC13 in v part of GG33
Mask out character and put in CC12

}

GG56
GG26

1

V..L"'U.L

Subtract 3
Below zero end-of-digits check
Test for zero number of significant
digits
Test for decimal point
Test for zero
Zero in CC3 counter causes zero in CC12
to be bypassed as a non-significant zero
in count.
Test for above-9 end-of-digits
character
Count of digits before decimal point
Storage of digits in consecutive addresses
Modify previous v to next address
6-character index jump
2-line index jump
Jump to conversion at end of input
assembly
Set u of GGl5 to GG5 for second input line
Restore 6-character index to 5
Jump to assembly of second input line

o

CC12
CF1
GG50
CF6
GG21
CF3
GG54

a

418

55
56
57
60
61
62
63
64
65
66
Conversion 67
70
of all
digits
71
to an octal 72
number con- 73
tained in
74
CC7 and
75
CC10.
76
77
00
01
102
103
104
105
Computation of
"powerof-10"
divisor

RA
IJ
IJ
MJ

ZJ
EJ

GG33
CC
CCI
0
GG166
CF2
0
CC3
CC4
CF3
CC7
A
CCIO
CC13
0
10000
CC12
CC1
GG72
CC11
GG167
CC4
GGI04
CF7

CF3
GG43
GG61
GG64
GG15
CC
GG43
A
A
CCII
CF6
CCI
CF6
A
CC12
CCIO
A
CC7
CF4
GG67
GG72
A
GG132
GG113

ST

CF3

CCII

IJ

CCII
0
CF6
A
0
CFll

GGIIO
GGl14
CC2
CC2
GGI06
CC2

TO

TP
MJ
TP
AT
ST
MP

TP
MP
AT
LT
LT
TP
AT
RA
IJ
TO

TP

MJ

MP
TP
MJ
TP

}

}

Computing index CCII for octal
conversion

Restoring CC13 to u part of GG72
Test for zero digits after decimal
point
Test for 11 digits after decimal
point
Set index for computation of powerof-lO divisor

101t~

CC2.

10" alone would overflow AR
Computation of dividend shift
needed to get 10 significant figures in quotient.
8

114
115
116
117
120
121
122
123
124
125
126
127
130
131
132
133
134
135

TP
ST
MP

CF6
CC3
CC
A
CC7
CC5
CC10
CC2
CC4
CF7

SP
SA
SF

CC26
CC26
0
CC7
CCIO
A

A
CC
CFl
CC5
44
GG122
0
CC26
A
GG127
GG130
105
A
GG134
44
0
CCI

AT

CFIO

CC

TP

SP
TV

SA
DV

TP
EJ
MJ
LA

TP
MJ

0

419

Octal number

~

A with proper shift.

Division by power of 10
If CC4 = 11, additional shift to
give effect of dividing by 8. See
113 above.
Final converted-to-octal

number~A

Scaling for number size and to put
it in fixed position
Rounding off

RS
RA

CC
GG140
CC
CF3
0
CC
CF12
CC
CC
CC6
CC3
CC3
CCI
A
CCI
CF14
CF14
CC4
GG3

161
162
163
164
165
166
167

MJ
TP
MJ
0
0
0
0
CA

0
CF13
0
0
GG4
GG5
CC13
GG170

IA
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16

0
0
0
0
0
0
0
0
0
13
00
0
0
11
0
CA

CF
0
0
0
0
1
0

136
137
140
141
142
143
144
145
146
147
150
151
152
153
154
155
156
157
160

TP

QJ
W
TP
MJ

LQ
TP

QT
TP
TP

RA
RS
SA
TP

TP
EJ
TJ

0

0
0
51035
07777
0
0

0
0
CF17

If round-off caused a carry-over
from first significant digit 1
~ CC6 and shifting is altered.

Q
GG143
33
CC6
GG144
34

Q
CC
GG3
CC3
CF5
CC5
33
CC4
A
GG162
GG160
CF15
CC4
GG2
GG3
GG2
CC13
0
0
0

77
3
5
1
0
243
12
13
200
56400
77777
0
45
0
17

420

Assembly and insertion of mantissa
into output line.

~CC6) + 243 - (CC5) + K] shifted
to position of characteristic and
put into CC4

}

If k = 458, both characteristic
and mantissa = O.
If 458> k, 1108 is subtracted
from CC4
Final assembly of non-zero floating point number.
Jump to exit.
Clearing output line to zero
Exit

Sequential Uses of Working Storage CC
Index 5 for 6 characters in a line of input.
Varying multiplier to determine size of fractional part in quotient.
{ Temporary storage for first parts of result.

o

Index 1 for 2 1 ines of input.
1 Storage for 10·A .
L
{ k of scale factor.
2

Varying product and final divisor.

3{ Number of digits before decimal point.
Used to accumulate characteristic.
4{ Number of digits after decimal point.
Used to accumulate characteristic.
5 Shift to give fractional part in quotient.
6 Used to denote carry-over in round off.
7 AL in octal conversion.
10 AR in octal conversion.
ll{ Varying index for conversion to binary.
Varying index for multiplication in computing divisor.
12-25

For accumulation of first 11 decimal numbers after subtracting 3.

26{ Used for 12th decimal number.
Used for quotient after division.

421

(al)

o
1
2
3

IA
MJ
TP

GW
0
A

TP

10

TJ

4

TP

5
6
7

RP
RA

FX
FXl2
21000
CL
FXl3

10
11
12
13

TP
5P

FX3
FX3

14

5A
MJ
CA

15

EJ

MJ

o

SN

Q
FXII

1

IA
TP
TU

o

o

4
5

5N

Q

5A

10

MJ

o

7

TV

10
11
12
13

RA

10
10
FX
Z527
UP2

14

22

23
24
25
26
27

o

TP

UZ

FX2

MJ

o

RA
TP
5P
AT
QT

Z520
FX12
10
FX4
FX5

LQ
MJ
o

o
o

o

}

Test if constant is in list that is
already 1000 in length.
Count of number of referrals of constants not in list after alarm.
Giving the maximum call word 67777 to
all of these referral constants.
r.
L- J, -

o

,
\n -

"

_,

a

,

r)J~\Afi)u

[- j, (r - n)]

+

[j, nJ

= r-+(Aa)u

ZS22

ZS4

30000
CL

15
16
17
20
21

~7

1
r
J

GW
17

A
ZS2

EJ

TP

A
GW7
GW13
FX2

}

Exi t
Entry. To store constant temporarily
Tesi if number of consianis ~ 1000.

ZS

RP

RJ
RJ

~

FX12
10

2

TJ

30000
FX12

GWl6

3
6

Assign Constant Call Word

Q

FX6

CA

Z530

IA
00

FX
21001

ZS7

}

[- j, - (n - r~ ~(Aa)u

17

r- j.

o

Z522
Z520
FXl
Z517
UP3
UP
UZI
FX13
GWIO
Z526
30000
17
Q
Q

25
GW
CL
3

01001

Constant ~A
Sets up u of Repeat by constant list
count in 10.
Test if constant is in list CL.

}

(r - n)]

+ [j. n]

=r

~ (~ ) u

n ~(ZS20)v
Counter 10 increased by 1.
Is ca 11 word Ii st of constants ~ looO?
Alarm print-out -- too many constants
References error routine.
Starts excess count of referrals in FX13.
(n + cl) ~ (ZS26)v
Constant added to next position in list
n~(~)

(r + 6677¥) ~ q\l
Irrelevant materIal in q masked out.
Call word formed in Au
Call word formed in Qv
Parameter for error print-out:
constants

too many

Threshold constant for check on size of
CL.

422

1

0

2
3

0
0

o
o

67777

4

0

66777

o

5
6

0
66
50
65

77777
51510
73012
66245
21000

o

7

10
11

1

0
0

12
13

o
o

0
CA

(am)

1

1

14724
65150
06665

o
o

o

FX14
Close VARY File Item and Variable List File Item

IA

VE

o

MJ

0

1

SP

VII

o

2

EJ

VI2

VE6

3

TU

VI

4
5
6

SP
TJ
RJ
MJ

30000
WL1
RA

7

10
11

TP

12
13
14
15
16

TV
SP

17

o

Maximum call word. Given to all new
constants exceeding 1000.
Base number from which call words are
determined by adding to position in list
CL.
Mask
TOO lJ. M A
N Y lJ. CON
S TAN T S

TP
TU
TU

RA
MJ
CA
IA

0
VI2

VI2
VI3
WL3
A

VI3
30000
0

30000

~E4
VG6

}

Are there any unclosed items in the Vary
File?

1

Yes. Is the current sentence number >
the sentence number in the last unclosed
item of the Vary File?
No, so reference Routine A and then exit.

RAl
VE

(y)~

VI
VII

(y)~

a

f3

Insert call word of current sentence into u-portion of word at address given by
(temp 1)
Close Vary File item by inserting JUMP
flag (bit 35) in word at address given
by (temp 1)

VE14 }
17
30000
VE16 }

VH3

VE6

VE20
VG

TV

VG21

1

TV

2

SP

VI3
30000

3
4

TU
TU

5
6
7
10
11
12
13

RA

VI3
30000

SP

VI

A

AT

VH

TU

A

SP
LT
RS

30000

VG2
VG3 }
17
30000
VG5

VH4

VI3

oGIl

6

6

VI4

VL

VH2

}

I

Insert call word given by (a) + 1 (v
portion) into u-portion of word at addr.
given by (temp 1)
Close Vary File item by inserting RESUME
flag (bits 35,34) into word given by
(temp 1)
Record address ( a) + 1 into temp 1.
Set index to no. of WITH words.
Close last file of variables

423

CD
@

14
15
16
17
20
21
22
23
24
25
26

IJ
SA

VI4
VI
VII
VH

TO

A

TP

30000
VG15
VI
30000
WLl
0
VG27

RS

TJ

QJ
TU
SP

TJ
MJ
CA

VG13
VHl
VEIO
0
VG21
Q
VG23
VG24
0
VG
VE12

Decrease ( a ) by two
(f3) > ( a )?

1
\.

f

Is word at address given by ( a ) + 1
flagged?
Is the current sentence number>
the sentence number at address given
by (a) ?

No.

424

Glos e VARY F i 1e Item and Variable List File Item (cont.)

0
1

2
3
4

0

1
2
3
4

IA

VH

0
0
0
40
60

1
2
3
0
0

CA

VH5

IA

VI
VFl
VFl
VFl

VFl
VFl
VFl

f3

0
0

0
0

Temp 1
Index

0
0
0
0
0

GA

1
2
3
0
0

JUMP flag
RESUME flag

a

Y

VI5

425

(an)

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
<")1:

;:;.u

27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55

IA
5
0
45
43
45
47
47
46
46
46
47
46
43
5
41
4
7
44
44
44
3
2
,
~

2
2
2
1
0
1
6
6
41
7
6
45
4
3
3
1
0
0
0
1
3
1
6

Flex Codes for Print Text

FC
60000
40000
60000
70000
20000
40000
0
40000
20000
60000
20000
0
30000
40000
30112
60000
0
60000
20000
60000
0
30000

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

XS3
00 = Superscript minus
01 = Space
02 = minus
03 = 0
04 = 1
05 = 2
06 = 3
07 = 4
10 = 5
11 = 6
12 = 7
13 :z 8
14 = 9
15 = Superscript /
16 = Gtr >
17 = open parenthesis (
20 = Superscript 3
21 = Comma .
22 = Period .
23 = Semicolon
24 = A
25 = B

LfVV\f\

f\

I)t.

uvvvv

20000
0
60000
30000
50000
40000
20000
0
12412
40000
40000
0
20000
20000
60000
10000
70000
60000
30000
50000
50000
20000
60000

v

0
0
0
0
0
0
0
0
0
0
0
0
0

0
0
0
0
0
0
0
0
0
0

.wV

-

r

v

27 = D
30 = E
31 = F
32 = G
33 = H
34 = I
35 = Superscript 5
36 = Superscript 8
37 = 1 sr <
40 = Superscript 2
41 = Superscript 4
42 =absolute value I
43 =closed parenthesis
44 = J
45 = K
46 = L
47 = M
50 = N
51 = 0
52 = P
53 = Q
54 = R
55 = Superscript 6

426

)

56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76
77

42
3
3
5
4
45
5
2
0
3
1
3
2
2
2
7
44
7
CA

76154
30000
70000
20000
40000
40000
40000
40000
10000
40000
70000
10000
70000
50000
10000
20000
40000
70000
FCI00

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0

56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76
77

427

=
=
=
=
=
=
=
=
=
=
=
=
=
=

=
=
=
=

*

Superscript 9
Superscript 0
Superscript I
Superscript

+
/

S
T
U
V
W
X
y

Z

Superscript 7
=
ignore

(ao) Line Number Processor

o
1

2

3
4
5
6

7
10
11

IA
MJ
MJ
MJ
00

LN

o
a
a

LN5

Case -T

LN4

LN7
30000
30000
30000
PAl
DRO
PAl
DR
LN3

Case II entry
Exit
Output
Input
Set alarm switch to Case I
Process line number
Set alarm switch to Case II
Process line number
Enter here after alarm print and put

MJ
CA

a

LN2

Exi t

IA

DR
RC6

MR27
DR15
MR12
MR43
LN3
WS3
WS
MR3
MR4
MR5
MR7
MR16
MR
30000

Preset .ll!:!." one shot swi tch
Preset .!:!'fj" one shot swi tch in driver
Preset 3-point distributor
Preset 2-point distributor
Prestore output word.
Prestore master counter
Set up line number in temporary
Set Exit 1 to master counter
Set Exit 2 to period routine
Set Exit 3 to integral part = 0
Set Exit 4 to integral part ~ 0
Set ADDiNO ADD switch to NO ADD
Master counter
One shot switch to add ".!:!.!:!."
Determine if input line number has at
least one nonzero digit; if not

00
TV
MJ
TV
MJ
TP

30000
30000
RC14

a

RC15

a

innllt

-"l'~-

12

SETUP
AND
DRIVER

o
1

2
3

4
5
6
7
10
11
12
13
14
15
16
17
20
21

TV
TV

RJ
RJ
TP
TP
TP
TV

TV
TV
TV
TV
IJ
RJ
TP
EJ
EJ
MJ
CA
IA

CODE PICK
UP AND
SORT

INTEGRAL
PART

a
1
2
3
4
5

6
7
10
11
12
13

LQ
QT
RP
EJ
EJ
EJ
RP
EJ
TV
TV
RJ
RJ

an+
... "
v,u '-'.l..J

lin;:•• ,
~-

nlJmhl=>-r
...

••

~

~~~

in

- ..

olltnllt

~~-l'~-

linl=>
..
~-

~.

LN13

DR

MR12
MR43
UC23
UC4
LN4
RCIO
RC13
RC12
RCII
RCI
WS3
DR 15
LN3

UC23
UC24
0

II

II

A
PA30 }
PA30
LN2

ALARM 4

Input line number O.K., exit.

0022

MR
WS
UC20
20004
UC14
UC13
UCI
20011
UC2
RC
RC2
MR12
MR12

6
A

}

Shift line number 6 and pick up next
character in A

MR4
30000
30000
30000
PAll
30000
MR16
MR3
MR13

Exi tIll, 1..1 (. )
Exit 2
Exit 3 0
Alarm 1: ILLEGAL CHARACTER
Exit 4 1, 2, 3, 4, 5, 6, 7, 8, 9
Set ADD/NO ADD switch to ADD
Set Exit 1 to ".6" routine

MR22

I

428

~

3-Point Distributor

14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
PERIOD
36
ROlITINE
37
40
41
42
FRACTIONAL 43
PART
44
ROUTINE
45
46
47
50
51
52
53
54
55

SPACE
ROUTINE

RJ
MJ
MJ
SA
TP
MJ
RJ
MJ
TV
TV

RJ
RJ
MJ
SP
SA
SA
AT
MJ
TV
TV

TV
TV

MR12
0
0

LN3
A
0
MR21
0
RC3
RC3
MR21
MR27
0

LN3
UC13
UC14
UC14
0
RC2
RC5
RC7
RC7

MJ
RJ
RJ
MJ
EJ
LA
TP
QS
TP
TP
MJ
LT

UCl
A
UC21
A
UC
UC20
0
10006

56
57
60
61
62

TP
MJ

0

63
64
65
66
67
70
71
72
73

AT
TP
QS
MJ

TV

TV

EJ

TV
'IV
TV
TV

MJ
CA

0

MR43
MR43
0

UC22
RC4
RC4
UCI
WSI
WS2
WSI
0
RCIO
RC5
RC5
RC5
0
MR74

MR22
MR24
30000

~N3
}
30000
MR16
DR14
MR5 }
MR7
MR16
30000
DR14

o

J

II
III
ADD/NO ADD switch
ADDINO ADD SubrouAdd char. to
tine
Output and
exit
I = II Add digit if it is significant.
Jump to master counters
III Set Exit 3 and 4 to Alarm 2

J

Add digit if it is significant.
One shot switch, set initially to MR31
Jump to master counter
Output~A

Add •
Add II
Add ~ and replace in LN3
Jump to master counter
Set Exi t 1 to ~routine
Set Exit 2 to Alarm 4
Set Exit 3 to fracto part
Set Exit 4 to fracto part
Jump to one-s hot add in ".flfl"

6
6

LN3
DR14
MR3
MR4
MR5
MR7
MR27
MR44
MR46
MR60
MR55
6

I } 2-Point Distributor
II
I Is this digit zero? No,~MR47
Shift to 2nd position
X_"
Mask~ Q
Mask digit into LN3 = Output
Clear TEMP
Set Mask
Jump to master counter
Digit is zero: shift to "----X-" and
store in TEMP
Set Mask
Jump to master counter
II }
Set Ex its 3 , 4 to
Alarm 3
Is this digit zero? Yes,-+master
counter
No: add digit to TEMP
Mask ----. Q
Mask digit or digits into Output
Jump to master counter
Set Exit 1 to master counter
Set Exit 2 to Alarm 4
Set Exit 3 to alarm 4
Set Exit 4 to Alarm 4
Jump to master counter
ff _ _ _ _

Q

LN3
WSI
WS2
DR14
WSI
WS2
0014
MR5
MR7
DR14
WSI
Q
LN3
DR14
MR3
MR4
MR5
MR7
0014

429

2

IA
0
0
0

RC
0
0
0

3

0

0

4

0

6
7
10
11
12
13
14

0
0
0
0
0
0
0
0
0

15

0

0

CA

RC16

0
1
2
3
4
5
6
7
10

IA
0
0
0
0
0
0
0
0
0

UC
0
0
0
0
0
0
0

ii

0

0

13

12
13
14
15
16
17
20
21
22

0
0
0

0

14
22
1
77
17
43
77
7700
7777

0
1

5

EXCESSTHREE
CODES

0

0
0
0
0
0

0

0
0
0
0
0
0
0

0

0
0

0
0
0
0
0
0
0

Sets ADD/NO ADD switch to ADD
Sets ADD/NO ADD switch to NO ADD
Sets Exit 1 to ~ routine

MR17
MR21
MR67

Al::lrm 2 pnt.rv

PA16
PA23
PA30
MR31
MR43
DR14
MRIO
MRl1
MR36
PA3
PA5

Alarm 3 entry
Alarm 4 entry
Sets add ".~~ " one-shot switch
Fractional part routine entry
Sets Exit 1 to master counter
Integral part entry f 0
Integral part entry = 0
Period routine entry
Case I alarm switch
Case II ~~arm switch

0
3
4
5
6
7
10
11
12

0
1
2
3
4
5
6
7

- - -

-

-

---

8
9
~

f-

(
)

}

Masks

430

-

- -- - -

eI

23
24

1

1
CA

IA

1010
1012
UC25

10100
20101

1

0
0

WS
30000
30000

30000
30000

2

0

30000

30000

3

0
CA

30000
WS4

30000

o

IA
RJ

PA
UZO

1

MJ

2
3

MJ
RJ
MJ
TP
TP
RJ
MJ
RJ
TP
TP
RJ
MJ
RJ
TP
TP
RJ
MJ
RJ
TP

o

4

5

6
7

10
11

12
13
14

15
16

17
20
21
22
23
24
25
26

27
30
31

32
33

34

TP
RJ
MJ
RJ
TP
TP
RJ
MJ
CA

UZI

o
o

o

WA

WA2
PA2
CD3

o

LN4
CD
UP2

o

PA2
LN4

CD5
UP2

o

PA2
LN4
CD17
UP2

o

:3 }
PA2
PA
CD15 }
UP3
UP
LNll
PA
CD27 }
UP3
UP

o

LNII

PA2

PA
CD42 }

LN4

CD31
UP2

o

PA2
LN4
CD
UP~

o

UP3
UP

"TEMP" to take apart input line number
Temporary to store fractional part of
digits
Holds mask for inserting fractional part
of digits
Master counter (set to 6)

Reference error routine
Switch to case I or case II
Sub sub-routine exit
Print error heading case I
Exit to print alarm comment
Fill input Line Number in heading case II
Print heading with
Uniprint
Exit to print alarm comment
Print (alarm 1 entrs)
Alarm comment 1
Print (alarm 2 entry)
Alarm comment 2
Print (alarm 3 entry)
Alarm comment 3

LNII

PA
CD54 }
UP
UP

Print (alarm 4 entry)
Alarm comment 4

I.N11

PA35"

431

IA
0
1
2

3
4

5
6
7

10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50

00
65

26
01
01
40
34
46
24
34
66
50
01
01
43
40
30
34
24
34
01
50
47
01
43
40
30
31
51
34
34
66
50
01
01
43
40
34
46
30
50

CD
CD1
30506
30010
01010
01017
CD6
46463
01263
26663
50016
30502
67472
77777
01010
77777
CD20
72665
50663
46012
66650
65305
26300
25305
01010
77777
CD32
72665
54242
50244
32346
50016
30502
67472
77777
01010
77777
CD45
46463
01653
50263
01653

4

Parameter

63050
17777
10101
77777
11
03224
32454
05401
53050
63001
53054
77717
10101
77777
11
42401
03254
73432
13450
06630
15067
40117
10101
77777
12
42401
66634
60127
66501
53050
63001
53054
77717
10101
77777
11
03224
05367
00134
05066

S E

N T

C E 11

~

~
~

~

~
~

~
~

Parameter
I L L E
L !J. c H
A C T E
I N ~ S
T E N C
N U M B

E

N }

Heading

/).

~

Input Line Number

G A
A

Comment 1

R

R /).
E N
E ~
E R

~

(

/). 11

/).

/).

/).

11

Input Line Numoor

)

Parameter
X T R A 11
N T E G R
L /). D I G
T S ~ I N
S E N T E
C E ~ N U
M B E R ~ (

E

Comrnen t 2

I
A
I
11
N
/).
)

/).

/).

/).

/).

~

Input Line Number

Parameter
E
F

X T R A ~
R A C T I

0 N A
I G I
I N l:l
T E N
N U M

L

D

S /).
s E N
C E 11
B E R

T

~

l:l 11

/).

Conunent 3

(
~

11 l:l IJ,.

Input Line Number

)

Parameter
L L E
L l:l s E
E N C E
N l:l s E

1

432

G A
Q U

l:l I
N T

Comment 4

51
52
53
54

55

30
67
17
01
43
CA

50263
47253
77777
01010
77777
CD56

00150
05401
77777
10101
77777

E

N C E

/1

U

M B

R

N
/1

/1 /1 /1 /1

/1

E

(

/1
)

433

Input Line Number

b.

Translators

The two dimension translators are placed first in the group that
follows.

All other translators have been inserted in the order in which

they are stored on the drum.

See the regional assignments of translators

in the preceding subdivision for this order.

434

Dimension String-Out.
Dimension

String-o~No.

1

No. 1

is entered when Dimension Statement occurs as the

1st Sentence of a program. The routine uses the information in the dimension
statement to assign a drum address and call word for each variable, and to
build a file for each variable. Each file is added to the Dimension List.
When End of Sentence is encountered the routine exists to Dimension String-out
No.2.
Successive operands in a sentence are obtained by referencing the Get
Next Symbol routine. Variable name is picked up, assigned the current drum
address, and given a call word of 77 ___ type. Subsaipts are picked up and
used to form modulus and multipliers for the variable.

When closing paren-

thesis is picked up, the file is sent to the Dimension List.

Drum address

for the next variable is formed by adding modulus to old drum address and
next call word is set up for assignment to next variable.
Error Print-outs: This routine references Error Routine (WA) for print-out of
sentence number and sentence type, before all error print-outs. Several types
of errors are detected:
If more than four subscripts are given for a variable, the routine
prints: TOO MANY SUBSCRIPTS FOR VARIABLE t
If a new variable name is picked up before closing parenthesis for
preceding variable is found, routine prints:
IS INCOMPLETE

INFORMATION FOR VARIABLE

t

If more than 512 variables appear in a sentence, the routine prints:
TOO MANY VARIABLES
If available drum storage is exceeded, the routine prints:

VARIABLES

REQUIRE TOO MUCH STORAGE
If a fixed-point variable name is given in a sentence, the routine
prints:

ILLEGAL SYMBOL

If an opening parenthesis or comma between subscripts is missing, the
routine prints:

ILLEGAL SYMBOL SEQUENCE FOR VARIABLE '

If a modulus for a variable is less than 2, the routine prints:
DIMENSION OF VARIABLE t _ _ _ _ _ t IS LESS THAN 2.

435

When an error is found for a variable, the symbols following the variable
are ignored until a new variable name is found.

A file containing only

the variable name, drum address and call word is added to the Dimension List.

436

Dimension String-Out No. 1 Flow Charts - Page 1 of 6
Start

...

Clear TF thru

r----

Set initial
drum address

Set exits A to Al

Set exi ts

~

TF6

2

~

<;

D)

and E to CfY;

B to Bl

Test: Is 1st char.
a letter?

Set initial
call word

~

clear counters

&3

1) 2)

~

Set exit G
to G

Test:

Yes
Exit I

_ _ -AI

No

Exi t A ......
. . . . . -A

Test: Is 1st char.
a decimal point or
digit?

Is
?

symbol

Yes

No

..---~

Exit
G

Exit I

2

is
a t or ; ?

Test: Is
a )
Yes

'B2

Set u & v of
TF to 3

Exit
C

< ....-

....-Dl

"D

Yes Exit
E

2

~

Dimension String-Out No. 1 Flow Charts - Page 2 of 6
Put variable
symbol into file
(TF2)

01L._s_e_:_o_~........::=-·t_G_.....JH Set

::it

A

Set Exit C
to C2

Print:

Bl

Set Exits D and
--:.

to Dl and El

EJ-0

INFORMATION

FOR V~~IABLE • • •
IS INCOMPLETE

Insert name of
variable

and E to 12

exit B to

to

Insert name of
variable (TF2)

Set Exi ts B, C. D,

Hset

Set Exit G to
G2

Test:

~

Pr int : ILLEGAL
SYMBOL SEQUENCE
FOR VARIABLE •••

1

Set Exit A
to Al

~~

~

1st subscript
Distributor 2nd
"

~tl}\

®'-J
11

r----.--~~

Add 1 to
subscript cntr

for

3rd"

~

subscripts
~_______~4_t_h______"_____~

Dimension String-Out
Shift subscript
left 17 places
in A

Store subscript in
temp + 1 and in

No. 1 Flow Charts - Page 3 of 6

Store A in temp.

Increment u & v
Set Exit B to Bl

of TF by 1

and in TF4u

Set exits D and
E to O2 and E2
(Temp) (Temp + 1)
to A

TF5 v

to temp and to TF4u

(Sub scr i pt) (Temp + 1)
to temp + 1 and to
TF5 v

Store subscript in

(Subscript) (Temp +

(Subscript) (Temp)

TF6 v

Insert name of
variable into
print

to TF5 v

1)

Shift subscript left

and in TFSv

17 places in A

(Subscript) (Temp + 2)
to TF5 u

Print: Too many
subscripts for
var iable ...

Store A in temp + 2

(Subscript) (Temp)
to A

Set Exits B,

Set A to

C, D, & E to 12

Al

Dimension String-Out No. 1 Flow Charts - Page 4 of 6

H

<9-1L.._s_e_:O_E_~_i_t_B_ _ _ ~: ~:i ~
t C

Set Exit E

is modulus
~ 2?

Put name of variable into print

Set Exit B
to B2

to E3

Set Exits A &

o

to Al & 0 1

Print: DIMENSION
OF VARIABLE IS
LESS THAN 2

Set Exits 0 and
E to 0 1 and El

Set Exits A, E,
and G to Al,El'Gl

Check: has variable been inserted
into TF2?

Yes

Insert name of
variable into
print

Print: ILLEGAL
SYMBOL SEQUENCE
FOR VAR IABLE ...

SetEx~
to G2~ '--./

Dimension
Set no. of words in
Dim. Li st into loc.
6

Print:

String~ut

~--~

No. 1 Flow Charts - Page 5 of 6

Exit
to CR - Dimension No. 2 Stringout.

ILLEGAL

SYMBOL SEQUENCE

Print:
SYMBOL

Insert illegal
symbol into print
w::...
w::...
~

~

Jump

Illegal

---

Test: has variable been inserted
into TF2?

~

Clear TF4

Set u & v of TF3
to 3

Test: Is no. of
call words < 512?

Yes

Clear
temp.

Add I to no.
of call words
assigned

Add (TF) to no.
of words in Dim.
List

Put no. of subscripts into TF4v

Dimension String-Out

Add temp. to TF1
to form next drum
addr.

Set

u

& u of

TF to 3

No~

1 Flow Charts - Page 6 of 6

Set sub sc,r i pt
distributor
for subscript 1

Is more
space available
in drum?

Clear TF2 and
TF4-6

Print: VARIABLES REQUIRE TOO MUCH STORAGE

Print: TOO MANY
VARIABLES

Clear subscript counter

Set next ; } ® 1 1
19
word into TF3

V

. ___
c_1e_a_r_l -I§'
_ temp. ~

Dimension String-Out No. 1
RE
RE
RE
RE
RE
RE
RE
RE

OY4400
OT4424
OU4502
OV4564
OW4622
OX4643
OZ4707
CR5075

String-Out Subroutine Regions Are Needed to Assemble This Tape
IA
RP
TP
TP
TP
RP
TP
TP
RJ
RJ
RJ
RJ
MJ
TV
TV
TV
MJ

OV
10007
OZ
OZl
DZ2
10003
DZ
DZ22
OX
OX16
OV17
OY2
0
OW16
OW16
OW16
0

OV2
TF
TFI
TF3
DV6
DZ111
TF
OX
DX16
DV14
OY2
OW
OW7
OWIO
OW15
30000

20
21
22
23
24
25
26
27

RJ
RJ
TV
TV
RJ
RJ
TV

OW15
OU
OZ24
OZ24
0
OWl5
OX
OZ24

30000
DU
OWIO
OWl5
OW
30000
DX
OWl5

Set exit E to E2
Set exit B to B2
Set exit 0 to Dl
Set exit E to EI
Back to get next symbol
Set exit E to E3
Set exit A to Al
Set exit E to El

30
31
32
33
34
35

RJ
MJ
RJ
RJ
TV
MJ
CA

OY2
0
OW7
OU
OZ24
0
OV36

OY2
OW
30000
OU
OW7
OW

Set G to Gl
Back to get next symbol
Set exit C to C2
Set exit B to B2
Set exi t C to C1
Back to get next symbol

0
1
2
3
4

5
6
7
10
11
12
13
14
15
16
17
El

E3

C2

MJ

}

}

Clear TF-TF6
Set initial drum address
Set initial call word
Clear counters
Set u & V of TF to 3
Set exit A to Al
Set exit B to Bl
Set exits C, 0 & E to Cl , 01, &E l ·
Set exit G to Gl
Back to get next symbol

443

Gl

G2

IA
MJ
MJ
RJ
RJ
TP
ZJ
TP
TP

DY
0
0
DW13
WA
TF2
DY6
A
DZll

CR
DV
30000
WAI
A
DY13
DZ60
UP3

10
11
12
13
14
15
16
17

RJ
RJ
MJ
TP
RJ
RJ
SP

UP2
DT55
0
DZ12
UP2
0
DW13
DZl12

UP
IJf51
DY17
UP3
UP
DY17
30000
17

20
21
22
23

SA
TU
TV
MJ
CA

Ull17
A
DZl13
0
DY24

0
6
6
DY

2
3
4
5
6
7

IA
TP
TJ
RJ
TP
RJ
MJ
RA
RA

DT
DZl13
DZ20
WA
DZ14
UP2
0
DZl13
DZl12

A
DT6
WA 1
UP3
UP
Uf25
DZ21
TF

10
11
12
13
14
15
16
17

TV
RJ
RA
TJ
MJ
RJ
RA
TP

20

TP
RP
TP
TP
TP
MJ
RJ

0
1
2
3
4
5
6
7

0
1

21
22
23
24
25
26

MJ

02111

TF4

'lE

'lEI

TFI
DZ26
0
DU7
TF3
DZ22

DZl14
DT15
DT45
DU7
DZ21
TF

DZ
10003
DZ

)

DZ

TF2
DT23
TF4
IYllll

IYl

IYll14

0

30000
30000

[)wl0

}
1

J

Exit to Dim. String-out No. 2
Jump to start
Set exit G to Gl
Print Error heading
Test: Has variable name been inserted into
TF2?
If so, insert name of variable into pr into
Print:

ILLEGAL SYMBOL SEQUENCE FOR VARIABLE

Send incomplete file to Combination List
Jump to G
2
Print: ILLEGAL SYMBOL SEQUENCE
Jump to G 2
Set exi t G to G
2

)

Set location 6 No. of words in Dim. List to u
No. of call words to v
Jump to exit

}
.I

}

Test: Have less than 512 call words been
assigned?
If not, print error heading
Print: TOO MANY VARIABLES
Jump to subroutine exit.

Send file to combination list

Clear subscript counter
Clear Temp.
Subroutine exit

444

27

TP

DZl14

A

30
31

TJ
RJ

DZ25
DT25

DT37
DT

32
33
34
35
36
37

RJ
RJ
RJ
TV
MJ
TP

DV25
DX
DY16
DX24
0
TF2

DV25
DX
DY16
DWIO
DW
DZ77

If so, send file to Comb. List & set for
next file
Set exit E to E3
Set exit A to Al
Set exit G to G
Set exit D to D12
Back to get next symbol.
Put name of variable into print

40
41
42
43
44
45
46
47

RJ
TP
RJ
RJ
MJ
RJ
TP
RJ

WA
DZ17
UP2
DT55
0
WA
DZ16
UP2

WAl
UP3
UP
DT51
DT32
WAl
UP3
UP

}

Print error heading
Print: DIMENSION OF VARIABLE ' ---, IS
LESS THAN 2
Send incomplete file to Combination List
Back to set new exits
Print error heading
Print: VARIABLES REQUIRE TOO MUCH STORAGE

50
51
52
53
54
55

MJ
TP
TP
TP
RJ
MJ
CA

0

DT15
TF4
TF
DZl14
DT
30000

1
2
3
4
5
6
7

IA
RJ
RJ
TP
RJ
TP
TJ
RA
RJ

DU
DW16
RD
SY2
RS2
DZ27
DZlll
DZlll
DU7

}

Check fixed pt. symbol
Convert XS3 to octal

10
11
12
13
14
15
16
17

RJ
RJ
RJ
MJ
LA
TP
TV
RA

DU7
DU7
DU7

20
21
22
23

RJ
RJ
RJ
MJ

0
B2

8

DZ
OZ22
I1Z

DT25
0
DT56

0

RS3
A
A
TF

DX16
DV20
DT26
0

30000
RD1
RS4
RS
A
DU51
D221
DUIO
DU14
DU24
DU30
DU42
17
DZ114
TF4
DZ23
DX16
DV20
DT26
DW

}

}

}

Test:

Is modulus

~

2?

Test: Is no. of subscripts ~ 3
If so, add 1 to subscript counter

Distributor for subscripts

}

1st subscript to Temp. and to TF4u
Increment TF

}

Set B to B , E to E , D to D2
1
2

445

11

24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56

57
60
61

TP

RS3
RS3
DZl14

IJll15 }
TF5
DZl15
DU15

2nd subscript to temp.+ 1 and to TF5v

MP

DZll4

TP
TU

A

RS3
)
IJll14
TF4
T53 1

3rd subscript
TF4u

TV
MP

MJ

o

A

MP

DZl15

TP

A
A

TV

J

TU

A

MP

IJll14

MJ

o

DU15

TP
RJ
TP
RJ
RJ
RJ
RJ
RJ

TF2
WA

RS3

TV
MP
TV
MP

RS3
DZl15

A
A

o
A

IEl16

UP2
Uf55
DW17

DW17

DV17
DX

DV14
DX
DX30

MJ

o

CA

DU62

1

IA
RJ
TP

2

QJ

3

TP

4

QJ

5

TP

6

QJ

DW
SY
SY7
DW3
SYlO
DW14
SYll
DW16

Exit C

7

EJ

III 3

30000

Exit D

10
11

EJ
EJ
EJ
EJ

IJl4
IJl5
IJl6
IJl7

30000
DW15

o

Exit A

Exit
Exit
Exit
Exit

G
I

12
13
14

E

15

B

16
17

MJ
MJ
MJ
RJ

o
o

o
IJ.\116

}

1

Ill36

WAI
UP3
UP
Uf5l

DZ15

1

02115 ~

TF5
17
IJll16
TF5
DU20
TF6
RS3
TF5
RS3
TF5
T53

LA
TP
TU
MJ

(Temp.) (Temp. + 1) ~ A

}

~OOOO
~7
OW15

30000
DX36
30000
30000
30000

3rd subscript x temp.
TF5 v

and to

1 ~ temp.

and to

3rd subscript to temp. + 2u and TF5 u
4th subscriDt to TF~r
(4th subscript) v:~mp." + 1 ~ TF5 v
(4th subscript) temp. + 2 -+ TF5 u
(4th subscript)

temp.~A

Insert name of variable into print
Print error heading
Print: TOO MANY SUBSCRIPTS FOR
VARIABLE

Send incomplete file to Combination List
Set B to 12
Set C, 0, & E to 12
Set exit A to Al

Get next symbol
Test: Is 1st char. a letter?

SYI
gW5

x tpmp~ -+ tpmp~

}

Te s t :

I sIs t char. I, J, K, L, or M?

}
}

Test: Is 1st char. decimal point or
digit?
Test: Is symbol (?
Test: Is symbol )?
Test: Is symbol,?
Test: Is symbol ;?
Test: Is symbol ~.?
Illegal symbol exit
Set exit B to 12

446

Exit 12

Al

A2

B,C,D,E

@

CD

20

MJ
CA

0
DW2l

0
1
2
3
4
5
6
7

IA
RJ
RJ
TP
RJ
RJ
RJ
RJ
RJ

DX
DW4
RH
SY2
DV32
DX16
IN17
DY2
DW4

10
11
12
13
14
15
16
17

RJ
TP
TP
RJ
RJ
MJ
RJ
RJ

WA
TF2
UllO
UP2

20
21
22
23
24
25
26
27

TP
ZJ
TP
TP
RJ
RJ
RJ
RJ

TF2
DX22
A
Ulll
UP2

30
31
32
33
34
35
36
37

RJ
RJ
MJ
TP
RJ
MJ
TP
RJ

DY16
DX
0
Ul12
UP2
0
SY2

DY16
DX
DW
UP3
UP
DX26

WA

WAI

40
41
42
43

TP
RJ
TP
ZJ
CA

Ul13
UP2
TF2
DX22
DX44

UP3
UP
A
DX26

IA
0
0
0
17
43

0
40001
0
77777
77777

0
1
2
3
4

UI'55

0
11\116
WA

UI'55

DW17
DV17

OW

30000
RHI
TF2
DV32
DX16
DV15
DY2
DW

Set exit A to Al
Check variable symbol
Put variable symbol in file
Set exit C to C2
Set exit B to Bl
S~t exits D and E to Dl and El
Set exit G to Gl
Set exit A to A2 & go to pick up next
symbol

WAI

Print error heading
Insert name of variable into print
Print: INFORMATION FOR VARIABLE
IS INCOMPLETE
Send incomplete file to Combination List
Jump to Al
Set exit B to Bl
Print error heading

Ul45

UP3
UP
DI5l
DXl
30000
WAI

}

A
DX33
Ul60
UP3
UP
UI'51
DW17
W14

}
}

}

Te st: Has variable been inserted into
TF2?
If not, put name of variable into print
Print: ILLEGAL SYM30L SEQUENCE FOR
VARIABLE --Send incomplete file to Co~bination List
Set B to 12
Se t Ct D, an d E to 12
Set G to G2
Set A to Al
Back to get next symbol
Print: ILLEGAL SYMBOL SEQUENCE
Back to

ill

Insert il egal symbol into error print
Print error heading

Ul65

}

Print:

Ul

0
0
77000
77777
77777

447

ILLEGAL SYMBOL

5
6
7

21
23
01

77777
77777
22777

77777
77777
77777

10
11
12
13
14
15
16
17

40
40
40
40
40
40
40
40

DZ40
DZ51
DZ51
DZ62
DZ67
DZ30
DZI03
DZ73

11
11
4
5
4
10
6
10

20
21
22
23
24
25
26
27

0
0
0
0
0

0

0
0
0

0
3
1
0
2
77777
0

1000
1
3
1
DX17
0
0
3

30
31
32
33
34

66
50
65
65
70

51510
73016
26543
01315
24543

14724
56725
45266
15401
42425

1

~

j

U P parameters
for alarm
prints

XS3 code s
TOO MANY SUBSCRIPTS FOR VARIABLES ---

35

46

30014

37777

36
37

01
17

01010
22-777

10101
77777 J

40
41
42
43
44
45
46
47

34
24
31
54
01
01
17
50

50315
66345
51540
34242
43777
01010
01346
26514

15447
15001
17024
54630
77777
10101
50134
75246

50
51
52
53
54
55
56
57

30
34
46
51
67
31
54
01

66302
46463
01657
46016
30502
51540
34242
43777

27777
03224
34725
53053
63001
17024
54630
77777

60
61
62

01
17
34

01010
22777
46463

10101
77777
03224

lNFORMATION F 41
Yes

JA224

JA223

Go thru POsSi:]-1ble Place CW in stringfct. Jump out
out
L
-_ _ _. _ _ _ _

~

COMPUTE String-out (Cont.)

E
Jlinul -

Other

JA45
P lace zero string-out
word with check before
for zero str. already

eo-a .

Setllicolon ;

Yes

level
I
No

JA433

JAn

No

.JA56

L_C_I_o_sl_·n-.:.g_pa~r_._)_ _~ Decrease level
~ter

by 1

Were we inside subscript. variable?
P'---1I--I

RJ to alarm 4 and
No
clearing Leve I ~te~...L...------...L----------l

F

COMPIJfE String-out (Cont.)

J

RJ to make up CW
after check and put
in Comb. List

JA3b7

r;;

TS4 = 407

t----------------.(·~5eudo

op.)
Yes

JA357

JA:365

;C;;t CW

from

~ny List

.---_ _ _ _--oofNot In
List

jG;t

CW from

~Ib. List.

!

Not in Li st

/ Get CW from
l----L-~ Comb. List.

\>

COMPUTE Stringout (Cont.)

JA136

JA 137

in extra
leve 1 meter

~----~

Is extra level
meter>l1

Adv. extra level
meter

Reduce extra level
meter by I

JAl30
JAl26
Was last string.
word zero?

Put XS3

~o

6.

r---~----~

JAl32

RS EW3 fina I

TV A WLO place

- EW 3 beginning

no. of words in
stringout

JAl33

COMPU1E STRINGOUT (Con':.)

Inside
pa rent.

Ou tside
parent.

Inside
parent.

Outside
pa rent.

1

1
Inside
func t.

Inside
subscr., va r.

Inside
pseudo op.

cb

~------------------------~vr------------------------_J

Inside
funct.

Inside
subscr. va r.

I~

5

l
Inside
pseudo op.

,cb

~-------------------------v-----------------------~

Check for combination list

Check for dummy list, then comb. list

A1arm 21

Is first charact.
I,J,K,L or M?

Alann 20

Assign CW fxd. pt.
var. and add to
Comb. List

Are we inside
argum. of sub.var?

Assign CW fltp. var.
and add to Comb. List

vesJ'---_J
~nn19

J

COMPOTE STRINGOUT (Cont.)
Not in Comb. List
77 is next symbol
66
t----t--

( ?

-

65

( ?

M

?
?

4

?

Other"
Not, in comb. list
77

is next symbol

(67) -

2

~-t---

65

64
Other"

""'~Not in Comb. List

~

(67) is nex. symbol
3

64

_..

"

Other"
Not in Comb. List
77 is next symbol
(67) "
4

?

66

65
M

Other"

Assume pseudo operat., make up format and put in comb. list
depending on v of TA5, save 4,3 or 2 addr. and XS3 code and set "inside sub. var" to 1 and set JD22
V
No
alarm 16
..... Yes save CW and XS3 code and ~ of elements in fct., set "ins. funct .... to 1, set 3 in counted ~ of elem. and v of JB253=O
~No alarm 17-1/2
<:Yes alarm 15
No save CW
l? «'Yes: alarm 22
alarm 15
No: save CW
No: save CW
?~Yes
No save CW
?.::Yes alarm 15
No are we ins. subscr. var. as well? <;t Yes: adv. counter for subscr. Is it > l?~Yes: alarm 22
No: save CW
No: alarm 20
alarm 13, go to EXTRA
13," "get next symbol
Generate CW after checks and put it in comb. list
ala rm 15
No adv. counter for subser. Is it > 41 ~ Yes: alarm 22
No: save CW
( 1 4? 4? 4?..zN~~:

alarm 22
save CW

V

VI

VI

COMPUTE STRINGOUT (Cont.)
Not in

Du~ny

or Comb. List alarm since funct. symb. expected

7-7 is next symbol (1

~Yes

dependi ng on v of TA5 save 4,3, c r 2 addr. and XS 3 code t set ~tins. sub:' to 1 and set J022
alarm 16
~Yes
save cw and XS3 code, set "ins. fct~ = 1, set JD22, set v of JB253=0, save ~ of e1em. in fct.
No alarm 17-1/2
~Yes
alarm 15
"4No save CW
~Yes alarm 15
No save CW
..;rYes save CW and xS3 code. set "ins. fct." = I, set v of JB253 = 0, save # of e1em. in fct.
"4No alarm 17
..;rYes alarm 13 go to EXTRA
"4 No
13," " get next symbo 1

v

No

66

"

..

65
64

"

61

"

(1

?
?

other"

"

1

"

?

Not in dummy or comb. list generate cw after checks and put it in comb. list
77 is next symbol { ? ~Yes depending on v of TA5, save 4, ~, or 2 addr. and XS3 code and set "ins. subscr •• =
"4 No alarm 16
76X ..
( ? ~Yes save CW and XS3 code and set "irs. subscr. var." = 1
No alarm 16
alarm 15
(67) ..
l?~Yes: alarm 22
No are we inside subscr. var. as well?
No: save CW
No: save CW
 l1~Yes: alarm 22
No are we inside subscr. var. as wel11
No: save GW
alarm 20
No:
alarm 15
~Yes
63
?
alarm 22
11
~Yes:
No are we inside subscr. var. as we] 11
it>
adv.
ct.
for
subscr.
Is
Yes:
save CW
No:
save CW
No:
alarm 13 go to EXTRA
~Yes
Other" "
1
"
No
13, "
" get next symbo 1
~.

<:

6
~

CD
0)

..

..

<
<

Not in dummy or comb. list generate CW after checks and put it in
(67) is next symbol (1  41
..
.AYes Alarm 15
II
64
(1 ~No Adv. counter for subscr. Is it :> 41
..;rYes Alarm 15
63
(? "4No adv. counter for subscr.
Is it > 41
Yes alarm 13 go to EXTRA
Other"
..
(?
" 1 3 , " " get next symbol

..

 l?

}
Is next symbol

Restore and go to get next symbol
Reduce extra Level Meter
Jump to check next symbol 8 .?
Before "go to g~t next symbol"
Go to get next symbol
Restore SY and SZ
Go directly to get next symbol
Re s tor e SY an d SZ
Go to "before go to get next symbol"
(used as const. for JB515)
} Is symbol at hand AND?

JA173

}

Is word index
Is Level Meter

RD

= O?

= O?

Yes; warning alarm

2

JA546
JD

~A36

}

JA561
JD

~A26l
~A453
~A46l
JA232
JC21

Go to warning alarm 3
Put 1 in word index
Has symbol at hand a letter?

}
Is next symbol (?
}

Is level
}

~A227 }
~A257 }
JB401

Go to warning alarm 1
Clear word index
Is Leve 1 l'kter = O?

RDI

= O?

Are we not inside subscr. var.?
Adv. counter for subscripts by 1
Are we not inside function?
Is counter of subscripts

>

I?

Save SY2-14 in JD2-14 and put SZ2-14
SY2-14
Check fixed pt. con st. format
~

RJ

~.?

}

470

216
217
220
221
222
223
224
225
226
227
230
231
232
233
234
235
236
237
240
241
242
243
244
245
246
247
250

251
252
Exit When
253
Case ® in 254
Dummy List 255
256
257

TP
RJ
TP
RJ
TP
RJ
MJ
RA
MJ
TP
TJ
MJ
EJ
TP
EJ
TP
TJ
MJ
TV
RJ
RJ
TP
TP
RJ
RJ
TP
MJ
TN
MJ
RJ
QT

SZ2
RS2
RS3
GW
Q

EW

o

JD21

o

JC24
JD20

a

JD17
JC21
JDl
JC20
SZ6

o

JCIOI
JB405

RB

SY2
SY3
GG2
JA246
GG3

o

GG3

o

JB525
JC12
JC43

RS4
RS

}

Convert to octal (fixed point)

A

I

Get CW for const. from Const. List

GWl
EW2
EWl
JB222
JC2l
JA235

>

4?

Are we not inside pseudo?
Is Level ~ter = I?

1A225 }

~A241 }

Has no. a decimal point?

JA214
JB222
JB401
RBI
GG4 }
GG5
GG
JA247

Set jump for exit out of function
Store SY, SZ
Check format floating point constant
Couvert to floating point octal
Inserted for eventual TN GG3 GG3 (?)
Go to assign CW and store it

1A221 }

~A221 }
1:'523 }

JA436

JA317
JA502
JA433

260

MJ

o

JAl60

261
262
263
264
265

EJ
MJ
RJ
TP
MJ

SZ7

JA263
JA476
JB401

266
267
270
271
272
273
274
Not in List 275
In list
276
277

EJ
TV

o

Is countpr of subscr ipt s

JA2l4
JA240

o

JB405
JC20

Jump to possible funct. jump out
Adv. counter of e lemen ts in pse udo

~A257 }

EJ
MJ
RJ

o

Bring CW to string-out

Case of neg. floating point no.
Mask out CW code of CW found in Dummy
List
Is it 61? Case @in Dummy List
No, go to alarm 13
Case fixed pt. const. no. of subscr. ~1,
alarm 5 in RJ
(JA160 OK since coming from JA230, there
was SY2-14 not yet changed)
Is first char. a letter?

~433 }

Store SY -+ JD and SZ -+ SY.
Is Level Meter # O?
Jump to subroutine to check whether VARY

JA274
JB4
JB2
JB
JB4
JB325
TAl
JA302

Are we not in subprogram? (TS4 = O?)
Set jump to alarm 21 in JB4 (JA312)
Set exit in case it is in Dummy List
Get CW from Dummy List or Comb. List
Restore address JB4
Case ® in Comb. List
Get file from Comb. List
Pseudo opere not in list; go to put it
Mask out first digi t of CW---+ A

OK

TV

RJ
TV

MJ
RJ
MJ
TP
QT

TS4
JC64
JC73
JB5
JC63

o

TA

o

JC44
TA4

~

}

471

m

300
301
302
303
304

EJ
MJ
TP
EJ
TP

305
306
307
310
311
312
313
314
315

TP
TP
AT
RJ
MJ

JC45

o

JA3l4
JB303

~45

JC13
JD2
SZ2

TFI

JClll

TF

VB

A
TF2

Is CW 4 ---- type (pse udo)?
Case CD in list
Is next symbol (?
Go to put pseudo oPe in Comb. List
Shortcut: Pseudo OPe without following

}

n::l"'Ant_
r -- '--" .... -.

Case CW
4
P"S;udo Op:-316
Case CW
317
61 _ _ _ 320
321
322
323
324
325
326
327
330
331

TV

MJ
TP
EJ
MJ
TP
EJ
MJ
TP
RJ
TV

JC36
TE

o
JC63

o

JC13
JD2
o

JC23
JBl53
JC20
JC2l
TS2
TS3

MJ
EJ

o

340
341
342
343
344
345
346

MJ
RJ
MJ
EJ
EJ
EJ

o

347
350
351
352
353
354
355
356
357

RJ
MJ
RJ
MJ
TP
EJ
TV

RJ

Case pseudo in list} is next symbol (?

JB470
JB262

JA322
JA524
JID2
JB145
JB253
JD15
JD26
EW2 }
JB221
JA343
"'

336
337

TV

A

A

333
334
335

TV

Bring list in Comb. List
Go again to get list from Comb. List
Restore addr. JB4
Jump to alarm 21

JJJ2

o

o

J017
JC2l
JDl
JD16
JB5
JD16
JB5

o

JD15
JD16
TS4
JC65
JB5

~526}
JA341
JB3

JB317
JA6l0
JA363
JB3
JB360
JA337
JA353
JA351
JB2
JB

o

JB352

JB5

JB3

o

JC101
JC20
TS4
JC74
JB5

Place CW

TEl
JA274
JB4
JA542

JC13

TP
TP
TP
MJ
EJ
TP
EJ
EJ
RJ

332

}

JA350
JB222
A

JA361
JB2
JB

Jump to handlA pse udo wi thout follow ing

parent.
Case CW 61 in Dummy List} is next
symbol (?
No, go to alarm 17
Set counter of elements in funct. to 3
Savp, format of given funct.
Clear shift count
Set index "inside funct." to 1
SaVA XS3 code
Place CW in string-out and go to get
next
Are we not inside pseudo op?
Is Level Meter = l?
(only inside
pseudo?)
Are we inside subscr. variable?
Get file from Comb. List or put it in
when needed
Case @in list
Are we not insidA subscr. var.?
--+ alarm
Go on to check for TS4
Get f~ from Comb. List
Case ~6 in list
Are w ot inside funct.?
Are we not inside subscr. var.?
Is TS4 = O?
Set exit for case it is in Dummy List

~ file

from dummy or Comb. List

Case ~ in list (= 264 case)
Get C~rom Comb. List

Set jump-out for funct. (to JB240)
Put zero~A
Is TS4 = O?
Set exit in case it is in Dummy List
Get CW from Dummy List or Comb. List

472

360
361
362
363
364
365
366
367
370
Exit when
371
case ® in 372
Dummy List 373
374
375
376
377
400
401
402
403
404
405
406
407
410
411
412
413
Alarm
414
Entries
415
416
417
420
421
422
423
424
425
426
427
430
431
432
433
434
435
436

437
440
441
442
443
444

MJ
RJ
MJ
EJ
TV
RJ
MJ
RJ
MJ
TP
(]I

EJ
EJ
MJ
TP
EJ
MJ
TP
TJ
TJ
TJ
MJ
0
TP
EJ
TP
MJ
TP
TU
RJ
MJ
TP
TP
TU
RJ
RJ
MJ
RJ
MJ
TU
RJ
RJ
MJ
TP
TU
RJ
RJ
MJ
TP
TU
RJ
RJ
MJ

0
JB5
0
T54
JC66
JB5
0
JB5
0
T53
JC12
JC42
Jell
0
JC13
JD2
0
JC20
JD15
JD16
JD17
0
0
JC13
JD2
T53
0
5Z2
JI
JB424
0
SZ2
SY2
JJ
JB424
JA423
0
JA423
0
JL

JB424
JA43 1
0
JD27
JM
JB424
JA436
0
JD25
IA
JB424
JA443
0

Case ® in Comb. List
Get CW from Comb. List
Case @ list
Is T54 = 0 ?
Set IlXit to ~when in Dummy List
Get CW from
y List or Comb. List
Casp. ~ in list
Get C rom Comb. List

JB333
JB3
JB3ll
JA367
JB2
JB
JB355
JB3
JB355

Case

e

in list

cod~ -case ® in Dummy List
A
JA376
Is it 76 --- ?
JA407
Is it 63 --- ?
Go to alarm 13
JA502
Is next symbol ( ?
A
JB162
Jump to alarm 16
JA520
Come from JA55 , zero >A
A
When open parenthesis found:
JA157
Am I really inside so~thing?
JA157
JA157
JA576
No, jump to alarm 4
0
Fre~
Is next symbol ( ?
A
JA5l4
TA4
Put CW from dummy result to Comb. result
JB531
JI4
JB420
JB4l5 ) Alarm 1
JAl60
JJ5
JJ7
JB420
Alarm 2
JB4l5
JA424
JA157
JA4l7
Alarm 2.5 or 3
JA43
JB420
JB4l5
Alarm 4
JA432
JA43
JM4
JB420
Alarm 5
JB4l5
JA437
JA43
IA7
JB420
JB4l5
Alarm 6-1/2 or 18.5
JA444
JAI07

Q

}

Mask

}

}

}

}

)
)
)

473

CW

445
446
447
450
451
452
453
454
455
456
457
460
4p1
462
463
464
465
466
467
470
471
472
473
474
475
476
477
500
501

502
503
504
505
506
507
510
511
512
513
514
515
516
517
520
521
522
523
524
525
526
527
530
531

TP
TU
RJ
MJ
RJ
MJ
TP
TP
TU
RJ
TV

MJ
TP
TP
TU
RJ
TV
MJ
RJ
TV

MJ
TP
TU
RJ
MJ
TP
TU
RJ
MJ
TP
TU
RJ
RJ
MJ
TP
TU
RJ
RJ
MJ
TP
TU
RJ
MJ
TP
TU
RJ
MJ
TP
TU
RJ
MJ
TP
MJ

TJ1
JK
JB424
0

JK5
JB420
JB415

JA431

JB424

JA427
JA134
JQ4
JQ5
JB420
JB415
JA246
JA136
JR4
JR5
JB420
JB415
JA246
JA157
JA433
JA246
JA157
Jr6
JB420
JB415
30000
JU6
JB420
JB415

0

JB150

SZ2
JV
JB424
JA505
0
SZ2
JW
.18424
JA512
0
SZ2
JX
.18424
0
SZ2
JY
JB424
0
SZ2

JV4
JB420
.18415
JA506
JB445
JW4
JB420
JB415
JA513
.18445
JX6
.18420
JB415
JA135
JY6
JB420
.18415
JA163
Jl7
.18420
JB415
JA163
IA7
JA441

0
SZ2
SZ3
JQ
JB424
JC102
0
SZ2
SZ3
JR
JB424
JCI02
0
JA436
JC102
0
SZ2
Jr
JB424
0
SZ2
JU

Jl

JB424
0
SZ2
0

JA107

I

Alarm 6-3/4

Alarm 4.5 or 7

J

Alarm 8

Alarm 9

1
J

}

Alarm 5.5 or 10

I

Alarm 12

1

)

Alarm 11

Alarm 13

I)

Alarm 14

Alarm 15

I
I
}

Alarm 16

Alarm 17

Alarm 18

474

532
533
534
535
536
537
540
541
542
543
544
545
546
547
550
551
552
553
554
555
556
557
560
561
562
563
564
565
566
567
570
571
572
573
574
575
576
577
600
601
602
603
604
605
606
607
610
611
612
613
614
615
616

TP
TP
TU
MJ
TP
TP
TU
MJ
TP
TU
RJ
MJ
TP
TP
TU
RJ
MJ
TP
TP
TU
RJ
RJ
MJ
TU
RJ
MJ
TP
TU
MJ
TU
RJ
MJ
TP
TU
RJ
MJ
RJ
MJ
TP
TU
RJ
MJ
TP
TP
TU
MJ
RJ
MJ
TP
TP
SP
QS
MJ

SZ2
JD27
IB
0
SZ2
JD26
IC
0
SZ2
ID
JB424
0
SZ2
SZ3
IF
JB424
0
SZ2
SZ3
IG
JB424
JB400
0
IK
JB424
0
JD26
JO
0
IH
JB424
0
SZ2
JP
JB424
0
JA431
0
SZ2
JS
JB424
0
SZ2
JD27
IE
0
JA431
0
JC1
JC123
SY2
A
0

IB4
IBlO
JB420
JB415
IC4
IClO
JB420
JB415
IDlO
JB420
JB415
JB445
IF6
IF7
JB420
JB425
JA177
IG6
IG7
JB420
JB425
JB371
JA177
JB420
JB425
JA36
J06
JB420
JB415
JB420
JB415
JA134
JP2
JB420
JB415
JB443
JA60
JA72
JS6
JB420
JB415
JA163
IE4
IE10
JB420
JB415
JA60
JA135
JI4
Q
102

JI4
JA4l4

)

I
I
1

Alarm 19
Alarm 19-1/2 Set RJ exit in JB424
Alarm 20
Alarm 20-1/2 Set RJ exit in JB422
Alarm 21

Warning alarm 1

Warning alarm 2

}
}
}

Warning alarm 3
Alarm 5-1/2
Alarm 23

)

Alarm 7 or 12-1/2

1
)

Alarm 6 or 4.55

IJ
1

Alarm 10 or 17-1/2

Alarm 22
Alarm 4-1/10

Alarm entre 1 for neg. sign

475

617 TV
620 TP
621 TO
622 RJ
623 MJ
CA

JB231
SZ2

JI'
JB424

o

JB223
)
JI'6
JB420
JB415
JA135

JA624

476

Alarm 11 1/2

o
1
2
3
4
5

6

IA
RJ
MJ
MJ
RJ
MJ
MJ
TP

JB
TS
0

0
0

30000
TAl
JB6
30000

JC15

Q

JC13
JD2
SZ2

~A542

0

TA

7
10
11
12
13
14
15
16
17

TP
EJ
TP
RP
EJ
TP
EJ
RJ

A

20

RA

21

MJ

22
23
24
25
26

TU
MJ
TP
EJ
MJ

27
30
31
32

qr

TSI
JB3

20005
JCl16
JC20
JD16
JB424

Get file from Dummy List
not in Dummy List

Get file from
Comb. or Dummy
List
RJ-come-back when in Dummy List
Get file from Comb. List
Not in Comb. List: have CW made
RJ-come-back when in Comb. List
Set mask in Q
Add symbol to
Comb. List
Is next symbol (?
}

!

}

JB15
JB24

}

~22

}

Mask out XS3 code of first digit
Is it I, J, K, L, M?
Are We not inside subscr. var.?

JA532

Print alarm (subscript not starting with

JD20

JC21

0

JA161

JC6

JB42
JB35

Adv. No. of subscr. (in order to go on
checking format of subscr. var.)
Go and get next symbol (avoid funct. check
because subscr. not interesting anyway)
Setting for floating point variable.

I, J, K, L, M.

0

JC20
JD16

~30

}

0

JB34

MJ
EJ

0

JB34
JB34

JB422
JC26

33

RJ
TP
MJ

0

JA536
TA4
}
JB220

34
35
36
37
40
41
42
43

TU
TP
TP
TP
RJ
RJ
AT
RJ

JC5
JClll
SZ2
JC20
RH
TK
30000
TE

JB42
TF
TFI
TF3
RHI
TKI
TF2
TEl

44
45

MJ
TP

0

SZ2

JB3
TJl

46
47

RA
TP

VB
A

JC36
TJ2

JD15

}

}

Var. star t wit hI, J, K, L, or M
are We not inside subscr. var.?
We are inside subscr. var.; jump to further
handling.
Free (instr. unused)
We are not inside sub.: are We not inside
funct.?
Print alarm
Put "65000" in TA4 and save it as CW in
string-out (assuming floating point yare was
meant, in order to go on checking the format
of the funct ion. )
We are not inside funct.: make fixed pt. var.
Put 3 in u of TF
Put XS3 code in TFI
Cle ar TF3
Che ck for format
Get CW
Add 64 --- or 65 --- (in u 200 or 2l6)~ TF2
Add new floating point or fixed point variable to Comb. List
Jump to get symbol from Comb. List
Save XS3 repr. of pseudo OPe Pseudo op not
in list.
Make up CW
(This TJ2 used for updating last TF address,
later added to last bit for no. of elements,
JB77)

477

50
51
52
53

TP
TV
RJ
TV

JCllO
JC32
JB400
EW3

TJ
JA157
JB376
JBl17

54
55

TP
TP

JC21
JC20

JD17
JD24

56
57
60
61
62
63
64
65
66
67
70
71
72
73
74
75
76

MJ
RJ
TP
EJ
EJ
MJ
TP
EJ
EJ
MJ
TP
TJ

o

JA161
JA160

JB57
JDl
JC2l
JC20

o

JB64
JB462
JA160
A

A

RA
TV
TP
RA

JC20
SZ6
JC33
JB47
JB47
30000
TJ

77
100

RA
MJ

o

TJ2

101

TU

JC32

JC21
JA160
JB75

102
103
104
105
106
107
110

MJ
RJ
TP

TA

III

TU

QT
EJ
EJ
EJ
MJ

o
JC12
TA4
JC25
JC26
JCIO

o

JC37

112
113
114
115

MJ
SP
AT

o

116
117

MJ
TP

o

120
121

RJ

TE

TV

JC6

122
123
124

TV
TV
MJ

JC6
JC72

TU

TA5
JC24
TF2

o

Only first time: get symbol after parent.
Put level Meter ~ A
Level = 1 ?
Level = 0 ?
Level > 1, go to get next
Level i s 1: put" 40 f) f)" ---+ A
Is symbol at hand alpha-numeric?
Is symbol at hand a number?
For all other symbols go to get next symbol

A

JC14
SZ7
SZll

o

Put 2 in u and v of TFO
Change exit 19
Place zero string-out word for filling later
Save addr. of string-out word for later
placing it
Set index "inside pseudo"
Set index "pseudo was in list" to zero
since it was not

JB104
JB70
JA160
JB101
JB75
JC21
JB75
30000
JC107 }

No. with dec. pt; set address for format
code in JB75

JB73
TAl

Is this used?
Mask out CW

Q

A

JBl12
JBIOl
JB72
JBl14
JB75
JB73
36
TA5
JBl12
30000
TEl
JB57
JA157
JB47
JA160

Has number decimal point?
No, set addr. for format code 2 in JB75
Adv. for next TJ word
Set next TJ word address in JB75
Place next TJ word
Adv. counters in TJ region in u
(adv. count of elements) in v

}

Is CW 66?
Is CW 65?
Is CW 64?
CW 77 left
Case funct. (66)
Bring TA5 in next TF address.
Case subscr. var. (77) set up "No. of
subscr.
~ 4" and store in TA5 (TA5 used
for temp. storage)
Come from JB462/463 (= patch to JB62)
Put CW in saved str. address (set by JB53)
Finish up bringing pseudo op in Comb. List
Restore 120 = JB57 for next pseudo not in
list
Restore exit in "bef. bef. next"
Restore JB47 to TF2 in v
(Could go to 19 or 20 since exit out of 19
is restored)

478

125
126
127
130
131
132
133
134
135
136
137
140
141
142
143

II

III

IV
V

JC13
JD2
TA4
JC12
JC25
JC26
JCIO
JC12

o

TA4
JC12
JC12
JC25
JC26
JCIO

~8136

}

Next symbol ( ?

Q

}

Mask out CW indo

A

30000
30000
30000
JA520
JA502
Q
A

TV
MJ

o

TP

TA3

30000
30000
JA514
JA514
JA502
J8152
JC3
J8151
J8152
J033
J033
30000
J026

155

TP

JC23

JD32

156
157
160
161
162
163
164
165
166
167
170
171
172
173
174
175

RJ
TV
TP
MJ

J8153
JC20
JC21

TP
TP
QT
LQ
MJ
TP
EJ
RA
TJ
RJ
MJ

J8150
J8253
J015
J8220
J016
J027

176
177
200
201
202
203
204

RA
TJ
MJ
TP
TP
TP
QT

1~4

I

TP
EJ
TP
QT
EJ
EJ
EJ
EJ
MJ
TP
QT
EJ
EJ
EJ
EJ
MJ
TU
RA
MJ
TU

145
146
147
150
151
152
153
154

TP

TP

o

TS17
J8152

o

JC37
JC20
30000

o

JC21
TS2
JC75
TS3
J022

o

~D22

~B521

J020
JC7

JC21
J8220
J8174
J027
JD16

o

TA3
JC21
JC40
TA5

}

}

JC21
J8220
JA604 }
JA161

~D22

66?
65?
64?
77?
Others?
Mask out CW indo
77?
66?
65?
64?
Others?
Entry for 61 funct.

No ( following

Wi th

l following

Store given
Entry for 66 funct.
format of
Clear JD33
function
Store format of funct.
Exi t for RJ use
Save XS3 code in funct. XS3 code-storage
Handling 66
Put "3" in format of elements (for format
"funct.")
Go to store given funct. format.
Clear shift count for next counted element
Set "inside funct." to 1
Go to save CW
H-..;...a-nd-1-i-n-g-76-:-:X-----Set inside subscr. to 1.
Save XS3 code in subscr. var. XS3 code
storage
Save no. of elements in v of J022

\r--

36
JA327

JC20
J016
JD20
JC22
JB424

o

}

Subroutine for equali ty jump series

}

Go to save CW
Are we not inside subscript var.? Handl.
subscr.
Adv. counter of subscr. by 1
Is 2 > no. of subscripts? (maximal 1)
Jump to alarm 22 (exit not via possible
funct. jump out, since inside subscripted
var. not of interest for funct. format)
Adv. counter of subscr. by 1
Is 5 > no. of subscripts (max. 4) ?
No, jump to alarm 22 via J8174
Save XS3 code
Set "inside subscr." to 1
Store no. of subscripts

479

VII

205
206

EJ
TJ

JC21
JC24

J8224
J8232

207
210

MJ
TP

0
JC21

J8235
JD17

co, ,

'11n

TA4
JC21

J031
J024
J8220

~11

J.1""

212
213
214
VI
215
216
217
Save 220
1 CW 221

TP
TP
MJ
TP
EJ
MJ
TP
RJ

222

RJ

223
224
225
226
227
230
231
232
233
234
235
236
237
240

MJ
RJ
RA
RJ
TU
TV
MJ
RJ
RA
MJ
RJ
RA
MJ
TU

o

241
242
243
244
245
246
247
250
251
252
253
254
255
256
257
260
261
262
263

TP
QT
EJ
EJ
EJ
EJ
EJ
MJ
RA
TP

JC12
30000
JC13
JC42
JC77
JC26
JCl

264

Save
2

CW t s

Save
3
CW's
Save
4
CW's

Is No. of subscr. = 1 ?
Is 4 > no. of subscr.? (case 2 or 3
subscr.)
Case 4 subscripts
Set "inside pseudo" to 1

LQ
RA
MJ
TU
MJ
TU
MJ
TP

o
JC20
J016

o
TA4
EW
Tnnnn

"'D~~~

J8223
J8220
J8223
JC41
JC41

o

J8223
J8220

o

J8223
J8220

o

EW3

o

J8253
30000
Q
J032

o

A

J8220
J8176
EW2

1
~~~COq
uD~~.J

J

JA163
J8220
JC
J8220
J8220
J8223
JA163
J8220 }
JC
J8224
J8220 1
JC
r
J8232 J

;B242

I

J8256
J8256
J8260
J8260
J8260
J8223
JC23
Q

30000
Q

o

J8223
J8252 }
J8251
J8252 }
J8251

QT

JC67
TA4

2 }

ZJ

JA530

J8220

JC72

o

JC73

storage
Save CW code in pseudo op CW code storage
Set index "pseudo was in list"
Go to save CW
Clear A
Are we not inside subscr. var.?
Jump to IV
Save 1 CW
RJ for exit with funct. (jumps to J8240)
and used by pseudo JB470 as exit,
by JA617
Save 2 CW's
Restore J8220
Restore J8223
Save 3 CW's
Save 4 CW's

Form funct. format for
compo with given one.

Come from JB222 (when funct. jump out
was set)
Mask out CW code of CW just placed in
string-out
77
76
67
65
63
Others (ignore and go on)
Come from J8256 or JB260. Adv. shift count
Put 1 or 4 in Q
Shift (set to 0 when funct. symbol found)
Add code no. to "counter" of element in funct.
Go back to exit of "save CW"
Cases 77, 7', (4)
Cases 67, 65, 63 (1) (when 63 and inside
sub. we skip the funct. jump out)
Come from JA316 (entr. set from v in
JC70) Mask out last 2 digits for pseudo
(to check whether with operands or not)
When last 2 bits = 0, go to put CW in
string-out

480

@

®

@

®
@

Case 63
Case 64

265
266

TP

267
270
271
272
273
274
275
276
277
300

EJ
EJ
EJ
EJ
MJ
TP

301
302
303
304
305
306
307
310
311
312
313
314
315
316
317
320
321
322
323
324
325
326
327
330
331
332
333
334
335
336
337
340
341
342
343
344
345

TV
MJ
RJ
MJ
TV
TV
RJ
MJ

(]f

QT

ZJ
RJ
RJ

TV
TV
TV
TV
TV

MJ
TV
TV
TV

TV
TV
MJ
RJ
MJ
TV
TV

RJ
MJ
TV

TV
TV

TV
TV
MJ
TP
MJ

TP

QT

EJ

JC12
TA4
JC12
JC25
JC26
JC10
0
JC71
TA5
JB273
JB223
JA154
JB302
0
JB467
0
JC52
JC46
JB273
0
JC55
JC54
JC50
JC52
JC55
0
JC54
JC54
Je53

JC52
Je60

0
JB467
0
JC52
JC46
JB273
0
JC55
JC54
JC50
JC52
JC55
0
TS3
0
TA4
JC12
30000

Q

A

}

JB274
JB274
JB274
JB274
30000
Q

A
JA507
JB220
JA6l7
JAl54
JA157
JB464
JB305
JB140
JB141
JB265
JB125
JB13l
JB132
JB133
JB140
JB141
JB125
JB13l
JB132
JB133
JB140
JB141
JB125
JB464
JB327
JB140
JB141
JB265
JB125
JB13l
JB132
JB133
JB140
JB14l
JB125

64

}

}

66
65
64
77
66

}

Not followed by

}

Followed by (

66
65
64
77
66

}

Not followed by

}

Followed by (

(

(

}
}

66, 65, 64
Not followed by (
Free
77
Followed by (
66
Ch~ck whether symbol has special equate
66
65
64
77
66

}

Q

}

A
JB347

Is symbol defined by special equation?
Come from JB141, save CW
Give alarm concerning skipping inside
parent.
Restore exit of alarm
Go to EXTRA. Checks for special equations
66
64}
F"
Not followed by (
ree
77
Followe d by (
66
Check whether symbol has s~cial equat.

Q

JB344

Come from JB307 or JB331
Mask out first 2 bits of symbol at hand
(aft~r it came out of Comb. List)
77
66
65

}

Not followed by

1

Followed by (
Entries for EJ serie s

(

Mask out (dummy) CW code
Mask out CW code
63--- or 64--- (has been set be fore
entering here)

481

o

346
347
350
351
352
353
354
355
356
357
360
361
362
363
364

MJ
TP
EJ
MJ
TU
TV
MJ
TU

365

MJ

o

366
367
370
371

TV
TV
MJ
TU

JC47
JC51

o

372
373
374
375
376
377
400

TP
EJ
RP
TP
TP
RJ
MJ

JC20
30000
10017
JC20
JC20
EW

401
402
403
404
405
406

30013
SY2
30013
SZ2

410
411
412
413
414
415
416
417
420
421
422
423

RP
TP
RP
TP
MJ
RP
TP
MJ
TP
TP
TP
MJ
MJ
TP
RJ
TP
RJ
RJ
TV

424

407

TV

MJ
TV
TV
MJ
TV
TV

JC13
JD2

o

JC46

o
JC46
JC51

o

JC46
JC53

o

JC47
JC50

EW3

o

o

30013
JD2

o

JC20
JC20
JC20

o

o

WLI
UP2
30000
VP2
JB422

JA502

~A514

Jump to alarm 13
Is next symbol ( ?
Jump to alarm 15

}

30000

~~~?

uDJ-.Jl.

1
J

JB343
JB345 }
JB351
JB343
JB345 }
JB351
JB343
JB345 }
JB351

364 or 764

10 t::.O'l

U1JoJVoJ

JB345
JB351
JB503
JB373

}

Was last string-out word a zero?

A

JB400
JB376
JD15
EW2
EWI
30000

Jump first to place TS3 ~ TA4, then
go to further handling.
763
Place zero stringCome fr om JA45
out word

Clear counters and indices and storages

}

JB403]
JD2
JB405
SY2
30000
JB410 }
SY2
30000
JDl
JD21
JD17
30000
JB427
114

Place zero string-out word
Only used in RJ when found, or AND and
Level Meter = O.
Save SY, SZ

Restore SY, SZ
Clear level meter
Clear counter of elements inside pseudo
Clear inside pseudo
Alarm Print

UP

JCIOO

UP3
UP
JB423
JB222

MJ

o

30000

425 TP
426 MJ

o

III

VP3
}
JB416

Exit both when funct. jump out should
not be restored, used by Alarm 20
Restore funct. jump out (in case it was
set)
Exit both (restoring of funct. jump out
does not hurt warning alarms, since they
occur never for alpha-numeric symbols)
Entrance alarm print warning

482

427
430
431
432
433
434
435
436
437
440
441

RJ

UZ

TP
MJ

II

TO
RS
AT
TP
0

442
443
444
445
446
447
450
451

EJ
TP
MJ
TP
EJ
MJ
TP
EJ

452
453
454
455

TP

JC20
30000

A

EJ
TP
RJ
TP

JC20
EW
JC30

MJ

o

EW2
EWI
EW2
30000

RP
TP

30030
TJ
JCI06
JC54
JC54

~117 }

0
TJ
TP

o
o
JOI
JC20
VL
JB441
JCI03
SZ2

o
VLl
JC20

o

UZI

UP3
JB416

}

o
JA331
JB441 }
JB441
JC56
JB441
A

o

}

JA572
A

JA266

o

~A135

}

JA163

SY2
JC13

~A136

}

MJ

o

TO

EW3

JAlS7
JB455

J02
JC13

JB460

}

456
457
460
461
462
463
464
465
466
467
470

MJ

o

RJ

JB222

JB13l }
JB132
JB133
30000
JB210

471
472

TV
RP

JC32
30025

JAlS7
JB474

473
474
475
476

TP
RA

TA4
JB462
JCIIS
TA4

J035
JC22
Q
TJ2

477
500
501
502

RJ
RS

JB124
JC6
JB462

MJ

o

JB56
JB124
JC22
JA160

TV

TV
TV

TP

QT
TV

Entrance alarm print error
Free completely
VARY check
Is Level Meter = 0 ?
Set RP 2(n) JB443

Put XS3 symbo 1 at hand --;. A
Is it equal one in given list? (Concerning VARY
Yes, goto alarm 12-1/2 = 7
All OK, restore A to 0
Go back to routine
Alarm exit when SY stored otherwise
Is next symbol (? If yes, 20 to skip
contents of parent.
Alarm exit when SY not stored otherwise
Is next symbol (? If yes, go to skip
contents of parent.
Place address of last string-out word in
JB455
Clear A
Was last string-out word = zero? If yes,
skip placing another
Place zero-string-out word
Put XS3 code of /).. in EW2
Jump back to routine
Place TJ region in TF region after
pseudo was built up
Patch, come from JB303 or JB325
Setting 66, 65, 64 with no (
Come from JA3l5 jump to do normal handling of pseudo
Set pseudo jump-out in JA157
Store format of all possible CW + 24
operands
Save TA4
Set jump over "bring list in Comb. List"
Put mask 77700 -+ Q
Set first 3 digits of CW in TJ2 (set up
for format)
Go back to routine
Rest JB124 (RJ exit)
Reset jump to bring list in Comb. List
Go to get next symbol

483

503
504
505
506
507

TP

TS3

MJ
TP
TP

o

TA4
}
J8341
J8510

QT

JCl14
JC67
TJ2

VLV

t;l()

RS

U&.IUV

511
512
513
514

ZJ
RA
1J
MJ

JA440
JB510
JD34

515
516
517
520
521
522
523
524
525
526
527

o

goooo

RA
TP

JD21
JC21

JC21 }

530
531
532

MJ
TP
EJ

o

:A334

JC20
JD16

~8220 1

533

MJ

o

JBl72

CA

J8534

Tn~t;

~D34

}

Set dummy CW's aside for storing in
string-out(when found in Dummy List)
Come from JAI04; preset J8510
Set index for no. of operands
(mask ~ () 00077)
P'W'oc:.a+

hu
JJJ

T~t;()t;

1

TJ2

&..L'-'~'-'''

o

J8512
JCI07
JB510
JAI07

Are the values equal?
Adv. to next val.
Are all val. handled?
Test OK, go on in routine;

TP
RJ
RS

JC21
J8410
JDl

JD30
J8406
JC21

Set extra Level Meter = I}
Restore SY, SZ
Special enRestore Level Meter
trance EXTRA

MJ

(\

v

U.rJ...LUI

UI..UU,P

RJ

J6422

JA536

MJ

o

TV

JC63
TS3

JB32
JB4

Jump to alarm 20 for subscr. in funct.
and don't restore funct. jump out
Go to set dummy 65000 in TA4
Patch for JA253; restore exit in JB4
Prepare masking of CW code
Go back
Patch for JA333 (to restore accumulator
after RA) Adv. no. of elements in pseudo
Put 1
accumulator
Go back to routine
Patch for J8351
Clear A
Are we not in subscr. var.? Then save
CWJ case 63 for single valued floating
point var.
We are in subscr. var.: handle case 63
for subscr.

TP

MJ

TJ\1~7

Tllmn

}

1

484

+ ...
I.V

UJJoJVoJ

o'V'+ ......

'-'AI..LU

Compare set
up pseudo op
in TJ2-25
with the
stored given
values

J

IA

0

1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56
57
60
61
62
63

a
a

24

a
a
a
a
a
a
a
a

17
40
77
34
50

a
a
a
a
0

a
a
43
01

a
a

0
21
23

a
a
a
a
a
a
a
a
a
a
a
a
a
a
0

a
a
a
a
a
a
a

JC
1
WL3
50277
2
3
JCI0
JC26

a
a

0

a
77777

a
WL3
77777

XS3 code AND

JA251
JA160
5
64000
63000
77000
77777

XS3 (

a
a

a
a
a
a
a

a
a
a
a
a

0
0

1
2
3
4
66000
65000
77777
77777
25
J857
J8135
77777
77777
00100

a
a
a

0
77777
22777

a

JC21
JC22
77777
77777

a

TA5

a

TA4

a
a
a
a

JCI0
JCll

a
a
a
0

a
a
VLl

a
a
a

WL

a

Zero
One

XS3 )
XS3 ~ .
Used by JA113
XS3
XS3

a

77777
JA163
76000
61000
70000
40000
J8154
J8162
J8170
J8176
JB201
J8215
J8220
JA502

a

I
II
III
IV
V
VI
Save 1 CW
For checking VARY range

J8210
J8277
JA124
WL
J86

485

64
65
66
67
70
71
• .L

0
0
0
0
0

0
0
0
0
0

04

0

0
0
0

JC24
JC21
0

JA312
J8363
J8366
00077
J8262
0
TJ2
JA253
JA371

72
73
74
75
76
77
100
101
102

0

0

00700

0
0
0
0
0

103

RP

104
105
106
107
110

02
0
0
0
0
0
0
0

70000
0
0
0
0
20000
77777
77777
0
1
2
3
JC20
JC21
JD35
0
0
0
U
0
0
77777
JC124

0
67000
J8223
J8240
JA247
JB443
77777
77777
JA600
1
2
3
TEl
0
TJ2
77700
0
0

III

112
113
114
115
116
117
12U
121
122
123

RS

0
34
44
45

46
47
0
CA

0

0
0
77777

Lower case
Upper case

Mask

1

C:omn==-ri
----.1

~nn~
-

-

for I,J,K,L,M

J
For neg. sign alarm 1

Alarm 1

0
1
2
3
4
5
6
7
10
11

IA
0
40
65
01
0
01
24
26
30
30
CA

JI
Jll
JI2
73472
77777
0
34464
46013
51475
01653
50263
JI12

0
10
55146
77777
5l-~
0
63032
45001
26766
05066
02201

Symbol [ ] illegal
in compute sentence

Alarm 2
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16

IA
0
40
24

JJ
JJI
JJ2
27442

0
15
42630

50
25
0
01
0
01

66016
51466
0
77777
0
47302
32463
34500
52676
01010
30506
30220
JJ17

57347
50177
0
77777
0
45034
06565
12651
63001
10101
63050
17777

50

01
47
01
65
26
CA

Adj acent symbols [ ] [ ]
meaningless in compute sentence
SZ2
SY2

487

Alarm 3
IA
0

0

1
2

40
52

3
4
5
6
7
10

01
66
0
01
51
73

11

30

CA

JK
JKl
JK2
65306
51523
34515
0
33246
51014
01304
50666
JK12

0
10
72751
05424
00177
0
50166
72450
63047

= 6-3/4

Pseudo operation [ ]
has too ma~y elements.
TJ 1

52277

Alarm 4
0
1

2
3
4
5
6

7

IA
0
40
52
33
50
51
01
27
CA

JL
JLl
JL2
24543
30653
51660
52305
52243
22017
JLlO

0
6
05066
06501
15254
44673
45430
77777

Parentheses not properly paired

488

Alarm 5

0
1
2
3
4
5
6
7
10
11
12

IA
0
40
70
46
0
01
50
26
25
01
54
CA

JM
JMl
JM2
24543
30017
0
33246
26515
66015
30540
65672
34526
JM13

0
11
42425
77777
0
50134
45430
06747
15131
56526
66522

Variable [ ] has incorrect
number of subscripts
JD27

Alarm 6 = 5-1/2
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16

IA
0
40
24
50
01
34
0
01
66
30
01
01
52
67
32
CA

JO
JOI
J02
54326
66650
31675
51500
0
27510
01243
01713
01010
01010
54307
65016
30220
J017

0
15
74730
15131
02666
17777
0
15051
25430
46633
10101
10101
03451
76524
17777

Arguments of function [ ]
do not agree with previous usage

JD26

489

Alarm 7

IA

01
66
51
27
21

JP
JPl
JP2
0
26245
01253
47526
01333
01653

30

01663

33001

65
26
01
34
01
01
70
66
50
CA

30506
30013
01010
50016
54245
51310
24547
24663
66227
JP22

63050
46501
10101
63330
03230
12401
30165
04730
77777

0
1

0
40

2

0

3
4
5
6
7
10
11
12
13
14
15
16
17
20
21

= 12-1/2

0
20
0

SZ2

05051
00126
76630
05430
45026

be computed here,
[since
J Cannot
the sentence is in the
range of a vary sentence.

490

Alarm 8

0
1
2

IA
0
40
26

JQ
JQl
JQ2
51506

0
12
56624

3
4
5
6
7
10
11
12
13

50
0
0
01
46
01
30
30
34
CA

66017
0
0
34650
46517
25730
50015
50663
65227
JQ14

77777
0
0
13151
13027
15152
22454
33065
77777

Constant E3 is followed by
open parenthesis.
SZ2
SZ3

Alarm 9
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16

IA
0
40
26
50
0
0
01
54
70
46
25
01
01
26
30
CA

JR
JRl
JR2
51506
66017
0
0
24525
65012
24543
30016
30010
01010
01010
51475
27220
JR17

0
15
56624
77777
0
0
23024
46501
42425
65101
10101
10101
10101
26766
17777

[ J

Constant [ J appears as
variable to be computed
SZ2
SZ3

491

Alarm 10

0

IA
0

1

40

2
3

24
50
01
34

JS
JSl
JS2
54326
66650
31.675
51500

0

0

01
66
24

27510
01245
54227
JS12

4

5
6
7
10
11

CA

0
10
74730
15131
02666
17777
0
15051
25230
77777

= 17-1/2

Arguments of functi on [
do not appear.

J

Alarm 11
0
1
2
3
4
5

IA
0
40
24
50
01
34

JT
JTl
JT2
54326
66650
31675
51500

0
10
74730
15131
02666
17777

6

0

0

0

01
67
67

24543
52305
51676
JT12

08165
43146
52201

7
10
11

CA

Arguments of functi on [ ]
are superfluous

492

Alarm 12

0
1
2
3
4
5
6
7
10
11
12
13
14
15

IA
0
40
24
67
01
46
0
01
34
65
66
01
26
66
CA

JU
JUI
JU2
46523
47305
65734
01777
0
33246
32346
01313
01010
01010
33245
30542
JU16

0
14
32450
43426
72551
77777
0
50127
60124
45465
10101
10101
42426
27777

Alphanumeric symbol [ ]
has digit as first character

SZ2

Alarm 13
0
1
2
3
4
5
6
7

IA
0
40
65
01
0
01
54
01
CA

JV
JVl
JV2
73472
77777
0
34502
30266
67653
JVI0

0
6
55146
77777
0
65154
64673
02722

Symbol[ ] incorrectly used
SZ2

493

Alarm 14
IA
n.

n.

JW
TTlT

~

1"\

V

V

.H'~

V

1
2
3

40
70
46

JW2
24543
30017

11
42425
77777

Variable [ ] is not defined
by an equation

4

0

0

0

SZ2

5
6
7
10
11
1
"

01
66
50
01
67

34650
01273
30270
24500
24663
77777
•••••
JW13

15051
03134
12573
13053
45150

C)

....

c)c)

""

CA

77777
• I I I I

Alarm 15
0
1
2
3
4
5

6
7
10
11
12
13
14
15

IA
0
40
65
01
27
24
0
01
46
01
01
01
52
33
CA

JX
JXl
JX2
34503
70244
01702
25463
0
34650
46517
25730
51523
01010
24543
30653
JX16

0
14
24630
66730
45434
00177
0
13151
13027
12450
05001
10101
05066
46522

Single valued variable [ ]
is followed by an open parenthesis

SZ2

494

Alarm 16

0
1
2
3
4
5
6
7
10
11

IA
0
40
65
34
31
24
0
01
66
24
CA

JY
JYl
JY2
67256
52666
01702
25463
0
27510
01245
54227
JY12

0
10
52654
50151
45434
00177
0
15051
25230
77777

Subscripts of variable [ ]
do not appear
SZ2

Alarm 17
0
1
2
3
4
5
6
7
10
11
12

IA
0
40
24
50
01
01
34
0
01
66
24
CA

JZ
JZl
JZ2
54326
66650
27674
31675
51500
0
27510
01245
54227
JZ13

0
11
74730
15131
74773
02666
17777
0
15051
25230
77777

Arguments of dummy
function [ ] do not
appear

SZ2

495

Alarm 18
IA
{\

v

1

2
3
4

5
6
7
10
11
12
13
14
15
16
17

IA

v

..LM..L

TJ\l

0

40
31
01
30
52
51
0
01
50

IA2
51544
51310
67275
30542
50017
0
27513
51660
30300
01010
71346
54307
65016
30220
IA20

16
72466
15265
10151
46634
77777
0
06501
12432
10101
10101
63301
03451
76524
17777

{\

54

01
01
52
67
32
CA

Format of pseudo operation [ ]
does not agree with previous usage

SZ2 for 18; JD25 for 6-1/2

Alarm 19
0

IA
0

IB
IBl

-:tv

A{\

1B2

,t...

.L

~v

""UJJ~\.I~ ~}lt.

65
34
0
01
54
01
0
01
66
30
01
01
71
50
CA

67256
52660
0
51310
34242
77777
0
34650
01525
54467
01010
01010
54346
22017
IB20

52654
17777

not properly written

0

SZ2

,

2
3
4
5
6
7
10
11
12
13
14
15
16
17

0

1'7024
54630
77777
0
15051
45152
30101
10101
10101
66630
77777

c .. \.. .. ~_.:

JD27

496

~ ...

r .J, ~ J!'

L

V~

._~_.: ~\.., ~

r

vaL~aJJ.Lot;;L

,
~

.:

~

~.,

Alarm 20

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17

IA
0
40
24
50
0
01
50
01
0
01
54
01
01
01
65
34
CA

IC
ICI
IC2
54326
66017
0
51310
26663
77777
0
24525
65012
01010
01010
01010
67256
52662
IC20

0
16
74730
77777
0
13167
45150
77777
0
23024
46501
10101
10101
10101
52654
27777

Argument [ ] of functi on [
appears as subscript
SZ2

J026

Alarm 21
0

1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20

IA
0
40
31
51
65
34
70
46
0
01
51
01
25
54
65
50
27
CA

ID
101
102
67502
50015
67256
52663
24543
30017
0
33246
66010
01010
30305
30703
46730
66345
22017
1021

0
17
66634
15401
52654
02701
42425
77777
0

Function or subscripted
variable [ ] has not been
previously mentioned

SZ2

50150
10101
10101
00152
45167
14730
15030
77777

497

]

Alarm 22

0

1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21

IA

IE

0

lEI

0

40
65
34
0
01
54
01
0
01
27
51
01
01
50
01
25
66

IE2
67256
52660
0
51310
34242
77777
0
30722
65012
71302
01010
01010
67472
51310
65265
65220
IE22

20
52654
17777
0
17024
54630
77777
0
63030
44646
70101
10101
10101
53054
16567
43452
17777

CA

Subscript [ J of variable [ ]
exceeds allowed number
of subscripts
SZ2

JD27

498

Alarm 23

0
1
2
3
4
5
6
7
10
11
12
13

IA
0
40
31
65
01
51
30
30
31
54
01
30
CA

IH
IHI
IH2
34546
73472
34650
50322
50663
01505
67546
01010
01010
26453
IH14

0
12
56601
55146
17154
20165
05026
16601
63330
10101
12633
02722

First symbol is wrong.
Sentence is not checked
further

Warning Alarm 1
0
1
2
3
4
5
6
7
10
11
12
13
14
15

IA
0
40
26
24
27
30
0
0
01
54
50
01
01
73
CA

IF
IFI
IF2
51474
65656
01253
30500
0
0
24502
30263
32010
01010
01010
47255
IF16

0
14
72401
74730
06671
17777
0
0
70152
02734
10101
10101
10165
14622

Comma assumed between
[ ] and preceding symbol
[ ]
SZ2
SZ3

499

Warning Alarm 2
1A
A

U

1
2
3
4

5
6
7
10
11
, n
J.'::::

13

1G

V

.1.0.1.

Tr'l

(\

40
41
24
27
30
0
0
01
54

1G2
24502
65656
01253
30500
0
0
24502
30263

cn

12
74101
74730
06671
17777
0
0
70152
02734

JV

32016

vlV"'%1

25
CA

51462
1G14

1"\

v

'MAndt~

E

assumed between
preceding symbol

1and

SZ2
SZ3

~7~A7

20177

Warning Alarm 3
0
1
2
3
4
5
6
7
10
11

1A
0
40
41
34
01
66
01
26
01
26
CA

IKl
1Kl
IK2
24502
50653
52245
33306
54305
30270
01010
51474
1K12

0

10
74101
42730
43050
53065
24624
12573
10101
72422

HAnd- inside parentheses
replaced by comma

Alarm Heading
0
1
2
3
4
5
6
7
10
11

1A
0
0
65
26
0
01
47
01
71
32
CA

II

112
112
30506
30010
0
01011
52676
01777
24545
21010
1112

6
10
63050
17777
0
72651
63043
77777
03450
17777

(real alarm)
(warning)
Sentence
~~

500

[ ]

66
warning, 6 6
~

6

6

(compute)

Temporaries Compute String-out

JD

0
1
2-14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35-61

Word index
Level Meter
Storage for SY
Index ~inside function U
Index ~inside subscr. var.Index inside pseudo opere
Counter of subscripts
Counter of elements in pseudo operation
Stored number of subscripts
Free (?)
Index ·pseudo was in listXS3 represent. of pseudo operation
XS3 represent. of function
XS3 represent. of subscripted variable
Extra level meter
CW pseudo operate (for no. of elements)
Built up format of function
Stored format of function
Index for pseudo operation
Stored CW + operands of pseudo operation

TJ

0-27

Space to build up pseudo operation for
Comb. Li st

501

rlow Chart for

Head

String-Out

RGI

'IF' branch
Yes

Yes

Inspect TA4 list word
to see if it is type
'--_-.--:-_ _--1"77" then put 1 in "30
symbol
bit" of TA5 word

Yes

Put word count in WL.
Put read indicator in
fixed location12.
Put variable count in
WL5.

502

Read String-Out Regions

RE
RE
RE
RE
RE

RG4400
E04474
EP4520
EQ4543
ER4564

String-Out subroutine regions are needed for assembly of this tape.

o
1
2
3
4
5
6
7

10
11

12
13
14
15
16
17
20
21
22

23
24
25
26
27
30
31

32
33

34
35
36
37
40
41
42
43
44

IA
MJ
RJ
TP
EJ
EJ
EJ
RJ
MJ
MJ
EJ
TP
QJ
RJ
EJ
EJ
MJ
TP
QT
TJ
TP
QS
RJ
TP
RA
RJ
EJ
MJ
RJ
EJ
MJ
RJ
TP
QJ
MJ
TP
RJ
TP

RG
0

SY
EPlO
RG57
RG60
RG6l
TA
0
0

RG6l
SYll
RG42
SY
RG61
RG63
0

TA4
RG64
RG65
RG66
RG66
TO
TA3
RG26
SY
RG62
0

SY
RG70
0

SY
SYll
RG42
0

SY2
LN2
LN3

CT
SYI
WL4
RG33
RGI
RG46
TAl
EPI
RG20
EOI

~G33

Exit to String-Out Control
Get next symbol
Clearing 5th line of output
Is symbol an IF?
Comma test
Space period test.
Get file from Combination List.
Error return from TA

}

Is symbol a space period?
Is symbol a constant?

SYI
RG
RGI
RG14

c~o;e~e;!renthesiS test,!

Q
A

Call word to q
Mask (0
0
XXOOO)
Test for "77 ---'. Type
Put 1 in 30 bit.
Send file back to Combination List

EPI
Q
TA5
TOI
[WL61
RG67
SYI
ERI
RG2
SYI
RG36
RGII
SYI
Q
RG41
E01
LN4

LN

WLA

}

Deleting loop

Open parenthesis detection gives alarm.
Begin IF rout.
Is symbol "SENTEN"?

}

Is symbol a constant?

}

Line number put in standard form and put
in output.

503

45

RJ

IX

IXI

46
47
50
51
,.....,.

TP
SS
ZJ
TP

RG26
RG71
RG51
A

A
0
EQ1
WL5

;),~

"rn
a.l

fi\:1lt:.

53
54
55
56
57
60
61
62
63

QS
RJ
MJ
34
21
01
17
43

/

A

TP

n"...,..,.

Line number put in referenced-line number
list.
TP TA3
to A
~L6J
TP
WL6
TA3

-

Variable count

hIT

WL

~2

RG73
Q
SS
0
31777
77777
22777
77777
77777

SSl
RG
77777
77777
77777
77777
77777

}

Oq

A

U

U

A

""""AAA

65
66
67
70
71
72
73

0
1
0
65
TP
0
0
CA

0
0
0
30506
TA3
0
2
RG74

76777
0
1
63050
WL6
6
0

Put read indicator into 12
Exit procedure

IF
~

(
)

IIUUU

1 in 30 bit

Read Error Print-Out Subroutines
IA
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22

MJ
TP

RJ
TP
RJ
MJ
70
46
0
01
30
30
66
34
51
01
01
47
40
CA
IA

0

MJ

EP
0
SY2
WA
EP22
UP2
0
24543
30017
0

50516
50663
27013
33300
47305
50430
01010
65662
30506
EP6
EP23
EQ
0

RG30
EP10
WAI
UP3}
UP
EP
42425
77777
0
60147
45150
45001
11727
06534
10101
10101
46630
62277
14

Set-ups variable for print-out
(Read)
Pr int-out: Sentence
Print-Out shown below.
V A R I
L E ~

A B

~ N 0
T ~
E N T I 0
E D ~ I N
T H E ~ (
I M E N S
0 N ) ~ ~

~

8

~

~

~

M

N
~

D
I
~
~

S T A T E
M E N T . l:J.

~

RG55

504

1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27

0
1
2
3
4
5

RJ
TP
RJ
MJ
50
65
30
34
47
50
01
54
01
66
50
40
CA

WA
EQ20
UP2
0
51016
26543
27017
24254
30506
30270
66333
30242
01010
24663
66227
EQ5
EQ21

IA
MJ
RJ

ER
0
WA
ER27
UP2
0
67256
52663
24543
30650
01505
46465
01665
70300
01010
54305
66342
30725
65345
34500
01175
43016
30473
77777
ER5
ER30

TP

RJ
MJ
65
34
70
46
30
24
27
24
01
24
30
01
65
01
30
27
66
22
40
CA
IA
MJ
RJ
TP
RJ
MJ
67

EO
0
WA
E023
UP2
0
65345

WAI
UP3
UP
EQ
56725
45266
02454
63001
63451
13450
00117
74301
10165
04730
77777
13

N

S

E
I
M
N

11
R
11
T
N

0 11
C R
0 11
A B
E N
E 0
T H
E A
11 11
A T
T

U
P
V A
L E
T I
11 I
E 11
S

B

I

T
R
11
0
N
(

0
11
11 11 S
E M E
)

RG14
WAI
UP3
UP
ER

52654
02701
42425
12454
16601
17130
10133
10101
10152
06633
62446
25430
15065
16633
43024
56624
05066
77777
22

RG51
WA1
UP3
UP
EO
03201

E 11
0 )
T E

S C
T E 0
R I A
S 11 A
N 0 T
L 0 W
T 0 11
E 11 11
11 11 11
E N T
I C A
X P R
I 0 N
N 11 T
( R E
11 S T
M E N

U S

I

U
P
V A
L E
E 11
A L
0 11
A V
~ 11
A R
E T
11 E
S
I

S

S

11

I

505

B

N

R
11
B

R
11
E
H

11
P
H

L
E
S
H

A
A
T

G 11

6
7
10
11
12

66
54
34
65
54

'1

'l<"l

1

.Lv

14
15
16
17
20
21
22
23

33300
27013
47524
01543
30502
f\l<"lAf\

17151
43101
63430
03130
63450
lAt.~A

v~

VL~"'2V

L"'2VV"'2

50
25
67
01
54
51
27
40

30015
30542
66016
50674
01712
47346
22777
E05
E024

06747
10125
63330
72530
46501
66630
77777
16

CA

H E tJ.
0 II I
I M P L
S ~ R E
R E N C
G 1\ A ~
T

R

L....a

N

E

tJ.

B E R
U T tJ.
N U
~
R II W
0 M I
0

.

506

N

W
F
I
F
I
L

0

tJ.
E
E

N
I
U M

,

~

T

H E

B

E

M B
A S

~

T

E

T

Type String-Out.
The type string-out saves a call word and an excess-three representation
for every symbol of a type sentence even for parentheses, commas and the
like. Space period in excess-three form represents the end of the stringout.
The routine checks for type faults, wrongly chosen symbols and incorrect
number of subscripts of a subscripted variable. Furthermore it checks for all
sorts of errors induced by the combination of several symbols.
When the first symbol of the sentence following the word "type" is
space period, the routine prints an alarm and exits without further checking
of the sentence. This is the only case where the routine skips the rest of
the sentence. In all other cases the sentence is handled up to the very end
(if the number of alarms does not exceed the limit) and only contents of
parentheses may be skipped, where a preceding alarm made the checking of the
symbols inside the parentheses meaningless.
1)

The alarm print-outs are as follows:
Symbol [ ] illegal in type sentence.

2)
3)
4)

First symbol space point. Sentence not further checked.
Adjacent symbols [ J [ ] meaningless in type sentence.
Parentheses not correctly placed.

5)
6)

Subscripted variable ( ] has incorrect number of subscripts.
Alphanumeric symbol [ ] has digit as first character.

7)

appears as function or subscripted variable, but is not previously mentioned in problem.
Floating point variable [ J used as subscript.
Pseudo operation symbol [ J illegal in type sentence.

8)
9)
10)

Subscripts of subscripted variable [ ) are missing.

11)
12)

Library routine symbol [ J illegal in type sentence.
Floating point variable [ ] used as function symbol or as subscripted

13)
14)
15)

variable.
Subscript [ ] appears as function or subscripted variable.
Subscript [ ] used as argument of a function.
Function symbol [ ] appears as subscript.

507

( J

16)

Constant [ J appears as function or subscripted variable.

17)

Constant

18)

Negative subscript [ ] illegal.

E1appears

as variable to be typed.

Warnings.
1)

Comma assumed preceding symbol [ J •.

2)

Typed value of function [ ) may not correspond to stated arguments.

508

MG

TYPE SlliINGOUT

[Entrance from

~S~0~ut ~(~~r~l
Exit

MG13

MGll

r-N~o____________________-y~Clear

word
index

Symbo 1 unde r
consideration
in SZ2-14

MGllO
Replace in SZ2 the
ND by comma

"Next symbol"
to look at
inSY2-14

MB14

MBlO
Wa rni ng ala rm.J space
betw. words replaced by comma

to GO TO
END in jump before
get next symbol

RJ set CW and XS3 for
comma in stringout
ana adv. for next
addr. by 2

Ul

o

to

Alarm 6, alphanumeric symbol starts
with digit

MH
Is first character
a letter?

MH4
Is symbo 1 a
number? SZ12 neg.

Alarm 6A, alphanumeric symbol
starts with digit

Alarm 21, number
used as function

Alarm 22, ~ in type
comm. allowed only
inside parent.

MJ20
MJ2
E

~~--------~

Put CW and XS3 in
stringout and adv.
addr. by 2

TYPE Stringout (Cont.)
M:;71
MG64
Neg. sign

Is SYll

M;66

= 40?

Ye

Is SYl2

MG70

= O?

Ye

Are we inside
va riab Ie?

No

Change jump EJ ...
NUMBER in ALPHNUM+4
to EJ •.• NEC

----'"

Yes
MF77
A lann 23.ncg.
subscr. i llega 1

-~

MF15

comma

----

Alarm 1.
i llega 1 symbo 1 in
type comm.

Other
MG24
Put CW and XS3 in
stringout and adv.
addr. by 2

MG27
I s next symbo 1 )
or, or; ?

No

MG32
I s next
symbo 1 ( ?

----

No

Yes

MF103
Alann 2, symbol for
fct. or subscr. var.
forgotten

;

MG62

Yes
MF20

-B

Alarm 3. nonalphanum.symbol
screwed up
r.r;34
(

Put cw and XS3 in
stringout and adv.
addr. by 2

)

r.r;40
Put CW and XS3 in
stringout and adv.
addr. by 2

H

r.r;36

Yes

MG27

Increase Leve 1
Meter by 1

Is next symbol )
or , or ; ?

H

ftf;42

MG32
No

Is

MG60
F

level~O?

No

Clear Level Meter
and inside funct.
and inside subscr.
var.
MF24
Alarm 4, parent.
not proper ly placed
(neg. leve 1)

E

Is next
symbo 1 ( ?

No

r.r;45

MG47

Decrease Leve 1
Meter by 1

Yes

~

Y~!s

r.r;50

Were we inside
subscr. variable?

No

IRedoce

i"d."~

Ifunct." by 1

Yes

RJ53
Set index "inside
subscr. var." to
zero

MG55
- { Is counter of
subscripts=~ of subscr. (stored)?

I

MG56

JNo

Clear counter of
subscripts

Yes
MG32
Ye~

Is ""xt
symbol

MF26

~
(?
--

~ Al'm 5, s"bso"pted
var. has wrong +t- of
subscripts

~

TYPE Stringout (Cont.)
Put no. of subscr.
and XS3 code of
subscr. var. in
storage

MH30

MH20
Was it subscripted
var.?
77

Set index "inside
subscr. var." to 1

No
Alarm 13, subser.

k-----------------------------------------------~ of subscr. var.

mi ssi ng

MF37

MH36
Are we
scr. variable?

Alarm 14 or 11)
~---------------------~ sin g Ie va 1. va r.
used as subscript

MH16
Was it sing Ie
valued funct.?

65

No

No
MF53
Alarm 15, single val.
fct. used as symbol
for funct. or subscr.
var.

MF56
MH15

MH42

Alarm 16, subscr.
used as symbol for
funct. or subser.
var.

Was it fixed point
~---I var.? (subscript)64
No

MH50

~------------------------~Adv. counter of
subscripts by 1

Are we inside
subsc r. va r. ?

MF61
Alarm 17A, subscr.
k-------------------------J u sed a s a rgume n t 0 f
function

MF64
Alarm 20,
function used as
subscript

MH54

Yes

MH52
Are we inside
subser. var.?

Adv. counter for
sub~cr. by 1

MH17

No

No

MH61
Warning alarm 2,
typed val. of fct.
may not correspond
to stated arguments

Set indo inside
funct. to 1

MF42
Alarm 12, pseudo-oper. Ye
~--------------------------------------------~ symbol illegal in
TYPE sentence

MH23
Wa sit pseudo
oper.?
40
MF45

No

Alarm 12A) Lib.
Rout. illegal in
TYPE sentence

I

L-----------------L-(
511

TYPE StringJut (Cont.)

MH6

MH7
not in comb.
list
found in
comb. Ii st
MHll
Put CW and XS3 code
in stringout and adv.
addr. for next
string. by 2

MIl
Is next symbol
(?
SY2
MF34
Alarm 10, fct. or
subscr. var. not
mentioned in comb.
list

MI3

M 23
Are we inside ar-

No
'--_---'w

gum. of subser. va r.?

MI24

MI21
Add I to counter
of subscripts

re we inside argum. of subscripted
var ?

es

L,oriPts

~o counter of

No

~
~t~or

< single

val. fltp.
var. _

No

Yes

MF1l7
No

MH12

Alarm 11, single
val. fltp. var. used
as subscript

MI6

Assign CW f o g
val. fltp.
var. _

< single

MI30
Add new s i n J g e
< val. var. to Comb.
List

Mill

MF1l5

Alarm 17, subscript
used as argo of fct.

MI17

Put CW and XS3 in
stringout and adv.
addr. by 2

MIl7

Put CW and XS3 code
in stringout and
adv. addr. by 2

MIl7

A:I17

~~------------~-----------~--------~~

TiPE Stringout (Cont.)

MK

MK 1
Put CW and XS 3
SY2 ••• in

Adv. Level Meter
by 1

MKll
0

MG

MKl2

f

Jump to Exi t

Alarm 23~
level not back to
zero

r.t;75
Restore jump in ALPHANUM + 4 from JP ••• NEC
to JP---NUMBER (from
M461 to r.t\17l)

MG76

MGlOl

Blend neg. sign
into XS3 code

Jump back to
routine
(-NU~ER)

c.n

.....

w

MLl
Clear extra
Leve 1 Meter

ML2
Get next
symbo 1

MLll

MLA
Is symbol at
hand (?

Adv. extra
Leve 1 Meter

No
ML5
Is symbol at
ha nd ) ?

No

Yes

MLl6

MLl4
Is extra Level
Meter>l?

No

Yes

Yes
ML20
Reduce extra Level
Meter by 1

Jump to r.t;4 in beginning of routine
to get next symbol

MK

MKl

Adv. Leve 1
meter by 1

Go on in
GO TO END

Type String-Out Regions

RE
RE

RE

MG4400
MH4512
MI4577
fwlJ463 1
MK4656
ML4671

RE
RE

MB4713
MC4773

RE

MF5034

RE
RE
RE
RE

RE

YY5162
YB5175
YC5215
YD5227
YE5244
YF5263
YG5273
YH5312
YI5330
YJ5355
YK5370
YL5406
YM5424
YN5442
Y05464
YP5504
YQ5517
YR5531
YS5552
YT5571
YZ5603

RE

ME 5614

RE

MM6140

RE

MN6240

HE

RE
RE

HE
HE

RE
RE
RE

RE
RE
RE

RE
RE
RE
HE

RE
HE

RE
HE

Program main part

Subroutines
Constants
Alarm entries

String-Out Subroutine ragions are also needed to assemble this tape.

514

IA

o

TP

o

CT

MC36
10025
MC12

EW3
:102}

o

MG6

1
2

RP

3
4

TP
MJ

5

o

o

o

6

RJ
EJ

SY
MCI
MC13
SZ7
SZll

SYI
MB

7

10

TP

11

EJ
EJ

12
NonAlphaNumeric

MJ

MG

13
14
15
16
17
20
21
22

23
Comma

24
25
26
27
30
31
32
33
First Par 34
35
36
37
Last Par 40
41
42
43
44
45
46

TP
TP

EJ
EJ
EJ
EJ
EJ
EJ
MJ

TP
RJ

TP
EJ
EJ
EJ
EJ
MJ

TP
RJ
RA
MJ
TP
RJ
RS
SJ

MC12
SZ2
MC3
MC5
MC4
MC2
MC34
MC35

o
MC26
MB37
SY2
MC2
MC3
MC4
MCS

o
MC
MB37
ME17

o

A

MGI05
MGI05
ME16
A

MG24
MG34
MG40
MG62
MG64
MG64
MF15
ME13 }
MB34
A

MF20
MF20
MF20
MFI03
MG4
ME13 }
MB34
MC14
MG26
ME13 }
MB34
MC14
MG44

TJ
TJ

MC30
MB37
ME17
MG60
MC12
ME20
ME21

47

MJ

o

MG4

50
51
52
53
54

RS

ME21
SY2

MC14

TP

MJ

o

TP

MC12
ME22

TP

RS

A

MG53
MG50

~G32

}

ME20
ME23

Exit
Set EW3
Clear temporaries and go to check
for D. • in start
Come from MGI04 "before get next
symbol"
Free (first RJ SY SYI see in patch,
MGI02)
Get next symbol for SY (later ~ SZ)
Is next symbol ~ . (the end point)?
Put 1'40 0 CJ" --.+A
Is first digit a letter?
Is first digit a number or decimal
point?
Clear word index
Put XS3 code at hand ~ A
Is it, ?
Is it ( ?
Is it) ?
Is it ; ?
Is it neg. sign upper case?
Is it neg. sign lower case?
Illegal non-alph~wmeric symbol in
type command
Fill string-out for comma
Put next symbol ~A
Is it , ?
Is it , ?
Is it ) ?
Is it ( ?
Go to "before get next"
Fill string-out for (
Adv. Level Meter by 1
Do the same error tests as comma
Fill string-out for)
Reduce Level Meter by 1
Is Level Meter ~ O?
Yes, put zero ~A
Are we inside subscr. var.?
No: are we inside function? Only
alternative with level > 0
No: jump to get next symbol (really
not needed; should never occur)
Subtr. 1 from "inside funct" index
Jump to one more error test
Clear index "inside subscr. var."
Subtr. "counted # of subscr." "stored"# of subscr."

515

ZJ

MG56

MG5l

56

TP

MC12

57

MJ

o

ME22
MF26

60
61

RP
TP

10003
MC12

MF24 ')
ME17 1

62
63

TP

55

Semicolon
Negative

64
65

MC3

MJ

o

SZ2 }
MG24

TP

MC13
SYll

A

SY12
MC14
ME20
MC6

MF15

TJ

66
67
70
71
72
73

EJ
TP

EJ
TV

MJ
RA

ME22

MF77

o

74

MJ

o

TV

76
77

SP
SA

MelO
MC30
SZ2

100
101

MJ

,

DT

(V)

.LV;;"

LT
U.U

103

EJ

104
105
106
107
110

MJ
1P

III

EJ
MJ

~77

MH4
MG4
MC14

75

NEC

MF15

o
o

}

MH4
25 }
36
SZ2
MJ

C'V

MF123

o

MG4

SZ2
MC33

A

o

MJ

o

CA

MGl12

~~~ .LLVlU
;~_~~~R \:ICI.
~~?d!!~~:\
~:~~h~~~:
.L.LLA:)l.j"'dO')C I.Udl.

vVIllC

MCI

MC3

Set jump for neg. no.
Jump to "before get next"
No more
Adv. no. of subscr.
used?
Jump to alarm lA
Restore jump to NUMBER
Blend neg. sign (lower case) in
XS3 code

J

.... .1.

TP

Is counted no. of var. of subscr.
var. OK?
Clear counter of subscripts
Jump to alarm 5 (no. of subscripts
not correct)
Come from MG43
Level Meter neg; clear Level Meter
and inside subscr. variable and inside funct. and go to alarm 4
Case; sneak XS3 code of comma in
SZ2 and jump to making string-out
for comma
Put n40c,l c,I"~A
Is next symbol not starting with
decimal pt. or digit?
Contains next symbol a letter?
Are we inside subscr. var.?

MGllO
MH
SZ2
MG13

516

II1U' ,

symbol
Is first symbol ~ .?
Yes, go to alarm.
No, go on in routine
Come from MGll or MGl2
Is symbol "AND"?
No, go on in rout.
Yes. sneak comma in SZ2
Go on in routine

sentence
starts
with ~
patch for
case
"AND" instead of
comma

AlphaNumeric

Tn Comb.
List

IA
TP
TJ

MH
MCl2
MEl6

2
3

TP

4
5

EJ
EJ

MC14
MCl2
SZl2
SZ7

6

RJ

MB21

MBl5

7

RJ

TA

TAl

10
II

MJ

o

MI

RJ

MB33

MB30

RJ

Q

0
I

TP

Put zero ~A
Is word ind. > zero? When yes,
warning alarm I
Put I in word index
Clear A
Has symbol no letter?
With letter: is first character
not a letter?
Write SZ2-14 ~ SY2-14 and save SY2
in ME
Is symbol at hand in Combination
List?
No
Yes, put CW and XS3 code in stringout
Write SY2-14 back in its place
Mask for call word symbol ~ Q
Call word symbol ~ MEl3 and A
Was symbol in Comb. List subscript?
64
Was symbol in Comb. List single val.
variable? 65
Was symbol in Comb. List function?

A

MBIO
MEl6
A

MJ
MB43

12
13
14
15

QT
EJ

MB24
MC22
TA4
MCl7

16

EJ

MC20

MH35

17

EJ

MC21

MH52

20

EJ

MC22

MH25

21
22
23
Subvar 2 24

TP

QT
EJ
MJ

MC31
TA4
MC37

~13}
MF42

TP

MB22
MEl3
MH42

66

25
26
27
30

31
32
33

34
Sinvalf
35
2
36
37
40
41
Sub42
script 2 43

o

TP
EJ
MJ
TP
TP
QT
TP

MGl4
MC23
TA5
TA3

MJ

o

TP

MCl2
ME20
MC5

TJ
TP
EJ
MJ
TP
EJ

MC5
ME

o

ME

o
MC5
ME

44

TP

MCl2

45
46
47

TJ
TJ
MJ

ME20
ME21

o

MF45

~30 }
MF50
ME20

~23

}

ME24
MG4

~63
~53

}
}

MG4

~56
~H50

}
}

MF61
MG4

517

Was symbol in Comb. List subscripted variable? 77
Was symbol in Comb. List pseudo op?
40
Was symbol in Comb. List Library
Routine?
Is next symbol ( ?
No, go to alarm
Put I in "inside subscr. var."
Put no. of subscr. in storage
Put XS3 code of subscr. var. in
storage
Go to "bef. get next"
Are we inside subscr. var.?
No: is next symbol ( ?
No: go to "bef. get next"
Is next symbol ( ?
Are we inside subscr. var.?
No: are we inside funct.?
No: go to get next symbol

Sub50
script 2A 51

RA

ME22

MJ

o

MC14
MG4

52
53
54

TP
EJ
RA

MC12
ME20
ME22

~56

55
56
57
60
61
62
63

MJ
TP
EJ
MJ
TP
MJ
RA
MJ
CA

Function 2

64

Not in
List

~H61

o

MG4
ME21
MF12
MC14
MF37

o
o

}

Are we not inside subscr. var.?
We are inside: adv. counter of
subscr. by I
Go to alarm 20
We are not inside: is next symbol
( ?
Go to l'before get next"
Set "inside funct" to 1
Go to warning alarm 2
Adv. counter of subscr.
Go to alarm 11 or 14

MH65

1
2
3

ME

4

TJ

ME20

MI21

5

TJ

ME21

MFl15

6

RJ
RJ

RH

AT

MC17

RHI
TKI
ME13

RJ
TP
TP
TP
TP
RJ
RJ

MB37
MC27
SZ2
ME13
MC12

11
12
13
14
15
16
17

1

MF64

IA
TP
EJ
TP
EJ

o

7
10

Sinva1f

o

ME22

}

MC14

MC5
ME
MC14

Adv. counter of subscr. by 1
Go to "before get next"

MI
MC5
MC12
SZlO

TK

~34

~I23

}

MB34

TFl
TF }
TF2
TF3

20

MJ

o

21

RA

ME22

22

MJ

o

TEl
MB22
MG4
MC14
MI6

23
24

EJ
RA

ME20
ME22

MI26
MC14

25
26
27
30

MJ
RJ
RJ

o
RH

MF117
RHI

TK

'lK1

AT

MC20

ME13

31

MJ

o

MIll

CA

MI32

TE

MB24

}

Is next symbol ( ? yes: go to
alarm 10
No: is first letter not I,J,K,L,M?
First letter I,J,K,L,M: Are we
inside subscr. var.?
Not inside sub. var.:are we inside
function? Yes, go to alarm 17
No, check format
Get CW no. for 64: 65, 66 type
Add 64 to it and store formed CW
in ME13
Fill string-out, etc.

fJ

3 ~

Add new
XS3 code
CW
file to
Combination
zero
List
Write SY2-14 back in its place
Go to "before get next"
Adv. counter for subscripts
Go to set subscr. in string-out and
Comb. List
ATe we not inside subscr. var.?
We are inside: adv. counter for
subscr.
Jump to alarm
Check format
Get CW No. for 64, 65, 66
Add 65--- and store formed CW in
ME13

Go to set single val. funct. in
String-out and Comb. List

518

Number

2
3
4

IA
TP
EJ
TP
EJ
RJ

MJ
MC5
SY2
MC12
ME17
MB21

~67 }
~73 }

5
6
7

TP
EJ
RA

MC12
ME20
ME22

~23 }

10
11
12

MJ
0
RJ

0
0
RD

MJ12
0
RDI

13
14
15
16
17
20
21
22
23
24

TP
RJ

SZ2
RS2
TS3

RS4
RS
A
GWI
ME13 }
M834
MB22

0
1

Stated

TP

RJ
TP
RJ
RJ
MJ

TP

MJ
CA

GW

Q

MB37
MB24
0
MC16
0

}
}

Is next symbol ( ? Yes, go to
alarm 21
Is level = O? Yes, go to alarm 22
No: store SZ2-14 ~SY2-14 WORKWORK12
Are we not inside subscr. var.?
We are inside sub. var.: add 1 to
counter of subscripts
Jump to over-next instr.
Free
Check format of fixed point constant
Convert XS3 decimal no. to fixed
pt. octal no.
Assign constant CW

:i3}

Put CW and XS3 code in string-out
and adv.
Write SY2-14 back
Go to "before get next"
Assign 75--- CW for funct. subscr.

MB15

MC14

MJ20

MJ25

519

Bef.Go

0

~
Go To
3
End

4
5
6
7

Bef.
Extrif
Extra

MEHR

1OC14
ME13 }

TP

SY2

SZ2

RJ

MB37
MC12
ME17

MB34
A
MF121

TP

TJ
RS
AT

EW3

r.r;40
A

10

TV

11

RJ

WT

12

MJ
CA

MK13

0
1

2

IA
RJ
TP
RJ
TP
EJ
EJ
TP

EJ

o
ML
MB24
MC12

SY
SZ2
1OC5

MC4
SY2
MCl

10

MJ

o

11
12
13

RA

ME15

MJ

o

TP

MC14

14

TJ

ME15

IF

"-',rn

.::)J.~

EJ

MCl

15
16

Most

MK
ME17
MC32

1OC14
A

3
4
5
6
7

NocH

fA
RA
TP

Adv. Level Meter
Wr i te

~

J

WL
WTl
MG

}

ML13

ML2
MC14
ML2

in string-out

Is Level Meter = O?
No, go to alarm 4

1
END

Exit

SYI

~

•

Send string-out to tape

MB22
ME15

~Lll

fj.

}

Restore SY2-14
Put zero in "extra Level Meter"
Get next symbol
Is symbol at hand ( ?
Is symbol at hand ) ?
Is next symbol fj. • ?
Adv. extra Level Meter

~20

}

Is extra Level Meter

A

}

Is next symbol 6 . ?
Go to "bef. get next"
Reduce extra Level Meter by 1

17

MJ

o

MKl
MG4

20

RS

ME15

1OC14

21

MJ
CA

o

ML2

ML22

520

> 1 ?

Subroutines

o

IA

MB

TV

ML16

MG4
MG10
EW2
ME14
EWl

1

MJ

o

2
3
4

TP
TP
RJ

30000
30000
EW

5

TP
RJ

ME14
EW

MJ

o

EW2
EWI
30000

10

RJ

11

TU
TU

MB54
MC25
MG30

MB2
MB3

6
7

12

}

MF

Put "JUMP to EXIT" in place "bef.
get next"
Back to routine
CW
XS3 symbol
Place CW and XS3 code in string-out
and adv. addresses concerned

Warning 1
Go to print warning alarm, and put
string-out for comma in list and go
back to routine.

13
14
15
16

RJ
MJ
RP

17
20

RP

21

MJ
RP
TP

ME

MJ

o

MB21
SY2
30000
MB24
SY2
30000

TP
ST

MC5
SY2

A
A

27
30
31

ZJ

MLl

TU
TU

MG4
MC10
MCll

}

Is next symbol ( ? when no, go to
get next symbol. When yes, come
back to RJ

MB2
MB3

}

Place CW and XS3 code in string-out
when found in Comb. List

32
33
34
35

RJ

MB7

}

Place CW and XS3 code in string-out
when CW placedin ME13

36

RJ
MJ

TP

MB7

o
30013
SY2

MB2
MH2
MB17
Write ttget next symbol" SZ2-14
~SY2-l4 and save SY2-l4 in

ME

MEO-12

22
23
24
25
26

37
40
41
42
43
44
45

TP

30013
SZ2

o
30013

Write SY2-14 back

MB2

MJ

o

30000

TU
TU

MC6
MC7
MB7

MB2
MB3
MB2

o

rooo}

Free
Alpha-numeric symbol with first
char. digit (SY not yet moved, OK)

o

o
o

o

o
o

TP
EJ

MC5
SY2

~105 }

MJ

o

MF31

521

46
47
50
51
52
53
54
55
56
57

RJ
TP
TP
RJ
TP

RJ
RJ
MJ
TP
MJ

CA

UZ
YZ1
WL1
UP2
30000
UP2
MB54
0
yz

0
MB60

UZ1
UP3
YZ4
UP
UP3
UP
MB55
MG4
UP3
MB50 )

Error count
heading printed

Error print

1

text printed

)

Exit for RJ used
Normal exit
Entry for warnings

522

Alarm Entries and Exits
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24
25
26
27
30
31
32
33
34
35
36
37
40
41
42
43
44
45
46
47
50
51
52
53
54
55
56
57
60

IA
TP

TP
TO

MJ
0
0
0
0
0
0

MF
SZ2
SZ3
YY
0
0
0

YYI0
YYll
MB52
MB56
0
0

0

0

TP

0
0
0
SZ2
YB
0
SZ2
YC
0
SZ2
SY2

TIJ

YE

MJ

TP

0
YF
0
ME24
YG
0
SZ2
YH
0
SZ2
YI
0
SZ2
YJ
0
SZ2

0
0
0
YB6
MB52
MB56
YC4
MB52
MB46
YE5
YE7
MB52
MB46
MB52
MB46
YG6
MB52
MB46
YH6
MB52
MB46

TIJ

YK

MJ
TP

0
SZ2
YM
0
SZ2
YL
0
SZ2
YN
0
SZ2
YO
0

TP
TIJ

MJ
TP
TIJ

MJ
TP

TIJ

MJ
TP
TIJ

MJ
TP
TO

MJ

TP
TO

MJ
TP
TO
MJ

TO

MJ
TP
TO

MJ
TP
TU

MJ
TP
TO

MJ

}

Warning alarm 1

Free

}

Warning alarm 2

}

Alarm 1

}

Alarm 3

}

Alarm 4

}

Alarm 5

}

Alarm 6

YI2
MB52 }
MFl13
YJ6 }
MB52
MB46

YK6 }
MB52
MFlll
YM6 }
MB52
MFlll
YLlO }
MB52
MB46
YN6
MB52 }
MFI07
Y04 }
MB52
MFI07

523

Alarm 10

Alarm 11
Alarm 12
Alarm 14 = 12A
Alarm 13
Alarm 15
Alarm 16

61
62
63
64
65
66
67
70
71
72
73
74
75
76
77

100
101
102
103
104
105
106
107
110
III
112
113

114
115
116
117
120
121
122
123
124
125

TP
TO
MJ

TP
TU
MJ
TP
TP
TO

SZ2
YP
0
SZ2

YQ
0
SZ2
SZ3
YR

M.1
TP
TP
TO
MJ

0
SZ2
SZ3
YS

TP
TP

SZ2
SY2
YT
0
MB54
0
SZ2
YH
MB54
0
MB54

TO
MJ

RJ
MJ
TP
TO

RJ
MJ

RJ

0

MJ

0

RJ

MB54
0
MB54
0
MB54
0
MB54
0
YD
MB54
0
MF126

MJ

RJ
MJ
RJ
MJ

RJ
MJ
TO

RJ
MJ

CA

YP4 }

MB52
MB46
YQ5 ~

Alarm 17
Alarm 20

MREl2

~46)

m4
YR5

}

Alarm 21

MB52
MFI07
YS4 }

YS5
MB52
MB46

Alarm 22

YT6 "
YT7 }

Alarm 23

MF20 }

Alarm old 2

MB52
MB46
MLI

= lA
= 3A

YH6
MB52 }

MB46
MLI
MB46 '}
MB25
MB46 )
ML

Alarm 6A

J

MF61 }
MI17
MF37 }
MI17
MF24 }
MG
MB52 }

Alarm 17
Alarm 11

Alarm 2 (first symbol

MB46
JIG

524

~

.)

Warning Alarm 1

0
1
2
3
4
5
6
7
10
11
12

IA
0
40
26
24
27
30
77
77
0
0
01
CA

YY
YYl
YY2
51474
65656
01525
27345
77777
77777
0
0
22777
YY13

0
11
72401
74730
43026
03201
77777
77777
0
0
77777

Comma assumed preceding symbol[ ] .

SZ2
SZ3

Warning Alarm 2
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17

IA
0
40
66
70
51
26
0

01
51
01
01
51
51
01
27
47
CA

YB
YB1
YB2
73523
24466
31013
66345
0
47247
66010
01010
01010
54543
50270
65662
01245
30506
YB20

0
16
02701
73001
16750
15001
0
30150
10101
10101
10126
06552
16651
46630
43267
66522

Typed value of function[ ] may not
correspond to stated arguments.

SZ2

525

Alarm 1
0
1

.l

2
3
4
5
6
7
10
11

IA
0

YC
YCl

"1"\
"iV

vrn

65
01
0
01
24
66
30
30
CA

73472
77777
0
34464
46013
73523
50663
22777
YC12

~\J~

0
,A

.LV

55146
77777
0
63032
45001
00165
05026
77777

Symbol [

] illegal

in type sentence.
SZ2

Alarm 2
0
1
2
3
4
5
6
7
10
11
12
13
14

IA
0
40
31
65
01
01
22
30
51
66
01
01
30
CA

YO
Y01
Y02
34546
73472
65522
52513
01653
50263
66013
33305
01010
01010
26453
Y015

0
13
56601
55146
42630
45066
05066
00150
16754
40101
10101
12633
02722

First symbol space point.
Sentence not further checked.

526

Alarm 3

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16

IA
0
40
24
50
25
0
01
0
01
50
01
52
01
01
66
CA

YE
YEl
YE2
27442
66016
51466
0
77777
0
47302
32463
34500
30010
01010
01016
30502
YE17

0
15
42630
57347
50177
0
77777
0
45034
06565
16673
10101
lO101
53050
63022

Adj acent symbols [ ] [ ]
meaningless In type
sentence.
SZ2
SY2

Alarm 4
0
1
2
3
4
5
6
7

IA
0
40
52
33
50
54
73
30
CA

YF
YFI
YF2
24543
30653
51660
54302
01524
27227
YFI0

0
6
05066
06501
12651
66646
62426
77777

Parentheses not correctly placed.

527

Alarm 5

0
1
2
3
4
5
6
7
10
11

12
13
14
15
16

1A

YG

0
40
65
34
70
46
0
01
50
26
25
01
01
01
54

YGI
YG2
67256
52663
24543
30017
0
33246
26515
66015
30540
01010
01010
65672
34526
YG17

CA

0
15
52654
02701
42425
77777
0
50134
45430
06747
10101
10101
15131
56526
66522

Subscripted variable[ ] has
incorrect number of subscripts.

ME 24

Alarm 6
IA

0

0

1

40

2
3
4

5
6
7
10
11
12
13
14
15

24
67
01
46
0
01
34
65
66
01
01
24
CA

YH
YHl
YH2
46523
47305
65734
01777
0
33246
32346
01313
01010
01010
01263
26663
YH16

0
14

32450
43426
72551
77777
0
50127
60124
45465
10101
10101
32454
05422

Alpha-numeric symbol[ Jhas
digit as first character.
SZ2

528

Alarm 10
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17
20
21
22
23
24

IA
0
40
0
01
54
24
66
54
26
27
01
01
01
25
67
50
30
46
66
01
51
CA

YI
YIl
YI2
0
24525
65012
01316
34515
01656
54345
01010
01010
01010
70245
46302
66013
51660
70345
73014
34515
34500
25463
YI25

0
23
0
23024
46501
75026
00151
72565
26630
10101
10101
10101
43424
10125
46501
15254
16765
73050
03027
15254
04722

SZ2
[ ] Appears as function or
subscripted variable, but is
not previously mentioned in problem.

Alarm 11
IA

0
1
2
3
4
5
6
7
10
11
12

0
40
31
50
50
34
0
01
24
65
22
CA

YJ
YJl
YJ2
46512
32015
66017
24254
0
67653
65016
26543
77777
YJ13

0
11
46634
25134
02454
63001
0
02701
56725
45266
77777

= Alarm

14

Floating point variable[ ]
used as subscript.
SZ2

529

Alarm 12

0
1
2
3

4
5
6
7
10

IA

YK

0
40
52
01
66
73
0
01
24

YKI
YK2
65306
51523
34515
47255
0
34464
46013

11

66

73523

12
13
14
15

01
01
01
66
CA

01010
01010
01016
30502
YK16

0
14
72751
05424
00165
14601
0
63022
45001
00101
10101
10101
53050
63022

Pseudo operation symbol[ ]
illegal in type sentence.

SZ2

Alarm 13
0
1
2

IA
0
40
65

3

34

4
5
6
7
10
11
12
13
14
15

31
26
27
24
0
01
01
01
01
65
CA

YL
YLI
YL2
67256
52666
01656
54345
01702
25463
0
24543
01010
01010
01010
65345
YL16

0
14
52654
50151
72565
26630
45434
00177
0
00101
10101
10101
14734
03222

Subscripts of subscripted
variable[ J are missing.

SZ2

530

Alarm 14 = 12A

0
1
2
3
4
5
6
7
10
11
12
13
14
15

IA
0
40
46
73
34
47
0
01
24
66
01
01
01
66
CA

YM
YMI
YM2
34255
01545
50300
25514
0
34464
46013
73523
01010
01010
01016
30502
YM16

0
14
42454
16766
16573
60177
0
63032
45001
00101
10101
10101
53050
63022

Library Routine symbol [ ]
illegal in type sentence.
SZ2

Alarm 15
0
1
2

IA
0
40
31

YN
YNI
YN2
46512

3
4
5
6
7
10
11
12
13
14
15
16
17
20
21

50
50
34
0
01
24
26
01
01
65
01
01
54
01
25
CA

32015
66017
24254
0
67653
65013
66345
01010
01010
73472
51540
65672
34526
70246
46302
YN22

0
20
46634
25134
02454
63001
0
02701
16750
15001
10101
10101
55146
12465
56526
63027
43424
27777

Flo a tin 9 po in t va ria b1e [ ]
used as function symbol
or as subscripted variable.
SZ2

531

Alarm 16

0
1
2
3
4
5
6
7
10
11
12
13
14
15
16
17

IA
0
40
65
34
0
01
54
31
51
01
01
01
65
34
70
46
CA

YO
YOl
Y02
67256
52660
0
24525
65012
67502
50015
01010
01010
01010
67256
52663
24543
30227
Y020

0
16
52654
17777
0
23024
46501
66634
15401
10101
10101
10101
52654
02701
42425
77777

Subscript [ ] appears as
function or subscripted
variable.
SZ2

532

Alarm 17

0
1
2
3
4
5
6
7
10
11
12

IA
0
40
65
34
0
01
24
67
51
67
50
CA

YP
YPI
YP2
67256
52660
0
67653
65012
47305
31012
50266
22777
YP13

0
11
52654
17777
0
02701
45432
06601
40131
6345J
77777

Subscri pt [ ] used as
argument of a functi on.
SZ2

Alarm 20
0
1
2
3
4
5
6
7
10
11

IA

YQ

0
40
31
51
25
0
01
54
65
34
CA

YQl
YQ2
67502
50016
51460
0
24525
65012
67256
52662
YQ12

0
10
66634
57347
17777
0
23024
46501
52654
27777

Function symbol [ ]
appears as subscript.
SZ2

533

Alarm 21
IA
0
40
26
50

YR

4

0

0

0

5
6
7
10
11
12
13
14
15
16
17
20

0
01
54
31
51
01
01
01
01
65
30
34
CA

0
24525
65012
67502
50015
01010
01010
01010
01016
26543
27017
24254
YR21

0
23024
46501
66634
15401
10101
10101
10101
56725
45266
02454
63022

0
1
2
3

YRl
YR2
51506
66017

0
17
56624
77777

[ ]

Constant [ ] appears as
function or subscripted variable
SZ2
SZ3

Alarm 22
0
1
2
3
4
5
6
7
10
11
12
13
14
15
16

IA
0
40
26
50
0
0
01
54
70
46
25
01
01
01
66
CA

YS

YSI
YS2
51506
66017
0
0

24525
65012
24543
30016
30010
01010
01010
01010
73523
YS17

0
15
56624
77777
0
0
23024
46501
42425
65101
10101
10101
10101
10101
02722

Constant ~ ~ appears as
variable to be typed
SZ2
SZ3

534

Alarm 23
IA

0
1
2
3
4
5
6
7
10
11

0
40
50
70
65
01
0
0
01
24
CA

YT
ITI
YT2
30322
30016
26543
77777
0
0
34464
46227
YT12

0
10
46634
56725
45266
77777
0
0
63032
77777

= lA

Negative subscript [

] illegal.

SZ2
SY2

Headings for Warnings and AlarmS'
yz

2
3
4

IA
0
0
65
26
0

YZ2
YZ2
30506
30010
0

7
5
63050
17777
0

5
6
7
10

01
52
71
32

01011
30430
24545
21010
YZll

76673
10177
03450
17777

0
1

CA

Sentence no.
Sentence 6 ~ [ ] ~ ~~
(Type) ~ 6
Warning,

535

~ ~

Constants

o

o

fA

roc
1

o

1

01
23
21
43
17

22777
77777
77777
77777
77777
ME13
SZ2

77777
77777
77777
77777
77777
MG75 }
MG4

TA4
TA3

~J

0

o
o

2
3
4

5
6
7

o
o

10
11
12
13

o
o

14
15
16

17
20
21
22
23
24
25
26
27

o

40

0

o
o
o
o

0
0
0
0
0
0
0
0

o
o

o

o
o
o
o
o

1
2

75000
64000
65000
66000
77000
77777

~26

o
o

0

40

77777
3

o

}

u adv. and CW for (
XS3 corle of {)
XS3 code of
XS3 code of ,
XS3 code of )
XS3 code of (
For symbols with CW in ME13
For symbols found in Comb. List
Zero
Indicator
One

Two
For Dununy CW
For CW fixed point variable
For CW single val.
For CW function
For CW and mask
Mask
Mask
Address of CW for comma
CW for comma
For adv. u

en

'11\
vv

1\

'1
r-

r\

o

For auv.

31
32
33

0
0

24
02

o
o

50277
77777
77777
WL3

Mask for pseudo op
CW for ~
ttand"
tt ___ " XS3 lower case
tt ___ tt XS3 upper case
Constant for EW3

CA

WL
MC4l

70000
120
77777
77777
77777
WL3
40000
WL

34
35
36

37
40

v

o

o
o

0

V

536

u.

ctiiU

l(j:st par.

Temporaries:
ME

0-12
13

14
15
16
17

ME

20
21
22
23
24

Type String-out
Storage for SY2-14
Temp. storage for CW (call word)
Temp. storage for new MB3
Extra Level Meter
Word index
Level Meter
Index "inside subscripted variable"
Index "inside subscripted function"
Counter for subscripts
Stored value for number of subscripts
Stored XS3 code of subscripted variable

537

List String-Out Routine
The List String-Out Routine translates the pseudo code "List" sentences
from the corrected Problem Tape on Uniservo 5 and edits and stores the information in the format prescribed for input to the List Generation routine
(see List Generation write-up). During the translation of the input sentence,
extensive checks are made for strict adherence to the List sentence format
specified
required.

in the Unicode manual, including the proper use of commas where
When an error is detected, a statement describing the error con-

dition is typed on the on-line Flexowriter. Errors are of two types; those
which must be corrected before compilation can continue beyond the string-out
(translation) phase, and those which give rise to a ·warning" typeout on
the Flexowriter to point out the inconsistency, but which do not preclude the
successful compilation and execution of the Object Program.

Errors of the

latter kind include the word "warning" in the Flexowriter typeout.
of all error typeouts are included in the annotated cOding.

The texts

In general, the

errors detected prior to the Title or Column Headings are of the first kind
and those detected within the title or column headings are of the latter kind.
The list which is produced as input to the List Generation routine is
referred to as the List String-out and is written on magnetic tape when it is
completed. During translation, this routine records the call word for each
of the variables to be listed as well as the call word designating the Uniservo on which the listing is to be made during the running of the Object
Program. In addition to the above call words, the List String-out includes a
section containing the headings for the listing and a count of the total
number of words in the headings. The headings are
as they are to be transferred to the listing tape.

stored in the list exactly

The texts of the headings are included just as they appear on the input
tape; however, they are edited for position on the High Speed Printer sheets.
The title is edited so that it is always centered on the page, regardless of
the number of characters it includes. The column headings and/or the names of
the variables are edited so that they are centered on the page, regardless
of the number. In addition, within the four words (23 characters) allowed
for each column heading or variable name, the characters are positioned with

538

respect to the decimal point for floating point quantities or the assumed
point for fixed point quantities.

The assumed point is to the right of fixed

point numbers.
Figure I shows the format of the heading list within the List String-out
when all three sections are

included, i.e., title, column headings and variable

names. It also shows the position of the column headings and/or variable
names within their assigned blockettes, depending on the number of such
column heading and/or variable names.
Figure 2 shows the positions of the XS3 characters within the title
blockette and within the four word items for the column headings and variable
names.
If either the column headings, or title, or both are omitted from the
input tape, the corresponding blockette(s) is omitted from the heading list
in the List String-out, and the succeeding blockette(s) packed upward (see Fig.
1).

The leftmost character of the first word of the heading list is a Fast

Feed 1 symbol.

539

IZ
..C/l
Q

~

:3
0

-C\I

c..:I

IZ4
LZIO
} 4 WORDS

~

IZ14

~
....J
c:o

[220

c..:I
::a::::

TIllE

LZ24
..C/l
Q

~

:3
0

-C\I

C,.Il
~

0

~

E-t

} 1st Col. Hdg. }

LZ30

....J
a:l

1st Col. Hdg.

} 2nd Col. Hdg. }

2nd Col. Hdg. }

I.Z34

2nd Col. Hdg.

} 3rd Col. Hdg. }

LZ40

c..:I
::a::::

~

1st Col. Hdg. }

2nd Col. Hd{;l.

3rd Col. Hdg. }
} 4th Col. Hdg. }

LZ44

lIst Col. Hdg. } 1st

COLUMN
HEADING

3rd Col. Hdg.
4th Col. Hdg.

} 5th Col . Hdg.

LZ50
..-

} 1St Var •

C/l
Q

~

LZ54

--

LZ60

:3
0

C\I

} 2nd Var.
} 3rd Var.

~

LZ64

~

I.Z70

c..:I
::a::::

....J
a:l

} 4th Var.

}
}
}

1st Var.
} 1St Var.

2nd Var.

} 1St Var.

3rd Var.

}

} 2nd Var.
} 3rd Var.

4th Var.

} 5th Var.

Figure 1.

Heading List Format

r

st

VARIABLE

} 2nd Var.

NAME

FORMAT OF EDITED TITLE BLOCKETTE

~-----------------------------------------One

blockette (120 XS3

characters)--------------------------------------~>

The nwmbers in the above diagram indicate positions of the XS3 characters of the title within the
blockette, depending on the total number of characters. If the title has only one character, it appears to
the left of center; if it has two characters, the first appears to the left of center, the other to the
right; if it has three characters, the first two appear to the left of center and the third to the right of
center; etc., only 119 of the 120 characters are allowed for the title.
FORMAT OF EDITED COLUMN HEADINGS OR VARIABLE NAMES
Floating Point Quantities (position about decimal point)
1st Word
C..n

2nd Word

__------A-----_,

3rd Word

__

4th Word

-----A~------_,

_--A---_

;l:::..

......

point of associated floating point numbers
in listing

.~Decimal

Fixed Point Quantities (position about assumed point)
3rd Word
A

Assumed point to right of associated fixed
point numbers in listing

4th Word

~.

The nwmbers in the above diagram indicate positions of the XS3 characters of the column headings or
variable names, depending on the total number of characters in the column heading or variable name.
Figure 2.

Format of Edited Title Blockette, Edited Column Headings or
Variable Names, Fixed Point Quantities

List String-out (Variable Phase)
Yes
SYMBOL ==-~
variable? )- . ' - J

SYMBOL =
comma or
semi-<:olon?

Preset
stringout

No

=-)

SYMBOL
constant?

Alarm 11:1
SYMBOL=open
arenthesis?
No

Alarm #4

No

Advance
parenthesis
level

Gf---1

Alarm #2

~

SYMBOL

==~

space-peri(1~

No

CJl

~
~

SYMBOL

=

Alarm #3
No

Decrease
parenthesis
level
SYMBOL :=

Alarm #5

r

SYMBOL =comma or semi
colon?

Alarm #6

"T;:lpe" on
parenthesis
level zero?
No

~larm #7

O

2

SYMBOL =subscripted
variable?

Check for legal
variable sym.

No

Alarm #8

SYMBOL ==fixed point
variable?

SYMBOL ==pseudo
operation?

SYMBOL

No

Alarm #9
c. n

~

w

Obtain non-subs
variable
call word

SYMBOL ==fixed point
variable?
No

==

SYMBOL
comma or semicolon?
No

Alarm #10

Fixed point var.
file to combinatio
list

Set fix pt. indicator & advance
var. count

Floating pt. var.
to combination
list

Set floating pt.
indicator & advance
var. count

Store XS3 sym~
for heading ed it

Call word
to stringout

=.

Call word
tQ

strlngout

Store XS3
symbol for headin edit

Set floating pt.
indicator & advance var. count

Set subscript
parenthesis level
~
zero

Store XS3 symbol
for heading edit

Number of
subscripts -1
~ Index
SYMBOL

=

Zeroize count
of subsc.ripts
processed

Get next)
symbol

No

§{
A

SYMBOL

Symbol
to
~~ccumu lat or

=

Alarm #11

==

SYMBOL

SYMBOL :::::

close
parenthesis?

variable?

Yes

Alarm3

Alarm #14

Advance Subscript
parenthesis level
by 1

SYMBOL

==

open
parenthesis?
Yes

Alarm

#131

SYMBOL
~~-{

==

comma or semicolon?

VARIABLE ==

Check for legal
variable symbol

"tape"?

SYMBOL ::::=.

Number of
characters in
symbol> 6?

fixed point
variable?
No

Yes
Alarm #15

SYMBOL

==

pseudo operation or
library routine?
No

Alarm U20

Alarm #19

SYMBOL

::::=

floating point
variable?
Yes
Alarm #16

Get next
symbol

SYMBOL

==

pareRfRgsis?
No
Alarm #17

~_Y~e~s~____~

Alarm #17A

SYMBOL

==-

~-~

Alarm :ttlnA

Set

parenthesis
leve 1 = zero

No

SYMBOL ==-

Alarm :tt18

close
parenthesis?
No

Close parenthesis
on level zero?

SYMBOL

==-

SYMBOL ==::.

Decrease
parenthesis
level

SYMBOL -==-

No

open
parenthesis?
Yes
Advance
parenthesis
level by 1

Yes

Alarm :ttIS

Obtain non-subs.
variable call word

Alarm :tt12

SYMBOL

~Yes

fixed point
variable?
No

Alarm :tt16

Alarm

Ul~

18

SYMBOL

==

supe rscript
constant?
Yes

Octal constan
to constant
pool

Convert XS3
constant
oc a \0

Check for fixed
point constant

Advance count of
subscripts
processed

Alarm U21

Store XS3 sym for
heading edit

SYMBOL

SYMBOL

==

SYMBOL -==-

close
parenthesis?

Call word
to stringout

==

Close parenthesis
on level zero?

Store XS3 symbol
for heading edit

No

Alarm #12

Alarm #22

Correct number of
valid subscripts
for subs. var.?

No
Alarm #23

Alarm 1124
No

Alarm #25

Function call
to stringout

Set floating
pt. indicator
& advance
count

Store XS3 symbo
for heading edit

Save
of

O
SYMBOL=::'r

open
parenthesis?

r

I

Yes

argum~~
Alarm U2~J
functl~

7A

Subroutine to Process Arguments of Function (Referenced by Alarms #17A & #26)

Set function
parenthesis level
to zero

SYMBOL

Function Symbol to temp.
storage

=

close
parenthesis?

Decrease
function
parenthesis
level

Close parenthesis
on level zero?
No

SYMBOL

==

SYMBOL

No

No

Advance
function
parenthesis
level by one

Alarm #27

-==-

List String-out (Tape Designation Phase)

Symbol following
word "tape" =
s ace-period?
Yes
Alarm #29

Symbol following
word "tape" =
ccnstant?
Yes

Symbol following
word "'tape" =
variable?
No
Symbol following
'~'
No
word "tape" =
23
( comma or semi-colon?
Yes
trin~ut
Alarm n30
eXlt
\
'-----

~

CJl
CJl

o

Symbol following
word "tape" = open
arenthesis?
Yes
Alarm #31

No
Symbol following
word "tape·' = close~-~ Alarm #33
are nthe~;i s?

Check for legal
variable symbol

Number
characters in
symbol> 6?

SYMBOL==-

No

Yes
Call word to
Accumulator

Alarm 11:36

~'--'""'1

SYMBOL
library

-=-

Symbol ==pseudo operation?
Yes

Alarm 11:34

SYMBOL :::::
fixed point
variable?
No
Alarm 11:36

Obtain non-subs.
variable call word

ixed point
var. file to
Combination
List

Alarm 11:35

SYMBOL==
fixed point
variable?
No

Tape Number
fixed point
2,3,4,5,6,7,8,9,
or 10 ?

Tape Number ==
fixed point one?

Check
point constant

Alarm #37

Stri~7
eXIt

Yes

es

\I

Alarm #56

Convert XS3
constant to
octal

constant
pool

Alarm #57

Tape Number
call word to
string.out

made
previously?

Prin~out

Tape Number
call word i
rewind list?
Yes
w.-------4

oj

Maximum number
call words in rewind list? . .
No

List Stringout (Tape Designation Phase, Cont.)

SYMBOL ==

Tape number
call word to
rewind list

t----~

Yes

Alarm #40
CJI
CJI

SYMBOL=clgse.
parent eSIs?
Yes

SYMBOL -::::.
No
comma 0 r se mi -1-------------.
colon?
Yes

No

=

SYMBOL
open
parenthesis?
Yes

~

Alarm #39

Number of errors
in this sentence
~ accumulator

Have there been

No

Yes

Warning
#41

Alarm #38

List String.out (Heading Phase)

Preset
heading
hase

Current
symbol ~
accumulator

All variable
edi ted?

SYMBOL ==.

space-period?

No
~-~

Variable indicator
word ~ inputof
edi t variable
subroutine

Get. next

Advance assembly
block address to
address for next
variable name

SYMBOL-=-

No

symbol
Yes

I35\-V-

SYMBOL=-

Warning
#.113

zeroizeJ
assembly
block

SYMBOL

==-

~~ning
~--~1:42

Get next
acter

Preset title
section

Store XS3 character
for heading edit

CHARACTER -==-

CHARACTER space (l:l)?

Get next
character

CHARACTER

Close parenthesis
on level zero?

Store XS3 character
for heading edit

No

Advance
pa re nthes i s
level by 1

Warning
#50

Get next
character

Alarm #47

==

List Stringout (Heading Phase, Cont.)

Get next
character

SYMBOL -==open
arenthesis?
Yes

SYMBOL==
comma or
semi-colon?
Yes

~
42

No~MBOL==:

~€,-periOd?

eroize
assembly
block

....;....;..~--~

Warning
#48

WBrning
#49

Preset column
heading section

Store XS3 character
for heading edit

Advance column
heading count

Next character to
accumulator

CHARACTER
space?

CHARACTER

.:=

Yes
Advance
parenthesis
level by 1

List Stringout (Heading Phase, Cont.)

Close parenthesis
on level zero?

Get next
symbol

Get next
character

Edit column
heading

Yes

Warning

SYMBOL ==.

#45

SYMBOL -::::::.
open
parenthesis?

Yes

c..n

C.11

-.J

Warning
#44

Store XS3 character
for heading edit

Get next
character

CHARACTER

== period?

Warning
#46

SYMBOL ==-

End Li st String-out
Is there a
title?

Is there a
title?

CJl
CJl

co

Yes

Heading list (title
es & variable names)
to string.out

Heading list (title,
column headings &
variable names) to
string-out

Set heading
word count
to 6010

Set heading
word count
to 4010

Heading list(column
heading & variable
names) to string-out

Heading list
(variable names)
to strin ut

Set heading
word count
to 2010

Fast feed 1 symbol
to first character
of headings in
string.out

Number of words in
string.out to first
word of stringout

Send string-()ut
to tape

List Subroutine to Send Call Word to Stringout

~---;;..t

Send call word from
"Q" register to input of stringout
subroutine

Stringout subroutine to
send call word to stringout

List Subroutine to Advance and Check Variable or Column Heading Count

C..11

Ul

'"
Preset for
fl9at!ng point
lndlcator

Preset for
floating point
character limit

entrance

entrance

Preset for
fixed point
indicator

Preset for
fixed point
character limit

List Subroutine to Advance and Check Variable or Column Heading Count, Cont.

No

'\---~

Fixed or floating
point indicator to
variable indicator
word

Number of variables Yes
> number of
column headings?

Preset subroutine to
1t s tore XS3 character
for heading edit"
for variable name

Advance column
heading count
by one

Preset subroutine to
"store XS3 character
for heading edit" fo
column heading

Zeroi~~e

character
count

No
Warning
#52

r~:;;-FJ-'
ne
eXIt

Preset
character
shift

L..-_ _ _ _ _

~

Advance
variable
count b I

SYMBOL ==:

Alarm #51

Preset index to check
if assembly block word
is full

Yes

List Subroutine to Store XS3 Character for Heading Edit
Variable
entrance

2310 > number of
characters in
variable name?

Yes

Decrease
shift count
by six

Advance
character
count by 1

Shift character
to position
in accumulator

No

Warning
#53

Decrease
index

Reset entrance
to by-pass
this routine
Current word in
assembly block
full? (check index

Advance current
assembly block
address

Reset shift
count to 3610

Reset index
to five

Column
heading
entrance
310> number
characters in
umn headin
Yes

Warning #54

Reset entrance
to by-pass this
routine

Add character to
current word in
assembly block

List Subroutine to Store XS3 Character for Heading Edit, Cont.

Title
entrance

119 10 > numb:r of
characters In
title?

Advance title or
column heading
character count
by one

No

Warning #55

Reset entrance}8
to by-pass
61
this routine

C-haracter to
register

List Subroutine to Store XS3 Symbol for Heading Edit

,,--~

Number of characters in symbol
to index counter

Store XS3 character for heading
edit

XS3 symbol
to temporary

XS3 character to
"v·t add res s of

Decrease indexl
by one

All characters in
symbol transferred
assembly block?

SUb?

~~rou~ine

eXIt

"

List Subroutine to Edit Title

T--~

Preset heading
list address
(box 3) to middle
address of title
section

Divide number of
characters in title
by 1210~number of
full words in 1/2
title to ~Q" register

Yes

Advance count of
words in 1/2 title
bone

No
Decrease address in
heading list (box 3)
by number words in
1/2 title to get
address for first
word of title in
heading list

Multiply total number of
words in 1/2 title by two
~number of words of ti tIe
when centered in title
section of heading list.

Number of words
less one to index
counter (Box 4)

Number characters in title
= 119 10?
No

Yes
r---~

Transfer 119 10 character title from assembly block to heading
list without further
.
e d·Itlng

List Subroutine 'to Edit Title, Cont.

Add three to the
number of characters
in the title---+A

Divide the
the sum by
two

Preceding
quot ient=numbe r
words in edited
title

Divicle quotient by six.
Remainder equalS number of
. char~lcters to shift in
editing title to center in
title section of heading
list

/Number characters'\
to shift equal
'-zero?
./

7

Yes

0

@

Transfer title from
assembly block to headaddress
ing list without further~__~ Preset
first title word
editing (i.e •• already
in headin list
centered)

67

Preset box I to
Two> number of ~ address of first
characters to shift?
word in assembly
block
Yes
Preset box I to
.... address of second
word in assembly
block

i~

I~

Preset box 2 to
address of second
word in assembly
block

Preset box 2 to
address of third
word in assembly
block

\

Multiply number of
characters to shift
by six to get shift
count for editing

1

Preset shift
count in box 2
~

--

List Subroutine to Edit Title, Cont.

Box 1
Current title word
for editing from
assembly block to
accumulator & shift
left 448

Box 2
Add next word from assembly
block to accumulator &
shift left preset amount
to position edited word in
left half of accumulator

Box 3
Edited title word
to heading list

Advance assembly block
address in box I & box
2 by one and heading
list address in box 3
by one

Box 4
index by
of edited
heading list?

------------------------1
I
I
I

List Subroutine to Edit Variable or Column Heading

'--~~

available
in heading
address for
variable

Yes

I
I

I

64

I
L
_________________ _

Input is variabl
indicator word

Advance
address
list to
next

I

Preset address
for next variable
in heading list
(box 3)

Preset box I to
address -1 of
first variable
word in assembly
block

Preset box 2 to
address -1 of
second variable
word in assembly
block

Number of characters
from variable indicator word to input
line and accumulator

List Subroutine to Edit Variable or Column Heading, Cont.

Number of char-

t------:!M

Preset index counter
(box 4) to one to provide for transferring
two words to heading
list

12 10 > number of
characters?

No

Is this floating
point variable?

Number of characters
in variab Ie Iname (or
column heading) plus
three to accumulator

Advance heading list
address in box 3 by
one

19 10 > number of
characters?

Yes

Preset index counter (box 4)
to two to provide for transferring three words to heading list

Yes

Preset index counter
(box 4) to three to
provide for transferring four words to
heading list

No

Preset index counter
(box 4) to three to
provide for transferring four words to
headin list

Advance heading list
address in box 3 by
one

Divide preceding
sum by two & send
quotient to accumulator

~ist

Subroutine to Edit Variable or Column Heading, Cont.

Preset index counter
(box 4) to one to provide for transferring
two words to heading
list

Advance heading
list address in
box 3 by two

Number of characters to accumulator
No
Number of characters + one to
accumulator

Divide number of
characters in variable name by two

Quotient plus
two to accumulator

Divide contents of
accumulator by six.
Remainder is number
of characters to shift

Number of
characters to
shift = zero?
No
Multiply number of
characters to shift
by six to get shift
count for editing

Preset shift
count in box

Yes

2

Zero to
accumulator

Advance address in box
I by one to address of
first variable word in
assembly block

Advance address in box
2 by one to address of
second variable word in
assembly block

List Subroutine to Edit Variable or Column Heading, Gont.
Box I
Current variable word
for editing from assembly block to accumulator
& shift left 448

Box 2
Add next variable word from
assembly block to accumulator
& shift left preset amount to
position edited word in left
half of accumulator

81

tE--~

Box 3
Edited variable
word to
headin list

Advance assembly block
address in box 1 & box
2 by one and heading
list address in box 3
by one

Box 4
Decrease index
by one

All edited variable~o
words transferred to
79
heading list?
Yes

Preset address of
first variable in
assembly block in
Box 5

Preset address
for first variable word in
heading list

Box-5
,Transfer variable words from
assembly block to heading
Ilist (i.e~ already positioned
lover decimal point)



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : No
XMP Toolkit                     : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37
Create Date                     : 2004:08:06 01:33:02-07:00
Modify Date                     : 2009:10:01 05:48:51-07:00
Metadata Date                   : 2009:10:01 05:48:51-07:00
Producer                        : Adobe Acrobat 9.13 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:b63a75a6-c7fb-4a60-b803-65ba36bb86e8
Instance ID                     : uuid:5a541c26-c899-441a-8e8a-9744ae2cf135
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 577
EXIF Metadata provided by EXIF.tools

Navigation menu