*COMDECK MALETPE
          EJECT 
          QUAL   MALETPE
          IFNE   CMSE,0,1 
          USE    MODD 
 MODD     VFD    30/1,6/LCN1,6/KEY2,18/0  CW FOR PE PRODUCT OVERLAY 
          USE    *
  
*         LENGTHS AND ADDRESSES OF PPU BUFFERS ARE DEFINED BELOW. 
*         THESE VALUES MUST BE KEPT IN PRODUCT OVERLAY ORDER AND
*         MUST ALWAYS AGREE WITH THE ACTUAL VALUES IN THE PPU 
*         PRODUCT OVERLAYS. 
  
          IFNE   CMSE,0,1 
          USE    P0OB 
 PEOB     DATA   505B        MAX VALUE FOR OB FOR PE OVERLAY (LCN I/O)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0OBFWA
          DATA   6105B             RELATIVE FWA OF OB 
          USE    *
          IFNE   CMSE,0,1 
          USE    P0IB 
 PEIB     DATA   505B        MAX VALUE FOR IB FOR PE OVERLAY (LCN I/O)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0IBFWA
          DATA   5400B             RELATIVE FWA OF IB 
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SB 
 PESB     DATA   61B         MAX VALUE FOR SB FOR PE OVERLAY (LCN I/O)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SBFWA
          DATA   6612B             RELATIVE FWA OF SB 
          USE    *
          EJECT 
*         PE (LCN HIGH-LEVEL) PRODUCT OVERLAY ENTRY POINTS. 
  
 RELPE    EQU    0
 RESPE    EQU    1
 AUTOPE   EQU    2
 CONNPE   EQU    3
 DISPE    EQU    4
 FNCPE    EQU    5
 INQPE    EQU    6
 LOADPE   EQU    7
 LOOPPE   EQU    10B
 MEMPE    EQU    11B
 READPE   EQU    12B
 SELPE    EQU    13B
 SENDPE   EQU    14B
 WRTPE    EQU    15B
 STATPE   EQU    16B
 INPE     EQU    17B
 MAINF    EQU    20B
 OUTPE    EQU    21B
 READYPE  EQU    22B
  
*         EQUATES FOR IB,OB,SB FOR LCN
  
 IB       EQU    6500B-1100B ADDRESS OF IB
 OB       EQU    7205B-1100B ADDRESS OF OB
 SB       EQU    7712B-1100B ADDRESS OF SB
          IFNE   CMSE,0,1 
          USE    PKEY 
          VFD    24/0,18/LLCN,18/TLCN 
 LCN1     EQU    *-PKEY+PKEYOFF 
          USE    *
  
*         LEGAL LCN-HIGH-LEVEL I/O STATEMENTS TABLE.
  
 TLCN     VFD    42/5LABORT,18/PEABT
          VFD    42/6LACCEPT,18/PEACC 
          VFD    42/7LAUTODMP,18/PEAUTO 
          VFD    42/7LCONNECT,18/PECONN 
          VFD    42/7LDISCONN,18/PEDIS
          VFD    42/3LIMC,18/PEIMC
          VFD    42/7LINQUIRE,18/PEINQ
          VFD    42/4LLOAD,18/PELOAD
          VFD    42/4LLOOP,18/PELOOP
          VFD    42/5LMAINT,18/PEMAINT
          VFD    42/6LMEMORY,18/PEMEM 
          VFD    42/3LPMC,18/PEPMC
          VFD    42/5LPURGE,18/PEPURGE
          VFD    42/4LREAD,18/PEREAD
          VFD    42/5LREADY,18/PEREADY
          VFD    42/6LREJECT,18/PEREJ 
          VFD    42/3LREL,18/PEREL
          VFD    42/3LRES,18/PERES
          VFD    42/5LRESET,18/PERESET
          VFD    42/6LRESYNC,18/PERESYN 
          VFD    42/6LSELECT,18/PESEL 
          VFD    42/4LSEND,18/PESEND
          VFD    42/3LSMC,18/PESMC
          VFD    42/5LSTART,18/PESTAR 
          VFD    42/6LSTATUS,18/PESTAT
          VFD    42/4LSTEP,18/PESTEP
          VFD    42/5LTRANS,18/PETRAN 
          VFD    42/5LTRUNK,18/PETRUNK
          VFD    42/5LWRITE,18/PEWRT
  
          VFD    42/4LFUNC,18/PEFUNC
          VFD    42/2LIN,18/PEIN
          VFD    42/3LINB,18/PEIN 
          VFD    42/3LOUT,18/PEOUT
          VFD    42/4LOUTB,18/PEOUT 
 LLCN     EQU    *-TLCN 
          EJECT 
  
*         DISPLAY VALUES USED 
  
 DASCII   VFD    60/5LASCII 
 DBACK    VFD    60/4LBACK
 DBINARY  VFD    60/6LBINARY
 DBUFFER  VFD    60/6LBUFFER
 DCODE    VFD    60/4LCODE
 DCON     VFD    60/7LCONTROL 
 DDATA    VFD    60/4LDATA
 DFLUSH   VFD    60/5LFLUSH 
 DFUNC    VFD    60/8LFUNCTION
 DLTA     VFD    60/3LLTA 
 DLOOPB   VFD    60/8LLOOPBACK
 DMAINT   VFD    60/5LMAINT 
 DMARK    VFD    60/4LMARK
 DMSG     VFD    60/3LMSG 
 DNAD     VFD    60/3LNAD 
 DNAMED   VFD    60/5LNAMED 
 DPATH    VFD    60/4LPATH
 DRD      VFD    60/2LRD
 DREAD    VFD    60/4LREAD
 DREJ     VFD    60/8LREJECTED
 DREMOTE  VFD    60/6LREMOTE
 DSEL     VFD    60/8LSELECTED
 DSHORT   VFD    60/5LSHORT 
 DSTRING  VFD    60/6LSTRING
 DWDS     VFD    60/3LWDS 
 DWITH    VFD    60/4LWITH
 DWR      VFD    60/2LWR
 DWRITE   VFD    60/5LWRITE 
          EJECT 
 PEABT    TITLE  PEABT - PROCESS HIGH-LEVEL LCN ABORT STATEMENT.
**        PEABT - PROCESS HIGH-LEVEL LCN ABORT STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE ABORT COMMAND. 
*                             Z 
*          ABORT            ----- 
*          ABORT ABT Z      0-77B 
*                           0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - 1. 
*                B - NONE.
* 
 PEABT    SX1    403B 
          EQ     LCOM6A      ENTER COMMON SEQUENCE
          EJECT 
 PEACC    TITLE  PEACC - PROCESS HIGH-LEVEL LCN ACCEPT STATEMENT. 
**        PEACC - PROCESS HIGH-LEVEL LCN ACCEPT STATEMENT.
* 
*         G. L. GOLDEN  80/06/10. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE ACCEPT COMMAND.
* 
*                             Z 
*          ACCEPT           ----- 
*          ACCEPT ABT Z     0-77B 
*                           0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - 1. 
*                B - NONE.
* 
 PEACC    SX1    411B 
          EQ     LCOM6A      ENTER COMMON SEQUENCE
          EJECT 
 PEAUTO   TITLE  PEAUTO - PROCESS HIGH-LEVEL LCN AUTODMP STATEMENT. 
**        PEAUTO - PROCESS HIGH-LEVEL LCN AUTODMP STATEMENT.
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE AUTODMP COMMAND. 
* 
*          AUTODMP N WORDS FROM R TO Y
*          AUTODMP N WORDS FROM R TO Y ABT Z
*          AUTODMP N WORDS FROM R/S TO Y
*          AUTODMP N WORDS FROM R/S TO Y ABT Z
* 
*             N       R/S     Y      Z
*           ------  ------   ---   -----
*           1-505B   BUF      IB   0-77B
*           1-325D   REG           0-63D
*           REG      0-81536D 
*           BUF      0-177777B
*                    0-FFFFH
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3.
*         X - 0, 1, 3.
*                B - 7. 
* 
 PEAUTO   SA1    LCOMM
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          RJ     CRKNRS      CRACK FOR N REG/CONST
          SX0    STD+PA+6 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA3    A3+B1
          SA1    DFROM
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT FROM
          RJ     CRKRS       CRACK FOR R/S
          RJ     CRKIB       CRACK FOR IB 
          SX0    STD+PA+7 
          SB7    AUTOPE 
          EQ     LCOM9      ENTER COMMON SEQUENCE 
          EJECT 
 PECONN   TITLE  PECONN - PROCESS HIGH-LEVEL LCN CONNECT STATEMENT. 
**        PECONN - PROCESS HIGH-LEVEL LCN CONNECT STATEMENT.
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE CONNECT COMMAND. 
* 
*          CONNECT PATH DB BUFFER X 
*          CONNECT PATH DB BUFFER X,ABT Z 
*          CONNECT PATH DB BUFFER X LTA Y 
*          CONNECT PATH DB BUFFER X LTA Y,ABT Z 
*          CONNECT MAINT PATH DA BUFFER X 
*          CONNECT MAINT PATH DA BUFFER X,ABT Z 
* 
*                 A      B      X      Y       Z
*               -----  -----  -----  ------  -----
*                A-Z    0-9    0-2   1-177B  0-77B
*                              BUF   BUF     0-63D
*                              REG   REG
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 PECONN   RJ     CRKCONN     CRACK FOR CONNECT
          SB7    CONNPE 
          EQ     LCOM11      ENTER COMMON SEQUENCE
          EJECT 
 PEDIS    TITLE  PEDIS - PROCESS HIGH-LEVEL LCN DISCONN STATEMENT.
**        PEDIS - PROCESS HIGH-LEVEL LCN DISCONN STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE DISCONNECT COMMAND.
* 
*          DISCONN PATH 
*          DISCONN PATH ABT Z                  A       Z
*          DISCONN PATH AND FLUSH            -----   -----
*          DISCONN PATH AND FLUSH ABT Z       A-Z    0-77B
*          DISCONN NAMED PATH DA              0-9    0-63D
*          DISCONN NAMED PATH DA ABT Z
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
  
 PEDIS    SA1    LCOMM
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DPATH
          SB7    445B 
          BX1    X1-X3
          NZ     X1,PEDIS2   IF NOT PATH
          SB7    421B 
          SA1    A3+B1
          ZR     X1,PEDIS1   IF END OF STATEMENT
          LX1    18 
          SX1    X1-3RAND 
          NZ     X1,PEDIS1   IF NOT AND 
          SA3    A3+B1       GET WORD WITH AND
          SA3    A3+B1       GET NEXT PARAMETER 
          SA1    DFLUSH 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT FLUSH 
          SB7    444B 
 PEDIS1   SX0    LDC
          LX0    12 
          SX1    B7 
          BX0    X0+X1
          LX0    12 
          SX1    STD+PA+1 
          BX0    X0+X1
          EQ     PEDIS3 
  
 PEDIS2   SA1    DNAMED 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT NAMED 
          SX0    LDC
          LX0    12 
          SX1    B7 
          BX0    X0+X1
          LX0    12 
          SX1    STD+PA+1 
          BX0    X0+X1
          RJ     CSTOREB
          SA3    A3+B1
          SB7    2
          RJ     CRKPATH     CRACK FOR PATH DA
 PEDIS3   SA3    A3+B1       GET NEXT PARAMETER 
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          SB7    DISPE
          EQ     LCOM9       ENTER COMMON SEQUENCE
          EJECT 
 PEIMC    TITLE  PEIMC - PROCESS HIGH-LEVEL LCN IMC STATEMENT.
**        PEIMC - PROCESS HIGH-LEVEL LCN IMC STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE IMC COMMAND. 
* 
*                           Z 
*          IMC            ----- 
*          IMC ABT Z      0-77B 
*                         0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 1. 
*                B - NONE.
* 
 PEIMC    SA1    PEIMC1 
          EQ     LCOM7A      ENTER COMMON SEQUENCE
  
 PEIMC1   VFD    12/LDC,12/6277B,12/STD+PA+1,12/LDN+65B,12/STD+PA+55B 
          EJECT 
 PEFUNC   TITLE  PEFUNC - PROCESS THE HIGH-LEVEL LCN FUNC STATEMENT.
**        PEFUNC - PROCESS THE HIGH-LEVEL LCN FUNC STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         PEFUNC - PROCESS THE HIGH-LEVEL LCN FUNC STATEMENT. 
*         FORMATS FOR THIS STATEMENT ARE; 
* 
*           FUNC Y
*           FUNC Y, ABT Z 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 0, 1.
*                B - NONE.
* 
 PEFUNC   SA1    LCOMI
          BX0    X1 
          RJ     CSTOREB
          SA1    LCOMB       CW FOR Y 
          RJ     FIND 
          NG     B2,COM31 
          RJ     CLOAD       GENERATE LOAD OF Y 
          SA1    PEFUNB 
          EQ     LCOM7A      ENTER COMMON SEQUENCE
  
 PEFUNB   VFD    12/LPC,12/777B,12/ADC,12/6000B,12/STD+PA+1 
          EJECT 
 PEINQ    TITLE  PEINQ - PROCESS HIGH-LEVEL LCN INQUIRE STATEMENT.
**        PEINQ - PROCESS HIGH-LEVEL LCN INQUIRE STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE INQUIRE COMMAND. 
* 
*          INQUIRE SELECTED PATH FROM X TO Y
*          INQUIRE SELECTED PATH FROM X TO Y ABT Z
*          INQUIRE SELECTED CONTROL MSG FROM X TO Y 
*          INQUIRE SELECTED CONTROL MSG FROM X TO Y ABT Z 
*          INQUIRE CONTROL MSG TO Y 
*          INQUIRE CONTROL MSG TO Y ABT Z 
*          INQUIRE REJECTED CONTROL MSG TO Y
*          INQUIRE REJECTED CONTROL MSG TO Y ABT Z
*          INQUIRE PATH TO Y
*          INQUIRE PATH TO Y ABT Z
* 
*                      X    Y    Z
*                    ---- ---- -----
*                     OB   IB  0-77B
*                              0-63D
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3.
*                X - 0, 1, 3. 
*                B - 7. 
  
 PEINQ    SA1    DSEL 
          BX1    X1-X3
          NZ     X1,PEINQ2   IF SELECTED NOT SPECIFIED
          SA3    A3+B1
          SA1    DPATH
          BX1    X1-X3
          NZ     X1,PEINQ1   IF PATH NOT SPECIFIED
          SB7    416B 
          SA1    LCOMG       CW FOR X 
          RJ     CRKLODC     GENERATE CODE FOR X
          SX0    STD+PA+3 
          RJ     CSTOREB
          EQ     PEINQ6 
  
 PEINQ1   SA1    DCON 
          BX1    X1-X3
          NZ     X1,COM30    IF CONTROL NOT SPECIFIED 
          SA3    A3+B1
          SA1    DMSG 
          BX1    X1-X3
          NZ     X1,COM30    IF MSG NOT SPECIFIED 
          SA1    LCOMG       CW FOR OB
          RJ     CRKLODC     GENERATE CODE FOR Y
          SX0    STD+PA+3 
          RJ     CSTOREB     SAVE GENERATED CODE
          SB7    414B 
          EQ     PEINQ6 
  
 PEINQ2   SA1    DCON 
          BX1    X1-X3
          NZ     X1,PEINQ3   IF CONTROL NOT SPECIFIED 
          SB7    413B 
          EQ     PEINQ5 
  
 PEINQ3   SA1    DREJ 
          BX1    X1-X3
          NZ     X1,PEINQ4   IF NOT REJECTED
          SA3    A3+B1
          SA1    DCON 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT CONTROL 
          SB7    417B 
          EQ     PEINQ5 
  
 PEINQ4   SA1    DPATH
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT PATH
          SB7    415B 
          SA3    A3+B1       GET NEXT PARAMETER 
          EQ     PEINQ6 
  
 PEINQ5   SA3    A3+B1       GET NEXT PARAMETER 
          SA1    DMSG 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT MSG 
          SA3    A3+B1
 PEINQ6   SA1    DTO
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT TO SPECIFIED
          SA1    LCOME       CW FOR IB
          RJ     CRKLODC     GENERATE CODE FOR Y
          SX0    STD+PA+4 
          RJ     CSTOREB     SAVE GENERATED CODE
 PEINQ7   SX0    LDC
          SX1    B7 
          LX0    12 
          BX0    X0+X1
          LX0    12 
          SX1    STD+PA+1 
          BX0    X0+X1       FORM LDN CODE    STD PA+1
          RJ     CSTOREB
          SA1    LCOMM
          SB7    INQPE       ENTRY POINT
          EQ     LCOM8       ENTER COMMON SEQUENCE
          EJECT 
 PEIN     TITLE  PEIN - PROCESS THE HIGH-LEVEL LCN FIN STATEMENT. 
**        PEIN - PROCESS THE HIGH-LEVEL LCN FIN STATEMENT.
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*          PEIN - COMPILE THE IN STATEMENT.  FORMATS ARE AS FOLLOWS 
* 
*           IN
*           IN, ABT Z 
*           IN CHAIN
*           IN CHAIN, ABT Z 
*           IN X WORDS TO Y 
*           IN X WORDS TO Y, ABT Z
*           IN CHAIN X WORDS TO Y 
*           IN CHAIN X WORDS TO Y, ABT Z
* 
*         ENTRY  CRKBUF = WORD STRING OF SOURCE STATEMENT.
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - NONE.
*                B - 7. 
* 
  
 PEIN     SB7    INPE 
          SA1    LCOMI       CODE FOR  LDN 50B  STD PA+55B
          EQ     LCOM2
          EJECT 
 PELOAD   TITLE  PELOAD - PROCESS THE HIGH-LEVEL LCN LOAD STATEMENT.
**        PELOAD - PROCESS THE HIGH-LEVEL LCN LOAD STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE LOAD COMMAND.
* 
*                             Z 
*          LOAD             ----- 
*          LOAD ABT Z       0-77B 
*                           0-63D 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*               - FCERR ERROR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 1. 
*                B - 7. 
* 
  
 PELOAD   SB7    LOADPE 
          SA1    LCOMJ
          EQ     LCOM8
          EJECT 
 PELOOP   TITLE  PELOOP - PROCESS THE HIGH-LEVEL LCN LOOP STATEMENT.
**        PELOOP - PROCESS THE HIGH-LEVEL LCN LOOP STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE LOOP COMMAND.
* 
*                                      X      Y          Z
*          LOOP BACK X TO Y          ----   -----      -----
*          LOOP BACK X TO Y ABT Z     IB     REG.      0-77B
*                                     OB               0-63D
*                                     REG.
*                                    0-7777B
*                                    0-4095D
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*               - FCERR ERROR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
  
 PELOOP   SB7    LOOPPE 
          SA1    LCOMK
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DBACK
          BX1    X1-X3
          NZ     X1,COM30    IF NOT DISPLAY CODE BACK 
          SA1    LCOMB       CONTROL WORDS FOR X
          RJ     CRKLOD      CRACK FOR X
          SX0    STD+PA+1 
          RJ     CSTOREB
          SA1    DTO
          BX1    X1-X3
          NZ     X1,COM30    IF NOT DISPLAY CODE TO 
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          SA1    PELOA       CONTROL WORD FOR Y 
          RJ     FIND 
          NG     B2,COM31    ERROR IF NOT FOUND 
          SX0    B3+LDN      FORM LDN REG 
          SX1    STD+PA+2 
          LX0    12 
          EQ     LCOM8
  
 PELOA    VFD    57/0,3/REG1    CONTROL WORD FOR Y REG
          EJECT 
 PEMAINT  TITLE  PEMAINT- PROCESS THE HIGH LEVEL LCN MAINT COMMAND. 
**        PEMAINT- PROCESS THE HIGH LEVEL LCN MAINT COMMAND.
* 
*         G. L. GOLDEN 80/06/10.
* 
*         THE FOLLOWING FORMAT IS USED FOR THE MAINT COMMAND. 
* 
*         MAINT READ N WORDS TO Y 
*         MAINT READ N WORDS TO Y ABT Z 
*         MAINT FUNCTION M WITH N WORDS FROM X
*         MAINT FUNCTION M WITH N WORDS FROM X ABT Z
* 
*                      M   X    Y     N     Z 
*                     --- ---- ---- ------ -----
*                      OB  OB   IB  1-505B 0-77B
*                      IB            BUF   0-63D
*                     REG.           REG
*                    CONST. 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 PEMAINT  SA1    LCOML
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE  LDN 5    STD PA+55B 
          SA1    DREAD
          BX1    X3-X1
          SB7    0           FLAG MAINTENANCE READ
          ZR     X1,PEMA1    IF MAINTENANCE READ
          SA1    DRD
          BX1    X3-X1
          ZR     X1,PEMA1    IF MAINT RD
  
*         CRACK FOR FUNCTION
  
          SB7    B1          FLAG MAINTENANCE FUNCTION
          SA1    DFUNC
          BX1    X3-X1
          NZ     X1,COM30    ERROR IF NOT FUNCTION
          SA1    LCOMB       CW FOR IB/OB/REG 
          RJ     CRKLOD      GENERATE CODE FOR M
          SX0    STD+PA+1    SAVE FUNCTION IN PA+1
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DWITH
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT WITH
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          RJ     CRKNRS      CRACK FOR N REG/BUF/CONST
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          RJ     CRKOB       CRACK FOR OB 
          SA1    PEMAB
          BX0    X1 
          RJ     CABSPPU
          RJ     CSTOREB     SAVE GENERATED CODE
          SX0    STD+PA+7 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PEMAC
          BX0    X1 
          SB7    MAINF
          EQ     LCOM9       ENTER COMMON SEQUENCE
  
*         CRACK FOR READ
  
 PEMA1    SA1    PEMAA
          EQ     PER1A       ENTER READ SEQUENCE
  
 PEMAA    VFD    12/LDC,12/1442B,12/STD+PA+1,12/LDN,12/STD+PA+55B 
 PEMAB    VFD    12/LDC,12/500B,12/STD+PA+6,12/LDC,12/IB
 PEMAC    VFD    36/0,12/LDN+0,12/STD+PA+5
          EJECT 
 PEMEM    TITLE  PEMEM - PROCESS THE HIGH-LEVEL LCN MEMORY COMMAND
**        PEMEM - PROCESS THE HIGH-LEVEL LCN MEMORY COMMAND.
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE MEMORY COMMAND.
* 
*          MEMORY READ W M WORDS FROM R TO Y
*          MEMORY READ T N WORDS FROM R TO Y
*          MEMORY READ W M WORDS FROM R/S TO Y
*          MEMORY READ T N WORDS FROM R/S TO Y
*          MEMORY READ W M WORDS FROM R TO Y ABT Z
*          MEMORY READ T N WORDS FROM R TO Y ABT Z
*          MEMORY READ W M WORDS FROM R/S TO Y ABT Z
*          MEMORY READ T N WORDS FROM R/S TO Y ABT Z
*          MEMORY WRITE X M WORDS TO R FROM V 
*          MEMORY WRITE U N WORDS TO R FROM V 
*          MEMORY WRITE X M WORDS TO R/S FROM V 
*          MEMORY WRITE U N WORDS TO R/S FROM V 
*          MEMORY WRITE X M WORDS TO R FROM V ABT Z 
*          MEMORY WRITE U N WORDS TO R FROM V ABT Z 
*          MEMORY WRITE X M WORDS TO R/S FROM V ABT Z 
*          MEMORY WRITE U N WORDS TO R/S FROM V ABT Z 
* 
*          N      R/S      T      U      V   Y    Z      M     X      W 
*        -----  ------   -----  ------  --- --- ----- ------  ----  ----- 
*        1-505B  REG.    STRING  STRING  OB  IB 0-77B 1-505B   6/8   8/6
*        1-325D  BUF.     64/60   60/64         0-63D 1-325D  12/8   8/12 
*                0-177777B                              BUF   12/16 16/12 
*                0-FFFFH                                REG 
* 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*         X - 0, 1, 3, 5, 6.
*                B - 7. 
* 
 PEMEM    SA1    DREAD
          BX1    X3-X1
          MX7    0           FLAG MEMORY READ 
          ZR     X1,PEM2     IF MEMORY READ 
          SA1    DRD
          BX1    X3-X1
          ZR     X1,PEM2     IF MEMORY RD 
          SA1    DWRITE 
          BX1    X3-X1
          ZR     X1,PEM1     IF MEMORY WRITE
          SA1    DWR
          BX1    X3-X1
          NZ     X1,COM30    IF SYNTAX ERROR
 PEM1     SX7    B1          FLAG WRITE 
 PEM2     SA7    PEMA        SAVE WRITE/READ FLAG 
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE PCRK POINTER
          SX5    B1          (X5) = 1 FLAG 4 PP = 3 NAD WORDS 
          NZ     X7,PEM7     IF MEMORY WRITE
  
*         CRACK MEMORY READ COMMANDS
  
*         CRACK FOR STRING
  
          SX0    LDN
          SA1    DSTRING
          BX1    X1-X3
          ZR     X1,PEM11    IF READ STRING 
          SA1    PEMRD-1     (A1)=POINTER TO READ TABLE 
          EQ     PEM8        ENTER COMMON SEQUENCE
  
*         CRACK MEMORY WRITE COMMANDS 
  
*         CRACK FOR STRING
  
 PEM7     SX0    LDN+21B
          SA1    DSTRING
          BX1    X1-X3
          ZR     X1,PEM11    IF STRING
          SA1    PEMWR-1     (A1) = POINTER TO WRITE TABLE
 PEM8     SA1    A1+B1       GET TABLE ENTRY
          ZR     X1,COM30    IF END OF TABLE
          MX0    12 
          BX5    X0*X1       (X5)=EXPECTED DATA 
          BX5    X3-X5
          NZ     X5,PEM8     LOOP TO END OF TABLE 
          SA3    A3+B1
          SX3    X3-1R/ 
          NZ     X3,COM30    ERROR IF NOT DISPLAY CODE /
          SA3    A3+B1       INCREMENT A3 
          LX1    12 
          BX5    X0*X1       (X5) = EXPECTED DATA 
          BX5    X3-X5
          ZR     X5,PEM9
          SA1    A1+B1
          LX1    12 
          BX5    X0*X1       (X5) = EXPECTED DATA 
          BX5    X3-X5
          NZ     X5,COM30    IF NO MATCH
 PEM9     LX1    12 
          BX5    X0*X1       (X5) = DATA TYPE KEY 
          LX5    12          POSITION CONVERSION MODE CODE
          LX1    12 
          BX0    X0*X1
          LX0    12          (X0) = LDN+FUNCTION+CODE 
  
 PEM11    SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1
          BX6    X5 
          SA6    PEMB        SAVE CONVERSION MODE FOR NAD/PP WORDS
          RJ     CSTOREB
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE PCRK
  
*         CRACK FOR VALUE N 
  
          SA1    PEMB        GET CODE FOR PP/NAD WORD COUNT 
          ZR     X1,PEM18    IF NO DIFFERENCE  PP/NAD WORDS 
          SX1    X1-1 
          NZ     X1,PEM12    IF NOT MULTIPLY BY 3/4 
          RJ     CRKN        CRACK FOR N
          IX2    X4+X4
          IX4    X2+X4
          AX4    2           DIVIDE BY 4
          NZ     X4,PEM14    IF NEW VALUE NON ZERO
          SX4    B1          SET IT TO 1
          EQ     PEM14
  
 PEM12    SX1    X1-1 
          NZ     X1,PEM13    IF NOT MULTIPY BY 1/2
          RJ     CRKNR       CRACK FOR N REG/BUF/CONST
          SX1    SHN+76B     SHN -1 TO MULTIPLY BY 1/2
          LX0    12 
          BX0    X0+X1
          EQ     PEM18A 
  
 PEM13    SX1    X1-1 
          NZ     X1,COM30    ERROR CONVERSION TYPE WRONG
          RJ     CRKN        CRACK FOR N
          SX1    4
          IX4    X4*X1
          SX1    5
          IX4    X4/X1
          NZ     X4,PEM14    IF VALUE NOT ZERO
          SX4    B1          SET IT TO ONE FOR LENGTH 
 PEM14    SX1    LDC
 PEM15    LX0    12 
          MX6    -6 
          BX6    X6*X4
          NZ     X6,PEM16    IF VALUE NOT LESS THAN 77B 
          SX1    X4+LDN 
          BX0    X0+X1       CODE LDN N 
          EQ     PEM17
  
 PEM16    BX0    X0+X1
          LX0    12 
          BX0    X0+X4
 PEM17    RJ     CSTOREB     SAVE GENERATED CODE
          EQ     PEM18A 
  
 PEM18    RJ     CRKNR       CRACK FOR N REG/CONST/BUF
  
 PEM18A   LX0    12 
          SX1    STD+PA+7 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED BINARY
  
*         CRACK FOR WORDS OR WRDS 
  
  
*         CRACK FOR DISPLAY CODE TO OR FROM 
  
 PEM19    SA1    PEMA        GET READ/WRITE FLAG
          NZ     X1,PEM20    IF WRITE REQUEST 
          SA1    DFROM
          EQ     PEM21
  
 PEM20    SA1    DTO
 PEM21    SA3    A3+B1       GET NEXT PARMETER
          BX1    X1-X3
          NZ     X1,COM30    IF NOT DISPLAY CODE TO OR FROM 
          RJ     CRKRS       CRACK FOR VALUE R/S
 PEM28    SA1    PEMA 
          NZ     X1,PEM29    IF WRITE REQUEST 
          RJ     CRKIB       CRACK FOR IB 
          EQ     PEM30
  
 PEM29    RJ     CRKOB       CRACK FOR OB 
 PEM30    SA1    LCOMH
          SB7    MEMPE       ENTRY FOR MEMORY COMMANDS
          EQ     LCOM8       PROCESS ABORT
  
 PEMA     DATA   0           READ/WRITE FLAG
 PEMB     DATA   0           DATA WORD FOR CONVERSION PP TO NAD WORDS 
  
*         TABLE FOR MEMORY READ 
  
 PEMRD    VFD    12/1L8,12/1L6,12/0,12/LDN+2,12/0 
          VFD    12/1L8,12/2L12,12/2,12/LDN+4,12/0
          VFD    12/2L16,12/2L12,12/0,12/LDN+6,12/0 
          VFD    12/2L64,12/2L60,12/3,12/LDN+10B,12/0 
          DATA   0
  
*         TABLE FOR MEMORY WRITE
  
 PEMWR    VFD    12/1L6,12/1L8,12/0,12/LDN+23B,12/0 
          VFD    12/2L12,12/1L8,12/2,12/LDN+25B,12/0
          VFD    12/2L12,12/2L16,12/0,12/LDN+27B,12/0 
          VFD    12/2L60,12/2L64,12/3,12/LDN+31B,12/0 
          DATA   0
          EJECT 
 PEPMC    TITLE  PEPMC - PROCESS HIGH-LEVEL LCN PMC STATEMENT.
**        PEPMC - PROCESS HIGH-LEVEL LCN PMC STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE PMC COMMAND. 
* 
*                           Z 
*          PMC            ----- 
*          PMC ABT Z      0-77B 
*                         0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 0, 1.
*                B - 7. 
  
 PEPMC    SA1    PEPMCA 
          BX0    X1 
          SB7    OB 
          RJ     CRKABS      CONVERT OB TO BINARY ADDRESS 
          SA1    PEPMCB 
          BX0    X1 
          SB7    IB 
          RJ     CRKABS      CONVERT IB TO BINARY ADDRESS 
          SX0    STD+PA+7 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PEPMCC 
          BX0    X1 
          RJ     CSTOREB
          SA1    PEPMCD 
          EQ     LCOM7A      ENTER COMMON SEQUENCE
  
 PEPMCA   VFD    12/LDC,12/4304B,12/STD+PA+1,12/LDN+45B,12/STD+PA+55B 
 PEPMCB   VFD    12/STD+PA+3,12/LDN+1,12/STD+PA+5,12/LDN+12B,12/STD+PA+2
 PEPMCC   VFD    12/LDN,12/STM+PA+3,12/10B,12/STM+PA+3,12/11B 
 PEPMCD   VFD    36/0,12/LDN+2,12/STD+PA+6
          EJECT 
 PEOUT    TITLE  PEOUT - PROCESS THE HIGH-LEVEL LCN OUT STATEMENT.
**        PEOUT - PROCESS THE HIGH-LEVEL LCN OUT STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         PEOUT - COMPILE THE OUT STATEMENT.  FORMATS ARE 
* 
*           OUT 
*           OUT, ABT Z
*           OUT CHAIN 
*           OUT CHAIN, ABT Z
*           OUT X WORDS FROM Y
*           OUT X WORDS FROM Y, ABT Z 
*           OUT CHAIN X WORDS FROM Y
*           OUT CHAIN X WORDS FROM Y, ABT Z 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*               - FCERR ERROR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 1. 
*                B - 7. 
* 
 PEOUT    SB7    OUTPE
          SA1    LCOMI       CODE FOR LDN 50B  STD PA+55B 
          EQ     LCOM2
          EJECT 
 PEPURGE  TITLE  PEPURGE - PROCESS HIGH-LEVEL LCN PURGE STATEMENT.
**        PEPURGE - PROCESS HIGH-LEVEL LCN PURGE STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE PURGE COMMAND. 
* 
*                           Z 
*          PURGE          ----- 
*          PURGE ABT Z    0-77B 
*                         0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - 1. 
*                B - NONE.
  
 PEPURGE  SX1    422B 
          EQ     LCOM6A      ENTER COMMON SEQUENCE
          EJECT 
 PEREAD   TITLE  PEREAD - PROCESS HIGH-LEVEL LCN READ STATEMENT.
**        PEREAD - PROCESS HIGH-LEVEL LCN READ STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE READ COMMAND.
* 
*          READ DATA N WORDS TO Y 
*          READ DATA N WORDS TO Y ABT Z 
*          READ CODE TO Y 
*          READ CODE TO Y ABT Z 
*          READ SHORT CODE
*          READ SHORT CODE, ABT Z 
* 
*            N       Y       Z
*         -------   ---    -----
*         1-505B    IB     0-77B
*         1-325B           0-63D
*           BUF 
*           REG 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 PEREAD   SA1    DSHORT 
          BX1    X1-X3
          NZ     X1,PER1     IF NOT SHORT 
          SA1    PERA 
          BX0    X1 
          SA3    A3+B1       GET NEXT WORD
          SA1    DCODE
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT CODE
          RJ     CSTOREB     SAVE GENERATED CODE
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER CRKBUF
          SB7    FNCPE
          EQ     LCOM11      ENTER COMMON SEQUENCE
  
 PER1     SA1    DDATA
          BX1    X1-X3
          NZ     X1,PER2     IF NOT DATA
          SA1    PERB 
 PER1A    BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          RJ     CRKNR       CRACK FOR N BUF/REG/CONST
          EQ     PER3 
  
 PER2     SA1    DCODE
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT CODE
          SA1    PERC 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PERD 
          BX0    X1 
  
 PER3     RJ     CSTOREB
          SA3    A3+B1       GET NEXT PARAMETER 
          RJ     CRKIB       CRACK FOR IB 
          SB7    READPE 
          EQ     LCOM11      ENTER COMMON SEQUENCE EJECT
  
 PERA     VFD    12/LDC,12/6443B,12/STD+PA+1,12/LDN,12/STD+PA+55B SHORT 
 PERB     VFD   12/LDC,12/1427B,12/STD+PA+1,12/LDN,12/STD+PA+55B DATA 
 PERC     VFD   12/LDC,12/2426B,12/STD+PA+1,12/LDN,12/STD+PA+55B CODE 
 PERD     VFD    36/0,12/LDN+4,12/STD+PA+2
          EJECT 
 PEREADY  TITLE  PEREADY - PROCESS HIGH-LEVEL LCN READY STATEMENT.
**        PEREADY - PROCESS HIGH-LEVEL LCN READY STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE READY COMMAND. 
* 
*                           Z 
*          READY          ----- 
*          READY ABT Z    0-77B 
*                         0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 1. 
*                B - 7. 
* 
  
 PEREADY  SB7    READYPE
          SA1    LCOMM
          EQ     LCOM8       ENTER COMMON SEQUENCE
          EJECT 
 PEREJ    TITLE  PEREJ - PROCESS HIGH-LEVEL LCN REJECT STATEMENT. 
**        PEREJ - PROCESS HIGH-LEVEL LCN REJECT STATEMENT.
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE REJECT COMMAND.
* 
*                           Z 
*          REJECT         ----- 
*          REJECT ABT Z   0-77B 
*                         0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - 1. 
*                B - NONE.
* 
 PEREJ    SX1    410B 
          EQ     LCOM6A      ENTER COMMON SEQUENCE
          EJECT 
 PEREL    TITLE  PEREL - PROCESS THE HIGH-LEVEL LCN REL STATEMENT.
**        PEREL - PROCESS THE HIGH-LEVEL LCN REL STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE REL COMMAND. 
*                             Z 
*          REL              ----- 
*          REL ABT Z        0-77B 
*                           0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - NONE.
*                B - 7. 
* 
 PEREL    SB7    RELPE
          EQ     LCOM11 
          EJECT 
 PERES    TITLE  PERES - PROCESS THE HIGH-LEVEL LCN RES STATEMENT.
**        PERES - PROCESS THE HIGH-LEVEL LCN RES STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE RES COMMAND. 
* 
*          RES
*          RES,ABT Z
*          RES PATH DB BUFFER X 
*          RES PATH DB BUFFER X,ABT Z 
*          RES PATH DB BUFFER X LTA Y 
*          RES PATH DB BUFFER X LTA Y,ABT Z 
*          RES MAINT PATH DA BUFFER X 
*          RES MAINT PATH DA BUFFER X,ABT Z 
* 
*                 A      B      X      Y       Z
*               -----  -----  -----  ------  -----
*                A-Z    0-9    0-2   1-177B  0-77B
*                              BUF   BUF     0-63D
*                              REG   REG
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 PERES    SB7    RESPE
          ZR     X3,LCOM11   IF END OF STATEMENT
          SA1    DABT 
          BX1    X1-X3
          ZR     X1,LCOM11   IF ABT 
          SX0    LDN+RESPE
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1       GENERATE ENTRY CODE FOR RES
          RJ     CSTOREB     SAVE GENERATED CODE
          SX6    A3 
          SA6    PERESE      SAVE POINTER TO CRKBUF 
 PERE1    SA1    DABT 
          SA3    A3+B1       GET NEXT PARAMETER 
          ZR     X3,PERE2    IF END OF COMMAND
          BX1    X1-X3
          NZ     X1,PERE1    IF NOT ABT 
 PERE2    SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          RJ     CRKABT 
          SA3    PERESE      GET POINTER TO CRKBUF
          SA3    X3 
          RJ     CRKCONN     CRACK REST OF STATEMENT
          SA1    PERESB 
          BX0    X1 
          RJ     CABSPPU     GENERATE LDN PECONN  STD PA  LCN 1  RJM POVL 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PERESC 
          BX0    X1          GENERATED LDM SB+1 
          RJ     CABSPPU
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PERESD      GET LPC 177B  ADC 1600B  STD PA+1
          BX0    X1 
          RJ     CSTOREB
          SA1    CRKCOND     GET MAINT/NORMAL PATH FLAG 
          SX0    LDN+1
          NZ     X1,PERE3    IF NORMAL PATH 
          SX0    LDN+2
 PERE3    SX1    STM
          LX0    12 
          BX0    X0+X1
          LX0    12 
          SX1    SB+62B 
          BX0    X0+X1
          RJ     CABSPPU
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PERESA 
          BX0    X1 
          RJ     CABSPPU
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     COM10       ENTER MAIN COMPILER
  
 PERESA   VFD    12/LDN+FNCPE,12/STD+PA,12/LCN+1,12/RJM,12/POVL 
 PERESB   VFD    12/LDN+CONNPE,12/STD+PA,12/LCN+1,12/RJM,12/POVL
 PERESC   VFD    36/0,12/LDM,12/SB+1
 PERESD   VFD    12/LPC,12/177B,12/ADC,12/1600B,12/STD+PA+1 
 PERESE   DATA   0           TEMP STORAGE FOR INDEX TO CRKBUF 
          EJECT 
 PERESET  TITLE  PERESET - PROCESS HIGH-LEVEL LCN RESET STATEMENT.
**        PERESET - PROCESS HIGH-LEVEL LCN RESET STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE RESET COMMAND. 
* 
*                           Z 
*          RESET          ----- 
*          RESET ABT Z    0-77B 
*                         0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - NONE.
*                X - 1. 
*                B - NONE.
* 
 PERESET  SX1    410B 
          EQ     LCOM6A 
          EJECT 
 PERESYN  TITLE  PERESYN - PROCESS THE LCN HIGH-LEVEL RESYNC COMMAND. 
**        PERESYN - PROCESS THE LCN HIGH-LEVEL RESYNC COMMAND.
* 
*         G. L. GOLDEN  80/06/10. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE RESYNC COMMAND.
* 
*          RESYNC 
*          RESYNC  ABT Z
* 
*             Y         Z 
*           ----     -----
*            IB      0-77B
*                    0-63D
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 0, 1.
*                B - 7. 
* 
 PERESYN  SB7    OB 
          RJ     CRKABS      CONVERT OB TO BINARY ADDRESS 
          SA1    PERENA 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PERENB 
          BX0    X1 
          SB7    IB 
          RJ     CRKABS      CONVERT IB TO BINARY ADDRESS 
          SX0    STD+PA+7 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PERENC 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PEPMCD 
          SB7    MAINF
          EQ     LCOM8       ENTER COMMON SEQUENCE
  
 PERENA   VFD    12/STD+PA+3,12/LDN,12/STD+PA+1,12/STM+PA+3,12/10B
 PERENB   VFD    12/0,12/STM+PA+3,12/11B,12/LDN+12B,12/STD+PA+2 
 PERENC   VFD    36/0,12/LDN+0,12/STD+PA+5
          EJECT 
 PESEL    TITLE  PESEL - PROCESS HIGH-LEVEL LCN SELECT STATEMENT. 
**        PESEL - PROCESS HIGH-LEVEL LCN SELECT STATEMENT.
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE SELECT COMMAND.
* 
*          SELECT PATH DA 
*          SELECT PATH DA ABT Z 
*          SELECT BINARY
*          SELECT BINARY,ABT Z
*          SELECT ASCII 
*          SELECT ASCII,ABT Z 
* 
*             A         Z 
*           ------   -----
*            A-Z     0-77B
*            0-9     0-63D
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*         X - 0, 1, 3, 6. 
*                B - 7. 
* 
 PESEL    SA1    DASCII 
          BX1    X1-X3
          NZ     X1,PESE2    IF NOT ASCII 
          SA1    PESELC 
 PESE1    SB7    FNCPE
          EQ     PESE4       ENTER COMMON SEQUENCE
  
 PESE2    SA1    DBINARY
          BX1    X1-X3
          NZ     X1,PESE3    IF NOT BINARY
          SA1    PESELD 
          EQ     PESE1       ENTER COMMON SEQUENCE
  
 PESE3    SB7    2
          RJ     CRKPATH     CRACK FOR PATH DA
          RJ     CSTOREB     SAVE GENERATED CODE
          SX0    B7+LDN 
          SX1    STD+PA+5 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATEF CODE
          SB7    SELPE
          SA1    PESELB 
 PESE4    BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA3    A3+B1       GET NEXT PARAMETER 
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          EQ     LCOM9       ENTER COMMON SEQUENCE
  
 PESELB   VFD    12/LDC,12/434B,12/STD+PA+1,12/LDN,12/STD+PA+55B
 PESELC   VFD    12/LDC,12/452B,12/STD+PA+1,12/LDN,12/STD+PA+55B
 PESELD   VFD    12/LDC,12/451B,12/STD+PA+1,12/LDN,12/STD+PA+55B
          EJECT 
 PESEND   TITLE  PESEND - PROCESS HIGH-LEVEL LCN SEND STATEMENT.
**        PESEND - PROCESS HIGH-LEVEL LCN SEND STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE SEND COMMAND.
* 
*          SEND CONTROL MSG N WORDS FROM Y
*          SEND CONTROL MSG N WORDS FROM Y
* 
*               N         Z 
*             ------     -----
*             1-505B     0-77B
*             1-325D     0-63D
*             BUF 
*             REG 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 PESEND   SB7    SENDPE 
          SA1    PESENA 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DCON 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT CONTROL 
          SA3    A3+B1       GET NEXT PARAMETER 
          SA1    DMSG 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT MSG 
          SA3    A3+B1       GET NEXT PARAMETER 
          SX6    A3 
          SA6    PCRK 
          RJ     CRKNRS      CRACK FOR N REG/BUF/CONST AND STORE
          SA3    A3+B1       GET NEXT PARAMETER 
          RJ     CRKOB       CRACK FOR OB 
          EQ     LCOM11      ENTER COMMON SEQUENCE
  
 PESENA   VFD    12/LDC,12/404B,12/STD+PA+1,12/LDN,12/STD+PA+55B
          EJECT 
 PESMC    TITLE  PESMC - PROCESS HIGH-LEVEL LCN SMC STATEMENT.
**        PESMC - PROCESS HIGH-LEVEL LCN SMC STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE SMC COMMAND. 
* 
*                           Z 
*          SMC            ----- 
*          SMC ABT Z      0-77B 
*                         0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 1. 
*                B - NONE.
* 
 PESMC    SA1    PESMC1 
          EQ     LCOM7A      ENTER COMMON SEQUENCE
  
 PESMC1   VFD    12/LDC,12/400B,12/STD+PA+1,12/LDN+45B,12/STD+PA+55B
          EJECT 
 PESTAR   TITLE  PESTAR - PROCESS THE HIGH-LEVEL LCN START STATEMENT. 
**        PESTAR - PROCESS THE HIGH-LEVEL LCN START STATEMENT.
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE START COMMAND. 
* 
*                             Z 
*          START            ----- 
*          START ABT Z      0-77B 
*                           0-63D 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 0, 1.
*                B - NONE.
* 
 PESTAR   SA1    PESTAA 
          BX0    X1 
          SB7    OB 
          RJ     CRKABS      CONVERT OB TO BINARY ADDRESS AND STORE 
          SA1    PESTAB 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PESTAC 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PESTAD 
          BX0    X1 
          SB7    IB 
          RJ     CRKABS      CONVERT IB TO BINARY ADDRESS AND STORE 
          SX0    STD+PA+7 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PEPMCD 
          EQ     LCOM7A      ENTER COMMON SEQUENCE
  
 PESTAA   VFD    12/LDC,12/4302B,12/STD+PA+1,12/LDN+40B,12/STD+PA+55B 
 PESTAB   VFD    12/0,12/STD+PA+3,12/LDN+6,12/STD+PA+5,12/LDN+0 
 PESTAC   VFD    12/0,12/STM+PA+3,12/10B,12/STM+PA+3,12/11B 
 PESTAD   VFD    36/0,12/LDN+12B,12/STD+PA+2
          EJECT 
 PESTAT   TITLE  PESTAT - PROCESS THE HIGH-LEVEL LCN STATUS STATEMENT.
**        PESTAT -  PROCESS THE STATUS STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE STATUS COMMAND.
* 
*                                             Z 
*          STATUS HARDWARE                  ----- 
*          STATUS HARDWARE ABT Z            0-77B 
*          STATUS CONTROL                   0-63D 
*          STATUS CONTROL ABT Z 
*          STATUS PATH
*          STATUS PATH ABT Z
*          STATUS NAD 
*          STATUS NAD ABT Z 
*          STATUS REMOTE NAD
*          STATUS REMOTE NAD ABT Z
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*               - FCERR ERROR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CLOADC - GEN. LOAD CONST. INSTRUCTIONS 
*                            CLOAD  - GEN. LOAD INSTRUCTIONS. 
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3.
*                X - 0, 1, 3, 6.
*                B - 2, 7.
* 
 PESTAT   SB7    STATPE 
          SA1    LCOMK
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SB2    B0          (B2) = INDEX 
 STA1     SA1    STAA+B2
          ZR     X1,STA2     END OF TABLE AND NO MATCH
          BX1    X1-X3
          ZR     X1,STA3     IF MATCH FOUND 
          SB2    B2+B1
          EQ     STA1        LOOP THRU TABLE
  
 STA2     SA1    DREMOTE
          BX1    X1-X3
          NZ     X1,COM30    IF NOT REMOTE
          SA3    A3+B1
          SA1    DNAD 
          BX1    X1-X3
          NZ     X1,COM30    IF NOT NAD 
          SB2    4           FLAG REMOTE NAD STATUS 
  
 STA3     SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          SX0    B2+LDN 
          SX1    STD+PA+1 
          LX0    12 
          EQ     LCOM8       ENTER COMMON 
  
 STAA     VFD    60/8LHARDWARE
          VFD    60/7LCONTROL 
          VFD    60/3LNAD 
          VFD    60/4LPATH
          VFD    60/0        END OF TABLE 
          EJECT 
 PESTEP   TITLE  PESTEP - PROCESS THE HIGH-LEVEL LCN STEP STATEMENT.
**        PESTEP - PROCESS THE HIGH-LEVEL LCN STEP STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE STEP COMMAND.
* 
*                             Z 
*          STEP             ----- 
*          STEP ABT Z       0-77B 
*                           0-63D 
* 
*         ENTRY - CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT  - MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*               - FCERR ERROR FLAG SET IF COMPILER ERROR CREATED. 
* 
*         ROUTINES CALLED -  NONE.
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 0, 1.
*                B - NONE.
* 
 PESTEP   SA1    PESTEPA
          BX0    X1 
          SB7    OB 
          RJ     CRKABS      CONVERT OB TO BINARY AND STORE 
          SA1    PESTEPB
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PESTEPC
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PESTEPD
          BX0    X1 
          SB7    IB 
          RJ     CRKABS      CONVERT IB TO BINARY AND STORE 
          SX0    STD+PA+7 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PEPMCD 
          EQ     LCOM7A      ENTER COMMON SEQUENCE
  
 PESTEPA  VFD    12/LDC,12/4301B,12/STD+PA+1,12/LDN+45B,12/STD+PA+55B,
 PESTEPB  VFD    12/0,12/STD+PA+3,12/LDN+7,12/STD+PA+5,12/LDN+0 
 PESTEPC  VFD    12/0,12/STM+PA+3,12/10B,12/STM+PA+3,12/11B 
 PESTEPD  VFD    36/0,12/LDN+12B,12/STD+PA+2
          EJECT 
 PETRAN   TITLE  PETRAN - PROCESS HIGH-LEVEL LCN TRANSMIT STATEMENT.
**        PETRAN - PROCESS HIGH-LEVEL LCN TRANSMIT STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE TRANSMIT COMMAND.
* 
*                                     Z 
*          TRANS                    ----- 
*          TRANS ABT Z              0-77B 
*          TRANS WITH MARK          0-63D 
*          TRANS WITH MARK ABT Z
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - NONE.
* 
 PETRAN   SA1    DWITH
          BX1    X1-X3
          ZR     X1,PETRAN1  IF NOT WITH MARK 
          SX1    423B 
          EQ     PETRAN2
  
 PETRAN1  SA3    A3+B1
          SA1    DMARK       DISPLAY CODE MARK
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT 
          SX1    433B 
          SA3    A3+B1
 PETRAN2  SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          EQ     LCOM6A      ENTER COMMON SEQUENCE
          EJECT 
 PETRUNK  TITLE  PETRUNK  - PROCESS HIGH-LEVEL LCN TRUNK STATEMENT. 
**        PETRUNK- PROCESS HIGH-LEVEL LCN TRUNK STATEMENT.
* 
*         G. L. GOLDEN. 80/06/10. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE TRUNK COMMAND. 
* 
*          TRUNK LOOPBACK TO Y N WORDS
*          TRUNK LOOPBACK TO Y N WORDS ABT Z
* 
*           X     Y     N      Z
*         ----  ---- ------- -----
*          OB    IB   1-505B 0-77B
*                     1-325D 0-63D
*                     REG 
*                     BUF 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 PETRUNK  SA1    DLOOPB 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT LOOPBACK
          SA3    A3+B1
          SB7    OB 
          RJ     CRKABS 
          SX0    STD+PA+4 
          RJ     CSTOREB
          RJ     CRKIB       CRACK FOR IB 
          SX0    STD+PA+7 
          RJ     CSTOREB     SAVE GENERATED CODE
          RJ     CRKNRS      CRACK FOR N REG/BUF/CONST AND STORE
          SX0    SBN+12 
          RJ     CSTOREB
          SA1    PETRUB 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED BINARY
          SA1    PETRUC 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    PETRUD 
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED BINARY
          SA1    LCOMM
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          SB7    MAINF
          EQ     LCOM8       ENTER COMMON SEQUENCE
  
 PETRUB   VFD    12/SHN+76B,12/STM+PA+4,12/11B,12/SHN+1,12/ADN+2
 PETRUC   VFD    12/0,12/STD+PA+6,12/LDD+PA+4,12/STD+PA+3,12/LDN+3
 PETRUD   VFD    36/0,12/STD+PA+1,12/STD+PA+5 
          EJECT 
 PEWRT    TITLE  PEWRT - PROCESS HIGH-LEVEL LCN WRITE STATEMENT.
**        PEWRT - PROCESS HIGH-LEVEL LCN WRITE STATEMENT. 
* 
*         G. L. GOLDEN. 80/03/08. 
* 
*         THE FOLLOWING FORMAT IS USED FOR THE WRITE COMMAND. 
* 
*          WRITE DATA N WORDS FROM Y
*          WRITE DATA N WORDS FROM Y  ABT Z 
*          WRITE CODE FROM Y
*          WRITE CODE FROM Y ABT Z
*          WRITE SHORT CODE FROM Y ABT Z
*          WRITE SHORT CODE FROM Y ABT Z
* 
*            N      Y     X     Z 
*         ------  ----  ----  ----- 
*         1-505B   OB    0-2  0-77B 
*         1-325D              0-63D 
*          REG. 
*          BUF. 
* 
*         ENTRY 
* 
*           CRKBUF = WORD STRING OF SOURCE STATEMENT. 
* 
*         EXIT
* 
*           . MODULE = BINARY PPU CODE GENERATED FOR THE SOURCE.
*           . FCERR COMPILER ERROR FLAG SET IF COMPILER ERROR CREATED.
* 
*         ROUTINES CALLED -  CSTOREB. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 7. 
* 
 PEWRT    SA1    LCOMM
          BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SX0    LDC
          LX0    12 
          SA1    DSHORT 
          BX1    X1-X3
          NZ     X1,PEW1     IF NOT SHORT 
          MX0    0
          SB7    FNCPE
          SA3    A3+B1       GET NEXT WORD
          SA1    DCODE
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT CODE
          SA3    A3+B1
          SA1    DFROM
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT FROM
          SA1    LCOMG
          RJ     CRKLOD      CRACK FOR Y
          SX0    LPN+37B
          LX0    12 
          SX1    ADC
          BX0    X0+X1
          SX1    540B 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          SX0    STD+PA+1 
          EQ     LCOM9       ENTER COMMON SEQUENCE
  
  
 PEW1     SA1    DDATA
          SB7    WRTPE
          BX1    X1-X3
          NZ     X1,PEW2     IF NOT DATA
          SX1    424B 
          BX0    X0+X1
          SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          RJ     CRKNR       CRACK FOR N REG/BUF/CONST
          EQ     PEW3 
  
 PEW2     SA1    DCODE
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT CODE
          SX1    425B 
          BX0    X0+X1
          SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1
          SX1    LDN+4
          LX0    12 
          BX0    X0+X1
          LX0    12 
          SX1    STD+PA+2 
          BX0    X0+X1
 PEW3     RJ     CSTOREB
          SA3    A3+B1       GET NEXT PARAMETER 
          EQ     LCOM7       ENTER COMMON SEQUENCE EJECT
  
          EJECT 
 LCOM     TITLE  LCOMNN - COMMON CODE FOR LCN COMMANDS. 
**        LCOMNN - COMMON CODE FOR LCN COMMANDS.
* 
*         ENTRY - (B7) = COMMAND CODE.
*                 (A3) = INDEX INTO CRKBUF. 
*                 (X3) = NEXT WORD OF SOURCE TO CRACK.
* 
*         EXIT  - COM10 - IF NO ERRORS. 
*                 COM30 - IF SYNTAX ERRORS. 
* 
*         ROUTINES CALLED  -  FIND, CRKIB, CRKOB, CSTOREB, CRKABT,CRKABS
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 2. 
* 
  
*         PROCESS FRONT END OF IN AND OUT STATEMENTS. 
  
 LCOM2    BX0    X1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DCHAIN 
          SX0    LDN         DEFAULT CODE = LDN 0 
          SB2    B0          SET FLAG FOR NO CHANING
          BX1    X1-X3
          NZ     X1,LCOM3    IF NOT CHAIN 
          SX0    X0+B1       CODE = LDN 1 
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          SB2    B1          SET CHAINING FLAG
 LCOM3    LX0    12 
          SX1    STD+PA+1 
          BX0    X0+X1       CODE = LDN FLAG   STD PA+1 
          ZR     X3,LCOM4    IF END OF STATEMENT
          SA1    DABT 
          BX1    X1-X3
          NZ     X1,LCOM6    IF ABT IS NOT THE NEXT ITEM
 LCOM4    RJ     CSTOREB     SAVE GENERATED CODE
          SX0    LDD+30B     LDD  WC
          SX1    STD+PA+2 
          LX0    12 
          BX0    X0+X1
          SX1    LDD+31B     LDD  BA
          LX0    12 
          BX0    X0+X1
          SX1    ADC
          LX0    12 
          BX0    X0+X1
          SB2    B7-OUTPE 
          SX1    IB 
          NZ     B2,LCOM5    IF NOT OUT OR OUTB 
          SX1    OB 
 LCOM5    LX0    12 
          BX0    X0+X1
          RJ     CABSPPU     CONVERT IB/OB TO BINARY AND STORE
          RJ     CSTOREB     SAVE GENERATED BINARY
          SX0    STD+PA+3 
          EQ     LCOM9       GO STORE CODE AND ENTER COMMON SEQUENCE
  
 LCOM6    SA1    LCOMD
          RJ     FIND        GET X
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD       GENERATE LOAD X CODE 
          SX0    STD+PA+2 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DWORDS 
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NEXT ITEM IS NOT WORDS 
          SA3    A3+B1
          SB2    OUTPE
          SB2    B7-B2
          ZR     B2,LCOM7    IF OUT COMMAND 
          SB2    OUTPE
          SB2    B7-B2
          ZR     B2,LCOM7    IF OUTB COMMAND
          RJ     CRKIB       CRACK FOR IB 
          EQ     LCOM11 
  
 LCOM6A   SX0    LDC
          LX0    12 
          BX0    X0+X1       GENERATE LDC CODE
          SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    LCOMM
          EQ     LCOM7A 
  
 LCOM7    RJ     CRKOB
          EQ     LCOM11      ENTER COMMON SEQUENCE
  
 LCOM7A   SB7    FNCPE      COMMON ENTER FOR FUNCTION ROUTINE 
 LCOM8    BX0    X0+X1
 LCOM9    RJ     CSTOREB     SAVE GENERATED CODE
  
*         COMMON SEQUENCE.
  
 LCOM11   SX0    B7+LDN      LDN COMMAND CODE 
          SX1    STD+PA      STD PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE COMMAND CODE
          RJ     CRKABT 
          EQ     COM10       EXIT TO COMPILER 
  
 LCOMB    VFD    42/0,12/7777B,3/BUF2,3/REG2  CW FOR FUNC Y 
 LCOMC    VFD    42/0,12/77B,6/0              CW FOR Z
 LCOMD    VFD    42/0,12/505B,3/BUF2,3/REG2   CW FOR IN/OUT X 
 LCOME    VFD    54/0,3/BUF4,3/0              CW FOR IN/INB Y    (IB) 
 LCOMF    VFD    42/0,12/505B,6/0             CW FOR N
 LCOMG    VFD    54/0,3/BUF6,3/0              CW FOR OUT/OUTB Y  (OB) 
  
**                                              ACCESS  DEVICE
*                                               LEVEL   USED
  
 LCOMH    VFD    36/0,12/LDN+65B,12/STD+PA+55B   AL=5  DC=300 
 LCOMI    VFD    36/0,12/LDN+50B,12/STD+PA+55B   AL=10 DC=300,301 
 LCOMJ    VFD    36/0,12/LDN+45B,12/STD+PA+55B   AL=5  DC=300,301 
 LCOMK    VFD    36/0,12/LDN+40B,12/STD+PA+55B   AL=0  DC=300,301 
 LCOML    VFD    36/0,12/LDN+05B,12/STD+PA+55B   AL=5  DC=301 
 LCOMM    VFD    36/0,12/LDN+00B,12/STD+PA+55B   AL=0  DC=301 
          EJECT 
 CRKABS   TITLE  - CALL CABSPPU AND CSTOREB.
**        CRKABS - CALL CABSPPU AND CSTOREB.
* 
*         ENTRY  -   B7 = ADDRESS OF IB OR OB.
* 
*         EXIT   -   CRKCOND = 1 IF NOT MAINT PATH. 
*                    CRKCOND = 0 IF MAINT PATH. 
* 
*         CALLS  -   CABSPPU, CSTOREB.
* 
*         USES   -   A, NONE. 
*                    X, 0.
*                    B, NONE. 
* 
  
 CRKABS   DATA   0
          RJ     CSTOREB
          SX0    LDC
          SX1    B7 
          LX0    12 
          BX0    X0+X1
          RJ     CABSPPU      FORM LOAD OF DATA 
          RJ     CSTOREB
          EQ     CRKABS 
          EJECT 
 CRKABT   TITLE  CRKABT - CRACK FOR ABT Z.
**        CRKABT - CRACK FOR ABT Z. 
* 
*         ENTRY  - (A3) POINTS TO ABT IN CRKBUF.
*                  (X3) ABT IN DISPLAY CODE.
* 
*         EXIT   - (MODULE) = STORED BINARY FOR ABT ADDRESS.
* 
*         CALLS  - FIND, CLOADC, CPSN, CABSPPU, CSTOREB.
* 
*         USES   - A, 1, 3, 6.
*                  X, 0, 1, 2, 3, 6.
*                  B, NONE. 
* 
  
 CRKABT   DATA   0
          SX0    LDN         DEFAULT IF ABT IS NOT PRESENT
          ZR     X3,CRKABT1  IF END OF STATEMENT
          SX0    LDC
          SA1    DABT 
          BX3    X3-X1
          NZ     X3,COM30    ERROR EXIT IF NEXT ITEM IS NOT ABT 
          SA1    PCRK 
          SX6    X1+B1
          SA6    A1          BUMP POINTER TO CRKBUF 
          SA1    LCOMC
          RJ     FIND        GET Z
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          NZ     X3,COM30    ERROR EXIT IF NOT END OF STATEMENT 
          RJ     CPSN        PROCESS STATEMENT NUMBER 
          LX0    12 
 CRKABT1  SX1    RJM
          SX2    POVL 
          LX0    24 
          LX1    12 
          BX0    X0+X2
          BX0    X0+X1
          RJ     CABSPPU     ABSOLUTIZE PPU ADDRESSES 
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     CRKABT      RETURN 
          EJECT 
 CRKCONN  TITLE  - CRACK FOR CONNECT PARAMETERS.
**        CRKCONN - CRACK FOR CONNECT PARAMETERS. 
* 
*         ENTRY  -   X3 = FIRST WORD OF PARAMETERS. 
* 
*         EXIT   -   NONE.
* 
*         CALLS  -   CSTOREB, CRKPATH, CRKLOD, CABSPPU. 
* 
*         USES   -   A, 1, 3, 6.
*                    X, 0, 1, 3, 6. 
*                    B, 7.
* 
  
 CRKCONN  DATA   0
          SB7    B1 
          SX6    B1 
          SA1    DMAINT 
          BX1    X1-X3
          NZ     X1,CRKCON1  IF NOT MAINT PATH
          MX6    0
          SB7    B0 
          SA1    CRKCONA
          SA3    A3+B1       GET NEXT PARAMETER 
          EQ     CRKCON2
  
 CRKCON1  SA1    CRKCONB
 CRKCON2  BX0    X1 
          SA6    CRKCOND     FLAG MAINT OR NOT MAINT
          RJ     CSTOREB     SAVE GENERATED CODE
          RJ     CRKPATH     CRACK FOR PATH NAME
          SA3    A3+B1
          SA1    DBUFFER     CRACK FOR BUFFER 
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT BUFFER NAME 
          SA1    CRKCONC     CONTROL WORD FOR X 
          RJ     CRKLOD      CRACK FOR X
          SX0    STD+PA+6 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    CRKCONE
          BX0    X1 
          RJ     CABSPPU
          SA1    CRKCOND     GET MAINT FLAG 
          ZR     X1,CRKCON3  IF MAINT PATH
          SA1    DLTA 
          BX1    X1-X3
          NZ     X1,CRKCON3  IF NOT LTA 
          MX0    0
          SA1    CRKCONG
          RJ     CRKLOD      CRACK FOR LTA Y
 CRKCON3  RJ     CSTOREB     SAVE GENERATED CODE
          SA1    CRKCONF
          BX0    X1 
          RJ     CABSPPU
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     CRKCONN     EXIT 
  
 CRKCONA  VFD    12/LDN,12/STD+PA+55B,12/LDC,12/440B,12/STD+PA+1
 CRKCONB  VFD    12/LDN,12/STD+PA+55B,12/LDC,12/405B,12/STD+PA+1
 CRKCONC  VFD    42/0,12/2,3/BUF2,3/REG2   CW FOR X 
 CRKCOND  DATA   0           FLAG FOR MAINT   0=MAINT 1=NORMAL PATH 
 CRKCONE  VFD    36/0,12/LDM,12/SB+50B
 CRKCONF  VFD    36/0,12/STM,12/SB+52B
 CRKCONG  VFD    42/0,12/177B,3/BUF2,3/REG2  CW FOR Y 
          EJECT 
 CRKIB    TITLE  CRKIB - CRACK FOR IB.
**        CRKIB - CRACK FOR IB. 
* 
*         ENETRY  - (A3) POINTS TO IB IN CRKBUF.
*                   (X3) HAS IB IN DISPLAY CODE.
* 
*         EXIT    - MODULE CONTAINS CODE FOR LDC IB, STD PA+3 
* 
*         CALLS  -   CSTOREB, CRKLODC.
* 
*         USES   -  A, 1. 
*                   X, 0, 1.
*                   B, NONE.
* 
  
 CRKIB    DATA   0
          SA1    DTO
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT TO
          SA1    LCOME       CW FOR IB
          RJ     CRKLODC     CRACK AND STORE IB 
          SX0    STD+PA+3 
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     CRKIB       RETURN 
          EJECT 
 CRKLOD   TITLE  - CALL FIND AND CLOAD. 
**        CRKLOD - CALL FIND AND CLOAD. 
* 
*         ENTRY  -   X1 = CONTROL WORD FOR FIND.
* 
*         EXIT   -   NONE.
* 
*         CALLS  -   FIND, CLOAD. 
* 
*         USES   -   A, 3, 6. 
*                    X, 3, 6. 
*                    B, NONE. 
* 
  
 CRKLOD   DATA   0
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK      UPDATE POINTER TO CRKBUF 
          RJ     FIND 
          NG     B2,COM31    IF ERROR IN CRACKING 
          RJ     CLOAD       FORM LOAD OF DATA
          EQ     CRKLOD 
          EJECT 
 CRKLODC  TITLE  - CALL FIND AND CLOADC.
**        CRKLODC - CALL FIND AND CLOADC. 
* 
*         ENTRY  -   X1 = CONTROL WORD FOR FIND.
* 
*         EXIT   -   NONE.
* 
*         CALLS  -   FIND, CLOADC.
* 
*         USES   -   A, 3, 6. 
*                    X, 3, 6. 
*                    B, NONE. 
* 
  
 CRKLODC  DATA   0
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK      UPDATE POINTER TO CRKBUF 
          RJ     FIND 
          NG     B2,COM31    IF ERROR IN CRACKING 
          RJ     CLOADC      FORM LOAD OF DATA
          EQ     CRKLODC
 CRKNRS   TITLE  - CALL CRKNR AND CSTOREB.
**        CRKNRS - CALL CRKNR AND CSTOREB.
* 
*         ENTRY  -   (A3) = CRKBUF ADDRESS OF N.
*                    (X3) = DATA FOR N IN DISPLAY CODE. 
* 
*         EXIT   -   CODE CUT AND STOREDE.
* 
*         CALLS  -   CRKNR, CSTOREB.
* 
*         USES   -   A, NONE. 
*                    X, NONE. 
*                    B, NONE. 
* 
  
 CRKNRS   DATA   0
          RJ     CRKNR       CRACK FOR N
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     CRKNRS 
          EJECT 
 CRKOB    TITLE  CRKOB -CRACK FOR OB. 
**        CRKOB - CRACK FOR OB. 
* 
*         ENTRY   - (A3) POINTS TO OB IN CRKBUF.
*                   (X3) HAS OB IN DISPLAY CODE.
* 
*         EXIT    - MODULE CONTAINS CODE FOR LDC OB, STD PA+3 
* 
*         CALLS  - CSTOREB, CRKLODC.
* 
*         USES    - A, 1, 3, 6. 
*                   X, 0, 1, 3, 6.
*                   B, NONE.
* 
  
 CRKOB    DATA   0
          SA1    DFROM
          BX1    X1-X3
          NZ     X1,COM30    ERROR IF NOT FROM
          SA1    LCOMG       CW FOR OB
          RJ     CRKLODC
          SX0    STD+PA+3 
          RJ     CSTOREB     SAVE GENERATED BINARY
          EQ     CRKOB       RETURN 
          EJECT 
 CRKN     TITLE  CRKN - CRACK FOR VALUE N.
**        CRKN - CRACK FOR VALUE N. 
* 
*         ENTRY  - (A3)=CRKBUF ADDRESS OF N.
*                  (X3)=DATA FOR N IN DISPLAY CODE. 
* 
*         EXIT   - (X0) = LDN/C  STD+PA+2 CUT INT PP CODE.
* 
*         CALLS  - CRKWDS.
* 
*         USES   -  A- 1. 
*                   X- 1. 
*                   B- NONE.
* 
 CRKN     DATA   0
          SA1    LCOMF       CW FOR N 
          RJ     CRKWDS 
          EQ     CRKN        RETURN 
          EJECT 
 CRKNR    TITLE  CRKNR - CRACK FOR VALUE N AS REG/BUF/CONST.
**        CRKNR - CRACK FOR VALUE N AS REG/BUF/CONST. 
* 
*         ENTRY  - (A3)=CRKBUF ADDRESS OF N.
*                  (X3)=DATA FOR N IN DISPLAY CODE. 
* 
*         EXIT   - (X0) = LDN/C  STD+PA+2 CUT INT PP CODE.
* 
*         CALLS  - CRKWDS.
* 
*         USES   -  A- 1. 
*                   X- 1. 
*                   B- NONE.
* 
 CRKNR    DATA   0
          SA1    LCOMD       CW FOR N 
          RJ     CRKWDS 
          EQ     CRKNR       RETURN 
          EJECT 
 CRKPATH  TITLE  CRKPATH - CRACK FOR PATH DA. 
**        CRKPATH - CRACK FOR PATH DA.
* 
*         ENTRY  - (B7) = 0 IF NORMAL PATH. 
*                       = 1 IF MAINTENANCE PATH.
*                       = 2 IF NORMAL OR MAINTENANCE PATH LEGAL.
* 
*         EXIT   - COM30   IF WRONG PATH TYPE.
* 
*         CALLS  - CSTOREB  SAVE GENERATED CODE.
* 
*         USES   - A, 1, 3. 
*                  X, 0, 1, 3, 5. 
*                  B, 7.
* 
  
 CRKPATH  DATA   0
          SA1    DPATH
          BX1    X1-X3
          NZ     X1,COM30    IF NOT PATH
          SA3    A3+B1       GET NEXT PARAMETER 
          MX5    6
          BX1    X5*X3
          LX1    6
          SX1    X1-1RD 
          NZ     X1,COM30    ERROR IF NOT D 
          LX3    6
          BX1    X5*X3
          LX1    6
          LX3    6           POSITION PATH NAME TO LOWER 12 BITS
          MX5    48 
          BX5    X5*X3
          NZ     X5,COM30    IF PATH NAME GREATER THAN 2 CHARACTERS 
          BX5    X1          MOVE CHARACTER TO X5 
          ZR     X1,COM30    ERROR IF NO CHARACTER
          SX0    LDC
          LX0    12 
          SX1    X5-1R0 
          NG     X1,CRKPA3   IF CHARACTER IS A-Z
          SX1    X5-1R+ 
          PL     X1,COM30    ERROR IF NOT 0-9 
          ZR     B7,COM30    ERROR IF 0-9 AND CONN MAINT PATH 
          SX0    LDN
          SX1    X5+25B      CONVERT TO ASCII 
          SB7    B1          FLAG NORMAL PATH 
          EQ     CRKPA4 
  
 CRKPA3   EQ     B7,B1,COM30 ERROR IF NOT MAINT PATH
          SX1    X5+100B
 CRKPA4   BX0    X0+X1
          SX1    STD+PA+4 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB
          EQ     CRKPATH     RETURN 
          EJECT 
 CRKRS    TITLE  CRKRS - CRACK FOR R/S. 
**        CRKRS - CRACK FOR R/S.
* 
*         ENTRY  - (A3) = CRKBUF ADDRESS OF VALUE R-1.
* 
*         EXIT   - CODE CUT FOR R/S INTO PA+4 AND PA+5. 
* 
*         CALLS  - FINDOCT, CVTHXB, FIND, STOREB, CLOAD.
* 
*         USES   - A-  1, 3, 6. 
*                   X- 0, 1, 2, 3, 4, 5, 6. 
*                  B-  NONE.
* 
  
 CRKRS    DATA   0
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          RJ     FINDOCT     CONVERT VALUE R
          BX6    X5 
          PL     X5,CRKRS4   IF NO ERRORS 
          BX5    X3 
          RJ     CVTHXB      CONVERT HEX DIGITS 
          NZ     X4,CRKRS0   IF NOT HEX 
          BX5    X6 
          EQ     CRKRS4 
  
 CRKRS0   SA1    LCOMB       CW FOR R/S 
          RJ     FIND 
          NG     B2,COM31    IF CONVERT ERROR 
          RJ     CLOAD
          SX0    STD+PA+4 
          SX1    X3-1R/ 
          ZR     X1,CRKRS1   IF DISPLAY CODE /
          SX1    B1 
          BX0    X0+X1       CHANGE TO STD+PA+5 
          RJ     CSTOREB
          SX0    LDN+0
          LX0    12 
          SX1    STD+PA+4 
          EQ     CRKRS2 
  
 CRKRS1   RJ     CSTOREB
          SA1    LCOMB       CW FOR R/S 
          RJ     CRKLOD      CRACK FOR R/S
          SX1    STD+PA+5 
 CRKRS2   BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     CRKRS
  
 CRKRS4   MX1    -16
          BX1    X1*X5
          NZ     X1,COM30    ERROR IF VALUE TOO LARGE 
          MX4    -8 
          SX0    LDC
          LX0    12 
          AX6    8           GET UPPER 8 BITS OF ADDRESS
          BX1    -X4*X6 
          BX0    X0+X1
          MX2    -6 
          BX2    X2*X6
          NZ     X2,CRKRS5   IF GREATER THAN 77 OCTAL 
          SX0    X1+LDN 
 CRKRS5   SX1    STD+PA+4 
          LX0    12 
          BX0    X0+X1
          BX3    -X4*X5 
          MX2    -6 
          BX2    X2*X3
          SX1    X3+LDN 
          ZR     X2,CRKRS6   IF LOWER 8 BITS OF N LESS THAN 100B
          LX0    12 
          SX1    LDC
          BX0    X0+X1
          BX1    X3 
 CRKRS6   LX0    12 
          BX0    X0+X1
          RJ     CSTOREB
          SX0    STD+PA+5 
          RJ     CSTOREB     SAVE GENERATED CODE  STD PA+5
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        UPDATE POINTER TO CRKBUF 
          EQ     CRKRS       RETURN 
          EJECT 
 CRKWDS    TITLE  - CRACK FOR WORDS.
**        CRKWDS - CRACK FOR WORDS. 
* 
*         ENTRY  -   (A3) = POINTER TO CRKBUF.
*                    (X1) = CONTROL WORD FOR FIND.
* 
*         EXIT   -   (A3) = INCREMENTED.
*                    COM31 IF NOT FOUND.
* 
*         CALLS  -   FIND, CLOAD. 
* 
*         USES   -   A, 1.
*                    X, 1, 1. 
*                    B, NONE. 
* 
  
 CRKWDS    DATA   0 
          RJ     FIND 
          NG     B2,COM31    ERROR IF NOT FOUND 
          RJ     CLOAD       FORM LOAD
          SX0    STD+PA+2 
          BX4    X2 
          SA1    DWORDS 
          BX1    X1-X3
          ZR     X1,CRKWDS   RETURN IF WORDS
          SA1    DWDS 
          BX1    X1-X3
          NZ     X1,COM30    IF NOT WDS 
          EQ     CRKWDS      RETURN 
          EQ     CRKWDS 
          EJECT 
