LINC_Vol_16_Section_3_LAP6_Handbook_May67 LINC Vol 16 Section 3 LAP6 Handbook May67

LINC_Vol_16_Section_3_LAP6_Handbook_May67 LINC_Vol_16_Section_3_LAP6_Handbook_May67

User Manual: LINC_Vol_16_Section_3_LAP6_Handbook_May67

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

DownloadLINC_Vol_16_Section_3_LAP6_Handbook_May67 LINC Vol 16 Section 3 LAP6 Handbook May67
Open PDF In BrowserView PDF
WASHINGTON

ST.

COMPUTER SYSTEMS

LOUIS.

~

~~

UNIVlj",,- 1- IS'
Comrnands
-L~ ...., SM -7:< ()
) tv A ,., It ,_ ...., ,-'" ...

4.

E.

1.

SAVE MANUSCRIPI'

Format: ... SM (LN, (LN,)) NAME, UNIT EOL

a.

When no line numbers are given, the current manuscript is saved by
N~ in the selected file, as close as possible to the Index.

b.

When line numbers, LN, are specified, IAP6 saves part of the current manuscript as a separate, new manuscript in the file by NAME.
The line numbers, inclusive, indicate the part to save. When
only one line number is given, the second line number is assumed
to be the last line number of the current manuscript.

lUNIT may also be specified as 4 or 5 if there is a second tape transport
whose instructions are coded 7~0 (MTT) and 720 (MTT u).
7

16-3

Meta Connnands

When part of a manuscript is saved, LAP6 must isolate
that part as a separate manuscript; to do this LAP6
uses the working area on the other unit of the tape
transport. I.e., to save part of a manuscript you
must have a tape on the other unit, and you must temporarily not care about the contents of the working
area blocks (350 and following). This is the only
command which automatically uses the other unit; it
does so only when line numbers are included in the
argumentS:--

2.

c.

If a manuscript of the given NAME is already present in the selected
file, LAP6 will display REPLACE?
Strike R to replace the file entry.
Strike EOl not to.

d.

Strike EOl to interrupt the command and return to the manuscript display. This has no effect once LAP6 has updated the Index.

ADD MANUSCRIPI'

Format:
or

... AM BN~UNITEOl
... AM NAME~ UNITEOl

Any LAP6 manuscript may be added to the current manuscript.

3.

a.

The manuscript to be added is identified either by its first block
number, BN, on any tape UNIT, or by NAME in a file.

b.

The incoming manuscript is added to the current manuscript at the current line. This is the only time that the location of the current
manuscript is relevant to the execution of a meta command. 'fire eta! Enb
ilJaiRlleel."!ifJ-& ~ @e 8ie.e~ iss res@ll SPiO'xhii'@ ( . . tOM 35 0 ,Of6l:J·
~7 f"\Q

c.

After the command the new current line will be at the end of the added
manuscript (just as though the incoming manuscript had been added at
the keyboard one line at a time). Manuscript lines which follow the
added manuscript are automatically renumbered.

d.

If there is no current manuscript, the added manuscript will be the
entire manuscript.

e.

If the arguments are inadvertently omitted, LAP6 will try to add a manuscript from block 0, unit 0. It is best not to interrupt it.

DISPLAY INDEX

Format:

..... oX UNITEOL

This command displays the contents of the Index of the specified LAP6
file, and permits unwanted entries to be deleted. An example of the display might be:

8

16-3

Meta Commands

NAME

BN #BlKS

GEORGE

M430 12
B 262 2
B 442 3
M445 27
B 474 6
M264 4
B 502 3
M505 11

12345678
DP-MAR20
DP2 APR2
DISPLAY
MNEMONIC

Example 3.

Index Display.

I.e., the manuscript (M) named GEORGE starts at block
number (BN) 430, and is 12 (octal) blocks long (#BlKS).
The binary program (B) named GEORGE is in blocks 262263. Etc.
a.

8 entries are displayed per frame.

b.

A manuscript and a binary program with the same name (~, GEORGE,
or DP-MAR20) always appear together, manuscript first, in the Index
display. Thus, by inference, this file contains no manuscript named
12345678 or DISPLAY, and no binary program named DP2 APR2. (No inference can be made about a binary program named MNEMONIC without
displaying at least one more entry.)

c.

The following key combinations relocate the display:

CASE
CASE
CASE
CASE

0:

Forward one frame

Q:

Backward one frame

1: Forward one entry

W: Backward one entry

EOl to return to the manuscript display.

d.

Strike

e.

Striking del will delete the last entry displayed (~, the manuscript
named MNEMONIC in Example 3). Whatever is deleted from the Index display is effectively deleted from the file. The file space is made
available for later use by LAP6.
(1)

Strike R to restore the Index if you delete the wrong thing.

(2)

Strike the number sign, #, to make the deletions permanent and
return to the manuscript display. (Returning with EOl effectively
ignores any deletions.)

9

16-3
Meta Co:rmnands

4.
5.

COPY MANUSCRIPl'
COPY BINARY

Format:
Format:

... CM

...... CB

NAME~UNITEOL
NAME~ UNIT

EOL

An entry may be moved from one file to the file on the other unit of
the tape transport1 with a COPY MANUSCRIPl' or a COPY BINARY command. The
commands are identical except for the kind of file entry copied.
a.

The arguments identi~ the entry to be copied; i.e., UNIT is the unit
where the entry of that NAME is to be found.
--

b.

The entry is automatically given the same NAME in the other file, and
s"",~~s close as possible, to the In~x. QL..:tll-e.w.o.:tlt~ fil~.
The original entry is-not affected.

c.

6.

If an entry of the given name is already present in the other file,
Strike R to replace the entry. Strike

LAP6 will display REPLACE?
EOL not to.

d.

Strike EOL to interrupt these commands and return to the manuscript
display. This has no effect once LAP6 has updated the Index.

e.

These commands can be used to reorder file entries. If, for example,
the three binary programs A, B, and C are to be next to each other and
in that order in a file, copy them (+CB) one at a time in that order
into a new file.

COPY FILE

Format:

... CF

UNIT

EOL

The COPY FILE command copies all the entries from the specified file
into the file on the other unit of the tape transport. 1 It does not, however, disturb, or replace, any entries which are already in the other file.
Thus, a file may be reorganized by combinations of the commands eM or CB,
to move specific entries, and CF to move all the remaining entries.
COPY FILE,puts the entries as close as possible to the Index in the
other file. It uses any possible gaps created by former deletions and thus
"packs" the file. The original file is not affected.
If COPY FILE is used to merge two files, NO may be displayed if the
entries from the original file do not all fit into the other file or Index.
LAP6 has, however, copied as many entries as it could; inspection of the
two indices will shOw which entries were not copied.
Strike EOL to interrupt the command and return to the manuscript display. This has no effect once LAP6 has updated the Index.

~rom 0 to 1, 1 to 0, 4 to 5, or 5 to 4.
10

16-3

Meta Commands

7.

CONVERT

Format:

~CVEOL

The current manuscript is converted to a LINC binary program, and three
displays of information about the program are presented. Conventions which
should be followed to prepare a LINe program manuscript are described in
section VI.
a.

The binary program will be in blocks 340-347 of the LAP6 tape after
,conversion. The block numbers correspond to memory quarters 0-7
respectively; ~, a program written to occupy memory registers in
quarters 0 and 2 will be found in tape blocks 340 and 342. Locations
not occupied by the binary program are cleared (set to +0).

b.

Strike EOl to interrupt the conversion process and return to the manuscript display. This leaves no binary program in blocks 340-347.

c.

Displays:
ERRORS. There are two kinds: undefined symbols appear with one
manuscript line number; multiply defined symbols appear with at least
two line numbers. Ten errors are displayed per frame. More than 45
errors will not be displayed, and the display is automatically omitted
if there were no errors.

ERRORS
2A 1072 6015
1X 75

~,
~s

2A is defined at both line 1072 and line 6015.
referred to on line 75, but never defined.

Keyboard Control:

CASE 0:
CASE Q:
R:
EOl:

Forward one frame
Backward one frame
Return to the manuscript display
Get next display

MEMORY ALLOCATION. This display shows the memory locations, inclusive,
required by the binary program. If the manuscript contains more than
10 "location statements" (see section VI), only 10 allocations will be
displayed.

MEMORY AllOCATION
20- -401
3670-

40

11

16-3

Meta Commands

!:.s.:..,

the binary program requires memory registers
20 through 401 plus registers 3670 through 3777, and
o through 40. Reading this display is the simplest
way to tell whether a program exceeds a certain number of memory quarters, or whether perhaps certain
portions overlap.

R:

Keyboard Control:

EOl:

Return to the manuscript display
Get next display

SYMBOlS. All tags and equalities defined in the manuscript appear in
this display. The latest definition is used for multiply defined
symbols. Ten symbols are displayed per frame.

SYMBOLS
VALUE lINE

1A 3777
28 107l

52
412

lA in the manuscript have been
in the binary program, and lA
is defined on manuscript ~ 52.

~, all references to
ass~gned the value 3777

Keyboard Control:
CASE 0: Forward one frame
CASE Q: Backward one f'rame
R: Return to the manuscript display
EOl: Save this symbol table for access by the DISPLAY
SYMBOLS connnand, and return to the manuscript display.

8.

DISPLAY SYMBOIS

Format:

... OSEOL

The symbols most recently saved by an EOl return from the SYMBOLS
display may be redisplayed at any time as an on-line debugging aid.
Keyboard Control:

9 • SAVE BINARY

CASE 0: Forward one f'rame
CASE Q: Backward one frame
EOl or R: Return to the manuscript display
Format:

.... SB

NAME~ UNITEOl

The binary program most recently converted with the CV command by this
copy of LAP6 is saved by NAME in the specified file, as close as possible
to the Index. Only programs which have been converted with CV can be
saved with SB.

12

16-3
Meta Commands

10.

a.

Only relevant, but inclusive, quarters. are saved. ~,if the program. was written to occupy quarters 1 and 4, quarters 1 through 4 will
be filed in four successive tape blocks. (The second an.d third blocks
will contain all zeros.)

b.

If a binary program of the given name is already present in the specified file, LAP6 will display REPLACE?
Strike R to replace the file
entry with this entry. Strike EOL not to.

c.

Strike EOL to interrupt the command and return to the manuscript display. This has no effect once LAP6 has updated the Index.

[ill
~

EXIT
The EXIT command makes it possible to leave LAP6, or leave the computer, without losing the current manuscript. The next time this copy
of LAP6 is used, the manuscript will still be accessible to the scope and
keyboard.

11.

a.

After EXIT, LAP6 halts. Raise RESUME to rewind the LAP6 tape.
ing it a second time reenters LAP6.)

b.

LAP6 may be reentered by executing the regular start procedure manually at the console (blocks 300-307 into quarters 0-7, START 20), or
under program. control as described below. In either case, EXIT is
good for one reentry only. (Subsequent pushes of START 20 simply erase
the current manuscript.)

c.

There is never any reason not to EXIT from LAP6 when leaving the computer.

LOAD BINARY

Format:

(Rais-

.... LO (NAME,UNITJ EOL

If no name and unit are given, the last binary program converted with
the CV command by this copy of LAP6 is read into the memory. If a NAME
and UNIT are specified, the binary program of that name is read into the
memory from the selected file.
a.

Memory registers not occupied by the binary program are cleared (set
to +0). Exception: if the binary program itself does not occupy any
registers in quarter 3, registers 1770-1777 will not be cleared.

b.

LO uses register 0 after the binary program is read into the memory.
Therefore, if the program requires an initial value in register 0, it
must be reset.

c.

LO starts the binary program at register 1. You can ignore this feature by simply assigning nothing to register 1, in which case the computer will halt at 1. The program must then be started from the console. Should you wish to use this feature, the following hints may
help:

13

16-3 '
Meta Commands

(1)

If the first instruction, or a J.MP to the first instruction is
put in register 1 (i.e., in the program manuscript following a
81 statement), the program will start automaticalJ..y" as soon as
it is read in.

(2)

If nothing is put in register 1 and the first instruction, or
a JMP to the first instruction is put in register 2, the computer will halt at register 1, but the program can be started
by raising the RESUME lever. This is a helpf'ul procedure when
there are perhaps switches to be set or tapes to change before
the program can be run.

d.LO leaves the first block number of the program's tape location in
the left 9 bits of the Z register. It leaves the corresponding unit
number in the right 3 bits of Z (to make it easier to "layer" programs which have no fixed tape location).
e.

12.

LO "EXITs" from LAP6 before reading the binary program. I.e., the
current manuscript may be recovered by executing the regular console
start procedure, or by reentering LAP6 under program control as described below. Combinations of manuscript editing, CV, DS, and LO
can therefore be used for fairly efficient on-line debugging.
Format:

FREE

... F

EOl

The FREE meta connna.nd makes it possible to add features to LAP6. When
the command is given, LAP6 reads block 317 into quarter 0 and JMPs to 20.
You may put any program you like into block 317. FREE is probably best
used for programs which work closely with LAP6, such as manuscript manipulators, or for programs which have frequent use in the local environment.
It is, of course, possible to have different FREE programs with different
copies of LAP6.
FREE may be used as a dispatcher to aIry one of several separate programs. To facilitate this, LAP6 leaves the code (Chart II) for any character typed after the F in the right 6 bits of the Accumulator. ~,
the commands ~FfOl' ... FW EOL ' and ... F: EOl will leave the codes for-EOl,
W, and :, respec~1vely, in fhe Accumulator.
If nothing is put in block 317, the computer simply halts at 20.

LAP6 may be reentered at any time under program control as described
below. (Starting LAP6 by executing the regular console start procedure
is always legal, but, except following EX or 10, the current manuscript
will be erased.)
N.b.: the rest of the memory, which contains the LAP6 tape instructions,
IS'Iiot cleared when FREE is executed. Putting undebugged programs into
the FREE block is not recommended.

s6'ec("o
14

~ w ItlT

c -() P,

16-3
Meta Commands

Programmed Return from EXIT, FREE, or LOAD BINARY
These three co:rmn.a.nds do not return automatically to I.AP6. Since
they essentially provide the ability to leave LAP6 gracefully in order
to run other programs, what ,happens after one of these commands is
executed is up to you.
If you wish, however, after executing one of these commands, to reenter LAP6 other than manually, you may do so in the memory under control
of your own program. Put
15)
16)

RCG

~

7 () I

71300

in registers 15 and 16 and JMP 15. (Executing RCG, 7\300 from the console
switches and starting-at 17 is equivalent.) LAP6 and the current manuscript will be as they were before the command was executed.
There is no other way to enter I.AP6 under program control. Do not
change the instruction, and do not move it to some other register. Do
not enter LAP6 this way illlless you left via EXIT, FREE, or LOAD BINARY.

13.

Format:

COPY

+CP EOl

This command copies the contents of any number 'of consecutive tape
blocks on any unit to any place on any unit. l It should not be confused
with putting entries in a LAP6 file, and has no effect on a file Index.
When the command is given, the following appears on the scope:

COpy
? BLOCKS
FROM BLOCK ?
UNIT 1,
TO BLOCK 1
UNIT 1
a.

lunit

=

~Number

of blocks to move, octal

} Present location
} Requested location

Fill in the question marks as i:ndicated: type the number of blocks
to be copied. This will replace the? on the second line. Terminate
with EOl and type the first block number of the blocks to be copied.
This will replace the 1 on the third line. Terminate with EOl.
Continue answering the questions, terminating each answer with EOl.
The command will be executed when the last EOl is struck after the
sixth line.
0 , 1 , 4 ,or 5 .

15

16-3
Meta Commands

14.

b.

Striking del will delete the answers and restore the question marks,
one at a time. Answer the question again. (Do any dels before the
sixth EOl.) If LAP6 doesn't like what you typed, the question mark(s)
will reappear automatically.

c.

Strike CASE to interrupt the display and return to the manuscript display.

d.

The blocks being copied are not affected.

e.

To copy an entire tape, copy 1000 blocks from block O.

f.

To copy LAP6 itself, copy 50 blocks from block 300 on unit O.
Notes, "Copying LAP6 Tapes.")

g.

Since LAP6 can move only 7 blocks at a time (because of memory limitations), care must be taken not to overlap the blQck numbers on the same
unit when COPYing more than 7 blocks. Example: requesting LAP6 to
copy 12 blocks from block 550 to block 552 on the same unit will not
work, because LAP6 must write the first 7 blocks in blocks 552-560 before it can read the last 3 blocks from blocks 557-561. Requesting
it to copy 7 or fewer blocks, however, from block 550 to block 552 on
the same unit will work. (Obviously, if the units are different, the
COPY will be successful.)
Format:

PRINT INDEX

..... PX

(See

UNIT EOl

The contents of the specified Index are printed on a teletype which
is connected to the LINC through bit 0 of the Relay Register, and which
is turned on in the "line" mode. Printing time is 1 to 2 minutes.
a.

15 .
16.

Strike
play.

EOl

to interrupt the printing and return to the manuscript dis- ,

PRINT MANUSCRIPl'
LIST

Format:
Format:

....PM (LN, (LN,))

.... lI

(LN~ (LN~))

These two co:mmands both use a teletype to PRINT or LIST
and have several operating features in common:

LAP6

manuscripts,

(1)

The teletype must be connected to the LINC through bit 0 of the Relay
Register and turned on in the "line" mode.

(2)

Arguments - all optional:
(a)

16

(NAME~ UNIT ~Ol
(NAME~ UNIT {OL

If no name and unit are given, the current manuscript will be
printed or listed. If NAME and UNIT are given, LAP6 will print
or list the manuscript of that NAME from the file on that UNIT.

16-3
Meta Commands

(b)

(3)

If no line numbers are given, the entire manuscript will be
printed or listed. When line numbers, LN, are specified, part
of the manuscript will be printed or listed. The line numbers,
inclusive, indicate the part. When only one line number is
given, the second line number is assumed to be the last line
number of the manuscript.

Approximately 708 manuscript lines are printed or listed per teletype page. The pages are approximately 11 inches long if cut at the
marker which appears between pages.

(4) The NAME, if any, and the page number in octal appear at the top
left corner of each page. The line number of the first manuscript
line which be~ins on that page appears at the top of the page in the
format "LN=
.
(5)

Strike EOL to interrupt the printing or listing at any time and to
return to the manuscript display. Interrupt with EOL if you forget
to turn on the teletype.

(6)

Manuscript lines which are too long to fit on one teletype line are
automatically carried over to the next teletype line.

(7)

The following characters differ between LINC keyboard (Chart II) and
teletype print:
LINC Keyboard

CASE CASE
CASE A
CASE B
(8)

a.

Scope

Teletype

II

When the printing or listing is finished, you muBt strike EOL to
return to the manuscript display. (This prevents the manuscript
display from burning the scope if you have left the teletype.)

Print Manuscript
Any LAP6 manuscript can be printed with PM. PRINT MANUSCRIPl' will
not split words between teletype lines. Printing time is approximately
1 minute per page for LINC program manuscripts.

b.

List
Any LAP6 manuscript which LAP6 can convert to a LINC program can be
listed with LI. In addition to the manuscript lines, LIST prints the
symbols associated with the manuscript, and the memory address and memory contents of each register of LINC program generated by the manuscript~
The symbols are printed first, in as many as 4 columns if necessary,
but nevermore than one page. The manuscript is then listed one line at
a time with the memory address (p), and the memory contents (CONT), in
octal in the left two columns preceding the associated manuscript line:

17

16-3
Meta Commands

NAME"PAGE

VAIDE LINE
]A 0030
17

VAIlJE LINE

3T 0426 441
4B 1301 1354

lB 0067 57
IF 1737 2051

NAME"PAGE

LN=l

p CONT
[LIST SAMPLE

15
16
17
20
21

815
0077 #4D SET i 17

6063
0704
6040
7301

JMP

lB-4

WRC
6 140
JMP

4B

Example 4.
(1)

When line numbers are specified, the symbols are not printed. ThU$,
~LI 1 ("NAME"UNITJEO L' lists the entire manuscript without the symbols.

(2)

Do not try to LIST a manuscript which LAP6 cannot convert; use PRINT
MANUSCRIPl' instead. LIST does not, however, affect the program. last
converted with CV, the operation of either SAVE BINARY or LOAD BINARY,
and there is no need to convert a manuscript before you list it.

(3)

If the manuscript contains "text" (see section VI), the following should
be noted:
(a)

18

LIST Format.

The "p" and "CONT" columns of converted text are listed before
the corresponding manuscript line of text. (The manuscript line
is not broken; it appears on one line in the listing as it does
on the scope.)

16-3
Conversion Conventions

fV ..·:C'

Occasionally (because of the placement of EOLs within the text))
"p" and "CONT" will be repeated for a single register. The
second listing for the register is the correct one.
(4)

Listing time is approximately 2 minutes per page.
Hint: the fastest way to produce printed copy of program manuscripts on the teletype is to LIST the manuscript only through the symbol table. Interrupt by
striking EOl. Then PRINT the MANUSCRIPr. The symbol
table, providing both the value and the line number of
all the symbols in the manuscript, contains all the information needed to find your way around the printed
manuscript.
VI.

Conversion Conventions

To facilitate program writing we generally prefer to use symbols instead
of the binary, or even octal, numbers which we understand the symbols to represent. We prefer to write "ADD," not "2000" or, even worse, "010 000 000 000,"
making a note that when the program is put into the memory, 010 000 000 000
must be substituted for the mnemonically easier "ADD."
The CONVERT command, by making the appropriate binary substitutions for
you, permits a LINC program to be written in a symbolic form as a LAP6 manuscript (Example 5). To prepare the manuscript so that it can be converted
correctly, certain conventions must be observed. The symbols used ~enerally
follow those in the programming examples in "Programming the LINC, " with
amplifications.

[lINe PROGRAM SAMPLE
8200
3 #9R lOA ;
4
7B [VARIABLE
5
ADA ;
p+4
6
7 #6X JMP 6X-10
10
JMP 9R
11
7B=ADD [EQUALITY
12
-4000
13
9R-6X
1
2

Example 5.

LAP6 Program. Manuscript.

lwilkes, M.A. and W. A. Clark, LINC, Vol. l~ Prosramming and Use-I, Section 2,

Washington University, St. Louis, June 1

5.

19

16-3

Conversion Conventions

For example, a single register instruction (line 7 or 10) mu£t
manuscript line; double register instructions (lines 3-4, and 5-6)
lines. In addition to these instruction lines, some special lines
appear in program manuscripts, such as comments (line 1), location
(line 2), and equality statements (line 11).

occupy one
occupy two
may also
statements

In the following, converted values are represented in octal (not binary).·

A.

Location Statements - 8
To convert the manuscript to a binary program, LA.P6 must know what
registers you intended the program to occupy. A location statement
(line 2 above) tells LA.P6 to put the instructions (or perhaps data tables)
which follow it into sequential registers beginning with the specified
location. In Example 5, the LOA i instruction on line 3 will therefore
be put in register 200, the ADA i instruction on line 5 into register 202,
etc.

LAP6 continues to use sequential registers (2000 following 1777, and
following 3777) until a new location statement is encountered. There
may be as many location statements in a manuscript as you like. If
portions of the binary program overlap as a result, the location statement which appears latest in the manuscript has precedence; the instructions
(or tables) which follow it will be the ones which appear in the binary
program. This is sometimes useful when programs must be written to run
with different segments using the same memory locations at different times.

o

1.

A location statement must begin with the location symbol, 8., followed

by octal constants which represent a memory address.

B.

2.

Manuscripts containing no initial location statement will be located
at 20.

3.

A location statement must occupy a manuscript line by itself, except
that it may include a comment. It is not, however, a line of program
and does not appear in the binary program after conversion.

Tags - #
To eliminate the need to know the actual memory address of a given
instruction or data word, any program line (i.e., any manuscript line
except location statements and equality statements) may be "tagged."
That is, it may be identified by symbols which represent its memory
address, and it may be referred to by its symbolic, rather than its actual,
address.
In Example 5, the tag #9R on line 3 represents the actual memory
address, 200, of the LOA i instruction. This symbolic address is then
used on line 10 where the code for "JMP 200" is represented symbolically
by JMP gR. Similarly the tag #6X on line 7 represents the actual memory
address 204. "9R" is said to be "defined" on line 3; "6x" is defined on
line 7.

20

16-3
Conversion Conventions

1.
C.

A tagged line must begin with the tag symbol, #, followed by a
Number Letter combination.

Equality statements _

a

The equality symbol, =, can be used to assign any value you like to
a Numbep Lettep combination. Equalities should not be confused with tags,
whose values are assigned by LAP6 relative to location statements.
Equality statements are generally used when a program value must be
treated as a variable. E.g., in Example 5, 7B is defined by an equality
symbol on line 11 to represent the code for ADD, or 2000. The equality
statement tells LAP6 to convert all references to 7B, such as the one on
line 4, to the value 2000: The- value can be 'changed later simply by redefining 7B, i.e., setting it equal to a different value, and converting the
program again. "7B" is "defined" on line 11.
1.

An equality statement is a Number Letter combination followed by the
= sign, followed by the definition of the Number Letter combination.

2.

The definition may be any combination of characters which LAP6 can
convert except "text" (~). If, however, the definition itself contains Number Letter comblnations, they must have been defined earlier
in the manuscript.
putting 7B=6X on line 11 in Example 5 would
properly assign the value 20~to 7B, because 6x is
itself defined on line 7. Were 6x not defined earlier , it would appear as an undefined symbol in the
ERROR display following conversion.

~,

3.

An equality statement must occupy a line by itself, except that it may
include a comment. It is not, however, a line of program and does not
appear in the binary program after conversion.

D.

Number Letter Combinations
The Numbers are 1 through 9;

1.

The Number must precede the Letter.
Letters are capitals A through Z.

2.

A Number Letter combination may be defined once as a tag if it
also defined as an equality. If it is defined more than once,
appear as a multiple definition in the ERROR display following
sion. The latest definition in the manuscript will be the one
~,

is not
it will
converused.

the following will be converted as shown:
Manuscript

Conversion

1

8100

4

p CONT
100 2003
101 6042

2F=40

2 #2F ADD 3
JMP 2F+2
3

(Not 6102)

2F is defined on both line 2 and line

4.
21

16-3
Conversion Conventions

2.

A Number Letter combination which is used, but not defined, is assigned
the value zero, and appears as undefined in the ERROR display following conversion.
~,

JMP 3X, when 3X is not defined, is converted

:w-oOOO.
E.

Comments

.

'- [

The manuscript may be annotated anywhere with "comments" which LAP6
ignores during conversion.

F.

1.

Comments must begin with the comment symbol, [.
character may follow the comment symbol.

2.

A comment may be either on a line by itself (line 1, Example 5), or
included on any other line so long as it is the last thing on the line
(lines 4 and 11, Example 5).

Symbolic Operation Mnemonics
1.

G.

Any displayable

Three letter mnemonics may be used to represent instruction codes. The
mnemonics which LAP6 recognizes, and the codes which they represent,
are defined on Chart III.

Present Location

- p

The small p is used as a symbol for the memory address of the line
itself on which it appears. ~,the information on line 6 in Exarrrple 5
will be converted for register 203 (counting from the 8200 statement) .
The p on that line, therefore, represents the address 203. (p+4 will then
be converted to 203 + 4, or 207.)
A tag reference can certainly be used instead of p (on line 6, 6X+3
would be equivalent to p+4 ), but P is often simpler.
H.

Special Symbols
1.

The "i" bit: A small i on a line of program or in the definition of
an equality will be converted to 20.

2.

The "u" bit: A small U on a line of program or in the definition of
an equality will be converted to 10.

3.

The vertical bar, I, can be used to separateQN and BN in the second
line of tape instructions or to separate the h-bit in half word
addressing:
~,

22

412777 will be converted to 6777.
317E, where 7E has the value, say, 45, will
be converted to 3045.

16-3
Conversion Conventions

The value on the left of the bar is multiplied by 1000 and added to
the value on the right of the bar.
You may have any combination of symbols which LAP6 can convert on
either side of the bar.
I.

Plus and Minus

+ and -

These symbols are simply used to combine other symbols arithmetically,
as in:
1.

Relative addressing: p + 4 and 6X - 10 in Example 5 will be converted
respectively to 207 and 174 (6X represents 204).

2.

Signed numbers: -4000 will be converted to 3777.
be converted to 6777 (-1000).

3.

Computing differences in memory addresses:
Example 5, will be converted to 7773 (-4).
for determining the lengths of tables.

3000 - 4000 will

9R - 6X on line 13,
This is sometimes useful.

4. Odd combinations: Any combination of convertible symbols may be manipulated arithmetically in any order.
~, ; + ; - U - 6X + P - LAM + ROC ••. ,
while perhaps not meaningful, is perfectly
legal.

LAP6 does all calculations sequentially in ones' complement, endaround carry arithmetic. Thus, 6 - 6 (or ADD - ADD) will be converted to

7777 (-0).
J.

8' sand 9' s
All numerical information on a program line must be in octal
(6X - 10, -400~). LAP6 will usually convert meaninglessly any numbers
containing an
or 9.

K.

Text -

1111

LAP6 will retain in the binary program the 6-bit ~board Co..9:.§.s of
any characters in the manuscript which are set off as "text lt by the upper
and lower quotation marks. ~,The following will be converted as shown:
81000
SAE ;
"1RII

P

CONT

1000 1460
1001 0145

(01 is the code for 1, 45 'for R; see Chart II.) This facility simply eliminates the need to refer to a keyboard coding sheet, and provides more
readable manuscript.

23

16-3
Conversion Conventions

Clear ly

SAE ;
0145 would accomplish the same thing. The text feature, however,

is useful for coding characters for, say, display programs.
The "rule" for using text is simply: every character between quotation
marks is retained as keyboard code in consecutive half words in the binary
program.
1.

The text initiator is the up~er quotation mark (CASE A). The terminator
is the lower quotation mark tCASE B). The quotation marks are not retained.
a.

There may be ~ keyboard characters between the quotation marks except the lower quotation mark (which terminates the text) and del
(which deletes the line). This includes the upper quotation mark
itself.

82000 EOL
2 [LABELS EOL
3 #3R "GRAPH #?IIEOL
4 #4X "DAIA\t_:t~_OL
5
RUN ,?" [COMMENT EOL

1

Example 6.
2.

Text •

A line of text may be of any length. LAP6 will assign 2 character codes
to a register, beginning in the left half of, in Example 6, register 2000:
P

CONT

2000
2001
2002
2003

3245
2443
3314
2260

Since there are a total of 8 characters between the quotation marks on
line 3, four registers will be required. The next register used by LAP6
will then be 2004.
a.

~4

When the number of characters between the quotation marks is odd, the
character for SPACE (14) is automatically put in the right half of
the last word:

16-3
Conversion Conventions

Conversion
1420
2414

SHD i

"Au

(This will then act as a "blank" if the characters are displayed.)

3.

A
several manuscri t lines when the text includes
. In Example
a text line is begun on manuscript line
4 and terminated on manuscript line 5. The rule is the same, however,
- every character between the quotation marks is retained, regardless
of how many manuscript lines are involved.

4. A line of text may be tagged.

Tag text before the upper quotation
mark. The tag will represent the memory address of the first register
used by the text. Thus, the tag #3R on line 3 of Example 6 will have
the value 2000, and the tag #4X on line 4 will have the value 2004.
(The instruction
i a
3R-4X can then be used to supply an index register with the length of the character table generated by the text on
line 3.)

smr

5.

L.

A manuscript line which contains a line, or part of a line, of text
may not contain any non-text information (program instruction, equality, etc.) except that it may be tagged before an upper quotation
mark, and may include a comment after a lower quotation mark (line 5,
Example 6).

Spaces and Line Format
1.

Spaces are permitted anywhere in a manuscript, except between the
number and the letter of a Number Letter combination.
~,

2.

I 7C , 6X = ROC, 8 2 0 , # 2A ,

etc.

Spaces are not required anywhere, except between a number and a letter which do not represent a Number Letter combination.
~,

3.

ADD, P - 1 0 , 3

SAEi5 = SAE5i = 5 SAEi , etc.

The elements of a program line may appear in any order on the line
so long as tags come first.
~

,

#3K ADD p - 10 = #3KpADO-10 = #3K-10+pAOD ,etc.
#4RRDC i u = #4R u i RDC = #4R u ROC i ,etc.

25

16-3

Bibliography
Clark, W. A. and C. E. Molnar, "A Description of the LINC," Computers
in Biomedical Research, Vol. 2, 1965, Academic Press Inc., New
York, 35-66.
Convocation on the Mississippi, Proc. of the Final LINC Evaluation
Program Meeting, March 18-19, 1965, Washington University, St.
Louis.
Marlowe, L., LINC Command System, Nov. 3,1965, Brown University, (informal report).
McDonald,M. D., S. R. Davisson, and J. R. Cox, Jr., A LINC Utilitl
System, Technical Report No.1, Mar. 19, 1965, Biomedical Computer Laboratory, Washington University, St. Louis.
ter, Technical
University School

--~~~~~~--~~~~~--~---------

Wilkes, M. A., LAP3 Users' Manual, Aug. 1963, Center Development Office, decd., Massachusetts Institute of Technology, (informal
report) .
Wilkes, M. A., "LAP5: LINC Assemb~ Program, It Proc. of the· DECUS Spring
Symposium, May 1966, Boston, 43-50.
Wilkes, M. A. and W. A. Clark, "Programming the LINC ," LINC Vol. 16,
Progra.nnning and Use-I, Section 2, June 1965, Computer Research
Laboratory, WaShington University, St. Louis.

26

16-3

Block
0

Block
0

File

File

270
UNUSED

270

300
LAP6

350

UNUSED

Current
Manuscript
Working
Area

426
INDEX
File

426
nIDEX

430

430
File

1
rI11
Standard LAP6 (wi th file)

Chart I.

77'1

1

StandardLAP6 File

Sta.ndard LAP6 Tape Organiza.tion

27

~1oIr;lr;lGlr.;llsllslr.;llall;l~

CliJL:wL:2LJUJ~~~WJJLJWU2JL:illL.::i!J

r;l1wlfJ;lr;l~1vl1ulr;l1olr;l8
~LWLWLWL£JW~WU!JLWLW
A
s
0
F
·G
H
J
K
L
+
-

' ~~~BJ~w~GJ[JJQ
~
24

46

27

31

32

33

35

36

37

20

rr;l1zl1xlr<7l1vlr»;lr;lr;;lru;l~
Lill~WWLiLJWWLJ~U!JLW

17

~M~E~T~A-"""\

EOL

12

SPACE

U~Eer

Lower Case

5

00
01
02
03
04
05

6

06

7

07
10
11
12
13
14
15
16
17

0

1
2
3

4

8
9

EOl
del
SPACE

;

P

20
21
II
22
CASE
23
A 24
B 25
C 26
0
27
E 30
F 31
G- 32
H 33
I
34
J
35
+

40
N 41
0
42
P 43
Q 44
R 45
S 46
T 47
U 50
V 51
W 52
X 53
y 54
Z 55

(CASE SPACE)

....

56

?

60~

•
u

•
8

[
(CASE CASE)
(CASE A)

II

(CASE B)

II

(CASE C)

<

(CASE D)

>

(CASE E)

]

*

K

:P

(CASE F)

l

37

(CASE G)

Chart II.

28

(META)

M

LAP6

Keyboard Code

Case

61
62
63
64
65
66
67
70
71 72
73
74
75
76

\1 '.
\
-I

.r \

Numerical

0
0
5
10
11
13
14
15
16
17
40
100
140
200
240
300
340
400
415
440
440
446
450
451)
452
453
454
455
500
515
516

HLT
MSC
ZTA
ENI
CLR
ATR
RTA
NOP
COM
SET
SAM
DIS
XSK
ROL
ROR
SCR
SXL
KST
SKP
SNS
PIN
AZE
APO
LIE
ISZ
OVF
III

OPR
KBD
RSW

517
600
640
700
700
701
702
703
704
705
706
707
740
1000
1040
1100
1140
1200
1240
1300
1340
1400
1440
1500
1540
1600
1640
1740
2000
4000
6000

Alphabetical

LSW
LMS
UMB
MTP
ROC
RCG
ROE
MTB
WRC
WCG
WRI
CHK
MTT
LOA
STA
ADA
ADM
LAM
MUL
LDH
STH
SHD
SAE
SRO
BeL
SSE
BCO
DSC
ADD
STC
JMP

ADA
ADD
ADM
APO
ATR
AlE
BCL
BCO
BSE
CHK
CLR
COM
DIS
Dse
ENI
HLT
IBI
JMP
KBD
KST
LAM
LOA
LDH
LMB
LSW
LZE
MSC
MTB
MTP
MTT

13
1100
2000
1140
451
14
450
1540
1640
1600
707
11
17
140
1740
10
0
453
6000
515
415
1200
1000
1300
600
517
452
0
703
700
740

Chart III. LAP6 Instruction Mnemonics and Codes

MUL
NOP
OPR
OVF
PIN
RCG
ROC
ROE
ROL
ROR
RSW
RTA
SAE
SAM
SCR
SET
SHD
SKP
SNS
SRO
STA
STC
STH
SXL
UMB
weG
WRC
WRI
XSK
ZTA
Zll

1240
16
500
454
44.6
701
700
702
240
300
516
15
1440
100
340
40
1400
440
440
1500
1040
4000
1340
400
640
705
704
706
200
5
455

,
29

Command
SM

AM
OX

eM

CB
CF
CV
OS
SB
EX
LO
F

CP
PX
PM
LI

Arguments
(LN~LN~) NAME~UNIT
BN~UNIT

or

NAME~UNIT

UNIT
NAME, UNIT
UNIT

None
NAME~UNIT

None
(NAME~

UNIT)

None
UNIT
(LN,LN,) (NAME, UNIT)

If
If
If
If

no
no
no
no

NO Appears on Scope
current manuscript; if Index or file on UNIT is full.
manuscript is found as specified.
Index is found on UNIT.
entry is found as specified; if other Index or file is full.

If no Index on UNITJ if other Index or file is full.
Never
If no binary on LAP 6 tape; if Index or file on UNIT is full.
Never
If no binary is found as specified.
Never
If no Index is found on UNIT.
If no manuscript is found as specified.

Chart IV.

Reasons for NO

~
I
W

CSP

PGR
LAP6 tape:

RCG (701)
7300
START 20

15)
16)

300-337 LAP 6
340-347 Binary working area
350-425 Current ms area
File tape (with or without LAP6):
426-427 File Index
0- 267 File areas
430-777

RCG
7300
(JMP 15)

I

1

Only after
EX, lO, or F
MD

"

!
MANUSCRIPT DISPLAY. EOl terminates ms line. ..LN
LN. Knob 7 changes no. of lines displayed. START E9
I

b

locates ms at
erases current ms.

c

T

...
META COMMANDS. State during MD. Begin with META (~). Separate two or
more arguments* by commas. Terminate with EOl. If NO on scope, EOl to MD.
Save current, or part of current, ms in file on UNIT. If LN given, then
d
.. SM +1
temporary use of blocks 350-425 on other unit durin~ execution .
.. AM U Add ms to current ms at current line. NAME or BN must precede UNIT.
Display Index of file on UNIT. R: restore Index after wrong deletions .
c,e
.. OX U
#: make deletions permanent. return to MD •
.. CM I Copy ms from file on UNIT to other unit.
d
d
..... CB I Copy binary from file on UNIT to other unit.
.. CF u COpy all non-duplicate file entries from UNIT to other unit.
e
.. CV
e
Convert current ms. Binary to blocks 340-347~ LAP6 tape. 3 displays:
a.b
ERRORS. Multiply defined. two LNs. Undefined, one LN.
a
MEMORY ALLOCATION. Inclusive locations reQuired by binary program.
b
SYMBOLS. Value. LN for all symbols. EOl: save SYMBOLS. return to MD .
.. OS
b.e
Display SYMBOLS saved durina CV.
..... SB I Save relevant auarters of binary or02ram from last CV in file on UNIT.
d
... EX
Exit from LAP6. Halt. RESUME rewinds LAP6 tape. CSP or PGR.
o Load Binary into memory. BN to Z3-Z11. Unit no. to ZO-Z2· Uses reg.O.
... lO
Starts binary at reR. 1. CSP or PGR.
Free meta command. Block 317 to quarter O. Code of char. following F
+F
PGR.
to Accumulator. Starts rea. 20.
Copy blocks. Octal keyboard answers to displayed questions. EOl:terminate
+CP
answers. del: delete answers. CASE: interrupt display. return to MD
e
... PX U Print Index on UNIT on teletype (bit O. Relay Reaister).
e
.. PM +0 Print ms on teletvoe (bit O. Relav Re2ister) •
List ms with symbols, memory address, and memory contents on teletype
e
... lI +0
(bit O. Relav Re2ister). LN - 1 lists without symbols.
U: UNIT required.
* I: NAME, UNIT required.
0: N~,UNIT optional. If none, uses current ms or binary from 340-347.
+: LN or LN.LN optional (before NAME.UNIT if any). Indicates part of ms.
BN: first Block Number
CSP: Console Start Procedure, to MD
current ms: ms displayed during MD
LN: ms line number (max. 7775 octal)
ms: manuscript (max. no. blocks - 45;
max. no. chars./line = 512)
NAME: name of file entry, max. 8 chars.
PGR: Programmed Return to MD
UNIT: tape unit number (0. 1. 4. 5)

a
a b
b c
b c
c
c
e

I

EOl: 2et next display
R: return to MD
CASE 0: fwd 1 frame
CASE 0: bkwd 1 frame
CASE 1: fwd 1 line
C~S~ W: bkwd 1 line
del: delete last scope line
R: replace duolicate entry
dl
EOl: interrupt; return to MD
die

LAP6 Operation Summary

16-3

Notes
Efficient Handling of LAP6
Editing. Although lines may be edited in any order, LAP6 is occasionally
more efficient (less tape shuffling) if low numbered lines are edited before
high numbered lines. If you are simply reading the manuscript (i.e., not changing it), the tape efficiency is not affected.
The abilities to SAVE part of a manuscript and to ADD one manuscript in the
middle of another manuscript can be used to reconfigure large manuscripts and
to substitute for a REMOVE command. Saving part of a manuscript not only puts
the new manuscript in a file, but also leaves it in the working area of the other tape. It can be brought into the current working area with the command

.. AM 350,1 EOL'
Adding a manuscript is much faster if the manuscript is not on the LAP6 tape.
Move it with CM or CP to another tape before executing the AM command.
Conversion is faster if location statements which refer to addresses in
one pair of memory quarters (pairs: 0-1, 2-3, 4-5, 6-7) are not interspersed
with location statements which refer to addresses in different pairs. This
technique will save some tape shuffling during conversion.
Conversion Procedure
The converted values of discrete elements of a program line are always
added to the word being assembled. The complemented value of an element preceded by a minus sign is added. Thus, SET OPR, which is converted to 540, is
equivalent to SET+OPR; i i, which is converted to 40, is equivalent toi+i.
Exiting
If either EX or 10 is executed when 1 is the current line number, the manuscript display will suggest that there is no current manuscript, which mayor
may not be the case. Therefore, if ~ when restarted, displays only the line
number 1, do not assume that there is no current manuscript without trying to
locate forward (to a higher line number) once.
Working Axea Length

LAP6 checks for various boundary crossings" It will not, for example,
permit a manuscript to go beyond the working area into the Index.
If the manuscript-Index boundary is encountered, LAP6 ignores additional
manuscript input. It will, however, continue to honor all the meta commands.
You can thus SAVE the MANUSCRIPT, equip yourself with a configuration of LAP6
which has a larger working area, and continue.

1

16-3

Notes

LAP6 Manuscript structure
COding Rules:
A LAP6 manuscript is a single string of 6-bit character codes. On a LINC
tape the codes are stored in sequential half-words in sequential, contiguous
blocks, in the order in which they appear on the scope.
1.

The first word of the first block contains the number 2065. The second
word contains 5712. The last half-word of the manuscript contains 77.
There is no other control information associated with a LAP6 manuscript.

2.

The characters are coded as on Chart II. The codes for del (13), CASE
(23), META (56 and 57), and 77 (except last) do not appear in a LAP6
manuscript. One EOL (12) does not appear next to another EOL.

3.

There are no more than 51110 codes between two EOLs.

Generat~ManUScript:

A
manuscript may be generated other than with LAP6, and used with LAP6.
However, it must:
1.

Conform to the above coding rules.

2.

Be put in contiguous blocks on a LINC tape.

3.

Not be put in the manuscript working area (blocks 350-425) of a LAP6 tape.

4. Be added to LAP6 with ADD

MANUSCRIPr,

.. AM BN, UNITEOL •

If the above procedure is followed, the generated manuscript may then be treated
as any other tAP6 manuscript.
.
Manipulating Manuscript:
LAP6 maybe used to generate a manuscript (~, a programming language, a
bibliography, etc.) which is to be the data source for some other program. You
may assume that the current manuscript on the LAP6 tape (blocks 350 ff.) conforms
to the above coding rules, and is therefore accessible, following the commands
EX, F, CP, CV, W, and SM. You may read the manuscript directly from the working
area. Do not, however, write back into the working area. Following these commands you' may ADD the MANUSCRIPr from the current working area into the working
area of another copy of LAP6.
Copying LAP6 Tapes
To copy a LAP6 file use CF.
(see "Manipulating Manuscript").

To copy the current manus cript use CP or AM
To copy LAP6 use CP and note the following:

Since LAP6 writes over parts of itself in blocks 300-347 while running, the
probability that any two copies of LAP6 are ever exactly alike is extremely remote. Copying only some of the blocks between 300 and 347, i.e., to patch up a
damaged LAP6, will therefore generally result in a mess. Yo~t copy all 508
blocks at once.

2

16-3
Notes

Avoid copying a version in which either EX or 10 was the last command executed. Such a version assumes that there is a particular manuscript in its
working area. Using this version on a different tape may result in another
mess unless the working area is also copied.
One procedure guaranteed to work is for the version which is to be copied
to do the copying and to COPY itself. The last command executed will, of course,
have been CP when the version is started from another tape, and there will be
no confusion about the current manuscript.
Filing Limitations
The filing limitations of LAP6 are obvious. The SAVE BINARY command will
file only a program which LAP6 has converted, and which therefore is no more
than 8 blocks long. Furthermore, no command will permit an entry to be filed
in specific blocks. If LAP6 files it, LAP6 decides where to put it.
There are various ways around these limitations. In this connection note.
that the COPY BINARY, COPY FILE, and LOAD BINARY commands are not bothered by
binary entries longer than 8 blocks. The first two simply copy entries as they
are described in the Index, no matter how long they are, and LOAD BINARY loads
as many blocks as it can, through quarter 7. It does not load around the end
of the memory. Thus, if a binary entry is, say, 12 blocks long and its first
block is for quarter 3, LO will load only the first five blocks of the entry,
into quarters 3 through 7.
To file binary information which LAP6 has not converted, you can create
a pseudo file entry and then COPY into the entry's file space the binary information you want in the file. The easiest way to do this, if 8 or fewer blocks
are needed, is to make up the three line manuscript:
1
2

3

83777
0
0

Convert it (CV). Save the resulting 8 block binary "program" in a file (SB).
This provides a named binary entry in the Index, and 8 contiguous blocks (of
zeros) in the file. Display the Index to find out where the 8 blocks ·~e, and
then copy (CP) whatever you want into the 8 blocks. LOAD BINARY will, in this
case, load all 8 blocks.
You may also, of course, COPY anything into a manuscript file space, which
is thus not limited to 8 blocks . Neither ADD MANUSCRIPr nor WAD BINARY, however, will be any use in retrieving it.
All the filing limitations can be avoided by creating a file Index yourself. You can prepare a LAP6 manuscript of Index entries which when converted
is identical to a LAP6 Index, and can be copied (CP) into the two Index blocks
on a tape. This permits you to make entries of any length, or to claim specific blocks in a file before LAP6 has a chance to assign the blocks to something
else. The Index thus created can then be used by any LAP6 filing commands,
which will simply file around your entries. So long as the fixed entries are

16-3
Notes

not deleted from the Index, their file space will never be used by LAP6.
If file entries are to keep fixed tape locations when being copied to another file, they must, of course, be moved with CP (not CM or CB). To copy a whole
file which contains some fixed location entries, COPY the Index first. Delete
from the "new" Index all the entries which do not need a fixed location. COPY
FILE from the old file into the new one to move those entries, and COPY the entries which have a fixed location.
Index Structure
You may have occasion to make up a file Index as a LAP6 manuscript, or to
write programs which scan an Index for specific entries. The Index structure must
be well understood.
A LAP6 Index is always two blocks long and is always in tape blocks whose
block numbers end in 6 and 7 (regardless of configuration). The two blocks are
divided into 1008 segments of lOR words each. The first segment is the Index
identifier; the other 778 segments are for Index entries. An Index always has
the correct identifier and at least one entry.
Identifier: if the two blocks are an Index, this segment has 5757 in all 8 words.
If the two blocks are not an Index, these 8 words contain anything but 5757.
Entry Segments: an entry segment always contains the entry name in the first
four words. If the segment contains a name, it must describe either a manuscript
in the fifth and sixth words, or a binary program in the seventh and eighth words,
or both. A name does not appear without at least one of these entries. A manuscript and a binary program of the same name must be described in the same entry
segment.
An unused entry segment has 5757 in all 8 words.
Name: first four words. The entry name is stored in 8 half-words beginning
m'the left half of the first word of the segment. Unused half-words in the
name contain 77. The name confo~ to the rules for entry names described
under "Files" in the Handbook, and does not begin with a space. The characters are coded as on Chart II.
Manuscript Entry: the first block number of the manuscript's location in
the file is stored in the fifth word. The length of the manuscript (number
of blocks) is in the sixth word. If there is no manuscript entry, these
two words contain 5757'.
Binary Entry: the first block number of the binary program's location in
the file is stored in the seventh word, with the number of the first quarter
into which it is to be loaded in the left three bits. The length of the
binary program (number of blocks) is in the eighth word. If there is no
binary entry, these two words contain 5757.

4

16-3
Notes

Example:

Name

NAME

GRAPH

Manuscript Entry

BN #BLKS
M 100
B 230

33
16

Binary Entry
Coded Entry Segment

Corresponding Index Display

Used segments are not necessarily "packed" in the Index.
spersed with unused segments.

They may be inter-

Since all unused segments, or unused 2 word entries within a segment, contain 5757, this number can be used for scanning the Index to locate specific
entries. If a segment is not used, it will contain 5757 in the first word of
the name. If it is used, and describes a manuscript, the left three bits of
the fifth and sixth words will contain O. If the segment does not describe
a manuscript, these bits will contain a 5. If the segment describes a binary
entry, the left three bits of the eighth word will contain 0; otherwise, 5.
(The seventh word, which may contain quarter number 5, should be ignored.)

LAP6 Configuration
As has been suggested, LAP6 need not have the tape configuration described
in the Handbook, and a different configuration may be more appropriate in certain cases. Other configurations operate exactly as the standard LAP6, but do
so with reference to different tape blocks and block areas. Thus if you are
using another configuration, you must note' the different block numbers and make
the appropriate adjustment when reading the Handbook.
Regardless of what configuration LAP6 has, it assumes that any other tape
which it ma use durin
eration has the same confi
ation. You cannot, for
example, use a configuration of
whose Index is at 52 to file entries in
a file whose Index is at 426.
Any, or all, of the following may differ from the standard configuration:
Tape Unit: LAP6 may operate from another tape unit. If, for example, the configuration is for unit 1, it must be mounted on unit 1, and read with RCG u,
etc. SAVE MANUSCRIPr with line number arguments will then use the unit 0 workarea during execution.
Lower File: (standard: 0-267) Begins at block 0 and may end anywhere below
I.e., may be of any length, creating more or less UNUSED blocks between
the lower file and LAP6.

LAP6.

5

16-3
Notes

LAP6: (standard: 300-347) May be anywhere, but is always 508 blocks long. The
configuration of blocks within LAP6 does not change. The FREE meta block (standard: 317) and the binary working area (standard: 340-347) are always in the same
position relative to the first block of LAP6.
Working Area: (standard: 350-425) May begin anywhere above LAP6, creating UNtrsED blocks between LAP6 and the working area. It may be of any length, but always ends at the block before the Index.
Index: (standard: 426-427) May be anywhere above the beginning of the working
area, but is always 2 blocks long and terminates the working area.
~r

File: (standard: 430-777) May begin anywhere above the Index, creating
ED blocks between the Index and the upper file, but always ends in block 777.

The relative positions of the Index and the two file areas will affect the
filing behavior of LAP6. Regardless of configuration, however, the filing algorithm does not change. LAP6 always files within the reserved file area only, as
close as possible to the Index. If, for example, there is no lower file at all,
all entries will be filed sequentially in the upper file area only.
If you change from configuration A on tape A to configuration B whose Index
B is in a different place, you can move the Index on tape A to the Index blocks
that configuration B requires with CPo Although LAP6 will file entries only in
the file area reserved for the new configuration, it makes no-assumptions about
the information already in a file Index.
If, in order to work with a new configuration, an Index is moved, say, from
blocks 426-427 to blocks 576-577, and that Index describes a 10 block manuscript
named CHARLES in the old file area at block 430, it still describes such a manuscript. The manuscript CHARLES will be properly found by the new configuration.
If, however, the Index is copied into the old file area on top of a file entry, the record of the now destroyed entry must be deleted from the Index. It,
of course, cannot be properly found by the new configuration.
Various Failures
LAP6 makes fairly heavy demands on the tapes and requires well tuned units.
Trouble may appear which a machine has not previously exhibited. Although any
sort of trouble should be fixed immediately, LAP6 is written to maximize the possibility of recovery.

LAP6, the current manuscript, the Index, and the file entries can all be
treated as separate elements should you ever have to patch things up. If one
element is damaged, the others are probably all right and can be salvaged. In
addi tion, the general structure and identif'ying coding of manuscripts and file
indices have been kept as simple as possible.
Tape StoEPing
LAP6 uses the IBZ instruction frequently to control the tape motion. Occasionally, however, a tape will suddenly stop in the middle of otherwise very busy
looking activity, and LAP6 will loop:
6

16-3
Notes

p-l
(START RS here)

P

p+l

r

IBZ

JMP p-l

(code 453)
(code 6000 + p-l)

Since the tape has stopped, the program will never skip on the IBZ test.
if you suspect this problem, you simplY have to take LAP6 out of the

Recovery:
loop:
1.

Push INSTR BY INSTR. (This is always safe.) The INSTRUCTION lights
will show the code for either IBZ or JMP p-l.

2.

STEP a few times to verify that the program is indeed in the 2 instruction IBZ loop. If not, raise RESUME.

3.

Put "p+l" (the location after the JMP instruction) in the RIGHT SWITCHES.

4.

Push START RS.

LA.P6 will continue unharmed.

Cure: if this happens frequently, you should find out why the tape is stopping
before an IMARK appears. Possibilities:
1.

The tape heads need cleaning.

Frequently this is all that is required.

2.

The tape reel is slipping on the hub.
band.

3.

The tape timing channel is noisy; spurious END MARKS are appearing. l

The hub needs another rubber

4. A spurious Unit change is causing a motion stop. 1
Bad Block

ottA.,. tOL~ ~ M
If the execution of a meta command~eveals a bad block not in the LAP6
or current manuscript area, ~, on another tape or in a file, you can recover:
1.

STOP the computer.

2.

Read LAP6 in again (RCG, 7300).

3.

Put 17 in the RIGHT SWITCHES and push START RS.

EXIT from LAP6 and, if LAP6 was executing a filing command at the time, read
the section on "Damaged File Area."
Tape Missing
If you forget to mount a tape on another unit, whose hub frustratingly DI*i,. ~
starts to spin because LAP6 is trying to execute a meta commandkwhich needs
1\-1\1\
that unit, use the 3-step recovery procedure described under "Bad Block." Then
mount the needed tape and restate the meta command.

~or standard LINCs see dwg. 1025, LINC, Vol. 12, Logic Drawings and Timing Diagrams.
7

16-3
Notes
Damaged or Lost Manuscript
There is no need to erase the current manuscript if you suspect that part
of it has been damaged. Manuscript lines are self-contained; therefore any
line which looks strange can simply be deleted and replaced.
If LAP6 loses track of the current manuscript (START 20 pushed too often,
or LAP6 replaced and restarted), execute ~AM 350,OEOL. The manuscript will
be all right if the last thing LAP6 did was EX, F, CP, CV, 10, or SM. If you
aren't sure what it did, proofread the manuscript. In a;ny case, executing the
AM command will do no harm.
If LAP6 refuses to add a manuscript (AM) to the working area, the first
two coding words are damaged. Put 2065 and 5712 into the first two words of
the first block of the manuscript. Add the manuscript again and proofread it.
If the final 77 is
it with AM, keep adding
boundary condition. In
probably be innnediately

damaged, LAP6 will, while locating forward, or adding
manuscript until it finds a 77 or stops because of a
either case no harm will be done. The garbage will
obvious on the scope and can be deleted.

Between the first two coding words and the final 77, the only thing that
can be wrong results from rare trouble of the bit dropping (or picking up) variety which changes one character code into another. Thus it is possible that
character codes which "do not appear lf in a LAP6 manuscript may do just that.
The spurious codes will do no harm in the manus cript • A 23 (CASE) however, will
give the CONVERT and LIST commands indigestion.
To make them easier to spot and delete, these codes are all displayed:
1.
2.

3.
4.

13 (delete) and 23 (CASE) appear as ?
56 (META) in the middle of a line unfortunately appears as a dash, -,
but usually in an unlikely post tion in the line. At the beginning
of a line it appears as a meta command.
57 (META) appears as the arrowhead.
77 appears as an unrecognizable "squiggle." The line should be deleted
innnediately since the 77 will truncate the manuscript.

Damaged Index
The Index of a file tape has no back-up. If damage to these two blocks
is such that they cannot be read even with RDE, there is nothing you can do.
If the tape is all right, however,
display the Index (displays NO) is that
Read the first block (426) of the Index
eight words only. Write the block back
and delete any damaged entries.

the only reason LAP6 will refuse to
the Indexidentifieris incorrectly coded.
into the memory and put 5757 in the first
in 426. Execute the DX command again,

If one block, but not both, of an Index cannot be read, the other block is
worth salvaging. On another tape make an Index you don't care about by saving
something (SM or SB). Then try to COPY (CP) separately each of the two Index
blocks on the bad tape into the Index blocks on the good tape. If at least one
block copies successfully, that half of the Index is probably all right. Display
8

16-3
Notes

or print the good Index to find out where the file entries are on the bad tape,
and move them with CP to the good tape.
To salvage the information in an Index block which can be read with RDE,
but which does not check, read the damaged block into the memory and decode it
segment by segment at the console (see "Index structure").
Damaged File Area
If there is tape trouble while LAP6 is reading or writing a file entry,
you can salvage the rest of the file by deleting from the Index the entry in
the bad blocks, and then copying the file (CF) from the bad tape onto a good
tape. Since the entry is not described in the Index, LAP6 will not try to read
the bad blocks.

LAP6 always
the file. Thus,
will describe an
the Index before

writes the Index before it writes the corresponding entry in
if trouble occurs inbetween these two operations, the Index
entry which is not there. The entry should be deleted from
you try to recover.

9

Notes

Notes

Notes

LAP6 Haster Tape

This tape contains several configurations (see Handbook) of LAP6 plus
a few special programs~ It should be viewed as a back=up tape, not to
be used, from which the things you want to use must be copied onto another
, tape. Mos~ of the copies of LAP6, in particular, are not in the correct
blocks for their configurations, and cannot be run from this, tape. The
'programs and LAP6 configurations are described in detail on 'subsequent
pages.
I

The format of the. Master Tape is as follows:
l~qt-Blocks (octal~

S2ecial Programs

Block

COPY TAPE
TRANSLAT
MARK
INDEX MS
LAP6GRID

430
431434

4

(Binary Program)
(Binary Program)
(Binary Program)
(Manuscript)

440

2

(Manuscript)

Standard BACK-UP

. 300
350

Configuration
Configuration
Configuration
Configuration
Configuration

10
60
130
, 200
600

50
50
50
50
50
50
50

o

1
1
3

LAP6 Configurations

STANDARD LAP6
1
2

3

4
5

Any deviation from the Standard configuration is given a configuration
number. It· is strongly recotnmended that the reel of any· LAP6 tap~wh~ch
has a non-Standard configuratio~.be clearly marked with its configuration
number.
Index

The 2 block INDEX on this tape in blocks 426-427. which can be displayed by
any Standard LAP6. describes the above tape contents.

M.A. Wilkes
Computer Research Laboratory
Washington University
724 S. Euclid Ave.
St. Louis, Mo. 63110

Block 0

COPYTAPE

Author:

1 block
Robert Abbott

Thi.s program copies the contents of the entire tape on Unit Q onto the
tape on Dni t l. On the LAP6 Master Tape ~ t is supplied as a lead.er in Block
o for making back-ups of the Master Tape. It can, however, operate from any
block on any unit.
-To operate:
.. 1.

'2.

Read COFYTAPE into Quarter

Mount the tape to be copied on Unit

3. ' Mount a marked tape on Unit

,4.

o.

o.

1'.

Push SIfAR1r 20.

All the blocks will be read from Unit 0 and written on Unit 1. All the
blocks on Unit 1 will then be checked. A block will be rewritten if it does
not check. 'When all have checked, "nONE:" will be displayed on the scope, and
, the tape on Unit 1 will be rev,ound.
START 20 may be pushed again to copy a second tape, or'to restart if 'there
is trouble during operation. There is no need to read COPYTAPE in again before
restarting it.

Block 430

TRANSLAT

Author:

1 block

Mary Allen Clark

LAP6 manuscripts are not compatible with manuscripts prepared by other
LINC Assembly Programs. 'rRANSLAT translates LAP3 or LAP4 manuscripts into
LAP6 manuscripts. The LAP3 or J~4 manuscripts must be on a tape on Unit 1.
They will be filed by name in a LAP6 file on Unit O. .
TRANSLAT operates as a FREE meta command for the Standard configuration
of LAP6 .
.To use:
1.
'2.

I

I

\

Copy TRAl'ISLAT from block 430 on the master tape into block 3i7 (the FREE
block) of a Standard configuration ofLAP6.
Using the same Standard configuration, start LAP6 and prepare' a LAP6 manuscript describing the manuscripts to be trans~ated:
. a.

b.

On manuscript line 1 type the block number of the first block of a
LAP3 or LAP4 manuscript which can be found on Unit 1.
On manuscript line 2 type the NAME the manuscript (from step a) is to
have in the LAP6 file.
' -

c .. Repeat steps a-b for each manuscript to be translated, describing as
many manuscripts as necessary. Block'numbers should appear on odd
numbered lines; corresponding Names on even numbered lines. Do not
put anything except block numbers and legal LAP6 file Names in the
manuscript.
'"

':"

Example:
1

.2

3
4
.. , 3·

201

f

TAPETEST
206

DATA RUN

When all the Unit I manuscripts which are to be translated have been described in the, LAP6 manuscript" state the FREE meta C?mmand (..,..F
).

EOL
TRANSLAT will move the manuscripts from Unit' 1 into a Standard LAP6 f.ile
on Unit O. The Unit 0 tape may not contain a needed LAP6 file or Index; TRANSLAT creates its own Index for the LAP6·tape, and uses whatever.ij.le space it
needs.. It does not, however, disturb the. information on the Uril t I tape.
;' \
. " 1..J- r v • a h ~ Pr-e " \ 0 vS ,\.... i.e.. x 0 11\ V ~ {t-· o. II s e "'- S cr ~ ~d'\ ~~ f'e
... '
The burden is on the user to prepare the manuscript for TRANSLAT correctly.'
LAP6 file Names may be no more than -8' characters long, not all numbers. 'Two· .
manp.scripts in the same file may not have the same.,Warne (see. "Files" in the

".s

I

\ \

H~0..oook).

..

TRANSLAT returns automatically to LAP6.

Display the Index

on Unit

0

(~DX 0V.OL) to make sure that all the manuscripts described were translated.

A manus~rlpt will be omitted if it was not foun4 as a legal LAP3 or LAP4 manuscript on Unit 1, or if the Index or file on Unit 0 fills up before all have
been translated. ~ve the man1l;scri:p~j_~~tr~?Xls.l?-.t~ct~Q..ff.__the..Jlnit~Q~-,.t_~l?_~__
w~th COPY .~.!!:lE>_ "~~ -+-~~~QJl_~e!?!,~~..rw.mi~g...:the._~S!u\TJ!_~~E~_~~~~~;

Block

MARK

431

Author:

3 blocks

Severo M. Ornstein

The .NARK program marks virgin tape for use by the IJINC. After marking,
,
the tape '\-lill begin with a short end zone and end with a long end zone. There"
are two extra check 'marks at the end of each tape block.

To use:'
1.

Check the mark clock.

2.

Degauss the tape.

'3.

4.

5.

It should be set as precisely as possible at 10 us. '

(rfmove. ~O(J"'· Wl;Sf w ot+e 4 ()

.

If the tape is new, run it manually across the head a few times to align
it on the reels.
Clean the tape heads.

3 blocks

of the MARK program into quarters 0-2 and push START 20,
a Standard LAP6 on Unit 0 and LOAD the program (-)LO MARK,Unit EOL ).
The following "Till be displayed:
'

Read the

£E. ,mount

, ALLOW UNIT 0

TO REWIND, THEN
MOUNT VIRGIN TAPE

ON UNIT 1,
PRESS MARK BUTTON

Al~

,6'.

7.

Allow the tape on Unit 0 to rewind and mount the tape to be marked on Unit
1. ,Wind about 6" of the tape onto the lefthand hub (about one turn of the'
, ; reel).
Press the "MARK" button.

8. When the prpgram halts, manually rewind the tape onto the righthand hub to'
get the tape beyond the righthand end zone. This is accomplished. by press- .
ing the righthand pushbutton for about five seconds.

9. Raise the ,,"RESUME" lever.
When the tape has been marked, written upon, and checked properly, the
.following will be displayed:
GOOD TAPE
EOL FOR LAP
you can remount the LAP6 tape on Unit
If, however, you wish to mark another
tape, repeat steps 2 through !~ and 6 through 9 above.
If the MARK program was, LOADed by

LAP6,

o and strike EOL to return to LAP6.

If' there has been a. failuxe in the marking process, "CHECK FAILURE" will
be displayed. Start over again at step ~.

INDEX MS

Block 434
Author:

4 blocks

Mary Allen Clark

INDEX MS is a LAP6 manuscript which when converted supplies the 5757 code
for unused slots in a LAP6 Index. It is simply an aid to creating indices of
your own.
To use:
l.

Start LAP6, and erase any current manuscript by pushing START 20;

2.

Add INDEX ME to the working area (-+AM INDEX MS, Uni t EOL ) .
line number will be 1007.

3.

The current

Starting at line 1007; add as many manuscr'ipt lines as necessary to describe the entries you want in the Index. (study the tlIndex structure"
,'described in the IIandbook.) Fo:c exwn.ple, the following nine manuscript
lines, when converted with INDEX MS, will describe the two entries on
p. 5 of the Handbook:
1007
1010
1011
1012 ,
1013
1014
1015
1016
1017

810
32'45 } .
24,43
Entry Name, 4 lines
3377
7777
100
Manuscript Entry, 2 lines
33
4230J Binary Entry, 2'lines
16

1

a.

Locate each entry segment (line 1007 above) at multiples of 108 (i.e.,
920, 830, etc.), in the range 10 throu_gh 770.

b.·

Be sure that when the Index Manuscript is converted, each entry segment added will account for 8 words. (Name, 4; manuscript entry, 2;
binary.entry, 2.)
(1)

Remember to put 77 in each unused half-word of the four Name words,
and 5757 in the two words not used by a manuscript or binary entry.

(2)

If you use "text" for the Name, remember that a SPACE code (14)
will be filled in the last half-word if the number of characters
in the Name is odd. The SPACE will .then be part Of the Name.

4. When as many entry segments as needed have been added to INDEX ME, convert
the manuscript (-.CVEOL ). The Index created will be in blocks 340-341
(if Standard configuration). Copy these two blocks (~CPEOL) into the
two Index blocks (blocks 426-427, Standard) on a tape.
I,

'

5· Display the new Index (-+OX Unit EOL )'

If it looks strange, return to the
manuscript display and correct the Index Manuscript. It has been incorrectly formatted.

6. In creating the Index, be sure to describe entries which LAP6 can handle.
I. e ., do not duplicate Names, or describe entries which "go around the
end" of the tape, etc.

LA.P6GRID

Block

440

Author:

2 blocks

Mary Allen Clark

LAP6GRID is a manuscript of the grid patterns used by LA.P6 to generate
the characters described. on Chart II of the Handbook. It may be added to
any other LAP6 manuscri.pt and converted. with it. LAP6GHID contains tags
#6A, #6B, #6c, #6F, #6G, #6L, #6Q, and #~V. It contains no location statements, and occupies 1768 memory registers when converted.
_

~ 0 0 '+~

,(Or u

rr-e.-·

c"" se (""'"

(...{ld'

G]

__________

1l1o~J5'.

o

JtlQ.Qlb _________

o

}i':LLe

File

300

Il\J?6

350

350

CUTrent

CV..l"Tent .

Manusc1"i)~t

Mannscript

Horking
Area

vlorking

Area
1j·26-

Index

-l.12b
Index

4j)
File

~·30

File

______,,_777

STANDARD

Configu:ration 1
Unit 1

Unit 0

I.

(Copy 50 blocks from block 300,
or 350, maste:c tape,' to block
300. Run f:rom Unit 0.)

Con:figuration I is identical to the
Standard configuration, except
that itlllust be run from Unit 1.
(Copy 50 blocks from block 10,
master tape, to b?ocJ~ 300. Run
:fr:bm Unit 1.)

Block

o

300

LAP6

350
Current.
Manuscript
Working
Area

4-26

Index
File

·777

Configuration
. Unit 0

2 .

Copi"igtiration 2 is identical to the Stan
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                     : 2011:04:04 19:36:20-08:00
Modify Date                     : 2011:04:04 19:31:57-07:00
Metadata Date                   : 2011:04:04 19:31:57-07:00
Producer                        : Adobe Acrobat 9.42 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:0f0e5ef9-cba3-4611-b594-3ac9ae636f38
Instance ID                     : uuid:2761710b-e06f-4ec0-9ef6-e49ad5bba7de
Page Layout                     : SinglePage
Page Mode                       : UseNone
Page Count                      : 65
EXIF Metadata provided by EXIF.tools

Navigation menu