QAC 
          IDENT  QAC,PRS
          PERIPH J
          BASE   MIXED
          SST 
*COMMENT  QAC - QUEUE ACCESS. 
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          TITLE  QAC - QUEUE ACCESS.
  
 QUAL$    EQU    1           DEFINE UNQUALIFIED COMMON DECKS
          SPACE  4,10 
*****     QAC - QUEUE ACCESS. 
*         R. A. JAPS.        76/01/12.
*         R. A. JAPS.        78/01/30. (RESEQUENCED). 
*         B. M. SLIWINSKI.   81/09/30.  (MODIFIED)
          SPACE  4,20 
***       *QAC* IS THE STANDARD INTERFACE TO ALTER OR ACCESS
*         FILES IN THE QFT AND JOBS IN THE EJT SATISFYING 
*         A GIVEN SELECTION CRITERIA.  *QAC* CAN PERFORM ONE
*         OF THREE FUNCTIONS. 
*         1.  ALTER - CHANGES THE STATE OF QUEUED FILES AND 
*             EXECUTING JOBS BY CHANGING SELECTED FIELDS IN 
*             THE QFT, EJT AND SYSTEM SECTOR. 
*             THE CALLING JOB CANNOT BE ALTERED BY *QAC*. 
*         2.  GET - ATTACHES TO THE EJT ENTRY OF THE CALLING
*             ROUTINE THE BEST QUEUED FILE SATISFYING THE 
*             SELECTION CRITERIA. 
*         3.  PEEK - RETURNS SELECTED INFORMATION FOR EACH
*             QUEUED FILE AND EXECUTING JOB THAT SATISFIES
*             THE SELECTION CRITERIA. 
* 
*         *QAC* MAY BE CALLED BY A SUBSYSTEM OR A USER PROGRAM. 
*         A USER PROGRAM MAY ALTER OR SELECT ONLY THOSE ENTRIES 
*         WHICH HAVE A FAMILY NAME AND USER NAME MATCHING THAT
*         OF THE CALLER.  ALSO, A USER CALL MAY NOT ALTER THE 
*         PRIORITY OF ANY ENTRY.
          SPACE  4,20 
***       CALL. 
* 
*T        18/ *QAC* , 1/ , 1/R, 4/ , 18/  , 18/ ADDR
* 
*                R = RECALL BIT. (OPTIONAL) 
*                ADDR = FWA OF PARAMETER BLOCK. 
* 
*         THE *QAC* PARAMETER BLOCK IS DIVIDED INTO THREE 
*         SECTIONS - THE REQUEST PREFIX, SELECTION CRITERIA 
*         AND FUNCTION CRITERIA PORTIONS. 
* 
*         ALL FIELDS WHICH ARE RESERVED FOR CDC MUST BE SET TO
*         ZERO WHEN REQUESTS ARE GENERATED TO AVOID POSSIBLE
*         FUTURE INCOMPATIBILITIES. 
  
  
***       REQUEST PREFIX PORTION. 
* 
*T W0     42/ LOCAL FILE NAME, 8/ ERR, 9/ FCN, 1/C
*T,W1     35/ RESERVED, 7/ LEN, 18/ FIRST 
*T,W2     42/ 0, 18/ IN 
*T,W3     42/ 0, 18/ OUT
*T,W4     12/ FNT, 12/ ORDINAL, 12/ QUEUE, 6/ RES, 18/ LIMIT
* 
*         LOCAL FILE NAME.
*                LOCAL FILE NAME TO BE ASSIGNED TO A QUEUED FILE
*                WHEN THE FILE IS ATTACHED TO THE EJT OF THE CALLER.
*                IF THIS FIELD IS ZERO, *QAC* ASSIGNS THE JSN 
*                AS THE LOCAL FILE NAME.
*                *QAC* RETURNS THE NAME OF THE ATTACHED FILE ON A 
*                *GET* REQUEST. 
*                ON A DUPLICATE FILE FOUND ERROR, *QAC* RETURNS 
*                THE NAME OF THE DUPLICATE FILE IN THIS FIELD.
* 
*         ERR    ERROR STATUS.
*                THIS FIELD MUST BE ZERO ON THE CALL. 
*                SEE DESCRIPTION OF ERROR CODES RETURNED BELOW. 
* 
*         FCN    FUNCTION CODE. 
*                THIS FIELD IS REQUIRED FOR ALL FUNCTIONS.
*                1 = ALTER
*                2 = GET (ALSO USED FOR EXTENDED GET) 
*                3 = PEEK 
* 
*         C      COMPLETION BIT.
*                THIS BIT MUST BE ZERO ON THE CALL. 
*                *QAC* WILL SET THIS BIT WHEN THE REQUEST IS COMPLETE.
* 
*         RESERVED  RESERVED FOR CDC.  MUST BE SET TO ZERO. 
* 
*         LEN    LENGTH OF PARAMETER BLOCK - 5. 
*                THE REQUIRED LENGTH FOR EACH FUNCTION IS AS FOLLOWS. 
*                ALTER = 12  (17) 
*                GET = 11  (16) 
*                PEEK = 11  (16)
*                EXTENDED GET = 78
* 
*                NOTE THAT THE ACTUAL NUMBER OF WORDS REQUIRED FOR
*                AN EXTENDED *GET* REQUEST IS 80.  HOWEVER, 78 IS 
*                USED IN THE REQUEST BLOCK. 
* 
*         FIRST  FWA OF THE DATA BUFFER.
*                FOR THE *ALTER* FUCTION, THIS IS THE FWA OF THE
*                OPTIONAL DAYFILE MESSAGE TO BE ISSUED WHEN THE 
*                ABORT JOB/EVICT FILE *ALTER* FLAG IS SET OR THE
*                FWA OF THE DAYFILE MESSAGE ISSUED WHEN THE COMMENT 
*                TO DAYFILE *ALTER* FLAG OR *CFO* *ALTER* FLAG IS SET.
*                FOR THE *PEEK* FUNCTION, THIS IS THE FWA OF THE
*                REPLY BUFFER.  IT IS REQUIRED ONLY IF ANY *PEEK* 
*                INFORMATION BITS ARE SET.
* 
*         IN     IN POINTER.
*                FOR THE *ALTER* FUNCTION, THIS IS THE LWA+1 OF THE 
*                DAYFILE MESSAGE TO BE ISSUED WHEN THE ABORT JOB/EVICT
*                FILE *ALTER* FLAG, COMMENT TO DAYFILE *ALTER*
*                FLAG OR *CFO* *ALTER* FLAG IS SET. 
*                FOR THE *PEEK* FUNCTION, *QAC* WILL RETURN THE LWA+1 
*                OF THE RETURNED INFORMATION IN THE REPLY BUFFER. 
* 
*         OUT    OUT POINTER. 
*                FOR THE *ALTER* FUNCTION, THIS IS THE FWA OF THE 
*                DAYFILE MESSAGE ISSUED WHEN THE ABORT JOB/EVICT
*                FILE *ALTER* FLAG, COMMENT TO DAYFILE *ALTER*
*                FLAG OR *CFO* *ALTER* FLAG IS SET. 
*                FOR THE *PEEK* FUNCTION, *QAC* WILL RETURN REPLY 
*                ENTRIES STARTING AT THIS ADDRESS.
* 
*         FNT    NFL FNT ORDINAL. 
*                ON THE *GET* FUNCTION, *QAC* RETURNS THE NFL FNT 
*                ORDINAL OF THE ATTACHED FILE.
* 
*         ORDINAL  ORDINAL IN THE EJT/QFT.
*                THIS FIELD IS USED FOR ALL FUNCTIONS WHEN THE
*                SPECIFIC ORDINAL SELECTION FLAG IS SET.  THIS FIELD
*                MUST THEN CONTAIN THE QFT/EJT ORDINAL OF THE 
*                FILE/JOB TO BE SELECTED. 
*                FOR THE *GET* FUNCTION, *QAC* RETURNS THE QFT ORDINAL
*                OF THE ATTACHED FILE.
*                FOR THE *PEEK* FUNCTION, THIS IS THE ORDINAL 
*                WHERE *QAC* WILL BEGIN TO SCAN THE EJT/QFT.  ON AN 
*                INTERRUPTED *PEEK* SCAN, *QAC* WILL RETURN THE 
*                ORDINAL WHERE THE SCAN IS TO RESTART ON THE NEXT 
*                *PEEK* REQUEST.  A ZERO WILL INDICATE THE SCAN IS
*                COMPLETE.  THE CALLER SHOULD INITIALLY SET THIS
*                FIELD TO ZERO. 
* 
*         QUEUE  QUEUE SELECTION BITS.
*                THIS FIELD IS DEFINED AS FOLLOWS.
*                BIT         QUEUE TYPE 
*                0           INPUT
*                1           EXECUTING
*                2           PRINT
*                3           PUNCH
*                4           PLOT 
*                5           WAIT 
*                6 - 7       RESERVED FOR CDC 
*                8           RESERVED FOR INSTALLATION USE
*                9 - 11      RESERVED FOR CDC 
* 
*                FOR THE *GET* FUNCTION, THIS IS THE QUEUE IN 
*                WHICH THE ATTACHED FILE WAS FOUND. 
*                FOR THE *PEEK* FUNCTION, THIS FIELD SHOULD 
*                INITIALLY BE SET TO ZERO.  ON INTERRUPTED *PEEK* 
*                REQUESTS, *QAC* WILL SET THIS TO THE REMAINING 
*                QUEUES TO SEARCH.
* 
*         RES    RESERVED FOR CDC.  MUST BE SET TO ZERO.
* 
*         LIMIT  LIMIT ADDRESS OF THE DATA BUFFER.
  
  
***       SELECTION CRITERIA PORTION. 
* 
*T W5     42/ DESTINATION FAMILY, 6/ ID, 12/ ORIGIN 
*T,W6     42/ DESTINATION USER NAME, 18/ DEST UI
*T,W7     24/ JSN, 36/ SELECTION FLAGS
*T,W8     12/ QUEUE, 12/ FORMS, 12/ DISP, 3/EC, 3/IC, 18/ LINK ADR
*T,W9     18/ SLID, 18/ DLID, 3/ LA, 3/ UA, 18/ ALID LIST 
*T,W10    3/ LI, 3/ UI, 54/ RESERVED FOR CDC
*T,W11    60/ RESERVED FOR INSTALLATION USE 
* 
*         THE FIELDS IN THIS PORTION OF THE PARAMETER BLOCK 
*         ARE USED BY ALL FUNCTIONS.
* 
*         DESTINATION FAMILY. 
*                THIS FIELD IS USED ONLY IF THE DESTINATION FM,UN 
*                SELECTION BIT IS SET.  A ZERO WILL INDICATE
*                THAT THE SYSTEM DEFAULT FAMILY IS TO BE USED.
*                FOR THE *GET* FUNCTION, THIS FIELD IS RETURNED.
* 
*         ID     BATCH DEVICE ID. 
*                THIS FIELD IS USED ONLY IF THE BATCH ID
*                SELECTION BIT IS SET.
*                *QAC* RETURNS THE ID VALUE IN THIS FIELD WHEN A FILE 
*                ROUTED TO A LOCAL BATCH DEVICE IS ATTACHED.
* 
*         ORIGIN  ORIGIN TYPE TO SELECT.
*                THIS FIELD IS DEFINED AS FOLLOWS.
*                VALUE       ORIGIN TYPE
*                0           SAME ORIGIN AS CALLER
*                1           SYOT 
*                2           BCOT 
*                3           RBOT 
*                4           TXOT 
*                5 - 77      RESERVED FOR CDC 
* 
*                THIS FIELD IS USED ONLY IF THE ORIGIN SELECTION
*                BIT IS SET.  IF THIS FIELD IS NOT SELECTED,
*                *QAC* WILL EXAMINE ENTRIES OF ALL ORIGIN TYPES.
*                FOR THE *GET* FUNCTION, THE ORIGIN TYPE OF THE 
*                ATTACHED FILE IS RETURNED IN THIS FIELD. 
* 
*         DESTINATION USER NAME 
*                THIS FIELD IS USED ONLY IF THE DESTINATION FM,UN 
*                SELECTION FLAG IS SET.  A USER NAME MUST BE SPECIFIED
*                IF THE DESTINATION USER INDEX IS ZERO. 
*                *QAC* RETURNS THE DESTINATION USER NAME WHEN 
*                A REMOTE BATCH FILE IS ATTACHED. 
* 
*         DEST UI  DESTINATION USER INDEX.
*                THIS FIELD IS USED ONLY IF THE DESTINATION FM,UN 
*                SELECTION BIT IS SET.  IF THIS FIELD IS ZERO,
*                *QAC* USES THE DESTINATION UN TO OBTAIN THE
*                USER INDEX.
*                THIS FIELD IS RETURNED WHEN A REMOTE BATCH 
*                FILE IS ATTACHED.
*                FOR USER JOBS, THIS FIELD IS NOT USED FOR SELECTION
*                CRITERIA AND WILL NOT BE RETURNED. 
* 
*         JSN    JOB SEQUENCE NUMBER. 
*                THIS FIELD IS USED ONLY IF THE JSN SELECTION 
*                BIT IS SET.  THE JSN IS A FOUR CHARACTER 
*                ALPHANUMERIC FIELD.
*                FOR THE *GET* FUNCTION, THE JSN OF THE ATTACHED
*                FILE IS RETURNED IN THIS FIELD.
* 
*         SELECTION FLAGS 
*                SELECTION CRITERIA CONTROL FLAGS.
*                IF A BIT IS SET, *QAC* WILL USE THE SELECTED 
*                FIELD AS SELECTION CRITERIA.  THIS FIELD IS
*                DEFINED AS FOLLOWS.
*                BIT         DESCRIPTION
*                0           SPECIFIC ORDINAL AND QUEUE 
*                1           INHIBIT DUPLICATE LFN SEARCH 
*                2           INCLUDE PRIORITY = 0 IN SELECTION
*                3           DESTINATION FM, UN, UI 
*                4           DESTINATION BATCH ID 
*                5           ORIGIN 
*                6           JSN
*                7           FORMS CODE 
*                8           EXPLICIT DISPOSITION CODE
*                9           EXPLICIT EC
*                10          HIERARCHIAL EC 
*                11          INCLUDE EC = 0 (ANY) IN SELECTION
*                            HIERARCHY
*                12          IC SELECTION 
*                13          ACCESS LEVEL 
*                14          DESTINATION LID
*                15          FWA OF ALTERNATE LID LIST
*                16          CREATION LID 
*                17          ALLOW *PR*/*LP* SELECTION WITH EXPLICIT
*                            PRINT DISPOSITION CODE 
*                18          SELECT ONLY RECOVERABLE (DETACHED) 
*                            INTERACTIVE JOBS 
*                19          RESERVED FOR CDC 
*                20          FILE SIZE INDEX RANGE
*                21          IGNORE OWNERSHIP ON *PEEK* (*SSJ=* ONLY).
*                22-32       RESERVED FOR CDC 
*                33-35       RESERVED FOR INSTALLATION USE
* 
*                BIT 1 IS USED BY THE *GET* FUNCTION.  IF THIS
*                BIT IS NOT SET, *QAC* WILL SEARCH THE CONTROL
*                POINT FOR A DUPLICATE FILE NAME AND RETURN AN
*                ERROR IF ONE IS FOUND.  IF THIS BIT IS SET,
*                THE LOCAL FILE WILL BE RETURNED IF POSSIBLE AND
*                THE QUEUED FILE WILL BE ATTACHED.
* 
*                BITS 3 AND 4 EACH SELECT A TYPE OF DESTINATION 
*                ADDRESSING MODE.  ONLY ONE OF THESE BITS MAY 
*                BE SELECTED. 
* 
*                BITS 9 AND 10 EACH SELECT A METHOD OF SELECTING
*                FILES BASED ON EC.  ONLY ONE OF THESE METHODS
*                MAY BE SELECTED.  BIT 11 IS ONLY USED IF ONE 
*                OF THESE BITS IS SET.
* 
*                HIERARCHIAL EC SELECTION (BIT 10) ALLOWS THE 
*                SELECTION OF A COMPATIBLE EC.  THE FOLLOWING 
*                DESCRIBES THE HIERARCHIAL EC SELECTION.  WHERE 
*                MORE THAN ONE EC IS AVAILABLE, PREFERENCE IS 
*                FROM LEFT TO RIGHT IN THE LIST.
*                EC      OTHER ELIGIBLE EC-S
*                ANY     ASCII-96, ASCII-64, ASCII-48, BCD-64, BCD-48 
*                B4      BCD-48 
*                B6      BCD-64, BCD-48 
*                A4      ASCII-48 
*                A6      ASCII-64, ASCII-48 
*                A9      ASCII-96, ASCII-64, ASCII-48 
*                026     026
*                029     029, 026 
*                SB      SB 
*                80COL   80COL, SB
*                ASCII    O29, O26
*                T6      TRANSPARENT 6-BIT PLOT DATA
*                T8      TRANSPARENT 8-BIT PLOT DATA
* 
*                BIT 17 IS USED ONLY IF THE EXPLICIT DISPOSITION CODE 
*                BIT IS SELECTED.  BIT 17 ALLOWS *PR*/*LP* TYPE PRINT 
*                FILES TO BE SELECTED IN ADDITION TO THE EXPLICIT 
*                DISPOSITION CODE SELECTED.  THIS BIT IS USED ONLY
*                FOR PRINT FILES. 
* 
*                BIT 21 IS VALID ONLY FOR *SSJ=* PROGRAMS.  IF THIS 
*                BIT IS SET ON A *PEEK* REQUEST, OWNERSHIP OF THE FILE
*                OR JOB WILL NOT BE CHECKED.
* 
*         QUEUE  QUEUE SELECTION BITS.
*                THESE BITS ARE DEFINED THE SAME AS IN W4 QUEUE.
*                THE CALLER MUST SELECT WHAT QUEUES ARE TO BE 
*                SEARCHED.  THIS FIELD IS REQUIRED FOR ALL FUNCTIONS. 
* 
*         FORMS  FORMS CODE.
*                THE FORMS CODE CONSISTS OF TWO ALPHANUMERIC
*                CHARACTERS OR ZERO.  IF THIS FIELD IS NOT
*                SELECTED, ANY FORMS CODE IS ELIGIBLE FOR SELECTION.
* 
*         DISP   DISPOSITION CODE.
*                THIS FIELD IS DEFINED AS FOLLOWS.
*                CODE        DESCRIPTION
*                CP          SAME AS PU 
*                IN          INPUT QUEUE
*                LP          PRINT ON ANY LINE PRINTER
*                P2          PRINT ON 512 PRINTER 
*                LQ          SAME AS P2 
*                LR          PRINT ON 580-12 LINE PRINTER 
*                LS          PRINT ON 580-16 LINE PRINTER 
*                LT          PRINT ON 580-20 LINE PRINTER 
*                LX          PRINT ON 5870 NIP
*                LY          PRINT ON 5970 NIP
*                NO          INPUT QUEUE - NO OUTPUT
*                PL          PLOTTER
*                PR          SAME AS LP 
*                PB          SAME AS PU 
*                P8          SAME AS PU 
*                PH          SAME AS PU 
*                PU          PUNCH
*                SB          SAME AS PU 
*                TO          INPUT QUEUE - TERMINAL OUTPUT
*                TT          TERMINAL OUTPUT
*                WT          TERMINAL OUTPUT
*                SO          INPUT QUEUE - STATION OUTPUT 
*                SS          STATION OUTPUT 
* 
*                IF A PUNCH DISPOSITION CODE IS SELECTED, THE SPECIFIC
*                PUNCH TYPE MUST BE SPECIFIED BY SELECTING THE
*                THE APPROPRIATE EXTERNAL CHARACTERISTICS.
* 
*         EC     EXTERNAL CHARACTERISTICS.
*                THIS FIELD IS TRANSLATED AS FOLLOWS. 
*                VALUE     PRINT FILE     PUNCH FILE     PLOT FILE
*                  0       ANY            DEFAULT        RESERVED 
*                  1       UNUSED         SB             T6 
*                  2       A4             80COL          T8 
*                  3       B4             UNUSED         UNUSED 
*                  4       B6             026            UNUSED 
*                  5       A6             029            UNUSED 
*                  6       A9             ASCII          UNUSED 
*                  7       RESERVED       RESERVED       RESERVED 
* 
*                THE MNEMONICS IN THE ABOVE TABLE ARE DEFINED 
*                AS FOLLOWS.
*                MNEMONIC    DESCRIPTION
*                ANY         NO SPECIFIC PRINT EC 
*                A4          ASCII GRAPHIC 48-CHARACTER SET (NOT
*                            SUPPORTED, PROVIDED FOR NOS/BE 
*                            COMPATIBILITY) 
*                A6          ASCII GRAPHIC 64-CHARACTER SET 
*                A9          ASCII GRAPHIC 95-CHARACTER SET 
*                B4          BCD 48-CHARACTER SET (NOT SUPPORTED, 
*                            PROVIDED FOR NOS/BE COMPATIBILITY) 
*                B6          CDC GRAPHIC 64-CHARACTER SET 
*                DEFAULT     SYSTEM DEFINED DEFAULT 
*                026         PUNCH 026 MODE 
*                029         PUNCH 029 MODE 
*                SB          PUNCH SYSTEM BINARY
*                80COL       PUNCH 80-COLUMN BINARY 
*                T6          TRANSPARENT 6-BIT PLOTTER DATA 
*                T8          TRANSPARENT 8-BIT PLOTTER DATA 
* 
*                WHEN A FILE IS QUEUED WITH A SPECIFIC EC, A
*                DEFAULT IC WILL BE SELECTED ACCORDING TO THE 
*                FOLLOWING TABLE. 
*                EC          DEFAULT IC 
*                ANY         DISPLAY
*                B4          DISPLAY
*                B6          DISPLAY
*                A4          DISPLAY
*                A6          DISPLAY
*                A9          ASCII
*                026         DISPLAY
*                029         DISPLAY
*                SB          BINARY 
*                80COL       BINARY 
*                T6          BINARY 
*                T8          ASCII
* 
*         IC     INTERNAL CHARACTERISTICS.
*                THIS FIELD IS TRANSLATED AS FOLLOWS. 
*                VALUE       DESCRIPTION
*                  0         DISPLAY CODE 
*                  1         ASCII CODE (8 OF 12 FORMAT)
*                  2         BINARY 
*                  3         ASCII 6/12 DISPLAY CODE
* 
*         LINK ADR  LINK ADDRESS TO NEXT BLOCK IN CHAIN.
*                WHEN *QAC* COMPLETES PROCESSING A BLOCK, IT CHECKS 
*                THIS FIELD FOR THE ADDRESS OF THE NEXT BLOCK IN
*                THE CHAIN.  IF SPECIFIED, *QAC* WILL PROCESS THE 
*                BLOCK AT THIS ADDRESS.  A ZERO TERMINATES THE
*                CHAIN. 
* 
*         SLID   CREATION LID.
*                THIS FIELD IS USED TO SPECIFY A CREATION LOGICAL ID
*                AS PART OF THE SELECTION CRITERIA.  IF THIS FIELD
*                IS NOT SPECIFIED, ANY FILE WILL BE ELIGIBLE FOR
*                SELECTION AS CONTROLLED BY THE REMAINING SELECTION 
*                CRITERIA.  IF THE FIELD IS SPECIFIED, ONLY THAT
*                SPECIFIC SLID WILL BE ELIGIBLE FOR SELECTION.  A 
*                SLID VALUE OF ZERO IS LEGAL AND SPECIFIES ONLY FILES 
*                WITHOUT A CREATION LID.  A *GET*/*EXTENDED GET*
*                CALL WILL UNCONDITIONALLY RETURN THE CREATION LID
*                IN THIS FIELD FOR A SELECTED FILE. 
* 
*         DLID   DESTINATION LID. 
*                THIS FIELD IS USED TO SPECIFY A DESTINATION LOGICAL
*                ID AS PART OF THE SELECTION CRITERIA.  IF THIS 
*                FIELD IS NOT SPECIFIED, ONLY FILES HAVING A LOCAL
*                AND ENABLED OR ZERO DLID WILL BE ELIGIBLE FOR
*                SELECTION.  IF THIS FIELD IS SPECIFIED, ONLY THAT
*                SPECIFIC DLID WILL BE ELIGIBLE FOR SELECTION.  A 
*                DLID VALUE OF ZERO IS LEGAL AND SPECIFIES ONLY FILES 
*                WITHOUT A DESTINATION LID.  IF THE DLID SPECIFIED IS 
*                (***) THEN ANY FILE WILL BE ELIGIBLE FOR SELECTION.
* 
*         LA     ACCESS LEVEL LOWER BOUND.
*                THIS FIELD IS USED WHEN THE CALLER WISHES TO SELECT
*                A FILE WITH AN ACCESS LEVEL THAT LIES WITHIN A 
*                RANGE OF ALLOWABLE ACCESS LEVELS.  THIS VALUE IS 
*                THE LOWER BOUND OF THAT RANGE.  THE LOWER BOUND MUST 
*                BE .LE. THE UPPER BOUND. 
* 
*         UA     ACCESS LEVEL UPPER BOUND.
*                THIS FIELD IS USED WHEN THE CALLER WISHES TO SELECT
*                A FILE WITH AN ACCESS LEVEL THAT LIES WITHIN A 
*                RANGE OF ALLOWABLE ACCESS LEVELS.  THIS VALUE IS 
*                THE UPPER BOUND OF THAT RANGE.  THE UPPER BOUND MUST 
*                BE .GE. THE LOWER BOUND. 
* 
*         ALID LIST  FWA OF ALTERNATE LID LIST. 
*                THIS FIELD POINTS TO A LIST OF ALTERNATE LIDS.  THIS 
*                LIST MAY REPLACE OR AUGMENT THE DLID FIELD DESCRIBED 
*                ABOVE.  THE LIST IS FORMATTED WITH THREE LOGICAL 
*                ID-S PER WORD IN BIT POSITIONS 59-42, 41-24, AND 
*                23-6.  BITS 5-0 IN EACH WORD ARE UNUSED.  THE LIST MAY 
*                BE OF ANY LENGTH AND IS TERMINATED BY THE FIRST 18-BIT 
*                FIELD CONTAINING ZERO.  THE SPECIAL DLID VALUES OF 
*                ZERO AND (***) MAY NOT BE SPECIFIED IN THE ALID LIST.
*                THESE CAN ONLY BE SPECIFIED IN THE DLID FIELD. 
* 
*         LI     FILE SIZE INDEX LOWER BOUND. 
*                THIS FIELD IS USED WHEN THE CALLER WISHES TO SELECT
*                A QUEUE FILE HAVING A FILE SIZE INDEX WITHIN A RANGE 
*                OF ALLOWABLE FILE SIZE INDICES.  THIS VALUE IS THE 
*                LOWER BOUND OF THAT RANGE.  THE LOWER BOUND MUST BE
*                .LE. THE UPPER BOUND.
* 
*         UI     FILE SIZE INDEX UPPER BOUND. 
*                THIS FIELD IS USED WHEN THE CALLER WISHES TO SELECT
*                A QUEUE FILE HAVING A FILE SIZE INDEX WITHIN A RANGE 
*                OF ALLOWABLE FILE SIZE INDICES.  THIS VALUE IS THE 
*                UPPER BOUND OF THAT RANGE.  THE UPPER BOUND MUST BE
*                .GE. THE LOWER BOUND.
  
  
***       *ALTER* FUNCTION PORTION. 
* 
*T W12    6/ SSW, 24/ RESERVED, 30/ ALTER FLAGS 
*T,W13    42/ NEW DESTINATION FAMILY, 18/ NEW DLID
*T,W14    42/ NEW DESTINATION USER NAME, 12/ SPCD, 6/ ID
*T,W15    12/ PRIORITY, 12/ FORMS, 12/ DISP, 3/EC, 3/AL, 12/SRC, 6/REP
*T,W16    60/ RESERVED FOR INSTALLATION USE 
* 
*         SSW    SENSE SWITCH BITS. 
*                THIS FIELD IS USED WHEN EITHER THE SET SENSE SWITCHES
*                OR CLEAR SENSE SWITCHES *ALTER* FLAG IS SET. 
*                THE SELECTED SENSE SWITCH BITS WILL BE SET/CLEARED 
*                FOR SELECTED JOBS IN THE EXECUTING QUEUE.
*                THIS FIELD IS SET UP AS A MASK FOR WHAT SENSE
*                SWITCHES ARE TO BE ALTERED.  FOR EXAMPLE, TO SET OR
*                CLEAR SENSE SWITCH 3, THIS FIELD SHOULD CONTAIN 4B.
*                MORE THAN ON BIT CAN BE SELECTED.
* 
*         ALTER FLAGS 
*                EACH BIT SPECIFIES WHAT INFORMATION IS TO BE 
*                CHANGED.  THE BITS ARE DEFINED AS FOLLOWS. 
*                BIT         DESCRIPTION
*                0           ALTER TO OR CHANGE REMOTE BATCH FM,UN
*                1           ALTER TO OR CHANGE LOCAL BATCH ID
*                2           ALTER PRIORITY 
*                3           ALTER FORMS CODE 
*                4           ALTER SPACING CODE 
*                5           ALTER DISPOSITION CODE 
*                6           ALTER EC 
*                7           ALTER REPEAT COUNT 
*                8           ALTER ACCESS LEVEL 
*                9           ABORT JOB OR EVICT FILE
*                10          SET SENSE SWITCHES 
*                11          CLEAR SENSE SWITCHES 
*                12          *GO* COMMAND 
*                13          COMMENT TO BE ISSUED TO DAYFILE
*                14          *CFO* (COMMENT FROM OPERATOR)
*                15          MESSAGE AVAILABLE ON JOB ABORT 
*                16          *PAUSE* COMMAND
*                17          ALTER DESTINATION LID
*                18          KILL JOB 
*                19          ALTER SERVICE CLASS
*                20-26       RESERVED FOR CDC 
*                27-29       RESERVED FOR INSTALLATION USE
* 
*                ONLY SUBSYSTEMS AND *SSJ=* JOBS ARE ALLOWED TO 
*                ALTER PRIORITIES.  THIS FLAG WILL BE IGNORED 
*                FOR USER CALLS.
* 
*                THE *GO* COMMAND *ALTER* FLAG CAUSES THE PPU PAUSE 
*                FLAG IN THE CONTROL POINT AREA TO BE CLEARED.
* 
*                THE *PAUSE* COMMAND *ALTER* FLAG SETS THE PPU PAUSE
*                FLAG IN THE CONTROL POINT AREA.
* 
*                IF BIT 13 OR 14 IS SET, THE BUFFER POINTERS
*                MUST CONTAIN THE ADDRESS OF THE DAYFILE MESSAGE
*                TO BE ISSUED.
* 
*                BIT 15 IS USED ONLY WHEN THE ABORT JOB/EVICT 
*                FILE *ALTER* FLAG OR THE KILL JOB FLAG IS SET. 
*                WHEN BIT 15 IS SET, THE BUFFER POINTERS MUST 
*                CONTAIN THE ADDRESS OF THE DAYFILE MESSAGE TO
*                BE ISSUED. 
* 
*         NEW DESTINATION FAMILY. 
*                THIS FIELD IS USED ONLY WHEN THE ALTER TO REMOTE 
*                BATCH *ALTER* FLAG IS SET.  IF VALID, THE DESTINATION
*                FAMILY WILL BE CHANGED TO THE ONE SPECIFIED IN 
*                THIS FIELD.  IF ZERO IS SPECIFIED, THE SYSTEM
*                DEFAULT FAMILY IS ASSUMED WHEN THE CALLER IS A 
*                SUBSYSTEM.  IF THE FIELD IS ZERO WHEN THE CALLER 
*                IS A USER JOB, THE FAMILY NAME FROM THE EJT ENTRY
*                FOR THE JOB WILL BE USED.
* 
*         NEW DLID. 
*                NEW DESTINATION LOGICAL ID.  THIS FIELD IS USED ONLY 
*                WHEN THE *ALTER DLID* FLAG IS SET.  IF VALID, THE
*                NEW DLID SPECIFIED WILL BE PLACED IN THE QFT ENTRY.
* 
*         NEW DESTINATION UN. 
*                NEW DESTINATION USER NAME.  THIS FIELD IS USED 
*                ONLY WHEN THE ALTER TO REMOTE BATCH *ALTER* FLAG 
*                IS SET.  IF VALID, THE DESTINATION USER NAME 
*                FOR THE FILE/JOB WILL BE CHANGED TO THE USER NAME
*                SPECIFIED IN THIS FIELD. 
*                IF THE CALLER IS A SUBSYSTEM, A VALID USER 
*                NAME IS REQUIRED.  IF THE CALLER IS A USER 
*                JOB, A ZERO IN THIS FIELD WILL MEAN *QAC* WILL 
*                USE THE USER NAME FROM THE CONTROL POINT 
*                AREA OF THE JOB. 
* 
*         SPCD   NEW SPACING CODE.
*                IF THE ALTER SPACING CODE FLAG IS SET, THE 
*                580-PFC SPACING CODE WILL BE CHANGED TO THIS 
*                SELECTED VALUE.  ONLY PRINT FILES WILL BE
*                AFFECTED.
* 
*         ID     NEW LOCAL BATCH DEVICE ID. 
*                THIS FIELD IS USED ONLY WHEN THE ALTER LOCAL 
*                BATCH ID FLAG IS SET.  SELECTED ENTRIES WILL 
*                BE ROUTED TO LOCAL BATCH WITH THE ID SPECIFIED 
*                IN THIS FIELD. 
* 
*         PRIORITY  NEW PRIORITY. 
*                ONLY SUBSYSTEMS AND *SSJ=* JOBS ARE ALLOWED
*                TO CHANGE PRIORITY.  THE SPECIFIED PRIORITY
*                MUST BE WITHIN THE ALLOWED RANGES SPECIFIED
*                IN THE JOB CONTROL AREA.  ZERO AND 7777B ARE 
*                ALSO ALLOWED.  ANY OTHER VALUE WILL BE FORCED
*                INTO THE ALLOWED RANGE BY INCREASING A LOW VALUE 
*                TO THE MINIMUM OR DECREASING A HIGH VALUE TO THE 
*                MAXIMUM.  A ZERO PRIORITY MEANS THE ALTERED
*                ENTRIES WILL BECOME INELIGIBLE FOR SELECTION 
*                UNLESS THE SELECTION FLAG TO ALLOW ZERO
*                PRIORITY SELECTION IS SET OR A SUBSEQUENT
*                *ALTER* REQUEST CHANGES THE PRIORITY.  A 
*                VALUE OF 7777B WILL SET THE PRIORITY 
*                TO THE MAXIMUM ALLOWED VALUE.  ONLY OUTPUT 
*                FILES WILL BE AFFECTED.
* 
*         FORMS  NEW FORMS CODE.
*                THIS FIELD IS SELECTED WHEN THE ALTER FORMS CODE 
*                FLAG IS SET.  THIS FIELD MAY CONTAIN ANY TWO 
*                ALPHANUMERIC CHARACTERS OR A BINARY ZERO.  ONLY
*                OUTPUT FILES WILL BE AFFECTED. 
* 
*         DISP   NEW DISPOSITION CODE.
*                THIS FIELD IS USED WHEN THE ALTER DISPOSITION
*                CODE FLAG IS SET.  IF VALID, THE DISPOSITION 
*                CODE OF SELECTED ENTRIES WILL BE CHANGED TO THE
*                CODE SPECIFIED IN THIS FIELD.  SEE DESCRIPTION 
*                OF THE W8-DISP FIELD FOR THE LIST OF VALID 
*                DISPOSITION CODES.  ONLY OUTPUT FILES ARE AFFECTED.
* 
*         EC     NEW EXTERNAL CHARACTERISTICS.
*                THIS FIELD IS USED ONLY IF THE ALTER EC
*                FLAG IS SET.  SEE THE DESCRIPTION OF W8-EC 
*                FOR THE LIST OF VALID EXTERNAL CHARACTERISTICS.
*                IF VALID, THE EXTERNAL CHARACTERISTICS OF
*                SELECTED OUTPUT FILES WILL BE CHANGED. 
* 
*         AL     NEW SECURITY ACCESS LEVEL. 
*                THIS FIELD IS USED WHEN THE ALTER ACCESS LEVEL FLAG
*                IS SET.  IF THIS ALTER FLAG IS SET, THE CALLER MUST
*                HAVE SECURITY ADMINISTRATOR PRIVILEGES.  THE NEW 
*                ACCESS LEVEL FOR AN OUTPUT FILE MUST BE WITHIN THE 
*                JOB LIMITS, THE FILE-S ORIGIN TYPE LIMITS, AND MUST
*                BE ALLOWED ON THE DEVICE WHERE THE FILE RESIDES. 
* 
*         SRC    NEW SERVICE CLASS. 
*                THIS FIELD IS USED ONLY WHEN THE ALTER SERVICE 
*                CLASS FLAG IS SET.  IF VALID, THE SERVICE CLASS
*                OF THE SPECIFIED INPUT FILE OR EXECUTING JOB WILL
*                BE CHANGED TO CORRESPOND TO THE SPECIFIED SERVICE
*                CLASS MNEMONIC.  OUTPUT FILES ARE NOT AFFECTED.
* 
*         REP    NEW REPEAT COUNT.
*                THIS FIELD IS USED ONLY IF THE ALTER REPEAT COUNT
*                FLAG IS SET.  THE REPEAT COUNT OF SELECTED OUTPUT
*                FILES IS CHANGED TO THE SPECIFIED VALUE.  THE
*                MAXIMUM ALLOWED VALUE IS 77B (63D).  ONLY OUTPUT 
*                FILES ARE AFFECTED.
  
  
***       *GET* FUNCTION PORTION. 
* 
*T W12    30/ DAYFILE RANDOM ADDRESS, 6/ SCL, 24/ ACCOUNT LIMIT 
*T,W13    30/ IRA, 6/ RES, 1/B, 1/ RES, 4/ PI, 6/ SC, 6/ RES, 6/ REP
*T,W14    30/ FILE LENGTH, 3/ AL, 3/ FI, 24/ OJSN 
*T,W15    60/ RESERVED FOR INSTALLATION USE 
* 
*         DAYFILE RANDOM ADDRESS
*                THE RANDOM ADDRESS OF THE FIRST PRU OF THE 
*                DAYFILE RECORD IS RETURNED IN THIS FIELD.  A 
*                ZERO INDICATES THAT THE FILE DOES NOT CONTAIN
*                A DAYFILE.  THIS FIELD APPLIES ONLY TO PRINT FILES.
* 
*         SCL    SERVICE CLASS OF THE ATTACHED FILE.
*                THE ONE CHARACTER SYMBOL FOR THE SERVICE CLASS WILL
*                BE RETURNED. 
* 
*         ACCOUNT LIMIT 
*                THE VALIDATED RESOURCE LIMIT OF THE USER FOR 
*                LINES PRINTED, CARDS PUNCHED, ETC. IS RETURNED 
*                IN THIS FIELD.  AN UNLIMITED VALUE IS INDICATED
*                BY ALL SEVENS.  THIS FIELD IS RETURNED FOR 
*                OUTPUT FILES ONLY. 
* 
*         IRA    INTERRUPT RANDOM ADDRESS.
*                IF AN ATTACHED QUEUE FILE IS RETURNED TO THE 
*                QUEUE, THE POSITION OF THE FILE AT THE TIME IT 
*                IS RETURNED IS SAVED.  WHEN THE FILE IS
*                SUBSEQUENTLY RE-ATTACHED, ITS PREVIOUS POSITION
*                IS RETURNED IN THIS FIELD.  THIS FIELD APPLIES 
*                TO OUTPUT FILES ONLY.
* 
*         RES    RESERVED FOR CDC.  MUST BE SET TO ZERO.
* 
*         B      *BATCHIO* SUBSYSTEM PRIVILEGES FLAG. 
*                THIS BIT IS SET IF THE QUEUED FILE IS ALLOWED
*                *BATCHIO* PRIVILEGES.  IT IS RETURNED ONLY FOR 
*                PRINT AND PUNCH FILES.  THIS BIT IS RETURNED ONLY
*                FOR SUBSYSTEMS.
* 
*         RES    RESERVED FOR CDC.  MUST BE SET TO ZERO.
* 
*         SC     SPACING CODE.
*                THE 580-PFC SPACING CODE IS RETURNED IN THIS 
*                FIELD FOR PRINT FILES.  A ZERO MEANS NO SPACING
*                CODE IS SPECIFIED. 
* 
*         PI     PRINT IMAGE CODE.
*                THE PRINT IMAGE CODE IS RETURNED IN THIS FIELD FOR 
*                PRINT FILES.  IF THE UPPER BIT IS SET, THE LOWER 3 
*                BITS CONTAIN THE PRINT IMAGE CODE. 
* 
*         RES    RESERVED FOR CDC.  MUST BE SET TO ZERO.
* 
*         REP    REPEAT COUNT.
*                THE REPEAT COUNT IS RETURNED IN THIS FIELD FOR 
*                OUTPUT FILES.
* 
*         FILE LENGTH 
*                THE FILE SIZE IN PRU-S IS RETURNED IN THIS FIELD.
* 
*         AL     ACCESS LEVEL.
*                THE ACCESS LEVEL OF A SELECTED QUEUE FILE IS 
*                RETURNED IN THIS FIELD.  ONCE A FILE HAS BEEN
*                SELECTED, BASED ON THE ACCESS LEVEL RANGE, THE 
*                OUTPUT QUEUE SPECIAL HANDLING LEVEL MUST BE
*                CONSIDERED.  THE FILE WILL NOT BE SELECTED IF ALL
*                OF THE FOLLOWING ARE TRUE.  1) CALLER IS *BATCHIO*,
*                2) FILE TYPE IS OUTPUT, 3) ACCESS LEVEL IS .GE.
*                *OQSH*, AND 4) RELEASE BIT IS NOT SET IN THE QFT.
* 
*         FI     FILE SIZE INDEX. 
*                THE FILE SIZE INDEX OF A SELECTED QUEUE FILE IS
*                RETURNED IN THIS FIELD.
* 
*         OJSN   ORIGINAL JSN 
*                THE ORIGINAL JSN FOR THE FILE WILL BE RETURNED IN
*                THIS FIELD.
  
  
***       *EXTENDED GET* FUNCTION PORTION.
* 
*T,W16    60/ ACCOUNT INFORMATION  (ALMW) 
*T,W17    60/ ACCOUNT INFORMATION  (ACLW) 
*T,W18    60/ ACCOUNT INFORMATION  (AACW) 
*T,W19    42/ OWNER USER NAME, 18/ RESERVED 
*T,W20    42/ OWNER FAMILY NAME, 18/ RESERVED 
*T,W21    42/ CREATION USER NAME, 18/ RESERVED
*T,W22    42/ CREATION FAMILY NAME, 18/ RESERVED
*T,W23    42/ REMOTE MAINFRAME USER, 18/ RESERVED 
*T,W24    42/ REMOTE MAINFRAME FAMILY, 18/ RESERVED 
*T,W25    42/ USER JOB NAME, 18/ RESERVED 
*T,W26    12/ DATA DEC, 24/ 0, 12/ IMP LEN, 12/ EXP LEN 
*T,W27    60/ IMPLICIT REMOTE TEXT STRING 
*T,                 . 
*T,                 . 
*T,                 . 
*T,W52    60/ IMPLICIT REMOTE TEXT STRING (LAST WORD) 
*T,W53    60/ EXPLICIT REMOTE TEXT STRING 
*T,                 . 
*T,                 . 
*T,                 . 
*T,W78    60/ EXPLICIT REMOTE TEXT STRING (LAST WORD) 
*T,W79    42/ ENCRYPTED PASSWORD, 18/ RESERVED
*T,W80    60/ CHARGE NUMBER 
*T,W81    60/ PROJECT NUMBER (FIRST 10 CHARACTERS)
*T,W82    60/ PROJECT NUMBER (LAST 10 CHARACTERS) 
* 
*         THE ENCRYPTED PASSWORD IS RETURNED ONLY FOR INPUT FILES 
*         AND IF THE CALLER IS *SSJ=*.
* 
*         THE FOLLOWING INFORMATION IS OBTAINED FROM THE EOI SECTOR.
* 
*         DATA DEC - DATA DECLARATION.
* 
*         IMP LEN - IMPLICIT REMOTE TEXT LENGTH (CHARACTERS)
* 
*         EXP LEN - EXPLICIT REMOTE TEXT LENGTH (CHARACTERS)
  
  
***       *PEEK* FUNCTION PORTION.
* 
*T W12    12/ INCNT, 12/ EXCNT, 12/ PRCNT, 12/ PHCNT, 12/ PLCNT 
*T,W13    12/ WTCNT, 24/ RESERVED, 12/ ISCNT, 12/ ENT LENGTH
*T,W14    60/ PEEK INFORMATION BITS 
*T,W15    60/ RESERVED FOR INSTALLATION USE 
* 
*         INCNT  INPUT QUEUE COUNT. 
*                IF NO INFORMATION BITS ARE SET, *QAC* WILL RETURN A
*                COUNT OF INPUT QUEUE ENTRIES WHEN THE INPUT QUEUE IS 
*                SELECTED IN W8-QUEUE.
*                IF AT LEAST ONE INFORMATION BIT IS SET, THE CALLER 
*                MUST PLACE A COUNT OF THE MAXIMUM NUMBER OF ENTRIES
*                TO BE SELECTED FROM THE INPUT QUEUE.  THIS NUMBER
*                MUST BE GREATER THAN ZERO AND THE INPUT QUEUE MUST 
*                BE SELECTED IN W8-QUEUE.  *QAC* WILL RETURN THE
*                ACTUAL NUMBER OF ENTRIES SELECTED IN THIS FIELD. 
* 
*         EXCNT  EXECUTING QUEUE COUNT. 
*                THIS FIELD IS THE SAME AS W12-INCNT EXCEPT IT
*                REFERS TO THE EXECUTING QUEUE. 
* 
*         PRCNT  PRINT QUEUE COUNT. 
*                THIS FIELD IS THE SAME AS W12-INCNT EXCEPT IT
*                REFERS TO PRINT QUEUE ENTRIES. 
* 
*         PHCNT  PUNCH QUEUE COUNT. 
*                THIS FIELD IS THE SAME AS W12-INCNT EXCEPT IT
*                REFERS TO PUNCH QUEUE ENTRIES. 
* 
*         PLCNT  PLOT QUEUE COUNT.
*                THIS FIELD IS THE SAME AS W12-INCNT EXCEPT IT
*                REFERS TO PLOT QUEUE ENTRIES.
* 
*         WTCNT  WAIT QUEUE COUNT.
*                THIS FIELD IS THE SAME AS THE W12-INCNT EXCEPT IT
*                REFERS TO WAIT QUEUE ENTRIES.
* 
*         RESERVED  RESERVED FOR CDC.  MUST BE SET TO ZERO. 
* 
*         ISCNT  INSTALLATION QUEUE COUNT.
*                THIS FIELD IS RESERVED FOR THE INSTALLATION
*                QUEUE. 
* 
*         ENT LENGTH  *PEEK* REPLY ENTRY LENGTH.
*                THIS FIELD CONTAINS THE NUMBER OF WORDS IN EACH
*                REPLY ENTRY.  IT IS RETURNED BY *QAC*.  ALL RETURNED 
*                ENTRIES IN THE BUFFER WILL BE THE SAME LENGTH. 
*                ZERO INDICATES THAT NO INFORMATION BITS WERE SELECTED. 
* 
*         PEEK INFORMATION BITS 
*                EACH BIT SELECTS ONE UNIT OF INFORMATION TO BE 
*                RETURNED.  THE BITS ARE NUMBERED FROM THE RIGHTMOST
*                BIT ZERO TO LEFTMOST BIT 59.  BIT ZERO IS NOT
*                USED AND MUST BE ZERO.  UNDEFINED BITS MUST
*                ALSO BE ZERO.  IF AT LEAST ONE BIT IS SET, THE 
*                *FIRST*, *IN*, *OUT* AND *LIMIT* FIELDS MUST 
*                BE SET UP CORRECTLY. 
          SPACE  4,15 
***       FORMAT OF REPLY BUFFER FOR *PEEK* FUNCTION. 
* 
* 
*T E1     24/ JSN, 12/ ORDINAL ,12/ QUEUE, 6/  RT, 6/  1
*T,E2     6/ SC, 6/ OT, 12/ FR, 12/ DS, 3/EC, 3/IC, 6/ R, 6/  RT, 6/  2 
*T,E3     12/ PRIORITY, 12/ FL-ECS, 12/ FL-CM, 12/ R, 6/  RT, 6/  3 
*T,E4     42/ DESTINATION FAMILY, 6/ 0, 6/  RT, 6/  4 
*T,E5     42/ DESTINATION UN, 6/ ID, 6/  RT, 6/  5
*T,E6     42/ OWNER FAMILY, 6/ 0, 6/  RT, 6/  6 
*T,E7     42/ OWNER UN, 6/ CID, 6/  RT, 6/  7 
*T,E8     6/ D-FO, 18/ DEST. UI, 6/ O-FO, 18/ OWNER UI, 6/  RT, 6/ 10 
*T,E9     42/ USER JOBNAME, 6/ 0, 6/  RT, 6/ 11 
*T,E10    2/0, 4/ PI, 6/ SPC, 1/ I, 5/0, 6/ REP, 24/ ACLM, 6/ RT, 6/12
*T,E11    12/ EQUIP, 36/ CREATION DATE AND TIME, 6/  RT, 6/ 13
*T,E12    24/ FILE LENGTH, 24/ CREATION JSN, 6/  RT, 6/ 14
*T,E13    12/ EJT STAT, 3/ 0, 3/ C, 30/ SCHEDULING FIELD, 6/ RT, 6/ 15
*T,E14    36/ 0 ,12/ LENGTH, 6/  RT, 6/ 16
*T,E14.1  60/ *MS1W* CHARACTERS 1 - 10
*T,E14.2  60/ *MS1W* CHARACTERS 11 - 20 
*T,E14.3  60/ *MS1W* CHARACTERS 21 - 30 
*T,E14.4  60/ *MS1W* CHARACTERS 31 - 40 
*T,E14.5  60/ *MS1W* CHARACTERS 41 - 50 
*T,E15    36/ 0, 12/ LENGTH, 6/ RT, 6/ 17 
*T,E15.1  60/ *MS2W* CHARACTERS 1 - 10
*T,E15.2  60/ *MS2W* CHARACTERS 11 - 20 
*T,E15.3  60/ *MS2W* CHARACTERS 21 - 30 
*T,E16    42/ SRU LIMIT, 6/ 0, 6/  RT, 6/ 20
*T,E17    42/ ACCUMULATED SRU-S, 6/ 0, 6/  RT, 6/ 21
*T,E18    24/ 0, 12/ A-LEN, 12/ B-LEN, 6/  RT, 6/ 22
*T,E18.1  60/ DAYFILE MESSAGES
*T,       60/       . 
*T,       60/       . 
*T,       60/       . 
*T,E18.N  60/ DAYFILE MESSAGES (LAST WORD)
*T,E19    24/ 0, 12/ A-LEN, 12/ B-LEN, 6/  RT, 6/ 23
*T,E19.1  60/ COMMANDS
*T,       60/       . 
*T,       60/       . 
*T,       60/       . 
*T,E19.N  60/ COMMANDS (LAST WORD)
*T,E20    6/ 0, 18/ DLID, 6/ 0, 18/ SLID, 6/  RT, 6/ 24 
*T,E21    24/ 0, 12/ CLEN1, 12/ LEN1, 6/  RT, 6/ 25 
*T,E21.1  60/ IMPLICIT REMOTE TEXT STRING 
*T,                 . 
*T,                 . 
*T,                 . 
*T,E21.N  60/ IMPLICIT REMOTE TEXT STRING (LAST WORD) 
*T,E22    24/ 0, 12/ CLEN2, 12/ LEN2, 6/  RT, 6/ 26 
*T,E22.1  60/ EXPLICIT REMOTE TEXT STRING 
*T,                 . 
*T,                 . 
*T,                 . 
*T,E22.N  60/ EXPLICIT REMOTE TEXT STRING (LAST WORD) 
*T,E23    42/ REMOTE MAINFRAME USER, 6/ 0, 6/  RT, 6/ 27
*T,E24    42/ REMOTE MAINFRAME FAMILY, 6/ 0, 6/  RT, 6/ 30
*T,E25    12/ RSVD, 24/ OJSN, 3/ 0, 3/ LA, 3/ UA, 3/ AL, 6/  RT, 6/ 31
*T,E58    48/ RESERVED FOR INSTALLATION USE, 6/  RT, 6/ 72
*T,E59    48/ RESERVED FOR INSTALLATION USE, 6/  RT, 6/ 73
* 
*         THE LOWER SIX BITS OF THE FIRST WORD OF EACH UNIT OF
*         INFORMATION CONTAINS THE NUMBER OF THE BIT (OCTAL) WHICH
*         MUST BE SET TO SELECT THAT PARTICULAR UNIT OF INFORMATION.
*         A ZERO IN THIS FIELD INDICATES THAT THE INFORMATION 
*         BIT WAS SELECTED, BUT IS NOT VALID FOR THE QUEUE
*         TYPE THE REPLY ENTRY IS DEFINED FOR.  IN THIS CASE, 
*         THAT UNIT WILL CONTAIN ZEROES.
* 
*         IF *RT* IS ZERO, THIS UNIT IS ONE WORD LONG.  IF *RT* 
*         IS ONE, THE UNIT IS VARIABLE SIZE AND THE NUMBER OF 
*         WORDS RETURNED FOR THIS UNIT IS INDICATED IN FIELD *B-LEN*
*         OF THE HEADER WORD.  FIELD *A-LEN* CONTAINS THE NUMBER OF 
*         WORDS OF ACTUAL INFORMATION RETURNED.  THE REMAINDER
*         OF THE UNIT WILL THEN CONTAIN ZEROES. 
* 
*         BIT    DESCRIPTION
*         1      JSN - JOB SEQUENCE NUMBER. 
*                ORDINAL - ORDINAL OF ENTRY IN QFT OR EJT.
*                QUEUE - QUEUE WHERE ENTRY WAS FOUND. 
* 
*         2      SC - SERVICE CLASS.
*                OT - ORIGIN TYPE.
*                VALUE  ORIGIN TYPE 
*                  1    SYOT
*                  2    BCOT
*                  3    RBOT
*                  4    IAOT
*                FR - FORMS CODE. 
*                DS - DISPOSITION CODE. 
*                EC - EXTERNAL CHARACTERISTICS. 
*                IC - INTERNAL CHARACTERISTICS. 
*                R - RESERVED.
* 
*         3      PRIORITY - CURRENT PRIORITY OF THE QUEUED FILE OR
*                           CPU PRIORITY OF THE EXECUTING JOB.
*                FL-ECS - EXECUTING JOBS EXTENDED MEMORY FIELD LENGTH.
*                FL-CM - CM FIELD LENGTH OF THE EXECUTING JOB.
* 
*         4      DESTINATION FAMILY.
* 
*         5      DESTINATION USER NAME. 
*                ID - LOCAL BATCH ID. 
* 
*         6      OWNER FAMILY.
* 
*         7      OWNER USER NAME. 
*                CID - CREATION BATCH ID. 
* 
*         10     D-FO - DESTINATION FAMILY ORDINAL. 
*                DEST. UI - DESTINATION USER INDEX. 
*                O-FO - OWNER FAMILY ORDINAL. 
*                OWNER UI - OWNER USER INDEX. 
* 
*         11     USER JOBNAME.
* 
*         12     PI - PRINT IMAGE CODE.  IF THE UPPER BIT IS SET, THE 
*                     LOWER 3 BITS CONTAIN THE PRINT IMAGE CODE.
*                SPC - 580-PFC SPACING CODE.
*                I - BIT IS SET IF FILE IS INTERRUPTED. 
*                REP - REPEAT COUNT.
*                ACLM - ACCOUNT LIMIT.
* 
*         13     EQUIP - EST ORDINAL OF DEVICE WHERE FILE RESIDES.
*                QUEUED FILE CREATION DATE AND TIME.
* 
*         14     FILE LENGTH - FILE SIZE IN PRU-S.
*                CREATION JSN.
* 
*         15     EJT STAT - BITS 0-11 OF EJT *JSNE* WORD (SEE *PPCOM*). 
*                C - CPU STATUS (SEE *COMSCPS*).
*                SCHEDULING FIELD - BITS 0-29 OF EJT *SCHE* WORD (SEE 
*                *PPCOM*).
* 
*         16     *MS1W* MESSAGE.
* 
*         17     *MS2W* MESSAGE.
* 
*         20     SRU LIMIT. 
* 
*         21     ACCUMULATED SRU-S. 
* 
*         22     DAYFILE MESSAGES.
* 
*         23     COMMANDS.
* 
*         24     DLID - DESTINATION LOGICAL ID. 
*                SLID - CREATION LOGICAL ID.
* 
*         25     CLEN1 - IMPLICIT REMOTE TEXT STRING LENGTH 
*                        (CHARACTERS).
*                LEN1 - IMPLICIT REMOTE TEXT STRING LENGTH (CM
*                       WORDS). 
* 
*         26     CLEN2 - EXPLICIT REMOTE TEXT STRING LENGTH 
*                        (CHARACTERS).
*                LEN2 - EXPLICIT REMOTE TEXT STRING LENGTH (CM
*                       WORDS). 
* 
*         27     REMOTE MAINFRAME USER. 
* 
*         30     REMOTE MAINFRAME FAMILY. 
* 
*         31     OJSN - ORIGINAL JSN. 
*                LA - LOWER ACCESS LEVEL LIMIT OF JOB.
*                UA - UPPER ACCESS LEVEL LIMIT OF JOB.
*                AL - ACCESS LEVEL. 
* 
*         32-71  UNDEFINED (RESERVED FOR CDC).
* 
*         72     RESERVED FOR INSTALLATION USE. 
* 
*         73     RESERVED FOR INSTALLATION USE. 
          SPACE  4
***       DAYFILE MESSAGES. 
* 
*         THE FOLLOWING ERROR MESSAGES INDICATE A FATAL ERROR 
*         OCCURRED. 
* 
*         * QAC INCORRECT REQUEST.* 
*                ONE OF THE FOLLOWING OCCURRED. 
*                1.  AN UNDEFINED VALUE WAS FOUND IN W0-FCN.
*                2.  THE PARAMETER BLOCK ADDRESS IN RA+1 IS NOT VALID.
*                3.  THE LINK ADDRESS IS INCORRECT.  THE NEXT BLOCK IN
*                    THE CHAIN WILL NOT BE PROCESSED. 
*                4.  CALLER IS A *DIS* JOB OR OTHER NON-SUBSYSTEM 
*                    SYSTEM ORIGIN JOB AND THE CONTROL POINT AREA DID 
*                    NOT CONTAIN A VALID FAMILY OR USER INDEX.
*                5.  THE ALTERNATE LID ADDRESS WAS INCORRECT. 
*                6.  A USER TRYING TO ALTER THE ACCESS LEVEL OF A 
*                    QUEUE FILE DID NOT HAVE SECURITY ADMINISTRATOR 
*                    PRIVILEGES.
* 
*         * QAC REQUEST COMPLETION BIT SET.*
*                THE COMPLETION BIT IN W0-C WAS SET ON THE REQUEST. 
* 
*         * QAC BUFFER ARGUMENT ERROR.* 
*                ON A FUNCTION WHICH USES *FIRST*, *IN*, *OUT*
*                AND *LIMIT*, THESE ADDRESSES WERE FOUND TO BE
*                INCORRECT. 
* 
*         * QAC INCORRECT QUEUE ORDINAL.* 
*                THE ORDINAL IN W4-ORDINAL IS OUT OF RANGE OF 
*                THE SPECIFIED QUEUE. 
* 
*         * QAC INCORRECT PARAMETER BLOCK SIZE.*
*                THE W1-LEN FIELD IS INCORRECT FOR THE REQUESTED
*                FUNCTION.
          SPACE  4
***       ERROR CODE DESCRIPTIONS.
* 
*         THE FOLLOWING ERROR CODES ARE RETURNED TO THE *QAC* CALL
*         BLOCK WHEN THE SPECIFIED SITUATION OCCURS.
* 
*         ERROR CODE = 0. 
*                FUNCTION WAS COMPLETED WITHOUT ERROR.
* 
*         ERROR CODE = 1. 
*                INCORRECT QUEUE TYPE.  A *GET* FUNCTION HAD UNDEFINED
*                QUEUE BITS SET OR THE EXECUTING QUEUE WAS SELECTED.
*                ON ALL OTHER FUNCTIONS, UNDEFINED QUEUE BITS 
*                WERE SET.
* 
*         ERROR CODE = 2. 
*                UNKNOWN FAMILY-USER NAME.  THE SPECIFIED FAMILY
*                AND/OR USER NAME WAS NOT ACTIVE OR FAILED VALIDATION.
* 
*         ERROR CODE = 3. 
*                UNDEFINED ORIGIN TYPE. 
* 
*         ERROR CODE = 4. 
*                MORE THAN ONE BIT OR FIELD OF A MUTUALLY EXCLUSIVE 
*                GROUP WAS SET. 
* 
*         ERROR CODE = 5. 
*                INCORRECT FORMS CODE.  THE FORMS CODE SELECTED FOR THE 
*                *ALTER* FUNCTION IS NOT VALID. 
* 
*         ERROR CODE = 6. 
*                THE DISPOSITION CODE SELECTED IS INCORRECT OR
*                SPECIFIC EXTERNAL CHARACTERISTICS WERE NOT 
*                SELECTED WITH THE PUNCH DISPOSITION CODE.
* 
*         ERROR CODE = 7. 
*                ENTRY NOT FOUND.  NO FILE/JOB WAS FOUND THAT MATCHED 
*                THE SELECTION CRITERIA.
* 
*         ERROR CODE = 8. 
*                DUPLICATE LOCAL FILE NAME.  *GET* ATTEMPTED TO 
*                ATTACH A FILE TO A CONTROL POINT WHICH ALREADY 
*                HAD A LOCAL FILE WITH THE SAME NAME. 
* 
*         ERROR CODE = 9. 
*                INCORRECT BATCH ID.  THE BATCH ID SPECIFIED IS 
*                NOT LESS THAN *IDLM*.
* 
*         ERROR CODE = 10.
*                INCORRECT FILE NAME.  THE LOCAL FILE NAME SPECIFIED
*                FOR THE *GET* FUNCTION IS NOT VALID. 
* 
*         ERROR CODE = 11.
*                COUNT OF ZERO INCORRECT.  ON THE *PEEK* FUNCTION, THE
*                MAXIMUM NUMBER OF ENTRIES TO BE SELECTED IN A QUEUE
*                MUST BE GREATER THAN ZERO. 
* 
*         ERROR CODE = 12.
*                NO PROCESSING WAS DONE DUE TO ONE OF THE FOLLOWING 
*                REASONS. 
*                NO *ALTER* FLAGS WERE SET ON AN *ALTER* REQUEST. 
*                NULL MESSAGE WAS SPECIFIED ON AN *ALTER* REQUEST.
*                THE *PEEK* REPLY BUFFER IS NOT LARGE ENOUGH FOR ONE
*                ENTRY TO BE RETURNED.
* 
*         ERROR CODE = 18.
*                INCORRECT EXTERNAL CHARACTERISTICS.  THE NEW EXTERNAL
*                CHARACTERISTICS SELECTED ON AN *ALTER* FUNCTION IS 
*                NOT VALID FOR THE QUEUE TYPE OF THE SELECTED FILE. 
* 
*         ERROR CODE = 19.
*                *QAC* CANNOT DROP AN ON-LINE JOB.
*                ANY OTHER PROCESSING WILL HAVE COMPLETED.
* 
*         ERROR CODE = 21.
*                ACCESS LEVEL(S) INCORRECT DUE TO ONE OF THE FOLLOWING
*                REASONS. 
*                THE USER-SPECIFIED LOWER ACCESS LEVEL WAS GREATER
*                THAN THE USER-SPECIFIED UPPER ACCESS LEVEL.
*                THE USER WAS NOT VALIDATED FOR A SPECIFIED ACCESS
*                LEVEL. 
*                THE EQUIPMENT UPON WHICH A QUEUE FILE RESIDES WAS
*                NOT VALIDATED FOR THE NEW USER-SPECIFIED ACCESS
*                LEVEL DESIRED FOR THE QUEUE FILE (*ALTER*).
* 
*         ERROR CODE = 22.
*                THE RANGE OF THE FILE SIZE INDICES IS INCORRECT
*                BECAUSE THE USER-SPECIFIED LOWER FILE SIZE INDEX 
*                IS GREATER THAN THE USER-SPECIFIED UPPER FILE
*                SIZE INDEX.
* 
*         ERROR CODE = 23.
*                INCORRECT SERVICE CLASS.  THE TWO CHARACTER SERVICE
*                CLASS WAS NOT VALID FOR THE USER OR NOT VALID FOR
*                THE CURRENT ORIGIN TYPE OF THE SPECIFIED JOB.
* 
*         ERROR CODE = 24.
*                SERVICE CLASS FULL.  THE SERVICE CLASS CHANGE CANNOT 
*                BE MADE BECAUSE THE NUMBER OF JOBS WITH THAT CLASS 
*                IS ALREADY AT THE SERVICE LIMIT. 
* 
*         ERROR CODE = 25.
*                CANNOT CHANGE CLASS OF ON-LINE JOB.  THE SERVICE CLASS 
*                OF ANOTHER ON-LINE JOB CANNOT BE CHANGED.
* 
*         ERROR CODE = 26.
*                UNDEFINED SERVICE CLASS.  THE SERVICE CLASS MNEMONIC 
*                IS NOT DEFINED.
* 
*         ERROR CODE = 27.
*                JOB ALREADY WAITING ON SERVICE CLASS.  THE SERVICE 
*                CLASS CHANGE CONNOT BE MADE BECAUSE THE JOB IS 
*                WAITING FOR A *CLASS* COMMAND IN THE JOB TO
*                COMPLETE.
* 
*         ERROR CODE = 28.
*                CANNOT CHANGE CLASS OF SUBSYSTEM.  THE SERVICE CLASS 
*                OF A JOB THAT IS EXECUTING AT THE SUBSYSTEM SERVICE
*                CLASS CANNOT BE ALTERED. 
* 
*         ERROR CODE = 29.
*                PRU LIMIT ON ATTACH OF QUEUED FILE.  THE SELECTED
*                FILE COULD NOT BE ATTACHED BECAUSE THE JOB DID 
*                NOT HAVE ENOUGH AVAILABLE PRU-S. 
          SPACE  4
***       ROUTINES CALLED.
* 
*         0AV - ACCOUNT VALIDATION. 
*         0BF - BEGIN FILE. 
*         0DQ - DROP GLOBAL FILE. 
          SPACE  4
*         COMMON DECKS. 
  
  
*CALL     COMPMAC 
*CALL     COMSACC 
*CALL     COMSCPS 
*CALL     COMSDSP 
*CALL     COMSEJT 
*CALL     COMSEVT 
*CALL     COMSJIO 
*CALL     COMSMSC 
*CALL     COMSMSP 
*CALL     COMSPIM 
 RIREL$   EQU    1
*CALL     COMPREL 
          LIST   X
*CALL     COMSQAC 
          LIST   -X 
*CALL     COMSSSD 
*CALL     COMSSSE 
*CALL     COMSSSJ 
*CALL     COMSWEI 
*CALL     COMSZOL 
          EJECT 
**        DIRECT LOCATION ASSIGNMENTS.
  
  
 T8       EQU    16          TEMPORARY
 FS       EQU    20 - 24     *SCHE*/*ENTQ* WORD OF EJT/QFT ENTRY
 SI       EQU    25          SUBSYSTEM INDEX
 QA       EQU    26          QFT ORDINAL
 QI       EQU    QA          QFT ORDINAL
 PR       EQU    27          PRIORITY 
 CN       EQU    30 - 34     ASSEMBLY BUFFER (5 LOCATIONS)
 OT       EQU    35          ORIGIN OF JOB TO BE ALTERED
 RI       EQU    35 - 36     RANDOM ADDRESS (2 LOCATIONS) 
 QT       EQU    37          QUEUE TYPE 
 FN       EQU    40 - 44     FILE NAME (5 LOCATIONS)
 UN       EQU    40 - 44     USER NAME (USED BY *0AV*)
 OC       EQU    45          ORIGIN CODE
 BA       EQU    46 - 47     BUFFER ADDRESS (2 LOCATIONS) 
 FA       EQU    57          FNT ADDRESS
 SF       EQU    FA          SELECTION FLAGS FOR *PRESET* 
 TP       EQU    FA          TEMPORARY FOR *PEEK* PROCESSORS
 AF       EQU    60 - 61     *ALTER* FLAGS
 FT       EQU    60 - 61     *FIRST* POINTER
 WB       EQU    62 - 66     CM WORD BUFFER (5 LOCATIONS) 
 NC       EQU    67          NUMBER OF CONTROL POINTS + 1 
          SPACE  4
**        ALLOWED QUEUE TYPES FOR *QAC* CALL. 
  
  
 AQQC     EQU    INQQ+EXQQ+PRQQ+PHQQ+PLQQ+WTQQ
          SPACE  4
**        QUEUE INDEX CONSTANTS.
  
  
          LOC    0
 INQI     BSS    1           INPUT
 EXQI     BSS    1           EXECUTING
 PRQI     BSS    1           PRINT
 PHQI     BSS    1           PUNCH
 PLQI     BSS    1           PLOT 
 WTQI     BSS    1           WAIT 
 MXQI     BSS    1           MAXIMUM QUEUE INDEX
          LOC    *O 
          SPACE  4
**        FATAL ERROR CODES.
  
  
 ER13     EQU    13D         INCORRECT REQUEST
 ER14     EQU    14D         COMPLETION BIT SET 
 ER15     EQU    15D         INCORRECT QUEUE ORDINAL
 ER16     EQU    16D         BUFFER ARGUMENT ERROR
 ER17     EQU    17D         INCORRECT PARAMETER BLOCK SIZE 
          SPACE  4
**        DAYFILE MESSAGE BUFFER LENGTHS. 
  
  
 AJLC     EQU    4*5         ABORT JOB MESSAGE (40 CHARACTERS)
 CFLC     EQU    3*5+3       *CFO* COMMENT (36 CHARACTERS)
 DYLC     EQU    4*5+4       *COMMENT* MESSAGE (47 CHARACTERS)
  
 MSGBL    MAX    AJLC,CFLC,DYLC  MESSAGE BUFFER LENGTH
 MAXWC    EQU    5           MAXIMUM WORD COUNT 
          ERRNG  MAXWC*5-MSGBL  MESSAGE BUFFER TOO LARGE
  
  
 BQACL    MAX    ALLB,GTLB,PKLB  PARAMETER BLOCK BUFFER LENGTH
  
 MXOR     EQU    5           MAXIMUM ORIGIN TYPE+1
  
*         DAYFILE POINTERS FOR *PEEK* PROCESSING ON ROLLOUT FILES.
  
 INRF     EQU    BFMS+2+100*5-DAPN*5+4       *IN* POINTER 
 OTRF     EQU    BFMS+2+100*5-DAPN*5+1*5+4   *OUT* POINTER
          SPACE  4,10 
*         THE FOLLOWING DEFINES/ENSURES THE CORRECT WORD LOCATION 
*         WHEN READING THE SECOND HALF OF THE CONTROL POINT AREA
*         FROM THE ROLLOUT FILE (NON-*PRJS*/*PWJS* EXECUTING JOBS 
*         ONLY).
  
  
 JSCO     EQU    JSCW-100    *JSCW* WORD OFFSET 
          ERRNG  JSCW-100    ERROR IF WORD POSITION CHANGES 
          SPACE  4,10 
**        THE FOLLOWING TESTS ENSURE PROPER PROCESSING OF THE ORIGIN
*         CODE FIELD. IF ONE OF THESE TESTS FAIL, *QAC* MUST BE 
*         MODIFIED TO MAP THE VALUE SPECIFIED IN THE PARAMETER BLOCK
*         INTO THE CORRECT ORIGIN TYPE. 
  
  
          ERRNZ  SYOT-0      CHECK ORIGIN CODE PROCESSING IN *QAC*
          ERRNZ  BCOT-1      CHECK ORIGIN CODE PROCESSING IN *QAC*
          ERRNZ  EIOT-2      CHECK ORIGIN CODE PROCESSING IN *QAC*
  
          ERRNZ  QA-26       MISMATCH ON QFT ORDINAL FOR *0DQ*
          TITLE  MACRO DEFINITIONS. 
**        DEVICE - SET DEVICE TABLE ENTRY.
* 
*         DEVICE MN,IN
*                MN = DEVICE MNEMONIC.
*                IN = INTERNAL DEVICE CODE. 
  
  
          PURGMAC DEVICE
  
 DEVICE   MACRO  M,I
          MACREF DEVICE 
          VFD    6/0,6/I
          VFD    12/0L_M
          ENDM
          SPACE  4
**        ERROR - SET ERROR CODE. 
* 
*         ERROR  ER 
* 
*         ENTRY  *ER* = ERROR CODE. 
  
  
          PURGMAC ERROR 
  
 ERROR    MACRO  E
          MACREF ERROR
          LDN    E
          RJM    ERP
          ENDM
 FCN      SPACE  4
**        FCN - DEFINE FUNCTION PROCESSOR.
* 
*         FCN    NAME,LEN 
* 
*         ENTRY  *NAME* = NAME OF FUNCTION PROCESSOR. 
*                *LEN* = REQUIRED PARAMETER BLOCK LENGTH FOR FUNCTION.
  
  
          PURGMAC  FCN
  
          NOREF  .I 
 FCN      MACRO  A,B
          MACREF FCN
 )N       SET    B*100
          LOC    .I/3 
          CON    )N+A/10000B,A-A/10000B*10000B
 .I       SET    .I+3 
          ENDM
          SPACE  4,5
**        OVERLAY CONTROL.
* 
*         THIS FEATURE IS INCLUDED FOR FUTURE MODULARITY. 
  
 .N       SET    0
 OVLB     MICRO  1,, 3Q      BASE OVERLAY NAME
          SPACE  4,8
**        OVERLAY - GENERATE OVERLAY CONSTANTS. 
* 
* 
*         OVERLAY (TEXT),LADDR
* 
*         ENTRY  *TEXT* = TEXT OF SUBTITLE. 
*                *LADDR* = LOAD ADDRESS FOR OVERLAY, DEFAULT *OVL*. 
  
  
          PURGMAC OVERLAY 
  
 OVERLAY  MACRO  TEXT,L 
          MACREF OVERLAY
          QUAL
 .N       SET    .N+1 
 .M       MICRO  .N,1, RSTUVWXYZ0123456789
 .O       MICRO  1,3, "OVLB"".M"
          QUAL   ".O" 
          TTL    QAC/".O" - TEXT
          TITLE 
          IDENT  ".O",L     TEXT
*COMMENT  QAC - TEXT
          COMMENT  COPYRIGHT CONTROL DATA SYSTEMS INC.  1992. 
          ORG    L
          LJM    *
          UJN    *-2
          ENDM
          SPACE  4,6
**        ENTRY - DEFINE OVERLAY ENTRY POINT. 
* 
*         ENTRY  NAME 
* 
*         ENTRY  *NAME* = NAME OF ENTRY ADDRESS.
  
  
          PURGMAC ENTRY 
  
 ENTRY    MACRO  NAME 
          MACREF ENTRY
          QUAL
 NAME_X   LJP    *
 NAME     EQU    *-1+1R".M"*10000B
          QUAL   ".O" 
          ENDM
 SCLASS   SPACE  4,15 
**        SCLASS - DEFINE SERVICE CLASS TABLE.
* 
*         SCLASS NM,MN,DF,ST,TX 
* 
*         ENTRY  *NM* = SERVICE CLASS NAME. 
*                *MN* = TWO CHARACTER MNEMONIC. 
*                *DF* = DAYFILE MESSAGE CHARACTER.
*                *ST* = SHORT TEXT FOR *QFTLIST*. 
*                *TX* = TEXT OF SERVICE CLASS NAME FOR BANNER PAGE. 
* 
*         NOTE - THE CALL TO *COMSSCD* MUST FOLLOW THE DEFINITION OF
*                THIS MACRO.
  
  
          PURGMAC  SCLASS 
  
 SCLASS   MACRO  NM,MN,DF,ST,TX 
 .SCL     RMT 
          INDEX  NM,1R_DF    TX 
 .SCL     RMT 
 .A       IFC    NE,$NM$SSSC$ 
 .SCLVSP  RMT 
          INDEX  NM,MN_MK    TX 
 .SCLVSP  RMT 
 .A       ENDIF 
 SCLASS   ENDM
  
  
 SCL$     EQU    0           ONLY PROCESS CLASSES WITH JCB-S
*CALL     COMSSCD 
          TITLE  MAIN PROGRAM.
**        QAC - MAIN PROGRAM. 
  
  
          ORG    PPFW 
 PRS      RJM    /PRS/PRS    PROCESS BASIC PRESET 
  
  
 QAC      BSS    0           ENTRY
          EXECUTE  3Q4       LOAD *PRESET* OVERLAY
          RJM    /3Q4/PRS    PRESET *QAC* 
          ZJN    QAC1        IF DESTINATION *FM,UN* NOT SPECIFIED 
          RJM    CDM         CONVERT DESTINATION ADDRESSING MODE
 QAC1     LDD    CN+3 
          ZJN    QAC2        IF NO OVERLAY LOAD REQUIRED
  
*         PROCESS FUNCTION. 
  
          LDC    0
 QACA     EQU    *-1         (OVERLAY NAME) 
          ZJN    QAC2        IF NO OVERLAY LOAD REQUIRED
          LMC    2L"OVLB"    LOAD OVERLAY 
          RJM    EXR
          EXECUTE  3QS,=     *GET* PROCESSING 
          EXECUTE  3QT,=     *ALTER* PROCESSING 
          EXECUTE  3QU,=     *PEEK* PROCESSING
 QAC2     RJM    *           PROCESS REQUEST
 QACB     EQU    *-1         (PROCESSOR ADDRESS SET BY PRESET)
  
*         SET CURRENT PARAMETER BLOCK COMPLETE. 
  
 QACX     LDN    0           (NON-ZERO IF NEED TO ENTER RECALL) 
 QACC     EQU    *-1
          NJP    RCL         IF *QAC* MUST ENTER RECALL 
          LDC    ** 
 QACD     EQU    *-1         (PARAMETER BLOCK LENGTH) 
          STD    T1 
          RJM    GFA         WRITE PARAMETER BLOCK
          CWM    BQAC,T1
          AOM    BQAC+4      SET PARAMETER BLOCK COMPLETE 
          RJM    GFA         SET PARAMETER BLOCK COMPLETE 
          CWM    BQAC,ON
  
*         CHECK LINK ADDRESS. 
  
          LDM    BQAC+10*5+3
          LPN    37 
          STD    IR+3 
          SHN    14 
          LMM    BQAC+10*5+4
          STD    IR+4 
          ZJN    DPP         IF NO LINK ADDRESS 
          PAUSE 
          LDD    CM+1 
          NJN    DPP         IF ERROR FLAG SET
          LJM    QAC         PROCESS NEXT PARAMETER BLOCK 
  
*         DROP PPU. 
  
 DPP      RJM    CFI         CLEAR EJT/QFT INTERLOCK
          MONITOR  DPPM      DROP PP
          LJM    PPR
          TITLE  PROGRAMMING NOTES. 
**        PROGRAMMING NOTES AND CONSIDERATIONS. 
* 
*         THE FOLLOWING DIRECT CELLS HAVE SPECIAL USE FOR THE 
*         SPECIFIC FUNCTIONS.  CARE SHOULD BE TAKEN WHEN USING
*         ANY OF THESE CELLS. 
* 
* 
*         FOR ALL FUNCTIONS - 
* 
*         (T7) = 0, SYSTEM SECTOR HAS NOT BEEN READ.  (SET BY *VEI*.) 
*              = 1, SYSTEM SECTOR HAS BEEN READ.  (SET BY *COMPRSS*.) 
*         (SI) = SUBSYSTEM IDENTIFICATION NUMBER.  (SET BY *PRS*.)
*              = 0, IF CALL FROM USER PROGRAM.
* 
*         FOR *ALTER* FUNCTION -
* 
*         (CN) = CURRENT EJT/QFT ORDINAL. 
*         (CN+1) = LIMITING ORDINAL FOR EJT/QFT SEARCH. 
*                  (SET BY *PRS*.)
*         (CN+2) = BEGINNING ORDINAL FOR EJT/QFT SEARCH.
*                  (SET BY *PRS*.)
*         (CN+3) = JOB/FILE SELECTED INDICATOR. 
* 
*         FOR *GET* FUNCTION -
* 
*         (CN) = CURRENT QFT ORDINAL. 
*         (CN+1) = LIMITING ORDINAL FOR QFT SEARCH.  (SET BY *PRS*.)
*         (CN+2) = BEGINNING ORDINAL FOR QFT SEARCH.  (SET BY *PRS*.) 
*         (CN+4) = ORDINAL OF BEST FILE.
*         (PR) = PRIORITY OF BEST FILE. 
* 
*         FOR *PEEK* FUNCTION - 
* 
*         (CN) = CURRENT EJT/QFT ORDINAL. 
*         (CN+1) = LIMITING ORDINAL FOR EJT/QFT SEARCH. 
*                  (SET BY *PRS*.)
*         (CN+2) = BEGINNING ORDINAL FOR EJT/QFT SEARCH.
*                  (SET BY *PRS*.)
*         (CN+3) = SIZE OF REPLY ENTRY TO BE RETURNED.  (SET BY *PEK.)
*                = 0, IF ONLY COUNT OF JOBS/FILES TO BE RETURNED. 
*         (CN+4) = MAXIMUM NUMBER OF REPLY ENTRIES TO BE RETURNED.
* 
* 
*         ALL RESIDENT ROUTINES AND FUNCTION OVERLAYS MUST BE 
*         REENTRANT TO ALLOW PROPER PROCESSING OF LINKED
*         PARAMETER BLOCKS.  TAG NAMES OF THE FORM .XXX INDICATE
*         A MEMORY WORD THAT MUST BE RESET BEFORE THE NEXT
*         PARAMETER BLOCK CAN BE PROCESSED. 
* 
* 
*         THE ERROR PROCESSING OVERLAY IS LOADED AT *OVL0* TO ALLOW 
*         *QAC* TO CONTINUE NORMAL PROCESSING ONCE SYSTEM SECTOR
*         ERRORS ARE PROCESSED.  THIS OVERLAY MUST BE RELOADED FOR
*         EVERY SYSTEM SECTOR ERROR ENCOUNTERED.
          TITLE  ERROR PROCESSORS.
 ERP      SPACE  4,15 
**        ERP - ERROR PROCESSOR.
* 
*         ENTRY  (A) = ERROR CODE.
* 
*         EXIT   TO /3QR/ERP. 
* 
*         USES   PR.
* 
*         CALLS  CCP. 
* 
*         MACROS EXECUTE. 
  
  
 ERP      CON    0           ENTRY
          STD    PR          SAVE ERROR CODE
          LDN    0           CLEAR ALTERNATE CP/PCP ASSIGNMENT
          RJM    CCP
          EXECUTE  3QR       LOAD ERROR PROCESSING OVERLAY
          LJM    /3QR/ERP    EXIT TO PROCESS ERROR
          TITLE  RESIDENT ROUTINES. 
 CCA      SPACE  4,10 
**        CCA - COMPUTE CPA/PCPA ADDRESS. 
* 
*         ENTRY  (A) = CP/PCP NUMBER. 
*                (NC) = NUMBER OF CONTROL POINTS. 
* 
*         EXIT   (A) = CPA/PCPA ADDRESS.
  
  
 CCA1     ADD    NC 
          SHN    7
  
 CCA      SUBR               ENTRY/EXIT 
          SBD    NC 
          MJN    CCA1        IF CONTROL POINT 
          ZJN    CCA1        IF SYSTEM CONTROL POINT
          SHN    7
 CCAA     ADC    **          (PCP AREAS BASE ADDRESS) 
          UJN    CCAX        RETURN 
 CCP      SPACE  4,15 
**        CCP - CHANGE CONTROL POINT ASSIGNMENT.
* 
*         ENTRY  (A) = CP/PCP NUMBER OF JOB WHOSE FIELD LENGTH WILL BE
*                      ACCESSED IF .NE. 0.
*                (A) = 0 IF TO TERMINATE ACCESS TO CP/PCP FIELD LENGTH. 
*                (CCPA) = ASSIGNED ALTERNATE CP/PCP NUMBER IF .NE. 0. 
*                (CCPA) = 0 IF NO ALTERNATE CP/PCP ASIGNMENT. 
* 
*         EXIT   (T4) = (CCPA) = UPDATED CP/PCP NUMBER. 
* 
*         USES   T4, CM - CM+4. 
* 
*         CALLS  CCA. 
* 
*         MACROS DELAY, MONITOR, PAUSE. 
* 
*         ERROR  TO *DPP*.
  
  
  
 CCP4     LDD    T4          UPDATE ALTERNATE CP/PCP STATUS 
          STM    CCPA 
  
 CCP      SUBR               ENTRY
          STD    T4          SAVE CP/PCP NUMBER 
          LMC    0
 CCPA     EQU    *-1         (ALTERNATE CP/PCP NUMBER IF .NE. 0)
          ZJN    CCPX        IF ASSIGNMENT ALREADY CORRECT
 CCPB     LMN    **          (CALLING CP NUMBER)
          ZJN    CCPX        IF TO ACCESS CALLING CP
 CCP1     LDD    T4          SET CP/PCP NUMBER IN *CCAM* REQUEST
          LMC    ALCS        SET ALTERNATE ASSIGNMENT FLAG
          STD    CM+1 
          MONITOR  CCAM      SET OR CLEAR ALTERNATE CP/PCP ASSIGNMENT 
          LDD    CM+1 
          ZJP    CCP4        IF CHANGE MADE 
          LDD    T4 
          RJM    CCA         COMPUTE CP/PCP ADDRESS 
          ADN    STSW        CHECK ERROR FLAG 
          CRD    CM 
          LDD    CM+1 
          LMK    PEET 
          ZJN    CCP3        IF *PEET* ERROR
          DELAY  3*8D        DELAY FOR 3 MS 
          PAUSE 
          LDD    CM+1 
          ZJP    CCP1        IF NO ERROR FLAG SET 
 CCP3     LJM    DPP         DROP PP
 CDM      SPACE  4,20 
**        CDM - CONVERT DESTINATION ADDRESSING MODE.
* 
*         ENTRY  (A) .NE. 0, IF *FO-UI* TO BE CONVERTED.
*                (BA) = ADDRESS OF DESTINATION FAMILY 
*                       NAME AND USER NAME. 
*                (BA+1) = ADDRESS TO RETURN CONVERTED *FO-UI* TO. 
*                (A) .EQ. 0, IF BATCH ID TO BE VERIFIED.
*                (BA) = BATCH ID. 
*                (BA+1) = ADDRESS TO RETURN BATCH ID TO.
*                (SI) = SUBSYSTEM INDEX.
* 
*         EXIT   *FO-UI* OR BATCH ID SET INTO SPECIFIED BUFFER. 
* 
*         ERROR  TO *ERR* IF INCORRECT FAMILY, USER NAME OR BATCH ID. 
* 
*         USES   T1, T2, CN - CN+4, FN - FN+4, FS - FS+4, 
*                UN - UN+4. 
* 
*         CALLS  GFM, GFO, *0AV*. 
* 
*         MACROS ERROR, EXECUTE.
  
  
 CDM6     STI    BA+1 
          LDD    BA          GET BATCH ID 
          STM    1,BA+1      SET INTO RETURN BUFFER 
          SBN    IDLM 
          MJN    CDMX        IF VALID BATCH ID
          ERROR  ER09        INCORRECT BATCH ID 
  
 CDM      SUBR               ENTRY/EXIT 
          ZJN    CDM6        IF BATCH ID SELECTED 
  
*         SET UP FAMILY NAME AND USER NAME FOR CONVERSION.
  
          LDD    MA          SAVE (CN - CN+4) 
          CWD    CN 
          CRD    FS 
          LDD    BA          SET BUFFER ADDRESSES 
          STM    CDMA 
          ADN    5
          STM    CDMB 
          LDD    MA          GET FAMILY NAME
          CWM    **,ON
 CDMA     EQU    *-1
          SBN    1
          CRD    FN 
          LDD    FN 
          NJN    CDM1        IF FAMILY NAME PRESENT 
          LDN    1           SET DEFAULT FAMILY NAME
          RJM    GFM
  
*         SET *FO-UI*.
  
 CDM1     LDD    FN+3 
          SCN    77 
          STD    FN+3 
          LDN    1
          RJM    GFO         GET FAMILY ORDINAL 
          ZJN    CDM3        IF VALID FAMILY
 CDM2     ERROR  ER02        UNKNOWN FAMILY/USER NAME 
  
 CDM3     LDD    FN+4        SET FAMILY ORDINAL 
          SHN    6
          STM    CDMC 
          LDD    MA          SET FAMILY NAME FOR *0AV*
          CWD    FN 
          CRD    CN 
          LDN    0
          STD    CN+4 
          LDD    MA          GET USER NAME
          CWM    **,ON
 CDMB     EQU    *-1
          SBN    1
          CRD    UN 
          LDD    SI 
          NJN    CDM4        IF NOT USER CALL 
          STD    UN+4        CLEAR USER INDEX 
          LDD    UN+3 
          SCN    77 
          STD    UN+3 
 CDM4     LDD    UN+3        CHECK FOR USER INDEX SPECIFIED 
          LPN    77 
          STD    T1 
          SHN    14 
          LMD    UN+4 
          STD    T2 
          NJN    CDM5        IF USER INDEX PRESENT
          EXECUTE  0AV,OVL0 
          PJN    CDM4.1      IF NO MASS STORAGE ERROR ENCOUNTERED 
          ERROR  ER07        NO ENTRY SELECTED
  
 CDM4.1   LDD    T1 
          ADD    T2 
          NJN    CDM5        IF CORRECT USER NAME 
          LJM    CDM2        PROCESS INCORRECT USER NAME
  
 CDM5     LDD    T1          SET USER INDEX INTO BUFFER 
          LMC    0
 CDMC     EQU    *-1         (FAMILY ORDINAL) 
          STI    BA+1 
          LDD    T2 
          STM    1,BA+1 
          LDD    MA          RESTORE (CN - CN+4)
          CWD    FS 
          CRD    CN 
          LJM    CDMX        RETURN 
 C2B      SPACE  4,10 
**        C2B - COMPARE TWO BYTES.
* 
*         ENTRY  (A) = 6/ CA, 12/ SA. 
*                      CA = DIRECT CELL LOCATION OF COMPARE VALUE.
*                      SA = ADDRESS OF VALUE BEING SEARCHED FOR.
* 
*         EXIT   (A) = 0 IF VALUES ARE EQUAL. 
* 
*         USES   T1, T2.
  
  
 C2B      SUBR               ENTRY/EXIT 
          STD    T1 
          SHN    -14         SET COMPARE VALUE ADDRESS
          STD    T2 
          LDI    T1          CHECK SEARCH VALUE 
          LMI    T2 
          NJN    C2BX        IF NOT EQUAL 
          LDM    1,T1 
          LMM    1,T2 
          UJN    C2BX        RETURN 
 GFA      SPACE  4,10 
**        GFA - GET PARAMETER BLOCK ADDRESS.
* 
*         ENTRY  (IR+3 - IR+4) = PARAMETER BLOCK ADDRESS. 
* 
*         EXIT   (A) = ABSOLUTE ADDRESS.
  
  
 GFA      SUBR               ENTRY/EXIT 
          LDD    IR+3 
          SHN    6
          ADD    RA 
          SHN    6
          ADD    IR+4 
          UJN    GFAX        RETURN 
 RAL      SPACE  4,20 
**        RAL - RETURN ACCESS LEVEL FOR EXECUTING JOB/QUEUE FILE. 
* 
*         ENTRY  (QT) = QUEUE TYPE. 
*                (CN) = ORDINAL OF ENTRY TO BE VALIDATED. 
*                (CQJS) = CURRENT JOB STATUS OF EXECUTING JOB.
*                (FS - FS+4) = EJT WORD *SCHE*, IF EXECUTING JOB. 
*                (IBUF - IBUF+4) = QFT WORD *INSQ* OR EJT WORD *PRFE*.
* 
*         EXIT   (A) = (T1) = ACCESS LEVEL OF EXECUTING JOB/QUEUE FILE. 
*                (A) .LT. 0 IF ERROR IN READING ROLLOUT FILE. 
*                (CLSA) .NE. 0, IF LID ROUTINES MUST BE RELOADED. 
* 
*         USES   T1.
* 
*         CALLS  CCA, RDC, RIF. 
  
  
 RAL      SUBR               ENTRY/EXIT 
          LDD    QT 
          LMK    EXQI 
          ZJN    RAL1        IF EXECUTING JOB 
  
*         READ FILE ACCESS LEVEL FROM QFT ENTRY.
  
          LDM    IBUF+3 
          UJN    RAL3        SET ACCESS LEVEL 
  
*         PROCESS EXECUTING JOB.
  
 RAL1     LDM    CQJS        CHECK JOB STATE
          LMK    PRJS 
          ZJN    RAL2        IF PRE-INITIAL JOB STATE 
          LMK    PWJS&PRJS
          NJN    RAL6        IF NOT PRE-INITIAL WAIT JOB STATE
  
*         GET *QFT* IMAGE FROM INPUT FILE SYSTEM SECTOR.
  
 RAL2     RJM    RIF         READ SYSTEM SECTOR 
          SHN    0-21 
          NJN    RAL3        IF ERROR 
          LDM    IOSS+5*INSQ+3
 RAL3     LPN    70          SET ACCESS LEVEL OF JOB/FILE 
          SHN    -3 
 RAL4     STD    T1 
 RAL5     UJN    RALX        RETURN 
  
*         READ ACCESS LEVEL OF JOB FROM CPA/PCPA. 
  
 RAL6     LMK    EXJS&PWJS
          ZJN    RAL7        IF JOB AT CP 
          LMK    PCJS&EXJS
          NJN    RAL11       IF JOB ROLLED OUT
          LDD    FS+1 
          UJN    RAL8        READ PCP AREA
  
 RAL7     LDD    FS+3        READ CP AREA 
 RAL8     RJM    CCA         COMPUTE CP/PCP ADDRESS 
          ADK    JSCW 
          CRM    CBUF+5*JSCO,ON 
 RAL9     LDM    CBUF+5*JSCO+1  SET ACCESS LEVEL OF JOB 
          SHN    -11
          UJN    RAL4        RETURN 
  
*         READ ACCESS LEVEL FROM ROLLOUT FILE.
  
 RAL11    AOM    CLSA        FORCE RELOAD OF LID PROCESSING ROUTINES
          LDN    FSMS+1      GET CPA FROM ROLLOUT FILE
          RJM    RDC
          PJN    RAL9        IF NO ERRORS 
*         LCN    0
          UJN    RAL5        RETURN 
 RCE      SPACE  4,15 
**        RCE - READ CONTENTS OF EJT/QFT ENTRY. 
* 
*         ENTRY  (QT) = QUEUE TYPE. 
*                (CN) = ORDINAL OF ENTRY. 
* 
*         EXIT   (FN - FN+4) = *JSNE*/*JSNQ* WORD OF ENTRY. 
*                (FS - FS+4) = *SCHE*/*ENTQ* WORD OF ENTRY. 
*                (WB - WB+4) = *SCLE*/*SCLQ* WORD OF ENTRY. 
*                (IBUF - IBUF+4) = *PRFE*/*INSQ* WORD OF ENTRY. 
* 
*         USES   FN - FN+4, FS - FS+4, WB - WB+4. 
* 
*         MACROS SFA. 
  
  
  
 RCE      SUBR               ENTRY/EXIT 
          LDD    QT 
          LMK    EXQI 
          NJN    RCE1        IF NOT EXECUTING JOB 
          SFA    EJT,CN 
          UJN    RCE2        READ CONTENTS OF ENTRY 
  
 RCE1     SFA    QFT,CN 
 RCE2     ADK    JSNE 
          CRD    FN 
          ADN    SCHE-JSNE
          CRD    FS 
          ADK    PRFE-SCHE
          CRM    IBUF,ON
          ADK    SCLE-PRFE-1
          CRD    WB 
          UJN    RCEX        RETURN 
  
  
          ERRNZ  JSNQ-JSNE   CHECK QFT/EJT PROCESSING 
          ERRNZ  ENTQ-SCHE   CHECK QFT/EJT PROCESSING 
          ERRNZ  INSQ-PRFE   CHECK QFT/EJT PROCESSING 
          ERRNZ  SCLQ-SCLE   CHECK QFT/EJT PROCESSING 
 RCL      SPACE  4,15 
**        RCL - RECALL *QAC*. 
* 
*         ENTRY  (A) = RECALL STACK REASON CODE.
*                AT *RCL1* IF *SSID* FIELD SET AT PRESET. 
* 
*         EXIT   TO *PPR*.
* 
*         USES   T7, CM - CM+4. 
* 
*         CALLS  CFI. 
* 
*         MACROS MONITOR. 
  
  
 RCL      BSS    0           ENTRY
          STD    T7 
          RJM    CFI         CLEAR ENTRY INTERLOCK
 RCL1     LDN    ZERL 
          CRD    CM 
          LDD    MA          ENTER PP RECALL REQUEST
          CWD    IR 
          ADN    1           STORE REASON CODE
          CWD    T7 
          MONITOR  RECM 
          LJM    PPR         EXIT TO PP RESIDENT
 RDC      SPACE  4,15 
**        RDC - READ CONTROL POINT AREA.
* 
*         ENTRY  (A) = SECTOR TO BE READ. 
*                    = *FSMS*, READ FIRST HALF OF CPA.
*                    = *FSMS+1*, READ SECOND HALF OF CPA. 
* 
*                (FS - FS+4) = EJT WORD *SCHE*. 
* 
*         EXIT   (A) = 0, IF READ SUCCESSFUL. 
*                    .LT. 0, IF READ ERROR ENCOUNTERED. 
*                (CBUF) = APPROPRIATE SECTOR OF CONTROL POINT AREA. 
* 
*         USES   T5, T6, T7.
* 
*         CALLS  RDS. 
* 
*         MACROS ENDMS, SETMS.
  
  
 RDC1     ENDMS 
*         LDN    0
  
 RDC      SUBR               ENTRY/EXIT 
          STD    T7          SET SECTOR 
          LDD    FS          SET ROLLOUT FILE EQUIPMENT 
          STD    T5 
          SETMS  IO 
          LDD    FS+1        SET ROLLOUT FILE TRACK 
          STD    T6 
          LDC    SBUF        READ CONTROL POINT AREA SECTOR 
          RJM    RDS
          PJN    RDC1        IF NO ERRORS 
          UJN    RDCX        RETURN, (A) .LT. 0 
 SQT      SPACE  4,12 
**        SQT - SET QUEUE TYPE. 
* 
*         ENTRY  (.SQT) = QUEUE TYPE FLAGS. 
*                (QT) = LAST QUEUE TYPE PROCESSED.
* 
*         EXIT   (A) = 0, IF NO QUEUE TYPE SET. 
*                (QT) = NEXT QUEUE TYPE TO BE PROCESSED.
*                (.SQT) = QUEUE TYPE FLAGS LEFT TO PROCESS. 
*                (CM+2) = MAXIMUM ORDINAL+1 FOR SEARCH. 
* 
*         USES   QT, CM - CM+4. 
  
  
 SQT      SUBR               ENTRY/EXIT 
 SQT1     AOD    QT          ADVANCE QUEUE TYPE INDEX 
          LMN    MXQI 
          ZJN    SQTX        IF END OF QUEUE TYPES
          LDM    TQOR,QT     GET QUEUE MASK 
          LPC    *
 .SQT     EQU    *-1         (QUEUE FLAGS SET BY *PRS*) 
          ZJN    SQT1        IF QUEUE TYPE NOT SPECIFIED
          LMM    .SQT        CLEAR QUEUE TYPE FLAG
          STM    .SQT 
          LDD    QT          GET MAXIMUM ORDINAL FOR SEARCH 
          LMK    EXQI 
          ZJN    SQT2        IF EXECUTING QUEUE 
          LDK    QFTP&EJTP
 SQT2     LMK    EJTP 
          CRD    CM 
          UJN    SQTX        RETURN 
  
  
**        TQOR - TABLE OF QUEUE ORDER.
* 
*T,       12/  QUEUE
* 
*         QUEUE = QUEUE TYPE FROM PARAMETER BLOCK TO BE SEARCHED FOR. 
  
  
 TQOR     INDEX 
          INDEX  INQI,INQQ   INPUT
          INDEX  EXQI,EXQQ   EXECUTING JOB
          INDEX  PRQI,PRQQ   PRINT
          INDEX  PHQI,PHQQ   PUNCH
          INDEX  PLQI,PLQQ   PLOT 
          INDEX  WTQI,WTQQ   WAIT 
          INDEX  MXQI 
 TQQT     SPACE  4,10 
**        TQQT - TABLE OF QFT QUEUE TYPES.
* 
*T,       12/  QUEUE
* 
*         QUEUE = QUEUE TYPE IN *JSNQ* WORD OF QFT ENTRY. 
  
  
 TQQT     INDEX 
          INDEX  INQI,INQT   INPUT
          INDEX  PRQI,PRQT   PRINT
          INDEX  PHQI,PHQT   PUNCH
          INDEX  PLQI,PLQT   PLOT 
          INDEX  WTQI,WTQT   WAIT 
          INDEX  MXQI 
 VBA      SPACE  4,10 
**        VBA - VALIDATE BUFFER ADDRESSES.
* 
*         EXIT   (A) = 0. 
* 
*         ERROR  TO ERROR PROCESSOR IF ADDRESSES INCORRECT. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS ERROR, MONITOR.
  
  
 VBA      SUBR               ENTRY/EXIT 
          LDN    2           SET VALIDATION OPTION
          STD    CM+1 
          LDD    IR+4        SET BUFFER ADDRESS 
          STD    CM+4 
          LDD    IR+3 
          STD    CM+3 
          MONITOR  VFPM      VALIDATE FET PARAMETERS
          LDD    CM+1 
          ZJN    VBAX        IF VALID ADDRESSES 
          ERROR  ER16        * QAC BUFFER ARGUMENT ERROR.*
 VCA      SPACE  4,10 
**        VCA - VALIDATE CENTRAL ADDRESS. 
* 
*         ENTRY  (A) = CENTRAL ADDRESS TO VALIDATE. 
* 
*         EXIT   (A) = CENTRL ADDRESS.
* 
*                (T1 - T2) = CENTRAL ADDRESS. 
* 
*         ERROR  TO ERROR PROCESSOR IF ADDRESS INCORRECT. 
* 
*         USES   T1, T2.
* 
*         MACROS ERROR. 
  
  
 VCA1     ERROR  ER13        * QAC INCORRECT REQUEST.*
  
 VCA      SUBR               ENTRY/EXIT 
          STD    T2 
          SCN    1
          ZJN    VCA1        IF ADDRESS .LE. 1
          SCN    77 
          SHN    6
          STD    T1 
          SHN    6
          SBD    FL 
          PJN    VCA1        IF ADDRESS .GE. FL 
          LDD    T1 
          SHN    14 
          LMD    T2 
          UJN    VCAX        RETURN 
          SPACE  4
**        TDCM - TABLE OF DISPOSITION CODE MAPPINGS.
  
  
 TDCM     BSS    0
          DEVICE IN,INQF
 TDCME    EQU    *-TDCM      ENTRY LENGTH 
          DEVICE LP,LPQF
          DEVICE LR,LRQF
          DEVICE LS,LSQF
          DEVICE LT,LTQF
          DEVICE LX,LXQF
          DEVICE LY,LYQF
          DEVICE NO,NOQF
          DEVICE PL,PLQF
          DEVICE PR,LPQF
          DEVICE P2,P2QF
          DEVICE LQ,P2QF
          DEVICE PU,PUQF
          DEVICE PH,PUQF
          DEVICE CP,PUQF
          DEVICE PB,PUQF
          DEVICE P8,PUQF
          DEVICE SB,PUQF
          DEVICE TO,TOQF
          DEVICE TT,TQQF
          DEVICE WT,TQQF
          DEVICE SO,SOQF
          DEVICE SS,SQQF
 TDCML    EQU    *-TDCM      TABLE LENGTH 
 SEJ      TITLE  RESIDENT ROUTINES - SEARCH FOR JOB/FILE. 
**        SEJ - SEARCH FOR EXECUTING JOB. 
* 
*         ENTRY  (CN) = BEGINNING ORDINAL-1 FOR EJT SEARCH. 
*                (CN+1) = LIMITING ORDINAL FOR EJT SEARCH.
*                (OC) = ORIGIN TYPE.
* 
*         EXIT   (A) = 0 IF FILE FOUND. 
*                (CN) = ORDINAL OF SELECTED EJT ENTRY.
*                (QI) = ORDINAL OF INTERLOCKED EJT ENTRY. 
*                (CQJS) = CURRENT JOB STATUS. 
*                (RIFA) .NE. 0 IF JOB ROLLED OUT. 
* 
*         USES   CN, QI.
* 
*         CALLS  CFI, RCE, SIF, VEI.
  
  
 SEJ5     LDN    1           SET NO JOB SELECTED
  
 SEJ      SUBR               ENTRY/EXIT 
          LDN    0           CLEAR INTERLOCK STATUS 
          STD    QI 
 SEJ1     AOD    CN          ADVANCE TABLE ORDINAL
          LMD    CN+1 
          ZJN    SEJ5        IF END OF SEARCH 
          RJM    RCE         GET CONTENTS OF EJT ENTRY
          LDD    FN+4        CHECK JOB STATUS 
          SHN    -1 
          LPN    37 
          STM    CQJS 
          LMN    NVJS 
          ZJN    SEJ1        IF NVE ENTRY 
          RJM    VEI         VALIDATE EJT INFORMATION 
          NJN    SEJ1        IF JOB NOT SELECTED
          RJM    SIF         SET ENTRY INTERLOCK
 SEJ2     ZJN    SEJ1        IF INTERLOCK NOT SET 
          RJM    RCE         GET CONTENTS OF EJT ENTRY
          LDD    FN+4        SET JOB STATUS 
          SHN    -1 
          LPN    37 
          STM    CQJS 
          LMK    PRJS 
          ZJN    SEJ3        IF PRE-INITIAL JOB STATE 
          LMK    PWJS&PRJS
          ZJN    SEJ3        IF PRE-INITIAL WAIT JOB STATE
          LMK    EXJS&PWJS
          ZJN    SEJ3        IF EXECUTING JOB STATE 
          LMK    PCJS&EXJS
 SEJ3     STM    RIFA        SET ROLLOUT FILE READ STATUS 
          RJM    VEI         REVALIDATE EJT INFORMATION 
          ZJN    SEJ4        IF JOB SELECTED
          RJM    CFI         CLEAR ENTRY INTERLOCK
          UJN    SEJ2        CONTINUE SEARCH
  
 SEJ4     LJM    SEJX        JOB SELECTED - RETURN
 SFF      SPACE  4,15 
**        SFF - SEARCH FOR QUEUED FILE IN QFT.
* 
*         ENTRY  (CN) = BEGINNING ORDINAL-1 FOR TABLE SEARCH. 
*                (CN+1) = ENDING ORDINAL FOR TABLE SEARCH.
*                (OC) = ORIGIN TYPE.
* 
*         EXIT   (A) = 0, IF FILE FOUND.
*                (CN) = ORDINAL OF FILE.
*                (QI) = ORDINAL OF INTERLOCKED FILE.
*                (CN+3) = PRIORITY OF SELECTED FILE.
* 
*         USES   CN.
* 
*         CALLS  CFI, RCE, SIF, VEI.
  
  
 SFF2     LDN    1           SET NO FILE FOUND
  
 SFF      SUBR               ENTRY/EXIT 
          LDN    0           FLAG NO ROLLOUT FILE READ
          STM    RIFA 
 SFF1     AOD    CN          ADVANCE SEARCH ORDINAL 
          LDD    CN 
          LMD    CN+1 
          ZJN    SFF2        IF END OF SEARCH 
          RJM    RCE         GET CONTENTS OF QFT ENTRY
          RJM    VEI         VALIDATE QFT INFORMATION 
          NJN    SFF1        IF FILE NOT SELECTED 
          RJM    SIF         SET INTERLOCK ON FILE
          ZJN    SFF1        IF INTERLOCK NOT SET 
          RJM    RCE         GET CONTENTS OF QFT ENTRY
          RJM    VEI         REVALIDATE QFT INFORMATION 
          ZJN    SFFX        IF FILE SELECTED 
          RJM    CFI         CLEAR FILE QFT INTERLOCK 
          UJN    SFF1        CHECK NEXT ENTRY 
 VEI      SPACE  4,20 
**        VEI - VALIDATE EJT/QFT ENTRY INFORMATION. 
* 
*         ENTRY  (FN - FN+4) = *JSNE*/*JSNQ* WORD FROM EJT/QFT ENTRY. 
*                (FS - FS+4) = *SCHE*/*ENTQ* WORD FROM EJT/QFT ENTRY. 
*                (WB - WB+4) = *SCLE*/*SCLQ* WORD FROM EJT/QFT ENTRY. 
*                (OC) = ORIGIN TYPE.
*                (QT) = DESIRED QUEUE TYPE. 
*                (PR) = PRIORITY OF BEST FILE SO FAR. 
*                (SI) = SUBSYSTEM IDENTIFICATION NUMBER.
*                (CN) = ORDINAL OF ENTRY TO BE VALIDATED. 
*                (QI) = (CN), IF ENTRY INTERLOCKED (*SEJ* CALL).
* 
*         EXIT   (A) = 0, IF ENTRY SELECTED.
*                (FS+4) = PRIORITY OF SELECTED FILE.
* 
*         USES   FS+4, T1, T2, T3, T7.
* 
*         CALLS  CPR, C2B, VEC, VLM.
  
  
 VEI20    LDN    1           SET ENTRY NOT SELECTED 
  
 VEI      SUBR               ENTRY/EXIT 
          LDD    FN 
          ZJN    VEI20       IF ENTRY NOT AVAILABLE FOR SELECTION 
          LDN    0
          STD    T7          SET SYSTEM SECTOR NOT READ 
          STD    T1 
          LDD    SI 
          NJN    VEI1        IF NOT USER CALL 
 .FN2     EQU    FN+2 
          LDC    .FN2*10000+.OFU  CHECK OWNERSHIP *FO-UI* 
          RJM    C2B
          STD    T1 
 VEI1     LDD    QT 
          LMK    EXQI 
          NJN    VEI2        IF QUEUED FILE 
          LDD    T1 
          NJN    VEIX        IF NOT USER-S JOB
          LDN    0
*         LDN    1           (CHECK FOR RECOVERABLE JOB)
 .SRJ     EQU    *-1         (SET BY *PRS*) 
          ZJN    VEI1.2      IF CHECK NOT TO BE MADE
          LDD    FN+4        SELECT ONLY RECOVERABLE JOB
          SHN    -7 
          LPN    17 
          LMN    DTCS 
 VEI1.1   NJN    VEIX        IF JOB NOT RECOVERABLE 
 VEI1.2   LJM    VEI14       CONTINUE VALIDATION FOR EXECUTING JOBS 
  
*         VALIDATE QUEUED FILE IN QFT.
  
 VEI2     LDD    T1 
          ZJN    VEI2.1      IF USER-S FILE 
 .WB1     EQU    WB+1 
          LDC    .WB1*10000+.OFU  CHECK DESTINATION *FO-UI* 
          RJM    C2B
          NJN    VEI1.1      IF NOT USER-S FILE 
 VEI2.1   LDD    FN+4        CHECK FILE ASSIGNMENT
          LPN    2
 VEI3     NJN    VEI1.1      IF FILE ASSIGNED 
          LDD    FN+4        CHECK QUEUE TYPE 
          SHN    -6 
          LMK    ERQF 
          ZJP    VEI20       IF ERROR ON QUEUED FILE
          LMK    ERQF 
          SHN    -3 
          LMM    TQQT,QT
          NJN    VEI3        IF NO MATCH ON QUEUE TYPE
          LDN    0
*         LDN    1
 .FSI     EQU    *-1         (SET BY *PRESET*)
          ZJN    VEI3.2      IF FILE SIZE INDICES NOT SPECIFIED 
          LDD    FS+2        CHECK IF INDEX IS WITHIN SPECIFIED RANGE 
          LPN    7
          STD    T1 
          SBN    0
 .LFI     EQU    *-1         (FILE SIZE INDEX LOWER BOUND)
          MJN    VEI4        IF FILE SIZE INDEX .LT. LOWER BOUND
          LDN    0
 .UFI     EQU    *-1         (FILE SIZE INDEX UPPER BOUND)
          SBD    T1 
          MJN    VEI4        IF INDEX .GT. UPPER BOUND
 VEI3.2   LDD    FS+3        CHECK PRIORITY 
          STD    T1 
          LDD    FS+4 
          STD    T2 
          ADD    T1 
          NJN    VEI5        IF NOT ZERO ENTRY TIME 
          LDN    0           CHECK IF ZERO PRIORITY ALLOWED 
*         LDN    1           (IGNORE FILE)
 .IPR     EQU    *-1         (SET BY *PRESET*)
          ZJN    VEI7        IF ZERO PRIORITY ALLOWED 
 VEI4     LJM    VEI20       FILE NOT SELECTED
  
 VEI5     LDD    QT          SET QUEUE TYPE 
          LMK    INQI 
          ZJN    VEI6        IF INPUT FILE
          LDK    OTQT&INQT
 VEI6     LMK    INQT 
          STD    T3 
          LDD    WB          SET SERVICE CLASS/QUEUE TYPE 
          SCN    77 
          SHN    6
          LMD    T3 
          RJM    CPR         CALCULATE PRIORITY 
 VEI7     STD    FS+4 
          SBD    PR 
          MJN    VEI8        IF PRIORITY TOO LOW
          LDD    QT 
          LMK    INQI 
          ZJN    VEI9        IF INPUT FILE
          LDN    0
*         LDN    1           (IF FORMS CODE TO BE CHECKED)
 .CFC     EQU    *-1         (SET BY *PRESET*)
          ZJN    VEI9        IF FORMS CODE NOT SELECTED 
          LDC    *
 .FRM     EQU    *-1         (SELECTED FORMS CODE SET BY *PRESET*)
          LMD    WB+4 
          ZJN    VEI9        IF MATCH ON FORMS CODE 
 VEI8     UJN    VEI4        FILE NOT SELECTED
  
 VEI9     LDN    0
*         LDN    1           (IF DISPOSITION CODE TO BE CHECKED)
 .CDC     EQU    *-1         (SET BY *PRESET*)
          ZJN    VEI10       IF DISPOSITION CODE NOT SELECTED 
          LDD    FN+4 
          SHN    -6 
          LMN    0
 .DCT     EQU    *-1         (DISPOSITION CODE SET BY *PRESET*) 
          ZJN    VEI10       IF MATCH 
          LDD    QT 
          LMK    PRQI 
          NJN    VEI8        IF NOT PRINT FILE
          LDN    1
*         LDN    0           ALLOW *PR*/*LP* TO ALSO BE SELECTED
 .DLP     EQU    *-1         (SET BY *PRESET*)
          NJN    VEI8        IF *PR*/*LP* SELECTION NOT ALLOWED 
          LDD    FN+4 
          SHN    -6 
          LMK    LPQF 
          NJN    VEI8        IF NOT PRINT ON ANY PRINTER
 VEI10    LDC    100
 .EXC     EQU    *-1         (EC SET BY *PRESET*) 
          LMD    HN 
          ZJN    VEI13       IF EC NOT SELECTED 
          LDD    WB+3 
          SHN    -3 
          LPN    7
          STD    T1 
          LMM    .EXC 
          ZJN    VEI13       IF MATCH 
          LDN    0
*         LDN    1           (IF HIERARCHIAL EC SELECTED) 
 .HEX     EQU    *-1         (SET BY *PRESET*)
          ZJN    VEI11       IF HIERARCHIAL EC NOT SELECTED 
          RJM    VEC         CHECK HIERARCHIAL EC 
          ZJN    VEI13       IF FILE SELECTED 
 VEI11    LDN    0
*         LDN    1           (IF *EC=ANY* NOT ALLOWED)
 .ANY     EQU    *-1         (SET BY *PRESET*)
          NJN    VEI12       IF *EC=ANY* NOT ALLOWED
          LDD    T1 
          ZJN    VEI13       IF EXTERNAL CHARACTERISTICS .EQ. ZERO
 VEI12    LJM    VEIX        RETURN 
  
 VEI13    LDC    100
 .INC     EQU    *-1         (INTERNAL CHARACTERISTICS SET BY *PRESET*) 
          LMD    HN 
          ZJN    VEI14       IF IC NOT SELECTED 
          LDD    WB+3        CHECK IC 
          LPN    7
          LMM    .INC 
          NJN    VEI15.1     IF NO MATCH ON IC
  
*         COMPLETE VALIDATION OF ENTRY. 
  
 VEI14    LDN    0
*         LDN    1           (JSN IS SELECTION CRITERIA)
 .JSN     EQU    *-1         (JSN SELECTION CRITERIA FLAG)
          ZJN    VEI15       IF JSN NOT SELECTION CRITERIA
          LDC    FN*10000+BQAC+7*5+0  COMPARE JSN 
          RJM    C2B
          NJN    VEI12       IF NO COMPARE
 VEI15    LDM    BQAC+7*5+4 
          LPN    30 
          ZJN    VEI16       IF DESTINATION ROUTING NOT SELECTED
 .WB1     EQU    WB+1 
          LDC    .WB1*10000+.SDA  CHECK DESTINATION *FO-UI* 
          RJM    C2B
 VEI15.1  NJN    VEI18       IF NO MATCH
 VEI16    LDD    OC          CHECK ORIGIN TYPE
          SHN    21-13
          MJN    VEI17.1     IF ALL ORIGIN TYPES ALLOWED
          LDD    OC 
          LMD    WB 
          LPN    17 
          ZJN    VEI17.1     IF MATCH ON ORIGIN TYPE
          LDD    OC 
          LMK    BCOT 
          ZJN    VEI17       IF BATCH ORIGIN REQUESTED
          LMK    SYOT&BCOT
          NJN    VEI18       IF NO MATCH ON ORIGIN TYPE 
          LDK    BCOT&SYOT
 VEI17    LMK    SYOT 
          LMD    WB 
          LPN    17 
          NJN    VEI18       IF NO MATCH ON ORIGIN TYPE 
 VEI17.1  RJM    VLM         VALIDATE ACCESS LEVEL
 VEI18    ZJN    VEI19       IF FILE SELECTED 
          LDC    SBNI        RESET PREVIOUS BEST EC 
 .VEI     EQU    *-1         (PREVIOUS BEST EC) 
          STM    .VEC 
 VEI19    LJM    VEIX        RETURN 
 VEC      SPACE  4,10 
**        VEC - VALIDATE HIERARCHIAL EXTERNAL CHARACTERISTICS.
* 
*         ENTRY  HIERARCHICAL EXTERNAL CHARACTERISTICS FLAG ON. 
*                (.EXC) = EXTERNAL CHARACTERISTICS SELECTED.
*                (WB+3) = BYTE 3 OF *SCLQ* WORD FROM QFT ENTRY. 
*                (QT) = QUEUE TYPE INDEX. 
* 
*         EXIT   (A) = 0 IF FILE SELECTED.
* 
*         USES   T5, T6.
  
  
 VEC3     LDN    1           INDICATE ENTRY NOT SELECTED
  
 VEC      SUBR               ENTRY/EXIT 
          LDD    QT 
          LMK    PRQI 
          ZJN    VEC0.1      IF PRINT FILE
          LMK    PRQI&PHQI
 VEC0     NJN    VEC3        IF NO HIERARCHIAL SEARCH FOR THIS QUEUE
          LDK    TPEC&TVEC   SET TABLE ADDRESS
 VEC0.1   LMK    TVEC 
          STM    VECA 
          LDD    WB+3        SET EC FOR TABLE SEARCH
          LPN    70 
          SHN    3
          LMM    .EXC 
          STD    T5 
          LDN    0           PRESET INDEX 
          STD    T6 
 VEC1     LDM    TVEC,T6     GET HIERARCHICAL TRAIN TABLE ENTRY 
*         LDM    TPEC,T6     (PUNCH FILE EXTERNAL CHARACTERISTICS)
 VECA     EQU    *-1
          ZJN    VEC3        IF END OF TABLE
          LMD    T5 
          ZJN    VEC2        IF SELECTED
          AOD    T6          INCREMENT INDEX
          UJN    VEC1        CONTINUE SEARCHING TABLE 
  
 VEC2     LDD    T6 
          SBN    0
 .VEC     EQU    *-1         (INDEX OF LAST EC SELECTED)
          MJN    VEC0        IF NOT BETTER EC 
          LDM    .VEC        SAVE PREVIOUS BEST EC
          STM    .VEI 
          LDC    SBNI        RESET BEST EC SELECTED 
          LMD    T6 
          STM    .VEC 
          LDN    0           SET FILE SELECTED
          LJM    VECX        RETURN 
          SPACE  4,10 
**        TVEC - TABLE OF VALID EXTERNAL CHARACTERISTICS. 
* 
*T        6/ IEC,6/ SEC 
* 
*         IEC = EXTERNAL CHARACTERISTIC FROM QFT ENTRY. 
*         SEC = EXTERNAL CHARACTERISTIC BEING SEARCHED FOR. 
  
  
 TVEC     BSS    0
          VFD    6/A4EX,6/A6EX
          VFD    6/A4EX,6/A9EX
          VFD    6/B4EX,6/B6EX
          VFD    6/A6EX,6/A9EX
          VFD    6/B4EX,6/DFEX
          VFD    6/B6EX,6/DFEX
          VFD    6/A4EX,6/DFEX
          VFD    6/A6EX,6/DFEX
          VFD    6/A9EX,6/DFEX
          CON    0           TABLE TERMINATOR 
  
          ERRNZ  DFEX        DEFAULT VALUE CHANGED FROM ZERO
          ERRNZ  DFFR        DEFAULT VALUE CHANGED FROM ZERO
  
 TPEC     BSS    0
          VFD    6/PHFR,6/P9FR
          VFD    6/PBFR,6/P8FR
          VFD    6/PHFR,6/ASFR
          VFD    6/P9FR,6/ASFR
          CON    0           END OF TABLE 
 VLM      SPACE  4,15 
**        VLM - VALIDATE LIMIT FOR EXECUTING JOB/QUEUE FILE.
* 
*         ENTRY  (QT) = QUEUE TYPE. 
*                (CN) = ORDINAL OF ENTRY TO BE VALIDATED. 
*                (CQJS) = CURRENT JOB STATUS OF EXECUTING JOB.
*                (FS - FS+4) = EJT WORD *SCHE*, IF EXECUTING JOB. 
*                (IBUF - IBUF+4) = QFT WORD *INSQ* OR EJT WORD *PRFE*.
* 
*         EXIT   (A) = 0, IF ACCESS LEVEL VALID FOR SPECIFIED RANGE 
*                         OR IF NO RANGE SPECIFIED FOR SUBSYSTEM CALL.
*                    .NE. 0, IF ACCESS LEVEL OF ENTRY NOT VALID.
*                (T1) = ACCESS LEVEL OF EXECUTING JOB/QUEUE FILE. 
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  RAL. 
  
  
 VLM      SUBR               ENTRY/EXIT 
          LDN    0
*         LDN    1           (RANGE OF ACCESS LEVELS SPECIFIED) 
 .ALV     EQU    *-1         (SET BY *PRESET*)
          ZJN    VLMX        IF NO RANGE OF ACCESS LEVELS SPECIFIED 
          RJM    RAL         READ ACCESS LEVEL
          SBN    0
 .LAC     EQU    *-1         (LOWER ACCESS LEVEL SET BY *PRESET*) 
          MJN    VLM1        IF LEVEL NOT WITHIN SPECIFIED RANGE
          LDN    0
 .UAC     EQU    *-1         (UPPER ACCESS LEVEL SET BY *PRESET*) 
          SBD    T1 
          MJN    VLM1        IF LEVEL NOT WITHIN SPECIFIED RANGE
          LDN    0
 VLM1     UJN    VLMX        RETURN 
 CFI      SPACE  4,10 
**        CFI - CLEAR INTERLOCK OF EJT/QFT ENTRY. 
* 
*         ENTRY  (QI) = ORDINAL OF INTERLOCKED EJT/QFT ENTRY. 
*                (QT) = QUEUE TYPE. 
* 
*         EXIT   (A) = (QI) = 0.
* 
*         USES   QI, T1.
* 
*         CALLS  SFI. 
* 
*         MACROS SFA. 
  
  
 CFI1     LDN    CFIN        CLEAR QFT INTERLOCK SUBFUNCTION
          STD    T1 
          SFA    QFT,QI      SET ENTRY ADDRESS
 CFI2     RJM    SFI         CLEAR ENTRY INTERLOCK
          LDN    0           CLEAR INTERLOCK FLAG 
          STD    QI 
  
 CFI      SUBR               ENTRY/EXIT 
          LDD    QI 
          ZJN    CFIX        IF NO INTERLOCK SET
          LDD    QT 
          LMK    EXQI 
          NJN    CFI1        IF NOT EXECUTING JOB 
          LDN    CEIN        CLEAR EJT INTERLOCK SUBFUNCTION
          STD    T1 
          SFA    EJT,QI      SET ENTRY ADDRESS
          UJN    CFI2        CLEAR INTERLOCK
 CLS      SPACE  4,10 
**        CLS - CHECK LID SELECTION CRITERIA. 
* 
*         ENTRY  (CLSA) .EQ. 0, IF LID PROCESSING ROUTINES LOADED.
* 
*         EXIT   (A) = 0, IF MATCH ON LID SELECTION CRITERIA. 
* 
*         CALLS  /3Q4/SLL.
* 
*         MACROS EXECUTE. 
  
  
 CLS      SUBR               ENTRY/EXIT 
          LDM    CLSA 
          ZJN    CLS1        IF LID PROCESSING ROUTINES ALREADY LOADED
          EXECUTE  3Q5       LOAD LID PROCESSING ROUTINES 
          LDN    0           INDICATE THAT ROUTINES ARE LOADED
          STM    CLSA 
 CLS1     RJM    /3Q5/SLL    SCAN LID LIST
          UJN    CLSX        RETURN 
  
  
 CLSA     CON    1           ZERO IF LID PROCESSING ROUTINES LOADED 
 SIF      SPACE  4,15 
**        SIF - SET INTERLOCK ON EJT/QFT ENTRY. 
* 
*         ENTRY  (CN) = ORDINAL OF EJT/QFT ENTRY TO BE INTERLOCKED. 
* 
*         EXIT   (A) .NE. 0, IF INTERLOCK SET.
*                (QI) = ORDINAL OF INTERLOCKED QFT ENTRY. 
*                (QT) = QUEUE TYPE. 
* 
*         USES   QI, T0, T1, T4.
* 
*         CALLS  SFI. 
* 
*         MACROS DELAY, PAUSE, SFA. 
  
  
 SIF7     LDD    CN          SET ORDINAL
          STD    QI 
  
 SIF      SUBR               ENTRY/EXIT 
          LDC    1440D       SET DELAY LOOPS TO TOTAL 15 SECONDS
          STD    T4 
 SIF1     LDN    SFIN        SET INTERLOCK FUNCTION 
          STD    T1 
          LDD    QT 
          LMK    EXQI 
          NJN    SIF4        IF NOT EXECUTING JOB 
          SFA    EJT,CN      SET ADDRESS OF ENTRY 
          UJN    SIF5        SET INTERLOCK
  
 SIF2     SOD    T4 
          NJN    SIF1        IF NOT TIMEOUT 
 SIF3     LDN    0           INDICATE INTERLOCK NOT SET 
          UJN    SIFX        RETURN 
  
 SIF4     SFA    QFT,CN      SET ADDRESS OF ENTRY 
 SIF5     RJM    SFI         SET INTERLOCK
          ZJN    SIF7        IF INTERLOCK SET 
          SBN    2
          PJN    SIF3        IF ENTRY NOT IN USE
          LDD    HN          DELAY FOR 128*64 MICROSECONDS
          STD    T0 
 SIF6     DELAY 
          PAUSE  NE 
          SOD    T0 
          PJN    SIF6        IF MORE DELAY
          UJN    SIF2        CHECK FOR TIMEOUT
          TITLE  RESIDENT ROUTINES - FILE PROCESSORS. 
 RIF      SPACE  4,30 
**        RIF - READ INPUT FILE SYSTEM SECTOR.
* 
*         ENTRY  (RIFA) .NE. 0 IF ROLLOUT FILE SYSTEM READ REQUIRED 
*                    BEFORE READ OF INPUT FILE SYSTEM SECTOR. 
*                (FS - FS+1) = EST ORDINAL/FIRST TRACK OF INPUT FILE
*                    SYSTEM SECTOR IF RIFA = 0. 
*                (FS - FS+1) = EST ORDINAL/FIRST TRACK OF ROLLOUT FILE
*                    SYSTEM SECTOR IF RIFA .NE. 0.
*                (T7) = 0, IF SYSTEM SECTOR NOT READ. 
*                (QI) = ORDINAL OF INTERLOCKED QFT/EJT ENTRY. 
* 
*         EXIT   (A) = 1, IF SYSTEM SECTOR READ (AND THE SOURCE LID 
*                    AND/OR THE DISPOSITION CODE, IF SPECIFIED, MATCHED 
*                    THOSE IN THE SYSTEM SECTOR). 
*                (A) = 0, IF THE SPECIFIED DISPOSITION CODE DID NOT 
*                    MATCH THE ONE IN THE SYSTEM SECTOR.
*                (A) .LT. 0, IF SYSTEM SECTOR NOT READ (OR IF THE 
*                    SPECIFIED SOURCE LID DID NOT MATCH THE ONE IN
*                    THE SYSTEM SECTOR).
*                (T7) = 1, IF SYSTEM SECTOR READ. 
*                (JSRF) = JOB STATUS FROM ROLLOUT FILE SYSTEM SECTOR
*                    EJT ENTRY IF ROLLOUT FILE SYSTEM SECTOR READ.
* 
*         USES   T5, T6, FS - FS+4. 
* 
*         CALLS  RDS, RSS.
* 
*         MACROS ENDMS, SETMS.
  
  
 RIF8     LCN    0           FLAG SECTOR NOT READ 
  
 RIF      SUBR               ENTRY/EXIT 
          LDD    T7 
          NJN    RIFX        IF SYSTEM SECTOR ALREADY READ
  
*         SET UP READ OF INPUT OR ROLLOUT FILE. 
  
          LDD    FS          SET INPUT/ROLLOUT FILE EST ORDINAL 
          STD    T5 
          LMK    NEEQ 
          ZJN    RIF8        IF ASSIGNED TO NULL EQUIPMENT
          LDD    FS+1        SET INPUT/ROLLOUT FILE FIRST TRACK 
          ZJN    RIF8        IF NO FIRST TRACK
          STD    T6 
          SETMS  IO 
          LDC    1
*         LDC    0           (NO ROLLOUT FILE READ) 
 RIFA     EQU    *-1         (ROLLOUT READ FLAG)
          ZJP    RIF2        IF NO ROLLOUT FILE READ
  
*         GET INPUT FILE POINTERS FROM ROLLOUT FILE.
  
          LDN    0
          RJM    RSS         READ ROLLOUT FILE SYSTEM SECTOR
 RIF1     NJN    RIF8        IF SYSTEM SECTOR ERROR 
          ENDMS 
          LDM    FNSS+4 
          SHN    -6 
          LMN    ROFT 
          ADM    FASS 
          NJN    RIF1        IF NOT JOB ROLLOUT FILE
          LDM    EJSS+5*JSNE+4  SAVE JOB STATUS FROM ROLLOUT FILE 
          STM    JSRF 
          LDD    MA          SET INPUT FILE FST 
          CWM    IFSS,ON
          SBN    1
          CRD    FS 
          LDD    FS          SET EQUIPMENT
          STD    T5 
          LMK    NEEQ 
          ZJN    RIF4        IF ASSIGNED TO NULL EQUIPMENT
          LDD    FS+1        SET FIRST TRACK
          ZJN    RIF4        IF NO FIRST TRACK
          STD    T6 
          SETMS  IO 
  
*         READ INPUT FILE SYSTEM SECTOR.
  
 RIF2     LDN    0           READ SYSTEM SECTOR 
          RJM    RSS
          NJN    RIF4        IF SYSTEM SECTOR ERROR 
          ENDMS 
          LDN    0
*         LDN    1           (SOURCE LID SPECIFIED) 
 .SLI     EQU    *-1         (SET BY *PRESET*)
          ZJN    RIF5        IF SOURCE LID NOT SPECIFIED
  
*         CHECK IF QUEUE FILE SOURCE LID MATCHES SPECIFIED LID. 
  
          LDM    SLSS 
          LPN    77 
          SHN    14 
          LMM    SLSS+1 
          LMC    ** 
 .SLD     EQU    *-2
          ZJN    RIF5        IF LIDS MATCH
 RIF4     LJM    RIF8        EXIT WITH ERROR
  
 RIF5     LDN    0
*         LDN    1           (DISPOSITION CODE SPECIFIED) 
 .DCI     EQU    *-1         (SET BY *PRESET*)
          ZJN    RIF6        IF DISPOSITION CODE NOT SPECIFIED
  
*         CHECK IF INPUT DISPOSITION CODE MATCHES THE ONE SPECIFIED.
  
          LDM    IOSS+JSNQ*5+4
          SHN    -6 
          LMN    0
 .DCD     EQU    *-1         (SET BY *PRESET*)
          ZJN    RIF6        IF DISPOSITION CODES MATCH 
          LDN    0
          UJN    RIF7        EXIT WITH DISPOSITION CODES NOT MATCHING 
  
 RIF6     LDN    1           FLAG NO ERROR
 RIF7     LJM    RIFX        RETURN 
          SPACE  4
*         COMMON DECKS. 
  
  
 IOQ$     EQU    1           CHECK FOR ZERO ENTRY TIME
 CPR$     EQU    1           CALCULATE PRIORITY 
*CALL     COMPCPE 
 EJT$     EQU    1           ACCESS EJT 
 QFT$     EQU    1           ACCESS QFT 
 IFP$     EQU    0           GENERATE *IFP* REMOTE CODE 
*CALL     COMPGFP 
*CALL     COMPRJC 
 SFI$     EQU    1           SELECT IMMEDIATE RETURN FROM *SFI* 
*CALL     COMPSFI 
*CALL     COMPRSS 
 DFF$     EQU    1           NO ASSEMBLY OF CODE TO ADD FAMILY TO FOT 
 GFM$     EQU    1           GET FAMILY NAME
 GFO$     EQU    1           GET FAMILY ORDINAL 
*CALL     COMPUFT 
 SEI$     EQU    1           GET CURRENT COPY OF TRT
          TITLE  BUFFER DEFINITIONS.
          SPACE  4,10 
*         BUFFERS AND LOAD ADDRESS OF OVERLAYS. 
  
  
  
 BQAC     BSS    BQACL*5     QAC PARAMETER BLOCK
 IBUF     BSS    1*5         *INSQ* WORD OF QFT / *PRFE* WORD OF EJT
 CEJT     BSS    1           CALLER-S EJT ORINAL
 CJSN     BSS    2           CALLER-S JSN 
 JSRF     BSS    1           JOB STATUS (JSNE, BYTE 4) FROM RO FILE SS
 .OFU     BSS    2           OWNERSHIP *FO-UI* IF USER CALL 
 .SDA     BSS    2           SELECTION *FO-UI*
 CQJS     BSS    1           CURRENT JOB STATUS 
  
  
 OVL      EQU    *+5         LOAD ADDRESS FOR OVERLAYS
 .OVL0    MAX    ZAVL,ZBFL,ZDQL 
 OVL0     EQU    EPFW-.OVL0  ZERO LEVEL OVERLAY LOAD ADDRESS
  
  
 .DBUF    MAX    JDBL,CSBL
 DBUF     EQU    EPFW-5*.DBUF-2  DAYFILE/CONTROL STATEMENT BUFFER 
 SBUF     EQU    DBUF-502    MASS STORAGE BUFFER
 CBUF     EQU    SBUF+2      CONTROL POINT AREA BUFFER
          TITLE  BASIC PRESET.
 PRS      SPACE  4,10 
          QUAL   PRS
  
  
 PRS      SUBR               ENTRY/EXIT 
          LDD    CP          SET CALLING CP NUMBER
          SHN    -7 
          RAM    CCPB 
          LDK    PCPP        SET FWA OF PCPA-S
          CRD    CM 
          LDD    CM+3 
          SHN    14 
          LMD    CM+4 
          SBK    200B 
          STM    CCAA+1 
          SHN    -14
          RAM    CCAA 
          LDN    0           CLEAR QFT ORDINAL
          STD    QI 
          RJM    IFP         INITIALIZE MANAGED TABLE ACCESS
          LDD    CP          GET EJT ORDINAL
          ADK    TFSW 
          CRD    CM 
          LDD    CM          SAVE EJT ORDINAL 
          STM    CEJT 
          SFA    EJT         GET JSN
          CRD    FN 
          LDD    FN          SAVE JSN 
          STM    CJSN 
          LDD    FN+1 
          STM    CJSN+1 
          LJM    PRSX        RETURN 
          SPACE  4,10 
 IFP      HERE               DUMP *IFP* REMOTE CODE 
          SPACE  4,10 
          OVERFLOW  PPFW,EPFW 
          OVERLAY  (ERROR PROCESSOR.),OVL0
 ERP      SPACE  4,20 
**        ERP - ERROR PROCESSOR.
* 
*         ENTRY  (PR) = ERROR CODE. 
* 
*         EXIT   TO */3QR/ERR*, IF FATAL ERROR. 
*                TO *QACX*, IF NON-FATAL ERROR. 
* 
*         USES   T1.
* 
*         CALLS  CFI. 
  
  
 ERP      BSS    0           ENTRY
          LDN    0           INITIALIZE TABLE INDEX 
          STD    T1 
 ERP1     LDM    TFEC,T1
          ZJN    ERP2        IF END OF SEARCH 
          LMD    PR 
          ZJN    ERR         IF FATAL ERROR 
          AOD    T1          INCREMENT TABLE INDEX
          UJN    ERP1        CHECK NEXT ENTRY 
  
*         PROCESS NON-FATAL ERROR.
  
 ERP2     RJM    CFI         CLEAR ENTRY INTERLOCK
          LDD    PR          SET ERROR CODE INTO PARAMETER BLOCK
          SHN    12-0 
          RAM    BQAC+4 
          SHN    0-14 
          RAM    BQAC+3 
          LJM    QACX        EXIT 
 TFEC     SPACE  4,10 
**        TFEC - TABLE OF FATAL ERROR CODES.
  
  
 TFEC     BSS    0
          CON    ER13 
          CON    ER14 
          CON    ER15 
          CON    ER16 
          CON    ER17 
          CON    0           END OF TABLE 
 ERR      SPACE  4,15 
**        ERR - ERROR PROCESSOR.
* 
*         ENTRY  (PR) = ERROR CODE. 
*                (QI) = ORDINAL OF INTERLOCKED EJT/QFT ENTRY. 
* 
*         EXIT   DAYFILE MESSAGE ISSUED AND JOB ABORTED.
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CFI, DFM, GFA. 
* 
*         MACROS MONITOR. 
  
  
 ERR      BSS    0           ENTRY
          RJM    CFI         CLEAR ENTRY INTERLOCK
          LDD    PR 
          LMN    ER13 
          ZJN    ERR1        IF INCORRECT REQUEST 
          RJM    GFA         GET PARAMETER BLOCK ADDRESS
          CRD    CM 
          LDD    CM+4        SET COMPLETE BIT 
          SCN    1
          LMN    1
          STD    CM+4 
          RJM    GFA         GET PARAMETER BLOCK ADDRESS
          CWD    CM 
 ERR1     LDM    TERC,PR
          RJM    DFM         ISSUE DAYFILE MESSAGE
          MONITOR  ABTM      ABORT CONTROL POINT
          LJM    PPR         EXIT 
 TERC     SPACE  4,10 
**        TERC - TABLE OF FATAL ERROR CODE DAYFILE MESSAGES.
  
  
 TERC     INDEX 
          INDEX  ER13,(=C* QAC INCORRECT REQUEST.*) 
          INDEX  ER14,(=C* QAC REQUEST COMPLETION BIT SET.*)
          INDEX  ER15,(=C* QAC INCORRECT QUEUE ORDINAL.*) 
          INDEX  ER16,(=C* QAC BUFFER ARGUMENT ERROR.*) 
          INDEX  ER17,(=C* QAC INCORRECT PARAMETER BLOCK SIZE.*)
          INDEX  ER17+1      END OF TABLE 
          SPACE  4
          OVERFLOW  OVL0,EPFW 
          OVERLAY (ATTACH QUEUED FILE.),OVL 
          SPACE  4,10 
***       GET.  (FUNCTION 2.) 
* 
*         *GET* ATTACHES A FILE FROM THE QFT.  UNLESS A SPECIFIC
*         ENTRY IS SELECTED, THE FILE WITH THE HIGHEST QUEUE
*         PRIORITY WILL BE ATTACHED.
*         FILES WITH A ZERO PRIORITY ARE SELECTED ONLY IF THE 
*         ZERO PRIORITY SELECTION FLAG IS SET.
 GET      SPACE  4,10 
**        GET - GET QUEUED FILE.
* 
*         ENTRY  (CN) = (CN+2) = BEGINNING ORDINAL FOR SEARCH.
*                (CN+1) = LIMITING ORDINAL OF SEARCH. 
*                (QT) = QUEUE TYPE. 
*                (SI) = SUBSYSTEM INDEX.
*                (OC) = ORIGIN TYPE.
* 
*         EXIT   QUEUED FILE ATTACHED TO EJT. 
* 
*         ERROR  TO *ERR*, IF DUPLICATE LOCAL FILE NAME FOUND OR
*                          IF PRU LIMIT.
*                TO *RCL* IF LOCAL FNT FULL.
* 
*         USES   PR, QI, RI, RI+1, T1, T6, CM - CM+4, CN - CN+4,
*                FN - FN+4, FS - FS+4, WB - WB+4. 
* 
*         CALLS  CFI, CLS, CRA, RDS, RFD, RIF, SAF, SEI, SFF, 
*                SQT, VFN, VPA, VSH, *0BF*, *0DF*.
* 
*         MACROS ERROR, EXECUTE, MONITOR, NFA, SETMS, SFA.
  
  
*         SEARCH FOR QUEUED FILES.
  
          ENTRY  GET         ENTRY/EXIT 
          LDN    0           CLEAR FILE ORDINAL 
          STM    GETG 
          LDD    CN+1        SAVE LIMITING ORDINAL
          STM    GETH 
          LDD    QT 
          LMK    EXQI 
          ZJN    GET1        IF EXECUTING QUEUE TYPE
          LDM    .SQT 
          LPK    EXQQ 
          ZJN    GET2        IF EXECUTING JOB QUEUE TYPE NOT SPECIFIED
 GET1     ERROR  ER01        INCORRECT QUEUE TYPE 
  
 GET2     LDN    0
          STM    GETD+3      CLEAR EJT ORDINAL/ENTRY TIME 
          STM    GETD+4 
          STD    PR          CLEAR BEST PRIORITY FOUND
          STD    CN+4        CLEAR ORDINAL OF BEST FILE 
          AOM    CLSA        FORCE LOAD OF LID PROCESSING ROUTINES
 GET3     RJM    SFF         SEARCH FOR FILE
          NJN    GET4        IF NO FILE SELECTED
          RJM    CLS         CHECK LID SELECTION CRITERIA 
          NJN    GET3.1      IF LIDS DO NOT MATCH 
          RJM    VSH         VERIFY FILE FOR SPECIAL HANDLING 
          ZJN    GET3.1      IF FILE NOT SELECTED 
          LDM    TQOR,QT     SAVE QUEUE INDEX 
          STM    RFDB 
          LDD    QT          SAVE QUEUE TYPE
          STM    RFDC 
          LDM    IBUF+3      SAVE ACCESS LEVEL
          STM    GETI 
          LDD    FS+4        SET PRIORITY OF BEST FILE
          STD    PR 
          LDD    CN+4        CLEAR INTERLOCK ON OLD FILE
          STD    QI 
          LDD    CN          SET ORDINAL OF BEST FILE 
          STD    CN+4 
          STM    GETG 
 GET3.1   RJM    CFI         CLEAR FILE INTERLOCK 
          LJM    GET3        CONTINUE SEARCH
  
 GET4     LDD    CN+4        SET ORDINAL OF INTERLOCKED FILE
          STD    QI 
          LDN    0           RESET QUEUE ORDINAL
          STD    CN 
          RJM    SQT         SET QUEUE TYPE 
          NJP    GET3        IF QUEUE TYPE SET
          LDC    ** 
 GETG     EQU    *-1
          NJN    GET5        IF FILE SELECTED 
          ERROR  ER07        NO ENTRY SELECTED
  
 GET5     SFA    QFT,QI      GET FILE NAME
          CRD    FN 
          LDN    0           SET UP FOR *COMPSAF* CALL
          STD    FN+2 
          STD    FN+3 
  
*         CHECK IF CALLER SELECTED LOCAL FILE NAME. 
  
          LDM    BQAC+0*5+0 
          ZJN    GET6        IF LOCAL FILE NAME NOT SPECIFIED 
          STD    FN          SET LOCAL FILE NAME TO BE USED 
          LDM    BQAC+0*5+1 
          STD    FN+1 
          LDM    BQAC+0*5+2 
          STD    FN+2 
          LDM    BQAC+0*5+3 
          SCN    77 
          STD    FN+3 
          RJM    VFN         VERIFY FILE NAME 
          NJN    GET6        IF VALID FILE NAME 
          ERROR  ER10        INCORRECT FILE NAME
  
*         SEARCH FOR DUPLICATE FILE ATTACHED TO EJT.
  
 GET6     LDM    BQAC+7*5+4 
          SHN    21-1 
          MJN    GET7        IF INHIBIT DUPLICATE FILE SEARCH 
          RJM    SAF         SEARCH FOR ASSIGNED FILE 
          ZJN    GET7        IF NO FILE FOUND 
 GET6.1   LDD    FS          RETURN DUPLICATE FILE NAME 
          STM    BQAC+0*5+0 
          LDD    FS+1 
          STM    BQAC+0*5+1 
          LDD    FS+2 
          STM    BQAC+0*5+2 
          LDD    FS+3 
          SCN    77 
          STM    BQAC+0*5+3 
          ERROR  ER08        DUPLICATE LOCAL FILE NAME
  
*         CHECK MASS STORAGE LIMIT. 
  
 GET7     SFA    QFT,QI 
          ADK    ENTQ 
          CRD    FS 
          CRD    T5 
          LDD    TH          SET RETURN-ON-INACCESSIBLE OPTION
          RAD    T5 
          LDN    0           GET CURRENT COPY OF TRT
          RJM    SEI         SEARCH FOR END OF INFORMATION
          MJP    GET7.3      IF DEVICE IS INACCESSIBLE
          LDD    CP          GET MASS STORAGE LIMIT 
          ADK    ACLW 
          CRD    CM 
          LDD    T2 
          LPN    77 
          STD    T2 
          STM    GETK 
          LDD    T3 
          STM    GETK+1 
          LDD    CM+3 
          LPN    77 
          SBD    T2 
          MJN    GET7.1      IF LIMIT EXCEEDED
          NJN    GET7.2      IF LIMIT NOT EXCEEDED
          LDD    CM+4 
          SBD    T3 
          PJN    GET7.2      IF LIMIT NOT EXCEEDED
 GET7.1   ERROR  ER29        PRU LIMIT ON ATTACH OF QUEUED FILE 
  
*         READ SYSTEM SECTOR FOR FILE.
  
 GET7.2   LDD    FS+2        SAVE FILE SIZE INDEX 
          LPN    7
          LMC    LMNI 
          STM    RFDD 
          LDN    0           ENSURE SYSTEM SECTOR READ
          STD    T7 
          RJM    RIF         READ SYSTEM SECTOR 
          PJN    GET8        IF NO ERROR
 GET7.3   LDD    QI          RESET BEGINNING ORDINAL FOR SEARCH 
          STD    CN 
          STD    CN+2 
          LDC    **          RESET LIMITING ORDINAL 
 GETH     EQU    *-1
          STD    CN+1 
          RJM    CFI         CLEAR QFT INTERLOCK
*         LDN    0           CLEAR FLAG INDICATING A FILE WAS SELECTED
          STM    GETG 
          LJM    GET2        RETRY SEARCH 
  
*         REMOVE ENTRY FROM QUEUE.
  
 GET8     RJM    RFD         RETURN FILE DESCRIPTION
          SFA    QFT,QI 
          STD    CM+4        SET ENTRY ADDRESS
          SHN    -14
          STD    CM+3 
          LDD    FS+3        SAVE ORIGINAL ENTRY TIME 
          STM    GETA 
          LDD    FS+4 
          STM    GETB 
          LDN    2           SET NUMBER OF REQUESTS 
          STD    CM+1 
          LDD    MA 
          CWM    GETC,CM+1
          LDN    0
          STD    CM+2 
          MONITOR  UTEM      UPDATE QFT ENTRY 
  
*         BUILD NFL FNT/FST ENTRY FOR ATTACHED FILE.
  
          LDM    RTSS        GET INTERRUPT RANDOM ADDRESS 
          STD    RI 
          LDM    RTSS+1 
          STD    RI+1 
          ADD    RI 
          ZJN    GET9        IF NO RANDOM ADDRESS 
          RJM    CRA         CONVERT RANDOM ADDRESS 
          PJN    GET10       IF RANDOM ADDRESS CONVERTED
 GET9     LDN    0           SET NO INTERRUPT RANDOM ADDRESS
          STM    BQAC+15*5+0
          STM    BQAC+15*5+1
          STM    BQAC+15*5+2
          LDD    FS+1        REWIND FILE
          STD    T6 
          LDK    FSMS 
          STD    T7 
          LDD    FS          SET EQUIPMENT
          STD    T5 
          UJN    GET11       SET UP FST ENTRY 
  
 GET10    LDM    RTSS        RETURN INTERRUPT RANDOM ADDRESS
          SHN    14 
          STM    BQAC+15*5+0
          SCN    77 
          LMM    RTSS+1 
          SHN    14 
          STM    BQAC+15*5+1
          SHN    -6 
          SCN    77 
          STM    BQAC+15*5+2
 GET11    LDD    FS+1        SET FIRST TRACK
          STD    CN+1 
          LDD    T6          SET CURRENT TRACK
          STD    CN+2 
          LDD    T7          SET CURRENT SECTOR 
          STD    CN+3 
          LDN    15          SET FILE STATUS
          STD    CN+4 
          LDD    T5          SET EST ORDINAL
          STD    CN 
  
*         CREATE LOCAL FNT ENTRY. 
  
          LDN    NEEQ        ASSIGN NULL EQUIPMENT
          STD    FS 
          LDD    MA          SAVE FILE NAME 
          CWD    FN 
          CRD    WB 
          LDN    0           SET FILE NAME FOR *0BF*
          STD    FN+3 
          LDN    1R*
          SHN    6
          STD    FN+2 
          LDC    **          PUT ACCESS LEVEL IN FNT ENTRY
 GETI     EQU    *-1
          LPN    70 
          SHN    10-5 
          LMC    1006        RETURN ON NFL INCREASE, LOCAL FILE LIMIT 
          STM    OVL0-1 
          EXECUTE  0BF,OVL0  CREATE FNT ENTRY 
          ZJN    GET12       IF FNT ENTRY CREATED 
          STD    PR          SAVE RETURN STATUS 
          LJM    GET13       PROCESS *0BF* REJECT 
  
 GET12    LDD    FA          RETURN NFL FNT ORDINAL 
          STM    BQAC+4*5+0 
          LDC    QFFT*100    SET FILE TYPE
          STD    WB+4 
          LDN    1           SET WRITE LOCKOUT BIT
          RAD    WB+3 
          NFA    FA,R        STORE LOCAL FNT ENTRY
          CWD    WB 
          ADN    FSTL 
          CWD    CN 
          LDN    0
*         LDN    1           (SET BY *RFD*) 
 GETF     EQU    *-1
          ZJP    GET12.1     IF NOT *EXTENDED GET* CALL 
          SOM    GETF 
          LDD    CN          RESTORE EST ORDINAL
          STD    T5 
          LDD    CN+1        SET FIRST TRACK
          STD    T6 
          LDN    0           GET CURRENT COPY OF TRT
          RJM    SEI         POSITION FILE TO EOI SECTOR
          SETMS  IO 
          LDC    BFMS 
          RJM    RDS         READ EOI SECTOR
          PJN    GET12.0     IF NO READ ERROR 
          LJM    GET7.3      RESET BEGINNING ORDINAL FOR SEARCH 
  
*         RETURN REMOTE TEXT DIRECTLY TO CALLER.
  
 GET12.0  ENDMS 
          LDK    GTLB+3+2+2+2+1  OFFSET TO CALLER-S PARAMETER BLOCK 
          STD    CM 
          LDK    2*TXWEI+1   LENGTH OF REMOTE TEXT BLOCKS 
          STD    CM+1 
          RJM    VPA         VALIDATE PARAMETER BLOCK ADDRESS 
          CWM    BFMS+CCEI,CM+1  RETURN REMOTE TEXT AND LENGTH
  
*         ATTACH FILE TO CALLER-S EJT.
  
 GET12.1  LDM    CEJT        PLACE EJT ORDINAL IN *UTEM* REQUEST
          STM    GETD+4 
          SFA    QFT,QI      SET ENTRY ABSOLUTE ADDRESS 
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDN    0
          STD    CM+2 
          LDN    2           SET NUMBER OF REQUESTS 
          STD    CM+1 
          LDD    MA          ENTER *UTEM* REQUEST INTO BUFFER 
          CWM    GETD,CM+1
          MONITOR  UTEM      UPDATE QFT ENTRY 
*         LDN    0
          STD    QI 
  
*         UPDATE MASS STORAGE LIMIT IN *ACLW*.
  
          LDN    1
          STD    CM+1        SET WORD COUNT OF OPTIONS
          STD    CM+2        SELECT NO DROP OF PP 
          LDD    MA 
          CWM    GETJ,CM+1
          MONITOR  UADM      UPDATE MASS STORAGE LIMIT
          LJM    GETX        RETURN 
  
*         PROCESS *0BF* REJECT - NFL INCREASE PENDING,
*         LOCAL FILE LIMIT OR DUPLICATE LOCAL FILE NAME.
  
 GET13    LDC    0           RESET ENTRY TIME 
 GETA     EQU    *-1         (ORIGINAL ENTRY TIME)
          STM    GETD+3 
          LDC    0
 GETB     EQU    *-1         (ORIGINAL ENTRY TIME)
          STM    GETD+4 
          LDN    0           CLEAR STATUS FIELD 
          STM    GETC+4 
          STD    CM+2 
          LDN    3           SET NUMBER OF REQUESTS 
          STD    T1 
          STD    CM+1 
          LDD    MA 
          CWM    GETC,T1
          SFA    QFT,QI      SET QFT ADDRESS
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          MONITOR  UTEM      UPDATE QFT ENTRY 
*         LDN    0           CLEAR EJT INTERLOCK FLAG 
          STD    QI 
          LDD    PR          GET *0BF* RETURN STATUS
          LMN    2
          NJN    GET14       IF NOT WAIT FOR NFL INCREASE 
          LDN    NFIR 
          LJM    RCL         RECALL *QAC* 
  
 GET14    LMN    4&2
          NJN    GET16       IF DUPLICATE FILE NAME ERROR 
          LDN    FLET        SET LOCAL FILE LIMIT ERROR FLAG
          STD    CM+1 
          MONITOR  CEFM 
 GET15    LJM    DPP         DROP PP
  
 GET16    LDD    MA          GET DUPLICATE FILE NAME
          CWD    FN 
          CRD    FS 
          LJM    GET6.1      SET DUPLICATE FILE NAME ERROR
  
  
  
*         *UTEM* REQUESTS.
  
 GETC     VFD    1/0,5/JSNQ,6/1,6/1,42/1  SET STATUS FIELD
 GETD     VFD    1/0,5/ENTQ,6/30,6/0,42/0  SET EJT ORDINAL/ENTRY TIME 
 GETE     VFD    1/0,5/JSNQ,6/1,6/0,42/0  CLEAR INTERLOCK 
*         *UADM* PARAMETER WORD.
  
 GETJ     CON    CDCS        DECREMENT CONTROL POINT AREA 
          CON    ACLW 
          CON    0D*100+18D 
 GETK     CON    0,0
 RFD      SPACE  4,15 
**        RFD - RETURN FILE DESCRIPTION TO PARAMETER BLOCK. 
* 
*         ENTRY  (QI) = ORDINAL OF INTERLOCKED FILE.
*                (SI) = SUBSYSTEM INDEX.
*                *BFMS* CONTAINS THE SYSTEM SECTOR. 
* 
*         EXIT   INFORMATION RETURNED TO PARAMETER BLOCK. 
* 
*         USES   T1, T2, T3, CM - CM+4, WB - WB+4.
* 
*         CALLS  CPI, LPI, PTI, VPA.
* 
*         MACROS SFA. 
  
  
 RFD      SUBR               ENTRY/EXIT 
  
*         SET REQUEST PREFIX AND SELECTION CRITERIA PORTIONS. 
  
          SFA    QFT,QI 
          CRD    CM          READ *JSNQ* WORD 
          ADN    SCLQ-JSNQ
          CRD    WB          READ *SCLQ* WORD 
          LDM    BQAC+0*5+0 
          NJN    RFD1        IF USER SELECTED LOCAL FILE NAME 
          STM    BQAC+0*5+2  RETURN JSN AS LOCAL FILE NAME
          STM    BQAC+0*5+3 
          LDD    CM 
          STM    BQAC+0*5+0 
          LDD    CM+1 
          STM    BQAC+0*5+1 
 RFD1     LDD    QI          RETURN QFT ORDINAL 
          STM    BQAC+4*5+1 
          LDD    WB+1        SET DESTINATION ADDRESSING MODE
          SCN    77 
          NJN    RFD2        IF DESTINATION *FM,UN* SPECIFIED 
          LDD    WB+2        RETURN BATCH ID
          STM    BQAC+5*5+3 
          UJN    RFD4        SET JSN
  
 RFD2     LDM    DASS+4 
          STM    BQAC+6*5+4 
          LDN    4-1
          STD    T1 
 RFD3     LDM    FDSS,T1     SET DESTINATION FAMILY 
          STM    BQAC+5*5,T1
          LDM    DASS,T1     SET DESTINATION USER NAME
          STM    BQAC+6*5,T1
          SOD    T1 
          PJN    RFD3        IF MOVE NOT COMPLETE 
          LDM    BQAC+5*5+3  CLEAR ID FIELD 
          SCN    77 
          STM    BQAC+5*5+3 
 RFD4     LDD    CM          SET JSN
          STM    BQAC+7*5+0 
          LDD    CM+1 
          STM    BQAC+7*5+1 
          LDD    WB          CONVERT ORIGIN TYPE
          LPN    77 
          ADN    1
          ERRNZ  SYOR-SYOT-1 CODE DEPENDS ON VALUE
          ERRNZ  BCOR-BCOT-1 CODE DEPENDS ON VALUE
          ERRNZ  RBOR-RBOT-1 CODE DEPENDS ON VALUE
          ERRNZ  TXOR-IAOT-1 CODE DEPENDS ON VALUE
          STM    BQAC+5*5+4 
          LDC    **          SET QUEUE INDEX
 RFDB     EQU    *-1
          STM    BQAC+4*5+2 
          LDC    **          SET QUEUE TYPE 
 RFDC     EQU    *-1
          STD    QT 
          LDD    CM+4        SET DISPOSITION CODE 
          SHN    -6 
          STD    T1 
          LDN    0           SET INDEX FOR SEARCH 
          STD    T2 
 RFD5     LDM    TDCM,T2
          LMD    T1 
          LPN    77 
          ZJN    RFD6        IF MATCH 
          LDN    TDCME       INCREMENT INDEX
          RAD    T2 
          SBN    TDCML
          MJN    RFD5        IF NOT END OF TABLE
 RFD6     LDM    TDCM+1,T2   SET DISPOSITION CODE 
          STM    BQAC+10*5+2
          SFA    QFT,QI      READ *INSQ* WORD 
          ADK    INSQ 
          CRD    CM 
          LDD    CM+3        GET FILE ACCESS LEVEL
          LPN    70 
          STM    BQAC+16*5+2
          LDD    QT 
          LMK    INQI 
          NJN    RFD7        IF NOT INPUT FILE
          LJM    RFD11       PROCESS INPUT FILE 
  
 RFD7     LDD    WB+4        SET FORMS CODE 
          STM    BQAC+10*5+1
          LDD    WB+3        SET EC AND IC
          LPN    77 
          SHN    6
          LMM    BQAC+10*5+3
          SCN    77 
          LMM    BQAC+10*5+3
          STM    BQAC+10*5+3
  
*         SET *GET* REQUEST PORTION.
  
          LDM    RASS        SET DAYFILE RANDOM ADDRESS 
          SHN    14 
          STM    BQAC+14*5+0
          SCN    77 
          LMM    RASS+1 
          SHN    14 
          STM    BQAC+14*5+1
          SHN    -6 
          SCN    77 
          STM    BQAC+14*5+2
          LDD    SI 
          ZJN    RFD8        IF USER CALL 
          LDM    AWSS+3      SET *BATCHIO* SUBSYSTEM PRIVILEGES FLAG
          LPN    2
          SHN    13-1 
 RFD8     LMM    SCSS        SET SPACING CODE AND PRINT IMAGE 
          STM    BQAC+15*5+3
          LDM    TALP,QT
          ZJN    RFD9        IF NO ACCOUNT LIMIT
          STM    RFDA 
          LDM    LCSS 
          RJM    *           CONVERT ACCOUNT LIMIT
 RFDA     EQU    *-1         (ACCOUNT LIMIT PROCESSOR)
 RFD9     STM    BQAC+14*5+4 SET ACCOUNT LIMIT
          SHN    -14
          STM    BQAC+14*5+3
          LMN    77 
          NJN    RFD10       IF NOT UNLIMITED 
          LCN    0           SET UNLIMITED
          STM    BQAC+14*5+3
 RFD10    LDM    RCSS        SET REPEAT COUNT 
          LPN    77 
          STM    BQAC+15*5+4
 RFD11    LDM    FLSS        SET FILE LENGTH
          SHN    14 
          STM    BQAC+16*5+0
          SCN    77 
          LMM    FLSS+1 
          SHN    14 
          STM    BQAC+16*5+1
          SHN    -6 
          SCN    77 
          LMN    0
 RFDD     EQU    *-1         (FILE SIZE INDEX)
          RAM    BQAC+16*5+2  MERGE INFORMATION WITH ACCESS LEVEL 
          LDM    OJSS        COPY ORIGINAL JSN
          STM    BQAC+16*5+3
          LDM    OJSS+1 
          STM    BQAC+16*5+4
          LDD    WB          RETURN SERVICE CLASS 
          SHN    -6 
          STD    WB 
          LDM    TSCS,WB
          LMM    BQAC+14*5+2
          STM    BQAC+14*5+2
          LDM    SLSS        RETURN SOURCE LID AND DESTINATION LID
          LPN    77 
          SHN    14 
          LMM    SLSS+1 
          SHN    -6+22
          STM    BQAC+11*5+0
          SHN    -14
          SHN    14 
          LMM    IOSS+INSQ*5+1  INSERT DLID 
          SHN    -6+22
          STM    BQAC+11*5+1
          SHN    -14
          SHN    14 
          LMM    IOSS+INSQ*5+2
          SHN    -6 
          STM    BQAC+11*5+2
          LDM    BQAC+1*5+2  CHECK FOR *EXTENDED GET* 
          LPN    1
          SHN    14 
          LMM    BQAC+1*5+3 
          SHN    -6 
          LMK    EGLB 
          NJP    RFD12       IF NOT *EXTENDED GET* CALL 
          AOM    GETF        FLAG *EXTENDED GET* CALL 
  
*         RETURN SYSTEM SECTOR WORDS FOR *EXTENDED GET*.
  
          LDN    GTLB        LWA+1 OF PARAMETER BLOCK 
          STD    CM 
          LDN    2
          STD    CM+1 
          RJM    VPA
          CWM    VASS+AHMT*5,TR  RETURN ACCOUNT VALIDATION INFORMATION
          LDD    TR          INCREMENT OFFSET 
          RAD    CM 
          RJM    VPA
          CWM    OASS,CM+1   RETURN OWNER USER NAME 
          ERRNZ  FOSS-OASS-5 ADJUST IF WORD POSITIONS CHANGE
          LDD    CM+1        INCREMENT OFFSET 
          RAD    CM 
          RJM    VPA
          CWM    ACSS,CM+1
          ERRNZ  FMSS-ACSS-5 ADJUST IF WORD POSITIONS CHANGE
          LDD    CM+1        INCREMENT OFFSET 
          RAD    CM 
          RJM    VPA
          CWM    RUSS,CM+1
          ERRNZ  RFSS-RUSS-5 ADJUST IF WORD POSITIONS CHANGE
          LDD    CM+1        INCREMENT OFFSET 
          RAD    CM 
          RJM    VPA
          CWM    JNSS,ON
          LDD    CP          CHECK IF *SSJ=*
          ADK    SEPW 
          CRD    CN 
          LDD    CN 
          SHN    21-2 
          PJN    RFD11.1     IF NOT *SSJ=*
          LDD    QT          CHECK FOR INPUT FILE 
          LMK    INQI 
          ZJN    RFD11.2     IF INPUT FILE
 RFD11.1  LDN    ZERL        RETURN NO BATCH PASSWORD 
          CRM    EPSS,ON
 RFD11.2  LDK    2*TXWEI+1+1 INCREMENT OFFSET 
          RAD    CM 
          RJM    VPA
          CWM    EPSS,ON     RETURN ENCRYPTED PASSWORD
          AOD    CM          INCREMENT OFFSET 
          RJM    VPA
          CWM    CHSS,TR     RETURN CHARGE AND PROJECT NUMBERS
          ERRNZ  PJSS-CHSS-5
 RFD12    LJM    RFDX        RETURN 
 TALP     SPACE  4,10 
*         TALP - TABLE OF ACCOUNT LIMIT PROCESSORS. 
  
  
 TALP     INDEX 
          INDEX  PRQI,LPI    PRINT
          INDEX  PHQI,CPI    PUNCH
          INDEX  PLQI,PTI    PLOT 
          INDEX  WTQI,LPI    WAIT 
          INDEX  MXQI 
 TSCS     SPACE  4,10 
*         TSCS - TABLE OF SERVICE CLASS SYMBOLS.
  
  
 TSCS     INDEX 
          LIST   D
 .SCL     HERE
          LIST   *
          INDEX  MXJC 
 VPA      SPACE  4,10 
**        VPA - VALIDATE PARAMETER BLOCK ADDRESS. 
* 
*         ENTRY  (CM) = OFFSET INTO PARAMETER BLOCK.
* 
*         EXIT   (A) = PARAMETER BLOCK ADDRESS, IF VALID. 
*                TO *ERP*, IF INCORRECT ADDRESS.
* 
*         CALLS  VCA. 
* 
*         MACROS ERROR. 
  
  
 VPA      SUBR               ENTRY/EXIT 
          LDD    IR+3        PARAMETER BLOCK ADDRESS
          SHN    14 
          ADD    IR+4 
          ADD    CM          ADD OFFSET 
          RJM    VCA
          SHN    14          CALCULATE ABSOLUTE ADDRESS 
          ADD    RA 
          SHN    6
          UJN    VPAX        RETURN 
 VSH      SPACE  4,15 
**        VSH - VALIDATE FILE FOR SPECIAL HANDLING CONSIDERATIONS.
* 
*         ENTRY  (IBUF - IBUF+4) = WORD *INSQ* OF QFT.
*                (QT) = FILE QUEUE TYPE.
* 
*         EXIT   (A) = 0, IF FILE NOT SELECTED. 
*                (A) .NE. 0, IF FILE MEETS SELECTION CRITERIA.
* 
*         USES   CM - CM+4. 
  
  
 VSH1     LDN    1           SET FILE SELECTED
  
 VSH      SUBR               ENTRY/EXIT 
          LDD    CP 
          ADK    JCIW 
          CRD    CM 
          LDD    CM+2 
          LMK    BISI 
          NJN    VSHX        IF CALLER IS NOT *BATCHIO* 
          LDD    QT 
          SBN    PRQI 
          MJN    VSHX        IF NOT OUTPUT FILE TYPE
          LDM    IBUF+3 
          SHN    21-6 
          MJN    VSHX        IF RELEASE BIT IS SET
          SHN    2-5-21+6 
          LPN    7
          STD    T1          ACCESS LEVEL 
          LDK    SSML 
          CRD    CM 
          LDD    CM          GET *OQSH* 
          SHN    -6 
          ZJN    VSH1        IF *OQSH* = 0
          SBD    T1 
          ZJN    VSHX        IF ACCESS LEVEL = *OQSH* 
          PJN    VSH1        IF ACCESS LEVEL .LT. *OQSH*
          LDN    0           FILE NOT SELECTED
          UJN    VSHX        RETURN 
          SPACE  4
*         COMMON DECKS. 
  
  
*CALL     COMPCRA 
 CPI$     EQU    1           CONVERT CARDS PUNCHED INDEX
 LPI$     EQU    1           CONVERT LINES PRINTED INDEX
 PTI$     EQU    1           CONVERT UNITS PLOTTED INDEX
*CALL     COMPCVI 
*CALL     COMPSAF 
*CALL     COMPSEI 
*CALL     COMPVFN 
          SPACE  4,10 
          OVERFLOW OVL,EPFW 
  
  
          USE    OVERFLOW 
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          ERRNG  CBUF-*      OVERFLOW INTO CONTROL POINT BUFFER 
          OVERLAY  (ALTER EXECUTING JOB/QUEUED FILE.),OVL 
          SPACE  4,10 
***       ALTER.  (FUNCTION 1.) 
* 
*         *ALTER* WILL CHANGE SELECTED FIELDS IN A QUEUED FILE QFT
*         ENTRY, AN EXECUTING JOB EJT ENTRY AND THE SYSTEM SECTOR FOR 
*         ALL FILES/JOBS MATCHING THE SELECTION CRITERIA. 
* 
*         *ALTER* WILL CHANGE SELECTED FIELDS IN THE CONTROL POINT
*         AREA AND NFL OF EXECUTING JOBS. 
* 
*         IF JSN IS SPECIFIED AS SELECTION CRITERIA, ONLY THAT SPECIFIC 
*         ENTRY WILL BE ALTERED.  OTHERWISE, ALL ENTRIES MATCHING THE 
*         SELECTION CRITERIA WILL BE ALTERED. 
* 
*         THE CALLING JOB CANNOT BE ALTERED.
* 
*         A JOB ASSIGNED TO A PCP CANNOT BE ALTERED.  IF SUCH A JOB IS
*         SELECTED, IT WILL BE ROLLED OUT TO MASS STORAGE AND *QAC* 
*         WILL CONTINUE SEARCHING FOR OTHER JOB MEETING THE *ALTER* 
*         CRITERIA.  WHEN PROCESSING OF ALL NON-PCP JOBS HAS COMPLETED, 
*         *QAC* WILL ENTER PP RECALL IF ONE OR MORE PCP JOBS WERE 
*         SELECTED AND ROLLED OUT.
  
  
**        ATR - ALTER QUEUED FILE/EXECUTING JOB.
* 
*         ENTRY  (QT) = FIRST QUEUE TYPE TO BE PROCESSED. 
*                (.SQT) = REMAINING QUEUE TYPES TO BE PROCESSED.
*                (SI) = SUBSYSTEM IDENTIFICATION NUMBER.
*                (OC) = ORIGIN TYPE.
*                (CN) = (CN+2) = BEGINNING ORDINAL FOR SEARCH.
*                (CN+1) = ENDING ORDINAL FOR SEARCH.
* 
*         EXIT   PROCESSING COMPLETED BASED ON *ALTER* FLAGS SET. 
* 
*         ERROR  TO ERROR PROCESSOR IF NO ENTRY WAS SELECTED FOR
*                PROCESSING.
* 
*         USES   PR, CM - CM+4, CN - CN+4.
* 
*         CALLS  ACP, APJ, AQF, ARF, CFI, CLS, C2B, EXR, SEJ, SFF,
*                SQT, VFJ.
* 
*         MACROS ERROR, EXECUTE, MONITOR, SFA.
  
  
          ENTRY  ATR         ENTRY/EXIT 
  
*         SAVE INFORMATION DESCRIBING ORIGINAL CONTROL POINT. 
  
          LDM    CEJT        PRESET NO ERROR FLAG 
          STM    ATRA 
          STD    CN+3        SET NO FILE/JOB SELECTED 
          SFA    EJT
          CRM    JSNB,ON
          ADK    JSNE 
          LDN    0           CLEAR BEST PRIORITY FOR SEARCH 
          STD    PR 
          RJM    VFJ         VALIDATE CHARACTERISTICS TO BE CHANGED 
          AOM    CLSA        FORCE LOAD OF LID PROCESSING ROUTINES
          UJN    ATR4        SEARCH FOR QUEUED FILE/EXECUTING JOB 
  
 ATR0     LDC    1
*         LDC    0           (ISSUE NO ERROR FLAG)
 ATRA     EQU    *-1
          NJN    ATRX        IF NO ERROR TO BE ISSUED 
          ERROR  ER19        CANNOT DROP ON-LINE JOB
  
*         SEARCH FOR QUEUED FILES AND EXECUTING JOBS. 
  
 ATR1     LDD    CN+2        SET BEGINNING ORDINAL FOR SEARCH 
          STD    CN 
          RJM    SQT         SET QUEUE TYPE 
          NJN    ATR3        IF QUEUE TYPE SELECTED 
          LDD    CN+3 
          ZJN    ATR0        IF ENTRY SELECTED
          ERROR  ER07        NO ENTRY SELECTED
  
 ATR3     LDD    CM+2        RESET ENDING ORDINAL FOR SEARCH
          STD    CN+1 
 ATR4     LDM    TASH,QT     SET ADDRESS OF SEARCH PROCESSOR
          STM    ATRB 
 ATR6     RJM    CFI         CLEAR ENTRY INTERLOCK
 ATR7     RJM    *           SEARCH FOR QUEUED FILE/EXECUTING JOB 
 ATRB     EQU    *-1
          NJN    ATR1        IF NO FILE/JOB SELECTED
          LDD    MA          SAVE JSN 
          CWD    FN 
          CRM    ATRF,ON
          RJM    CLS         CHECK LID SELECTION CRITERIA 
          NJN    ATR6        IF NO MATCH ON LID SELECTION 
  
*         ALTER QUEUED FILE/EXECUTING JOB.
  
          LDD    MA          SAVE DIRECT CELLS
          CWD    CN 
          CRM    ATRE,ON
          AOM    CLSA        FORCE RELOAD OF LID PROCESSING ROUTINES
          LDC    LDNI        SET ENTRY SELECTED 
          STM    ATRD 
          LDD    QT          CHECK QUEUE TYPE 
          LMK    EXQI 
          ZJN    ATR10       IF EXECUTING JOBS
          LDC    AQF&APJ
 ATR9     LMC    1L1+APJ
          LJM    ATR13       SET PROCESSOR ADDRESS
  
 ATR10    LDD    MA          RESTORE JSN
          CWM    ATRF,ON
          SBN    1
          CRD    FN 
          LDC    FN*10000+JSNB
          RJM    C2B
          ZJP    ATR16       IF CALLING PROGRAM 
          LDM    CQJS 
          LMK    PRJS 
          ZJN    ATR9        IF JOB IN PRE-INITIAL STATE
          LMK    PWJS&PRJS
          ZJN    ATR9        IF JOB IN PRE-INITIAL WAIT STATE 
          LMN    EXJS&PWJS
          ZJN    ATR12       IF JOB AT CP 
          LMK    PCJS&EXJS
          NJN    ATR11       IF JOB NOT AT PCP
          LDD    AF+1 
          SHN    21-11
          PJN    ATR10.1     IF NOT ABORT REQUEST 
          UJN    ATR12       CONTINUE 
  
 ATR10.1  RJM    CFI         CLEAR EJT INTERLOCK
          LDD    FS+1        SET PCP NUMBER IN *ROCM* REQUEST 
          STD    CM+2 
          LDC    4000+ROSR   SET ALTERNATE CP/PCP + ROLLOUT TYPE
          STD    CM+1 
          MONITOR  ROCM      REQUEST JOB ROLLOUT
          LDC    LDNI+WFPR   SET RECALL INDICATOR 
          STM    QACC 
          ERRZR  WFPR        CODE DEPENDS ON VALUE
          ERRPL  WFPR-100    CODE DEPENDS ON VALUE
          LJM    ATR7        PROCESS NEXT ENTRY 
  
 ATR11    LDC    1L3+ARF     JOB ROLLED OUT 
          UJN    ATR13       CONTINUE 
  
 ATR12    LDC    1L2+ACP     JOB AT CP OR PCP 
 ATR13    STM    ATRC        SET PROCESSOR ADDRESS
          SHN    -14
          STD    T7          SAVE OVERLAY NAME
          SHN    6
          LMM    OVLP-5+1    CHECK FOR OVERLAY ALREADY LOADED 
          SCN    77 
          NJN    ATR14       IF NOT ALREADY LOADED
          LDM    OVLP-5 
          LMC    2R3Q 
          ZJN    ATR15       IF OVERLAY ALREADY LOADED
 ATR14    LDD    T7 
          EXECUTE  3Q1,=
          EXECUTE  3Q2,=
          EXECUTE  3Q3,=
          LMC    2L3Q        LOAD OVERLAY 
          RJM    EXR
 ATR15    LDN    0           SET SYSTEM SECTOR NOT READ 
          STD    T7 
          RJM    *           ALTER QUEUED FILE/EXECUTING JOB
 ATRC     EQU    *-1
          LDD    MA          RESTORE CONTENTS OF CN - CN+4
          CWM    ATRE,ON
          SBN    1
          CRD    CN 
 ATR16    RJM    CFI         CLEAR ENTRY INTERLOCK
 ATRD     LDN    0
          NJN    ATR17       IF ENTRY NOT SELECTED
          STD    CN+3 
 ATR17    LDM    BQAC+7*5+4 
          SHN    21-6 
          MJN    ATR18       IF ONLY SPECIFIC ENTRY TO BE ALTERED 
          LJM    ATR7        PROCESS NEXT ENTRY 
  
 ATR18    LJM    ATR0        CHECK FOR ERRORS 
  
 ATRE     BSSZ   5           HOLDING AREA FOR CN - CN+4 
 ATRF     BSSZ   5           HOLDING AREA FOR FN - FN+4 
 TASH     SPACE  4
**        TASH - TABLE OF *ALTER* SEARCH PROCESSORS.
  
  
 TASH     INDEX 
          INDEX  INQI,SFF 
          INDEX  EXQI,SEJ 
          INDEX  PRQI,SFF 
          INDEX  PHQI,SFF 
          INDEX  PLQI,SFF 
          INDEX  WTQI,SFF 
          INDEX  MXQI 
          TITLE  COMMON (NON-OVERLAYED) SUBROUTINES.
 CFD      SPACE  4,10 
**        CFD - CHANGE FILE DESTINATION.
* 
*         ENTRY  (.ADM) = NEW *ROUTE* FIELD FOR EJT/QFT ENTRY.
*                (FMUB) = NEW *FM,UN* FIELDS FOR SYSTEM SECTOR. 
*                (WB - WB+4) = *SCLE*/*SCLQ* WORD OF EJT/QFT ENTRY. 
*                *BFMS* CONTAINS SYSTEM SECTOR. 
*                (QT) = QUEUE TYPE. 
*                (AF - AF+1) = *ALTER* FLAGS. 
* 
*         EXIT   ROUTING INFORMATION ALTERED IN EJT/QFT ENTRY 
*                AND SYSTEM SECTOR. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  UEI. 
  
  
 CFD      SUBR               ENTRY/EXIT 
          LDN    ZERL        SET ROUTING FIELD IN EJT/QFT ENTRY 
          CRD    CM 
          LDN    SCLQ 
          SHN    6           SET WORD INDEX/FIELD SIZE
          LMN    30 
          STD    CM 
          LDC    30*100      SET LOW ORDER BIT
          STD    CM+1 
          LDM    .ADM        SET ROUTING *FO-UI*
          STD    CM+3 
          LDM    .ADM+1 
          STD    CM+4 
          RJM    UEI         UPDATE EJT/QFT ENTRY 
          LDD    MA          SET *FM,UN* FIELDS IN SYSTEM SECTOR
          CWM    FMUB,ON     SET FAMILY NAME
          SBN    1
          CRM    FDSS,ON
          LDD    MA 
          CWM    FMUB+1*5,ON SET USER NAME
          SBN    1
          CRM    DASS,ON
          LJM    CFDX        RETURN 
  
  
          ERRNZ  SCLQ-SCLE   CHECK UPDATING OF QFT/EJT ROUTING FIELDS 
 UEI      SPACE  4,15 
**        UEI - UPDATE EJT/QFT ENTRY. 
* 
*         ENTRY  (CM - CM+4) = *UTEM* REQUEST.
*                (QI) = ORDINAL OF INTERLOCKED EJT/QFT ENTRY. 
*                (QT) = QUEUE TYPE. 
* 
*         EXIT   *UTEM* REQUEST ISSUED. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS MONITOR, SFA.
  
  
 UEI1     SFA    EJT,QI      SET ADDRESS OF EJT ENTRY 
 UEI2     STD    CM+4 
          SHN    -14
          STD    CM+3 
          MONITOR  UTEM      UPDATE EJT/QFT ENTRY 
  
 UEI      SUBR               ENTRY/EXIT 
          LDD    MA          SET *UTEM* REQUEST 
          CWD    CM 
          LDN    0
          STD    CM+2 
          LDN    1           SET NUMBER OF REQUESTS 
          STD    CM+1 
          LDD    QT 
          LMK    EXQI 
          ZJN    UEI1        IF EXECUTING JOB 
          SFA    QFT,QI 
          UJN    UEI2        SET ADDRESS OF ENTRY 
 VFJ      SPACE  4,20 
**        VFJ - VALIDATE CHARACTERISTICS OF FILE/JOB TO BE CHANGED. 
* 
*         EXIT   ALL CHARACTERISTICS TO BE ALTERED ARE VALIDATED. 
*                (.ADM) = *FO-UI* FOR *ROUTE* FIELD IN EJT/QFT ENTRY. 
*                (FMUB) = DESTINATION *FM,UN* FOR SYSTEM SECTOR.
*                MESSAGE ADDRESSES VALIDATED. 
*                (PFQA) = NEW DISPOSITION CODE. 
*                (PFQB) = NEW FORMS CODE. 
* 
*         ERROR  TO ERROR PROCESSOR IF ONE ON THE FOLLOWING OCCURS. 
*                - NO *ALTER* FLAGS SELECTED. 
*                - INCORRECT DESTINATION *FM,UN*. 
* 
*         USES   AF, AF+1.
* 
*         CALLS  CDM, */3QV/VCC*. 
* 
*         MACROS ERROR, EXECUTE.
* 
*         NOTES  THE SETTING OF *ALTER* FLAGS INTO *AF* - *AF*+1 MUST 
*                BE CHANGED WHENEVER NEW *ALTER* FLAGS ARE DEFINED. 
  
  
 VFJ1     EXECUTE  3QV       LOAD VALIDATION OVERLAY
          RJM    VCC         VALIDATE CHARACTERISTICS TO BE CHANGED 
          ZJN    VFJX        IF NOT REMOTE BATCH CHANGE 
          RJM    CDM         CONVERT DESTINATION ADDRESSING MODE
          LDM    .ADM+1      SET USER INDEX INTO BUFFER 
          STM    FMUB+1*5+4 
          LDM    .ADM 
          LPN    77 
          LMM    FMUB+1*5+3 
          STM    FMUB+1*5+3 
  
 VFJ      SUBR               ENTRY/EXIT 
          LDM    BQAC+14*5+4 SET *ALTER* FLAGS
          STD    AF+1 
          LDM    BQAC+14*5+3
          LPC    GOAF+DYAF+CFAF+IMAF+PAAF+DLAF+KJAF+CLAF
          STD    AF 
          ADD    AF+1 
          NJN    VFJ1        IF *ALTER* FLAGS SELECTED
          ERROR  ER12        NO *ALTER* FLAGS SELECTED
 VSC      SPACE  4,20 
**        VSC - VALIDATE SERVICE CLASS. 
* 
*         ENTRY  (A) = 0, IF MASK IN INPUT FILE SYSTEM SECTOR.
*                (A) .NE. 0, IF MASK IN NEGATIVE FIELD LENGTH.
*                (FN+4) = BYTE 4 OF *JSNE*/*JSNQ* WORD FROM EJT/QFT.
*                (QT) = QUEUE TYPE. 
*                (WB) = BYTE 0 OF *SCLE*/*SCLQ* WORD FROM EJT/QFT.
* 
*         EXIT   (T2) = SERVICE CLASS VALUE.
* 
*         ERROR  TO THE ERROR PROCESSOR IF ON OF THE FOLLOWING OCCURS.
*                - UNDEFINED SERVICE CLASS MNEMONIC.
*                - SERVICE CLASS NOT VALID FOR USER.
*                - SERVICE CLASS FULL IF JOB IS *EXQT*. 
*                - JOB TO BE ALTERED IS ON-LINE.
*                - JOB TO BE ALTERED IS SUBSYSTEM SERVICE CLASS.
* 
*         USES   //OT, T3, CM - CM+4, CN - CN+4.
* 
*         CALLS  RJC, UEI, /COMPVSP/VSP.
* 
*         MACROS ERROR, MONITOR, NFA. 
  
  
 VSC      SUBR               ENTRY/EXIT 
          ZJN    VSC1        IF MASK IN INPUT FILE SYSTEM SECTOR
          NFA    SCVN 
          UJN    VSC2        READ SERVICE CLASS MASK
  
 VSC1     LDD    MA 
          CWM    VASS+5*ASCV,ON  PICK UP SERVICE CLASS MASK 
          SBN    1
 VSC2     CRD    CN 
          LDD    QT          CHECK QUEUE TYPE 
          LMN    EXQI 
          NJN    VSC3        IF NOT EXECUTING JOB 
          LDD    FN+4        CHECK CONNECTION STATUS
          SHN    -7 
          LMN    OLCS 
          NJN    VSC3        IF NOT ON-LINE CONNECTION STATUS 
          ERROR  ER25        CANNOT ALTER CLASS OF ON-LINE JOB
  
 VSC3     LDD    WB          CHECK CURRENT SERVICE CLASS
          SHN    -6 
          LMN    SSSC 
          NJN    VSC4        IF NOT SUBSYSTEM SERVICE CLASS 
          ERROR  ER28        CANNOT ALTER CLASS OF SUBSYSTEM
  
 VSC4     LDD    WB          GET ORIGIN OF SPECIFIED JOB
          LPN    17 
          STD    //OT        SAVE ORIGIN OF JOB TO BE CHANGED 
          LDN    0           SET NOT SUBSYSTEM OR SSJ= JOB
          STD    T3 
          LDM    BQAC+NFCQ*5+3  GET SERVICE CLASS MNEMONIC
          LPN    77 
          SHN    14 
          LMM    BQAC+NFCQ*5+4
          SHN    -6 
          RJM    /COMPVSP/VSP  VALIDATE SERVICE CLASS PARAMETERS
          ZJN    VSC8        IF VALID SERVICE CLASS 
          SBN    1
          NJN    VSC5        IF NOT UNDEFINED SERVICE CLASS MNEMONIC
          ERROR  ER26        UNDEFINED SERVICE CLASS MNEMONIC 
  
 VSC5     SBN    1
          NJN    VSC7        IF SERVICE CLASS VALID FOR USER
 VSC6     ERROR  ER23        INCORRECT SERVICE CLASS
  
 VSC7     LDD    QT          GET QUEUE TYPE 
          LMK    EXQI 
          NJN    VSC8        IF NOT EXECUTING JOB 
          ERROR  ER24        SERVICE CLASS FULL 
  
*         INCREMENT JOB COUNT IN *JCB*. 
  
 VSC8     LDD    QT          GET QUEUE TYPE 
          LMK    EXQI 
          NJN    VSC9        IF NOT EXECUTING JOB 
          LDD    T2          GET *JCB* ADDRESS
          RJM    RJC
          STD    CM+4 
          SHN    -14
          STD    CM+3 
          LDN    2           SET NUMBER OF REQUESTS 
          STD    CM+1 
          LDD    CN          SET CURRENT JOB COUNT
          STM    VSCA+4 
          ADN    1           INCREMENT COUNT
          STM    VSCB+4 
          LDD    MA 
          CWM    VSCA,CM+1
          MONITOR  UTEM 
          LDD    CM+1 
          NJP    VSC4        IF REJECT ON *UTEM*
  
*         UPDATE EJT/QFT ENTRY. 
  
 VSC9     LDK    ZERL 
          CRD    CM 
          LDC    SCLQ*100+6  SET WORD INDEX/FIELD SIZE
          STD    CM 
          LDC    54D*100     SET LOW ORDER BIT
          STD    CM+1 
          LDD    T2          SET NEW SERVICE CLASS
          STD    CM+4 
          RJM    UEI         UPDATE QFT ENTRY 
          UJP    VSCX        RETURN 
  
  
 VSCA     VFD    1/1,5/JCTT,6/12D,6/48D,42/0  VERIFY OLD JOB COUNT
 VSCB     VFD    6/JCTT,6/12D,6/48D,42/0      SET NEW JOB COUNT 
  
  
          ERRNG  JSNE-JSNQ   CHECK EJT/QFT PROCESSING 
          ERRNG  SCLE-SCLQ   CHECK EJT/QFT PROCESSING 
 WSS      SPACE  4,15 
**        WSS - WRITE SECTOR. 
* 
*         ENTRY  (FS) = EST ORDINAL.
*                (FS+1) = FIRST TRACK.
*                (T7) = SECTOR. 
*                (A) = BUFFER ADDRESS.
* 
*         EXIT   A = 0, SYSTEM SECTOR WRITTEN.
*                A .LT. 0, MASS STORAGE ERROR.
* 
*         USES   FA, T5, T6, T7.
* 
*         CALLS  WDS. 
* 
*         MACROS ENDMS, SETMS.
  
  
 WSS1     ENDMS 
*         LDN    0
  
 WSS      SUBR               ENTRY/EXIT 
          STM    WSSA        SET BUFFER ADDRESS 
          LDD    FS          SET EQUIPMENT
          STD    T5 
          LDD    FS+1        SET FIRST TRACK
          STD    T6 
          SETMS  IO,RW
          LDN    0
          STD    T7          SET SECTOR 
          STD    FA          CLEAR FNT ADDRESS
          LDC    **+WLSF
 WSSA     EQU    *-1         (BUFFER ADDRESS) 
          RJM    WDS
          PJN    WSS1        IF NOT MASS STORAGE ERROR
          UJN    WSSX        RETURN 
          SPACE  4,10 
*         DATA FOR *DROP* AND *KILL*. 
  
  
 AJEF     CON    ODET        ERROR FLAG 
          SPACE  4
*         COMMON DECKS FOR *ALTER* FUNCTION.
  
  
          QUAL   COMPVSP
 CJL$     EQU    1           CHECK SERVICE CLASS AT SERVICE LIMIT 
 CUV$     EQU    1           CHECK USER VALIDATED FOR SERVICE CLASS 
 VSP$     EQU    1           CHECK SERVICE CLASS MNEMONIC 
*CALL     COMPVSP 
          QUAL   *
          SPACE  4,10 
*         BUFFERS.
  
  
 .ADM     BSS    2           ROUTING FIELD FOR EJT/QFT ENTRY
 FMUB     BSS    2*5         DESTINATION FAMILY/USER NAME 
 JSNB     BSS    1*5         JSN OF ORIGINAL CONTROL POINT
 CFOC     BSS    3           *CFO* COMMAND
 MSGB     BSS    MAXWC*5     MESSAGE BUFFER 
 DMLB     BSS    1           DAYFILE MESSAGE LENGTH 
 DPCB     BSS    1           DISPOSITION CODE 
 EXCB     BSS    1           EXTERNAL CHARACTERITICS
 FMCB     BSS    1           FORMS CODE 
          SPACE  4,10 
*         *ALTER* OVERLAY AREA. 
  
 OVLP     EQU    *+5         OVERLAY LOAD ADDRESS 
          SPACE  4,10 
          OVERFLOW OVL,EPFW 
  
  
          USE    OVERFLOW 
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          OVERLAY  (PEEK/COUNT JOBS AND QUEUED FILES.),OVL
  
  
**        DIRECT CELL DEFINITIONS.
  
  
 IN       EQU    BA - BA+1   *IN* 
 OT       EQU    FN+1 - FN+2 *OUT*
 LM       EQU    FN+3 - FN+4 *LIMIT*
          SPACE  4
***       PEEK.  (FUNCTION 3.)
* 
*         *PEEK* RETURNS A REPLY ENTRY FOR EACH EXECUTING JOB AND 
*         QUEUED FILE MATCHING THE SELECTION CRITERIA.  THE 
*         NUMBER OF ENTRIES SELECTED IS ALSO RETURNED FOR EACH QUEUE
*         TYPE.  IF NO INFORMATION BITS ARE SET, ONLY A COUNT OF THE
*         EXECUTING JOBS AND QUEUED FILES MATCHING THE SELECTION
*         CRITERIA IS RETURNED. 
          SPACE  4
**        PEK - *PEEK* FUNCTION.
* 
*         ENTRY  (QT) = FIRST QUEUE TYPE TO BE PROCESSED ON NEXT CALL.
*                (.SQT) = REMAINING QUEUE TYPES TO BE PROCESSED.
*                (CN) = (CN+2) = BEGINNING ORDINAL FOR SEARCH.
*                (CN+1) = ENDING ORDINAL FOR SEARCH.
* 
*         EXIT   REPLY BUFFER RETURNED. 
*                THE FOLLOWING FIELDS ARE UPDATED IN THE PARAMETER
*                BLOCK. 
*                - *IN* POINTER.
*                - COUNT FIELDS.
*                - REPLY ENTRY LENGTH.
*                - ORDINAL TO RESTART SEARCH. 
*                - QUEUE TYPES REMAINING TO BE PROCESSED. 
* 
*         USES   T1, T2, T3, PR, CN+1, CN+3, CN+4.
* 
*         CALLS  CFI, CIB, CLS, ECR, PES, RIF, SBA, SEJ, SFF, 
*                SQT, VBA.
* 
*         MACROS ERROR. 
  
  
          ENTRY  PEK         ENTRY/EXIT 
          LDN    MXQI        CLEAR ENTRY COUNTS 
          STD    T2 
 PEK1     LDN    0
          STM    TCNT-1,T2
          SOD    T2 
          NJN    PEK1        IF MORE ENTRIES TO CLEAR 
  
*         DETERMINE REPLY BUFFER SIZE.
  
          STD    CN+3        INITIALIZE BUFFER SIZE 
          STD    PR          CLEAR BEST PRIORITY FOR SEARCH 
          STM    PEKD        INDICATE NO FILE/JOB SELECTED
          LDN    5-1         SET NUMBER OF BYTES TO CHECK 
          STD    T1 
 PEK2     LDM    TDIB,T1     SELECT ONLY DEFINED BITS 
          STM    PEKA 
          LDM    BQAC+16*5,T1 
          LPC    *
 PEKA     EQU    *-1         (DEFINED INFORMATION BITS) 
          STD    T3 
 PEK3     ZJN    PEK4        IF ALL BITS COUNTED
          LPN    1
          RAD    CN+3 
          LDD    T3 
          SHN    -1 
          STD    T3 
          UJN    PEK3        LOOP FOR ALL BITS
  
 PEK4     SOD    T1 
          PJN    PEK2        IF ALL BITS NOT COUNTED
          AOM    CLSA        FORCE LOAD OF LID PROCESSING ROUTINES
          LDD    CN+3 
          NJN    PEK5        IF REPLY BUFFER TO BE RETURNED 
          LJM    PEK9        PROCESS COUNT ONLY 
  
 PEK5     RJM    VBA         VALIDATE BUFFER ADDRESSES
  
*         CHECK IF VARIABLE SIZE ENTRIES TO BE RETURNED.
  
*         LDN    0           SET TABLE INDEX
          STD    T1 
 PEK6     LDM    TVRE,T1     SET BYTE NUMBER
          STD    T2 
          LDM    TVRE+1,T1   SET INFORMATION BIT
          STM    PEKB 
          LDM    BQAC+16*5,T2  CHECK IF BIT SELECTED
          LPC    *
 PEKB     EQU    *-1         (INFORMATION BIT)
          ZJN    PEK7        IF BIT NOT SELECTED
          LDM    TVRE+2,T1   INCREMENT REPLY BUFFER SIZE
          RAD    CN+3 
 PEK7     LDN    TVREE       INCREMENT TABLE INDEX
          RAD    T1 
          LMK    TVREL
          NJN    PEK6        IF NOT END OF TABLE
  
*         SET UP BUFFER ADDRESSES.
  
*         LDN    0           SET ALL ADDRESSES
          RJM    SBA         SET BUFFER ADDRESSES 
          RJM    CIB         CHECK BUFFER SPACE 
          SBD    CN+3 
          PJN    PEK9        IF SPACE SUFFICIENT FOR REPLY ENTRY
          ERROR  ER12        BUFFER TOO SMALL 
  
*         VALIDATE *COUNT* FIELD FROM PARAMETER BLOCK.
  
 PEK8     LDD    CM+2        RESET ENDING ORDINAL FOR SEARCH
          STD    CN+1 
 PEK9     LDD    CN+3 
          ZJN    PEK10       IF ONLY COUNT TO BE RETURNED 
          LDM    TCTL,QT     SET MAXIMUM ENTRY COUNT ALLOWED
          STD    CN+4 
          LDM    BQAC,CN+4
          STD    CN+4 
          NJN    PEK10       IF COUNT SPECIFIED 
          STM    BQAC+4*5+1  CLEAR ORDINAL AND QUEUE TYPE 
          STM    BQAC+4*5+2 
          ERROR  ER11        COUNT OF ZERO INCORRECT
  
*         SEARCH FOR EXECUTING JOB/QUEUED FILE. 
  
 PEK10    LDM    TPSH,QT     SET SEARCH PROCESSOR 
          STM    PEKC 
 PEK11    RJM    *           SEARCH FOR QUEUED FILE/EXECUTING JOB 
 PEKC     EQU    *-1
          NJN    PEK12       IF NO FILE/JOB SELECTED
          RJM    CLS         CHECK LID SELECTION CRITERIA 
          ZJN    PEK15       IF LID SELECTION MATCHES 
          RJM    CFI         CLEAR ENTRY INTERLOCK
          UJN    PEK11       PROCESS NEXT ENTRY 
  
 PEK12    LDD    CN+2        RESET BEGINNING ORDINAL FOR SEARCH 
          STD    CN 
          RJM    SQT         SET QUEUE TYPE 
          NJP    PEK8        IF QUEUE TYPE SELECTED 
          STD    CN+4        CLEAR CURRENT QUEUE TYPE 
          STD    CN          CLEAR ORDINAL
 PEK13    RJM    PES         PROCESS END OF SEARCH
          LDD    CN+3 
          ZJN    PEK14       IF ONLY COUNT TO BE RETURNED 
          LDC    0
 PEKD     EQU    *-1         (NONZERO IF FILE/JOB SELECTED) 
          NJN    PEK14       IF FILE/JOB SELECTED 
          ERROR  ER07        NO FILE/JOB SELECTED 
  
 PEK14    LJM    PEKX        RETURN 
  
*         SET UP REPLY BUFFER FOR SELECTED JOB/FILE.
  
 PEK15    STD    T7          SET SYSTEM SECTOR NOT READ 
          LDD    CN+3 
          ZJN    PEK16       IF ONLY COUNT TO BE RETURNED 
          AOM    CLSA        FORCE RELOAD OF LID PROCESSING ROUTINES
          LDM    TRPP,QT     SET REPLY ENTRY PROCESSOR
          STM    PEKE 
          RJM    *
 PEKE     EQU    *-1         (REPLY ENTRY PROCESSOR)
          MJN    PEK17       IF ERROR ENCOUNTERED 
          AOM    PEKD        SET FILE/JOB SELECTED
          RJM    RPI         RETURN *PEEK* INFORMATION
          MJN    PEK17       IF ERROR 
          SOD    CN+4        DECREMENT NUMBER OF ENTRIES TO RETURN
 PEK16    AOM    TCNT,QT     INCREMENT NUMBER OF ENTRIES SELECTED 
 PEK17    RJM    CFI         CLEAR ENTRY INTERLOCK
          LDM    BQAC+7*5+4 
          SHN    21-6 
          PJN    PEK18       IF SPECIFIC JSN NOT SPECIFIED
          LDN    0           SET COMPLETED *PEEK* 
          STD    CN+4        CLEAR CURRENT QUEUE TYPE 
          STM    .SQT        CLEAR REMAINING QUEUE TYPES
          UJN    PEK20       COMPLETE PROCESSING
  
 PEK18    LDD    CN+3 
          ZJN    PEK22       IF ONLY COUNT TO BE RETURNED 
          RJM    SBA         RESET *OUT* AND *LIMIT*
          RJM    CIB         CHECK BUFFER SPACE 
          SBD    CN+3 
          PJN    PEK21       IF SPACE FOR NEXT ENTRY
          LDD    CN+4 
          ZJN    PEK19       IF MAXIMUM ENTRIES RETURNED
          LDM    TQOR,QT     SET CURRENT QUEUE TYPE 
          STD    CN+4 
          AOD    CN          SET NEXT ORDINAL FOR SEARCH
          UJN    PEK20       COMPLETE PROCESSING
  
 PEK19    LDN    1           RESET ORDINAL
 PEK20    STD    CN 
          LJM    PEK13       COMPLETE PROCESSING
  
 PEK21    LDD    CN+4 
          NJN    PEK22       IF MAXIMUM ENTRIES NOT RETURNED
          LJM    PEK12       PROCESS NEXT QUEUE TYPE
  
 PEK22    LJM    PEK11       PROCESS NEXT ENTRY 
 TCNT     SPACE  4
**        TCNT - TABLE OF QUEUE TYPE COUNTS.
  
  
 TCNT     INDEX 
          INDEX  INQI,0      INPUT QUEUE
          INDEX  EXQI,0      EXECUTING JOB
          INDEX  PRQI,0      PRINT QUEUE
          INDEX  PHQI,0      PUNCH QUEUE
          INDEX  PLQI,0      PLOT QUEUE 
          INDEX  WTQI,0      WAIT QUEUE 
          INDEX  MXQI 
 TCTL     SPACE  4
**        TCTL - TABLE OF COUNT LOCATIONS.
* 
*T        12/  INDEX
*         INDEX = INDEX INTO PARAMETER BLOCK TO SPECIFIED QUEUE COUNT.
  
  
 TCTL     INDEX 
          INDEX  INQI,14*5+0 INPUT QUEUE
          INDEX  EXQI,14*5+1 EXECUTING JOB
          INDEX  PRQI,14*5+2 PRINT QUEUE
          INDEX  PHQI,14*5+3 PUNCH QUEUE
          INDEX  PLQI,14*5+4 PLOT QUEUE 
          INDEX  WTQI,15*5+0 WAIT QUEUE 
          INDEX  MXQI 
 TDIB     SPACE  4,10 
**        TDIB - TABLE OF DEFINED INFORMATION BITS. 
* 
*T,       12/  MASK 
*         MASK = MASK FOR INFORMATION BITS DEFINED IN THAT BYTE.
* 
*         PROGRAMMING NOTE.  IF NEW *PEEK* INFORMATION BITS ARE 
*         DEFINED IN THIS TABLE, CARE SHOULD BE TAKEN TO ENSURE 
*         THAT APPROPRIATE CORRESPONDING CHANGES ARE ALSO MADE TO 
*         TABLES *TOPI* AND *TPRI*. 
  
  
 TDIB     BSS    0
          CON    0           BITS 59 - 48 
          CON    0           BITS 47 - 36 
          CON    DIBC        BITS 35 - 24 
          CON    DIBB        BITS 23 - 12 
          CON    DIBA        BITS 11 -  0 
  
 DIBA     EQU    JSPB+OTPB+PRPB+FMPB+UNPB+OFPB+OUPB+FUPB+UJPB+SCPB+DTPB 
 DIBB     EQU    FLPB+ESPB+M1PB+M2PB+SLPB+ASPB+DYPB+CSPB+LDPB+ITPB+ETPB+
,RUPB 
 DIBC     EQU    RFPB+ALPB
 TPSH     SPACE  4
**        TPSH - TABLE OF *PEEK* SEARCH ROUTINES. 
  
  
 TPSH     INDEX 
          INDEX  INQI,SFF    INPUT QUEUE
          INDEX  EXQI,SEJ    EXECUTING JOB
          INDEX  PRQI,SFF    PRINT QUEUE
          INDEX  PHQI,SFF    PUNCH QUEUE
          INDEX  PLQI,SFF    PLOT QUEUE 
          INDEX  WTQI,SFF    WAIT QUEUE 
          INDEX  MXQI 
 TRPP     SPACE  4
**        TRPP - TABLE OF REPLY PROCESSORS. 
  
  
 TRPP     INDEX 
          INDEX  INQI,RIF    INPUT QUEUE
          INDEX  EXQI,ECR    EXECUTING JOB
          INDEX  PRQI,RIF    PRINT QUEUE
          INDEX  PHQI,RIF    PUNCH QUEUE
          INDEX  PLQI,RIF    PLOT QUEUE 
          INDEX  WTQI,RIF    WAIT QUEUE 
          INDEX  MXQI 
 TVRE     SPACE  4
**        TVRE - TABLE OF VARIABLE SIZE REPLY BUFFER ENTRIES. 
* 
*T        12/  BYTE, 12/  BIT, 12/  LENGTH
*         BYTE = BYTE IN INFORMATION BITS TO CHECK. 
*         BIT = BIT TO BE CHECKED.
*         LENGTH = LENGTH OF ENTRY TO BE PLACED INTO BUFFER.
  
  
 TVRE     BSS    0
          CON    3,M1PB,5      *MS1W* 
 TVREE    EQU    *-TVRE      ENTRY LENGTH 
          CON    3,M2PB,3      *MS2W* 
          CON    3,DYPB,JDBL   DAYFILE BUFFER 
          CON    3,CSPB,CSBL   COMMAND BUFFER 
          CON    3,ITPB,TXWEI  IMPLICIT REMOTE TEXT STRING
          CON    3,ETPB,TXWEI  EXPLICIT REMOTE TEXT STRING
 TVREL    EQU    *-TVRE      LENGTH OF TABLE
 ECR      SPACE  4,10 
**        ECR - SET UP TO PROCESS EXECUTING JOB.
* 
*         ENTRY  (CQJS) = JOB STATUS. 
*                (FS - FS+4) = *SCHE* WORD OF EJT ENTRY.
* 
*         EXIT   (A) .LT. 0, IF ERROR ENCOUNTERED.
*                *BFMS* CONTAINS SYSTEM SECTOR. 
*                *CBUF* CONTAINS FIRST 100 WORDS OF CONTROL POINT AREA. 
* 
*         USES   FS - FS+4. 
* 
*         CALLS  CCA, CCP, RCP, RIF.
* 
*         MACROS NFA. 
  
  
 ECR3     RJM    RCP         READ CPA FROM ROLLOUT FILE 
          MJN    ECRX        IF ERROR 
*         LDN    0           SET SYSTEM SECTOR NOT READ 
          STD    T7 
 ECR4     RJM    RIF         READ SYSTEM SECTOR 
  
 ECR      SUBR               ENTRY/EXIT 
          LDM    CQJS 
          LMK    PRJS 
          ZJN    ECR4        IF PRE-INITIAL JOB STATE 
          LMK    PWJS&PRJS
          ZJN    ECR4        IF PRE-INITIAL WAIT JOB STATE
          LMK    EXJS&PWJS
          ZJN    ECR1        IF JOB AT CP 
          LMK    PCJS&EXJS
          NJN    ECR3        IF JOB ROLLED OUT
          LDD    FS+1 
          UJN    ECR2        SET PCP ASSIGNMENT 
  
 ECR1     LDD    FS+3        SET CP NUMBER
 ECR2     RJM    CCP         SET ALTERNATE CP/PCP ASSIGNMENT
          LDD    T4 
          RJM    CCA         SET CP/PCP ADDRESS 
          CRM    CBUF,HN     READ CPA/PCPA
          NFA    FNTN+FSTL
          CRD    FS 
          LDN    0           CLEAR ALTERNATE CP/PCP ASSIGNMENT
          RJM    CCP
          LJM    ECR4        READ SYSTEM SECTOR 
 ECR      TITLE  SUBROUTINES FOR *PEEK* FUNCTION. 
 PES      SPACE  4,20 
**        PES - PROCESS END OF SEARCH.
* 
*         ENTRY  (CN+4) = CURRENT QUEUE TYPE IF INTERRUPTED 
*                         *PEEK* REQUEST. 
*                (CN+4) = 0, IF COMPLETED *PEEK* REQUEST. 
*                (.SQT) = REMAINING QUEUE TYPES TO PROCESS. 
*                *TCNT* = COUNT OF ENTRIES SELECTED.
*                (CN) = NEXT ORDINAL FOR SEARCH.
*                (CN+3) = REPLY ENTRY LENGTH. 
*                       .EQ. 0, IF ONLY COUNT TO BE RETURNED. 
* 
*         EXIT   THE FOLLOWING ARE SET INTO THE APPROPRIATE 
*                FIELDS IN THE PARAMETER BLOCK. 
*                - COUNTS OF ENTRIES SELECTED IN EACH QUEUE.
*                - *IN* POINTER.
*                - REMAINING QUEUE TYPES TO BE PROCESSED. 
*                - NEXT ORDINAL TO CONTINUE SEARCH. 
*                - REPLY ENTRY LENGTH.
* 
*         USES   T1, T2.
  
  
 PES      SUBR               ENTRY/EXIT 
  
*         RETURN INFORMATION TO PARAMETER BLOCK.
  
          LDD    CN+3        SET ENTRY LENGTH 
          STM    BQAC+15*5+4
          LDD    CN+4        SET REMAINING QUEUE TYPES
          LMM    .SQT 
          STM    BQAC+4*5+2 
          NJN    PES0        IF MORE QUEUES TO SEARCH 
          STD    CN          CLEAR NEXT ORDINAL 
 PES0     LDD    CN          SET NEXT ORDINAL FOR SEARCH
          STM    BQAC+4*5+1 
          LDN    0           SET ENTRY COUNTS 
          STD    T1 
 PES1     LDM    TCTL,T1     GET INDEX INTO PARAMETER BLOCK 
          STD    T2 
          ZJN    PES2        IF UNUSED QUEUE TYPE 
          LDM    TCNT,T1     SET COUNT
          STM    BQAC,T2
 PES2     AOD    T1 
          SBN    MXQI 
          MJN    PES1        IF MORE ENTRIES TO RETURN
          UJN    PESX        RETURN 
 RCP      SPACE  4,15 
**        RCP - READ CONTROL POINT AREA (FIRST SECTOR). 
* 
*         ENTRY  (QI) = EJT ORDINAL.
* 
*         EXIT   (A) = 0 IF NO I/O ERROR. 
*                (A) .LT. 0 IF I/O ERROR. 
* 
*         USES   FS - FS+4. 
* 
*         CALLS  //RDC. 
* 
*         MACROS SFA. 
  
  
 RCP      SUBR               ENTRY/EXIT 
          SFA    EJT,QI 
          ADK    SCHE 
          CRD    FS 
          LDN    FSMS        SET SECTOR 
          RJM    //RDC       READ CONTROL POINT AREA
          UJN    RCPX        RETURN 
 RPI      SPACE  4,20 
**        RPI - RETURN *PEEK* INFORMATION TO BUFFER.
* 
*         ENTRY  *BFMS* CONTAINS SYSTEM SECTOR. 
*                *CBUF* CONTAINS CONTROL POINT AREA IF EXECUTING JOB. 
*                (FS - FS+4) = *SCHE*/*ENTQ* WORD OF EJT/QFT ENTRY. 
*                (WB - WB+4) = *SCLE*/*SCLQ* WORD OF EJT/QFT ENTRY. 
*                (QI) = ORDINAL OF SELECTED JOB/FILE. 
*                (QT) = QUEUE TYPE. 
* 
*         EXIT   (A) .LT. 0, IF ERROR OCCURRED PREVENTING COMPLETION
*                            OF THE FUNCTION. 
* 
*         USES   FN, RI, RI+1, CM - CM+4, FS - FS+4, T1 - T7. 
* 
*         CALLS  CJS, CMM, CPI, CPR, DSR, EHB, ESB, EXR, LPI, 
*                /3QR/MEP, PCR, PTI, RDC, TDS, SBA, SNR, STO, 
*                WBB, 3QW, 3QX. 
* 
*         MACROS ENDMS, EXECUTE, NFA, SETMS, SFA. 
  
  
 RPI20    LDD    IN+1        RESET *IN* POINTER 
          STM    BQAC+2*5+4 
          LDM    BQAC+2*5+3 
          SCN    77 
          LMD    IN 
          STM    BQAC+2*5+3 
  
 RPI      SUBR               ENTRY/EXIT 
          RJM    SBA         SET BUFFER ADDRESSES 
          LDN    4           SET BYTE INDEX 
          STD    RI+1 
 RPI1     LDM    TRPI,RI+1   SET TABLE ADDRESS
          STD    RI 
          LDM    BQAC+16*5,RI+1  SET BITS SELECTED
          STM    RPIA 
 RPI2     LDI    RI 
          NJN    RPI3        IF NOT END OF BYTE 
          SOD    RI+1        DECREMENT BYTE INDEX 
          MJN    RPI20       IF MORE *PEEK* FLAGS 
          UJN    RPI1        PROCESS NEXT BYTE
  
*         SET UP TO PROCESS INFORMATION BIT.
  
 RPI3     LPC    *
 RPIA     EQU    *-1         (INFORMATION BITS SELECTED)
          NJN    RPI5        IF BIT SELECTED
 RPI4     LDN    TPRIE       INCREMENT TABLE INDEX
          RAD    RI 
          UJN    RPI2        PROCESS NEXT BIT 
  
 RPI5     LDM    3,RI 
          LPN    77 
          STD    T1 
          LDN    0           SET TABLE INDEX
          STD    T2 
 RPI6     LDM    TOPI,T2
          LPN    77 
          SBD    T1 
          PJN    RPI7        IF OVERLAY REQUIRED FOUND
          AOD    T2          INCREMENT TABLE INDEX
          UJN    RPI6        CHECK NEXT ENTRY 
  
 RPI7     LDM    TOPI,T2     SET OVERLAY NAME 
          SHN    -6 
          LMM    RPIB 
          ZJN    RPI8        IF NO OVERLAY LOAD REQUIRED
          LMM    RPIB 
          STM    RPIB 
          LDC    0
 RPIB     EQU    *-1         (OVERLAY TO BE LOADED) 
          LMC    2L"OVLB" 
          RJM    EXR         LOAD OVERLAY 
          EXECUTE  3QW,=     *PEEK* BITS 13-0 
          EXECUTE  3QX,=     *PEEK* BITS 21-14
          EXECUTE  3QY,=     *PEEK* BITS 23-22
          EXECUTE  3Q0,=     *PEEK* BITS 31-24
 RPI8     LDM    1,RI        SET PROCESSOR ADDRESS
          STM    RPIC 
          LDM    2,RI        SET FWA OF INFORMATION 
          STM    RPIE 
          STD    FN 
          LDM    3,RI        SET INFORMATION NUMBER AND RT FIELD
          STM    4,FN 
          LDD    QT 
          LMK    EXQI 
          NJN    RPI11       IF NOT EXECUTING JOB 
          SFA    EJT,QI 
          ADK    JSNE        FETCH JOB STATUS FROM EJT
          CRD    T1 
          ADK    SCHE-JSNE   GET CP ASSIGNMENT
          CRD    FS 
          LDD    T5 
          SHN    -1 
          LPN    37 
          LMK    EXJS 
          ZJN    RPI9        IF JOB AT CP 
          LDD    FS+1 
          UJN    RPI10       SET PCP NUMBER 
  
 RPI9     LDD    FS+3        CP NUMBER
 RPI10    STM    .NCP        SET CP/PCP NUMBER
 RPI11    LJM    *           PROCESS BIT
 RPIC     EQU    *-1         (PROCESSOR ADDRESS)
  
*         CLEAR ENTRY IN BUFFER.
  
 RPI12    LDM    RPIE        SET ADDRESS OF INFORMATION 
          STM    RPID 
          LDK    ZERL 
          CRM    *,ON 
 RPID     EQU    *-1         (ADDRESS OF INFORMATION) 
  
*         ENTER INFORMATION INTO BUFFER.
  
 RPI13    LDN    1           SET WORD COUNT 
          STD    T1 
          LDC    *
 RPIE     EQU    *-1         (ADDRESS OF INFORMATION) 
 RPI14    RJM    WBB         ENTER INFORMATION INTO BUFFER
          LJM    RPI4        PROCESS NEXT INFORMATION BIT 
  
*         CLEAR VARIABLE LENGTH REPLY ENTRY.
  
 RPI15    LDN    0           INDICATE ENTRY INVALID 
          STM    4,FN 
 RPI16    LDM    RPIG        SET ADDRESS OF INFORMATION 
          STM    RPIF 
          LDM    3,FN        SET NUMBER OF WORDS TO CLEAR 
          STD    T2 
 RPI17    LDN    ZERL 
          CRM    *,ON 
 RPIF     EQU    *-1         (ADDRESS OF INFORMATION) 
          LDN    5           INCREMENT BUFFER ADDRESS 
          RAM    RPIF 
          SOD    T2 
          NJN    RPI17       IF NOT END OF BUFFER 
  
*         ENTER VARIABLE LENGTH INFORMATION INTO BUFFER.
  
 RPI18    RJM    EHB         ENTER HEADER WORD INTO REPLY BUFFER
          LDM    3,FN 
          STD    T1          SET WORD COUNT 
 RPI19    LDC    *
 RPIG     EQU    *-1         (ADDRESS OF INFORMATION) 
          UJN    RPI14       RESET BUFFER ADDRESS 
  
  
          QUAL
 NBUF     BSS    1*5         NFL BUFFER 
          QUAL   *
 .NCP     CON    0           CP/PCP NUMBER OF JOB 
 TRPI     SPACE  4,10 
**        TRPI - TABLE TO PROCESS INFORMATION BITS BY BYTE. 
  
  
 TRPI     BSS    0
          CON    TPRID       BITS 57 - 73 
          CON    TPRIC       BITS 43 - 56 
          CON    TPRIB       BITS 27 - 42 
          CON    TPRIA       BITS 14 - 26 
          CON    TPRI        BITS  0 - 13 
 TOPI     SPACE  4,10 
**        TOPI - TABLE OF OVERLAY NAME TO PROCESS INFORMATION BITS. 
* 
*T        6/ OVL, 6/ BIT
*         OVL = OVERLAY REQUIRED FOR PROCESSING.
*         BIT = UPPER BIT PROCESSED IN OVERLAY. 
* 
*         PROGRAMMING NOTE.  IF NEW *PEEK* BITS ARE DEFINED,
*         CARE SHOULD BE TAKEN TO ENSURE THAT THIS TABLE IS 
*         CHANGED APPROPRIATELY FOR LOADING THE PROPER OVERLAY. 
  
  
 TOPI     BSS    0
          VFD    6/1LW,6/13  *3QW*
          VFD    6/1LX,6/21  *3QX*
          VFD    6/1LY,6/23  *3QY*
          VFD    6/1L0,6/31  *3Q0*
 TPRI     SPACE  4,15 
**        TPRI - TABLE OF *PEEK* REPLY INFORMATION. 
* 
*T        12/  BIT, 12/  PROC, 12/  LOC, 12/  RTN 
* 
*         BIT = INFORMATION BIT.
*         PROC = PROCESSOR ADDRESS. 
*         LOC = LOCATION OF INFORMATION.
*         RTN = RT FIELD/INFORMATION BIT NUMBER.
* 
*         PROGRAMMING NOTE.  IF NEW *PEEK* BITS ARE DEFINED IN
*         THIS TABLE, CARE SHOULD BE TAKEN TO ENSURE THAT THE 
*         CORRESPONDING APPROPRIATE CHANGES ARE ALSO MADE TO
*         TABLES *TDIB* AND *TOPI*. 
  
  
 TPRI     BSS    0
          CON    JSPB,/3QW/SJO,CM,JSPI      JSN, ORDINAL, QUEUE 
 TPRIE    EQU    *-TPRI      ENTRY LENGTH 
          CON    OTPB,/3QW/SOC,CM,OTPI      OUTPUT CHARACTERISTICS
          CON    PRPB,/3QW/SPF,CM,PRPI      PRIORITY, FL-ECS, FL-CM 
          CON    FMPB,/3QW/SDF,FDSS,FMPI    DESTINATION FAMILY
          CON    UNPB,/3QW/SDU,DASS,UNPI    DEST. USER NAME, BATCH ID 
          CON    OFPB,/3QW/SOF,FOSS,OFPI    OWNER FAMILY
          CON    OUPB,/3QW/SOU,OASS,OUPI    OWNER UN, BATCH ID
          CON    FUPB,/3QW/SFU,CM,FUPI      DEST. FO-UI, OWNER FO-UI
          CON    UJPB,RPI13,JNSS,UJPI       USER JOBNAME
          CON    SCPB,/3QW/SMO,CM,SCPI      OUTPUT CHARACTERISTICS
          CON    DTPB,/3QW/SEQ,CM,DTPI      EQ. NO., CREATION DATE/TIME 
          CON    0
  
 TPRIA    BSS    0
          CON    FLPB,/3QX/SFL,FLSS,FLPI    FILE LENGTH, CREATION JSN 
          CON    ESPB,/3QX/SES,CM,EJPI      EJT STATUS
          CON    M1PB,/3QX/SMA,HBUF,1*100+M1PI   *MS1W* MESSAGE 
          CON    M2PB,/3QX/SMT,HBUF,1*100+M2PI   *MS2W* MESSAGE 
          CON    SLPB,/3QX/SRL,CM,SLPI      SRU LIMIT 
          CON    ASPB,/3QX/SAS,CM,ASPI      ACCUMULATOR SRU-S 
          CON    DYPB,/3QY/SDB,HBUF,1*100+DYPI   DAYFILE BUFFER 
          CON    CSPB,/3QY/SCB,HBUF,1*100+CSPI   CONTROL STATEMENTS 
          CON    LDPB,/3Q0/SLD,HBUF,LDPI    LOGICAL ID-S
          CON    ITPB,/3Q0/PIT,HBUF,1*100+ITPI   IMPLICIT TEXT
          CON    ETPB,/3Q0/PET,HBUF,1*100+ETPI   EXPLICIT TEXT
          CON    RUPB,/3Q0/GRU,HBUF,RUPI    REMOTE USER NAME
          CON    0
  
 TPRIB    BSS    0
          CON    RFPB,/3Q0/GRF,HBUF,RFPI    REMOTE FAMILY NAME
          CON    ALPB,/3Q0/ALV,HBUF,ALPI    ACCESS LEVEL
          CON    0           END OF INFORMATION BITS
  
 TPRIC    CON    0           END OF INFORMATION BITS
  
 TPRID    CON    0           END OF INFORMATION BITS
 EHB      SPACE  4,10 
**        EHB - ENTER HEADER WORD INTO REPLY BUFFER.
* 
*         ENTRY  (FN) = ADDRESS OF HEADER WORD. 
* 
*         EXIT   HEADER WORD ENTERED INTO REPLY BUFFER. 
* 
*         USES   T1.
* 
*         CALLS  WBB. 
  
  
 EHB      SUBR               ENTRY/EXIT 
          LDN    0           CLEAR REST OF HEADER WORD
          STI    FN 
          STM    1,FN 
          LDN    1           SET WORD COUNT 
          STD    T1 
          LDC    HBUF        SET ADDRESS OF HEADER
          RJM    WBB         ENTER INFORMATION INTO BUFFER
          UJN    EHBX        RETURN 
  
  
 HBUF     BSS    1*5         HEADER WORD BUFFER 
 SBA      SPACE  4,10 
**        SBA - SET BUFFER ADDRESSES. 
* 
*         EXIT   (FT - FT+1) = *FIRST* POINTER. 
*                (IN - IN+1) = *IN* POINTER.
*                (OT - OT+1) = *OUT* POINTER. 
*                (LM - LM+1) = *LIMIT* POINTER. 
* 
*         USES   FT - FT+1, IN - IN+1, LM - LM+1, OT - OT+1.
  
  
 SBA      SUBR               ENTRY/EXIT 
          NJN    SBA1        IF NOT ALL ADDRESSES TO BE SET 
          LDM    BQAC+1*5+3  SET *FIRST*
          LPN    77 
          STD    FT 
          LDM    BQAC+1*5+4 
          STD    FT+1 
          LDM    BQAC+2*5+3  SET *IN* 
          STD    IN 
          LDM    BQAC+2*5+4 
          STD    IN+1 
 SBA1     LDM    BQAC+3*5+3  SET *OUT*
          STD    OT 
          LDM    BQAC+3*5+4 
          STD    OT+1 
          LDM    BQAC+4*5+3  SET *LIMIT*
          LPN    77 
          STD    LM 
          LDM    BQAC+4*5+4 
          STD    LM+1 
          UJN    SBAX        RETURN 
          SPACE  4
**        COMMON DECKS. 
  
  
*CALL     COMPCIB 
*CALL     COMPWBB 
          SPACE  4
*         *PEEK* REPLY OVERLAY AREA.
  
 OVLP     EQU    *+5         OVERLAY LOAD ADDRESS 
          SPACE  4,10 
          OVERFLOW OVL,EPFW 
  
  
          USE    OVERFLOW 
          ERRNG  CBUF-*      OVERFLOW INTO CONTROL POINT BUFFER 
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          OVERLAY  (*ALTER* VALIDATION PROCESSOR.),OVL0 
          QUAL   3QT
  
  
**        DIRECT CELL DEFINITIONS.
  
  
 FT       EQU    FN - FN+1   *FIRST*
 IN       EQU    BA - BA+1   *IN* 
 OT       EQU    WB - WB+1   *OUT*
 LM       EQU    WB+2 - WB+3 *LIMIT*
 VCC      SPACE  4,20 
**        VCC - VALIDATE CHARACTERISTICS TO BE ALTERED. 
* 
*         ENTRY  (AF - AF+1) = *ALTER* FLAGS. 
* 
*         EXIT   ENTRY CONDITIONS SET FOR *CDM* IF REMOTE BATCH CHANGE. 
*                ALL OTHER CHARACTERISTICS VALIDATED. 
* 
*         ERROR  TO ERROR PROCESSOR IF ONE OF THE FOLLOWING OCCURS. 
*                - INCORRECT LOCAL BATCH ID.
*                - INCORRECT FORMS CODE.
*                - INCORRECT DISPOSITION CODE.
*                - *FIRST*, *IN*, *OUT* OR *LIMIT* IS INCORRECT.
*                - MUTUALLY EXCLUSIVE *ALTER* FLAGS SET.
* 
*         USES   T1, BA, BA+1, CM - CM+4. 
* 
*         CALLS  CDM, GFM, SMB, VBA, VDC, VFC.
* 
*         MACROS ERROR. 
  
  
 VCC      SUBR               ENTRY/EXIT 
          LDD    AF 
          SHN    21-4 
          PJN    VCC0        IF *PAUSE* NOT SELECTED
          SHN    21-3-21+4
          MJN    VCC2        IF BOTH *GO* AND *PAUSE* SELECTED
 VCC0     LDD    AF 
          SHN    21-6 
          PJN    VCC1        IF *KILL* NOT SELECTED 
          LDD    AF+1 
          SHN    21-11
          MJN    VCC2        IF BOTH *KILL* AND *DROP* SELECTED 
          LDC    1000        SET *DROP* FLAG
          RAD    AF+1 
          LDK    OKET        SET ERROR FLAG TO OPERATOR KILL
          STM    AJEF 
          LDD    AF          CLEAR *KILL* FLAG
          LMC    100
          STD    AF 
 VCC1     LDD    AF+1 
          SHN    21-13
          PJN    VCC3        IF SENSE SWITCH FLAG NOT SET 
          SHN    21-12-21+13
          PJN    VCC3        IF BOTH SENSE SWITCH FLAGS NOT SET 
 VCC2     LJM    VCC13       PROCESS ERROR
  
*         VALIDATE DAYFILE MESSAGE. 
  
 VCC3     LDD    AF+1 
          SHN    21-11
          PJN    VCC4        IF ABORT FLAG NOT SET
          LDD    AF 
          LPN    IMAF 
          ZJN    VCC4        IF MESSAGE NOT SELECTED
          LDD    AF 
          LPN    CFAF+DYAF
          NJN    VCC2        IF SEVERAL MESSAGE FLAGS SET 
          UJN    VCC6        VALIDATE MESSAGE ADDRESS 
  
 VCC4     LDD    AF 
          SHN    21-1 
          PJN    VCC5        IF DAYFILE MESSAGE NOT SELECTED
          SHN    21-2-21+1+22 
          MJN    VCC2        IF SEVERAL MESSAGE FLAGS SET 
          UJN    VCC6        VALIDATE MESSAGE ADDRESS 
  
 VCC5     SHN    21-2-21+1+22 
          PJN    VCC7        IF NO MESSAGE TO BE ISSUED 
 VCC6     RJM    VBA         VALIDATE BUFFER ADDRESS
          RJM    SMB         SET DAYFILE MESSAGE INTO BUFFER
  
*         VALIDATE OUTPUT FILE CHARACTERISTICS. 
  
 VCC7     LDD    AF+1 
          LPN    FCAF 
          ZJN    VCC8        IF FORMS CODE NOT TO BE ALTERED
          LDM    BQAC+17*5+1
          RJM    VFC         VERIFY FORMS CODE
          STM    FMCB        SET FORMS CODE 
          PJN    VCC8        IF VALID FORMS CODE
          ERROR  ER05        INCORRECT FORMS CODE 
  
 VCC8     LDD    AF+1 
          LPN    DSAF 
          ZJN    VCC9        IF DISPOSITION CODE NOT TO BE ALTERED
          LDM    BQAC+17*5+2
          RJM    VDC         VALIDATE DISPOSITION CODE
          STM    DPCB        SET DISPOSITION CODE 
 VCC9     LDD    AF+1 
          SHN    21-6 
          PJN    VCC10       IF EXTERNAL CHAR. NOT TO BE CHANGED
          RJM    VNE         VALIDATE NEW EXTERNAL CHARACTERISTICS
  
*         VALIDATE ACCESS LEVEL CHANGES.
  
 VCC10    LDD    AF+1 
          SHN    21-10
          PJN    VCC10.1     IF NOT CHANGING ACCESS LEVEL 
          LDD    CP          CHECK FOR SECURITY ADMINISTRATOR 
          ADK    JSCW 
          CRD    CM 
          LDD    CM 
          SHN    21-13
          MJN    VCC10.1     IF SECURITY ADMINISTRATOR PRIVILEGES 
          LDN    SVET        SECURITY VIOLATION 
          STD    CM+1 
          MONITOR  CEFM 
          ERROR  ER13        * QAC INCORRECT REQUEST.*
  
*         VALIDATE DESTINATION ADDRESSING MODE. 
  
 VCC10.1  LDC    .ADM        SET BUFFER ADDRESS 
          STD    BA+1 
          LDD    AF+1 
          SHN    21-0 
          MJN    VCC12       IF REMOTE BATCH CHANGE SELECTED
          SHN    21-1-21+0+22 
          PJN    VCC11       IF END OF VALIDATION 
          LDN    ZERL        CLEAR *FM,UN* FOR SYSTEM SECTOR
          CRM    FMUB,ON
          SBN    1
          CRM    FMUB+1*5,ON
          LDM    BQAC+16*5+4 SET LOCAL BATCH ID 
          LPN    77 
          STD    BA 
          LDN    0           INDICATE BATCH ID SELECTED 
          RJM    CDM         VALIDATE LOCAL BATCH ID
 VCC11    LDN    0
          LJM    VCCX        RETURN 
  
 VCC12    SHN    21-1-21+0+22 
          PJN    VCC14       IF NOT LOCAL BATCH CHANGE ALSO 
 VCC13    ERROR  ER04        SEVERAL MUTUALLY EXCLUSIVE BITS SET
  
 VCC14    LDN    2           SET UP *FM,UN* BUFFER
          STD    T1 
          LDD    MA 
          CWM    BQAC+15*5+0,T1 
          SBD    T1 
          CRM    FMUB,T1
          LDM    BQAC+15*5+0
          NJN    VCC18       IF FAMILY NAME SPECIFIED 
          LDD    SI 
          ZJN    VCC16       IF USER CALL 
 VCC15    LDC    FOTP        USE SYSTEM DEFAULT FAMILY NAME 
          CRD    CM 
          LDD    CM 
          SHN    14 
          LMD    CM+1 
          ADN    1
          UJN    VCC17       SET FAMILY NAME INTO BUFFER
  
 VCC16    LDM    CEJT        GET FAMILY ORDINAL FROM EJT
          SFA    EJT
          ADK    JSNE 
          CRD    CM 
          SFA    EJT,CM 
          CRD    CM 
          LDD    CM+2 
          SHN    -6 
          ZJN    VCC15       IF NO FAMILY ORDINAL SPECIFIED 
          RJM    GFM         GET FAMILY NAME
          LDD    MA          SET FAMILY NAME INTO BUFFER
          CWD    FN 
 VCC17    CRM    FMUB,ON
 VCC18    LDM    BQAC+16*5+0
          NJN    VCC20       IF USER NAME SPECIFIED 
          LDD    SI 
          ZJN    VCC19       IF USER CALL 
          ERROR  ER02        USER NAME NOT SPECIFIED BY SUBSYSTEM 
  
 VCC19    LDD    CP          SET USER NAME
          ADN    UIDW 
          CRM    FMUB+1*5,ON
 VCC20    LDN    0           SET UP BUFFER FOR CONVERSION 
          STM    FMUB+0*5+4 
          STM    FMUB+1*5+4 
          LDM    FMUB+0*5+3 
          SCN    77 
          STM    FMUB+0*5+3 
          LDM    FMUB+1*5+3 
          SCN    77 
          STM    FMUB+1*5+3 
          LDC    FMUB 
          STD    BA 
          LJM    VCCX        RETURN 
 VDC      SPACE  4,15 
**        VDC - VALIDATE DISPOSITION CODE.
* 
*         ENTRY  (A) = DISPOSITION CODE TO BE VALIDATED.
* 
*         EXIT   (A) = DISPOSITION CODE FOR QFT ENTRY.
* 
*         ERROR  TO ERROR PROCESSOR IF INCORRECT DISPOSITION CODE.
* 
*         USES   T1, T2.
* 
*         MACROS ERROR. 
  
  
 VDC2     LDM    TDCM,T2     RETURN DISPOSITION CODE
  
 VDC      SUBR               ENTRY/EXIT 
          STD    T1 
          LDN    0           SET INDEX
          STD    T2 
 VDC1     LDM    TDCM+1,T2
          LMD    T1 
          ZJN    VDC2        IF MATCH 
          LDN    TDCME       INCREMENT INDEX
          RAD    T2 
          SBN    TDCML
          MJN    VDC1        IF NOT END OF TABLE
          ERROR  ER06        INCORRECT DISPOSITION CODE 
 SMB      SPACE  4,10 
**        SMB - SET DAYFILE MESSAGE INTO BUFFER.
* 
*         ENTRY  BUFFER ADDRESSES VALIDATED.
* 
*         EXIT   DAYFILE MESSAGE ENTERED INTO *MSGB* BUFFER.
*                *CFOC* SET UP FOR *CFO* COMMAND. 
*                (PDMB) = MESSAGE LENGTH FOR *CFO* COMMAND. 
* 
*         USES   T3, FT, FT+1, IN, IN+1, LM, LM+1, OT, OT+1.
* 
*         CALLS  COB, RBB.
  
  
 SMB      SUBR               ENTRY/EXIT 
          LDD    MA          PRESET *CFO* COMMAND 
          CWM    SMBA,ON
          SBN    1
          CRM    CFOC,ON
          LDM    BQAC+1*5+4  SET *FIRST*
          STD    FT+1 
          LDM    BQAC+1*5+3 
          LPN    77 
          STD    FT 
          LDM    BQAC+3*5+4  SET *OUT*
          STD    OT+1 
          LDM    BQAC+3*5+3 
          LPN    37 
          STD    OT 
          LDM    BQAC+4*5+4  SET *LIMIT*
          STD    LM+1 
          LDM    BQAC+4*5+3 
          LPN    77 
          STD    LM 
          RJM    COB         CHECK OUTPUT BUFFER
          MJN    SMB3        IF BUFFER ARGUMENT ERROR 
          ZJN    SMB2        IF NO MESSAGE
          SBN    MAXWC+1
          MJN    SMB1        IF VALID MESSAGE LENGTH
          LCN    1           TRUNCATE MESSAGE 
 SMB1     ADN    MAXWC+1
          STD    T3          SAVE ACTUAL MESSAGE LENGTH 
          STM    DMLB 
          LDC    MSGB        SET BUFFER ADDRESS 
          RJM    RBB         READ MESSAGE INTO BUFFER 
          LDD    T3          SET END OF MESSAGE 
          SHN    2
          ADN    1
          RAD    T3 
          LDN    0
          STM    MSGB,T3
          LJM    SMBX        RETURN 
  
 SMB2     ERROR  ER12        NO PROCESSING DONE ON *ALTER* REQUEST
 SMB3     ERROR  ER16        BUFFER ARGUMENT ERROR
  
 SMBA     DATA   H* CFO. *
 VNE      SPACE  4,15 
**        VNE - VALIDATE NEW EXTERNAL CHARACTERISTICS.
* 
*         ENTRY  (QT) = FIRST SELECTED QUEUE TYPE.
*                (.SQT) = REMAINING QUEUE TYPES.
* 
*         EXIT   TO CALLING ROUTINE IF NO ERROR.
*                (PFQC) = NEW EXTERNAL CHARACTERISTICS. 
* 
*         ERROR  TO ERROR PROCESSOR IF SELECTED NEW EXTERNAL
*                CHARACTERISTICS IS NOT VALID FOR ANY SELECTED
*                QUEUE TYPE.
* 
*         USES   T1, T2,  CM - CM+4.
* 
*         MACROS ERROR. 
  
  
 VNE      SUBR               ENTRY/EXIT 
          LDM    BQAC+17*5+3 GET NEW EC 
          SHN    -11
          STM    EXCB 
          STD    T1 
          LDM    TVNE,T1     SET ALLOWED QUEUE TYPES
          STM    VNEA 
          LDM    BQAC+10*5+0
          STD    T2 
          LPC    *
 VNEA     EQU    *-1         (ALLOWED QUEUE TYPES)
 VNE1     NJN    VNEX        IF VALID EC
          LDD    T2 
          LPN    PHQQ 
          NJN    VNE3        IF PUNCH QUEUE ALLOWED 
 VNE2     ERROR  ER18        INCORRECT EXTERNAL CHARACTERISTICS 
  
 VNE3     LDD    T1 
          NJN    VNE2        IF DEFAULT NOT SELECTED
          LDD    CP          USE SYSTEM DEFAULT 
          ADN    SNSW 
          CRD    CM 
          LDD    CM 
          LPC    2000 
          ZJN    VNE4        IF *026* DEFAULT 
          LDN    P9FR&PHFR   SET *029* DEFAULT
 VNE4     LMN    PHFR 
          STM    EXCB 
          UJN    VNE1        RETURN 
 TVNE     SPACE  4,10 
**        TVNE - TABLE OF VALID QUEUE TYPES FOR NEW EXTERNAL
*                CHARACTERISTICS. 
* 
*         INDEXED BY EXTERNAL CHARACTERISTICS CODE. 
* 
*         BITS SET IN EACH ENTRY FOR QUEUE TYPE FOR WHICH THE EC
*         CODE IS VALID.
  
  
 TVNE     BSS    0
          LOC    0
          CON    PRQQ 
          CON    PHQQ+PLQQ
          CON    PRQQ+PHQQ+PLQQ 
          CON    PRQQ 
          CON    PRQQ+PHQQ
          CON    PRQQ+PHQQ
          CON    PRQQ+PHQQ
          CON    0
          LOC    *O 
          SPACE  4
**        COMMON DECKS. 
  
  
*CALL     COMPCOB 
*CALL     COMPRBB 
*CALL     COMPVFC 
          SPACE  4
          OVERFLOW  OVL0,EPFW 
          OVERLAY  (*PEEK* REPLY OVERLAY ONE.),/3QU/OVLP
          SPACE  4
**        THIS OVERLAY CONTAINS THE CODE TO PROCESS *PEEK*
*         INFORMATION BITS 13 - 0.
 SJO      SPACE  4,10 
**        SJO (1) - SET JSN, ORDINAL AND QUEUE. 
  
  
 SJO      BSS    0           ENTRY
          LDD    QT 
          LMK    EXQI 
          ZJN    SJO1        IF EXECUTING JOB 
          SFA    QFT,QI 
          UJN    SJO2        READ FIRST WORD OF ENTRY 
  
 SJO1     SFA    EJT,QI 
 SJO2     CRD    T1 
          LDD    T1          SET JSN
          STI    FN 
          LDD    T1+1 
          STM    1,FN 
          LDD    QI          SET ORDINAL
          STM    2,FN 
          LDM    TQOR,QT     SET QUEUE TYPE 
 SJO3     STM    3,FN 
          LJM    /3QU/RPI13  ENTER INTO BUFFER
 SOC      SPACE  4,10 
**        SOC (2) - SET OUTPUT CHARACTERISTICS. 
  
  
 SOC      BSS    0           ENTRY
          LDD    WB          SET SERVICE CLASS, CONVERTED ORIGIN TYPE 
          ADN    1
          ERRNZ  SYOR-SYOT-1 CODE DEPENDS ON VALUE
          ERRNZ  BCOR-BCOT-1 CODE DEPENDS ON VALUE
          ERRNZ  RBOR-RBOT-1 CODE DEPENDS ON VALUE
          ERRNZ  TXOR-IAOT-1 CODE DEPENDS ON VALUE
          STI    FN 
          LDD    QT 
          LMN    EXQI 
          NJN    SOC4        IF NOT EXECUTING JOB 
          STM    1,FN        CLEAR REST OF ENTRY
          STM    2,FN 
          UJN    SOC8        ENTER INTO BUFFER
  
 SOC4     LDD    WB+4        SET FORMS CODE 
          STM    1,FN 
          SFA    QFT,QI 
          CRD    T1 
          LDD    T1+4        CONVERT DISPOSITION CODE 
          SHN    -6 
          STD    T1 
          LDN    0           SET INDEX
          STD    T3 
 SOC5     LDM    TDCM,T3
          LMD    T1 
          ZJN    SOC6        IF DISPOSITION CODE FOUND
          LDN    TDCME       INCREMENT INDEX
          RAD    T3 
          SBN    TDCML
          MJN    SOC5        IF NOT END OF TABLE
          LDN    0
          UJN    SOC7        RETURN NO DISPOSITION CODE 
  
 SOC6     LDM    TDCM+1,T3   SET DISPOSITION CODE 
 SOC7     STM    2,FN 
          LDD    WB+3        SET EC/IC
          SHN    6
 SOC8     LJM    SJO3        ENTER INTO BUFFER
 SPF      SPACE  4,10 
**        SPF (3) - SET PRIORITY, FL-ECS AND FL-CM. 
  
  
 SPF      BSS    0           ENTRY
          LDD    QT 
          LMN    EXQI 
          NJN    SPF1        IF QUEUED FILE 
          LJM    SPF3        PROCESS EXECUTING JOB
  
 SPF1     SFA    QFT,QI 
          ADK    ENTQ 
          CRD    FS 
          LDD    FS+3        CALCULATE PRIORITY 
          STD    T1 
          LDD    FS+4 
          STD    T2 
          LDD    QT 
          LMK    INQI 
          ZJN    SPF2        IF INPUT QUEUE 
          LDK    OTQT&INQT
 SPF2     LMK    INQT 
          STD    T3 
          LDD    WB          SET SERVICE CLASS/ORIGIN TYPE
          SCN    77 
          SHN    6
          LMD    T3 
          RJM    CPR         CALCULATE PRIORITY 
          STI    FN 
          LDM    3,RI        RESET INFORMATION NUMBER AND RT FIELD
          STM    4,FN 
          LDN    0
          STM    1,FN 
          STM    2,FN 
          LJM    SPF6        CLEAR REST OF ENTRY
  
 SPF3     LDM    CBUF+CWQW*5 GET CPU PRIORITY 
          SHN    -3 
          LPC    177
          STI    FN 
          LDM    CQJS 
          LMK    EXJS 
          ZJN    SPF4        IF EXECUTING JOB AT CONTROL POINT
          LMK    PCJS&EXJS
          ZJN    SPF4        IF JOB AT PCP
          LDD    WB+3        SET FL-ECS 
          STM    1,FN 
          LDD    WB+4        SET FL-CM
          UJN    SPF5        SET REST OF ENTRY
  
 SPF4     LDK    MEFL        GET USER EM SHIFT COUNT (UESC) 
          CRD    FS 
          LDD    FS+2 
          SHN    -11
          ADD    TH 
          ERRNZ  SHNI-1000
          STM    SPFA 
          LDM    CBUF+ECSW*5+4   SET FL-EM
 SPFA     SHN    0
*         SHN    UESC 
          STM    1,FN 
          LDM    CBUF+FLSW*5+4  SET FL-CM 
 SPF5     STM    2,FN 
          LDN    0           CLEAR REST OF ENTRY
 SPF6     STM    3,FN 
 SPF7     LJM    /3QU/RPI13  ENTER INTO BUFFER
 SDF      SPACE  4,10 
**        SDF (4) - SET DESTINATION FAMILY NAME.
  
  
 SDF      BSS    0           ENTRY
          LDM    FDSS+3      CLEAR UNUSED PART OF ENTRY 
          SCN    77 
          STM    FDSS+3 
 SDF1     UJN    SPF7        ENTER INTO BUFFER
 SDU      SPACE  4,10 
**        SDU (5) - SET DESTINATION USER NAME OR BATCH ID.
  
  
 SDU      BSS    0           ENTRY
          LDD    WB+1 
          SCN    77 
          NJN    SDU1        IF BATCH ID NOT DEFINED
          LDD    WB+2 
          UJN    SDU2        ENTER BATCH ID INTO ENTRY
  
 SDU1     LDM    3,FN        CLEAR BATCH ID 
          SCN    77 
 SDU2     STM    3,FN 
 SDU3     UJN    SDF1        ENTER INTO BUFFER
 SOF      SPACE  4,10 
**        SOF (6) - SET OWNER FAMILY NAME.
  
  
 SOF      BSS    0           ENTRY
          LDM    3,FN        CLEAR UNUSED PART OF ENTRY 
          SCN    77 
          STM    3,FN 
 SOF1     UJN    SDU3        ENTER INTO BUFFER
 SOU      SPACE  4,10 
**        SOU (7) - SET OWNER USER NAME OR BATCH ID.
  
  
 SOU      BSS    0           ENTRY
          LDM    IOSS+SCLQ*5+1
          SCN    77 
          NJN    SDU1        IF BATCH ID NOT DEFINED
          LDM    IOSS+SCLQ*5+2
          LMM    3,FN 
          LPN    77 
          LMM    3,FN 
          STM    3,FN 
 SOU1     UJN    SOF1        ENTER INTO BUFFER
 SFU      SPACE  4,10 
**        SFU (10) - SET DESTINATION *FO-UI* AND OWNER *FO-UI*. 
  
  
 SFU      BSS    0           ENTRY
          LDD    WB+1        SET DESTINATION *FO-UI*
          STI    FN 
          SHN    -6 
          ZJN    SFU1        IF NO DESTINATION *UI* 
          LDD    WB+2 
 SFU1     STM    1,FN 
          LDM    IOSS+JSNQ*5+2  SET OWNER *FO-UI* 
          STM    2,FN 
          LDM    IOSS+JSNQ*5+3
          STM    3,FN 
          UJN    SOU1        ENTER INTO BUFFER
 SMO      SPACE  4,10 
**        SMO (12) - SET OUTPUT CHARACTERISTICS.
  
  
 SMO      BSS    0           ENTRY
          LDD    QT 
          LMK    EXQI 
          ZJP    /3QU/RPI12  IF NOT OUTPUT FILE 
          LDM    SCSS 
          STI    FN          SET SPACING CODE 
          LDM    RTSS 
          ADM    RTSS+1 
          ZJN    SMO2        IF FILE NOT INTERRUPTED
          LDC    4000        SET INTERRUPT BIT
 SMO2     ADM    RCSS        SET REPEAT COUNT 
          STM    1,FN 
          LDM    TALP,QT     SET ACCOUNT LIMIT
          ZJN    SMO4        IF ACCOUNT LIMIT NOT DEFINED 
          STM    SMOA 
          LDM    LCSS 
          RJM    *           CONVERT ACCOUNT LIMIT
 SMOA     EQU    *-1         (ACCOUNT LIMIT PROCESSOR)
 SMO4     STM    3,FN 
          SHN    -14
          STM    2,FN 
          LMN    77 
          NJN    SMO5        IF NOT UNLIMITED 
          LCN    0           SET UNLIMITED
          STM    2,FN 
 SMO5     LJM    /3QU/RPI13  ENTER INTO BUFFER
 SEQ      SPACE  4,10 
**        SEQ (13) - SET EST ORDINAL AND CREATION DATE AND TIME.
  
  
 SEQ      BSS    0           ENTRY
          LDD    QT 
          LMK    EXQI 
          ZJN    SEQ1        IF EXECUTING JOB 
          LDD    FS          SET EQUIPMENT
 SEQ1     STI    FN 
          LDM    CDSS+2 
          STM    1,FN 
          LDM    CDSS+3 
          STM    2,FN 
          LDM    CDSS+4 
          STM    3,FN 
          UJN    SMO5        ENTER INTO BUFFER
 TALP     SPACE  4,10 
*         TALP - TABLE OF ACCOUNT LIMIT PROCESSORS. 
  
  
 TALP     INDEX 
          INDEX  PRQI,LPI    PRINT
          INDEX  PHQI,CPI    PUNCH
          INDEX  PLQI,PTI    PLOT 
          INDEX  WTQI,LPI    WAIT 
          INDEX  MXQI 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
 CPI$     EQU    1           CONVERT CARDS PUNCHED INDEX
 LPI$     EQU    1           CONVERT LINES PRINTED INDEX
 PTI$     EQU    1           CONVERT UNITS PLOTTED INDEX
*CALL     COMPCVI 
          SPACE  4,10 
          OVERFLOW  /3QU/OVLP,CBUF+STSW*5 
  
  
          USE    OVERFLOW 
          ERRNG  SBUF-*-1    READING INTO *SBUF* WILL OVERLAY CODE
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          OVERLAY  (*PEEK* REPLY OVERLAY TWO.),/3QU/OVLP
          SPACE  4,10 
**        THIS OVERLAY CONTAINS THE CODE TO PROCESS *PEEK*
*         INFORMATION BITS 21 - 14. 
 SFL      SPACE  4,10 
**        SFL (14) - SET FILE LENGTH AND CREATION JSN.
  
  
 SFL      BSS    0           ENTRY
          LDM    CJSS        SET CREATION JSN 
          STM    2,FN 
          LDM    CJSS+1 
 SFL1     STM    3,FN 
          LJM    /3QU/RPI13  ENTER INTO BUFFER
 SES      SPACE  4,10 
**        SES (15) - SET EJT STATUS AND SCHEDULING FIELD. 
  
  
 SES      BSS    0           ENTRY
          LDD    QT 
          LMK    EXQI 
          NJP    /3QU/RPI12  IF NOT EXECUTING JOB 
          SFA    EJT,QI 
          CRD    T1 
          LDD    T1+4        SET EJT STATUS 
          LPC    1676        SELECT ONLY STATUS BITS
          STI    FN 
          LDD    FS+2        SET SCHEDULING FIELD 
          LPN    77 
          STM    1,FN 
          LDD    FS+3 
          STM    2,FN 
          LDM    CBUF+STSW*5 SET CPU STATUS 
          SHN    -11
          SHN    6
          RAM    1,FN 
          LDD    FS+4 
          UJN    SFL1        ENTER INTO BUFFER
 SMA      SPACE  4,10 
**        SMA (16) - SET *MS1W* MESSAGE.
  
  
 SMA      BSS    0           ENTRY
          LDN    5           SET ENTRY LENGTH 
          STM    3,FN 
          LDC    CBUF+MS1W*5 SET ADDRESS OF INFORMATION 
          UJN    SMT1        CHECK JOB STATUS 
 SMT      SPACE  4,10 
**        SMT (17) - SET *MS2W* MESSAGE.
  
  
 SMT      BSS    0           ENTRY
          LDN    3           SET ENTRY LENGTH 
          STM    3,FN 
          LDC    CBUF+MS2W*5 SET ADDRESS OF INFORMATION 
 SMT1     STM    /3QU/RPIG
          RJM    CMM         CLEAR UNUSED PORTION OF MESSAGE AREA 
          LDN    0           CLEAR *A-LEN* IN HEADER WORD 
          STM    2,FN 
          RJM    CJS         CHECK JOB STATUS 
          NJN    SMT2        IF VALID JOB STATUS
          LJM    /3QU/RPI15  CLEAR ENTRY
  
 SMT2     LJM    /3QU/RPI18  RETURN ENTRY 
 SRL      SPACE  4,10 
**        SRL (20) - SET SRU LIMIT. 
  
  
 SRL      BSS    0           ENTRY
          LDC    STLW*5+1 
          UJN    SAS1        SET ADDRESS OF SRU LIMIT 
 SAS      SPACE  4,10 
**        SAS (21) - SET ACCUMULATED SRU-S. 
  
  
 SAS      BSS    0           ENTRY
          LDC    SRUW*5+1 
 SAS1     STD    T1 
          RJM    CJS         CHECK JOB STATUS 
          ZJP    /3QU/RPI12  IF INVALID JOB STATUS
          LDN    3
          STD    T2          SET LOOP COUNTER 
 SAS3     LDM    CBUF,T1
          LPN    77 
          SHN    14 
          LMM    CBUF+1,T1
          SHN    -6 
          STI    FN 
          AOD    FN          INCREMENT ADDRESS OF INFORMATION 
          AOD    T1 
          SOD    T2 
          NJN    SAS3        IF MORE BYTES TO MOVE
          LDM    CBUF,T1
          SHN    6
          STI    FN 
          LJM    /3QU/RPI13  ENTER INTO BUFFER
          TITLE  SUBROUTINES. 
 CJS      SPACE  4,10 
**        CJS - CHECK JOB STATUS. 
* 
*         ENTRY  (QT) = QUEUE TYPE. 
*                (CQJS) = JOB STATUS. 
* 
*         EXIT   (A) .EQ. 0, IF NOT EXECUTING JOB OR JOB STATUS OF
*                EXECUTING JOB IS PRE-INITIAL JOB STATE OR PRE-INITIAL
*                WAIT JOB STATE.
  
  
 CJS1     LDN    0           SET INCORRECT QUEUE TYPE 
  
 CJS      SUBR               ENTRY/EXIT 
          LDD    QT 
          LMK    EXQI 
          NJN    CJS1        IF NOT EXECUTING JOB 
          LDM    CQJS        CHECK JOB STATUS 
          LMK    PRJS 
          ZJN    CJSX        IF PRE-INITIAL JOB STATE 
          LMK    PWJS&PRJS
          UJN    CJSX        RETURN 
 CMM      SPACE  4,10 
**        CMM - CLEAR UNUSED PORTION OF *MS1W*/*MS2W* MESSAGE AREA. 
* 
*         ENTRY  (RPIG) = ADDRESS OF MESSAGE. 
*                (3,FN) = LENGTH OF MESSAGE.
* 
*         EXIT   UNUSED PORTION OF MESSAGE AREA CLEARED IN CONTROL
*                POINT AREA.
* 
*         USES   T1, T2.
  
  
 CMM      SUBR               ENTRY/EXIT 
          LDM    /3QU/RPIG   SET BUFFER ADDRESSES 
          STM    CMMA 
          STM    CMMB 
          LDM    3,FN        SET NUMBER OF BYTES
          STD    T1 
          SHN    2
          RAD    T1 
          LDN    0           SET BEGINNING BYTE 
          STD    T2 
 CMM1     LDM    **,T2       SEARCH FOR END OF MESSAGE
 CMMA     EQU    *-1         (BUFFER ADDRESS) 
          ZJN    CMM2        IF END OF MESSAGE
          AOD    T2          INCREMENT BYTE NUMBER
          SBD    T1 
          NJN    CMM1        IF NOT END OF MESSAGE
          UJN    CMMX        RETURN 
  
 CMM2     LDN    0           CLEAR REST OF MESSAGE AREA 
          STM    **,T2
 CMMB     EQU    *-1         (BUFFER ADDRESS) 
          AOD    T2          INCREMENT BYTE NUMBER
          SBD    T1 
          ZJN    CMMX        IF END OF MESSAGE AREA 
          UJN    CMM2        CLEAR NEXT BYTE
          SPACE  4,10 
          OVERFLOW  /3QU/OVLP,CBUF+STSW*5 
  
  
          USE    OVERFLOW 
          ERRNG  SBUF-*-1    READING INTO *SBUF* WILL OVERLAY CODE
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          OVERLAY  (*PEEK* REPLY OVERLAY THREE.),/3QU/OVLP
          SPACE  4,10 
**        THIS OVERLAY CONTAINS THE CODE TO PROCESS *PEEK*
*         INFORMATION BITS 23-22.  A SECONDARY OVERLAY IS 
*         CALLED TO PERFORM MOST OF THE PROCESSING FOR BIT 23.
*         COMMON SUBROUTINES (PRIMARILY USED FOR READING NFL
*         FROM A ROLLOUT FILE) ARE LOCATED AT THE BEGINNING OF
*         THIS OVERLAY. THE COMMON ROUTINES ARE ASSEMBLED WITH
*         THE QUALIFIER *3QU*.
* 
*         NOTE - *BFMS* IS USED AS THE BUFFER FOR THE DAYFILE 
*         BUFFER.  IF THIS INFORMATION BIT IS SELECTED, THE 
*         SYSTEM SECTOR WILL HAVE TO BE REREAD IF IT IS NEEDED
*         AFTER THIS PROCESSING.
          TITLE  COMMON (NON-OVERLAYED) SUBROUTINES.
          QUAL   3QU
 CRB      SPACE  4,10 
**        CRB - CLEAR REMAINDER OF REPLY BUFFER.
* 
*         ENTRY  (A) = LENGTH (IN WORDS) OF RESPONSE BUFFER.
*                ((FN)+2) = NUMBER OF WORDS OF DATA IN RESPONSE BUFFER. 
* 
*         EXIT   (T1) = LENGTH (IN WORDS) OF ZEROS AT *DBUF*. 
*                ENOUGH ZEROS AT *DBUF* TO CLEAR REST OF INFORMATION
*                AREA IN *PEEK* RESPONSE BUFFER.
* 
*         USES   T1, T2.
  
  
 CRB      BSS    0           ENTRY
          SBM    2,FN 
          ZJP    /3QU/RPI4   IF BUFFER FULL 
          STD    T2 
          STD    T1          SET BUFFER INDEX 
          SHN    2
          RAD    T2 
 CRB2     LDN    0
          STM    DBUF-1,T2
          SOD    T2 
          NJN    CRB2        IF NOT END OF BUFFER 
          LJM    /3QU/RPI19  ENTER INTO REPLY BUFFER
 DSR      SPACE  4,15 
**        DSR - DETERMINE SECTOR FOR READ.
* 
*         ENTRY  (NBUF) = POINTER TO STATEMENTS IN ROLLOUT FILE.
*                (NBUF+3) = LAST SECTOR OF NFL. 
*                (T5) = ROLLOUT FILE EST ORDINAL. 
*                (FS+1) = ROLLOUT FILE FIRST TRACK. 
* 
*         EXIT   (T6) = TRACK TO BE READ. 
*                (T7) = SECTOR TO BE READ.
* 
*         CALLS  CRA. 
  
  
 DSR      SUBR               ENTRY/EXIT 
          LDD    RI          SAVE (RI) AND (RI+1) 
          STM    DSRA 
          LDD    RI+1 
          STM    DSRB 
          LDM    NBUF 
          SBN    1
          SHN    -6 
          LMC    -0          COMPUTE DESIRED RELATIVE PRU 
          ADM    NBUF+3 
          STD    RI+1 
          LDN    0
          STD    RI 
          LDD    FS+1        INITIALIZE TRACK 
          STD    T6 
          RJM    CRA         CONVERT RANDOM ADDRESS 
          LDC    **          RESTORE (RI) AND (RI+1)
 DSRA     EQU    *-1         (ORIGINAL CONTENTS OF RI)
          STD    RI 
          LDC    ** 
 DSRB     EQU    *-1         (ORIGINAL CONTENTS OF RI+1)
          STD    RI+1 
          UJN    DSRX        RETURN 
 ESB      SPACE  4,25 
**        ESB - ENTER STATEMENTS INTO REPLY BUFFER. 
* 
*         ENTRY  (A) = LENGTH OF BUFFER AT *DBUF*+2 (WORDS).
*                    .LT. 0 = SECTOR OF NFL DATA AT *DBUF*+2. 
*                (NBUF) = ADDRESS OF STATEMENTS IN NFL, A .LT. 0. 
*                       = DISTANCE FROM END OF BUFFER TO START OF 
*                         DATA IN WORDS, A .GE. 0.
*                (NBUF+1) = NUMBER OF WORDS TO BE RETURNED TO REPLY 
*                           BUFFER. 
*                (DBUF+2) = DATA TO BE SENT.
* 
*         EXIT   (A) = NUMBER OF WORDS YET TO BE RETURNED.
*                (NBUF) DECREMENTED BY NUMBER OF WORDS RETURNED.
*                (NBUF+1) DECREMENTED BY NUMBER OF WORDS RETURNED.
*                STATEMENTS ENTERED INTO REPLY BUFFER.
* 
*         USES   T1, T3.
* 
*         CALLS  LSB, WBB.
  
  
 ESB      SUBR               ENTRY/EXIT 
          RJM    LSB         LOCATE STATEMENTS IN BUFFER
          RJM    WBB         ENTER INFORMATION INTO REPLY BUFFER
          LDN    0           DECREMENT NFL POINTER
          SBD    T2 
          RAM    NBUF 
          LDN    0           DECREMENT NUMBER OF WORDS TO RETURN
          SBD    T2 
          RAM    NBUF+1 
          UJN    ESBX        RETURN 
 LSB      SPACE  4,15 
**        LSB - LOCATE STATEMENTS IN REPLY BUFFER.
* 
*         ENTRY  (A) = LENGTH OF BUFFER AT *DBUF*+2 (WORDS).
*                    .LT. 0 = SECTOR OF NFL DATA AT *DBUF*+2. 
*                (NBUF) = ADDRESS OF STATEMENTS IN NFL, A .LT. 0. 
*                       = DISTANCE FROM END OF BUFFER TO START OF 
*                         DATA IN WORDS, A .GE. 0.
*                (NBUF+1) = NUMBER OF WORDS TO BE RETURNED TO REPLY 
*                         BUFFER. 
* 
*         EXIT   (A) = ADDRESS OF DATA IN *DBUF*. 
*                (T1) = NUMBER OF WORDS IN BUFFER TO BE RETURNED. 
*                (T2) = (T1). 
* 
*         USES   T3.
  
  
 LSB      SUBR               ENTRY/EXIT 
          PJN    LSB1        IF NOT SECTOR ORIENTED DATA
          LDC    400100 
 LSB1     STM    LSBA        SET LENGTH 
          LPC    -7777       CLEAR LENGTH 
          LMM    NBUF        GET NBUF 
          PJN    LSB2        IF NOT SECTOR ORIENTED DATA
          LPN    77 
          NJN    LSB2        IF NOT A SECTOR BOUNDARY 
          LDD    HN 
 LSB2     STD    T1 
          STD    T2 
          STD    T3 
          LDM    NBUF+1 
          SBD    T1 
          PJN    LSB3        IF REST OF BUFFER TO BE ENTERED
          RAD    T1          USE ONLY WHAT NEEDS TO BE ENTERED
          STD    T2 
 LSB3     LDC    **          DETERMINE ADDRESS OF FIRST BYTE TO ENTER 
 LSBA     EQU    *-1         (NUMBER OF WORDS IN BUFFER)
          SBD    T3 
          STD    T3 
          SHN    2
          ADD    T3 
          ADC    DBUF+2 
          LJM    LSBX        RETURN 
 MSR      SPACE  4,10 
**        MSR - PROCESS MASS STORAGE ERROR ON ROLLOUT FILE. 
* 
*         EXIT   TO *RPIX* (WITH (A) .LT. 0). 
  
  
 MSR      CON    0           ENTRY
          ENDMS 
          LCN    0           SET (A) .LT. 0 
          LJM    RPIX        RETURN 
 STO      SPACE  4,15 
**        STO - SKIP TERMINAL OUTPUT. 
* 
*         ENTRY  (FS - FS+4) = *SCHE* WORD OF EJT ENTRY.
*                (JSRF) = JOB STATUS (JSNE, BYTE 4) FROM RO FILE SS.
* 
*         EXIT   (T5) = EST ORDINAL OF ROLLOUT FILE.
*                (T6) = TRACK.
*                (T7) = FIRST SECTOR OF NFL.
*                (NBUF+3) = LAST SECTOR OF NFL. 
* 
*         USES   T5, T6, T7.
* 
*         CALLS  RNS. 
* 
*         MACROS SETMS. 
  
  
 STO      SUBR               ENTRY/EXIT 
          LDN    FSMS+2      PRESET FIRST SECTOR OF NFL 
          STD    T7 
          STM    NBUF+3      INITIALIZE LAST SECTOR OF NFL TO FIRST 
          LDD    FS          SET EST ORDINAL
          STD    T5 
          LDD    FS+1        SET FIRST TRACK
          STD    T6 
          SETMS  IO 
          LDM    JSRF        CHECK FOR TERMINAL OUTPUT RECORD 
          SHN    -7 
          LPN    17 
          LMN    OLCS 
          ZJN    STO1        IF RECORD WAS WRITTEN BY *1RO* 
          LMN    DTCS&OLCS
          NJN    STO2        IF RECORD WAS NOT WRITTEN BY *1RO* 
 STO1     AOM    NBUF+3      INCREMENT LAST SECTOR OF NFL 
          LDC    BFMS 
          RJM    RNS         READ NEXT SECTOR 
          SHN    -6 
          NJN    STO1        IF NOT EOR 
 STO2     LDM    CBUF+FLSW*5+0  ADD IN LENGTH OF NFL
          SBN    1
          RAM    NBUF+3 
          LJM    STOX        RETURN 
          SPACE  4
**        COMMON DECKS. 
  
  
*CALL     COMPCRA 
 MSR$     EQU    1           ASSEMBLE ERROR CALL TO MSR 
*CALL     COMPRNS 
          QUAL   *
          TITLE  INFORMATION BIT PROCESSORS 
**        SCB (23) - SET CONTROL STATEMENT BUFFER.
  
  
 SCB      BSS    0           ENTRY
          EXECUTE 3QZ 
          UJN    /3QZ/SCB    PROCESS REQUEST
          SPACE  4,10 
*         *PEEK* REPLY OVERLAY AREA FOR REPLIES FROM *NFL*. 
  
          QUAL   3QU
 OVLN     EQU    *+5         NFL OVERLAY LOAD ADDRESS 
          QUAL   *
 SDB      SPACE  4,10 
**        SDB (22) - SET DAYFILE BUFFER.
  
  
 SDB      BSS    0           ENTRY
          LDC    JDBL        SET ENTRY LENGTH 
          STM    3,FN 
          STM    NBUF 
          STM    NBUF+1 
          STD    TP 
          LDN    0           PRESET NO DAYFILE MESSAGES 
          STM    2,FN 
          STD    T7          SET SYSTEM SECTOR NOT READ 
          LDC    DBUF+2      SET ADDRESS OF INFORMATION 
          STM    /3QU/RPIG
          LDD    QT 
          LMK    EXQI 
          NJN    SDB1        IF NOT EXECUTING JOB 
          LDM    CQJS 
          LMK    PRJS 
          ZJN    SDB1        IF PRE-INITIAL JOB STATE 
          LMK    PWJS&PRJS
          NJN    SDB2        IF NOT PRE-INITIAL WAIT JOB STATE
 SDB1     LJM    /3QU/RPI15  CLEAR ENTRY
  
 SDB2     LMK    EXJS&PWJS
          ZJN    SDB2.1      IF JOB AT CP 
          LMK    PCJS&EXJS
          NJN    SDB4        IF JOB IS ROLLED OUT 
  
*         GET DAYFILE MESSAGES FROM CPA/PCPA. 
  
 SDB2.1   LDM    /3QU/.NCP   SET ALTERNATE CP/PCP ASSIGNMENT
          RJM    CCP
          RJM    RDC         READ DAYFILE FROM BUFFER 
          LDN    0           CLEAR ALTERNATE CP/PCP ASSIGNMENT
          RJM    CCP
          LDD    TP 
          RJM    SLZ         SKIP LEADING ZERO WORDS
          LDM    NBUF+1      SET WORD COUNT 
          STM    2,FN 
          ZJN    SDB3        IF NO STATEMENTS IF DAYFILE
          RJM    /3QU/EHB    ENTER HEADER IN BUFFER 
          LDD    TP 
          RJM    /3QU/ESB    ENTER STATEMENTS INTO BUFFER 
          LDD    TP 
          LJM    /3QU/CRB    CLEAR REMAINDER OF REPLY BUFFER
  
 SDB3     LJM    /3QU/RPI16  CLEAR ENTRY
  
*         GET DAYFILE STATEMENTS FROM ROLLOUT FILE. 
  
 SDB4     RJM    /3QU/STO    SKIP TERMINAL OUTPUT 
          LDK    DAPN        READ DAYFILE BUFFER POINTERS 
          STM    NBUF 
          RJM    /3QU/DSR    DETERMINE SECTOR TO READ 
          LDC    BFMS 
          RJM    /3QU/RNS    READ THE SECTOR
          RJM    PCR         PROCESS STATEMENTS FROM CIRCULAR BUFFER
          ENDMS 
          LDD    TP 
          LJM    /3QU/CRB    CLEAR REMAINDER OF REPLY BUFFER
 PCR      SPACE  4,30 
**        PCR - PROCESS CIRCULAR DAYFILE BUFFER IN ROLLOUT FILE.
* 
*         ENTRY  (NBUF+3) = LAST SECTOR OF NFL. 
*                (T5) = EQUIPMENT.
*                (2,FN) = NUMBER OF WORDS TO BE RETURNED. 
*                MASS STORAGE BUFFER CONTAINS SECTOR OF NFL 
*                CONTAINING THE DAYFILE BUFFER POINTERS.
* 
*         EXIT   DAYFILE MESSAGES RETURNED TO REPLY BUFFER. 
* 
*         CALLS  DSR, EHB, ESB, RNS, SLZ. 
* 
*         NOTES  THE FOLLOWING ARE DEFINED FOR *PCR* PROCESSING.
*                (NBUF) = ADDRESS IN NFL OF DAYFILE MESSAGES. 
*                (NBUF+1) = NUMBER OF WORDS TO BE RETURNED BEFORE END 
*                OF DAYFILE BUFFER. 
*                (NBUF+2) = ADDRESS OF *IN* RELATIVE TO *RA*. 
*                (NBUF+3) = LAST SECTOR OF NFL. 
*                (NBUF+4) = *IN* POINTER. 
  
  
 PCR      SUBR               ENTRY/EXIT 
          LDN    0
          STM    PCRA        SET STATEMENTS NOT FOUND FLAG
          LDM    INRF 
          STM    NBUF+4      SET *IN* POINTER 
          RJM    VIN         VALIDATE *IN* POINTER
          STM    NBUF+1      SET NUMBER OF WORDS FROM *IN* TO END 
          ADK    DAYN-JDBL   SET POINTER TO STATEMENTS
          STM    NBUF+2 
 PCR1     STM    NBUF 
          RJM    /3QU/DSR    DETERMINE SECTOR TO READ 
 PCR2     LDC    DBUF 
          RJM    /3QU/RNS    READ NEXT SECTOR 
          LDC    0           (STATEMENTS NOT FOUND YET) 
*         LDC    1           (STATEMENTS HAVE BEEN FOUND AND READ)
 PCRA     EQU    *-1
          NJN    PCR5        IF STATEMENTS FOUND
          LCN    0
          RJM    SLZ         SKIP LEADING ZEROS 
          ZJN    PCR6        IF NO STATEMENTS FOUND IN SECTOR 
          LDM    NBUF+4      SET NUMBER OF WORDS IN BUFFER
          SBK    DAYN          N=IN-(DAYN-(NBUF)) MOD JDBL
          ADM    NBUF 
          ZJN    PCR3        IF BUFFER FULL 
          PJN    PCR4        IF NO WRAP AROUND IN BUFFER
 PCR3     ADD    TP 
 PCR4     STM    2,FN 
          AOM    PCRA        SET STATEMENTS FOUND FLAG
          RJM    /3QU/EHB    ENTER HEADER INTO BUFFER 
 PCR5     LCN    0
          RJM    /3QU/ESB    ENTER STATEMENTS IN BUFFER 
 PCR6     LDM    NBUF+1 
          NJN    PCR2        IF MORE DATA BEFORE WRAP AROUND OR *IN*
          LDM    NBUF+4 
          ZJN    PCR7        IF *IN* = 0
          STM    NBUF+1      SET NUMBER OF WORDS FROM BEGINNING TO *IN* 
          LDM    NBUF        CHECK FOR END OF STATEMENTS
          SBM    NBUF+2 
          ZJN    PCR7        IF NO MORE STATEMENTS (NBUF = *IN*)
          LDK    DAYN        WRAP AROUND TO BEGINNING OF BUFFER 
          LJM    PCR1        READ REST OF STATEMENTS
  
 PCR7     LJM    PCRX        RETURN 
 RDC      SPACE  4,15 
**        RDC - READ DAYFILE MESSAGES FROM CIRCULAR BUFFER. 
* 
*         ENTRY  (TP) = JDBL. 
*                (RA) = RA OF SELECTED JOB. 
* 
*         EXIT   (NBUF+4) = *IN*. 
*                DAYFILE MESSAGES ENTERED TO *DBUF*+2 FROM *IN* 
*                TO *IN*. 
* 
*         USES   T0 - T4. 
* 
*         MACROS NFA. 
* 
*         NOTES  THIS SUBROUTINE IS USED TO READ DAYFILE MESSAGES 
*                FROM NFL.  IT RETURNS DATA FROM *IN*, WRAPPING 
*                AROUND TO *IN*-1.
  
  
 RDC      SUBR               ENTRY/EXIT 
          NFA    DAPN        GET DAYFILE POINTERS 
          CRD    T0 
          LDD    T4 
          STM    NBUF+4      SET *IN* POINTER 
          RJM    VIN         VALIDATE *IN* POINTER
          STD    T2 
          ZJN    RDC1        IF ZERO WORD COUNT 
          NFA    DAYN        GET DAYFILE MESSAGES 
          ADD    T4 
          CRM    DBUF+2,T2
 RDC1     LDD    T2          SET NEXT COMMAND ADDRESS 
          SHN    2
          ADD    T2 
          ADC    DBUF+2 
          STM    RDCA 
          LDD    T4 
          ZJN    RDC2        IF ZERO WORD COUNT 
          NFA    DAYN        GET DAYFILE MESSAGES 
          CRM    **,T4
 RDCA     EQU    *-1         (ADDRESS OF NEXT COMMAND)
 RDC2     LJM    RDCX        RETURN 
 SLZ      SPACE  4,15 
**        SLZ - SKIP LEADING ZEROS IN DAYFILE BUFFER. 
* 
*         ENTRY  (A) = LENGTH OF BUFFER AT *DBUF*+2 (WORDS).
*                    .LT. 0 = SECTOR OF NFL DATA AT *DBUF*+2. 
*                (NBUF) = ADDRESS OF COMMANDS IN NFL, A .LT. 0. 
*                       = DISTANCE FROM END OF BUFFER TO START OF 
*                         DATA IN WORDS, A .GE. 0.
*                (NBUF+1) = NUMBER OF WORDS TO BE RETURNED TO REPLY 
*                           BUFFER. 
*                (DBUF+2) = DATA TO BE SENT.
* 
*         EXIT   (A) = 0 - ALL WORDS ARE ZEROS. 
*                (T1) = NUMBER OF NON-ZERO WORDS. 
*                (NBUF) DECREMENTED BY NUMBER OF WORDS SKIPPED. 
*                (NBUF+1) DECREMENTED BY NUMBER OF WORDS SKIPPED. 
* 
*         USES   T1, T2.
* 
*         CALLS  LSB. 
  
  
 SLZ      SUBR               ENTRY/EXIT 
          RJM    /3QU/LSB    LOCATE COMMANDS IN BUFFER
          STD    T2          SET FIRST WORD ADDRESS 
 SLZ1     LDI    T2 
          ADM    1,T2 
          ADM    2,T2 
          ADM    3,T2 
          ADM    4,T2 
          NJN    SLZX        IF WORD IS NOT ZERO WORD 
          LDN    5
          RAD    T2 
          SOM    NBUF 
          SOM    NBUF+1 
          SOD    T1 
          NJN    SLZ1        IF MORE WORDS IN BUFFER
          UJN    SLZX        RETURN 
 VIN      SPACE  4,10 
**        VIN - VALIDATE *IN* POINTER.
* 
*         ENTRY  (TP) = *JDBL*. 
*                (NBUF+4) = *IN*. 
* 
*         EXIT   (A) = *JDBL* - *IN*. 
* 
*         ERROR  TO RPI14 IF *IN* .GE. *JDBL*.
* 
*         MACROS ENDMS, MONITOR.
  
  
 VIN      SUBR               ENTRY/EXIT 
          LDD    TP 
          SBM    NBUF+4 
          ZJN    VIN1        IF *IN* = *JDBL* 
          PJN    VINX        IF *IN* .LT. *JDBL*
 VIN1     ENDMS              RELEASE ANY DISK CHANNEL 
*         LDN    0           SET NO ERROR FLAG
          STD    CM+2 
          LDC    *           ADDRESS WHERE ERROR DETECTED 
          STD    CM+1 
          MONITOR  CHGM      CONDITIONALLY HANG PP
          LJM    /3QU/RPI16  CLEAR ENTRY
          SPACE  4,10 
          OVERFLOW  /3QU/OVLP,CBUF+STSW*5 
  
  
          USE    OVERFLOW 
          ERRNG  SBUF-*-1    READING INTO *SBUF* WILL OVERLAY CODE
          OVERLAY  (*PEEK* REPLY OVERLAY FOUR.),/3QU/OVLN 
          SPACE  4,10 
**        THIS OVERLAY CONTAINS THE CODE TO PROCESS *PEEK*
*         INFORMATION BIT 23. 
* 
*         NOTE - *DBUF* IS USED AS THE BUFFER FOR THE CONTROL 
*         COMMAND BUFFER.  IF THIS INFORMATION BIT IS SELECTED, 
*         THE SYSTEM SECTOR WILL HAVE TO BE REREAD IF IT IS NEEDED
*         AFTER THIS PROCESSING.
 SCB      SPACE  4,10 
**        SCB (23) - SET COMMAND BUFFER.
  
  
 SCB      BSS    0           ENTRY
          LDC    CSBL        SET ENTRY LENGTH 
          STM    3,FN 
          LDN    0           PRESET NO COMMANDS 
          STM    2,FN 
          STD    T7          SET SYSTEM SECTOR NOT READ 
          LDC    DBUF 
          STM    /3QU/RPIG
          LDD    QT 
          LMK    EXQI 
          NJN    SCB1        IF NOT EXECUTING JOB 
          LDM    CQJS 
          LMK    PRJS 
          ZJN    SCB1        IF PRE-INITIAL JOB STATE 
          LMK    PWJS&PRJS
          NJN    SCB2        IF NOT PRE-INITIAL WAIT JOB STATE
 SCB1     LJM    /3QU/RPI15  CLEAR ENTRY
  
 SCB2     LDM    CBUF+5*CSPW+4  SET END OF COMMANDS 
          STD    T1 
          LDM    CBUF+CSPW*5+3  SET NEXT COMMAND POINTER
          STD    T5 
          STM    NBUF 
          SBD    T1 
          ZJP    /3QU/RPI16  IF NO COMMANDS 
          STM    2,FN 
          STD    T3          SET NUMBER OF WORDS RETURNED 
          STM    NBUF+1 
          RJM    /3QU/EHB    ENTER HEADER IN BUFFER 
          LDM    CQJS 
          LMK    EXJS 
          ZJN    SCB3        IF JOB AT CP 
          LMK    PCJS&EXJS
          NJN    SCB5        IF JOB ROLLED OUT
  
*         GET CONTROL STATEMENTS FROM CPA/PCPA. 
  
 SCB3     LDM    /3QU/.NCP   SET ALTERNATE CP/PCP ASSIGNMENT
          RJM    CCP
          NFA    T5,R        GET COMMANDS 
          CRM    DBUF+2,T3
          LDN    0           CLEAR ALTERNATE CP/PCP ASSIGNMENT
          RJM    CCP
          LDD    T5 
          RJM    /3QU/ESB    ENTER STATEMENTS INTO BUFFER 
          LDC    CSBL 
          LJM    /3QU/CRB    CLEAR REMAINDER OF REPLY BUFFER
  
*         GET CONTROL STATEMENTS FROM ROLLOUT FILE. 
  
 SCB5     RJM    /3QU/STO    SKIP TERMINAL OUTPUT 
          RJM    /3QU/DSR    DETERMINE SECTOR FOR READ
 SCB6     LDC    DBUF 
          RJM    /3QU/RNS    READ SECTOR
          LCN    0
          RJM    /3QU/ESB    ENTER STATEMENTS INTO BUFFER 
          NJN    SCB6        IF NOT ALL STATEMENTS TRANSFERRED
          ENDMS 
          LDC    CSBL 
          LJM    /3QU/CRB    CLEAR REMAINDER OF REPLY BUFFER
          SPACE  4,10 
          OVERFLOW  /3QU/OVLN,CBUF+STSW*5 
  
  
          USE    OVERFLOW 
          ERRNG  SBUF-*-1    READING INTO *SBUF* WILL OVERLAY CODE
          OVERLAY  (*PEEK* REPLY OVERLAY FIVE.),/3QU/OVLP 
          SPACE  4,10 
**        THIS OVERLAY CONTAINS THE CODE TO PROCESS *PEEK*
*         INFORMATION BITS 31 - 24. 
 SLD      SPACE  4,10 
**        SLD (24) - SET LOGICAL ID-S FROM SYSTEM SECTOR. 
  
  
 SLD      BSS    0           ENTRY
          RJM    GSS         GET SYSTEM SECTOR
          LDM    IOSS+INSQ*5+2  SET DESTINATION LID 
          SCN    77 
          SHN    6
          LMM    IOSS+INSQ*5+1
          SHN    6
          STM    1,FN 
          SHN    -14
          STI    FN 
          LDM    SLSS        SET CREATION LOGICAL ID
          LPN    77 
          STM    2,FN 
          LDM    SLSS+1 
          STM    3,FN 
          LJM    /3QU/RPI13  ENTER INFORMATION INTO BUFFER
 PIT      SPACE  4,10 
**        PIT (25) - PROCESS IMPLICIT REMOTE TEXT FROM EOI SECTOR.
  
  
 PIT      BSS    0           ENTRY
          LDK    TXWEI       LENGTH OF REMOTE TEXT BLOCK
          STM    3,FN 
          LDC    BFMS+ITEI   ADDRESS OF REMOTE IMPLICIT TEXT BLOCK
          STM    /3QU/RPIG
          RJM    GEI         GET EOI SECTOR 
          LDK    ITEI        INDEX OF IMPLICIT TEXT IN EOI
          STD    T3 
          LDM    BFMS+ILEI   NUMBER OF CHARACTERS IN TEXT 
          RJM    ETB         ENTER TEXT INTO REPLY BUFFER 
          LJM    /3QU/RPI4   PROCESS NEXT INFORMATION BIT 
 PET      SPACE  4,10 
**        PET (26) - PROCESS EXPLICIT REMOTE TEXT FROM EOI SECTOR.
  
  
 PET      BSS    0           ENTRY
          LDK    TXWEI       LENGTH OF REMOTE TEXT BLOCK
          STM    3,FN 
          LDC    BFMS+EXEI   ADDRESS OF REMOTE EXPLICIT TEXT BLOCK
          STM    /3QU/RPIG
          RJM    GEI         GET EOI SECTOR 
          LDK    EXEI        INDEX OF EXPLICIT TEXT IN EOI
          STD    T3 
          LDM    BFMS+ELEI   NUMBER OF CHARACTERS IN TEXT 
          RJM    ETB         ENTER TEXT INTO REPLY BUFFER 
          LJM    /3QU/RPI4   PROCESS NEXT INFORMATION BIT 
 GRU      SPACE  4,10 
**        GRU (27) - GET REMOTE USER NAME.
  
  
 GRU      BSS    0           ENTRY
          RJM    GSS         GET SYSTEM SECTOR
          LDM    RUSS        GET REMOTE USER NAME 
          STI    FN 
          LDM    RUSS+1 
          STM    1,FN 
          LDM    RUSS+2 
          STM    2,FN 
          LDM    RUSS+3 
          SCN    77 
          STM    3,FN 
          LJM    /3QU/RPI13  PUT INFORMATION INTO BUFFER
 GRF      SPACE  4,10 
**        GRF (30) - GET REMOTE FAMILY NAME.
  
  
 GRF      BSS    0           ENTRY
          RJM    GSS         GET SYSTEM SECTOR
          LDM    RFSS        GET REMOTE FAMILY NAME 
          STI    FN 
          LDM    RFSS+1 
          STM    1,FN 
          LDM    RFSS+2 
          STM    2,FN 
          LDM    RFSS+3 
          SCN    77 
          STM    3,FN 
          LJM    /3QU/RPI13  ENTER INFORMATION INTO BUFFER
 ALV      SPACE  4,10 
**        ALV (31) - RETURN ACCESS LEVEL, JOB ACCESS LEVEL LIMITS AND 
*                    ORIGINAL JSN.
  
 ALV      BSS    0           ENTRY
          RJM    GSS         GET SYSTEM SECTOR
          LDM    OJSS        COPY ORIGINAL JSN
          STI    FN 
          LDM    OJSS+1 
          STM    1,FN 
          RJM    RAL         READ CURRENT ACCESS LEVEL OF JOB 
          MJN    ALV3        IF ERROR 
          LDD    QT 
          LMK    EXQI 
          NJN    ALV1        IF NOT EXECUTING JOB 
  
*         EXECUTING JOB.
  
          LDM    IBUF+2      GET ACCESS LEVEL LIMITS FROM EJT ENTRY 
          LPN    77 
          SHN    3
          RAD    T1          COMBINE ACCESS LEVEL AND LIMITS
          UJN    ALV4        RETURN ACCESS LEVEL AND LIMITS 
  
*         INPUT QUEUE FILE. 
  
 ALV1     LMK    INQI&EXQI
          NJN    ALV2        IF NOT INPUT QUEUE FILE
          LDM    IBUF+3      GET ACCESS LEVEL LIMITS FROM QFT ENTRY 
          SCN    77 
          RAD    T1 
          LDM    IBUF+3 
          LPN    7
          SHN    3
          RAD    T1          COMBINE ACCESS LEVEL AND LIMITS
          UJN    ALV4        RETURN ACCESS LEVEL AND LIMITS 
  
*         OUTPUT QUEUE FILE.
  
 ALV2     LDD    T1          USE CURRENT ACCESS LEVEL FOR LIMITS
          SHN    3
          LMD    T1 
          SHN    3
          RAD    T1          COMBINE ACCESS LEVEL AND LIMITS
          UJN    ALV4        RETURN ACCESS LEVEL AND LIMITS 
  
*         PROCESS READ ERROR. 
  
 ALV3     LDN    0           RETURN ZERO ACCESS LEVEL AND LIMITS
          STD    T1 
  
*         RETURN ACCESS LEVEL AND LIMITS. 
  
 ALV4     LDN    0           CLEAR UNUSED ENTRY BYTES 
          STM    2,FN 
          LDD    T1          ACCESS LEVEL AND JOB ACCESS LEVEL LIMITS 
          STM    3,FN 
          LJM    /3QU/RPI13  PUT INFORMATION INTO BUFFER
          TITLE  SUBROUTINES. 
 ETB      SPACE  4,15 
**        ETB - ENTER TEXT INTO REPLY BUFFER. 
* 
*         ENTRY  (A) = NUMBER OF CHARACTERS IN TEXT STRING. 
*                (T3) = INDEX INTO *BFMS* FOR TEXT. 
*                ((FN)+3) = LENGTH OF ENTRY.
* 
*         EXIT   TEXT ENTERED INTO REPLY BUFFER.
* 
*         USES   T1.
* 
*         CALLS  EHB, WBB.
  
  
 ETB      SUBR               ENTRY/EXIT 
          STM    2,FN 
          RJM    /3QU/EHB    ENTER HEADER WORD INTO REPLY BUFFER
          LDK    TXWEI       LENGTH OF REMOTE TEXT BLOCK
          STD    T1 
          LDD    T3 
          ADC    BFMS 
          RJM    /3QU/WBB    ENTER INFORMATION INTO REPLY BUFFER
          UJN    ETBX        RETURN 
 GEI      SPACE  4,15 
**        GEI - GET EOI SECTOR. 
* 
*         ENTRY  ((FN)+3) = LENGTH OF ENTRY.
* 
*         EXIT   EOI SECTOR READ TO *BFMS*. 
*                TO */3QU/RPI13* IF EXECUTING JOB.
*                TO */3QU/RPIX* IF READ ERROR.
* 
*         USES   T5, T6, T7.
* 
*         CALLS  MEP, RDS, SEI. 
* 
*         MACROS ENDMS, SETMS.
  
  
 GEI2     ENDMS              RETURN 
  
 GEI      SUBR               ENTRY/EXIT 
          LDD    QT 
          LMK    EXQI 
          ZJP    /3QU/RPI15  IF EXECUTING JOB 
          LDD    FS 
          STD    T5          SET EQUIPMENT
          LDD    FS+1 
          STD    T6          SET TRACK
          SETMS  IO 
          LDN    0           GET CURRENT COPY OF TRT
          RJM    SEI         POSITION FILE TO EOI SECTOR
          LDC    BFMS 
          RJM    RDS         READ EOI SECTOR
          PJN    GEI2        IF NO READ ERROR 
          LCN    0           INDICATE MASS STORAGE ERROR
          LJM    /3QU/RPIX   EXIT 
 GSS      SPACE  4,15 
**        GSS - GET SYSTEM SECTOR.
* 
*         ENTRY  (FS - FS+4) = EJT WORD *SCHE*. 
* 
*         EXIT   SYSTEM SECTOR READ TO *BFMS*.
*                TO */3QU/RPIX* IF READ ERROR.
* 
*         USES   T5, T6, T7, FS - FS+4. 
* 
*         CALLS  CCP, RIF.
* 
*         MACROS ENDMS, NFA, SFA. 
  
  
 GSS3     ENDMS              RETURN 
          LDD    QT 
          LMK    EXQI 
          NJN    GSSX        IF NOT EXECUTING JOB 
          SFA    EJT,QI      REREAD THE *SCHE* EJT WORD 
          ADK    SCHE 
          CRD    FS 
  
 GSS      SUBR               ENTRY/EXIT 
          LDD    QT 
          LMK    EXQI 
          NJN    GSS2        IF NOT EXECUTING JOB 
          LDM    CQJS 
          LMK    EXJS 
          ZJN    GSS1        IF JOB AT CP 
          LMK    PCJS&EXJS
          NJN    GSS2        IF JOB NOT AT PCP
          LDD    FS+1 
          UJN    GSS1.1      SET PCP ASSIGNMENT 
  
 GSS1     LDD    FS+3        SET CP NUMBER
 GSS1.1   RJM    CCP         SET ALTERNATE CP/PCP ASSIGNMENT
          NFA    FNTN+FSTL   READ INPUT FILE FST
          CRD    FS 
          LDN    0           CLEAR ALTERNATE CP/PCP ASSIGNMENT
          RJM    CCP
 GSS2     LDD    FS          SET EQUIPMENT
          STD    T5 
          LDD    FS+1        SET FIRST TRACK
          STD    T6 
          LDN    0
          STD    T7 
          RJM    RIF         READ SYSTEM SECTOR 
          PJP    GSS3        IF NO READ ERROR 
          LJM    /3QU/RPIX   EXIT 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
*CALL     COMPSEI 
          SPACE  4,10 
          OVERFLOW  /3QU/OVLP,CBUF+STSW*5 
  
  
          USE    OVERFLOW 
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          ERRNG  SBUF-*-1    READING INTO *SBUF* WILL OVERLAY CODE
          OVERLAY  (*ALTER* PRE-INITIAL JOBS/QUEUED FILES.),/3QT/OVLP 
          QUAL   3QT
 APJ      SPACE  4,15 
**        APJ - ALTER JOB IN PRE-INITIAL JOB STATE. 
* 
*         ENTRY  (QI) = ORDINAL OF INTERLOCKED EJT ENTRY. 
*                (QT) = QUEUE TYPE. 
*                (FN - FN+4) = *JSNE* WORD FROM EJT ENTRY.
*                (FS - FS+4) = *SCHE* WORD FROM EJT ENTRY.
*                (WB - WB+4) = *SCLE* WORD FROM EJT ENTRY.
*                (AF - AF+1) = *ALTER* FLAGS. 
* 
*         EXIT   EJT ENTRY AND SYSTEM SECTOR ALTERED. 
* 
*         USES   CM - CM+4. 
* 
*         CALLS  CFD, RIF, VSC, WSS.
* 
*         MACROS MONITOR. 
  
  
 APJ4     AOM    ATRD        SET ENTRY NOT SELECTED 
  
 APJ      SUBR               ENTRY/EXIT 
          LDD    AF 
          LPK    CLAF 
          NJN    APJ1        IF SERVICE CLASS TO BE CHANGED 
          LDD    AF+1 
          LPN    IDAF+FMAF
          ZJN    APJ3        IF ROUTING NOT TO BE CHANGED 
 APJ1     RJM    RIF         READ SYSTEM SECTOR 
          ZJN    APJ4        IF DISPOSITION CODES NOT MATCHING
          MJN    APJ4        IF SYSTEM SECTOR NOT READ
          LDD    AF 
          LPK    CLAF 
          ZJN    APJ2        IF SERVICE CLASS NOT TO BE ALTERED 
          LDN    0           READ INPUT FILE SERVICE CLASS MASK 
          RJM    VSC         VALIDATE SERVICE CLASS 
          LDD    AF+1 
          LPK    IDAF+FMAF
          ZJN    APJ3        IF ROUTING NOT TO BE CHANGED 
 APJ2     RJM    CFD         CHANGE FILE DESTINATION
          LDC    BFMS        SET BUFFER ADDRESS 
          RJM    WSS         WRITE SYSTEM SECTOR
          MJN    APJ4        IF MASS STORAGE ERROR ENCOUNTERED
 APJ3     LDD    AF+1 
          SHN    21-11
          PJP    APJX        IF NOT *DROP*
          LDM    AJEF        SET ERROR FLAG 
          ADC    4000        SET TO ENTER INTO EJT
          STD    CM+1 
          LDD    QI          SET EJT ORDINAL
          STD    CM+2 
          LDD    FN          SET JSN
          STD    CM+3 
          LDD    FN+1 
          STD    CM+4 
          MONITOR  CEFM      SET ERROR FLAG 
          LJM    APJX        RETURN 
 AQF      SPACE  4,20 
**        AQF - ALTER QUEUED FILE.
* 
*         ENTRY  (QI) = ORDINAL OF INTERLOCKED QFT ENTRY. 
*                (QT) = QUEUE TYPE. 
*                (FN - FN+4) = *JSNQ* WORD FROM QFT ENTRY.
*                (FS -FS+4) = *ENTQ* WORD FROM QFT ENTRY. 
*                (WB - WB+4) = *SCLQ* WORD FROM QFT ENTRY.
*                (AF - AF+1) = *ALTER* FLAGS. 
* 
*         EXIT   QFT ENTRY AND SYSTEM SECTOR ALTERED. 
*                (QI) CLEARED IF OUTPUT FILE EVICTED. 
*                JOB IS ROLLED OUT BY *PME* IF CALLED BY
*                NON-SUBSYSTEM JOB AND *0DQ* ENCOUNTERED AN 
*                INACCESSIBLE DEVICE. 
* 
*         USES   QI, CM - CM+4. 
* 
*         CALLS  PFQ, RIF, WSS, *0DQ*.
* 
*         MACROS ERROR, EXECUTE.
  
  
 AQF2     LDC    BFMS        SET BUFFER ADDRESS 
          RJM    WSS         WRITE SECTOR 
          MJN    AQF3        IF MASS STORAGE ERROR ENCOUNTERED
          LDD    AF+1 
          SHN    21-11
          PJN    AQFX        IF FILE NOT TO BE EVICTED
          LDN    0           SELECT RELEASE OF DISK SPACE 
          STM    OVL0-1 
          EXECUTE  0DQ,OVL0  DROP QUEUED FILE 
          PJN    AQF4        IF DEVICE WAS ACCESSIBLE 
 AQF3     ERROR  ER12        UNABLE TO PROCESS
  
 AQF4     LDN    0           CLEAR ORDINAL OF INTERLOCKED ENTRY 
          STD    QI 
  
 AQF      SUBR               ENTRY/EXIT 
          RJM    RIF         READ SYSTEM SECTOR 
          MJN    AQFX        IF SYSTEM SECTOR NOT READ
          RJM    PFQ         PROCESS *ALTER* FLAGS
          LDD    QT 
          LMK    INQI 
          NJP    AQF2        IF NOT INPUT FILE
          LDD    AF+1 
          SHN    21-11
          PJN    AQF1        IF FILE NOT TO BE EVICTED
          LDD    WB 
          LPN    77 
          LMN    IAOT 
          ZJN    AQF1        IF INTERACTIVE JOB INPUT FILE
          LDN    ODIE        SET JOB ABORT CODE 
          STM    JASS 
          LDN    ZERL 
          CRD    CM 
          AOD    CM+4        SET ENTRY TIME = 1 
          LDC    ENTQ*100+24D 
          STD    CM 
          RJM    UEI         UPDATE QFT ENTRY 
 AQF1     LDC    BFMS        SET BUFFER ADDRESS 
          RJM    WSS         WRITE SYSTEM SECTOR
          MJP    AQF3        IF MASS STORAGE ERROR ENCOUNTERED
          UJP    AQFX        RETURN 
          TITLE  SUBROUTINES. 
 APR      SPACE  4,15 
**        APR - ALTER PRIORITY OF OUTPUT FILE.
* 
*         ENTRY  *BFMS* CONTAINS SYSTEM SECTOR. 
*                (WB - WB+4) = *SCLQ* WORD OF QFT ENTRY.
* 
*         EXIT   PRIORITY ALTERED IN *ENTQ* WORD OF QFT ENTRY.
*                PRIORITY NOT ALTERED IF NO JOB CONTROL AREA DEFINED
*                FOR SERVICE CLASS OF FILE. 
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  CET, RJC, UEI. 
  
  
 APR      SUBR               ENTRY/EXIT 
          LDM    BQAC+17*5+0 SET SELECTED PRIORITY
          STD    T1 
          NJN    APR1        IF PRIORITY NOT ZERO 
          STD    CM+3 
          STD    CM+4 
          LJM    APR6        SET ENTRY TIME TO ZERO 
  
 APR1     LDD    WB          GET ALLOWED PRIORITY RANGE 
          SHN    -6 
          RJM    RJC         READ JOB CONTROL WORD
          ZJN    APRX        IF NO JOB CONTROL AREA DEFINED 
          ADK    OTQT 
          CRD    CM 
          LDD    T1 
          LMC    7777 
          ZJN    APR3        IF MAXIMUM PRIORITY SELECTED 
          LDD    CM+1 
          SBD    T1 
          MJN    APR2        IF PRIORITY ABOVE MINIMUM ALLOWED
          LDD    CM+1 
          UJN    APR4        SET PRIORITY TO MINIMUM ALLOWED
  
 APR2     LDD    CM+2 
          SBD    T1 
          PJN    APR5        IF PRIORITY BELOW MAXIMUM ALLOWED
 APR3     LDD    CM+2        SET PRIORITY TO MAXIMUM ALLOWED
 APR4     STD    T1 
 APR5     LDD    WB          SET SERVICE CLASS
          SCN    77 
          SHN    6
          LMK    OTQT 
          RJM    CET         CALCULATE ENTRY TIME 
          LDD    T2          SET NEW ENTRY TIME 
          STD    CM+4 
          LDD    T1 
          STD    CM+3 
          LDN    0
 APR6     STD    CM+1 
          STD    CM+2 
          LDC    ENTQ*100+30 SET WORD INDEX/FIELD SIZE
          STD    CM 
          RJM    UEI         UPDATE QFT ENTRY 
          LJM    APRX        RETURN 
 PFQ      SPACE  4,20 
**        PFQ - PROCESS *ALTER* FLAGS FOR QUEUED FILES. 
* 
*         ENTRY  *BFMS* CONTAINS FILE SYSTEM SECTOR.
*                (FN - FN+4) = *JSNQ* WORD OF QFT ENTRY.
*                (FS - FS+4) = *ENTQ* WORD OF QFT ENTRY.
*                (WB - WB+4) = *SCLQ* WORD OF QFT ENTRY.
*                (QT) = QUEUE TYPE. 
*                (SI) = SUBSYSTEM IDENTIFICATION NUMBER.
*                (AF - AF+1) = *ALTER* FLAGS. 
* 
*         EXIT   ALL *ALTER* FLAGS PROCESSED. 
* 
*         ERROR  TO ERROR PROCESSOR IF THE FOLLOWING OCCURS.
*                - INCORRECT DESTINATION LID. 
* 
*         USES   T2, CM - CM+4. 
* 
*         CALLS  APR, CFD, UEI, VID, VNA, VSC.
* 
*         MACROS ERROR, SFA.
  
  
 PFQ      SUBR               ENTRY/EXIT 
          LDD    AF+1 
          LPN    IDAF+FMAF
          ZJN    PFQ1        IF ROUTING NOT TO BE CHANGED 
          RJM    CFD         CHANGE FILE DESTINATION
 PFQ1     LDD    AF+1 
          LPN    DSAF 
          ZJN    PFQ2        IF DISPOSITION CODE NOT CHANGED
          LDM    DPCB        CHECK FOR CHANGE IN QUEUE TYPE 
          LPN    77 
          SHN    6
          LMD    FN+4 
          SHN    -11
          NJN    PFQ2        IF CHANGE IN QUEUE TYPE
          LDK    ZERL 
          CRD    CM 
          LDM    DPCB        GET DISPOSITION CODE 
          STD    CM+4 
          SHN    6           UPDATE QFT ENTRY IN SYSTEM SECTOR
          STD    T2 
          LDM    IOSS+4 
          LPN    77 
          LMD    T2 
          STM    IOSS+4 
          LDN    JSNQ*100+6  SET WORD INDEX/FIELD SIZE
          STD    CM 
          LDC    6*100       SET LOW ORDER BIT
          STD    CM+1 
          RJM    UEI         UPDATE QFT ENTRY 
 PFQ2     LDD    AF+1        CHECK EVICT FLAG 
          SHN    21-11
          PJN    PFQ3        IF NOT TO EVICT THE FILE 
          LDN    0           CLEAR LID ENTRY
          STM    BQAC+15*5+3
          STM    BQAC+15*5+4
          LJM    PFQ4        UPDATE QFT ENTRY 
  
 PFQ3     LDD    AF 
          LPN    DLAF 
          ZJP    PFQ5        IF DESTINATION LID NOT BEING ALTERED 
          LDM    BQAC+15*5+3 (A) = NEW DESTINATION LID
          LPN    77 
          SHN    14 
          LMM    BQAC+15*5+4
          ZJP    PFQ4        IF CLEARING DESTINATION LID
          RJM    VID
          NJN    PFQ3.1      IF VALID LID 
          ERROR  ER20        INCORRECT DESTINATION LID
  
*         IF SOURCE LID ZERO, SET SOURCE LID TO THIS MF-S PID.
  
 PFQ3.1   LDM    SLSS        CHECK SOURCE LID 
          LPN    77 
          ADM    SLSS+1 
          NJN    PFQ4        IF ALREADY SET 
          LDK    MMFL        GET MACHINE ID 
          CRD    CM 
          LDD    CM 
          STM    SLSS+1 
          LDN    1RM         MERGE *M* WITH MACHINE ID
          STM    SLSS 
  
*         UPDATE DESTINATION LID. 
  
 PFQ4     LDK    ZERL 
          CRD    CM 
          LDC    INSQ*100+18D  SET WORD INDEX/FIELD SIZE
          STD    CM 
          LDC    30D*100     SET LOW ORDER BIT
          STD    CM+1 
          LDM    BQAC+15*5+3 SET NEW DESTINATION LID
          LPN    77 
          STD    CM+3 
          LDM    BQAC+15*5+4
          STD    CM+4 
          RJM    UEI         UPDATE QFT ENTRY 
 PFQ5     LDD    QT 
          LMK    INQI 
          NJN    PFQ7        IF NOT INPUT QUEUE TYPE
          LDD    AF          ALTER SERVICE CLASS
          LPK    CLAF 
          ZJN    PFQ6        IF SERVICE CLASS NOT CHANGED 
          LDN    0           READ INPUT FILE SERVICE CLASS MASK 
          RJM    VSC         VALIDATE SERVICE CLASS 
 PFQ6     LJM    PFQ12       UPDATE QFT ENTRY IN SYSTEM SECTOR
  
*         ALTER OUTPUT FILE CHARACTERISTICS.
  
 PFQ7     LDD    SI 
          ZJN    PFQ8        IF USER CALL 
          LDD    AF+1 
          LPN    PRAF 
          ZJN    PFQ8        IF PRIORITY NOT TO BE ALTERED
          RJM    APR         ALTER PRIORITY 
 PFQ8     LDD    AF+1        ALTER FORMS CODE 
          LPN    FCAF 
          ZJN    PFQ9        IF FORMS CODE NOT TO BE ALTERED
          LDK    ZERL 
          CRD    CM 
          LDM    FMCB        GET FORMS CODE 
          STD    CM+4 
          LDC    SCLQ*100+14 SET WORD INDEX/FIELD SIZE
          STD    CM 
          RJM    UEI         UPDATE QFT ENTRY 
 PFQ9     LDD    AF+1        ALTER SPACING CODE 
          LPN    SCAF 
          ZJN    PFQ10       IF SPACING CODE NOT CHANGED
          LDM    SCSS        CLEAR SPACING CODE PRESERVING PRINT IMAGE
          SCN    77 
          STM    SCSS 
          LDM    BQAC+16*5+4
          SHN    -6 
          RAM    SCSS        MERGE NEW SPACING CODE 
 PFQ10    LDD    AF+1        ALTER EXTERNAL CHARACTERISTICS 
          SHN    21-6 
          PJN    PFQ11       IF EXTERNAL CHARACTERISTICS NOT CHANGED
          LDK    ZERL 
          CRD    CM 
          LDM    EXCB        GET EXTERNAL CHARACTERISTICS 
          STD    CM+4 
          LDC    17*100      SET LOW ORDER BIT
          STD    CM+1 
          LDC    SCLQ*100+3  SET WORD INDEX/FIELD SIZE
          STD    CM 
          RJM    UEI         UPDATE QFT ENTRY 
 PFQ11    LDD    AF+1        ALTER REPEAT COUNT 
          SHN    21-7 
          PJN    PFQ12       IF REPEAT COUNT NOT CHANGED
          LDN    ZERL 
          CRD    CM 
          LDM    BQAC+17*5+4
          LPN    77 
          STM    RCSS 
          STD    CM+4 
          LDC    INSQ*100+6 
          STD    CM 
          RJM    UEI         UPDATE QFT ENTRY 
 PFQ12    LDD    AF+1 
          SHN    21-10
          PJN    PFQ13       IF NOT CHANGING ACCESS LEVEL 
          RJM    VNA         VALIDATE NEW ACCESS LEVEL
 PFQ13    SFA    QFT,QI      UPDATE QFT ENTRY IN SYSTEM SECTOR
          ADN    ENTQ 
          CRM    IOSS+ENTQ*5,TR 
          ERRNZ  INSQ-ENTQ-1 ADJUST IF WORD POSITIONS CHANGE
          ERRNZ  SCLQ-INSQ-1 ADJUST IF WORD POSITIONS CHANGE
          LJM    PFQX        RETURN 
 VNA      SPACE  4,20 
**        VNA - VALIDATE NEW ACCESS LEVEL OF OUTPUT FILE. 
* 
*         ENTRY  (QI) = QFT ORDINAL.
*                (FS - FS+4) = *ENTQ* WORD OF QFT ENTRY.
*                (WB - WB+4) = *SCLQ* WORD OF QFT ENTRY.
* 
*         EXIT   QFT ENTRY UPDATED WITH NEW ACCESS LEVEL IF NEW 
*                ACCESS LEVEL IS VALID. 
* 
*         ERROR  TO ERROR PROCESSOR IF CHANGING THE ACCESS LEVEL
*                IS NOT ALLOWED FOR THIS QUEUE FILE.
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  RJC, UEI.
* 
*         MACROS ERROR, MONITOR.
  
  
 VNA      SUBR               ENTRY/EXIT 
          LDC    SBNI        CLEAR ACCESS LEVEL LIMITS
          STM    VNAB 
          STM    VNAC 
          LDD    WB          GET ORIGIN TYPE
          LPN    77 
          STM    VNAA 
  
*         VALIDATE NEW ACCESS LEVEL FOR THIS EQUIPMENT. 
  
          LDK    ZERL        CLEAR MONITOR REQUEST WORD 
          CRD    CM 
          LDN    VAES        VALIDATE ACCESS LEVEL FOR EQUIPMENT
          STD    CM+1 
          LDD    FS          EST ORDINAL
          STD    CM+2 
          LDM    BQAC+17*5+3 NEW ACCESS LEVEL 
          SHN    -6 
          LPN    7
          STD    CM+4 
          STD    T1 
          MONITOR  VSAM 
          LDD    CM+1 
          ZJN    VNA2        IF NEW ACCESS LEVEL VALID FOR THIS DEVICE
 VNA1     ERROR  ER21        INCORRECT ACCESS LEVEL 
  
*         VALIDATE NEW ACCESS LEVEL FOR JOB.
  
 VNA2     LDK    ZERL        CLEAR MONITOR REQUEST WORD 
          CRD    CM 
          LDD    T1          NEW ACCESS LEVEL 
          STD    CM+1 
          LDD    MA 
          CWD    CM 
          LDN    VAJS        VALIDATE ACCESS LEVEL FOR JOB
          STD    CM+1 
          LDN    1           VALIDATE ACCESS LEVEL ONLY 
          STD    CM+4 
          MONITOR  VSAM 
          LDD    CM+1 
          NJN    VNA1        IF NEW ACCESS LEVEL NOT VALID FOR JOB
*         LDN    0
          RJM    RJC         READ JOB CONTROL BLOCK 
          ADC    **          ADD ORIGIN TYPE
 VNAA     EQU    *-1
          CRD    CM 
          LDD    CM+1        GET ORIGIN TYPE ACCESS LEVEL LIMITS
          LPN    77 
          SHN    21-2 
          RAM    VNAB        SAVE LOWER ACCESS LEVEL LIMITS 
          SHN    2-21 
          ADN    1
          RAM    VNAC        SAVE UPPER ACCESS LEVEL LIMITS 
          LDD    T1 
          SBN    0
 VNAB     EQU    *-1
          MJN    VNA3        IF NEW ACCESS LEVEL NOT WITHIN RANGE 
          LDD    T1 
          SBN    0
 VNAC     EQU    *-1
          MJN    VNA4        IF NEW ACCESS LEVEL WITHIN RANGE 
 VNA3     LJM    VNA1        * QAC INCORRECT REQUEST.*
  
*         SET NEW ACCESS LEVEL IN QFT.
  
 VNA4     LDK    ZERL 
          CRD    CM 
          LDK    INSQ*100+3  SET WORD INDEX/FIELD SIZE
          STD    CM 
          LDC    15D*100     SET LOW ORDER BIT
          STD    CM+1 
          LDD    T1          SET NEW ACCESS LEVEL 
          STD    CM+4 
          RJM    UEI         UPDATE QFT ENTRY 
          LJM    VNAX        RETURN 
          SPACE  4,10 
**        COMMON DECKS. 
  
  
 CET$     EQU    1           CALCULATE ENTRY TIME 
*CALL     COMPCPE 
*CALL     COMPVID 
          SPACE  4,10 
          OVERFLOW  OVLP,EPFW 
  
  
          USE    OVERFLOW 
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          OVERLAY  (*ALTER* JOBS AT CONTROL POINTS.),/3QT/OVLP
          QUAL   3QT
 ACP      SPACE  4,15 
**        ACP - ALTER CONTROL POINT.
* 
*         ENTRY  (QI) = ORDINAL OF INTERLOCKED EJT ENTRY. 
*                (AF - AF+1) = *ALTER* FLAGS. 
*                (FN - FN+4) = *JSNE* WORD OF EJT ENTRY.
*                (FS - FS+4) = *SCHE* WORD OF EJT ENTRY.
*                (WB - WB+4) = *SCLE* OF EJT ENTRY. 
* 
*         EXIT   EJT ENTRY AND INPUT FILE SYSTEM SECTOR ALTERED.
* 
*         USES   AF, CM+1 - CM+4, FS - FS+4.
* 
*         CALLS  CCP, PFE, RIF, WSS.
* 
*         MACROS MONITOR, NFA.
  
  
 ACP5     AOM    ATRD        SET ENTRY NOT SELECTED 
 ACP6     LDN    0           CLEAR ALTERNATE CP/PCP ASSIGNMENT
          RJM    CCP
  
 ACP      SUBR               ENTRY/EXIT 
          LDN    0           INITIALIZE ABORT AND MESSAGE FLAGS 
          STM    ACPA 
          STM    ACPB 
          LDD    AF+1 
          SHN    21-11
          PJN    ACP2        IF NOT CONTROL POINT ABORT REQUEST 
          LDD    WB          GET SERVICE CLASS
          SHN    -6 
          LMK    SSSC 
          ZJN    ACP1        IF SUBSYSTEM 
          LMK    NSSC&SSSC
          ZJN    ACP1        IF NETWORK SERVICE CLASS 
          LMK    CTSC&NSSC
          ZJN    ACP1        IF COMMUNICATIONS TASK SERVICE CLASS 
          LDD    FN+4 
          SHN    -7 
          LPN    17 
          LMN    OLCS 
          STM    ATRA 
          NJN    ACP3        IF NOT ON-LINE JOB 
 ACP1     LDD    AF          CLEAR DAYFILE MESSAGE ON ABORT 
          LPN    IMAF 
          STM    ACPA        SAVE FLAG TO RESTORE FOR NEXT JOB
          LMD    AF 
          STD    AF 
 ACP2     AOM    ACPB        SET NO ABORT FLAG
 ACP3     LDM    CQJS 
          LMK    PCJS 
          NJN    ACP3.1      IF NOT PCP JOB 
          LDD    FS+1        SET PCP NUMBER 
          UJN    ACP3.2      CONTINUE 
  
 ACP3.1   LDD    FS+3        SET CP NUMBER
 ACP3.2   RJM    CCP         SET ALTERNATE CP/PCP ASSIGNMENT
          NFA    FNTN        GET INPUT FILE FST ENTRY 
          ADK    FSTL 
          CRD    FS          SET EQ/FIRST TRACK OF INPUT SYSTEM SECTOR
          RJM    RIF         READ SYSTEM SECTOR 
          ZJP    ACP5        IF DISPOSITION CODES NOT MATCHING
 ACP3.3   MJP    ACP5        IF SYSTEM SECTOR ERROR 
          RJM    PFE         PROCESS *ALTER* FLAGS
          LDC    BFMS        SET BUFFER ADDRESS 
          RJM    WSS         WRITE SYSTEM SECTOR
          MJN    ACP3.3      IF MASS STORAGE ERROR
          LDC    0           RESTORE DAYFILE MESSAGE FLAG 
*         LDC    IMAF        (DAYFILE MESSAGE FLAG) 
 ACPA     EQU    *-1
          RAD    AF 
          LDC    0           CHECK ABORT CONTROL POINT FLAG 
 ACPB     EQU    *-1
          NJN    ACP4        IF NO ABORT
          LDM    AJEF 
          LMC    4000        SELECT ALTERNATE EJT 
          STD    CM+1 
          LDD    QI          STORE EJT ORDINAL IN REQUEST 
          STD    CM+2 
          LDD    FN          STORE JSN IN REQUEST 
          STD    CM+3 
          LDD    FN+1 
          STD    CM+4 
          MONITOR  CEFM      SET ERROR FLAG 
 ACP4     UJP    ACP6        RETURN TO ORIGINAL CONTROL POINT 
          TITLE  SUBROUTINES. 
 CSW      SPACE  4,10 
**        CSW - CHANGE SENSE SWITCHES.
* 
*         ENTRY  (AF - AF+1) = *ALTER* FLAGS. 
*                (WB - WB+4) = WORD *SNSW* OF CONTROL POINT AREA. 
* 
*         EXIT   (WB+4) UPDATED AS NECESSARY. 
* 
*         USES   T1, WB+4.
  
  
 CSW      SUBR               ENTRY/EXIT 
          LDN    0           PRESET TO CLEAR SENSE SWITCHES 
          STD    T1 
          LDD    AF+1 
          SHN    21-13
          MJN    CSW1        IF SENSE SWITCHES TO BE CLEARED
          SHN    21-12-21+13
          PJN    CSWX        IF SENSE SWITCHES NOT TO BE SET
          LDM    BQAC+14*5+0 SET SENSE SWITCHES 
          SCN    77 
          STD    T1 
 CSW1     LDM    BQAC+14*5+0 FORM SWITCH MASK 
          SCN    77 
          LMC    -0 
          STM    CSWA 
          LDD    WB+4        SET/CLEAR SENSE SWITCHES 
          LPC    *
 CSWA     EQU    *-1         (SENSE SWITCH MASK)
          LMD    T1 
          STD    WB+4 
          UJN    CSWX        RETURN 
 PDM      SPACE  4,10 
**        PDM - PROCESS DAYFILE MESSAGE.
* 
*         ENTRY  (A) = PROCESSOR INDEX. 
*                (MSGB) = MESSAGE TO BE ISSUED. 
* 
*         EXIT   MESSAGE ISSUED.  MESSAGE TRUNCATED IF TOO LONG.
* 
*         USES   T1, CM - CM+4. 
* 
*         CALLS  DFM. 
  
  
 PDM      SUBR               ENTRY/EXIT 
          STD    T1          SET PROCESSING ADDRESS 
          LDM    CQJS 
          LMK    PCJS 
          ZJN    PDMX        IF PCP JOB 
          LDM    PDMB,T1
          STD    T1 
          LJM    0,T1        ENTER MESSAGE PROCESSOR
  
*         PROCESS MESSAGE FOR ABORTED JOB.
  
 PDM1     LDN    AJLC        SET END OF MESSAGE 
          STD    T1 
          LDN    0
 PDM2     STM    MSGB,T1
          LDC    MSGB 
          RJM    DFM         ISSUE DAYFILE MESSAGE
 PDM3     UJN    PDMX        RETURN 
  
*         PROCESS *COMMENT* COMMAND.
  
 PDM4     LDK    DYLC        SET END OF MESSAGE 
          STD    T1 
          LDM    MSGB-1,T1
          SCN    77 
          STM    MSGB-1,T1
          LDN    0
          UJN    PDM2        ISSUE MESSAGE
  
*         PROCESS *CFO* COMMAND.
  
 PDM5     LDD    FL 
          ZJN    PDM3        IF NO FIELD LENGTH 
          LDD    RA 
          SHN    6
          CRD    CM 
          LDD    CM+3 
          LPN    4
          ZJN    PDM3        IF *CFO* BIT NOT SET 
          LDK    CFLC        SET END OF MESSAGE 
          STD    T1 
          LDN    0
          STM    MSGB,T1
          STM    MSGB+1,T1
          LDM    DMLB        GET DAYFILE MESSAGE LENGTH 
          STD    T1 
          LDD    RA 
          SHN    6
          ADN    70 
          CWM    MSGB,T1
          LDC    CFOC 
          RJM    DFM         ISSUE MESSAGE TO DAYFILE 
          LDD    RA          CLEAR *PAUSE* AND *CFO* BITS 
          SHN    6
          CRD    CM 
          LDD    CM+3 
          SCN    5
          STD    CM+3 
          LDD    RA 
          SHN    6
          CWD    CM 
          LJM    PDMX        RETURN 
  
  
 PDMB     BSS    0           TABLE OF MESSAGE PROCESSOR ADDRESSES 
          LOC    0
          CON    PDM1        ABORT MESSAGE
          CON    PDM4        *COMMENT* COMMAND
          CON    PDM5        *CFO* COMMAND
          LOC    *O 
 PFE      SPACE  4,15 
**        PFE - PROCESS *ALTER* FLAGS FOR EXECUTING JOB.
* 
*         ENTRY  *BFMS* CONTAINS INPUT FILE SYSTEM SECTOR.
*                (FN - FN+4) = *JSNE* WORD OF EJT ENTRY.
*                (WB - WB+4) = *SCLE* WORD OF EJT ENTRY.
*                (AF - AF+1) = *ALTER* FLAGS. 
*                (OT) = ORIGIN TYPE OF EXECUTING JOB. 
* 
*         EXIT   PROCESSING FOR *ALTER* FLAGS COMPLETED.
* 
*         USES   CM - CM+4, T1 - T5, WB - WB+4. 
* 
*         CALLS  CFD, CSC, CSW, DFM, PDM, VSC.
  
  
 PFE      SUBR               ENTRY/EXIT 
          LDD    WB          SAVE BYTE 0 OF *SCLE* WORD OF EJT
          STM    PFEA 
          LDD    AF+1 
          LPN    IDAF+FMAF
          ZJN    PFE1        IF ROUTING NOT TO BE CHANGED 
          RJM    CFD         CHANGE FILE DESTINATION
 PFE1     LDD    CP          GET *SNSW* WORD
          ADK    SNSW 
          CRD    WB 
          ADK    SEPW-SNSW   GET *SEPW* WORD
          CRD    CM 
          RJM    CSW         CHANGE SENSE SWITCHES
          LDD    AF 
          LPN    PAAF+GOAF
          ZJN    PFE4        IF NEITHER *PAUSE* NOR *GO*
          SHN    0-4
          STD    T1          SET/CLEAR *PAUSE* FLAG 
          LDD    OT 
          LMK    SYOT 
          ZJN    PFE2        IF SYSTEM ORIGIN JOB 
          LDD    CM 
          SHN    21-2 
          PJN    PFE3        IF NOT *SSJ=* JOB
 PFE2     LDD    WB+3        SET/CLEAR *PAUSE* FLAG IN *SNSW* 
          SCN    3
          LMD    T1 
          STD    WB+3 
 PFE3     LDM    PFEB,T1     ISSUE *PAUSE*/*GO* MESSAGE 
          RJM    DFM
*         LDN    0
          STD    CM 
          LDD    CP          CLEAR MESSAGE AT *MS2W*
          ADN    MS2W 
          CWD    CM 
 PFE4     LDD    CP          RESET *SNSW* WORD
          ADK    SNSW 
          CWD    WB 
          LDD    RA 
          SHN    6
          CRD    T1 
          LDD    WB+4        RESET SENSE SWITCHES IN RA+0 
          LMD    T5 
          SCN    77 
          LMD    T5 
          STD    T5 
          LDD    WB+3        RESET *PAUSE* FLAG IN RA+0 
          LMD    T4 
          LPN    3
          LMD    T4 
          STD    T4 
          LDD    RA 
          SHN    6
          CWD    T1 
          LDD    AF 
          SHN    -1 
          LPN    7
          ZJN    PFE5        IF NO MESSAGES TO ISSUE
          LPN    3           GENERATE PROCESSOR INDEX 
          RJM    PDM         PROCESS DAYFILE MESSAGE
 PFE5     LDD    AF 
          LPK    CLAF 
          ZJN    PFE6        IF NOT ALTER SERVICE CLASS 
          LDC    **          SERVICE CLASS
 PFEA     EQU    *-1
          STD    WB 
          LDN    1           SET READ NFL FOR SERVICE CLASS MASK
          RJM    VSC         VALIDATE SERVICE CLASS 
          LDD    T2          PICK UP NEW SERVICE CLASS
          RJM    CSC         CHANGE SERVICE CLASS 
 PFE6     LJM    PFEX        RETURN 
  
 PFEB     BSS    0           *PAUSE*/*GO* MESSAGE TABLE 
          CON    =C* GO.* 
          CON    =C* PAUSE.*
          SPACE  4,10 
**        COMMON DECKS. 
  
  
 CSC$     EQU    1           DO NOT VALIDATE SERVICE CLASS
*CALL     COMPCSC 
          SPACE  4,10 
          OVERFLOW  OVLP,EPFW 
  
  
          USE    OVERFLOW 
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          OVERLAY  (*ALTER* ROLLED-OUT JOBS.),/3QT/OVLP 
          QUAL   3QT
 ARF      SPACE  4,10 
**        ARF - ALTER ROLLOUT FILE. 
* 
*         ENTRY  (FN - FN+4) = *JSNE* WORD OF EJT ENTRY.
*                (FS - FS+4) = *SCHE* WORD OF EJT ENTRY.
*                (WB - WB+4) = *SCLE* WORD OF EJT ENTRY.
* 
*         USES   T5, T6, FS - FS+4. 
* 
*         CALLS  CFD, GAF, PFR, RIF, RSS, SMS, WSS. 
* 
*         MACROS ERROR, SETMS.
  
  
 ARF4     AOM    ATRD        SET ENTRY NOT SELECTED 
  
 ARF      SUBR               ENTRY/EXIT 
          LDC    LDNI        RESET NO ALTER OF SERVICE CLASS
          STM    ARFD 
          RJM    RIF         READ JOB INPUT FILE SYSTEM SECTOR
          ZJN    ARF4        IF DISPOSITION CODES NOT MATCHING
          MJN    ARF4        IF MASS STORAGE ERROR
          LDD    AF+1 
          LPN    IDAF+FMAF
          ZJN    ARF1        IF ROUTING NOT TO BE CHANGED 
          RJM    CFD         CHANGE FILE DESTINATION
 ARF1     SFA    EJT,QI      RESTORE *SCHE* WORD OF EJT ENTRY 
          ADK    SCHE 
          CRD    FS 
          RJM    PFR         PROCESS *ALTER* FLAGS FOR ROLLOUT FILE 
          ZJN    ARFX        IF NO FLAGS FOR *1RI*
          LDD    FS 
          STD    T5 
          LDD    FS+1 
          STD    T6 
          LDN    0
          STD    T7 
          SETMS  IO 
          LDN    0
          RJM    RSS         READ ROLLOUT FILE SYSTEM SECTOR
          MJP    ARF3.1      IF MASS STORAGE ERROR
          NJP    ARF4        IF ERROR IN SYSTEM SECTOR
          RJM    GAF         GENERATE *ALTER* FLAGS MASK
          STM    ARFA 
          LDM    QASS        CLEAR NEW FLAGS ALREADY SET
          LPC    ** 
 ARFA     EQU    *-1         (COMPLEMENT OF NEW FLAGS)
          LMD    WB+1 
          STM    QASS 
          LDD    WB+1 
          LPN    3
          ZJN    ARF2        IF NOT *ONSW*/*OFFSW*
          LDM    BQAC+14*5+0 SAVE SENSE SWITCH MASK FOR *1RI* 
          SHN    -6 
          STM    QASS+2 
 ARF2     LDD    WB+1 
          SHN    -3 
          LPN    7
          ZJN    ARF3        IF NO MESSAGE PRESENT
          LPN    3           GENERATE PROCESSOR INDEX 
          RJM    SMS         STORE MESSAGE IN SYSTEM SECTOR 
 ARF3     LDN    **          UPDATE SERVICE CLASS 
 ARFD     EQU    *-1
          STM    CSSS 
          LDC    BFMS 
          RJM    WSS         WRITE ROLLOUT FILE SYSTEM SECTOR 
          PJP    ARFX        IF NO MASS STORAGE ERROR 
 ARF3.1   ERROR  ER12        UNABLE TO PROCESS
          TITLE  SUBROUTINES. 
 GAF      SPACE  4,10 
**        GAF - GENERATE *ALTER* FLAGS MASK.
* 
*         ENTRY  (WB+1) = *ALTER* FLAGS FOR *1RI*.
* 
*         EXIT   (A) = MASK.
* 
*         USES   T1, T2, T3.
  
  
 GAF2     LCN    0
          LMD    T3 
  
 GAF      SUBR               ENTRY/EXIT 
          LCN    0
          STD    T1 
          LDN    0
          STD    T3 
          LDD    WB+1 
          STD    T2 
 GAF1     AOD    T1          INCREMENT TABLE INDEX
          LDD    T2 
          ZJN    GAF2        IF ALL FLAGS PROCESSED 
          SHN    21-0 
          STD    T2 
          PJN    GAF1        IF FLAG NOT SET
          LDM    GAFA,T1     SET MASK BITS FOR THIS FLAG
          RAD    T3 
          UJN    GAF1        CONTINUE 
  
 GAFA     BSS    0           MASK TABLE 
          LOC    0
          CON    0003        *ONSW* 
          CON    0003        *OFFSW*
          CON    0104        *GO* 
          CON    0070        *COMMENT*
          CON    0070        *CFO*
          CON    0070        ERROR MESSAGE
          CON    0104        *PAUSE*
          LOC    *O 
 PFR      SPACE  4,20 
**        PFR - PROCESS *ALTER* FLAGS FOR ROLLOUT FILE. 
* 
*         ENTRY  (QI) = EJT ORDINAL OF JOB BEING ALTERED. 
*                (FN - FN+4) = *JSNE* WORD OF EJT ENTRY.
*                (CQJS) = JOB STATUS. 
*                (AF - AF+1) = *ALTER* FLAGS. 
*                (FS - FS+4) = *SCHE* WORD FROM EJT ENTRY.
*                (WB - WB+4) = *SCLE* WORD FROM EJT ENTRY.
* 
*         EXIT   (A) .NE. 0 IF SYSTEM SECTOR UPDATE IS REQUIRED.
*                (WB+1) = *1RI* FLAGS.
* 
*         USES   WB+1, CM - CM+4. 
* 
*         CALLS  VSC. 
* 
*         MACROS ERROR, MONITOR.
  
  
 PFR      SUBR               ENTRY/EXIT 
          LDD    AF 
          SHN    14 
          LMD    AF+1 
          SHN    21-11
          LPC    400177      MASK *1RI* FLAGS 
          STD    WB+1 
          PJP    PFR2        IF ABORT FLAG NOT SET
          LDD    WB 
          SHN    -6 
          LMK    NSSC 
          ZJN    PFR1        IF NETWORK SERVICE CLASS 
          LMK    CTSC&NSSC
          ZJN    PFR1        IF COMMUNICATIONS TASK SERVICE CLASS 
          LDD    FN+4 
          SHN    -7 
          LPN    17 
          LMN    OLCS 
          STM    ATRA 
          ZJN    PFR1        IF ON-LINE JOB 
          LDM    AJEF        SET ERROR FLAG 
          ADC    4000        SET TO ENTER INTO EJT
          STD    CM+1 
          LDD    QI          SET EJT ORDINAL
          STD    CM+2 
          LDD    FN          SET JSN
          STD    CM+3 
          LDD    FN+1 
          STD    CM+4 
          MONITOR  CEFM 
          UJN    PFR2        CONTINUE 
  
 PFR1     LDD    WB+1        CLEAR DAYFILE MESSAGE ON ABORT 
          SCN    40 
          STD    WB+1 
 PFR2     LDD    AF 
          LPK    CLAF 
          NJN    PFR3        IF ALTER SERVICE CLASS 
          LDD    WB+1 
          UJN    PFR5        RETURN 
  
 PFR3     LDD    FS+4        CHECK FOR EVENT
          LMK    SCFE 
          NJN    PFR4        IF NOT WAITING ON SERVICE CLASS
          ERROR  ER27        JOB ALREADY WAITING ON SERVICE CLASS 
  
 PFR4     LDN    0           READ INPUT FILE SERVICE CLASS MASK 
          RJM    VSC         VALIDATE SERVICE CLASS 
          LDD    T2          PICK UP NEW SERVICE CLASS
          ADC    LDNI 
          STM    ARFD 
 PFR5     UJP    PFRX        RETURN, (A) = 0 IF NO FLAGS FOR *1RI*
 SMS      SPACE  4,10 
**        SMS - STORE MESSAGE IN ROLLOUT FILE SYSTEM SECTOR.
* 
*         ENTRY  (A) = PROCESSOR INDEX. 
*                (MSGB) = MESSAGE.
* 
*         USES   T1.
  
  
 SMS      SUBR               ENTRY/EXIT 
          STD    T1 
          LDM    SMSB,T1     GET PROCESSOR ADDRESS
          STD    T1 
          LJM    0,T1        ENTER PROCESSOR
  
*         PROCESS MESSAGE FOR ABORTED JOB.
  
 SMS1     LDN    AJLC        SET END OF MESSAGE 
          STD    T1 
          LDN    0
 SMS2     STM    MSGB,T1
  
*         MOVE MESSAGE TO SYSTEM SECTOR.
  
          LDN    MAXWC*5     SET MESSAGE LENGTH 
          STD    T1 
 SMS3     SOD    T1          DECREMENT INDEX
          MJN    SMSX        IF MOVE COMPLETE 
          LDM    MSGB,T1
*         LDM    CFOC,T1     (*CFO* COMMAND)
 SMSA     EQU    *-1
          STM    QASS+1*5,T1
          UJN    SMS3        CONTINUE 
  
*         PROCESS *COMMENT* COMMAND.
  
 SMS4     LDN    DYLC        SET END OF MESSAGE 
          STD    T1 
          LDM    MSGB-1,T1
          SCN    77 
          STM    MSGB-1,T1
          LDN    0
          UJN    SMS2        MOVE MESSAGE TO SYSTEM SECTOR
  
*         PROCESS *CFO* COMMAND.
  
 SMS5     LDN    CFLC        SET END OF MESSAGE 
          STD    T1 
          LDC    CFOC        SET START OF MESSAGE 
          STM    SMSA 
          LDN    0
          STM    MSGB+1,T1
          UJN    SMS2        MOVE MESSAGE TO SYSTEM SECTOR
  
 SMSB     BSS    0           TABLE OF PROCESSOR ADDRESSES 
          LOC    0
          CON    SMS1        ABORTED JOB
          CON    SMS4        *COMMENT* COMMAND
          CON    SMS5        *CFO* COMMAND
          LOC    *O 
          SPACE  4,10 
          OVERFLOW  OVLP,EPFW 
  
  
          USE    OVERFLOW 
          ERRNG  OVL0-5-*    OVERFLOW INTO OVERLAY LOAD AREA
          OVERLAY  (*QAC* PRESET.),OVL
          SPACE  4
**        PRS - PRESET ROUTINE. 
* 
*         ENTRY  (IR+3 - IR+4) = FWA OF PARAMETER BLOCK TO PROCESS. 
* 
*         EXIT   (QACB) = PROCESSOR ADDRESS.
*                (QT) = FIRST QUEUE TYPE TO BE PROCESSED. 
*                (.SQT) = OTHER QUEUE TYPE(S) LEFT TO PROCESS.
*                (NC) = NUMBER OF CONTROL POINTS + 1. 
*                (OC) = ORIGIN TYPE.
*                (OC) = -0, IF ALL ORIGIN TYPES SELECTED. 
*                (SI) = SUBSYSTEM INDEX.
*                (QACD) = PARAMETER BLOCK LENGTH. 
*                (CN) = (CN+2) = STARTING ORDINAL FOR SEARCH. 
*                (CN+1) = MAXIMUM ORDINAL+1 FOR SEARCH. 
*                (CN+3) = 0, IF OVERLAY ALREADY LOADED. 
*                (A) .NE. 0, IF REMOTE BATCH *FM,UN* SELECTION
*                            FLAG SET.
*                (BA+1) = RETURN BUFFER ADDRESS FOR *CDM* CALL. 
*                (BA) = REMOTE BATCH *FM,UN* FOR *CDM* CALL.
*                MEMORY WORDS IN RESIDENT ROUTINES RESET. 
* 
*         USES   BA, BA+1, IR+3, NC, OC, QI, RI, RI+1, SF, SI, T1,
*                T2, T3, T4, CM - CM+4, CN - CN+4, FN - FN+4. 
* 
*         CALLS  CDM, DUC, GFA, VCA, VDC, VQO, VQT. 
* 
*         MACROS ERROR, SFA.
  
  
 PRS      SUBR               ENTRY/EXIT 
  
*         RESET DATA LOCATIONS FOR POSSIBLE REENTRY.
  
          LCN    0
          STD    QT          PRESET ALL QUEUE TYPES SELECTED
          STD    OC          PRESET ALL ORIGIN TYPES SELECTED 
          LDN    0
          STD    QI          FILE TABLE ORDINAL 
          STM    .SDA        SELECTION *FO-UI*
          STM    .SDA+1 
          STM    .SLD+1      SOURCE LID 
          LDC    LMCI 
          STM    .SLD 
          LDD    HN 
          STM    .EXC        EXTERNAL CHARACTERISTICS 
          STM    .INC        INTERNAL CHARACTERISTICS 
          LDC    LDNI 
          STM    .ALV        ACCESS LEVEL FLAG
          STM    .ANY        *EC=ANY* ALLOWED FLAG
          STM    .CDC        CHECK DISPOSITION CODE 
          STM    .CFC        ALLOW FORMS CODE CHECK 
          STM    .DCI        DISPOSITION CODE FLAG
          STM    .IPR        PRIORITY = 0 ALLOWED 
          STM    .JSN        JSN SELECTION
          STM    .HEX        HIERARACHIAL EXTERNAL CHARACTERISTICS
          STM    .SLI        SOURCE LID FLAG
          STM    .SRJ        SELECT ONLY RECOVERABLE JOBS 
          STM    .UAC        UPPER ACCESS LEVEL LIMIT 
          STM    .FSI        FILE SIZE INDEX FLAG 
          STM    .UFI        UPPER FILE SIZE INDEX
          ADN    1
          STM    .DLP        ALLOW *PR*/*LP* SELECTION
          LDC    LMNI 
          STM    .DCD 
          STM    .DCT        DISPOSITION CODE 
          LDC    SBNI 
          STM    .LAC        LOWER ACCESS LEVEL LIMIT 
          STM    .VEC        BEST HIERARCHIAL EC SELECTED 
          STM    .VEI        PREVIOUS BEST HIERARCHICAL EC SELECTED 
          STM    .LFI        LOWER FILE SIZE INDEX
  
*         CHECK LOCATION OF PARAMETER BLOCK.
  
          LDD    IR+3        CHECK PARAMETER ADDRESS
          LPN    37 
          STD    IR+3 
          SHN    14 
          LMD    IR+4 
          RJM    VCA         VALIDATE CENTRAL ADDRESS 
          RJM    GFA         GET FIRST WORD OF PARAMETER BLOCK
          CRD    FN 
          CRM    BQAC,ON
          LDD    FN+3        CLEAR ERROR CODE 
          SCN    77 
          STM    BQAC+3 
          LDD    FN+4        VALIDATE FUNCTION CODE 
          LPC    1777 
          STM    BQAC+4 
          SCN    1
          STD    RI 
          NJN    PRS1        IF VALID FUNCTION CODE 
 PRS0     ERROR  ER13        * QAC INCORRECT REQUEST.*
  
 PRS1     SBN    TFCNL
          PJN    PRS0        IF INCORRECT FUNCTION CODE 
          LDM    TFCN,RI     SET PARAMETER BLOCK LENGTH 
          SHN    -6 
          STD    T3 
          SBN    1
          STD    T4 
          LDD    T1          GET PARAMETER BLOCK ADDRESS
          SHN    14 
          LMD    T2 
          ADD    T3 
          RJM    VCA         VALIDATE CENTRAL ADDRESS 
  
*         READ INFORMATION FROM PARAMETER BLOCK.
  
 PRS2     RJM    GFA         GET PARAMETER BLOCK ADDRESS
          ADN    1
          CRM    BQAC+1*5,T4
          AOD    T4          PRESET PARAMETER BLOCK LENGTH
          STM    QACD 
          LDM    BQAC+1*5+2  CHECK PARAMETER BLOCK LENGTH 
          LPN    1
          SHN    14 
          LMM    BQAC+1*5+3 
          SHN    -6 
          LMK    EGLB 
          NJN    PRS2.1      IF NOT *EXTENDED GET* CALL 
          LDK    EQAB        SET REQUIRED PARAMETER BLOCK LENGTH
          STD    T4 
          LDN    GTLB 
          STM    QACD 
          UJN    PRS2.2      CHANGE PARAMETER BLOCK LENGTH
  
 PRS2.1   LMK    EGLB 
          ADN    5
 PRS2.2   SBD    T3 
          PJN    PRS3        IF PARAMETER BLOCK LENGTH VALID
          ERROR  ER17        * QAC INCORRECT PARAMETER BLOCK SIZE.* 
  
 PRS3     LDD    IR+3        CHECK PARAMETER BLOCK WITHIN FL
          SHN    14 
          LMD    IR+4 
          ADD    T4 
          RJM    VCA         VALIDATE CENTRAL ADDRESS 
          LDM    BQAC+0*5+4  CHECK COMPLETION BIT 
          LPN    1
          ZJN    PRS4        IF COMPLETION BIT NOT SET
          ERROR  ER14        * QAC REQUEST COMPLETION BIT SET.* 
  
*         SET SELECTION CRITERIA. 
  
 PRS4     LDM    BQAC+7*5+4  GET SELECTION FLAGS
          STD    SF 
          LPN    ZPSF 
          NJN    PRS5        IF ZERO PRIORITY FILES TO BE SELECTED
          AOM    .IPR        SET ZERO PRIORITY FILES TO BE IGNORED
 PRS5     LDD    SF          CHECK FOR ORIGIN TYPE SELECTION
          LPN    OTSF 
          ZJN    PRS9        IF NO SPECIFIC ORIGIN TYPE SELECTED
          LDM    BQAC+5*5+4  GET ORIGIN TYPE SELECTED 
          ZJN    PRS7        IF SAME ORIGIN TYPE AS CALLER
          STD    T1 
          SBN    MXOR 
          MJN    PRS6        IF VALID ORIGIN TYPE 
          ERROR  ER03        UNDEFINED ORIGIN TYPE
  
 PRS6     ADN    MXOR-1      CONVERT ORIGIN TYPE
          ERRNZ  SYOR-SYOT-1 CODE DEPENDS ON VALUE
          ERRNZ  BCOR-BCOT-1 CODE DEPENDS ON VALUE
          ERRNZ  RBOR-RBOT-1 CODE DEPENDS ON VALUE
          ERRNZ  TXOR-IAOT-1 CODE DEPENDS ON VALUE
          UJN    PRS8        SET ORIGIN TYPE
  
 PRS7     LDM    CEJT        SELECT SAME ORIGIN TYPE AS CALLER
          SFA    EJT
          ADK    JSNE 
          CRD    FN 
          ADK    SCLE-JSNE
          CRD    CM 
          LDD    CM 
          LPN    17 
 PRS8     STD    OC 
 PRS9     RJM    DUC         DETERMINE IF USER OR SUBSYSTEM CALL
  
*         PROCESS JSN SELECTION.
  
 PRS10    LDD    SF 
          SHN    21-6 
          PJN    PRS11       IF JSN NOT SELECTED
          AOM    .JSN        SET JSN AS SELECTION CRITERIA
  
*         PROCESS FILE CHARACTERISTICS. 
  
 PRS11    LDD    SF          SELECT FORMS CODE
          SHN    21-7 
          PJN    PRS12       IF FORMS CODE NOT SELECTED 
          AOM    .CFC        ALLOW FORMS CODE CHECK 
          LDM    BQAC+10*5+1 SET FORMS CODE 
          STM    .FRM 
 PRS12    LDD    SF          SELECT DISPOSITION CODE
          SHN    21-10
          PJP    PRS15       IF DISPOSITION CODE NOT SELECTED 
          AOM    .DCI        FLAG DISPOSITION CODE SPECIFIED
          LDM    BQAC+10*5+2
          RJM    VDC         VALIDATE DISPOSITION CODE
          RAM    .DCT        SET DISPOSITION CODE 
          STM    .DCD 
          LPN    70 
          SHN    -3 
          LMK    PHQT 
          NJN    PRS13       IF PUNCH FILE NOT SELECTED 
          LDD    SF 
          LPC    HESF+ECSF
          NJN    PRS13       IF EXTERNAL CHARACTERISTICS SELECTED 
          ERROR  ER06        INCORRECT DISPOSITON CODE
  
 PRS13    AOM    .CDC        ALLOW DISPOSITION CODE CHECK 
          LDM    .DCT 
          LPN    70 
          SHN    -3 
          LMK    PRQT 
          NJN    PRS15       IF NOT PRINT QUEUE 
          LDM    BQAC+7*5+3 
          SHN    21-5 
 PRS14    PJN    PRS15       IF *PR*/*LP* SELECTION NOT TO BE ALLOWED 
          SOM    .DLP        INDICATE SELECTION ALLOWED 
 PRS15    LDD    SF 
          SHN    21-11
          PJN    PRS17       IF EXPLICIT EC NOT SELECTED
          SHN    21-12-21+11+22 
          PJN    PRS18       IF HIERARCHIAL EC NOT SELECTED 
 PRS16    ERROR  ER04        SEVERAL MUTUALLY EXCLUSIVE BITS SET
  
 PRS17    SHN    21-12-21+11+22 
          PJN    PRS19       IF HIERARCHIAL EC NOT SELECTED 
          AOM    .HEX        SET HIERARCHIAL EC SELECTED
 PRS18    LDM    BQAC+10*5+3 SET EXTERNAL CHARACTERISTICS 
          SHN    -11
          STM    .EXC 
          LDD    SF 
          SHN    21-13
          MJN    PRS19       IF *EC=ANY* ALLOWED
          AOM    .ANY        *EC=ANY* NOT ALLOWED 
 PRS19    LDM    BQAC+7*5+3  GET NEXT SELECTION FLAGS 
          STD    SF 
          LPN    ICSF 
          ZJN    PRS19.1     IF INTERNAL CHARACTERISTICS NOT SELECTED 
          LDM    BQAC+10*5+3 SET INTERNAL CHARACTERISTICS 
          SHN    -6 
          LPN    7
          STM    .INC 
 PRS19.1  RJM    VAL         VALIDATE ACCESS LEVEL LIMITS 
          LDD    SF 
          LPN    ALSF 
          ZJN    PRS19.3     IF ADDRESS OF LIST NOT SPECIFIED 
          LDM    BQAC+11*5+3
          LPN    77 
          SHN    14 
          ADM    BQAC+11*5+4
          RJM    VCA         VALIDATE CENTRAL ADDRESS 
 PRS19.3  LDD    SF 
          LPN    SLSF 
          ZJN    PRS19.4     IF SOURCE LID NOT SPECIFIED
          AOM    .SLI 
          LDM    BQAC+11*5+1 SOURCE LID 
          SCN    77 
          SHN    6
          LMM    BQAC+11*5+0
          SHN    6
          STM    .SLD+1 
          SHN    -14
          RAM    .SLD 
 PRS19.4  LDD    SF 
          SHN    21-6 
          PJN    PRS19.5     IF NO RESTRICTION ON CONNECTION STATUS 
          AOM    .SRJ        SELECT ONLY RECOVERABLE JOBS 
 PRS19.5  LDD    SF 
          SHN    21-10
          PJN    PRS20       IF NO RANGE OF FILE SIZE INDICES SPECIFIED 
          AOM    .FSI        SELECT ON FILE SIZE INDEX RANGE
          LDM    BQAC+12*5+0
          SHN    2-13 
          ZJN    PRS19.6     IF INCORRECT FILE SIZE INDEX 
          STD    T0 
          RAM    .LFI        STORE LOWER FILE SIZE INDEX
          LDM    BQAC+12*5+0
          SHN    0-6
          LPN    7
          ZJN    PRS19.6     IF INCORRECT FILE SIZE INDEX 
          RAM    .UFI        STORE UPPER FILE SIZE INDEX
          LPN    7
          SBD    T0 
          PJN    PRS20       IF LOWER .LE. UPPER FILE SIZE INDEX
 PRS19.6  ERROR  ER22        INCORRECT FILE SIZE INDEX
  
*         SET TABLE ORDINALS FOR SEARCH.
  
 PRS20    LDN    ZERL        INITIALIZE SEARCH ORDINALS 
          CRD    CN 
          LDM    BQAC+7*5+4 
          STD    SF 
          LPN    SOSF 
          ZJN    PRS22       IF SPECIFIC QUEUE/ORDINAL NOT SELECTED 
          LDM    BQAC+10*5+0
          RJM    VQT         VALIDATE QUEUE TYPE
          LDM    .SQT 
          ZJN    PRS21       IF ONLY ONE QUEUE TYPE SPECIFIED 
          ERROR  ER01        INCORRECT QUEUE TYPE 
  
 PRS21    RJM    VQO         VALIDATE QUEUE ORDINAL 
          ADN    2
          UJN    PRS25       SET ENDING ORDINAL FOR SEARCH
  
 PRS22    LDM    BQAC+4*5+2 
          ZJN    PRS23       IF NOT POSSIBLE INTERRUPTED *PEEK* 
          STD    T1 
          LDD    RI 
          SHN    -1 
          LMK    PKFC 
          NJN    PRS23       IF NOT INTERRUPTED *PEEK*
          LDD    T1 
          RJM    VQT         VALIDATE QUEUE TYPE
          RJM    VQO         VALIDATE QUEUE ORDINAL 
          LDN    0           SET BEGINNING ORDINAL FOR SEARCH 
          STD    CN+2 
          UJN    PRS24       SET ENDING ORDINAL FOR SEARCH
  
 PRS23    LDM    BQAC+10*5+0
          RJM    VQT         VALIDATE QUEUE TYPE
 PRS24    LDD    CM+2        SET ENDING ORDINAL FOR SEARCH
 PRS25    STD    CN+1 
          LDM    TFCN+1,RI   SET PROCESSOR ADDRESS
          STM    QACB 
          LDM    TFCN,RI     SET OVERLAY NAME 
          LPN    77 
          STM    QACA 
          STD    CN+3 
          LDK    NCPL        SET NUMBER OF CONTROL POINTS + 1 
          CRD    CM 
          AOD    CM+1 
          STD    NC 
  
*         CHECK FOR PREMATURE TERMINATION OF CALL.
  
          PAUSE 
          LDD    CM+1 
          ZJN    PRS26       IF NO ERROR FLAG SET 
          ERROR  ER12        FUNCTION NOT COMPLETED 
  
*         SELECT DESTINATION ADDRESSING MODE. 
  
 PRS26    LDC    .SDA        SET RETURN BUFFER ADDRESS
          STD    BA+1 
          LDD    SF 
          SHN    21-3 
          MJN    PRS28       IF *FM,UN* SELECTED
          SHN    21-4-21+3+22 
          PJN    PRS27       IF NO ADDRESSING MODE SELECTED 
          LDM    BQAC+5*5+3  SET BATCH ID 
          LPN    77 
          STD    BA 
          LDN    0           INDICATE BATCH ID SELECTED 
          RJM    CDM         CHANGE DESTINATION ADDRESSING MODE 
 PRS27    LDN    0           INDICATE NO REMOTE BATCH CHANGE
          UJN    PRS30       RETURN 
  
 PRS28    SHN    21-4-21+3+22 
          PJN    PRS29       IF BATCH ID NOT ALSO SELECTED
          LJM    PRS16       PROCESS ERROR
  
 PRS29    LDC    BQAC+5*5+0  SET *FM,UN* ADDRESS
          STD    BA 
 PRS30    LJM    PRSX        RETURN 
          SPACE  4
**        TFCN - TABLE OF FUNCTION PROCESSORS.
  
  
 TFCN     BSS    0
 .I       SET    0
          LOC    0
          CON    0,0
          FCN    ATR,ALLB    *ALTER* FUNCTION 
          FCN    GET,GTLB    *GET* FUNCTION 
          FCN    PEK,PKLB    *PEEK* FUNCTION
          LOC    *O 
 TFCNL    EQU    *-TFCN 
 DUC      SPACE  4,20 
**        DUC - DETERMINE IF USER OR SUBSYSTEM CALLER.
* 
*         EXIT   (SI) .EQ. 0, IF USER CALL. 
*                (SI) .NE. 0, IF SUBSYSTEM CALL, OR IF CALLER IS *SSJ=* 
*                             AND *IGNORE OWNERSHIP* BIT SET ON *PEEK*. 
*                (.OFU - .OFU+1) = OWNERSHIP *FO-UI* IF USER CALL.
* 
*         ERROR  TO ERROR PROCESSOR IF *FO-UI* IN THE EJT ENTRY IS ZERO 
*                AND THE USER INDEX IN THE CONTROL POINT AREA IS
*                ZERO.
* 
*         USES   SI, CM - CM+4, FN - FN+4.
* 
*         CALLS  C2B, GFO.
* 
*         MACROS ERROR, SFA.
  
  
 DUC      SUBR               ENTRY/EXIT 
          LDD    RI 
          LMN    PKFC*2 
          NJN    DUC1        IF NOT *PEEK* FUNCTION 
          LDD    CP 
          ADK    SEPW        GET SPECIAL ENTRY POINT WORD 
          CRD    CM 
          LDD    CM          CHECK FOR *SSJ* CALLER 
          LPN    4
          ZJN    DUC1        IF NOT *SSJ* 
          LDM    BQAC+5*SELQ+3
          SHN    21-11       CHECK SELECTION BIT 21 
          SHN    0-21 
          NJN    DUC4        IF *IGNORE OWNERSHIP* FLAG SET 
 DUC1     LDD    CP 
          ADN    JCIW        FETCH SUBSYSTEM ID 
          CRD    CM 
          LDD    CM+2 
          SBK    LSSI+1      CHECK ID 
          SHN    0-21 
          ZJN    DUC3        IF SUBSYSTEM 
          LDM    CEJT 
          SFA    EJT         GET *FO-UI* OF CALLER
          ADK    JSNE 
          CRD    CM 
 .CM2     EQU    CM+2        LOCATION OF *FO-UI*
          LDD    .CM2 
          ADD    .CM2+1 
          ZJN    DUC5        IF *FO-UI* NOT SET 
 DUC2     LDC    .CM2*10000+DUCA
          RJM    C2B
          ZJN    DUC3        IF SUBSYSTEM *FO-UI* 
          LDD    .CM2 
          STM    .OFU        SET USER *FO-UI* 
          LDD    .CM2+1 
          STM    .OFU+1 
          LDN    1           SET USER CALL
 DUC3     LMN    1
 DUC4     STD    SI          RETURN CALLER STATUS 
          LJM    DUCX        RETURN 
  
*         SET *FO-UI* FOR THE JOB.
  
 DUC5     LDD    CP          GET USER INDEX 
          ADK    UIDW 
 DUC6     CRD    CM 
          LDD    CM+3        SET OWNERSHIP USER INDEX 
          LPN    37 
          STM    .OFU 
          LDD    CM+4 
          STM    .OFU+1 
          ADM    .OFU 
          NJN    DUC8        IF UI SPECIFIED IN CONTROL POINT AREA
 DUC7     ERROR  ER13        * QAC INCORRECT REQUEST.*
  
 DUC8     LDD    CP          GET FAMILY ORDINAL 
          ADK    PFCW 
          CRD    CM 
          SFA    EST,CM+3 
          ADK    EQDE 
          CRD    FN 
          LDD    FN+4 
          SHN    3
          ADN    PFGL 
          CRD    FN 
          LDD    FN+3 
          SCN    77 
          STD    FN+3 
          LDN    1
          RJM    GFO         GET FAMILY ORDINAL 
          NJN    DUC7        IF INCORRECT FAMILY
          LDD    FN+4        SET OWNERSHIP FAMILY ORDINAL 
          SHN    6
          RAM    .OFU 
          STD    .CM2 
          LDM    .OFU+1 
          STD    .CM2+1 
          LJM    DUC2        CHECK SUBSYSTEM OR USER CALL 
  
  
 DUCA     VFD    24/01377777  SUBSYSTEM *FO-UI* 
 VAL      SPACE  4,10 
**        VAL - VALIDATE ACCESS LEVEL LIMITS. 
* 
*         ENTRY  (SI) = 0, IF USER CALL.
*                     .NE. 0, IF SUBSYSTEM CALL.
* 
*         ERROR  TO ERROR PROCESSOR IF INCORRECT LIMIT SPECIFIED. 
* 
*         USES   CM - CM+4. 
* 
*         MACROS ERROR, MONITOR, SFA. 
  
  
 VAL      SUBR               ENTRY/EXIT 
          LDD    SF 
          LPN    LVSF 
          NJN    VAL1        IF ACCESS LEVEL RANGE SPECIFIED
          LJM    VAL6        CHECK FOR SUBSYSTEM/USER CALL
  
 VAL1     LDM    BQAC+11*5+3 SAVE LOWER ACCESS LEVEL LIMIT
          SCN    77 
          SHN    -11+22 
          STM    VALA 
 VAL1.1   RAM    .LAC 
          SHN    2-21        SAVE UPPER ACCESS LEVEL LIMIT
          STM    VALC 
          RAM    .UAC 
          LDM    VALC 
          SBM    VALA 
          MJN    VAL3        IF LOWER ACCESS .GT. UPPER ACCESS
          AOM    .ALV        INDICATE ACCESS LEVEL RANGE SPECIFIED
          LDD    SI 
*         UJN    VALX        RETURN FOR USER CALL/NO RANGE SPECIFIED
 VALD     EQU    *-1
          NJN    VALX        IF SUBSYSTEM CALLER
  
*         VALIDATE USER-SPECIFIED ACCESS LEVEL RANGE. 
  
          LDK    ZERL        CLEAR MONITOR REQUEST WORD 
          CRD    CM 
          LDC    **          VALIDATE LOWER/UPPER ACCESS LEVEL LIMIT
 VALA     EQU    *-1
 VAL2     STD    CM+1 
          LDD    MA 
          CWD    CM 
          LDN    VAJS        VALIDATE ACCESS LEVEL SUBFUNCTION
          STD    CM+1 
          LDN    1           VALIDATE ACCESS LEVEL ONLY 
          STD    CM+4 
          MONITOR  VSAM 
          LDD    CM+1 
          ZJN    VAL4        IF LOWER ACCESS LEVEL VALID
*         ZJN    VAL5        IF UPPER ACCESS LEVEL VALID
 VALB     EQU    *-1
 VAL3     ERROR  ER21        INCORRECT ACCESS LEVEL 
  
 VAL4     LDC    **          SET UP EXIT ADDRESS FOR UPPER LIMIT
          ORG    *-1
          LOC    VALB 
          ZJN    VAL5        IF UPPER ACCESS LEVEL LIMIT VALID
          LOC    *O 
          STM    VALB 
          LDK    ZERL        CLEAR MONITOR REQUEST WORD 
          CRD    CM 
          LDC    **          VALIDATE UPPER ACCESS LEVEL LIMIT
 VALC     EQU    *-1
          UJN    VAL2        VALIDATE UPPER LIMIT 
  
 VAL5     LJM    VALX        RETURN 
  
 VAL6     LDD    SI 
          NJN    VAL5        IF SUBSYSTEM CALL
          LDK    SSML        CHECK SYSTEM SECURITY MODE 
          CRD    CM 
          LDD    CM 
          LPN    77 
          ZJN    VAL5        IF UNSECURED SYSTEM
          LDC    **          SET UP EXIT ADDRESS
          ORG    *-1
          LOC    VALD 
          UJN    VALX        RETURN 
          LOC    *O 
          STM    VALD 
  
*         USE JOB ACCESS LIMITS AS DEFAULTS FOR USER CALLS. 
  
          LDM    CEJT 
          SFA    EJT
          ADK    PRFE 
          CRD    CM 
          LDD    CM+2        SAVE LOWER ACCESS LEVEL LIMIT
          LPN    77 
          SHN    21-2 
          LJM    VAL1.1      SAVE ACCESS LEVEL LIMITS 
 VDC      SPACE  4,15 
**        VDC - VALIDATE DISPOSITION CODE.
* 
*         ENTRY  (A) = DISPOSITION CODE TO BE VALIDATED.
* 
*         EXIT   (A) = DISPOSITION CODE FOR QFT ENTRY.
* 
*         ERROR  TO ERROR PROCESSOR IF INCORRECT DISPOSITION CODE.
* 
*         USES   T1, T2.
* 
*         MACROS ERROR. 
  
  
 VDC2     LDM    TDCM,T2     RETURN DISPOSITION CODE
  
 VDC      SUBR               ENTRY/EXIT 
          STD    T1 
          LDN    0           SET INDEX
          STD    T2 
 VDC1     LDM    TDCM+1,T2
          LMD    T1 
          ZJN    VDC2        IF MATCH 
          LDN    TDCME       INCREMENT INDEX
          RAD    T2 
          SBN    TDCML
          MJN    VDC1        IF NOT END OF TABLE
          ERROR  ER06        INCORRECT DISPOSITION CODE 
 VQO      SPACE  4,15 
**        VQO - VALIDATE QUEUE ORDINAL. 
* 
*         ENTRY  (CM+2) = MAXIMUM ORDINAL FOR SELECTED QUEUE. 
* 
*         EXIT   (A) = (CN) = (CN+2) = BEGINNING ORDINAL FOR SEARCH.
* 
*         ERROR  TO ERROR PROCESSOR IF INCORRECT QUEUE ORDINAL. 
* 
*         USES   CN, CN+2.
* 
*         MACROS ERROR. 
  
  
 VQO2     STD    CN 
          SBD    CM+2 
          PJN    VQO1        IF INCORRECT ORDINAL 
          SOD    CN 
          STD    CN+2        SET BEGINNING ORDINAL FOR SEARCH 
  
 VQO      SUBR               ENTRY/EXIT 
          LDM    BQAC+4*5+1 
          NJN    VQO2        IF ORDINAL SPECIFIED 
 VQO1     ERROR  ER15        * QAC INCORRECT QUEUE ORDINAL.*
 VQT      SPACE  4,15 
**        VQT - VALIDATE QUEUE TYPE.
* 
*         ENTRY  (A) = QUEUE TYPE(S) FROM PARAMETER BLOCK.
* 
*         EXIT   (CM+2) = MAXIMUM ORDINAL FOR SELECTED QUEUE TYPE.
*                (QT) = QUEUE TYPE TO BE PROCESSED FIRST. 
*                (.SQT) = OTHER QUEUE TYPES TO BE PROCESSED.
* 
*         ERROR  TO ERROR PROCESSOR IF INCORRECT QUEUE TYPE.
* 
*         CALLS  SQT. 
* 
*         MACROS ERROR. 
  
  
 VQT      SUBR               ENTRY/EXIT 
          LPK    AQQC 
          NJN    VQT1        IF VALID QUEUE TYPE
          ERROR  ER01        INCORRECT QUEUE TYPE 
  
 VQT1     STM    .SQT 
          RJM    SQT         SET QUEUE TYPE 
          UJN    VQTX        RETURN 
          SPACE  4,10 
          OVERFLOW  OVL,EPFW
          OVERLAY  (CHECK *LID* SELECTION.),OVL0
          SPACE  4,10 
**        THIS OVERLAY CHECKS THE *DLID* AND *ALID* SELECTION 
*         CRITERIA FOR ALL *QAC* PROCESSORS.
 SLL      SPACE  4,15 
**        SLL - SCAN LID LIST FOR MATCHING LID. 
* 
*         ENTRY  (IBUF+1 - IBUF+2) = LID FROM QFT ENTRY.
* 
*         EXIT   (A) = 0, IF LID MATCHED. 
*                LID OF MATCHING QFT ENTRY RETURNED IN *DLID* FIELD OF
*                *QAC* CALL BLOCK, IF *GET* REQUEST.
* 
*         USES   T1, T3, T5, T6, CM - CM+4. 
* 
*         CALLS  VCA, VID.
* 
*         MACROS ERROR. 
  
  
 SLL      SUBR               ENTRY/EXIT 
          LDM    IBUF+2      LID FROM QFT ENTRY 
          SCN    77 
          SHN    6
          LMM    IBUF+1 
          SHN    6
          STD    T6 
          STM    SLLC 
          SHN    -14
          STD    T3 
          STM    SLLB 
          LDM    BQAC+7*5+3 
          LPN    4
          ZJN    SLL1        IF *DLID* NOT SPECIFIED
          LDM    BQAC+11*5+1
          LPN    77 
          SHN    14 
          LMM    BQAC+11*5+2
          LMC    3R***
          ZJN    SLL4        IF UNCONDITIONAL MATCH ON ANY QUEUE FILE 
          SHN    -14
          LMN    1R*
          LMD    T3 
          NJN    SLL1        IF *DLID* DOES NOT MATCH QUEUE FILE LID
          LDM    BQAC+11*5+2
          LMD    T6 
          ZJN    SLL2        IF *DLID* MATCHES
 SLL1     LDM    BQAC+7*5+3 
          SHN    21-3 
          MJN    SLL5        IF ALTERNATE LIST OF LIDS SPECIFIED
          SHN    21-2-21+3
          PJN    SLL3        IF *DLID* NOT SPECIFIED
 SLL2     LJM    SLLX        PROCESS *DLID* NOT FOUND 
  
*         PROCESS *DLID* NOT SPECIFIED.  CHECK FOR FILE WITH NO LID 
*         OR WITH HOST/ENABLED LID. 
  
 SLL3     LDD    T3 
          SHN    14 
          LMD    T6 
          ZJN    SLL2        IF FILE HAS ZERO *DLID*
          RJM    VID         VALIDATE LID 
          ZJN    SLL6        IF LID NOT FOUND 
          LPC    6400        CHECK IF LID IS HOST/ENABLED/NOT LOOPBACK
          LMC    6000 
 SLL4     LJM    SLL11       EXIT (SET *DLID* IF HOST/ENABLED LID)
  
*         PROCESS LIST OF LIDS. 
  
 SLL5     LDN    0           INITIALIZE INDEX OF LID LIST 
          STD    T5 
          LDM    BQAC+11*5+3 FWA OF LID LIST
          LPN    77 
          LMC    LDCI 
          STM    SLLA 
          LDM    BQAC+11*5+4
          STM    SLLA+1 
          UJN    SLL7        CHECK FOR LID MATCH
  
 SLL6     LDN    1           NO MATCH 
          LJM    SLLX        EXIT 
  
*         CHECK IF LID FROM QFT ENTRY MATCHES A LID FROM THE LIST.
  
 SLL7     LDC    **          SET NEXT LIST ENTRY ADDRESS
 SLLA     EQU    *-2
          ADD    T5 
          RJM    VCA         VALIDATE CENTRAL ADDRESS 
          SHN    14 
          ADD    RA 
          SHN    6
          CRD    CM 
  
*         CHECK LEFT LID FOR MATCH. 
  
          LDD    CM+1 
          SCN    77 
 SLL9     ZJN    SLL6        IF END OF LIST 
          SHN    6
          LMD    CM 
          SHN    6
          STD    T1 
          SHN    -14
          LMD    T3 
          SHN    14 
          ADD    T1 
          LMD    T6 
 SLL10    ZJN    SLL11       IF LIDS MATCH
  
*         CHECK MIDDLE LID FOR MATCH. 
  
          LDD    CM+1 
          LPN    77 
          ZJN    SLL9        IF END OF LIST 
          LMD    T3 
          SHN    14 
          ADD    CM+2 
          LMD    T6 
          ZJN    SLL10       IF LIDS MATCH
  
*         CHECK RIGHT LID FOR MATCH.
  
          LDD    CM+4 
          SCN    77 
          ZJN    SLL9        IF END OF LIST 
          SHN    6
          LMD    CM+3 
          SHN    6
          STD    T1 
          SHN    -14
          LMD    T3 
          SHN    14 
          ADD    T1 
          LMD    T6 
          ZJN    SLL10       IF LIDS MATCH
          AOD    T5 
          LJM    SLL7        READ NEXT WORD OF LID LIST 
  
 SLL11    NJN    SLL13       IF NO MATCH ENCOUNTERED
          LDM    BQAC+4      CHECK FUNCTION CODE
          LPN    17 
          SHN    -1 
          LMN    GTFC 
          NJN    SLL12       IF NOT *GET* FUNCTION
          LDM    BQAC+11*5+1 RETURN LID OF QFT ENTRY TO *QAC* BLOCK 
          SCN    77 
          LMC    ** 
 SLLB     EQU    *-1
          STM    BQAC+11*5+1
          LMC    ** 
 SLLC     EQU    *-1
          STM    BQAC+11*5+2
 SLL12    LDN    0
 SLL13    LJM    SLLX        RETURN 
          SPACE  4,10 
*         COMMON DECKS. 
  
  
          LIST   X
*CALL     COMPVID 
          LIST   *
          SPACE  4,10 
          OVERFLOW  OVL0,BFMS 
          TTL    QAC - QUEUE ACCESS.
          SPACE  4
          END 
