*COMDECK MALETP1
          EJECT 
          QUAL   MALETP1
          IFNE   CMSE,0,1 
          USE    MODD 
          VFD    30/1,6/KEY10,6/KEY2,18/0 CW FOR P1 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 
          DATA   500B        MAX VALUE FOR OB FOR P1 OVERLAY (66X)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0OBFWA
          DATA   6130B             RELATIVE FWA OF OB 
          USE    *
          IFNE   CMSE,0,1 
          USE    P0IB 
          DATA   500B        MAX VALUE FOR IB FOR P1 OVERLAY (66X)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0IBFWA
          DATA   5430B             RELATIVE FWA OF IB 
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SB 
          DATA   34B         MAX VALUE FOR SB FOR P1 OVERLAY (66X)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SBFWA
          DATA   6630B             RELATIVE FWA OF SB 
          USE    *
  
*         P1 ( 66X TAPE) PRODUCT OVERLAY ENTRY POINTS.
  
 RELP1    EQU    POVL 
 RESP1    EQU    RELP1+4
 BKSPP1   EQU    RESP1+4
 EOFP1    EQU    BKSPP1+4 
 ERASEP1  EQU    EOFP1+4
 FSPP1    EQU    ERASEP1+4
 MARGP1   EQU    FSPP1+4
 READP1   EQU    MARGP1+4 
 RESETP1  EQU    READP1+4 
 REWP1    EQU    RESETP1+4
 STATP1   EQU    REWP1+4
 TIMEP1   EQU    STATP1+4 
 UNLP1    EQU    TIMEP1+4 
 WAITP1   EQU    UNLP1+4
 WRITEP1  EQU    WAITP1+4 
          IFNE   CMSE,0,1 
          USE    PKEY 
          VFD    24/0,18/LKEY10,18/TKEY10 
 KEY10    EQU    *-PKEY+PKEYOFF    LEGAL P1 (66X TAPE) I/O
          VFD    24/0,18/LKEY13,18/TKEY13 
 KEY13    EQU    *-PKEY+PKEYOFF    LEGAL DENSITY OPTIONS FOR TAPE 
          VFD    24/0,18/LKEY14,18/TKEY14 
 KEY14    EQU    *-PKEY+PKEYOFF    LEGAL MODE OPTIONS FOR TAPE
          VFD    24/0,18/LKEY15,18/TKEY15 
 KEY15    EQU    *-PKEY+PKEYOFF    LEGAL PARITY OPTIONS FOR TAPE
          VFD    24/0,18/LKEY16,18/TKEY16 
 KEY16    EQU    *-PKEY+PKEYOFF    LEGAL BKSP OPTIONS FOR TAPE
          VFD    24/0,18/LKEY17,18/TKEY17 
 KEY17    EQU    *-PKEY+PKEYOFF    LEGAL X MARGINS FOR TAPE 
          VFD    24/0,18/LKEY18,18/TKEY18 
 KEY18    EQU    *-PKEY+PKEYOFF    LEGAL XLATE OPTIONS FOR TAPE 
          VFD    24/0,18/LKEY19,18/TKEY19 
 KEY19    EQU    *-PKEY+PKEYOFF    LEGAL 1 MARGINS FOR TAPE 
          USE    *
  
  
*         LEGAL HIGH-LEVEL I/O STATEMENTS FOR 66X TAPE. 
  
 TKEY10   VFD    42/4LBKSP,18/P1BKSP
          VFD    42/7LENDFILE,18/P1EOF
          VFD    42/5LERASE,18/P1ERASE
          VFD    42/6LFSPACE,18/P1FSP 
          VFD    42/7LMARGINS,18/P1MARG 
          VFD    42/4LREAD,18/P1READ
          VFD    42/3LREL,18/P1REL
          VFD    42/3LRES,18/P1RES
          VFD    42/5LRESET,18/P1RESET
          VFD    42/6LREWIND,18/P1REW 
          VFD    42/6LSTATUS,18/P1STAT
          VFD    42/4LTIME,18/P1TIME
          VFD    42/6LUNLOAD,18/P1UNL 
          VFD    42/6LWAITNB,18/P1WAIT
          VFD    42/5LWRITE,18/P1WRITE
 LKEY10   EQU    *-TKEY10 
  
*         LEGAL KEY VALUES FOR THE 66X RES STATEMENT. 
  
 TKEY13   VFD    42/3L556,18/0         LEGAL 66X DENSITY
          VFD    42/3L800,18/1
          VFD    42/4L1600,18/2 
          VFD    42/3L200,18/3
 LKEY13   EQU    *-TKEY13 
  
  
 TKEY14   VFD    42/4L6BIT,18/0        LEGAL 66X MODES
          VFD    42/4LPACK,18/1 
          VFD    42/3LCPU,18/2
 LKEY14   EQU    *-TKEY14 
  
 TKEY15   VFD    42/3LODD,18/0         LEGAL 66X/67X PARITY 
          VFD    42/4LEVEN,18/1 
 LKEY15   EQU    *-TKEY15 
          EJECT 
  
 TKEY16   VFD    42/1LC,18/1           LEGAL 66X BKSP OPTIONS 
          VFD    42/2LWR,18/2 
          VFD    42/3LWRC,18/3
          VFD    42/3LWRE,18/4
          VFD    42/4LWREC,18/5 
          VFD    42/1LL,18/6
 LKEY16   EQU    *-TKEY16 
  
 TKEY17   VFD    42/6LNORMAL,18/0      LEGAL 66X MARGINS OPTIONS
          VFD    42/4LHIGH,18/1        FOR FIRST PARAMETER
          VFD    42/3LLOW,18/2
          VFD    42/5LHYPER,18/3
 LKEY17   EQU    *-TKEY17 
  
 TKEY18   VFD    42/1L0,18/0           LEGAL 66X XLATE OPTIONS
          VFD    42/1L1,18/1
          VFD    42/1L2,18/2
          VFD    42/1L3,18/3
          VFD    42/1L7,18/7
 LKEY18   EQU    *-TKEY18 
  
 TKEY19   VFD    42/4LINCR,18/10B      LEGAL 66X MARGINS OPTIONS
          VFD    42/4LDECR,18/20B      FOR SECOND PARAMETER 
          VFD    42/6LNORMAL,18/00B 
 LKEY19   EQU    *-TKEY19 
          EJECT 
 P1BKSP   TITLE  P1BKSP - PROCESS THE TAPE STATEMENT BKSP.
**        P1BKSP- PROCESS THE TAPE STATEMENT BKSP.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1BKSP PROCESS THE TAPE STATEMENT BKSP. FORMATS AS FOLLOWS; 
* 
*         BKSP
*         BKSP, ABT Z 
*         BKSP Y
*         BKSP Y, ABT Z 
*         BKSP Y LONG 
*         BKSP Y LONG, ABT Z
* 
*              VALUES FOR Y;
* 
*              C    - CONTROL BACKSPACE 
*              L    - LONG BACKSPACE
*              WR   - WRITE REPOSITION
*              WRE  - WRITE REPOSITION TO ERASE 
*              WRC  - WRITE REPOSITION USING CONTROL BACKSPACE
*              WREC - WRITE REPOSITION TO ERASE USING CONTROL BACKSPACE 
* 
* 
*         PPU CODE GENERATE IS. 
* 
*       --------------------------------------------------------------- 
*       I   NONE I    C   I    WR  I   WRC  I   WRE  I   WREC I  L    I 
*       I        I        I        I        I        I        I       I 
*       I--------+--------+--------+--------+--------+----------------I 
*       I LDN 0  I LDN 1  I LDN 2  I LDN 3  I LDN 4  I LDN 5  I LDN 6 I 
*   *Y  I STD PA I STD PA I STD PA I STD PA I STD PA I STD PA I STD PAI 
*       I-------------------------------------------------------------I 
*       I                     LDN 0                                   I 
*   NO  I                     RJM BKSPP1                              I 
*    Z  I-------------------------------------------------------------I 
*       I                     LDC LINE/ADDR                           I 
*    Z  I                     RJM BKSPP1                              I 
*       --------------------------------------------------------------- 
*      * IF THE KEYWORD LONG IS DEFINED, 10B IS ADDED TO THE VALUE
*        GENERATED BY THE LDN INSTRUCTION.
* 
*         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 -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 0, 1.
*                B - 7. 
* 
 P1BKSP   SX0    LDN
          ZR     X3,P1B1     IF END OF STATEMENT
          SA1    DABT 
          BX1    X1-X3
          ZR     X1,P1B1     IF Y IS NOT SPECIFIED
          SA1    P1CA 
          RJ     FIND        GET Y
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          SX0    B2+LDN 
          SA1    DLONG
          BX1    X1-X3
          NZ     X1,P1B1     IF LONG IS NOT DEFINED 
          SX0    X0+10B      INDICATE LONG IS DEFINED 
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
 P1B1     SX1    STD+PA 
          LX0    12 
          BX0    X0+X1       CODE = LDN Y  STD BA 
          RJ     CSTOREB     SAVE CODE GENERATED
          SB7    BKSPP1 
          EQ     P1C         ENTER COMMON SEQUENCE
          EJECT 
 P1EOF    TITLE  P1EOF - PROCESS THE TAPE ENDFILE STATEMENT.
**        P1EOF - PROCESS THE TAPE ENDFILE STATEMENT. 
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1EOF - PROCESS THE TAPE ENDFILE STATEMENT. FORMATS AS
*         FOLLOWS;
* 
*         ENDFILE 
*         ENDFILE, ABT Z
* 
*         PPU CODE GENERATED IS;   NO Z -  LDN 0          RJM EOFP1 
*                                    Z  -  LDC LINE/ADDR  RJM EOFP1 
* 
*         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. 
* 
 P1EOF    SB7    EOFP1
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1ERASE  TITLE  P1ERASE- PROCESS THE TAPE ERASE STATEMENT. 
**        P1ERASE- PROCESS THE TAPE ERASE STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1ERASE - REOCESS THE TAPE ERASE STATEMENT. FORMATS AS
*         AS FOLLOWS; 
* 
*         ERASE 
*         ERASE, ABT Z
* 
*         PPU CODE GENERATED IS;   NO Z -  LDN 0          RJM ERASEP1 
*                                    Z  -  LDC LINE/ADDR  RJM ERASEP1 
* 
*         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. 
* 
 P1ERASE  SB7    ERASEP1
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1FSP    TITLE  P1FSP- PROCESS THE TAPE FSPACE STATEMENT.
**        P1FSP- PROCESS THE TAPE FSPACE STATEMENT. 
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1FSP- PROCESS THE TAPE FSPACE STATEMENT. FORMATS AS FOLLOWS; 
* 
*         FSPACE
*         FSPACE, ABT Z 
* 
*         PPU CODE GENERATED IS;   NO Z -  LDN 0          RJM FSPP1 
*                                    Z  -  LDC LINE/ADDR  RJM FSPP1 
* 
*         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. 
* 
 P1FSP    SB7    FSPP1
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1MARG   TITLE  P1MARG - PROCESS THE TAPE MARGINS STATEMENT. 
**        P1MARG - PROCESS THE TAPE MARGINS STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1MARG-PROCESS THE TAPE MARGINS STATEMENT. FORMAT AS FOLLOWS; 
* 
*         MARGINS X 
*         MARGINS X,Y 
* 
*            X MAY BE ANY REGISTER OR ONE OF THE FOLLOWING KEYNAMES;
* 
*           NORMAL- USE NORMAL CLIP READ LEVEL       = X0 
*           HIGH  - USE HIGH CLIP READ LEVEL         = X1 
*           LOW   - USE LOW CLIP READ LEVEL          = X2 
*           HYPER - USE HYPER CLIP READ LEVEL        = X3 
* 
*               Y MAY BE CONTAINED IN THE REGISTER WITH X, OR ONE OF
*               THE FOLLOWING KEYNAMES. 
* 
*           INCR  - INCREASE THE TIME OF DATA STROBE = 1X 
*           DECR  - DECREASE THE TIME OF DATA STROBE = 2X 
* 
* 
*               IF A REGISTER IS USED TO SPECIFY MARGINS, ONLY THE
*               LOWER 6 BITS ARE USED AND THE OCTAL VAULES REPRESENTED
*               BY THE KEYNAMES ABOVE MUST BE USED. 
* 
* 
*         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 -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1. 
*                X - 0, 1, 2. 
*                B - NONE.
* 
 P1MARG   ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SA1    P1CB 
          RJ     FIND        GET X
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          SX0    B2+LDN      SAVE VALUE 
          ZR     B3,P1M1     IF NOT A REGISTER
          SX0    B3+LDD 
          NZ     X3,COM30    ERROR EXIT IF NOT END OF STATEMENT 
          EQ     P1M2 
  
 P1M1     ZR     X3,P1M2     IF END OF STATEMENT
          SA1    P1CC 
          RJ     FIND        GET Y
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          NZ     X3,COM30    ERROR EXIT IF NOT END OF STATEMENT 
          SX2    B2 
          BX0    X0+X2       MERGE X/Y
 P1M2     SA1    P1MA 
          LX0    24 
          BX0    X0+X1
          RJ     CABSPPU           ABSOLUTIZE PPU ADDRESSES 
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     COM10       EXIT TO COMPILER 
  
 P1MA     VFD    36/0,12/RJM,12/MARGP1
          EJECT 
 P1READ   TITLE  P1READ - PROCESS THE TAPE READ STATEMENT.
**        P1READ - PROCESS THE TAPE READ STATEMENT. 
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1READ - PROCESS THE TAPE READ STATEMENT. FORMATS AS FOLLOWS; 
* 
*         READ
*         READ, ABT Z 
*         READ Y           WHERE Y IS A KEYNAME OF FWD OR REV 
*         READ Y, ABT Z 
* 
*         PPU CODE GENERATED IS;
* 
*                ------------------------ 
*                I   FWD    I    REV    I 
*                I----------+-----------I 
*                I  LDN 0   I  LDN 1    I 
*             Y  I  STD PA  I  STD PA   I 
*                I----------------------I 
*            NO  I        LDN 0         I 
*             Z  I        RJM READP1    I 
*                I----------------------I 
*                I        LDC LINE/ADDR I 
*                I        RJM READP1    I 
*                ------------------------ 
* 
*         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- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 2, 3, 6.
*                X - 0, 1, 2, 3, 6. 
*                B - 7. 
* 
 P1READ   SB7    READP1      ENTRY POINT FOR READ 
 P1RRD    SX0    LDN
          ZR     X3,P1R0     IF END OF STATEMENT
          SA1    DABT 
          BX1    X1-X3
          ZR     X1,P1R0     IF Y IS NOT SPECIFIED
          SA1    DFWD 
          SA2    DREV 
          BX1    X1-X3
          ZR     X1,P1R      IF FWD 
          BX2    X2-X3
          SX0    X0+B1       SET CODE TO REVERSE
          NZ     X2,COM30    ERROR EXIT IF NOT FWD OR REV 
 P1R      SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
 P1R0     LX0    12 
          SX1    STD+PA 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1RESET  TITLE  P1RESET - PROCESS THE TAPE RESET STATEMENT.
**        P1RESET - PROCESS THE TAPE RESET STATEMENT. 
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1RESET- PROCESS THE TAPE RESET STATEMENT. FORMATS AS FOLLOWS;
* 
*         RESET 
*         RESET, ABT Z
*         PPU CODE GENERATED IS;  NO Z - LDN 0          RJM RESETP1 
*                                   Z  - LDC LINE/ADDR  RJM RESETP1 
*         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. 
* 
 P1RESET  SB7    RESETP1
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1REL    TITLE  P1REL  - PROCESS THE TAPE REL STATEMENT. 
**        P1REL  - PROCESS THE TAPE REL STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1REL  - PROCESS THE TAPE REL STATEMENT. FORMATS AS FOLLOWS;
* 
*         REL 
*         REL, ABT Z
* 
*         PPU CODE GENERATED IS;  NO Z - LDN 0          RJM RELP1 
*                                   Z  - LDC LINE/ADDR  RJM RELP1 
*         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. 
* 
 P1REL    SB7    RELP1
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1RES    TITLE  P1RES - PROCESS THE TAPE RES STATEMENT.
**        P1RES - PROCESS THE TAPE RES STATEMENT. 
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1RES - PROCESS THE TAPE RES STATEMENT.  FORMATS AS FOLLOWS;
* 
*         RES U 
*         RES U , ABT Z 
*         RES PARITY=V,XLATE=W,MODE=X,DENSITY=Y 
*         RES PARITY=V,XLATE=W,MODE=X,DENSITY=Y,ABT Z 
* 
*             U        V        W        X        Y        Z
*            ---      ---      ---      ---      ---      --- 
*            ANY      ODD      0-3     6BIT      556     0-77 
*         REGISTER   EVEN       7      PACK      800
*                                      CPU      1600
*                                                200
* 
*         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 -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 2, 3, 6. 
*                B - 6, 7.
* 
 P1RES    ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SA1    DPARITY
          BX1    X3-X1
          SB7    B0          CLEAR LOOP COUNTER 
          ZR     X1,P1R1     IF ALL OPTIONS PROVIDED
          SA1    P1RU 
          RJ     FIND        GET U
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD       GENERATE LOAD CODE 
          EQ     P1R3        GO STORE DATA AND ENTER COMMON SEQ.
  
 P1R1     SA1    B7+P1RA
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NOT EXPECTED KEYNAME 
          SA3    A3+B1       NEXT ITEM FROM CRKBUF
          SX3    X3-1R= 
          NZ     X3,COM30    IF NEXT ITEM IS NOT =
          SX6    A3+B1
          SA6    PCRK        BUMP POINTER TO CRKBUF BY 2
          SA1    B7+P1RB
          RJ     FIND        GET VALUE FOR OPTION 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          LX0    3
          SX2    B2 
          BX0    X0+X2       ADD VALUE TO OPTIONS WORD
          SB7    B7+B1
          SB6    B7-4 
          NZ     B6,P1R1     IF LOOP NOT DONE 4 TIMES 
          SX1    X0-100B
          SX2    LDN
          NG     X1,P1R2     IF 6 BIT OPTIONS 
          SX2    LDC
          LX2    12 
 P1R2     BX0    X0+X2       ADD LOAD INSTRUCTION CODE
 P1R3     SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          SB7    RESP1
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
  
*         EXPECTED ORDER OF KEYNAMES
  
 P1RA     VFD    60/6LPARITY
          VFD    60/5LXLATE 
          VFD    60/4LMODE
          VFD    60/7LDENSITY 
  
*         ORDER OF CONTROL WORDS FOR KEYNAME VALUES 
  
 P1RB     VFD    36/0,6/KEY15,18/0           CONTROL WORD FOR V 
          VFD    36/0,6/KEY18,18/0           CONTROL WORD FOR W 
          VFD    36/0,6/KEY14,18/0           CONTROL WORD FOR X 
          VFD    36/0,6/KEY13,18/0           CONTROL WORD FOR Y 
  
 P1RU     VFD    57/0,3/REG2                 CONTROL WORD FOR U 
          EJECT 
 P1REW    TITLE  P1REW - PROCESS THE TAPE REWIND STATEMENT. 
**        P1REW - PROCESS THE TAPE REWIND STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1REW - PROCESS THE TAPE REWIND STATEMENT.  FORMATS AS
*                 FOLLOWS;
* 
*         REWIND
*         REWIND, ABT Z 
* 
*         PPU CODE GENERATED IS;  NO Z - LDN 0          RJM REWP1 
*                                   Z  - LDC LINE/ADDR  RJM REWP1 
* 
* 
*         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. 
* 
 P1REW    SB7    REWP1
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1STAT   TITLE  P1STAT - PROCESS THE TAPE STATUS STATEMENT.
**        P1STAT - PROCESS THE TAPE STATUS STATEMENT. 
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1STAT - PROCESS THE TAPE STATUS STATEMENT. FORMATS AS
*                  FOLLOWS; 
* 
*         STATUS
*         STATUS, ABT Z 
* 
*         PPU CODE GENERATED IS;  NO Z - LDN 0          RJM STATP1
*                                   Z  - LDC LINE/ADDR  RJM STATP1
* 
*         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- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 3, 6. 
*                X - 0, 1, 3, 6.
*                B - 2, 3, 7. 
* 
 P1STAT   SX0    LDN
          SB2    B0 
          SB3    P1SAL       LENGTH OF TABLE
          ZR     X3,COM30    ERROR EXIT IF STATUS TYPE NOT DEFINED
 P1S1     SA1    P1SA+B2
          BX1    X1-X3
          ZR     X1,P1S2     IF KEYWORD FOUND 
          SX0    X0+B1       BUMP CODE FLAG 
          SB2    B2+B1
          NE     B2,B3,P1S1  IF ALL KEYWORDS NOT TESTED 
          EQ     COM30       ERROR EXIT IF KEYWORD NOT FOUND
  
 P1S2     LX0    12 
          SX1    STD+PA 
          BX0    X0+X1       CODE = LDN FLAG   STD PA 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          SB7    STATP1      ENTRY POINT
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
  
 P1SA     VFD    60/7LGENERAL 
          VFD    60/6LDETAIL
          VFD    60/10LCUMULATIVE 
 P1SAL    EQU    *-P1SA      LENGTH OF KEYWORD TABLE
          EJECT 
 P1TIME   TITLE  P1TIME - PROCESS THE TAPE TIME STATEMENT.
**        P1TIME - PROCESS THE TAPE TIME STATEMENT. 
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1TIME - PROCESS THE TAPE TIME STATEMENT. FORMATS AS FOLLOWS; 
* 
*         TIME X GAPS TO Y         WHERE X IS THE NUMBER OF GAPS TO 
*         TIME X GAPS TO Y, ABT Z  TEST.  IT MAY BE ANY REGISTER OR 
*                                  0-62 OCTAL.  Y IS THE INPUT BUFFER 
*                                  ADDRESS FOR THE FIRST GAP TIME.
*         PPU CODE GENERATED IS;
* 
*       ------------------------------------------------------------- 
*       I           I           I           I           I           I 
*       I REGISTER  I  BUFFER   I  VALUE    I BUF(REG)  I BUF(VAL)  I 
*       I           I           I           I           I           I 
*       I-----------+-----------+-----------+-----------+-----------I 
*       I           I           I           I           I           I 
*   X   I  LDD X    I ILLEGAL   I  LDN X    I  ILLEGAL  I  ILLEGAL  I 
*       I  STD PA   I           I  STD PA   I           I           I 
*       I-----------+-----------+-----------+-----------+-----------I 
*       I           I LDC BUF   I           I LDD REG   I           I 
*   Y   I  ILLEGAL  I STD PA+1  I  ILLEGAL  I ADC BUF   I LDC BUF+Y I 
*       I           I           I           I STD PA+1  I STD PA+1  I 
*       I-----------------------------------------------+-----------I 
*  NO   I                       LDN 0                               I 
*   Z   I                       RJM TIMEP1                          I 
*       I-----------------------------------------------------------I 
*   Z   I                       LDC LINE/ADDR                       I 
*       I                       RJM TIMEP1                          I 
*       ------------------------------------------------------------- 
* 
*         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 -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         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. 
* 
 P1TIME   SB7    TIMEP1      ENTRY POINT FOR TIME 
 P1TIM    ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SA1    P1TA 
          RJ     FIND        GET X
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SA1    DGAPS
          BX3    X3-X1
          NZ     X3,COM30    ERROR EXIT IF NEXT ITEM IS NOT GAPS
          SA3    A3+B1
          SA1    DTO
          BX3    X3-X1
          NZ     X3,COM30    ERROR EXIT IF NEXT ITEM IS NOT TO
          SX6    A3+B1
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          RJ     CLOAD       GENERATE LOAD X CODE 
          LX0    12 
          SX1    STD+PA 
          BX0    X0+X1       CODE = LOAD X  STD PA
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    P1TB 
          RJ     FIND        GET Y
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOADC      GENERATE 
          SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1       CODE = LOAD CONSTANT Y  STD PA+1 
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
  
 P1TA     VFD    42/0,12/62B,3/0,3/REG2    CONTROL WORD FOR X 
 P1TB     VFD    54/0,3/BUF4,3/0           CONTROL WORD FOR Y 
          EJECT 
 P1UNL    TITLE  P1UNL -  PROCESS THE TAPE UNLOAD STATEMENT.
**        P1UNL -  PROCESS THE TAPE UNLOAD STATEMENT. 
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1UNL - PROCESS THE TAPE UNLOAD STATEMENT. FORMATS AS 
*                 FOLLOWS;
* 
*         UNLOAD
*         UNLOAD, ABT Z 
* 
*         PPU CODE GENERATED IS;  NO Z - LDN 0          RJM UNLP1 
*                                   Z  - LDC LINE/ADDR  RJM UNLP1 
* 
*         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. 
* 
 P1UNL    SB7    UNLP1
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1WAIT   TITLE  P1WAIT- PROCESS THE TAPE WAITNB STATEMENT. 
**        P1WAIT- PROCESS THE TAPE WAITNB STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1WAIT- PROCESS THE TAPE WAITNB STATEMENT. FORMATS AS 
*                 FOLLOWS;
* 
*         WAITNB
*         WAITNB, ABT Z 
* 
*         PPU CODE GENERATED IS;  NO Z - LDN 0          RJM WAITP1
*                                   Z  - LDC LINE/ADDR  RJM WAITP1
* 
*         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. 
* 
 P1WAIT   SB7    WAITP1 
          EQ     P1C         ENTER COMMON P1 SEQUENCE 
          EJECT 
 P1WRITE  TITLE  P1WRITE- PROCESS THE TAPE WRITE STATEMENT. 
**        P1WRITE- PROCESS THE TAPE WRITE STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P1WRITE- PROCESS THE TAPE WRITE STATEMENT. FORMATS AS 
*                  FOLLOWS; 
* 
*         WRITE 
*         WRITE, ABT Z
*         WRITE LONG
*         WRITE LONG, ABT Z 
* 
*         PPU CODE GENERATED IS;  NO LONG-  LDN 0    STD  PA
*                                  LONG  -  LDN 1    STD  PA
* 
*                                   NO Z -  LDN 0          RJM WRITEP1
*                                     Z  -  LDC LINE/ADDR  RJM WRITEP1
*         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 -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CPSN   - PROCESS THE STATEMENT NUMBERS.
*                            CSTOREB- STORE GENERATED CODE. 
* 
*         DATA AREAS USED -  CRKBUF - WORD STRING OF SOURCE STATEMENT.
*                            MODULE - BINARY CODE GENERATED.
* 
*         USES   A - 1, 6.
*                X - 0, 1, 2, 3, 6. 
*                B - NONE.
* 
 P1WRITE  SB7    WRITEP1
          SA1    DLONG
          SX0    LDN
          BX1    X1-X3
          NZ     X1,P1WR1    IF LONG IS NOT SPECIFIED 
          SX0    X0+B1
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
 P1WR1    SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
 P1C      SX0    LDN
          ZR     X3,P1C1     IF END OF STATEMENT
          SX0    LDC
          LX0    12 
 P1C1     SX1    B7          PPU ENTRY ADDRESS
          SX2    RJM
          LX0    24 
          LX2    12 
          BX0    X0+X1
          BX0    X0+X2
          RJ     CABSPPU           ABSOLUTIZE PPU ADDRESSES 
          ZR     X3,P1C2     IF END OF STATEMENT
          SA1    DABT 
          BX3    X3-X1
          NZ     X3,COM30    ERROR EXIT IF NOT ABT
          SA1    PCRK 
          SX6    X1+B1
          SA6    A1          BUMP POINTER TO CRKBUF 
          SA1    P1CZ 
          RJ     FIND        GET STATEMENT NUMBER 
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          NZ     X3,COM30    ERROR EXIT IF NOT END OF STATEMENT 
          RJ     CPSN        PROCESS STATEMENT NUMBER 
 P1C2     RJ     CSTOREB     SAVE GENERATED CODE
          EQ     COM10       EXIT TO COMPILER 
  
 P1CA     VFD    36/0,6/KEY16,18/0          CW FOR BKSP OPTIONS 
 P1CB     VFD    36/0,6/KEY17,15/0,3/REG2   CW FOR MARGINS OPTIONS X
 P1CC     VFD    36/0,6/KEY19,18/0          CW FOR MARGING OPTIONS Y
 P1CZ     VFD    42/0,12/77B,6/0            CW FOR Z
