/IMP LOADER
START=4000;T=6000
A13=17777;A15=77777;EAE=640000
 .LOC START
POS=4000;LPOS=4001;MAIN=4002;PROG=4003
BANK=4004;AUTO=4005;DUMP=4006;W=4007
Y=4010;Z=4011;NUM=4012
SIGN=4013;REF=4014;MAX=4015;LINK=4016
/INITIALIZE TAG TABLE AND POINTERS
/INIT, DIAG AND STORE OVERWRITTEN BY WLS, LITS AND NAMES
    LAW -40; TAD .MA
    DAC POS                 /LOAD POS (DECREASING)
    TAD (1; DAC T           /TAG 0 (NP)
    TAD (1; DAC T+1         /TAG A
    TAD (1; DAC T+2         /TAG B
    TAD (1; DAC T+3         /TAG C
    TAD (13; DAC MAIN       /*PERM/MAIN BOUNDARY
    TAD (1; DAC PROG        /*PROG FILE
    AND (60000; DAC BANK    /BANK BITS
    LAC* T; DAC AUTO        /AUTOINDEX REG (NP)
    LAC LEX; DAC .LL        /DIVERT ERRORS
    LAC .FN                 /DIAG OR LOAD
    SNA; JMP S1             /LOAD ->
/DIAGNOSTICS
    AND (77; SNA; JMP D4    /NO FAULT ->
    JMS PRINT
    .SIXBT <42>' F A U L T ;'
    LAC .FN; AND (77
    JMS WRITE
    LAC .FN; AND (100       /WL B WANTED?
    SNA; JMP D1             /NO ->
    LAC* T+2; JMS WRITE
D1  LAC .FN; AND (200       /WL A WANTED?
    SNA; JMP D2             /NO ->
    LAC* T+1; JMS WRITE
D2  LAC* T+3; AND (177      /NEXT SYMBOL
    SAD* T+3; SNA; JMP D3   /NONE (OR NON-ISO) ->
    JMS PRINT
    .SIXBT '  SYM: ;'
    LAC* T+3
    SAD .NL; SKP; JMP .+4
    LAW 116; JMS SYMOUT     /'NL' FOR NL
    LAW 114; JMS SYMOUT
D3  ISZ T+3                 /BUMP TO INSTREAM
    JMS PRINT
    .SIXBT '   IN:;'
    LAC* T+3; JMS WRITE
    ISZ T+3                 /BUMP TO OUTSTREAM
    JMS PRINT
    .SIXBT '   OUT:;'
    LAC* T+3; JMS WRITE
    JMS PRINT
    .SIXBT '  SIZE:;'
    LAC* AUTO; CMA
    TAD .MA; JMS WRITE
    LAC .NL; JMS SYMOUT
D4  LAC* PROG; SNA; JMP .LE /COMPILER =>
    JMS SELECT
    LAC 20
D5  AND (A15; DAC 20        /STOP ADDRESS
    AND (60000; DAC DUMP    /BANK BITS
    LAC 20; CMA; TAD* MAIN  /IN MAIN PROG?
    SPA; JMP D7             /YES ->
D6  ISZ 20
    LAC* 20; SNA; CAL 407   /CORRUPTION
    AND (LAW
    SAD (JMP*; SKP; JMP D6  /NOT EXIT ->
    XOR* 20; TAD DUMP       /15BIT AD
    DAC DUMP
    CLC; TAD* DUMP          /AD OF SR CALL
    JMP D5
D7  JMS PRINT
    .SIXBT ' STOPPED  AT  LINE ;'
/WORK OUT LINE NUM
D9  LAC BE; DAC Z           /BLOCK STACK
    TAD (40; DAC Y          /LINE COUNT
    DZM* Y
D10 LAC Y                   /BEG: UPSTACK
    ISZ Z; DAC* Z           /STORE LINE COUNT
    ISZ Z; DZM* Z           /ZERO DATA TOTAL
D11 JMS RSYM
    SNA; CAL 407            /EOF
    SAD (42; JMP D12        /NL ->
    SAD (50; JMP D10        /BEG ->
    SAD (57; JMP D13        /SWOP ->
    SAD (51; JMP D14        /END ->
    SAD (40; JMP D11        /SP ->
    SAD (41; JMP D9         /ENT -> BEGIN AGAIN
    TAD (-54; SPA           /TAG,SIGN,DIGIT ->
DSW ISZ* Y                  /OR ISZ* Z
    JMP D11
D12 ISZ Y; DZM* Y           /END OF LINE
    JMP D11
D13 LAC (ISZ* Z             /SWOP INC INSTR
    SAD DSW; LAC (ISZ* Y
    DAC DSW
    JMP D11
D14 LAC* MAIN; TAD* Z       /END OF BLOCK
    DAC* MAIN               /ADD DATA LENGTH
    CLC; TAD Z; DAC Z       /DOWNSTACK
    LAC* Z; DAC W           /FIRST LINE OF BLOCK
    CLC; TAD Z; DAC Z
D15 LAC* MAIN; TAD* W       /ADD LINE TOTAL
    DAC* MAIN
    CMA; TAD 20
    SPA; JMP D19            />= STOP AD ->
    DZM* W
    LAC W; SAD Y; JMP D11   /LAST LINE OF BLOCK ->
    ISZ W
    JMP D15
D19 LAC BE; TAD (36
    CMA; TAD W
    JMS WRITE               /LINE NUM
D20 LAC .NL; JMS SYMOUT     /NL
LEX JMP .LE                 /=> LOAD EXEC
/DIAG OUTPUT ROUTINES
PRINT
P1  LAC* PRINT; ISZ PRINT
    DAC W                   /THREE CHARS
    LAW -3; DAC Y
P2  LAC W; SMA!CLL; STL     /RESTORE BIT 7
    RTL; RTL; RTL           /ROTATE 6
    DAC W; RAL; AND (177
    SAD (73; JMP* PRINT     /SEMI-COLON =>
    SAD (42; LAC .NL        /NL FOR DQ
    JMS SYMOUT
    ISZ Y; JMP P2
    JMP P1
    .DEC
POW -100000; -10000; -1000; -100; -10
    .OCT
WRITE
    DAC Z
    LAC (40; JMS SYMOUT     /SPACE
    LAC Z; SMA!CMA; JMP W1
    TAD (1; DAC Z           /NEGATE IF NEG
    LAC (55; JMS SYMOUT     /'-'
W1  LAC (POW; DAC W         /POWERS OF TEN
    LAW -5; DAC Y           /FIVE IN NUMBER
    DZM SYMOUT
W3  LAC Z; DZM DUMP
W4  TAD* W
    SPA; JMP W5
    DAC Z; ISZ DUMP
    JMP W4
W5  LAC DUMP                /LEADING ZERO?
    SAD SYMOUT; JMP W6      /YES ->
    TAD (60; JMS SYMOUT
W6  ISZ W; ISZ Y; JMP W3
    LAC Z
    TAD (60; JMS SYMOUT     /LAST DIGIT
    LAC (40; JMS SYMOUT     /SPACE
    JMP* WRITE
SYMOUT
    TAD FIRST; DZM FIRST    /ENSURE PRINTING
    STL; JMS* .CS+1         /PRINT SYM
    JMP* SYMOUT
FIRST 400000

/READ, REORDER AND STORE OBJ CODE
S1  JMS STAND               /ZERO CORE
    LAC* PROG; JMS SELECT   /SELECT MAIN PROG
    LAW -2; TAD POS; DAC MAX
    TAD (1; DAC LINK
    JMS RSYM
    SAD (40; SKP; JMP S5+1  /NOT SPACE ->
S2  JMS RSYM                /SKIP DEFAULTS
    SAD (73; SKP; JMP S2
S4  LAC SYM
    SAD (51; JMP S20        /END ->
S5  JMS RSYM
    SNA; JMP M80
    SAD (42; JMP S5         /NL ->
    SAD (50; JMP S10        /BEG ->
    SAD (57; JMP S30        /SWOP ->
    SAD (54; ISZ SPEC       /EXT SPEC
SW  CLL                     /OR SKP!CLL
    JMP S6
    LAC* MIN                /DATA SECTION
    RTL; RTL; RTL
    TAD SYM; DAC* MIN
    AND (770000
    SNA; JMP S4
    ISZ MIN; DZM* MIN
    JMP S4
S6  LAC* MAX                /INSTR SECTION
    RTL; RTL; RTL
    TAD SYM; DAC* MAX
    AND (770000
    SNA; JMP S4
S7  CLC; TAD MAX; DAC MAX
    DZM* MAX
    JMP S4
S10 LAC MIN; CMA            /ENOUGH SPACE?
    TAD MAX; SPA!CLC; CAL 404 /CAL IF NOT
S11 TAD MAX; DAC MAX        /COPY DOWN
    LAC* MIN; DAC* MAX      /DATA SECTION
    CLC; TAD MIN; DAC MIN
    LAC* MIN; AND (770000
    SZA!CLC; JMP S11
    TAD MAX; DAC MAX
    LAC LINK; DAC* MAX      /PUSHDOWN LINK
    LAC MAX; DAC LINK
    ISZ MIN
    LAC SYM; DAC* MIN
    JMP S7
S20 LAC MIN; CMA            /ENOUGH SPACE?
    TAD MAX; SPA; CAL 404
    LAC LINK                /COPY UP
S21 TAD (-1                 /INSTR SECTION
    SAD MIN; JMP S22
    DAC W
    ISZ MIN
    LAC* MIN; DAC DUMP      /EXCHANGE
    LAC* W; DAC* MIN        /IN CASE
    LAC DUMP; DAC* W        /OVERLAP
    LAC W
    SAD MIN; JMP S22
    SAD MAX; JMP S23
    JMP S21
S22 TAD W                   /ADJUST MIN
    CMA; TAD MAX; CMA
    DAC MIN
S23 LAC LINK; DAC MAX       /POPUP LINK
    SNA; CAL 406
    LAC* MAX; DAC LINK
S24 ISZ MIN; ISZ MAX        /RESTORE
    LAC* MAX; DAC* MIN      /DATA SECTION
    AND (770000
    SZA; JMP S24
    ISZ MAX
    JMP S5
S30 LAC SW                  /INVERT SKIP
    XOR (1000; DAC SW
    JMP S5

/LOAD OBJECT PROGRAM
M80 LAC (G1; DAC USE        /PSEUDO-INPUT
    LAC .GL                 /NORMAL OR NEWLIB?
    SNA; JMP M84            /NORMAL ->
M81 JMS RSYM                /COPY REORDERED LIB
    LAC SYM; SNA; JMP M82
    TAD (-40
    SPA!STL!CLA; LAC (100
    TAD SYM; JMS* .GL
    SNL; CAL 411            /FILE TOO BIG
    JMP M81
M82 CLL!CLC; JMS* .GL       /CLOSE FILE
    CAL
M84 LAC TMAX; DAC W         /CLEAR TAGS
    LAW -375; DAC Z
    ISZ W; DZM* W
    ISZ Z; JMP .-3
    LAC W; DAC BS           /CHANGE BUFF AREA
    TAD (377; DAC BE
M85 LAC SPEC; SZA; JMP M86  /SPECS PRESENT ->
    LAC .PE; JMS SELECT     /SELECT PERM
    SZL; JMS SEEK           /SEEK IF SAME UNIT
M86 JMS LOAD                /LOAD MAIN PROG
    LAC POS; DAC* MAIN      /BOUNDARY
    LAC .UL; JMS LIBLOAD    /USER LIB
    LAC .SL; JMS LIBLOAD    /SYSTEM LIB
    JMS LIBCHECK            /ALL REFS DISCHARGED?
    SZA; CAL 411            /CAL IF NOT
    LAC .PE; JMS SELECT     /SELECT PERM
    JMS LOAD                /LOAD PERM
    LAC T+4                 /MONITOR ENTRY
    SMA!SZA; DAC* T+4       /SELF-REF
/LOAD LITERALS
M90 LAC LMAX                /FINISHED?
    SAD (START+20; JMP M99  /YES ->
    TAD (-1; DAC W          /*REF CHAIN
    TAD (-1; DAC LMAX       /*LITERAL
    LAC* LMAX; DAC* POS     /STORE LITERAL
    LAC* W                  /REF CHAIN
M91 TAD BANK; DAC Y         /*REF
    LAC* Y; AND (A13; DAC Z /REMOVE CHAIN LINK
    XOR* Y                  /OPCODE
    XOR POS; XOR BANK         /+ 13BIT AD
    DAC* Y
    LAC Z; SZA; JMP M91     /NOT END OF CHAIN ->
    CLC; TAD POS; DAC POS
    JMP M90
M99 LAC POS; DAC* AUTO      /NEST POINTER
    LAC .LE; DAC .LL        /RESTORE
    JMS STAND
    XCT 21                  /HLT?
    JMP* BEGIN              /ENTER PROGRAM
LMAX START+20               /LIT POINTER: UP BY 2
NMAX M85-4                  /NAME POINTER: DOWN BY 4
TMAX T+3                    /TAG MAX
BASE T+404                  /BASE FOR STORED CODE
MIN T+405                   /LIMIT OF STORED CODE
SYM
SPEC 0
.PE 0                       /PERM FILE (SET BY EXEC)
.SL 0                       /SYS LIB FILE (SET BY EXEC)
.GL 0                       /NEWLIB O/P SR (SET BY EXEC)
LIBLOAD
    DAC Y; SZA              /FILE -- SKIP IF NONE
    JMS LIBCHECK            /SPECS OUTSTANDING?
    SNA; JMP* LIBLOAD       /NO =>
    LAC Y; JMS SELECT
    JMS LOAD
    JMP* LIBLOAD
LIBCHECK
    LAC (M85
LC1 TAD (-4; DAC W          /POINTER
    XOR NMAX
    SNA; JMP* LIBCHECK      /END (AC=0) =>
    LAC* W
    SZA; JMP* LIBCHECK      /UNDISCHARGED (AC#0) =>
    LAC W
    JMP LC1
STAND
    LAC BASE
    DAC W; DZM* W
    SAD POS; JMP* STAND
    TAD (1
    JMP .-5
/LOAD MAIN OR PERM
DAD=660000;ADA=720000;LAD=760000;ADR=20000
LOAD
L10 JMS RSYM
L11 LAC POS
L12 DAC LPOS
    LAC SYM; DAC CODE#
    SNA; JMP* LOAD          /TERMINATOR =>
    JMS RNUM
    LAC CODE
    CLL; RTR; RTR; RTR      /ALIGN OP-CODE
    SNL!RCL; JMP L20        /CODE < 40  ->
    DAC OP#
    LAC CODE
    SAD (50; JMP L11        /BEG ->
    SAD (56; JMP L30        /TAG ->
    SAD (51; JMP L40        /END ->
    SAD (41; JMP L50        /ENTRY-POINT ->
    SAD (54; JMP L60        /EXT SPEC ->
/LITERAL INSTRUCTION
    LAC SIGN                /SIGNED?
    SNA!CLC; JMP .+4        /NO ->
    TAD NUM; CMA; DAC NUM   /NEGATE
    LAC OP
    SAD (DZM; JMP L17       /NULL OP ->
    SAD (LAC; SKP; JMP L16  /NOT LAC ->
    LAC NUM; SNA; JMP L18   /LAC (0 ->
    AND (LAW                /OK TO USE LAW?
    SAD (LAW; JMP L17       /YES ->
L16 JMS LITCODE
    JMP L25
L17 LAC NUM
    JMP L25
L18 LAC (CLA
    JMP L25
/NORMAL INSTRUCTION
L20 SZL; TAD (20000         /INDIRECT?
    DAC OP
    SAD (EAE; JMP L23
    SAD (IOT; JMP L23
    SAD (OPR; JMP L23
    LAC NUM; SNA; JMP L24   /TAG 0 (NP) ->
    JMS TAGREF
    LAC* REF                /TAG DEFINED?
    SPA!SNA; JMP L22        /NO ->
    LAC SIGN                /NEG TAG REF?
    SZA!CLA; JMP L22        /YES -> IGNORE DEF
    JMS CONVERT
    JMP L25
L22 AND (A13; DAC NUM       /ADD REF TO CHAIN
    LAC POS; TAD (400000    /INDIC FOR UNDEF
    DAC* REF
    LAC OP
L23 TAD NUM
    JMP L25
L24 LAC OP; TAD AUTO        /AUTO-INDEX REG
L25 DAC* POS
    CLC; TAD POS; DAC POS   /ADJUST POS
    SAD MIN; CAL 404        /TEST ROOM
    JMP L12
/DEFINE TAG
L30 JMS TAGREF
    LAC SYM
    SAD (40; JMP L35        /SWITCH LAB ->
    LAC* REF; DAC Z         /UNDISCHARGED REFS
    SMA; DZM Z              /IF ANY
    LAC SIGN
    SZA; LAC (200000        /INDIC FOR INDIRECT
    TAD POS; TAD (1
    DAC* REF
L32 LAC Z; AND (A13         /CHAIN OF REFERENCES
    SNA; JMP L11            /EMPTY ->
    TAD BANK; DAC LPOS      /ADD BANK BITS
    LAC* LPOS; DAC Z
    AND (LAW; DAC OP
    JMS CONVERT; DAC* LPOS
    JMP L32
/TAG FOR SWITCH-LABEL
L35 JMS RNUM
    LAC* REF; TAD NUM       /BASE + DISPLACEMENT
    DAC Y                   /ELEMENT ADDRESS
    LAC* Y
    SAD (NOP; SKP; CAL 405  /SET TWICE
    LAC POS; AND (A13
    TAD (JMP+1; DAC* Y      /JUMP INSTR
    JMP L11
/END OF BLOCK (COMES FIRST)
L40 LAC NUM                 /TAGBASE FOR THIS BLOCK
    SNA; JMP L11
    TAD (T; DAC TMAX        /RESET TAG MAX
    LAC* MAIN               /MAIN PROG?
    SNA; JMP L11            /YES ->
    LAC* TMAX               /ROUTINE CALLED?
    SZA; JMP L11            /YES ->
L41 JMS RSYM                /IGNORE
    LAC SYM
    SAD (50; JMP L10
    JMP L41
/ENTRY-POINT
L50 LAC* MAIN               /MAIN PROG?
    SZA; JMP L51            /NO ->
    LAC POS; TAD (1
    DAC BEGIN#              /FIRST INSTR
    JMP L11
L51 JMS RNAME               /READ NAME + TAG
    LAC (M85                /SEARCH SPEC LIST
L52 TAD (-4; DAC W          /TAG AD
    DAC DUMP
    LAC NMAX; DAC Y
    LAW -3; DAC Z
L53 ISZ DUMP; ISZ Y
    LAC* DUMP
    SAD* Y; JMP L54
    LAC W
    JMP L52
L54 ISZ Z; JMP L53
    LAC* W; DZM* W          /CLEAR FIRST WORD
    SZA; DAC* REF           /REF CHAIN
    JMP L11
/EXTERNAL SPEC
L60 JMS RNAME               /READ NAME + TAG
    LAC* REF; DAC* NMAX     /STORE REF-CHAIN
    DZM* REF
    LAW -4; TAD NMAX        /DEC NMAX
    DAC NMAX
    CMA; TAD LMAX           /ENOUGH SPACE?
    SMA; CAL 410            /CAL IF NOT
    JMP L11
/CONVERSION ROUTINES
TAGREF
    LAC NUM; AND (377       /COMTAB REF?
    SAD NUM; JMP T1         /NO ->
    TAD T; DAC T+377        /COMTAB SLOT (FIXED)
    LAC (377
T1  TAD (T; DAC REF
    LAW -322; TAD NUM       /TAG > 210
    SMA!SZA; JMP* TAGREF    /YES =>
T2  LAC TMAX; CMA; TAD REF  /REF > TMAX?
    SPA; JMP* TAGREF        /NO =>
    ISZ TMAX; DZM* TMAX
    JMP T2
CONVERT
    LAC* REF; AND (A13
    DAC W                   /13BIT AD
    LAC* REF; RTL           /SET LINK IF INDIRECT
    LAC OP
    SAD (DAD; JMP C2        /PSEUDO-CODE ->
    SAD (LAD; JMP C3        /PSEUDO-CODE ->
    SAD (ADA; JMP C4        /PSEUDO-CODE ->
    SAD (ADR; JMP C5        /PSEUDO-CODE ->
    SZL; XOR (20000         /INVERT INDIRECT
C1  TAD W
    JMP* CONVERT
C2  LAC (DAC                /DEPOSIT DIRECT
    JMP C1
C3  LAC (LAC                /LOAD ADDRESS
    SKP
C4  LAC (TAD                /ADD ADDRESS
    SZL; JMP C1             /INDIRECT ->
    DAC OP
    LAC* REF; DAC NUM       /15BIT AD
    JMS LITCODE
    JMP* CONVERT
C5  LAC* REF                /ADDRESS
    JMP* CONVERT
/LITERAL PSEUDO-CODES
LITCODE
    LAC (START+20; DAC W    /SEARCH FOR LITERAL
    LAC NUM; DAC* LMAX      /LONG STOP
L3  SAD* W; JMP L4          /MATCH ->
    ISZ W; ISZ W
    JMP L3
L4  LAC W
    SAD LMAX; SKP; JMP L5   /DUPLICATE ->
    ISZ LMAX; DZM* LMAX
    ISZ LMAX
    LAC LMAX; CMA; TAD NMAX /ENOUGH SPACE?
    SPA; CAL 410            /CAL IF NOT
L5  ISZ W                   /ADD REF TO CHAIN
    LAC* W; DAC DUMP
    LAC LPOS; AND (A13
    DAC* W
    LAC OP; TAD DUMP
    JMP* LITCODE
RNUM
    DZM NUM; CLA
RN1 DAC SIGN
RN2 JMS RSYM
    LAW -60; TAD SYM        /'HEX' DIGIT?
    SPA!CLL; JMP RN3        /NO ->
    RTR; RTR; TAD NUM
    RTL; RTL; DAC NUM       /16*NUM+DIG
    JMP RN2
RN3 SAD (-3; JMP RN1        /'-' ->
    JMP* RNUM
RNAME
    LAC NMAX; DAC W
    DZM* NMAX
    LAW -3; DAC Z           /NAME = 3 NUMS
    ISZ W
    LAC NUM; DAC* W
    JMS RNUM                /4TH NUM IS TAG
    ISZ Z; JMP .-5
    JMS TAGREF
    JMP* RNAME
/INPUT ROUTINES
UNIT;WORD;CA;WC
SUM .SIXBT 'AA1'
LITAA1 .SIXBT 'AA1'
DV  0; 0; 0;BS T+4
BE  T+4+377
RSYM
    JMP* USE
/PSEUDO-INPUT (UNPACKS FROM STORE)
G1  LAC* MIN
    SNA!CLL; JMP G2
    AND (77; DAC SYM
    XOR* MIN
    RTR; RTR; RTR
    DAC* MIN
    JMP* RSYM
G2  CLC; TAD MIN; DAC MIN
    SAD BASE; JMP R4
    JMP G1
/GENUINE INPUT
R1  JMS READ                /READ BLOCK
    LAC* BE; SMA; JMS SEEK  /SEEK NEXT
    LAC DV+3; DAC CA        /CA = BUFF START
    LAC* CA; ISZ CA         /CHECKSUM OK?
    SAD SUM; SKP; CAL 406   /CAL IF NOT
    LAW -376; DAC WC        /254[10] DATA WORDS
R3  LAC* CA; DAC WORD
    TAD SUM; DAC SUM
    JMS USE; JMS USE; JMS USE
    ISZ CA
    ISZ WC; JMP R3          /NOT END OF BLOCK ->
    LAC* BE; SMA; JMP R1    /NOT END OF FILE ->
R4  LAC (R1; DAC USE        /RESET FOR GEN INPUT
    LAC LITAA1; DAC SUM
    CLA
    JMP R5
USE=.
.LI R1                      /ALTERED BY EXEC
    LAC WORD
    RTL; RTL; RTL
    DAC WORD
    RAL; AND (77
    SNA; JMP* USE
R5  DAC SYM
    JMP* RSYM
SELECT
    DAC DUMP; RTL; RTL
    AND (7                  /LINK CLEAR
    SAD UNIT; STL           /SET IF SAME AS LAST
    DAC UNIT
    LAC DUMP; AND (1777
    DAC DV+1                /BLOCK NUM
    JMP* SELECT
SEEK
    DAC DV+1                /BLOCK NUM
    LAC (2000; TAD UNIT     /FUNCTION + UNIT
    DAC DV
    LAC (DV
    GUARD; JMP .DH          /CALL HANDLER
    JMP* SEEK
READ
    LAW -400; DAC DV+2
    LAC DV                  /IN TIME?
    SMA!SZA; JMP .+3        /YES ->
    LAC DV+1; JMS SEEK      /SEEK AGAIN
    GUARD
    LAC DV; SMA!SZA; WAIT
    ION
    DZM DV+2
    SMA!CMA; JMP* READ      /OK =>
    GUARD; JMP .MH          /REPORT
    JMP READ+1
GUARD=JMS 3;WAIT=JMP 2
.FN=16000;.MA=16010;.LE=16020
.TH=16060;.DH=16070;.MH=16100
.LL=16110;.UL=16120;.CS=16130
.NL=16140
 .END