*DECK SSTEXT
          PROC  SSTEXT; 
          CONTROL STEXT;
  
#     TKNCLASSIFIER RESULT VALUES                                      #
  
          XREF
              BEGIN 
              ITEM  CLACOLUMN    I;    # COLUMN WITH FIRST CHARACTER   #
              ITEM  CLACOMMENT   B;    # CLACOMMENT                    #
              ITEM  CLALCOLUMN   I;    # COLUMN WITH LAST CHARACTER    #
              ITEM  CLALINE      I;    # LINE WITH FIRST CHARACTER     #
              ITEM  CLALVLN      I;    # V.L.N. WITH LAST CHARACTER    #
              ITEM  CLAMOD       B;    # TRUE IFF TOKEN WAS MODIFIED   #
              ITEM  CLATYPE      I;    # TYPE OF TOKEN                 #
              ITEM  CLAVALUE     I;    # AUXILIARY VALUE               #
              ITEM  CLAVLN       I;    # VIRTUAL LINE NUMBER           #
              ARRAY  STRINGAREA [0:25] S(1);  # S NEEDED FOR SYMPL BUG #
                  ITEM  SAREA        C(0, 0,240); 
              ITEM  SAREALENGTH  I;    # NUMBER OF CHARACTERS IN SAREA #
              ITEM  SIGNSW       B;    # TRUE IFF NLIT WAS SIGNED      #
              END 
  
#     VARIABLES ACCESSIBLE BY COMPASS                                  #
  
          XREF
              BEGIN 
              ITEM  ACHR         I;    # VALUE OF A.CHR IN GETSTR      #
              ITEM  ADDRLIN      I;    # ADDRESS OF CURRENT LINE       #
              ITEM  CSTATE       I;    # CURRENT STATE                 #
              ITEM  CURRVLN      I;    # V.L.N. OF CURRENT LINE        #
              ITEM  ENDCHRS      B;    # ALL CHRS HAVE BEEN PROCESSED  #
              ITEM  EODFLAG      B;    # END-OF-DATA FLAG              #
              ITEM  ERROR        B;    # INDICATES USER ERROR          #
              ITEM  LINENO       I;    # LINE NO. OF CURRENT LINE      #
              ITEM  LN           I;    # LAST ASSIGNED USER LINE NO.   #
              ITEM  NEWCOL7      I;    # NEXT LINE-S COLUMN 7 CHARACTER#
              ITEM  RADDR        I;    # ADD COLUMNS FOR REPLACE       #
              ITEM  READLIB      B;    # TRUE IFF READING FROM LIBRARY #
              END 
  
  
          COMMON  COPYBLK;
          BEGIN 
  
  
#     -COMMON- ITEM DECLARATIONS                                       #
  
          ITEM  CHECKINGCOPY B=FALSE;  # TRUE IFF CHECKING COPY STMT   #
          ITEM  COPYCOLUMN   I;        # COLUMN NUMBER OF "COPY"       #
          ITEM  COPYLINE     I;        # LINE NUMBER OF "COPY"         #
          ITEM  GROUP$REPL   I;        # GROUP-ID FOR -REPLACING- BLKS #
          ITEM  GROUP$PRINT  I;        # GROUP-ID FOR PL$ AND PRTBUF   #
          ITEM  LIBADDR      I;        # CURRENT LIBRARY WA ADDRESS    #
          ITEM  MAXFPTKNS    I;        # MAX. OF ALL FP$NTKNS          #
          ITEM  MCC          I;        # MASTER CONTROL CHARACTER      #
          ITEM  NONLIBFPTKNS I;        # NO. OF NON-LIBRARY TARGET TKNS#
          ITEM  NFPPUNCS     I;        # NO. OF FP-S WITH ONLY PUNC.   #
          ITEM  NPAIRS       I;        # NO. OF FORMAL/ACTUAL SEQUENCES#
          ITEM  NTARGETS     I;        # NUMBER OF TARGET TOKENS       #
          ITEM  REPLACING    B;        # IFF COPY,REPLACING BEING DONE #
          ITEM  SOURCEACHR   I;        # ACHR FOR SOURCE BUFFER        #
          ITEM  SOURCELINENO I;        # LINENO FOR SOURCE BUFFER      #
          ITEM  SOURCELIST   B;        # SOURCE LISTING FLAG           #
          ITEM  SRCLISTFLAG  B; 
          ITEM  SRCLISTLINE  I; 
          ITEM  TKNFROMLIB   B;        # TOKEN IS FROM LIBRARY         #
  
  
#     ACTUAL PARAMETER  (AP$)  DECLARATIONS FOR -COPY ... REPLACING-   #
  
          BASED ARRAY APARRAY [1:1] S(2); 
              BEGIN 
              ITEM  AP$CO        I(0, 0, 5);     # CHARACTER OFFSET    #
              ITEM  AP$COL       I(1,42,18);     # DESIRED COLUMN(TEMP)#
              ITEM  AP$DIAGPTR   I(0, 5, 9);     # POINTER TO DIAGS.   #
              ITEM  AP$IFCOL     B(1, 0, 1);     # IF AP$COL CONSTANT  #
              ITEM  AP$L         I(0,14, 9);     # LENGTH OF TOKEN     #
              ITEM  AP$LINE      I(1,24,18);     # LINE NUMBER (TEMP)  #
              ITEM  AP$SIGNSW    B(0,23, 1);     # WHETHER SIGNED      #
              ITEM  AP$TYPE      I(0,24, 5);     # TYPE OF TOKEN       #
              ITEM  AP$VALUE     I(0,29,18);     # CLAVALUE            #
              ITEM  AP$WO        I(0,47,13);     # WORD OFFSET OF STR  #
              END 
  
          BASED ARRAY APNTKNS [1:1];
              BEGIN 
              ITEM  AP$INDEX     I(0, 0,42);     # PAIR INDX TO APARRAY#
              ITEM  AP$NTKNS     I(0,42,18);     # NO. AP TKNS FOR PAIR#
              END 
  
          BASED ARRAY APSTRING [0:0] S(1);
              ITEM  AP$STRING    C(0, 0,240); 
  
          ITEM  API$MAXARRAY I;        # MAXIMUM VALUE FOR API$NXTARRAY#
          ITEM  API$NXTARRAY I;        # INDEX TO NEXT AVAILABLE ENTRY #
                                       #                    IN APARRAY #
          ITEM  API$MAXSTRGW I;        # MAXIMUM SAFE VALUE FOR        #
                                       #                  API$NXTSTRGW #
          ITEM  API$NXTSTRGW I;        # INDEX TO WORD WITH NEXT AVAIL.#
                                       #         CHARACTER IN APSTRING #
          ITEM  API$NXTSTRGC I;        # INDEX TO NEXT AVAILABLE CHAR. #
                                       #    IN AP$STRING[API$NXTSTRGW] #
  
  
#     FORMAL PARAMETER  (FP$)  DECLARATIONS                            #
  
          BASED ARRAY FPARRAY [1:1] S(1); 
              BEGIN 
              ITEM  FP$MAYBEPIC  B(0, 0, 1);     # TKN MAY BE PIC      #
              ITEM  FP$L         U(0, 1, 8);     # LENGTH OF TOKEN     #
              ITEM  FP$WO        I(0, 9,18);     # WORD OFFSET OF STR  #
              ITEM  FP$CO        I(0,27,18);     # CHARACTER OFFSET    #
              ITEM  FP$TYPE      I(0,45,5);     # TYPE OF TOKEN # 
              END 
  
          BASED ARRAY FPNTKNS [1:1];
              BEGIN 
              ITEM  FP$INDEX     I(0, 0,42);     # PAIR INDX TO FPARRAY#
              ITEM  FP$NTKNS     I(0,42,18);     # NO. FP TKNS FOR PAIR#
              END 
  
          BASED ARRAY FPSTRING [0:0] S(1);
              ITEM  FP$STRING    C(0, 0,240); 
  
          ITEM  FPI$MAXARRAY I;        # MAXIMUM VALUE FOR FPI$NXTARRAY#
          ITEM  FPI$NXTARRAY I;        # INDEX TO NEXT AVAILABLE ENTRY #
                                       #                    IN FPARRAY #
          ITEM  FPI$MAXSTRGW I;        # MAXIMUM SAFE VALUE FOR        #
                                       #                  FPI$NXTSTRGW #
          ITEM  FPI$NXTSTRGW I;        # INDEX TO WORD WITH NEXT AVAIL.#
                                       #         CHARACTER IN FPSTRING #
          ITEM  FPI$NXTSTRGC I;        # INDEX TO NEXT AVAILABLE CHAR. #
                                       #    IN FP$STRING[FPI$NXTSTRGW] #
  
  
#     PRINT LINE  (PL$)  DESCRIPTORS                                   #
  
          BASED ARRAY PL$ [1:1];
              BEGIN 
              ITEM  PL$COMMENT   B(0, 0, 1);     # IF COMMENT LINE     #
              ITEM  PL$FLAGI     B(0, 1, 1);     # *IGNORE* FLAG       #
              ITEM  PL$FLAGN     B(0, 2, 1);     # *NEW LINE* FLAG     #
              ITEM  PL$FLAGP     B(0, 3, 1);     # *PATHOLOGICAL* FLAG #
              ITEM  PL$FLAGR     B(0, 4, 1);     # *REPLACEMENT* FLAG  #
              ITEM  PL$FLAG7     B(0, 5, 1);     # *COLUMN 7* FLAG     #
              ITEM  PL$READY     B(0, 6, 1);     # READY TO BE PRINTED #
              ITEM  PL$LIB       B(0, 7, 1);     # IF FROM COPY LIBRARY#
              ITEM  PL$NOLIST    B(0, 8, 1);     # IFF NOT TO BE LISTED#
              ITEM  PL$LINE      I(0, 9,19);     # USER LINE NUMBER    #
              ITEM  PL$VLN       I(0,28,18);     # VIRTUAL LINE NUMBER #
              ITEM  PL$NEXT      I(0,46,14);     # INDEX TO NEXT LINE  #
              ITEM  PL$INIT      U(0, 0,60);     # TO INIT. ENTRY      #
              END 
  
            BASED ARRAY PRTBUF [1:1] S(10); 
                ITEM  PL$10CHARS C(0,0,100);
  
          ITEM  PLI$FIRST    I;        # FIRST LINE IN SEQUENCE        #
          ITEM  PLI$UNUSED   I;        # FIRST UNUSED BUFFER           #
          ITEM  PLI$NOTREADY I;        # FIRST NOT-READY LINE          #
          ITEM  PLI$CURRENT  I;        # CURRENT LINE                  #
          ITEM  PLI$LAST     I;        # LAST LINE IN SEQUENCE         #
  
          ITEM  PLI$NEXTSRC  I;        # NEXT SOURCE LINE AFTER TEXT   #
          ITEM  PLI$LASTSRC  I;        # LAST SOURCE LINE AFTER TEXT   #
  
          ITEM  PLN$UNUSED   I;        # NO. OF UNUSED PL$ ENTRIES     #
          ITEM  PLN$USED     I;        # NO. OF USED PL$ ENTRIES       #
  
  
#     TARGET  (T$)  DECLARATIONS                                       #
  
          BASED ARRAY TARRAY [1:1] S(2);
              BEGIN 
              ITEM  T$MOD        B(0, 0, 1);     # DIAG. MODIFIED TKN  #
              ITEM  T$CO         U(0, 1, 4);     # CHARACTER OFFSET    #
              ITEM  T$COLUMN     U(0, 5, 7);     # COLUMN OF 1ST CHAR  #
              ITEM  T$COMMENT    B(0,45, 1);     # CLACOMMENT          #
              ITEM  T$L          U(0,12, 8);     # LENGTH IN CHARACTERS#
              ITEM  T$LCOLUMN    U(0,20, 7);     # COLUMN OF LAST CHAR #
              ITEM  T$LINE       U(0,27,18);     # USER LINE NUMBER    #
              ITEM  T$LVLN       U(1, 6,18);     # V.L.N. OF LAST LINE #
              ITEM  T$SIGNSW     B(1, 0, 1);     # LIT WAS SIGNED      #
              ITEM  T$TYPE       U(1, 1, 5);     # TYPE                #
              ITEM  T$VALUE      U(1,24,18);     # AUXILIARY VALUE     #
              ITEM  T$VLN        U(1,42,18);     # VIRTUAL LINE NUMBER #
              ITEM  T$WO         U(0,46,14);     # T$STRING WORD OFFSET#
              ITEM  T$WORD0      U(0, 0,60);     # WOR 0 OF T$ ENTRY   #
              ITEM  T$WORD1      U(1, 0,60);     # WORD 1 OF T$ ENTRY  #
              END 
  
          BASED ARRAY TSTRING [0:0] S(1); 
              ITEM  T$STRING     C(0, 0,240); 
  
          ITEM  TI$MAXARRAY  I;        # MAXIMUM VALUE FOR TI$NXTARRAY #
          ITEM  TI$NXTARRAY  I;        # INDEX TO NEXT AVAILABLE ENTRY #
                                       #                     IN TARRAY #
          ITEM  TI$MAXSTRGW  I;        # MAXIMUM VALUE FOR TI$NXTSTRGW #
          ITEM  TI$NXTSTRGW  I;        # INDEX TO WORD WITH NEXT AVAIL.#
                                       #          CHARACTER IN TSTRING #
          ITEM  TI$NXTSTRGC  I;        # INDEX TO NEXT AVAILABLE CHAR. #
                                       #      IN T$STRING[TI$NXTSTRGW] #
          ITEM  T$LSTRING    I;        # NO. CHARACTERS IN T$STRING    #
  
  
#     -UPDATE- LIBRARY  (UP$)  DECLARATIONS                            #
  
          ARRAY UP$ [0:0] S(16);       # (SIZE FOR MAX. COLONS)        #
              BEGIN 
                                       # FIRST 3 WORDS OF RANDOM PL    #
              ITEM  UP$7000      U(0, 0,12);     # CONSTANT 7000       #
              ITEM  UP$DLL       U(0,12,18);     # DECK LIST LENGTH    #
              ITEM  UP$DLLRA     U(0,30,30);     # DECK LIST RANDOM ADR#
              ITEM  UP$DIRL      U(1,12,18);     # DIRECTORY LENGTH    #
              ITEM  UP$DIRRA     U(1,30,30);     # DIRECTORY RAN. ADDR.#
              ITEM  UP$LAB       U(2,42, 6);     # "0 MEANS LABEL      #
              ITEM  UP$C         U(2,54, 6);     # MASTER CONTROL CHAR #
                                       # ENTRY IN DECK LIST            #
              ITEM  UP$DECKNAME  U(0, 0,54);     # DECK NAME           #
              ITEM  UP$IDECK     U(1,30,30);     # RAN. ADDR. OF DECK  #
                                       # ENTRY IN IDENT LIST           #
              ITEM  UP$IDENT     U(0, 0,54);     # IDENT NAME          #
                                       # COMPRESSED TEXT               #
              ITEM  UP$WORD      U(0, 0,60);     # WORD FROM UPDATE PL #
              ITEM  UP$WORD1     U(1, 0,60);     # WORD FROM UPDATE PL #
              ITEM  UP$WORD2     U(2, 0,60);     # WORD FROM UPDATE PL #
              ITEM  UP$CHBFLAG   B(0, 0, 1);     # IFF LAST HEADER WORD#
              ITEM  UP$ACTIVE    B(0, 1, 1);     # IFF CARD IS ACTIVE  #
              ITEM  UP$WC        I(0, 6,18);     # WORD COUNT OF TEXT  #
              ITEM  UP$SEQNUM    I(0,24,18);     # SEQUENCE NUMBER     #
              ITEM  UP$Y         B(0,42, 1);     # IFF ID YANKED CARD  #
              ITEM  UP$A         B(0,43, 1);     # IFF ACTIVATED CARD  #
              ITEM  UP$IDENTNO   U(0,44,16);     # INDEX TO IDENT      #
              END 
  
          ITEM  UPI$DECKS    I;        # INDEX TO DECK LIST            #
          ITEM  UPI$IDENTS   I;        # INDEX TO IDENT LIST           #
          ITEM  UPL$DECKS    I;        # LENGTH OF DECK LIST           #
  
  
  
          END  # OF COMMON BLOCK COPYBLK #
          BEGIN 
          END 
          TERM
