*DECK     SSSPES
PROC SSSPES;
*IF,DEF,IMS 
*TEXT 
# 
**                 SERVICES AND SCHEDULING OVERVIEW 
* 
* 
*     1.0  INTRODUCTION 
*     2.0  DESCRIPTION OF SERVICES
*        2.1  SCHEDULING OF PROCESSES 
*        2.1.1  DESIGN CONSIDERATIONS/PHILOSOPHIES
*        2.1.2  STATUS WORK LIST ENTRY (SWLE) 
*        2.1.3  WORK LIST ENTRY (WLE) 
*        2.2  TABLE MANAGER (QUEUE MANAGER) 
*        2.3  OVERLAY LOADING 
*        2.4  TIMER SERVICES
*        2.5  UTILITIES 
*        2.5.1  BIT MANIPULATION
*        2.5.2  CHARACTER CONVERSION
*        2.5.3  FILE FUNCTIONS
*        2.5.4  COMMAND PARSER/RECOGNIZER 
*        2.5.5  AIP INTERFACE 
*     3.0  DECK/ROUTINE NAMING CONVENTIONS
*     4.0  STRUCTURE CHARTS 
*        4.1  AIP INTERFACE ROUTINE 
*        4.2  CLOCK/TIMER ROUTINES
*        4.3  OVERLAY MANAGEMENT ROUTINES 
*        4.4  COMMAND RECOGNITION ROUTINES
*        4.5  SEQUENCE ROUTINES 
*        4.6  TABLE/QUEUE MANAGER ROUTINES
*     5.0  TABLE STRUCTURES 
*        5.1  POINTER TABLE 
*        5.2  WORKLIST REQUEST QUEUE
*        5.3  WORKLIST DEFINITION TABLE 
*        5.4  QUEUE TO WORKLIST DEFINITION TABLE
*        5.5  STATUS WORKLIST DEFINITION
*        5.6  OVERLAY DEFINITION TABLE
*        5.7  OVERLAY CONTROL ITEMS 
*        5.8  OVERLAY REQUEST TABLE 
*        5.9  ROLLOUT TABLE 
*        5.10 TIMER REQUEST BLOCK 
*        5.11 CURRENT TIME AND DATE 
*        5.12 TYPICAL QUEUE ENTRY 
*     6.0  DEBUGGING TIPS 
*E
* 
* 
*     1.0  INTRODUCTION 
* 
*     SERVICES AND SCHEDULING IS A SET OF ROUTINES THAT ACT AS THE
*     EXECUTIVE AND PROVIDES SERVICES/UTILITIES FOR NVF AND CS.  THE
*     FOLLOWING IS AN OVERVIEW OF THESE SERVICES, THE CONVENTIONS USED
*     IN NAMING THE ROUTINES, STRUCTURE CHARTS, AND THINGS TO LOOK FOR
*     WHEN ANALYZING A CS OR NVF DUMP.
* 
* 
*     2.0  DESCRIPTION OF SERVICES
* 
*     2.1  SCHEDULING OF PROCESSES
* 
*     2.1.1  DESIGN CONSIDERATIONS/PHILOSOPHIES 
* 
*     THE PROGRAM (NVF OR CS) IS VIEWED BY SERVICES AND SCHEDULING AS A 
*     SET OF INDEPENDENT PROCESSORS.  PROGRAM OPERATION IS DATA DRIVEN
*     OR TRANSACTION DRIVEN, I.E. - THE PRESENCE OF DATA IS SUFFICIENT
*     TO INDICATE THAT A PROCESSOR OF THAT DATA MUST BE STARTED UP.  NO 
*     DATA MEANS THERE IS NO WORK TO DO.
* 
*     KEY TO THE UNDERSTANDING THESE PROGRAMS IS THEIR TRANSACTION
*     PROCESSING NATURE AND THE DECOUPLING OF PROGRAM PARTS.  SERVICE 
*     MESSAGES AND DATA ARE ROUTED TO PROCESSES VIA ENTRIES IN THE
*     APPROPRIATE QUEUE.  THESE PROCESSES ARE PREPARED TO HANDLE THE
*     POSSIBILITIES AT A GIVEN POINT IN THE OVERALL PROTOCOL. 
* 
*     THE SERVICE MESSAGES AND DATA FOR A PARTICULAR CONNECTION HAVE
*     VERY LIMITED ASSOCIATION WITH OTHER CONNECTIONS AND PROTOCOLS 
*     (APPLICATION NETTING OFF, FAILING, ETC.) SO THIS DECOUPLING WILL
*     WORK.  THE OVERALL PROGRAM OPERATION IS LOOSELY TIED TOGETHER.
*     EXAMINATION OF THE VARIOUS PROTOCOLS AND THE UNDERSTANDING OF 
*     THEIR RELATIONSHIPS, IF ANY, AND POSSIBLE INTERACTION WAS DONE AT 
*     DESIGN TIME TO ELIMINATE ANY PROBLEMS.
* 
*     THE SCHEDULING OF PROCESSES IS DONE BY TWO SEPERATE MECHANISMS: 
*     STATUS WORK LIST ENTRIES AND WORK LIST ENTRIES.  THESE TWO METHODS
*     ARE EXPLAINED IN THE NEXT TWO SECTIONS. 
* 
*     2.1.2  STATUS WORK LIST ENTRY (SWLE)
* 
*     STATUS WORK LIST ENTRIES ARE USED BY PROCESSES THAT MUST WAIT FOR 
*     EXTERNAL REQUESTS TO COMPLETE BEFORE PROCEEDING.  ONCE THE REQUEST
*     IS COMPLETE, A NEW REQUEST FOR THE SERVICE IS MADE, IF ONE IS 
*     AVAILABLE.  THE PROCESSES CAN BE THOUGHT OF AS SEPARATE PROGRAMS
*     THAT RUN CONSTANTLY ONCE THEY ARE STARTED AT INITIALIZATION TIME. 
*     THESE PROGRAMS DETERMINE THEMSELVES WHAT INDICATES THAT A REQUEST 
*     IS COMPLETE AND CONVEYS THIS TO THE STATUS WORK LIST PROCESSOR
*     WHEN IT GOES INTO A STATE OF WAITING. 
* 
*     THE STATUS WORKLIST PROCESSOR DOES NOT KNOW WHAT THE PROGRAM IS 
*     DOING.  IT IS SIMPLY LOOKING FOR A CHANGE IN THE INITIAL VALUE
*     WHEN THE SWLE REQUEST IS MADE.  A CHANGE IN THE MEMORY LOCATION 
*     THAT IT IS MONITORING WILL PROMPT IT TO START UP THE WAITING
*     PROGRAM.  (NOTE: CURRENTLY NO MASKING OR IGNORING PARTS OF A
*     WATCHED WORD IS PLANNED, BUT COULD BE IMPLEMENTED EASILY IF FOUND 
*     NECESSARY.) 
* 
*     AN EXAMPLE MIGHT BE A PROCESS THAT READS RECORDS FROM A FILE UPON 
*     REQUEST.  IN THE BEGINNING THE PROCESSOR, AT INITIALIZATION TIME, 
*     IS CALLED AND DETERMINES THAT THERE IS NO WORK IN PROGRESS AND NO 
*     REQUESTS TO START SO IT GOES INTO WAIT MODE AND INFORMS THE STATUS
*     WORKLIST PROCESSOR TO RESTART IT WHEN AN ENTRY IS PLACED IN ITS 
*     INPUT QUEUE.  AT THIS POINT IT IS NOT EXECUTING AS THE STATUS WORK
*     LIST PROCESSOR IS DOING THE CHECKING FOR WORK TO BE DONE.  IN 
*     PARTICULAR THE SWLP IS CHECKING THE ENTRY COUNT OF THE QUEUE TO 
*     BE NON-ZERO.  ONCE AN ENTRY IS MADE IN THE QUEUE THE COUNTER IS 
*     BUMPED AND THE SWLP STARTS UP THE PROCESSOR.  THE PROCESSOR 
*     REALIZES THAT A REQUEST IS IN ITS INPUT QUEUE AND STARTS THE READ 
*     REQUEST (CALLING CIO TO READ THE RECORD), GOES INTO WAIT MODE,
*     AND INFORMS THE SWLP TO WATCH THE FET FOR EITHER A CHANGE IN THE
*     *IN* POINTER OR THE COMPLETE BIT BEING SET. 
* 
*     THE PROCESSOR AT THIS POINT DOES NOT CARE ABOUT ADDITIONAL
*     REQUESTS IN ITS INPUT QUEUE SINCE IT HAS ONE IN PROGRESS.  AGAIN, 
*     IT IS NOT EXECUTING AS THE SWLP IS CHECKING FOR CHANGES IN THE CIO
*     FET.  THE CHECKING DONE BY THE SWLP IS DONE USING LESS RESOURCES
*     AND MORE EFFICIENTLY THAN IF THE PROCESSOR WAS CALLED AGAIN AND 
*     AGAIN TO CHECK THE STATUS OF THE FET.  WHEN THE READ REQUEST HAS
*     BEEN AT LEAST PARTIALLY PROCESSED (CIO HAS MOVED THE *IN* POINTER)
*     THE PROCESSOR MOVES THE DATA FROM THE CIO BUFFER AND EITHER MAKES 
*     A NEW READ REQUEST, WAITS FOR THE ENTIRE REQUEST UNTIL CIO IS 
*     FINISHED, OR WAITS FOR A NEW REQUEST IN ITS INPUT Q, WHICHEVER IT 
*     DETERMINES IS THE APPROPRIATE ACTION TO TAKE. 
* 
*     2.1.3  WORK LIST ENTRY (WLE)
* 
*     WORK LIST ENTRIES PROVIDE A METHOD OF PROCESSING TRANSACTIONS THAT
*     ALLOW THE DECOUPLING OF VARIOUS PROCESSES AND EXTERNAL SERVICES 
*     NEEDED TO COMPLETE A TRANSACTION.  THE WHOLE PROCESS WORKS WITH 
*     JUST A FEW RULES: 
* 
*     1. WHEN THE FIRST ENTRY IN THE QUEUE IS MADE, A WLE REQUEST IS
*        MADE TO CAUSE THE STARTING OF THE PROCESSOR OF THAT QUEUE. 
*        (ONLY ONE WLE REQUEST IS NEEDED FOR A QUEUE) 
* 
*     2. A PROCESSOR OF A QUEUE MUST EITHER EMPTY ALL OF ITS INPUT QUEUE
*        OR MAKE ANOTHER WLE REQUEST TO RESTART ITSELF. 
* 
*     3. IF THERE ARE ANY TIMING RELATIONSHIPS BETWEEN INPUTS TO A
*        PROCESSOR THAT MUST BE PRESERVED, THEN THE TIME COUPLED
*        REQUESTS MUST BE QUEUED AND PROCESSED BY THE SAME PROCESSOR. 
* 
*     4. A PROCESSOR SHOULD ONLY RUN FOR A SHORT TIME.  IF IT HAS TOO 
*        MANY REQUESTS IN ITS QUEUE, THEN IT SHOULD STOP AND MAKE A WLE 
*        REQUEST FOR ITSELF TO START UP AT A LATER TIME.  THIS WILL 
*        ALLOW THE PROCESSORS OF ITS OUTPUT TO RUN AND ALSO ALLOW ANY 
*        SWLE REQUESTS TO BE COMPLETED IN A TIMELY MANNER.
* 
*     A PROCESSOR-S JOB IS TO TAKE ENTRIES FROM ITS INPUT QUEUE, PROCESS
*     THEM, AND PLACE THE RESULTS IN OUTPUT QUEUES.  PROCESSES THAT ARE 
*     NEAR THE OUTPUT SIDE HAVE THE HIGHEST PRIORITY.  THIS IS TO FREE
*     UP FIELD LENGTH BY PASSING DATA OUT OF THE PROGRAM.  WHEN 
*     SELECTING THE NEXT WLE TO PROCESS THE HIGHEST PRIORITY REQUEST IS 
*     DONE REGARDLESS OF REQUEST ARRIVAL TIME.  NO PROCESS, IN MAKING 
*     A QUEUE ENTRY FOR ADDITIONAL PROCESSING, CAN ASSUME OR REQUIRE
*     THAT A PROCESS RUN NEXT, JUST THAT SOMETIMES IT WILL.  THE WLE
*     CONTAINS NO DATA, IT IS JUST A SIGNAL TO START THE PROCESS, DATA
*     IS IN THE QUEUE FOR THE PROCESSOR.
* 
*     2.2  TABLE MANAGER (QUEUE MANAGER)
* 
*     THE TABLE MANAGER, WRITTEN ORIGINALLY BY R. H. GOODELL FOR USE
*     WITH *DDLCG*, IS A ROUGH EQUIVALENT TO THE STANDARD COMMON DECK 
*     *COMCMTP* WHICH CONTAINS THE COMPASS MANAGED TABLES PACKAGE.
*     THERE IS NO QUEUE MANAGER AS SUCH IN THAT THE ONLY TASKS
*     IMPLEMENTED IS THE PLACING OF ENTRIES IN QUEUES, REMOVING ENTRIES 
*     FROM QUEUES, AND REQUESTING PROCESSING OF A QUEUE VIA A WLE 
*     REQUEST, IF NEEDED.  BOTH TABLES AND QUEUES ARE MAINTAINED
*     BY THE TABLE MANAGER. 
* 
*     BASICALLY, THE TABLE MANAGER MAINTAINS A SET OF BASED ARRAY 
*     POINTERS WHICH ALL POINTS TO THE MANAGED TABLE AREA IN HIGH CORE. 
*     EACH ONE POINTING TO THE WORD WHERE THE TABLE BEGINS.  FOLLOWING
*     EACH POINTER IS A WORD CONTAINING THE NUMBER OF WORDS ALLOCATED 
*     FOR THAT PARTICULAR TABLE.  THUS, IN DEFINING THE TABLES, EACH
*     TABLE IS DEFINED BY A BASED ARRAY FOLLOWED BY A ITEM DECLARATION. 
* 
*     A CONCERTED EFFORT WAS MADE TO USE ONLY FIXED SIZED ENTRIES IN THE
*     MANAGED TABLES DUE TO THE POTENTIAL MAINTENANCE PROBLEMS OF BASING
*     ARRAYS NECESSARY TO HANDLE VARIABLE SIZED ENTRIES.
* 
*     THE TABLE MANAGER AUTOMATICALLY KEEPS THE BASED ARRAY POINTERS
*     UPDATED AND IF THE ENTRY SIZE IS FIXED, THEN ALL ENTRIES CAN BE 
*     ACCESSED SAFELY BY JUST SUBSCRIPTING AND THE PROGRAMMER NEED NOT
*     BE CONCERNED WITH KEEPING THE BASED ARRAY POINTED CORRECTLY.
* 
*     QUEUES ARE GENERALLY NOT FIXED ENTRY SIZE.  NON-FIXED ENTRY SIZED 
*     MANAGED TABLES MUST BE HANDLED DIFFERENTLY AND MUCH CARE MUST BE
*     TAKEN TO HAVE BASED ARRAYS POINTED CORRECTLY.  WHERE POSSIBLE 
*     VARIABLE ENTRY SIZED MANAGED TABLES ARE HANDLED BY USE OF AN ENTRY
*     SIZE WORD FOR EACH ENTRY.  QUEUE ENTRIES ALL HAVE A WORD COUNT
*     WORD, AN APPLICATION HEADER BLOCK WORD AND THE BODY OF THE ENTRY. 
* 
*     THE ONLY EXTENSION TO THE MANAGER, FROM THE ORIGINAL VERSION, IS
*     ADDING WORDS AND REMOVING WORDS IN THE MIDDLE OF A TABLE.  THIS IS
*     NEEDED TO ALLOW CERTAIN TABLES TO MAINTAIN ENTRIES IN SORT ORDER, 
*     SUCH AS TIMER REQUESTS. 
* 
*     2.3  OVERLAY LOADING
* 
*     OVERLAY LOADING IS DONE VIA CIO FROM A LOCAL FILE.  THIS IS SO
*     LOADING CAN BE DONE WITHOUT RECALL SINCE NOS WILL NOT ALLOW LOADER
*     CALLS WITHOUT RECALL FROM PROGRAMS OTHER THAN SUBSYSTEMS.  THE
*     INABILITY TO LOAD AN OVERLAY WITHOUT RECALL WOULD DISRUPT AND STOP
*     OTHER EXTERNAL REQUESTS THAT ARE BEING DONE WITHOUT RECALL.  IN 
*     ADDITION, DATA/TABLES WHICH ARE ONLY USED BY AN OVERLAY IS ALREADY
*     IN THE OVERLAY LOADED AS IT IS INSERTED AT INITIALIZATION TIME
*     WHEN THE OVERLAY IS WRITTEN TO THE LOCAL FILE.  EXAMPLES ARE
*     INCALL AND OUTCALL BLOCKS IN NVF AND THE CROSS REFERENCE TABLES IN
*     CS. 
* 
*     WHEN AN OVERLAY HAS BEEN LOADED, THE OVERLAY IS USED UNTIL ALL
*     WORK THAT CAN BE DONE BY IT IS COMPLETED AND A DIFFERENT OVERLAY
*     IS NEEDED.  THE EXECUTION OF OVERLAY CODE IS DONE IN SUCH A MANNER
*     THAT IT DOES NOT LOCK OUT HIGHER PRIORITY ACTIVITIES. 
* 
*     2.4  TIMER SERVICES 
* 
*     TIMER REQUESTS ARE DONE VIA A TIMER REQUEST BLOCK.  THE BLOCK 
*     CONTAINS SUCH INFORMATION AS HOW MANY SECONDS TO WAIT (DELAY TIME)
*     AND THE NUMBER OF THE QUEUE IN WHICH TO PLACE THE BLOCK ONCE THE
*     TIME HAS EXPIRED (PAST THE FIRE-TIME).
* 
*     THE BLOCK IS ASSIGNED A CANCELLATION NUMBER WHEN THE REQUEST IS 
*     RECEIVED.  THE NUMBER IS PASSED BACK TO THE REQUESTING PROC TO BE 
*     USED LATER TO IDENTIFY THE ENTRY IF THE BLOCK/REQUEST IS TO BE
*     CANCELLED.  THE BLOCK IS PLACED IN A TIMER REQUEST QUEUE.  THE
*     QUEUE IS SORTED IN ASCENDING ORDER BY FIRE-TIME.  THE FIRE TIME 
*     IS CALCUALTED TO BE THE DELAY-TIME PLUS THE CURRENT TIME. 
* 
*     AGAIN, ONCE THE FIRE TIME IS REACHED FOR A BLOCK, THE BLOCK IS
*     REMOVE FROM THE TIMER REQUEST QUEUE AND PLACED IN THE QUEUE 
*     SPECIFIED IN THE BLOCK. 
* 
*     THE UNUSED PORTIONS OF THE BLOCK CAN BE USED BY THE REQUESTING
*     PROC TO STORE SUCH THINGS AS AN ACN VALUE OR A SERVICE MESSAGE
*     I.D.
* 
*     2.5  UTILITIES
* 
*     2.5.1  BIT MANIPULATION 
* 
*     THESE PROCEDURES TAKE CARE OF FUNCTIONS NEEDED AT THE BIT LEVEL.
*     SOME FUNCTIONS INCLUDE SETTING AND CLEARING OF FLAGS IN A BIT MAP,
*     STORE FIELDS THAT ARE LESS THAN SIXTY BITS OR CROSS WORD
*     BOUNDRIES, AND INDICATE WHICH FLAG IS SET IN A BIT MAP. 
* 
*     2.5.2  CHARACTER CONVERSION 
* 
*     THESE PROCEDURES CONVERT DISPLAY CODED CHARACTERS TO ASCII
*     CHARACTERS AND VICE VERSA.
* 
*     2.5.3  FILE FUNCTIONS 
* 
*     THE ONLY PROCEDURE DEFINED PRESENTLY IS ONE TO DETERMINE HOW MANY 
*     USED AND UNUSED WORDS ARE CURRENTLY CONTAINED IN A SPECIFIED CIO
*     BUFFER. 
* 
*     2.5.4  COMMAND PARSER/RECOGNIZER
* 
*     THE COMMAND RECOGNIZER IS USED BY NVF AND CS TO DO SYNTAX AND 
*     SEMANTIC CHECKING OF OPERATOR COMMANDS.  THE RECOGNIZER IS PASSED 
*     A COMMAND SYNTAX TABLE, WHICH DEFINES THE LEGAL COMMANDS, AND THE 
*     OPERATOR TYPE-IN.  WHAT IT RETURNS IS AN ERROR CODE VALUE AND A 
*     PARAMETER LIST.  THE PARAMETER LIST IS THE COMMAND IN A STRUCTURED
*     FORMAT. 
* 
*     2.5.5  AIP INTERFACE
* 
*     THE MEANS BY WHICH DATA IS PASSED BETWEEN NAM AND NVF/CS IS TAKEN 
*     CARE OF BY THE AIP MONITOR.  THE AIP MONITOR IS A STATUS LIST 
*     DRIVEN PROCEDURE.  FOR RECEIVING DATA THE NSUP WORD IS MONITORED
*     AND IF IT CHANGES, THEN THE AIP MONITOR GETS THE DATA FROM NAM AND
*     CALLS A PROC TO DISPATCH IT TO THE APPROPRIATE NVF/CS QUEUE.  FOR 
*     SEND DATA NVF/CS MAINTAINS AN OUTGOING TRAFFIC QUEUE.  ONCE THERE 
*     ARE ONE OR MORE ENTRIES IN THE QUEUE, THE AIP MONITOR REMOVES EACH
*     ENTRY AND SENDS IT TO NAM.
* 
*     3.0  DECK/ROUTINE NAMING CONVENTIONS
* 
*     SERVICES AND SCHEDULING ROUTINE NAMES ARE ALL PREFIXED BY *SS*. 
*     THE NAMES HAVE THE FOLLOWING FORMAT:  
* 
*         SSYZZZ
* 
*     WHERE:  
*       Y = A, AIP INTERFACE ROUTINES 
*           B, BIT MANIPULATION ROUTINES
*           C, CLOCK/TIMER ROUTINES 
*           D, CHARACTER CONVERSION ROUTINES
*           F, FILE UTILITIES 
*           0, OVERLAY MANAGEMENT ROUTINES
*           R, COMMAND RECOGNITION ROUTINES 
*           S, SEQUENCING ROUTINES
*           T, TABLE/QUEUE MANAGEMENT ROUTINES
* 
*     ZZZ = FIRST LETTER OF EACH WORD OF VERB-ADJECTIVE-NOUN DESCRIBING 
*             THE ROUTINE.
* 
*     ONE EXAMPLE IS *SSBSBF*.  THIS IS A SERVICES AND SCHEDULING BIT 
*     MANIPULATION ROUTINE, WHERE *SBF* STANDS FOR  STORE BIT FIELD.
*     ANOTHER EXAMPLE IS *SSTRQE*.  THIS IS A SERVICES AND SCHEDULING 
*     TABLE/QUEUE MANAGEMENT ROUTINE, WHERE *RQE* STANDS FOR REMOVE 
*     QUEUE ENTRY.
* 
*     THE FOLLOWING IS A LIST OF ALL THE SERVICES AND SCHEDULING
*     ROUTINES GROUPED BY TYPE OF ROUTINE.
* 
*     AIP INTERFACE ROUTINES--
* 
*       SSACNI - CONTROL NETWORK INTERFACE
* 
*     BIT MANIPULATION ROUTINES-- 
* 
*       SSBCBW - CLEAR BIT IN WORD
*       SSBFPB - FIND PRIORITY BIT
*       SSBSBW - SET BIT IN WORD
*       SSBTBW - TEST BIT IN WORD 
*       SSBEBF - EXTRACT BIT FIELD
*       SSBSBF - STORE BIT FIELD
* 
*     CLOCK/TIME ROUTINES-- 
* 
*       SSCATR - ACCEPT TIMER REQUEST 
*       SSCCTR - CANCEL TIMER REQUEST 
*       SSCRTR - RETURN TIMER REQUEST 
*       SSCUTD - UPDATE TIME OF DAY 
* 
*     CHARACTER CONVERSION ROUTINES-- 
* 
*       SSDCAD - CONVERT ASCII TO DISPLAY CODE
*       SSDCDA - CONVERT DISPLAY CODE TO ASCII. 
* 
*     FILE UTILITIES--
* 
*     SSFCBS - CHECK BUFFER SPACE 
* 
*     OVERLAY MANAGEMENT ROUTINES-- 
* 
*       SSOJOP - JUMP TO OVERLAY PROGRAM
*       SSOCOL - CONTROL OVERLAY LOADING
*       SSOEOP - EXECUTE OVERLAY PROGRAM
* 
*     COMMAND RECOGNITION ROUTINES--
* 
*       SSRGNT - GET NEXT TOKEN 
*       SSRRCS - RECOGNIZE COMMAND STRING 
* 
*     SEQUENCE ROUTINES-- 
* 
*       SSSCRR - CALL REQUESTED ROUTINE.
*       SSSPAT - PROCESS ABNORMAL TERMINATION 
*       SSSAOR - ACCEPT OVERLAY REQUEST 
*       SSSAWR - ACCEPT WORKLIST REQUEST
*       SSSESP - EXECUTE STATUS (WORKLIST) PROGRAM
*       SSSEWP - EXECUTE WORKLIST PROGRAM 
*       SSSPES - PROGRAM EXECUTION SEQUENCER
*       SSSPSI - PREPARE STATISTICS INFORMATION.
*       SSSWNR - WAIT FOR NEW REQUEST 
* 
*     TABLE/QUEUE MANAGEMENT ROUTINES-- 
* 
*       SSTRCM - REQUEST CENTRAL MEMORY 
*       SSTAQE - ACCEPT QUEUE ENTRY 
*       SSTRQE - REMOVE QUEUE ENTRY 
*       SSTTMR - TABLE MANAGEMENT ROUTINES. 
*       SSTASU - ACCUMULATE STORAGE USED
*       SSTATS - ALLOCATE TABLE SPACE 
*       SSTDFL - DECREASE FIELD LENGTH
*       SSTETS - ENLARGE TABLE SPACE
*       SSTITM - INITIALIZE TABLE MANAGER 
*       SSTRTS - REMOVE TABLE SPACE 
*       SSTSDA - SET DYNAMIC AREA 
* 
*E
*     4.0  STRUCTURE CHARTS 
* 
*     THE FOLLOWING ARE STRUCTURE CHARTS FOR SERVICES AND SCHEDULING. 
*     NOT ALL THE ROUTINES ARE SHOWN, ONLY THOSE THAT CALL OTHER
*     ROUTINES. 
* 
* 
*     4.1  AIP INTERFACE ROUTINE
* 
* 
*                                        +-------------+
*                                        I             I
*                           +----------->I   CSNVDSP   I
*                           I            I             I
*                           I            +-------------+
*                           I 
*                           I            +-------------+
*                           I            I             I
*                           +----------->I   NETGETL   I
*                           I            I             I
*                           I            +-------------+
*                           I 
*      +-----------+        I            +-------------+
*      I           I        I            I             I
*      I  SSACNI   +--------+----------->I   NETPUT    I
*      I           I        I            I             I
*      +-----------+        I            +-------------+
*                           I 
*                           I            +-------------+
*                           I            I             I
*                           +----------->I   NETREL    I
*                           I            I             I
*                           I            +-------------+
*                           I 
*                           I            +-------------+
*                           I            I             I
*                           +----------->I   SSTRQE    I
*                                        I             I
*                                        +-------------+
* 
* 
* 
*      SSACNI  -- CONTROL NETWORK INTERFACE 
*      CSNVDSP -- CS/NVF DISPATCH NETWORK TRAFFIC 
*      NETGETL -- RECEIVE NETWORK TRAFFIC 
*      NETPUT  -- SEND NETWORK TRAFFIC
*      NETREL  -- RELEASE DEBUG TRACE FILE
*      SSTRQE  -- REMOVE QUEUE ENTRY
*E
*     4.2  CLOCK/TIMER ROUTINES 
* 
*                          +-------------+
*                          I             I
*                          I   SSCATR    I
*                          I             I
*                          +------+------+
*                                 I 
*                +----------------+-----------------+ 
*                I                                  I 
*         +------+-----+                     +------+------+
*         I            I                     I             I
*         I  SSCUTD    I                     I   SSTETS    I
*         I            I                     I             I
*         +------------+                     +-------------+
* 
* 
* 
* 
*              +-------------+          +-------------+ 
*              I             I          I             I 
*              I   SSCCTR    +--------->I   SSTRTS    I 
*              I             I          I             I 
*              +-------------+          +-------------+ 
* 
* 
* 
* 
* 
*                           +-------------+ 
*                           I             I 
*                           I   SSCRTR    I 
*                           I             I 
*                           +-------------+ 
*                                  I
*                 +----------------+----------------+ 
*                 I                                 I 
*          +------+------+                   +------+------+
*          I             I                   I             I
*          I   SSTAQE    I                   I   SSTRQE    I
*          I             I                   I             I
*          +-------------+                   +-------------+
* 
* 
*      SSCATR -- ACCEPT TIMER REQUEST 
*      SSCUTD -- UPDATE TIME OF DAY 
*      SSTETS -- ENLARGE TABLE SPACE
*      SSCCTR -- CANCEL TIMER REQUEST 
*      SSCTRS -- REMOVE TABLE SPACE 
*      SSCRTR -- RETURN TIMER REQUEST 
*      SSTAQE -- ACCEPT QUEUE ENTRY 
*      SSTRQE -- REMOVE QUEUE ENTRY 
*E
* 
* 
*     4.2  CLOCK/TIMER ROUTINES (CONT.) 
* 
* 
* 
* 
* 
*                                            +-------------+
*                                            I             I
*                            +-------------->I    PDATE    I
*                            I               I             I
*                            I               +-------------+
*                            I
*                            I               +-------------+
*                            I               I             I
*                            +-------------->I    DATE     I
*                            I               I             I
*                            I               +-------------+
*                            I
*      +-------------+       I               +-------------+
*      I             I       I               I             I
*      I   SSCUTD    +-------+-------------->I    CLOCK    I
*      I             I       I               I             I
*      +-------------+       I               +-------------+
*                            I
*                            I               +-------------+
*                            I               I             I
*                            +-------------->I    RTIME    I
*                            I               I             I
*                            I               +-------------+
*                            I
*                            I               +-------------+
*                            I               I             I
*                            +-------------->I   SSSAWR    I
*                                            I             I
*                                            +-------------+
* 
* 
*      SSCUTD -- UPDATE TIME OF DAY 
*      PDATE  -- GET PACKED DATE AND TIME 
*      DATE   -- GET DATE 
*      CLOCK  -- GET TIME (DISPLAY CODE)
*      RTIME  -- GET AMOUNT OF TIME SINCE DEADSTART 
*      SSSAWR -- ACCEPT WORKLIST REQUEST
*E
*     4.3  OVERLAY MANAGEMENT ROUTINES
* 
* 
* 
*                         +-------------+ 
*                         I             I 
*                         I   SSOCOL    I 
*                         I             I 
*                         +------+------+ 
*                                I
*           +--------------------+-----------------------+
*           I                    I                       I
*    +------+------+      +------+------+         +------+------
*    I             I      I             I         I             I 
*    I    READ     I      I   SSSAWR    I         I   SSSTSDA   I 
*    I             I      I             I         I             I 
*    +-------------+      +-------------+         +-------------+ 
* 
* 
*                                        +-------------+
*                                        I             I
*                             +--------->I   SSBCBW    I
*                             I          I             I
*                             I          +-------------+
*                             I 
*                             I          +-------------+
*                             I          I             I
*                             +--------->I   SSBFPB    I
*    +-------------+          I          I             I
*    I             I          I          +-------------+
*    I   SSOEOP    +----------+ 
*    I             I          I          +-------------+
*    +-------------+          I          I             I
*                             +--------->I   SSOJOP    I
*                             I          I             I
*                             I          +-------------+
*                             I 
*                             I          +-------------+
*                             I          I             I
*                             +--------->I   SSSAWR    I
*                                        I             I
*                                        +-------------+
* 
* 
*      SSOCOL -- CONTROL OVERLAY LOADING
*      READ   -- INITIATE CIO READ ON FILE
*      SSSAWR -- ACCEPT WORKLIST REQUEST
*      SSTSDA -- SET DYNAMIC TABLE AREA 
*      SSOEOP -- EXECUTE OVERLAY PROGRAM
*      SSBCBW -- CLEAR BIT IN WORD
*      SSBFPB -- FIND PRIORITY BIT
*      SSOJOP -- JUMP TO OVERLAY PROGRAM
*E
* 
* 
*     4.4  COMMAND RECOGNITION ROUTINES 
* 
* 
* 
* 
*                      +-------------+
*                      I             I
*                      I   SSRGNT    I
*                      I             I
*                      +------+------+
*                             I 
*             +---------------+---------------+ 
*             I                               I 
*      +------+------+                 +------+------+
*      I             I                 I             I
*      I   SSBEBF    I                 I   SSBSBF    I
*      I             I                 I             I
*      +-------------+                 +-------------+
* 
* 
* 
*                      +-------------+
*                      I             I
*                      I   SSRRCS    I
*                      I             I
*                      +------+------+
*                             I 
*           +-----------------+------------------+
*           I                 I                  I
*    +------+------+   +------+------+    +------+-------+
*    I             I   I             I    I              I
*    I   SSRGNT    I   I   SSBEBF    I    I   SSBSBF     I
*    I             I   I             I    I              I
*    +-------------+   +-------------+    +--------------+
* 
* 
*      SSRGNT -- GET NEXT TOKEN 
*      SSBEBF -- EXTRACT BIT FIELD
*      SSBSBF -- STORE BIT FIELD
*      SSRRCS -- RECOGNIZE COMMAND STRING 
*E
* 
* 
*     4.5  SEQUENCE ROUTINES
* 
* 
* 
* 
*         +-------------+             +-------------+ 
*         I             I             I             I 
*         I   SSSAOR    +------------>I   SSBSBW    I 
*         I             I             I             I 
*         +-------------+             +-------------+ 
* 
* 
* 
* 
* 
*                       +-------------+ 
*                       I             I 
*                       I   SSSAWR    I 
*                       I             I 
*                       +------+------+ 
*                              I
*               +--------------+---------------+
*               I                              I
*        +------+-------+               +------+------+ 
*        I              I               I             I 
*        I   SSSAOR     I               I   SSBSBW    I 
*        I              I               I             I 
*        +--------------+               +-------------+ 
* 
* 
* 
* 
* 
* 
*        +-------------+                +-------------+ 
*        I             I                I             I 
*        I   SSSESP    +--------------->I   SSSCRR    I 
*        I             I                I             I 
*        +-------------+                +-------------+ 
* 
* 
*      SSSAOR -- ACCEPT OVERLAY REQUEST 
*      SSSCRR -- CALL REQUESTED ROUTINE 
*      SSSAWR -- ACCEPT WORKLIST REQUEST
*      SSBSBW -- SET BIT IN WORD
*      SSSESP -- EXECUTE STATUS WORKLIST PROGRAM
*E
* 
* 
*     4.5  SEQUENCE ROUTINES (CONT.)
* 
* 
* 
* 
*                       +-------------+ 
*                       I             I 
*                       I   SSSEWP    I 
*                       I             I 
*                       +------+------+ 
*                              I
*            +-----------------+------------------+ 
*            I                 I                  I 
*     +------+------+   +------+------+    +------+------+
*     I             I   I             I    I             I
*     I   SSSCRR    I   I   SSBCBW    I    I    SSBFBP   I
*     I             I   I             I    I             I
*     +-------------+   +-------------+    +-------------+
* 
* 
* 
*                       +-------------+ 
*                       I             I 
*                       I   SSSPSI    I 
*                       I             I 
*                       +------+------+ 
*                              I
*              +---------------+-----------------+
*              I                                 I
*       +------+------+                   +------+------+ 
*       I             I                   I             I 
*       I   NETLGS    I                   I    XCDD     I 
*       I             I                   I             I 
*       +-------------+                   +-------------+ 
* 
* 
*      SSSEWP -- EXECUTE WORKLIST PROGRAM 
*      SSSCRR -- CALL REQUESTED ROUTINE 
*      SSBCBW -- CLEAR BIT IN WORD
*      SSBFPB -- FIND PRIORITY BIT
*      SSSPSI -- PREPARE STATISTICS INFORMATION 
*      NETLGS -- LOG NETWORK STATISTICS 
*      XCDD   -- CONVERT INTEGER TO DISPLAY CODE DECIMAL
*E
* 
* 
*     4.5  SEQUENCE ROUTINES (CONT.)
* 
* 
* 
* 
* 
*                                       +-------------+ 
*                                       I             I 
*                         +------------>I   MESSAGE   I 
*                         I             I             I 
*                         I             +-------------+ 
*                         I 
*                         I             +-------------+ 
*                         I             I             I 
*                         +------------>I  REPRIEVE   I 
*                         I             I             I 
*                         I             +-------------+ 
*                         I 
*    +-------------+      I             +-------------+ 
*    I             I      I             I             I 
*    I   SSSPAT    +------+------------>I     DMB     I 
*    I             I      I             I             I 
*    +-------------+      I             +-------------+ 
*                         I 
*                         I             +-------------+ 
*                         I             I             I 
*                         +------------>I   NETSTC    I 
*                         I             I             I 
*                         I             +-------------+ 
*                         I 
*                         I             +-------------+ 
*                         I             I             I 
*                         +------------>I   WRITER    I 
*                                       I             I 
*                                       +-------------+ 
* 
* 
*      SSSPAT   -- PROCESS ABNORMAL TERMINATION 
*      MESSAGE  -- SEND MESSAGE TO DAYFILE
*      REPRIEVE -- REPRIEVE PROCESSOR 
*      DMB      -- GENERATE BINARY DUMP 
*      NETSTC   -- FLUSH NAM STATISTICS 
*      WRITER   -- FLUSH CIO BUFFER AND EOR ON FILE 
*E
* 
* 
* 
*     4.5  SEQUENCE ROUTINES (CONT.)
* 
* 
* 
* 
* 
*                                     +-------------+ 
*                                     I             I 
*                       +------------>I   NETCHEK   I 
*                       I             I             I 
*                       I             +-------------+ 
*                       I 
*                       I             +-------------+ 
*                       I             I             I 
*                       +------------>I   SSCUTD    I 
*                       I             I             I 
*                       I             +-------------+ 
*                       I 
*    +-------------+    I             +-------------+ 
*    I             I    I             I             I 
*    I   SSSPES    +----+------------>I   SSSESP    I 
*    I             I    I             I             I 
*    +-------------+    I             +-------------+ 
*                       I 
*                       I             +-------------+ 
*                       I             I             I 
*                       +------------>I   SSSEWP    I 
*                       I             I             I 
*                       I             +-------------+ 
*                       I 
*                       I             +-------------+ 
*                       I             I             I 
*                       +------------>I   SSSWNR    I 
*                                     I             I 
*                                     +-------------+ 
* 
* 
*      SSSPES -- PROGRAM EXECUTION SEQUENCE 
*      NETCHEK - UPDATE NSUP WORD 
*      SSCUTD -- UPDATE TIME OF DAY 
*      SSSESP -- EXECUTE STATUS WORKLIST PROGRAM
*      SSSEWP -- EXECUTE WORKLIST PROGRAM 
*      SSSWNR -- WAIT FOR NEW REQUEST 
*E
* 
* 
*     4.5  SEQUENCE ROUTINES (CONT.)
* 
* 
* 
* 
* 
* 
*                      +-------------+
*                      I             I
*                      I   SSSWNR    I
*                      I             I
*                      +------+------+
*                             I 
*            +----------------+----------------+
*            I                I                I
*     +------+------+  +------+------+  +------+------+ 
*     I             I  I             I  I             I 
*     I   NETWAIT   I  I   RECALL    I  I   SSTDFL    I 
*     I             I  I             I  I             I 
*     +-------------+  +-------------+  +-------------+ 
* 
* 
*      SSSWNR  -- WAIT FOR NEW REQUEST
*      NETWAIT -- REQUEST NAM TO ROLLOUT PROGRAM
*      RECALL  -- RETURN CONTROL AFTER COMPLETE BIT IS SET
*      SSTDFL  -- DECREASE FIELD LENGTH 
*E
* 
* 
*     4.6  TABLE/QUEUE MANAGEMENT ROUTINES
* 
* 
* 
* 
* 
*                      +-------------+
*                      I             I
*                      I   SSTAQE    I
*                      I             I
*                      +------+------+
*                             I 
*            +----------------+----------------+
*            I                I                I
*     +------+------+  +------+------+  +------+------+ 
*     I             I  I             I  I             I 
*     I    MOVEI    I  I   SSTATS    I  I   SSSAWR    I 
*     I             I  I             I  I             I 
*     +-------------+  +-------------+  +-------------+ 
* 
* 
* 
*                      +-------------+
*                      I             I
*                      I   SSTRQE    I
*                      I             I
*                      +------+------+
*                             I 
*                +------------+------------+
*                I                         I
*         +------+------+           +------+------+ 
*         I             I           I             I 
*         I    MOVEI    I           I   SSTRTS    I 
*         I             I           I             I 
*         +-------------+           +-------------+ 
* 
* 
*      SSTAQE -- ACCEPT QUEUE ENTRY 
*      MOVEI  -- MOVE WORDS (INDIRECT ADDRESSING) 
*      SSTATS -- ALLOCATE TABLE SPACE 
*      SSSAWR -- ACCEPT WORKLIST REQUEST
*      SSTRQE -- REMOVE QUEUE ENTRY 
*      SSTRTS -- REMOVE TABLE SPACE 
*E
* 
* 
*     4.6  TABLE/QUEUE MANAGEMENT ROUTINES (CONT.)
* 
* 
* 
*                       +-------------+ 
*                       I             I 
*                       I   SSTRTS    I 
*                       I             I 
*                       +------+------+ 
*                              I
*                 +------------+------------+ 
*                 I                         I 
*          +------+------+           +------+------+
*          I             I           I             I
*          I    MOVEI    I           I   SSTASU    I
*          I             I           I             I
*          +-------------+           +-------------+
* 
* 
* 
*                       +-------------+ 
*                       I             I 
*                       I   SSTSDA    I 
*                       I             I 
*                       +------+------+ 
*                              I
*                  +-----------+------------+ 
*                  I                        I 
*           +------+------+          +------+------+
*           I             I          I             I
*           I   SSTASU    I          I     RFL     I
*           I             I          I             I
*           +-------------+          +-------------+
* 
* 
*      SSTRTS -- REMOVE TABLE SPACE 
*      MOVEI  -- MOVE WORDS (INDIRECT ADDRESSING) 
*      SSTASU -- ACCUMULATE STORAGE USED
*      SSTSDA -- SET DYNAMIC TABLE AREA 
*      RFL    -- REQUEST FIELD LENGTH 
* 
*E
*     5.0  TABLE STRUCTURES 
* 
*     5.1 POINTER TABLE-- 
* 
*      THIS TABLE CONTAINS POINTERS TO IMPORTANT PARTS OF THE PROGRAM.
* 
*T 42/NAME,18/ADDR
* 
*      NAME - DISPLAY CODE POINTER NAME.
*      ADDR - POINTER VALUE.
* 
* 
*     5.2 WORKLIST REQUEST QUEUE
* 
*     THIS IS A ONE WORD ITEM THAT HAS A BIT SET FOR EACH TYPE ZERO 
*     WORKLIST REQUEST TO BE EXECUTED.
* 
*T 12/RES,48/BIT$MAP
* 
*     RES - UNUSED FIELD. 
*     BIT$MAP - THE FIRST BIT ON THE LEFT CORRESPONDS TO THE FIRST
*               WORKLIST DEFINITION AND HAS THE HIGHEST PRIORITY, THE 
*               SECOND BIT CORRESPONDS TO THE SECOND WORKLIST, AND SO 
*               ON. 
*E
*     5.3 WORKLIST DEFINITION TABLE 
* 
*     THIS TABLE CONTAINS THE WORKLIST DEFINITIONS FOR THE PROGRAM. 
* 
*     THERE ARE THREE FORMATS FOR AN ENTRY IN THIS TABLE.  THEY ARE AS
*     FOLLOWS:  
* 
*     WORKLIST TYPE ZERO -- RESIDENT ROUTINE
* 
*T 12/TYPE0,30/RES,18/RADD
* 
*     TYPE0 - WORKLIST TYPE (SET TO ZERO) 
*     RES   - UNUSED FIELD
*     RADD  - ROUTINE ENTRY POINT ADDRESS 
* 
* 
*     WORKLIST TYPE ONE -- STATUS WORKLIST DRIVEN.
* 
*T 12/TYPE1,30/RES,18/CADDR 
* 
*     TYPE1 - WORKLIST TYPE (SET TO ONE)
*     RES   - UNUSED FIELD
*     CADDR - INTERUPT CELL ADDRESS 
* 
* 
*     WORKLIST TYPE TWO -- OVERLAY RESIDENT ROUTINE.
* 
*T 12/TYPE2,12/OVNUM,12/OVEPT,24/RES
* 
*     TYPE2 - WORKLIST TYPE (SET TO TWO)
*     OVNUM - OVERLAY NUMBER
*     OVEPT - OVERLAY ENTRY POINT NUMBER
*     RES   - UNUSED FIELD
*E
*     5.4 QUEUE TO WORKLIST DEFINITION TABLE
* 
*     EACH ENTRY IN THIS TABLE CORRESPONDS TO A TABLE/QUEUE MANAGED 
*     BY THE TABLE MANAGER.  EACH ENTRY CONTAINS A POINTER TO THE 
*     WORKLIST DEFINITION ENTRY THAT MUST BE INVOKED WHEN AN ENTRY IS 
*     MADE IN THE QUEUE.
* 
*T TBL1 60/WLD$NUM
*T TBL2 60/WLD$NUM
* 
*     WLD$NUM - WORKLIST DEFINITION NUMBER
* 
*E
*     5.5 STATUS WORKLIST DEFINITION
*     STATUS WORKLIST DEFINITIONS 
* 
*     THIS TABLE CONTAINS THE CURRENT CONDITIONS TO BE WATCHED FOR, 
*     THE MONITORS AND THE ADDRESSES TO BE EXECUTED WHEN THE
*     CONDITIONS CHANGE.
* 
*T WORD1 6/RES,18/ADDR1,18/ADDR2,18/RADDR 
*T WORD2 60/INIT1 
*T WORD3 60/INIT2 
* 
*     RES - UNUSED FIELD
*     ADDR1 - ADDRESS OF FIRST CELL TO BE WATCHED 
*     ADDR2 - ADDRESS OF SECOND CELL TO BE WATCHED
*     RADDR - ENTRY POINT ADDRESS OF ROUTINE TO CALL
*     INIT1 - INITIAL VALUE OF FIRST CELL 
*     INIT2 - INITIAL VALUE OF SECOND CELL
* 
* 
*     5.6 OVERLAY DEFINITION TABLE
* 
*     THIS TABLE IS THE INDEX FOR THE OVERLAY FILE.  IT CONTAINS THE
*     OVERLAY NAMES, ENTRY POINTS, AND DISK ADDRESSES FOR THE 
*     OVERLAYS. 
* 
*T WORD1 42/OVNAME,18/FWA 
*T WORD2 12/LEVEL,12/RES,18/PADDR,18/LWA
* 
*     OVNAME - OVERLAY NAME 
*     FWA    - FIRST WORD ADDRESS OF OVERLAY
*     LEVEL  - OVERLAY LEVEL
*     RES    - UNUSED FIELD 
*     PADDR  - RELATIVE PRU ADDRESS ON OVERLAY FILE 
*     LWA    - LAST WORD ADDRESS OF OVERLAY 
*E
*     5.7 OVERLAY CONTROL ITEMS 
* 
*     THE FOLLOWING ITEMS ARE USED FOR LOADING AND EXECUTING OVERLAYS.
* 
*     OVNUM = PRIMARY LEVEL NUMBER OF OVERLAY CURRENTLY EXECUTING 
*     OVENUM = OVERLAY ENTRY POINT NUMBER TO EXECUTE
*     OVC   = NUMBER OF OVERLAY REQUESTS MADE 
* 
* 
*     5.8 OVERLAY REQUEST TABLE 
* 
*     THIS IS A BIT MAP WHERE EACH BIT CORRESPONDS TO AN OVERLAY THAT 
*     NEEDS TO BE LOADED. 
* 
*T 12/RES,42/BIT$MAP
* 
*     RES - UNUSED FIELD
*     BIT$MAP - BEGINNING WITH THE LEFT MOST BIT:  BIT ONE CORRESPONDS
*               TO OVERLAY ONE, BIT TWO TO OVERLAY TWO, AND SO ON.
* 
* 
*     5.9 ROLLOUT TABLE 
* 
*     THIS TABLE USED TO CHECK IF THERE ARE ANY OUTSTANDING EXTERNAL
*     REQUESTS BEING MADE.  EACH ENTRY POINTS TO A WORD AND THE BIT 
*     POSITION OF THE COMPLETE BIT. 
* 
*T WORD1 48/RES,12/ECOUNT 
*T WORD2+ 30/BPOS,30/WADDR
* 
*     RES - UNUSED FIELD
*     ECOUNT - ENTRY COUNT
*     BPOS   - BIT POSITION OF COMPLETE BIT 
*     WADDR  - POINTER TO WORD CONTAINING COMPLETE BIT
* 
*E
*     5.10 TIMER REQUEST BLOCK
* 
*     THIS IS THE FORMAT OF THE BLOCK USED WHEN MAKING A TIMER REQUEST. 
* 
*T WORD1 48/RES,12/ECOUNT 
*T WORD2 18/RES,18/CNUM,24/RES
*T WORD3 60/RES 
*T WORD4 24/FTIME,18/DELAY,18/QNUM
* 
*     RES - RESEVRED FOR USE BY PROGRAM (NVF/CS)
*     ECOUNT - ENTRY WORD COUNT (SET TO FOUR) 
*     CNUM   - CANCEL NUMBER
*     FTIME  - FIRE TIME (TIME IN WHICH TO PUT THIS BLOCK INTO A Q) 
*     DELAY  - DELAY TIME (NUMBER OF SECONDS TO ADD TO CURRENT TIME 
*                           TO DETERMINE THE FIRE TIME) 
*     QNUM   - NUMBER OF THE QUEUE TO PLACE THIS BLOCK IN AFTER IT
*              HAS REACHED ITS FIRE TIME
* 
* 
*     5.11 CURRENT TIME AND DAY 
* 
*     THIS BLOCK CONTAINS THE CURRENT TIME AND DATE TO BE USED BY 
*     SERVICES AND SCHEDULING, AND BY THE PROGRAM (NVF/CS)
* 
*T WORD1 30/RES,30/PDATE
*T WORD2 60/DDATE 
*T WORD3 60/DTIME 
*T WORD4 24/RTSEC,36/RTMIL
*T WORD5 24/FTIME,36/RES
* 
*     RES - UNUSED FIELD
*     PDATE - PACKED DATE AND TIME
*     DDATE - DISPLAY CODED DATE
*     DTIME - DISPLAY CODED TIME
*     RTSEC - NUMBER OF SECONDS SINCE DEADSTART 
*     RTMIL - MILLISECONDS
*     FTIME - NEXT FIRE TIME (WITH RELATIION TO RTSEC)
*E
* 
*     5.12  TYPICAL QUEUE ENTRY 
* 
*     THE FOLLOWING IS THE FORMAT FOR A TYPICAL QUEUE ENTRY IN NVF
*     OR CS.
* 
*T WORD1,48/RES,12/ECOUNT 
*T WORD2,60/ABHWORD 
*T WORD3,60/ENTRY 
*T WORD4,60/
*                 . 
*                 . 
*                 . 
*T,ECOUNT,60/ 
* 
*      RES      - USED BY PROGRAM 
*      ECOUNT   - ENTRY WORD COUNT
*      ABHWORD  - APPLICTAION BLOCK HEADER WORD 
*      ENTRY    - BODY OF QUEUE ENTRY 
*E
*     6.0  DEBUGGING TIPS 
* 
*     THE FOLLOWING LIST ARE THINGS TO LOOK AT OR LOOK FOR WHEN READING 
*     OR ANALYZING AN NVF/CS DUMP.  THIS LIST IS NOT IN ANY SPECIFIC
*     ORDER.  THE ITEMS THAT APPLY DEPEND ON WHAT THE PROBLEM IS. 
* 
*       1. FOR QUICK REFERENCE TO KEY PLACES IN A DUMP USE THE POINTER
*           TABLE WHICH SHOULD BE THE FIRST THING LOADED AFTER THE
*           LOADER TABLE.  IT WILL POINT TO SUCH THINGS AS THE NSUP WORD
*           AND THE BEGINNING OF THE MANAGED TABLES POINTERS. 
* 
*       2. CHECK THE REPRIEVE BLOCK FOR ANY APPLICABLE INFORMATION.  FOR
*           THE FORMAT OF THE BLOCK SEE THE NOS VOLUME 4 REFERENCE
*           MANUEL. 
* 
*       3. THE FIRST WORD RIGHT AFTER THE REPRIEVE BLOCK CONTAINS THE 
*            CONTENTS OF *SYS=* JUST AFTER THE ABORT. 
* 
*       4. CHECK OVNUM, OVENUM, ORQ, AND ORC FOR THE STATE OF OVERLAY 
*            LOADING.  THESE ITEMS WILL TELL YOU SUCH THINGS AS WHAT
*            OVERLAY IS LOADED, WHICH ENTRY POINT IS BEING EXECUTED, AND
*            WHAT OVERLAYS STILL NEED TO BE LOADED
* 
*       5. CHECK THE CONTENTS OF WCB, ABH, AND MSG BUFFERS. 
* 
*       6. CHECK FOR MANAGED TABLES CONTAINING DATA.  THESE ARE ALL THE 
*            TABLES WHOSE LENGTH VALUES ARE NON-ZERO. 
* 
*       7. CHECK THE CONTENTS OF MEMLOC.  THIS WILL TELL YOU WHERE THE
*            MANAGED TABLE AREA BEGINS. 
* 
*       8. TO VERIFY THAT THE LOAD MAP MATCHES THE DUMP, THE BUILD DATE 
*            AND TIME INDICATED IN THE COMMENT PORTION OF PROC *SSSPAT* 
*            (IN THE LOAD MAP) SHOULD MATCH THE DATE AND TIME FOUND 
*            RIGHT AFTER THE POINTER TABLE. 
* 
*E
# 
*ENDTEXT
*ENDIF
# TITLE SSSPES - PROGRAM EXECUTION SEQUENCER.                          #
  
      BEGIN # SSSPES #
# 
**    SSSPES - PROGRAM EXECUTION SEQUENCER. 
* 
*     S. H. FISCHER.         81/08/27.
* 
*     THIS IS THE MAIN LOOP.
* 
*     PROC SSSPES 
* 
*     ENTRY      NONE.
* 
*     EXIT       NEVER. 
* 
*     METHOD     TRY AND FIND WORK TO TO, IF NONE CALL IDLE ROUTINE 
*                AND REPEAT.
* 
# 
  
  
  
  
# 
****  PROC SSSPES - XREF LIST.
# 
      XREF
        BEGIN 
        PROC NETCHEK;        # CHECK WORKLIST PROCESSING COMPLETION    #
        PROC SSCUTD;         # UPDATE TIME OF DAY                      #
        PROC SSSESP;         # EXECUTE STATUS PROGRAM                  #
        PROC SSSEWP;         # EXECUTE WORKLIST PROGRAM                #
        PROC SSSWNR;         # WAIT NEW REQUEST                        #
        END 
# 
****
# 
  
  
  
  
      ITEM ACTIVE B;
  
  
  
  
TOP:             # TOP OF MAIN LOOP    #
  
      NETCHEK;               # CHECK WORKLIST PROCESSING  COMPLETION   #
  
      SSCUTD;                # UPDATE TIME OF DAY                      #
  
      SSSESP( ACTIVE );      # EXECUTE STATUS PROGRAM                  #
      IF ACTIVE THEN GOTO TOP;
  
      SSSEWP( ACTIVE );      # EXECUTE WORKLIST PROGRAM                #
      IF ACTIVE THEN GOTO TOP;
  
      SSSWNR;                # WAIT NEW REQUEST                        #
  
      GOTO TOP; 
  
  
  
  
      END # SSSPES #
      TERM
