*DECK     TEXTSS
PROC TEXTSS;
# TITLE TEXTSS - SYMPL TEXT FOR SERVICES AND SCHEDULING.               #
  
      BEGIN # TEXTSS #
# 
**    TEXTSS - SYMPL TEXT FOR SERVICES AND SCHEDULING.
* 
*     S.H. FISCHER.          81/07/23.
*     D.G. DEPEW.            81/08/14.
*     C.J. BRION             82/06/10, 83/06/06, 83/12/12.
* 
*     THIS PROC GENERATES A SYMPL TEXT FOR COMPILING SERVICES 
*     AND SCHEDULING. 
*     IT CONTAINS DEFINITIONS OF SYMBOLS, PARAMETERS, COMMON BLOCKS ECT.
*     USED THROUGHOUT THE PROGRAM.
# 
  
  
      CONTROL STEXT ; 
  
  
  
  
      DEF DEFMC$   # 500 #;            # DEFAULT MC VALUE              #
      DEF MRT      # 05 #;             # MINIMUM ROLLOUT TIME          #
      DEF MFRT$    #  2 #;             # MINIMUM FORCED ROLLOUT TIME   #
      DEF MAXNULL$ # 03 #;             # MAX NUMBER NULL NETGETS WITH  #
                                       # OUT ACTIVITY BEFORE FORCE ROLL#
  
      DEF OFSIZ$   #  7 #;             # SIZE OF OVLFILE FET           #
      DEF NWDF$    # 47 #;             # NUMBER OF WORKLIST DEFINITIONS#
      DEF NMSGBUF$ # 199 #;            # NUMBER OF ENTRIES IN MSGBUF-1 #
      DEF NODT$    # 06 #;             # NUMBER OF OVLY DEFINITIONS    #
      DEF NRT$     # 06 #;             # NUM OF ENTRIES IN ROLLOUT TBL #
      DEF NSVT$    # 10 #;             # NUMBER OF SS STATISTICS VALUES#
      DEF NSWT$    #  9 #;             # NUMBER OF STATUS WORKLIST DEF #
      DEF NTBL$    # 47 #;             # NUMBER OF MANAGED TABLES      #
      DEF SSBUILD$   #  4 #;           # SUPERVISORY APPL BUILD MSG LEN#
      DEF SWAP$BLK # 1 #;              # BLOCK TYPE ONE                #
      DEF SWAP$MSG # 2 #;              # BLOCK TYPE TWO                #
      DEF SWAP$DELAY # 700 #;          # DELAY IN MILLISECONDS BEFORE  #
                                       # AN UNFORCED NETWAIT IS DONE   #
  
# 
**    SVL - STATISTICS VALUE LIST.
* 
*     THIS STATUS LIST DEFINES THE ENTRIES IN THE STATISTICS VALUES 
*     TABLE(SVT) WHICH SS MAINTAINS.
* 
# 
      STATUS SVL
        UNKNOWN,
        AQE,                 # NUMBER OF CALLS TO SSTAQE               #
        ETS,                 # NUMBER OF CALLS TO SSTETS               #
        RAS1,                # NUMBER OF CALLS TO RAS FROM SSTATS      #
        RAS2,                # NUMBER OF CALLS TO RAS FROM SSTDFL      #
        RAS3,                # NUMBER OF CALLS TO RAS FROM SSTSDA      #
        RCM,                 # NUMBER OF CALLS TO SSTRCM               #
        RQE,                 # NUMBER OF CALLS TO SSTRQE               #
        RTS,                 # NUMBER OF CALLS TO SSTRTS               #
        SDA,                 # NUMBER OF CALLS TO SSTSDA               #
        WNR;                 # NUMBER OF CALLS TO SSTSDA               #
  
  
  
  
  
# 
**    TPOINT - LABELED COMMON BLOCK.
* 
*     THIS LABELED COMMON BLOCK IS FIRST IN MEMORY AND IS USED TO LOCATE
*     IMPORTANT PARTS OF THE PROGRAM WHEN A LOAD MAP IS NOT AVAILABLE.
* 
# 
  
  
      COMMON TPOINT;
      BEGIN  # TPOINT # 
  
  
      ARRAY TPA [00:15] S(1); 
        BEGIN 
        ITEM TPA$NAME   C(00,00,07);   # DISPLAY CODE POINTER NAME     #
        ITEM TPA$ADDR   U(00,42,18);   # ADDRESS OF NAMED THINGY       #
        END 
  
  
      END  # TPOINT # 
  
# 
**    RPVBLK - LABELLED COMMON BLOCK FOR REPRIEVE PROCESSING. 
* 
*     THIS COMMON BLOCK IS USED TO SET THE REPRIEVE PARAMETER BLOCK 
*     IN A PROGRAM DEPENDENT MANNER IF NEEDED.
# 
  
      COMMON RPVCOM;
  
      BEGIN  # RPVCOM # 
  
      ARRAY RPVBLK [00:00] S(25); 
        BEGIN 
        ITEM RPV$WORD0  U(00,00,60);
        ITEM RPV$ADDR   U(01,00,60) = [0];
        ITEM RPV$WORD2  U(02,00,60);
        END 
  
  
      END  # RPVCOM # 
  
# 
**    SSBUILD - LABELED COMMON BLOCK FOR SUPERVISORY APPLICATION BUILD
*               MESSAGE.
* 
*     THIS COMMON BLOCK IS USED FOR SUPERVISORY APPLICATIONS BUILD
*     MESSAGE.  THE APPLICATION NAME IS SUPPLIED BY THE APPLICATION 
*     PROGRAM AT INITIALIZATION TIME, AND THE BUILD DATE AND TIME IS
*     SUPPLIED BY THE COMPASS ROUTINE *SSSPAT*. 
* 
# 
  
  
      COMMON SSBUILD; 
      BEGIN  # SSBUILD #
  
  
      ARRAY SBUILD[00:00] S(SSBUILD$);
        BEGIN 
        ITEM SBD$ANAME  C(00,00,04);   # SUPERVISORY APPL NAME         #
        END 
  
  
      END  # SSBUILD #
  
  
  
  
# 
**    WTABLES - LABELED COMMON BLOCK. 
* 
*     THIS COMMON BLOCK CONTAINS THE DEFINITION AND STATUS OF 
*     THE PROGRAM. THE TABLES ARE BUILT AT INITIALIZATION TIME
*     AND UPDATED AT THE PROGRAM OPERATES. PARTS OF THE PROGRAM 
*     ARE SCHEDULED FOR EXECUTION USING THESE TABLES AS WORK
*     NEEDS TO BE DONE. 
* 
# 
  
  
      COMMON WTABLES ;
      BEGIN  # WTABLES #
  
  
  
  
# 
**    WRQ - WORKLIST REQUEST QUEUE. 
* 
* 
*     THIS ITEM HAS A BIT SET FOR EACH TYPE 0 WORKLIST REQUEST
*     TO BE EXECUTED. BIT 12 CORRESPONDS TO THE FIRST WORKLIST
*     DEFINITION AND HAS THE HIGHEST PRIORITY, BIT 13 
*     CORRESPONDS TO THE SECOND WORKLIST DEFINITION AND IS NEXT 
*     IN PRIORITY ECT.
* 
# 
  
  
      ITEM WRQ U ;           # WORKLIST REQUEST QUEUE                  #
  
  
  
  
# 
**    WDF - WORKLIST DEFINITIONS TABLE. 
* 
*     THIS ARRAY CONTAINS THE WORKLIST DEFINITIONS FOR THE PROGRAM. 
*     THERE ARE THREE TYPES OF ENTRIES. 
* 
*                RESIDENT ROUTINE.
*                            WDF$TYPE = 0.
*                            WDF$RADD = RESIDENT ROUTINE ADDRESS. 
* 
*                STATUS WORKLIST LINKAGE ADDRESS. 
*                            WDF$TYPE = 1.
*                            WDF$CADD = ADDRES OF CELL TO CHANGE. 
* 
*                OVERLAY RESIDENT ROUTINE.
*                            WDF$TYPE = 2.
*                            WDF$OVN = OVERLAY NUMBER.
*                            WDF$OEN = OVERLAY ROUTINE ENTRY NUMBER.
* 
# 
  
  
  
      ARRAY WDF[0:NWDF$] S(1);  #WORKLIST DEFINITIONS TABLE            #
        BEGIN 
        ITEM WDF$TYPE   U(00,00,12);   #WLE TYPE                       #
        ITEM WDF$RADD   U(00,42,18);   #ROUTINE ADDRESS                #
        ITEM WDF$CADD   U(00,42,18);   #CELL ADDRESS                   #
        ITEM WDF$OVN    U(00,12,12);   #OVERLAY NUMBER                 #
        ITEM WDF$OEN    U(00,24,12);   #OVERLAY ENTRY NUMBER           #
        END 
  
  
  
  
# 
**    QWD - QUEUE TO WORKLIST DEFINITIONS TABLE.
* 
*     THIS ARRAY CONTAINS THE WORKLIST NUMBERS FOR THE VARIOUS QUEUES.
*     WHEN AN ENTRY IS MADE IN A QUEUE THIS NUMBER DENOTES THE
*     WORKLIST DEFINITION ENTRY TO PROCESS THE QUEUE. 
* 
# 
  
  
      ARRAY QWD[0:NTBL$] S(1);  #QUEUE TO WORKLIST DEFINITIONS TABLE   #
        BEGIN 
        ITEM QWD$WLN    U(00,48,12);   #WORKLIST NUMBERS FOR QUEUES    #
        END 
  
  
  
  
# 
**    SWT - STATUS WORKLIST DEFINITIONS.
* 
* 
* 
*     THIS ARRAY CONTAINS THE CURRENT CONDITIONS TO BE WATCHED
*     FOR THE MONITORS AND THE ADDRESSES TO BE EXECUTED WHEN
*     THE CONDITIONS CHANGE.
* 
# 
  
  
      ARRAY SWT [00:NSWT$] S(3);
        BEGIN 
        ITEM SWT$ADDR1  U(00,06,18);  #ADDR OF 1ST CELL TO BE WATCHED  #
        ITEM SWT$ADDR2  U(00,24,18);  #ADDR OF 2ND CELL TO BE WATCHED  #
        ITEM SWT$RTN    U(00,42,18);  #ADDR OF ROUTINE TO CALL         #
        ITEM SWT$INIT1  U(01,00,60);  #INITIAL VALUE OF CELL ONE       #
        ITEM SWT$INIT2  U(02,00,60);  #INITIAL VALUE OF CELL TWO       #
        END 
  
      ITEM SWTA U;           # NUMBER OF ACTIVE SWT ENTRIES            #
  
  
  
  
# 
**    LDRINFO - MAIN PROGRAM/OVERLAY LOAD INFORMATION.
* 
*     THE FOLLOWING BASED ARRAY IS USED TO DETERMINE FROM WHENCE THE
*     PROGRAM WAS LOADED.  IT MUST POINT TO LOCATION 64B OF PROGRAM FL. 
# 
  
      BASED ARRAY LDRINFO[00:00] S(1);
        BEGIN 
        ITEM LDI$NAME   C(00,00,07);   # CONTROL STATEMENT VERB        #
        ITEM LDI$LB     B(01,41,01);   # LOAD FROM SYSTEM FLAG         #
        END 
  
  
  
  
# 
**    EACPM - LOADER ABSOLUTE CENTRAL MEMORY TABLE.  (5400 TABLE) 
* 
*     THIS TABLE LOADED AT 100B IS USED TO LOAD THE OVERLAY FROM THE
*     SYSTEM, AND THEN FROM THE OVERLAY FILE AS THE PROGRAM EXECUTES. 
# 
  
      BASED ARRAY EACPM[00:00] S(8);
        BEGIN 
        ITEM EAC$NEP    U(00,42,18);   # NUMBER OF ENTRY POINTS        #
        ITEM EAC$WCS    U(01,00,18);   # 0,0 OVERLAY LENGTH            #
        ITEM EAC$MIFL   U(01,42,18);   # 0,0 OVERLAY LAST WORD ADDR+1  #
        ITEM EAC$HHA    U(04,42,18);   # HIGHEST HIGH ADDRESS ALL OVLS #
        ITEM EAC$DL     U(06,42,18);   # FAST OVL DIRECTORY LENGTH     #
        END 
  
  
  
  
# 
**    EAHPM - LOADER ABSOLUTE CENTRAL MEMORY TABLE FOR HEGHER LEVEL OVLY
* 
*     THIS TABLE, SITUATED AT THE VERY BEGINNING OF THE OVERLAY, GIVES
*     INFORMATION ABOUT THE OVERLAY.
# 
      BASED ARRAY EAHPM [00:00] S(1); 
        BEGIN 
        ITEM EAH$NEP    U(00,42,18);
        ITEM EAH$WCS    U(01,00,18);
        ITEM EAH$MIFL   U(01,42,18);
        ITEM EAH$EP     C(04,00,07);
        ITEM EAH$EPA    U(04,42,18);
        END 
  
  
  
  
# 
**    ODT - OVERLAY DEFINITION TABLE. 
* 
*     THIS ARRAY IS PART OF THE EACPM ARRAY.
*     THE START OF THIS ARRAY DEPENDS ON THE NUMBER OF 0,0 OVERLAY
*     ENTRY POINTS DEFINED AND IS SET AT INITIALIZATION TIME. 
*     EACH ENTRY CONTAINS THE NAME, THE LENGTH, AND THE 
*     DISK ADDRESS FOR THE OVERLAY. 
# 
  
      BASED ARRAY ODT [00:00] S(2); 
        BEGIN 
        ITEM ODT$NAME   C(00,00,07);   # OVERLAY NAME                  #
        ITEM ODT$FWA    U(00,42,18);   # FIRST WORD ADDR OF OVERLAY    #
        ITEM ODT$WRD0   I(00,00,60);
        ITEM ODT$LVL    U(01,00,12);   # OVERLAY LEVEL NUMBER          #
        ITEM ODT$PLVL   U(01,00,06);   # PRIMARY OVERLAY LEVEL NUMBER  #
        ITEM ODT$PRU    U(01,24,18);   # RELATIVE DISK PRU ADDRESS     #
        ITEM ODT$LWA    U(01,42,18);   # LAST WORD ADDR + 1 OF OVERLAY #
        END 
  
  
  
  
# 
**    OVCONTROL - CONTROL OF EXECUTION OF OVERLAYS. 
* 
*     THIS SET OF ITEMS IS USED FOR EXECUTING OVERLAYS. 
* 
# 
  
  
      ITEM OVNUM     I;      # NUMBER OF OVERLAY CURRENTLY EXECUTING   #
      ITEM OVENUM    I;      # NUMBER OF OVERLAY ENTRY POINT TO EXECUTE#
  
  
  
# 
**    ORC - OVERLAY REQUEST COUNTER.
* 
*     THIS ITME CONTAINS THE NUMBER OF OUTSTANDING OVERLAY REQUESTS 
*     MADE.  IT CORRESPONDS TO THE NUMBER OF BITS SET IN THE OVERLAY
*     REQUEST TABLE.
* 
# 
  
  
      ITEM ORC I;            # OVERLAY REQUEST COUNT                   #
  
  
  
  
# 
**    ORT - OVERLAY REQUEST TABLE.
* 
*     THIS ARRAY CONTAINS BIT MAPS WHICH ARE SET WHEN AN OVERLAY REQUEST
*     IS MADE.  EACH ENTRY CORRESPONDS TO AN ENTRY IN THE OVERLAY 
*     DEFINITION TABLE.  THE ENTRIES CONTAIN A BIT MAP, WITH EACH BIT 
*     CORRESPONDING WITH AN ENTRY POINT IN THE OVERLAY. 
* 
# 
  
  
      ARRAY ORT [00:NODT$] S(1);
        BEGIN 
        ITEM ORT$MAP    U(00,12,48);   # ENTRY POINT BIT MAP           #
        ITEM ORT$WORD   U(00,00,60);
        END 
  
  
  
  
# 
**    OVLFET - FILE ENVIRONMENTAL TABLE FOR OVERLAY LOADING.
* 
*     THIS FET IS USED TO TRANSFER OVERLAYS FROM THE SYSTEM FILE
*     TO THE OVLFILE DURING INITIALIZATION OF THE PROGRAM.
*     IT THEN IS USED TO LOAD THE OVERLAYS IN FOR EXECUTION.
*     OVERLAYS ARE LOADED FROM A FILE WITHOUT RECALL WHICH
*     IS PROHIBITED BY THE OPERATION SYSTEM.
*     ANY DATA THAT IS NEEDED BY THE OVERLAY IS LOADED AS PART
*     OF THE OVERLAY WHICH WAS EXTENDED BEFORE IT WAS WRITTEN 
*     TO THE FILE.
* 
# 
  
  
      ARRAY OVLFET [00:00] S(OFSIZ$); 
        BEGIN 
        ITEM OF$WORD    U(00,00,60);  # FIRST WORD OF FET              #
        ITEM OF$LFN     C(00,00,07);  # FILE NAME--WILL BE *OVLFILE*   #
        ITEM OF$LNAT    U(00,42,08);  # COMB LEVEL NR AND ABN TERM CODE#
        ITEM OF$CODE    U(00,50,10);  # CIO FUNCTION CODE              #
        ITEM OF$CBIT    B(00,59,01);  # I/O COMPLETE BIT               #
        ITEM OF$R       B(01,12,01);  # RANDOM ACCESS FLAG             #
        ITEM OF$L       U(01,36,06);  # FET LENGTH IN EXCESS OF 5 WORDS#
        ITEM OF$FIRST   U(01,42,18);  # ADDRESS OF FIRST WORD OF BUFFER#
        ITEM OF$IN      U(02,00,60);  # NEXT DATA IN POINTER           #
        ITEM OF$OUT     U(03,00,60);  # NEXT DATA OUT POINTER          #
        ITEM OF$LIMIT   U(04,42,18);  # LAST WORD ADDRESS +1 OF BUFFER #
        ITEM OF$LA      U(05,00,60);  # LIST ADDRESS(STORED AS WHOLE WD#
        ITEM OF$RR      U(06,31,29);  # RANDOM REQUEST RELATIVE PRU ADD#
        ITEM OF$CRI     U(06,00,30);  # CURRENT RANDOM INDEX           #
        END 
  
  
  
  
# 
**    RT - ROLLOUT TABLE. 
* 
*     THIS ARRAY CONTAINS THE BIT POSITION AND WORD ADDRESS OF THE
*     COMPLETE STATUS FLAGS TO BE CHECKED BY *SSSWNR*.
* 
# 
  
  
      ARRAY RT [00:NRT$] S(1);
        BEGIN 
        ITEM RT$EC      U(00,48,12);   # ENTRY COUNT                   #
        ITEM RT$BPOS    U(00,00,30);   # BIT POSITION OF STATUS FLAG   #
        ITEM RT$WADD    U(00,30,30);   # STATUS WORD ADDRESS           #
        ITEM RT$WORD    I(00,00,60);
        END 
  
# 
**    PGMROLL - PROGRAM ROLLOUT TABLE.
* 
*     THIS ARRAY DEFINES THE PROGRAM FORCED ROLLOUT INDICATORS. 
*     THE NUMBER OF NULL NETGETS ALLOWED WITHOUT ACTIVITY BEFORE A
*     FORCED ROLLOUT CONDITION FOR THE PROGRAM EXISTS.
# 
  
      ARRAY PGMROLL [00:00] S(1); 
        BEGIN 
        ITEM PGM$NUGETS U(00,42,18);     # NUMBER NULL NETGETS ALLOWED #
        ITEM PGM$FOROLL B(00,00,01);     # FORCED ROLLOUT FLAG         #
        END 
  
      END # WTABLES # 
  
  
  
  
  
# 
**    BUFFERS - LABELLED COMMON BLOCK.
* 
*     COMMON BLOCK OF BUFFERS FOR WC, HEADER, SMS AND DATA.  THESE
*     ARE INTERMEDIATE BUFFERS FOR INCOMING/OUTGOING SMS OR DATA
*     FROM/TO THE APPROPRIATE QUEUES. 
# 
  
  
  
  
      COMMON BUFFERS; 
      BEGIN # BUFFERS # 
# 
**    WCBUF - WORD COUNT BUFFER.
* 
*     WCBUF IS A ONE WORD ARRAY FOR INCOMING AND OUTGOING WC. 
# 
      ARRAY WCBUF[00:01] S(1);
        BEGIN 
        ITEM WCB$WORD   U(00,00,60);   # FULL WORD REFERENCE           #
        ITEM WCB$SMID   U(00,00,12);   # INTERNAL ID ASSIGNED TO SM    #
        ITEM WCB$FLAGS  U(00,12,12);   # REFERENCE FLAG FIELDS         #
        ITEM WCB$IAF    B(00,12,01);   # INPUT ALLOW FLAG              #
        ITEM WCB$HAF    B(00,13,01);   # HOP ALERT FLAG                #
        ITEM WCB$WC     U(00,48,12);   # ENTRY-SIZE                    #
        END 
  
  
  
  
# 
**    ABHBUF - APPLICATION BLOCK HEADER BUFFER. 
* 
*     ABHBUF IS A ONE WORD ARRAY FOR INCOMING AND OUTGOING HEADER.
# 
      ARRAY ABHBUF[00:01] S(1); 
        BEGIN 
        ITEM ABH$WORD  U(00,00,60);    # FULL WORD REFERENCE           #
        END 
  
  
  
  
# 
**    MSGBUF - MESSAGE BLOCK BUFFER.
* 
*     BUFFER FOR SUPERVISORY MESSAGES OR DATA.  THIS BUFFER IS DIVIDED
*     INTO 2 EQUAL SIZE PARTS, EACH PART CONTAINING (NMSGBUF$ + 1)/2
*     NUMBER OF ENTRIES.  PART ONE CONTAINS  INCOMING SM OR DATA
*     AND PART TWO CONTAINS OUTGOING SM OR DATA.
# 
      ARRAY MSGBUF[00:NMSGBUF$] S(1); 
        BEGIN 
        ITEM MSG$CHAR   C(00,00,110);  # INCOMING TEXT REFERENCE       #
        ITEM MSG$WORD   U(00,00,60);   # FULL WORD REFERENCE           #
        ITEM MSG$PSFC   U(00,00,16);   # PFC/SFC                       #
        ITEM MSG$ZERO   U(00,48,12);   # ZERO BYTE / LINE TERMINATOR   #
        END 
  
      END  # BUFFERS #
  
  
  
  
# 
**    SSCOM - LABELED COMMON BLOCK. 
* 
*     THIS COMMON BLOCK CONTAINS VARIOUS ITEMS AND ARRAYS FOR 
*     SERVICES AND SCHEDULING. SOME BASED ARRAYS AND ITEMS ARE
*     USED TO PASS ADDRESS AND VALUE INFORMATION FROM THE PROGRAM 
*     TO VARIOUS SERVICES AND SCHEDULING ROUTINES. THESE VALUES ARE 
*     SET BY THE PROGRAM INITIALIZATION ROUTINES. 
* 
# 
  
  
      COMMON SSCOM; 
        BEGIN # SSCOM # 
# 
**    NSUP - SUPERVISORY STATUS WORD
* 
*     NSUP IS THE WORD USED BY AIP MONITOR TO SENSE THE 
*     STATE OF NETWORK COMMUNICATIONS.
# 
  
        ARRAY NSUP[00:00] S(1);        # SUPERVISORY STATUS WORD       #
          BEGIN 
          ITEM NSUP$WORD  U(00,00,60); # FULL WORD                     #
          ITEM NSUP$COMP  B(00,00,01); # COMPLETION BIT                #
          ITEM NSUP$NAMA  B(00,02,01); # NAM AVAILABLE BIT             #
          ITEM NSUP$DAIN  B(00,03,01); # DATA MESSAGE AVAILABLE BIT    #
          ITEM NSUP$SMIN  B(00,04,01); # SUPERVISORY MESSAGE AVAIL BIT #
          ITEM NSUP$DDEV  B(00,05,01); # DATA DELIVERABLE BIT          #
          ITEM NSUP$MC    U(00,30,30); # DEBUG LOG FILE MESSAGE COUNT  #
          END 
  
  
  
  
# 
**    SSIPTQ - SS LINKAGE FOR OUTGOING TRAFFIC QUEUE. 
* 
*     THE FOLLOWING BASED ARRAYS AND ITEMS ARE SET BY INITIALIZATION
*     AND ARE USED TO PASS THE LOCATION OF THE *OTQ* TO *SSACNI*. 
* 
# 
  
  
      BASED ARRAY SSIOTQ  [00:00] S(1); 
        BEGIN 
        ITEM SSOTQ  U(00,00,60);
        END 
  
  
      BASED ARRAY SSIOTQL [00:00] S(1); 
        BEGIN 
        ITEM SSOTQL U(00,00,60);
        END 
  
  
  
  
# 
**    SSITRQ - SS LINKAGE FOR OUTGOING TRAFFIC QUEUE. 
* 
*     THE FOLLOWING BASED ARRAYS AND ITEMS ARE SET BY INITIALIZATION
*     AND ARE USED TO PASS THE LOCATION OF THE *TRQ* TO THE TIMER 
*     ROUTINES. 
* 
# 
  
  
      BASED ARRAY SSITRQ  [00:00] S(1); 
        BEGIN 
        ITEM SSTRQ  U(00,00,60);
        END 
  
  
      BASED ARRAY SSITRQL [00:00] S(1); 
        BEGIN 
        ITEM SSTRQL U(00,00,60);
        END 
  
      ARRAY SS$SWAPW S(1);
        BEGIN 
        ITEM SS$TSEC U(00,00,24);        # TIME IN SECONDS             #
        ITEM SS$TMILLI U(00,24,36);      # TIME IN MILLISECONDS        #
        ITEM SS$TWORD U(00,00,60)= [0];  # ENTIRE TIMESTAMP            #
        END 
  
# 
**    TRQ1 - TIMER REQUEST QUEUE. 
* 
*     TRQ IS USED TO RETAIN TIMER REQUESTS UNTIL THE TIME 
*     HAS EXPIRED. THEN THE TIMER REQUEST BLOCK IS RETURNED 
*     TO THE REQUESTER. IT IS USED ONLY BY THE FOLLOWING
*     SS ROUTINES:  
*                *SSCATR*, *SSCCRT*, AND *SSCRTR*.
* 
*     THIS BASED ARRAY DEFINES THE ITEMS IN THE TIMER BLOCK.
*     THE STORAGE FOR THE QUEUE IS THE *TRQ* WITHIN MANAGED TABLES. 
*     THIS BASED ARRAY MUST BE POINTED BEFORE EACH USE TO THE 
*     SAME ADDRESS AS THE BASED ARRAY *TRQ*.
*     THIS IS DONE USING THE ITEM *SSTRQ* WHICH VALUE IS ALWAYS 
*     THE CURRENT START OF THE STORAGE FOR *TRQ*. 
* 
# 
  
  
  
  
      BASED ARRAY TRQ1 [00:00]  S(4); 
        BEGIN 
        ITEM TRQ1$WD0   U(00,00,60);   # OVERLAPPING WORD 0            #
        ITEM TRQ1$ENTRY U(00,48,12);   # ENTRY SIZE                    #
        ITEM TRQ1$WD1   U(01,00,60);   # OVERLAPPING WORD 1            #
        ITEM TRQ1$CNUM  U(01,18,18);   # CANCEL NUMBER                 #
        ITEM TRQ1$WD2   U(02,00,60);   # OVERLAPPING WORD 2            #
        ITEM TRQ1$FDQ   U(03,00,60);   # OVERLAPPING WORD 3            #
        ITEM TRQ1$FTIME U(03,00,24);   # FIRE TIME                     #
        ITEM TRQ1$DELAY U(03,24,18);   # DELAY TIME                    #
        ITEM TRQ1$QNUM  U(03,42,18);   # Q NUMBER                      #
        END 
  
  
  
  
# 
**    SSWLE - WORKLIST NUMBERS FOR SERVICES AND SCHEDULING. 
* 
*     THESE ITEMS ARE USED TO PASS TO SERVICES AND SCHEDULING THE 
*     WORKLIST NUMBERS ASSIGNED TO ROUTINES WITHIN SERVICES AND 
*     SCHEDULING BY THE PROGRAM.
* 
# 
  
  
      ITEM SSCRTRW;                    # WLE FOR RETURN TIMER REQUEST  #
      ITEM SSOEOPW;                    # WLE FOR OVERLAY EXECUTION     #
  
  
  
  
# 
**    LOADBASE - POINT WHERE OVERLAYS ARE LOADED. 
* 
*     THIS ITEM CONTAINS THE LWA+1 OF THE (0,0) OVERLAY.
*     OVERLAYS ARE LOADED STARTING AT THIS POINT AND
*     WHEN NO OVERLAYS ARE NEEDED MANAGED TABLE STORAGE 
*     STARTS AT THE SAME ADDRESS AND EXTENDS TO THE END 
*     OF THE FIELD LENGTH.
* 
# 
      ITEM LOADBASE  I;      # FWA+1 OF (0,0) OVERLAY                  #
  
  
  
  
# 
**    SSMEM - ADDRESS OF *MEMLOC*.
* 
*     THIS ITEM CONTAINS THE ADDRES OF *MEMLOC* WHICH IS NEEDED 
*     BY SERVICES AND SCHEDULING AND IS DEFINED WITHIN THE
*     MANAGED TABLE DEFINITIONS. IT IS SET AT INITIALIZATION TIME.
* 
# 
  
      ITEM SSMEM;                      # ADDRESS OF MEMLOC             #
  
  
  
  
# 
**    TXTALEN - LENGTH OF AIP TEXT AREA.
* 
*     THIS ITEM CONTAINS THE LENGTH OF THE AIP TEXT AREA. 
*     IT IS NEEDED BY *SSACNI* AS A NETGETL PARAMETER.
*     IT SHOULD BE SET TO MAXIMUN LENGTH IN CM WORDS OF A 
*     BLOCK THE APPLICATION PROGRAM CAN ACCEPT. 
*     IT SHOULD BE INITIALIZED BY EACH INDIVIDUAL APPLICATION 
*     PROGRAM AT INITIALIZATION TIME. 
# 
  
      ITEM TXTALEN; 
  
  
        END # SSCOM # 
  
  
# 
**    CLOCKS - LABELED COMMON BLOCK.
* 
*     THIS COMMON BLOCK CONTAINS THE CURRENT TIME OF THE DAY. 
*     THE TIMES ARE UPDATED AT THE TOP OF THE MAIN LOOP 
*     AND UPON SPECIAL CALLS TO *SSCUTD*. 
* 
# 
  
      COMMON CLOCKS;
        BEGIN  # CLOCKS # 
        ARRAY CTM[00:00] S(5);
          BEGIN 
          ITEM CTM$PWD   U(00,00,60);  # OVERLAP WORD (PACKED FORM)    #
          ITEM CTM$PDT   U(00,30,30);  # OVERLAP MODDHHMMSS (PACKED)   #
          ITEM CTM$PDATE U(00,24,18);  # YYMODD (PACKED FORM)          #
          ITEM CTM$PCLK  U(00,42,18);  # HHMMSS (PACKED FORM)          #
          ITEM CTM$DATE  C(01,00,10);  # YY/MM/DD. (DISPLAY CODE)      #
          ITEM CTM$CLOCK C(02,00,10);  # HH.MM.SS. (DISPLAY CODE)      #
          ITEM CTM$RT    U(03,00,60);  # FULL RTIME WORD-OVERLAP       #
          ITEM CTM$RTSEC U(03,00,24);  # SECONDS                       #
          ITEM CTM$RTMIL U(03,24,36);  # MILLISECONDS                  #
          ITEM CTM$FTIME U(04,00,24);  # SECONDS                       #
          END 
        END  # CLOCKS # 
  
  
  
  
# 
**    CCARD - LABELED COMMON BLOCK. 
* 
*     THIS COMMON BLOCK CONTAINS PARAMETERS FROM THE PROGRAM
*     CALL CARD.
* 
# 
  
  
  
      COMMON CCARD; 
        BEGIN # CCARD # 
        ITEM NET$ONF B;      # NET ON FLAG (MUST BE FIRST IN COMMON)   #
        ITEM MC U;           # VALUE OF MC FROM CONTROL CARD           #
        END # CCARD # 
  
  
  
# 
**    SSINTR - LABELED COMMON BLOCK.
* 
*     THIS COMMON BLOCK CONTAINS CELLS USED TO START
*     STATUS WORKLIST DRIVEN ROUTINES IN SERVICES AND SCHEDULING. 
*     THE ROUTINE MAY TEMPORARY NOT START AS IT MAY BE BUSY WITH
*     CURRENT WORK. 
* 
# 
  
  
  
      COMMON SSINTR;
        BEGIN # SSINTR #
        ITEM ISSACNI  I;     # INTERRUPT FOR PROC SSACNI               #
        ITEM SSOVLD   B;     # INTERRUPT FOR PROC SSOCOL WHEN OVERLAY 
                               EXECUTION DONE                          #
        ITEM DISABLE  I;     # WORD FOR DISABLED TYPE 1 WLE-S          #
        END # SSINTR #
  
  
# 
**    STATBUF - LABELED COMMON BLOCK. 
* 
*     THIS COMMON BLOCK CONTAINS ITEMS USED FOR STATISTICS GATHERING. 
* 
# 
      COMMON STATBUF; 
        BEGIN # STATBUF # 
        ARRAY SVT [01:NSVT$] S(1);
          BEGIN 
          ITEM SVT$VAL    I(00,00,60);
          END 
        END # STATBUF # 
  
  
      END #TEXTSS # 
TERM
