*COMDECK MALETP2
          EJECT 
          QUAL   MALETP2
          IFNE   CMSE,0,1 
          USE    MODD 
          VFD    30/1,6/KEY11,6/KEY2,18/0 CW FOR P2 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   601B        MAX VALUE FOR OB FOR P2 OVERLAY (580)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0OBFWA
          DATA   6070B             RELATIVE FWA OF OB 
          USE    *
          IFNE   CMSE,0,1 
          USE    P0IB 
          DATA   500B        MAX VALUE FOR IB FOR P2 OVERLAY (580)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0IBFWA
          DATA   5370B             RELATIVE FWA OF IB 
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SB 
          DATA   6           MAX VALUE FOR SB FOR P2 OVERLAY (580)
          USE    *
          IFNE   CMSE,0,1 
          USE    P0SBFWA
          DATA   6671B             RELATIVE FWA OF SB 
          USE    *
  
*         P2 ( 580/512 PRINTER) PRODUCT OVERLAY ENTRY POINTS. 
  
 RELP2    EQU    POVL 
 RESP2    EQU    RELP2+4
 COUNTP2  EQU    RESP2+4
 EJECTP2  EQU    COUNTP2+4
 FILLP2   EQU    EJECTP2+4
 PRINTP2  EQU    FILLP2+4 
 READP2   EQU    PRINTP2+4
 SELP2    EQU    READP2+4 
 SHIFTP2  EQU    SELP2+4
 SPACEP2  EQU    SHIFTP2+4
 STATP2   EQU    SPACEP2+4
 TIMEP2   EQU    STATP2+4 
 WAITP2   EQU    TIMEP2+4 
          IFNE   CMSE,0,1 
          USE    PKEY 
          VFD    24/0,18/LKEY11,18/TKEY11 
 KEY11    EQU    *-PKEY+PKEYOFF 
          USE    *
  
*         LEGAL HIGH-LEVEL I/O STATEMENTS FOR 512/580 PRINTER.
  
 TKEY11   VFD    42/5LCOUNT,18/P2COUNT
          VFD    42/5LEJECT,18/P2EJECT
          VFD    42/4LFILL,18/P2FILL
          VFD    42/5LPRINT,18/P2PRINT
          VFD    42/4LREAD,18/P2READ
          VFD    42/3LREL,18/P2REL
          VFD    42/3LRES,18/P2RES
          VFD    42/6LSELECT,18/P2SEL 
          VFD    42/5LSHIFT,18/P2SHIFT
          VFD    42/5LSPACE,18/P2SPACE
          VFD    42/6LSTATUS,18/P2STAT
          VFD    42/4LTIME,18/P2TIME
          VFD    42/6LWAITNB,18/P2WAIT
 LKEY11   EQU    *-TKEY11 
          EJECT 
 P2COUNT  TITLE  P2COUNT - PROCESS THE PRINTER COUNT STATEMENT. 
**        P2COUNT - PROCESS THE PRINTER COUNT STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2COUNT - PROCESS THE PRINTER COUNT STATEMENT. FORMATS AS 
*         FOLLOWS;
* 
*         COUNT 
* 
*         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. 
*                            CLOADC - GEN. LOAD CONST. INSTRUCTIONS 
* 
*         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. 
* 
 P2COUNT  SA1    DTSSP
          BX1    X1-X3
          SX0    LDN         SET CODE FOR COUNT TSS PULSES
          ZR     X1,P2C1     IF NOT COUNT TSS PULSES
          SA1    DE1
          BX1    X1-X3
          SX0    X0+B1       SET CODE FOR COUNT E1 PULSES 
          NZ     X1,COM30    ERROR EXIT IF NOT TSS OR E1
 P2C1     SX1    STD+PA 
          LX0    12 
          BX0    X0+X1       CODE = LDN FLAG  STD PA
          SA3    A3+B1
          SA1    DPULSES
          BX3    X3-X1
          NZ     X3,COM30    ERROR EXIT IF NEXT ITEM IS NOT PULSES
          RJ     CSTOREB     SAVE GENERATED CODE
          SB7    COUNTP2     SET ENTRY ADDRESS IN PRODUCT OVERLAY 
 P2C2     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 
          SA1    P2CA 
          RJ     FIND        GET Y
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOADC      GENERATE LOAD CONSTANT CODE
          LX0    12 
          SX1    STD+PA+1 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     P1C         ENTER COMMON SEQUENCE
  
 P2CA     VFD    54/0,3/BUF4,3/0       CW FOR Y  (IB) 
          EJECT 
 P2EJECT  TITLE  P2EJECT - PROCESS THE PRINTER EJECT STATEMENT. 
**        P2EJECT - PROCESS THE PRINTER EJECT STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2EJECT - PROCESS THE PRINTER EJECT STATEMENT. FORMAT 
*         AS FOLLOWS;  EJECT
* 
*         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. 
* 
 P2EJECT  SB7    EJECTP2     ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
          EJECT 
 P2FILL   TITLE  P2FILL - PROCESS THE PRINTER FILL STATEMENT. 
**        P2FILL - PROCESS THE PRINTER FILL STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2FILL - PROCESS THE PRINTER FILL STATEMENT. FORMATS AS 
*                  FOLLOWS; 
* 
*         FILL
* 
*         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. 
* 
 P2FILL   SA1    DIMAGE 
          SA2    DPFC6
          BX1    X3-X1
          SX0    LDN         SET CODE FOR FILL IMAGE
          ZR     X1,P2F1     IF FILL IMAGE
          BX2    X3-X2
          SA1    DPFC8
          SX0    X0+B1       SET CODE FOR FILL PFC6 
          ZR     X2,P2F1     IF FILL PFC6 
          BX2    X1-X3
          SX0    X0+B1       SET CODE FOR FILL PFC8 
          NZ     X2,COM30    IF NOT IMAGE OR PFC ERROR EXIT 
 P2F1     SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          LX0    12 
          SX1    STD+PA 
          BX0    X0+X1
          SA1    DFAST
          SX2    LDN         DEFAULT CODE IF *FAST* NOT DEFINED 
          BX1    X1-X3
          NZ     X1,P2F2     IF NEXT ITEM IS NOT FAST 
          SX2    X2+B1
          SA3    A3+B1
          SX6    A3 
          SA6    A6          BUMP POINTER TO CRKBUF 
  
 P2F2     LX0    12 
          BX0    X0+X2
          SX1    STD+PA+1 
          LX0    12 
          BX0    X0+X1       CODE= LDN CODE  STD PA  LDN FLAG  STD PA+1 
          RJ     CSTOREB     SAVE GENERATED CODE
          SB7    FILLP2      ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
 P2PRINT  TITLE  P2PRINT - PROCESS THE PRINTER PRINT STATEMENT. 
**        P2PRINT - PROCESS THE PRINTER PRINT STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2PRINT - PROCESS THE PRINTER PRINT STATEMENT. FORMATS AS 
*                   FOLLOWS;
* 
*         PRINT                        PRINT, ABT Z 
*         PRINT FAST                   PRINT FAST, ABT Z
*         PRINT X WORDS FROM Z         PRINT X WORDS FROM Z, ABT Z
*         PRINT FAST X WORDS FROM Z    PRINT FAST X WORDS FROM 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 -  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. 
* 
 P2PRINT  SX0    LDN         DEFAULT CODE FOR SLOW OUTPUT 
          SA1    DFAST
          BX1    X3-X1
          NZ     X1,P2P1     IF NOT FAST I/O
          SX0    X0+B1       SET CODE TO LDN 1
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
 P2P1     LX0    12 
          SX1    STD+PA 
          BX0    X0+X1
          SA1    DABT 
          BX1    X1-X3
          ZR     X1,P2P2     IF ABT 
          ZR     X3,P2P2     IF END OF STATEMENT
          SA1    CLOE 
          RJ     FIND 
          NG     B2,COM31    IF NOT X REPORT ERROR
          RJ     CLOAD
          LX0    12 
          SX1    STD+PA+1 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DWORDS 
          BX1    X1-X3
          NZ     X1,COM30    IF NOT WORDS 
          SA3    A3+B1
          SA1    DFROM
          BX1    X1-X3
          NZ     X1,COM30    IF NOT FROM
          SA1    CLOH 
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK 
          RJ     FIND        GET Y FOR BA 
          NG     B2,COM31    IF NOT FOUND EXIT
          RJ     CLOADC      GENERATE LOAD CONSTANT CODE
          SX1    STD+PA+2 
          LX0    12 
          BX0    X0+X1
          EQ     P2P3 
  
 P2P2     LX0    12 
          SX1    LDN
          BX0    X0+X1       SET LDN 0  STD PA
          LX0    12 
          SX1    STD+PA+1 
          BX0    X0+X1
 P2P3     RJ     CSTOREB     SAVE GENERATED CODE
          SB7    PRINTP2     ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
          EJECT 
 P2READ   TITLE  P2READ - PROCESS THE PRINTER READ STATEMENT. 
**        P2READ - PROCESS THE PRINTER READ STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2READ - PROCESS THE PRINTER READ STATEMENT.  FORMATS 
*                  AS FOLLOWS;
* 
*         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. 
* 
 P2READ   SB7    READP2      ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
          EJECT 
 P2REL    TITLE  P2REL - PROCESS THE PRINTER REL STATEMENT. 
**        P2REL - PROCESS THE PRINTER REL STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2REL - PROCESS THE PRINTER REL STATEMENT. FORMAT AS FOLLOWS; 
* 
* 
*         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. 
* 
 P2REL    SB7    RELP2       ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
          EJECT 
 P2RES    TITLE  P2RES - PROCESS THE PRINTER RES STATEMENT. 
**        P2RES - PROCESS THE PRINTER RES STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2RES - PROCESS THE PRINTER RES STATEMENT. FORMAT  AS 
*                 FOLLOWS;
* 
*         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. 
* 
 P2RES    SB7    RESP2       ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
          EJECT 
 P2SEL    TITLE  P2SEL - PROCESS THE PRINTER SEL STATEMENT. 
**        P2SEL - PROCESS THE PRINTER SEL STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2SEL - PROCESS THE PRINTER SEL STATEMENT. FORMATS AS 
*                 FOLLOWS;
* 
*         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. 
*                            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, 6. 
*                X - 0, 1, 3, 6.
*                B - 2, 3, 7. 
* 
 P2SEL    SB2    B0 
          SB3    P2SBL       LENGTH OF KEYWORD FUNCTION TABLE 
 P2S1     SA1    P2SB+B2     GET KEYWORD
          BX1    X1-X3
          ZR     X1,P2S2     IF KEYWORD MATCH 
          SB2    B2+B1       BUMP INDEX 
          NE     B2,B3,P2S1  IF ALL WORDS NOT SEARCHED
          EQ     COM30       ERROR EXIT IF KEYWORD NOT FOUND
  
 P2S2     SX0    B2+LDN 
          SX1    STD+PA 
          LX0    12 
          BX0    X0+X1
          SB2    B2-PRESP 
          SA3    A3+B1
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          NG     B2,P2S3     IF NOT PRESPACE OR POSTSPACE 
          SA1    P2SC 
          SA3    X6 
          ZR     X3,COM30    SYNTAX ERROR IF NO Y PARAMETER 
          RJ     FIND        GET Y
          NG     B2,COM30    ERROR IF NOT FOUND 
          RJ     CLOAD       GENERATE LOAD Y CODE 
          LX0    12 
          SX1    STD+PA+1 
          BX0    X0+X1
 P2S3     RJ     CSTOREB     SAVE GENERATED CODE
          SB7    SELP2       ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
          EJECT 
 P2SHIFT  TITLE  P2SHIFT - PROCESS THE PRINTER SHIFT STATEMENT. 
**        P2SHIFT - PROCESS THE PRINTER SHIFT STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2SHIFT - PROCESS THE PRINTER SHIFT STATEMENT.  FORMAT AS 
*                   FOLLOWS;
* 
*           SHIFT Y LEFT FOR 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 -  FIND   - FIND THE NEXT ITEM FROM SOURCE. 
*                            CLOADC - GEN. LOAD CONST. INSTRUCTIONS 
*                            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 - NONE.
* 
 P2SHIFT  ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SA1    P2SHA
          RJ     FIND        GET Y
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOADC      GENERATE LOAD CONSTANT Y CODE
          LX0    12 
          SX1    STD+PA 
          BX0    X0+X1       CODE = LDC Y  STD PA 
          RJ     CSTOREB     SAVE GENERATED CODE
          SA1    DLEFT
          SA2    DFOR 
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NEXT ITEM IS NOT LEFT
          SA3    A3+B1
          BX2    X3-X2
          NZ     X2,COM30    ERROR EXIT IF NEXT ITEM IS NOT FOR 
          SX6    A3+B1
          SA6    PCRK        BUMP POINTER TO CRKBUF 
          SA1    P2SHB
          RJ     FIND        GET Z
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          NZ     X3,COM30    ERROR EXIT IF NOT END OF STATEMENT 
          RJ     CLOAD       GENERATE LOAD Z CODE 
          LX0    24 
          SA1    P2SHC
          BX0    X0+X1       CODE = LOAD Z  RJM  SHIFTP2
          RJ     CABSPPU           ABSOLUTIZE PPU ADDRESSES 
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     COM10       EXIT TO COMPILER 
  
 P2SHA    VFD    54/0,3/BUF1,3/0              CW FOR Y  ( OB/IB)
 P2SHB    VFD    42/0,12/601B,3/0,3/REG2
 P2SHC    VFD    36/0,12/RJM,12/SHIFTP2 
  
 P2SPACE  TITLE  P2SPACE - PROCESS THE PRINTER SPACE STATEMENT. 
**        P2SPACE - PROCESS THE PRINTER SPACE STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2SPACE - PROCESS THE PRINTER SPACE STATEMENT. FORMAT AS
*                   FOLLOWS;
* 
*           SPACE N 
* 
*         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. 
*                            CLOAD  - GEN. LOAD INSTRUCTIONS. 
*                            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. 
* 
 P2SPACE  ZR     X3,COM30    ERROR EXIT IF END OF STATEMENT 
          SA1    P2SA 
          RJ     FIND        GET Y
          NG     B2,COM31    ERROR EXIT IF NOT FOUND
          RJ     CLOAD       GENERATE LOAD Y CODE 
          LX0    12 
          SX1    STD+PA 
          BX0    X0+X1       CODE = LOAD Y  STD PA
          RJ     CSTOREB     SAVE GENERATED CODE
          SB7    SPACEP2     ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
  
 P2SA     VFD    42/0,12/2,3/0,3/REG2  CW OR SPACING OPTIONS
  
*         THE FOLLOWING TABLE MUST BE KEPT IN ORDER FOR SELECT OPTIONS. 
  
 P2SB     VFD    60/4L8LPI              0 
          VFD    60/4L6LPI              1 
          VFD    60/4LAUTO              2 
          VFD    60/5LCLEAR             3 
          VFD    60/8LLASTLINE          4 
          VFD    60/8LSUPPRESS          5 
          VFD    60/8LEXTENDED          6 
          VFD    60/6LCLREXT            7 
          VFD    60/6LRNBINT           10 
          VFD    60/6LCLRRNB           11 
          VFD    60/6LEOPINT           12 
          VFD    60/6LCLREOP           13 
          VFD    60/7LAEOPINT          14 
          VFD    60/7LCLRAEOP          15 
 PRESP    EQU    *-P2SB 
          VFD    60/8LPREPRINT         16 
          VFD    60/9LPOSTPRINT        17 
 P2SBL    EQU    *-P2SB                LENGTH OF KEYWORD TABLE
  
 P2SC     VFD    42/0,12/14B,3/0,3/REG2      CONTROL WORD FOR Y 
          EJECT 
 P2STAT   TITLE  P2STAT - PROCESS THE PRINTER STATUS STATEMENT. 
**        P2STAT - PROCESS THE PRINTER STATUS STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2STAT - PROCESS THE PRINTER STATUS STATEMENT. FORMAT 
*                  AS FOLLOWS;
* 
*           STATUS
*           STATUS, 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 - NONE.
*                X - NONE.
*                B - 7. 
* 
 P2STAT   SB7    STATP2      ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
          EJECT 
 P2TIME   TITLE  P2TIME - PROCESS THE PRINTER TIME STATEMENT. 
**        P2TIME - PROCESS THE PRINTER TIME STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2TIME - PROCESS THE PRINTER TIME STATEMENT. FORMATS AS 
*                  FOLLOWS; 
* 
*         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.
*                X - 0, 1, 3. 
*                B - 7. 
* 
 P2TIME   SB7    TIMEP2      ENTRY POINT IN OVERLAY 
          SA1    DTHP 
          BX1    X3-X1
          SX0    LDN         SET CODE FOR THP 
          ZR     X1,P2T1     IF THP 
          SA1    DE1
          SX0    X0+B1       SET CODE FOR E1
          BX1    X1-X3
          ZR     X1,P2T1     IF E1
          SA1    DE6
          SX0    X0+B1       SET CODE FOR E6
          BX1    X1-X3
          ZR     X1,P2T1     IF E6
          SA1    DE8
          SX0    X0+B1       SET CODE FOR E8
          BX1    X1-X3
          NZ     X1,COM30    ERROR EXIT IF NOT THP,E1,E6 OR E8
 P2T1     SA3    A3+B1
          SA1    DCYCLE 
          BX1    X3-X1
          ZR     X1,P2T2     IF CYCLE 
          SA1    DWIDTH 
          BX1    X1-X3
          SX0    X0+4        SET WIDTH FLAG 
          NZ     X1,COM30    ERROR EXIT IF NOT CYCLE OR WIDTH 
 P2T2     LX0    12 
          SX1    STD+PA 
          BX0    X0+X1
          RJ     CSTOREB     SAVE GENERATED CODE
          EQ     P2C2        ENTER COUNT SEQUENCE 
          EJECT 
 P2WAIT   TITLE  P2WAIT - PROCESS THE PRINTER WAITNB STATEMENT. 
**        P2WAIT - PROCESS THE PRINTER WAITNB STATEMENT.
* 
*         J. E. SIPPER. 76/12/08. 
* 
*         P2WAIT - PROCESS THE PRINTER WAITNB STATEMENT. FORMATS AS 
*                  FOLLOWS; 
* 
*                  WAITNB 
*                  WAITNB , ABT Z 
*                  WAITNB MEMORY
*                  WAITNB MEMORY, 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- 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. 
* 
 P2WAIT   SA1    DMEMORY
          SX0    LDN+2       DEFAULT IF MEMORY NOT SPECIFIED (BUSY BIT) 
          BX1    X1-X3
          NZ     X1,P2W1     IF MEMORY NOT SPECIFIED
          SX0    LDN         CODE = LDN 0  IF MEMORY SPECIFIED
          SA3    A3+B1       NEXT ITEM FROM CRKBUF
          SX6    A3 
          SA6    PCRK        BUMP POINTER TO CRKBUF 
 P2W1     LX0    12 
          SX1    STD+PA 
          BX0    X0+X1       CODE = LDN FLAG   STD PA 
          RJ     CSTOREB     SAVE GENERATED CODE
          SB7    WAITP2      ENTRY POINT IN OVERLAY 
          EQ     P1C         ENTER COMMON SEQUENCE
 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 
  
 P1CZ     VFD    42/0,12/77B,6/0            CW FOR Z
 CLOE     VFD    42/0,12/505B,3/BUF2,3/REG2   CW FOR IN/OUT X 
 CLOH     VFD    54/0,3/BUF6,3/0              CW FOR OUT/OUTB Y  (OB) 
