*DECK AAARBF
USETEXT CMD$COM 
      PROC AAARBF;
      BEGIN                  # BEGIN AAARBF                            #
#                                                                      #
#     RBF, NETWORK HOST PRODUCTS, RELEASE 6                            #
#                                                                      #
*IF,DEF,IMS 
 #
 *    RBF 1.3 (REMOTE BATCH FACILITY VERSION 1.3)     PAGE 1
 *    IMS (INTERNAL MAINTENANCE SPECIFICATION)        DATE. MAY 7,1980
 #
 #
*1
* 
*     1. GENERAL DESCRIPTION. 
* 
*          THE REMOTE BATCH FACILITY IS A CYBER 70/170 NETWORK HOST 
*     PRODUCT WHICH PROVIDES THE CAPABILITY TO TRANSFER DATA BETWEEN
*     FILES ON A CYBER HOST COMPUTER AND BATCH PERIPHERALS AT A TERMINAL
*     IN THE NETWORK.  RBF COMMUNICATES WITH ITS TERMINALS, ALSO CALLED 
*     REMOTE JOB ENTRY STATIONS, VIA THE NETWORK ACCESS METHOD (NAM). 
*     RBF IS INTENDED TO BE ABLE TO OPERATE UNDER CONTROL OF THE NETWORK
*     OPERATING SYSTEM (NOS) ONLY. FOR RELEASE 6, RBF OPERATES AS A NOS 
*     SUBSYSTEM AND REQUIRES NO SPECIAL PRIVILEGES OF NAM.  IN ADDITION 
*     TO THIS SECTION WHICH GIVES A GENERAL OVERVIEW OF RBF, THERE ARE
*     SECTIONS COVERING THE PROGRAM STRUCTURE, FUNCTIONAL DESCRIPTIONS
*     OF THE MAJOR MODULES, UPLINE AND DOWLINE PROTOCOLS, AND VARIOUS 
*     TABLE FORMATS.
* 
*          FIGURE 1 SHOWS RBF-S POSITION IN THE FLOW OF DATA AND
*     CONTROL FROM THE BATCH TERMINAL TO THE FILES OF THE SYSTEM. 
*     RBF-S INTERFACE TO THE NETWORK IS THROUGH THE APPLICATION 
*     INTERFACE PROCESSOR (AIP) MODULE WHICH RESIDES WITHIN RBF-S 
*     FIELD LENGTH AND COMMUNICATES WITH NAM"S NETWORK INTERFACE
*     PROCESSOR (NIP) MODULE VIA SYSTEM-USER CONTROL POINT DATA 
*     TRANSFERS. THE PRU INTERFACE TERMINAL PROTOCOL IS USED TO 
*     TRANSFER DATA BETWEEN THE BATCH DEVICES ON A BATCH TERMINAL 
*     AND RBF. RBF COMMUNICATES WITH THE BATCH TERMINAL"S CONSOLE 
*     USING THE INTERACTIVE VIRTUAL TERMINAL (IVT) PROTOCOL. THIS 
*     NORMALIZATION OF TERMINAL PROTOCOLS IS HANDLED IN THE NETWORK 
*     PROCESSING UNIT (NPU). RBF INTERFACES TO THE NETWORK OPERATING
*     SYSTEM (NOS) THROUGH A SET OF SYSTEM FUNCTIONS WHICH VERIFIES 
*     JOBS, MANIPULATES SYSTEM QUEUES, AND TRANSFERS FILES. 
*1
* 
* 
*0DC  FIGURE 1 - OVERVIEW OF THE NETWORK AND RBF
* 
*         C C P                 N A M                           N O S 
* 
*                                                               +-----+ 
*                                                               /     / 
*                         +-----+-------+---+                .../ QAC / 
*                         /     /       / A /               .   /     / 
*                         /     /       / I /             .     +-----+ 
*                         /     /       / P /            .
*     +---------+         /     /   N   /  1/           .       +-----+ 
*     /         /........./  P  /       +---+-------+  .        /     / 
*     /         /         /     /       / A /       / .  ......./ VEJ / 
*     +----+----+         /  I  /   I   / I / R B F /....       /     / 
*     /    /    /         /     /       / P /       /...        +-----+ 
*     / IVT/ PRU/         /  P  /       /  2/       / . ... 
*     /    /    /         /     /   P   +---+-------+  .   .    +-----+ 
*     +----+----+         /     /       / A /          ..   .   /     / 
*        .     .          /     /       / I /          . .   .../ DSP / 
*        .      .         /     /       / P /          .  .     /     / 
*         .      .        /     /       /  3/          .   .    +-----+ 
*          .      .       +-----+-------+---+          .    . 
*         +--+   +-----+     .                          .    .  +-----+ 
*        /   /   /     /      .                         .     . /     / 
*       /    /   /     /       .                         .     ./ QAP / 
*     +------+   /     /        .                         .     /     / 
*     +------+   +-----+        .                          .    +-----+ 
*                               .                           . 
*     CONSOLE    BATCH          .                            .  +-----+ 
*                DEVICE         .                             . /     / 
*                               .                              ./ CIO / 
*                            +-----+                            /     / 
*                            /     /          -------           +-----+ 
*                            / CIO /.........(   .   )
*                            /     /         /-------/
*                            +-----+         /       /
*                                            / DISK  /
*                                            /       /
*                                             ------- 
* 
*0DC  FIGURE 1. 
* 
*     2. PROGRAM STRUCTURE
* 
*     IMPROVEMENTS IN SYSTEM UTILISATION ARE ACCOMPLISHED THROUGH 
*     PROGRAM RESTRUCTURE WITH THE USE OF OVERLAYS, FEWER CALLS 
*     TO SYSTEM ROUTINES, ROLLOUT OF THE PROGRAM DURING THE IDLE
*     PERIODS AND VARIABLE BUFFER ALLOCATION. EACH OF THESE TOPICS
*     ARE COVERED IN THE SECTIONS FOLLOWING DESCRIPTIONS OF THE MAJOR 
*     MODULES.
* 
*     THE RELATIONSHIP OF THE MAJOR MODULES IS SHOWN IN FIGURE 2. 
*     THESE MODULES ARE BRIEFLY DESCRIBED BELOW.
* 
*     INITIALIZATION (INI)
*     THIS PROCEDURE IS CALLED TO ESTABLISH COMMUNICATIONS WITH THE 
*     NETWORK VIA THE NETON PROCEDURE CALL TO NAM. IF THE NETON 
*     REQUEST IS REJECTED BECAUSE RBF HAS BEEN DISABLED, A MESSAGE TO 
*     THAT EFFECT IS SENT TO THE CENTRAL SITE OPERATOR AND THE DAYFILE. 
*     IF DISABLED, RBF WILL STOP. IF THE NETWORK HAS NOT YET BEEN 
*     BROUGHT UP, RBF WILL CONTINUE TO REQUEST NETON UNTIL STOPPED
*     BY THE CENTRAL SITE OPERATOR OR UNTIL ACCEPTED. IF ACCEPTED,
*     A RBF STARTED MESSAGE IS SENT TO THE DAYFILE AND CONTROL IS 
*     TRANSFERRED TO THE SCHEDULER MODULE. INI IS LOADED IN WITH RBF"S
*     INITIAL LOAD IN THE OVERLAY AREA. 
* 
*     SCHEDULER (SCH) 
*          THIS PRIMARY OVERLAY ROUTINE IS THE MAIN LOOP WHICH DRIVES 
*     ALL OF RBF-S ACTIVITIES.  THE 1ST ROUTINE CALLED IS GETDATA WHICH 
*     DOES NETGET-S AND QUEUES ALL THE RESULTING SUPERVISORY MESSAGES 
*     TO THE APPROPRIATE TERMINAL CONTROL BLOCK.  THESE WILL EVENTUALLY 
*     BE DETECTED BY EVENT PROCESSORS ACKED (FOR UPLINE CONSOLE DATA) 
*     OR WAITSM (FOR MESSAGES ON CONNECTION ZERO) WHICH WILL REMOVE THE 
*     APPROPRIATE ACN FROM THE EVENT CHAIN AND LINK IT TO EITHER THE
*     EXTCMD OR SMP CHAINS RESPECTIVELY.  RETURNING FROM GETDATA, SCH 
*     CHECKS FOR THE CFO COMMAND TO INHIBIT ROLLOUT (FOR DEBUGING 
*     PURPOSES ONLY), THEN INVOKES ROUTINE TMOPROC WHEN AT SEVEN
*     SECOND INTERVALS.  TMOPROC SCANS CONSOLE ACN ENTRIES OF 
*     DIAL-UP TERMINALS TO SEE IF THE ASSOCIATED PASSIVE DEVICES
*     ARE ACTIVE.  TERMINALS THAT REMAIN INACTIVE FOR AN INSTALLATION 
*     DEFINED LENGTH OF TIME(ALOTIME) ARE AUTO LOGGED OUT OF RBF
*     AND CONNECTED TO NVF.  HARDWIRED TERMINALS WILL NOT BE TIMED
*     OUT OF RBF.  IF ALOTIME IS SET TO ZERO THEN NO TERMINALS WILL BE
*     LOGGED OUT OF RBF DUE TO INACTIVITY.  RETURNING FROM TMOPROC, 
*     SCH THEN CALLS CHOOSE.  CHOOSE SCANS THE CHAIN
*     TABLE IN ROUND ROBIN FASHION (EXCLUDING THE BACKGROUND CHAIN) 
*     LOADING AND EXECUTING THE CORRECT OVERLAY TO PROCESS ANY CHAIN
*     WHICH HAS ONE OR MORE QUEUED ACN-S.  RETURNING FROM CHOOSE, (ALL
*     THE CHAINS HAVE BEEN PROCESSED + ALL ACN-S ARE WAITING ON EITHER
*     THE EVENT OR BACKGROUND CHAIN) SCH WILL LOAD AND EXECUTE THE K -
*     DISPLAY DRIVER IF NECESSARY.
*          THE BACKGROUND CHAIN IS PROCESSED DIRECTLY BY SCH SINCE IT 
*     DOES NOT REQUIRE AN OVERLAY LOAD (ACN-S ON THE BACKROUND CHAIN ARE
*     SIMPLY RE-LINKED TO THE LAST CHAIN THEY WERE ON).  THE BACKGROUND 
*     CHAIN IS USED WHEN THERE IS NO EVENT (IE. THE OVERLAY PROCESSING
*     THE CONNECTION WISHES TO WAIT FOR ONE PASS THROUGH THE MAIN LOOP
*     LOOP BEFORE CONTINUING).  THE USUAL REASON IS EITHER NO MORE TSB
*     BUFFER SPACE OR RBF IS WAITING FOR AN ACK, ETC. BEFORE NETPUTING
*     ANOTHER BLOCK TO KEEP FROM GOING OVER ABL.  THE SAME EFFECT CAN 
*     BE ACHIEVED USING THE EVENT PROCESSOR CALLED WAIT, EXCEPT THAT
*     THE ACN GOES TO THE EVENT CHAIN.  IF ANY CONNECTIONS ARE ON THE 
*     NOT ROLLOUT.  SEE THE IMS COMMENTS IN EVENT FOR MORE INFORMATION. 
*     IF ANY PP ACTIVITY IS PENDING, SCH WILL RECALL THE CPU THREE
*     TIMES (3 SECOND DELAY) AND LOOP BACK TO CHOOSE WITHOUT CALLING
*     GETDATA.  THIS IS SO THE BUFFERS USED FOR QAP, QAC, ETC. MAY BE 
*     RELEASED BEFORE GETTING ADDITIONAL DATA FROM THE NETWORK.  IF 
*     THERE IS NO PP ACTIVITY AND THE BACKGROUND CHAIN IS EMPTY AND 
*     THERE ARE NO NETWORK MESSAGES TO BE RECEIVED BY GETDATA, SCH WILL 
*     CALL THE ROLLOUT ROUTINE.  XFLMGR, THE EXEC FIELD LENGTH MANAGER, 
*     IS CALLED EVERY 100 TIMES RBF ROLLS OUT.
* 
*     TERMINAL CONTROL MODULE (EXT$CMD) 
*     EXT$CMD IS A OVERLAY MODULE WHICH PROCESSES THE CONSOLE 
*     CONNECTION-S DATA. DATA RECEIVED FROM THE CONSOLE IS SENT TO
*     THE COMMAND PROCESSOR TO BE CRACKED.
* 
*     UPLINE CONTROL MODULE (UCM) 
*     THE UPLINE CONTROL MODULE IS A OVERLAY MODULE WHICH 
*     MANAGES THE UPLINE BATCH DEVICE CONNECTIONS (THOSE OF CARD
*     READERS). 
* 
*     DOWNLINE CONTROL MODULE (DCM) 
*     THE DOWNLINE CONTROL MODULE IS A OVERLAY MODULE WHICH 
*     MANAGES THE DOWNLINE CONNECTIONS (THOSE TO PRINTERS, CARD 
*     PUNCHES, AND PLOTTERS). 
* 
*     DISPLAY PROCESSOR (DIS) 
*     THE DISPLAY PROCESSOR OVERLAY GENERATES DISPLAYS REQUESTED
*     VIA TERMINAL COMMANDS.
* 
*     COMMAND PROCESSOR (CMD) 
*     THE COMMAND PROCESSOR OVERLAY CONCATENATES ONE OR MORE BLOCKS 
*     OF UPLINE CONSOLE DATA (DEPENDING ON BLOCK TYPE) AND CALLS CRACKER
*     TO PARSE THE COMMAND INTO CIT$TABLE ENTRIES.  IF IT IS A DEVICE 
*     DISPLAY COMMAND, THE CONSOLE ACN IS LINKED TO THE DIS CHAIN,
*     OTHERWISE IT IS LINKED TO EXTCMD WHICH PROCESSES ALL OTHER COMANDS. 
* 
*     BUFFER MANAGEMENT PROCESSORS (EXEC) 
*     THE BUFFER MANAGEMENT PROCESSORS ARE A SET OF RESIDENT PROCEDURES 
*     PROVIDED BY THE NETWORK/HOST-PRODUCT EXECUTIVE (EXEC IN CS AND NS)
*     WHICH ALLOCATE BUFFERS, PLACE RETURNED BUFFERS ON THE FREE SPACE
*     CHAIN, ETC.   PERIODICALLY OR AS NECESSARY, ALLOCATED BUFFERS ARE 
*     REORGANISED TO FREE UP AS MUCH MEMORY AS POSSIBLE.  AS MORE SPACE 
*     IS NEEDED, THE BUFFER MANAGER WILL ALLOCATE MORE MEMORY UNTIL A 
*     MAXIMUM IS REACHED.  MEMORY WILL BE RETUREND TO THE SYSTEM ONCE IT
*     IS DETERMINED THAT IT WILL NOT LIKELY BE NEEDED.  THESE BUFFERS 
*     ARE COMMONLY KNOWN AS TSB-S OR TSB BUFFERS. 
* 
*     APPLICATION INTERFACE PROCESSOR (AIP) 
*     THIS CORE RESIDENT MODULE IS SUPPLIED BY THE NETWORK ACCESS 
*     METHOD TO INTERFACE TO THE NETWORK VIA THE SYSTEM CONTROL POINT 
*     DATA TRANSFER SCHEME. DESCRIPTION OF THIS MODULE CAN BE FOUND 
*     IN THE NAM ERS RELEASE 4. 
* 
*     SUPERVISORY MESSAGE PROCESSOR (SMP) 
*     THIS OVERLAY MODULE PROCESSES SUPERVISORY MESSAGES RECEIVED 
*     FROM THE NETWORK. SUCH MESSAGES ARE CONNECTION REQUESTS,
*     CONNECTION BROKEN, LOGICAL ERRORS, SHUT DOWN REQUEST, ETC.
* 
*     TERMINATE RBF PROCESSORS (CON$END, FIN$DEV, FIN$CON)
*     THESE OVERLAY MODULES END CONNECTIONS AS REQUIRED, CLEANING UP
*     VARIOUS TABLES, RETURNING BUFFERS ETC.  IF IDLE SHUTDOWN HAS BEEN 
*     REQUESTED, ROUTINE ENDRBF WILL NETOFF ONLY AFTER ALL CONNECTIONS
*     HAVE BEEN TERMINATED NORMALLY.
* 
*     EVENT PROCESSORS
*          EVENT PROCESSORS ARE A GROUP OF SMALL, SPECIALIZED PROGRAMS
*     THAT DETERMINE WHEN A SO CALLED -EVENT- HAS OCCURED.  IF SO, THE
*     CONNECTION IS LINKED BACK TO THE CONNECTION CHAIN SPECIFIED BY
*     THE ACN$CHAINS FIELD.  THE LOGIC TO LINK CONNECTIONS TO VARIOUS 
*     CHAINS, STOP PROCESSING IN AN OVERLAY AND RETURN TO THE SAME SPOT 
*     AFTER THE EVENT HAS OCCURED, EXECUTE THE APPROPRIATE EVENT
*     PROCESSOR PROGRAM WHEN PROCESSING THE EVENT CHAIN, ETC. IS VERY 
*     COMPLICATED.  IT INVOLVES SAVING UP TO TWO ADDRESSS AND VARIOUS 
*     FIELDS IN THE 1ST WORD OF A CONTROL BLOCK (TCB, UCB, DCB, QCB). 
*     THE ROUTINES INVOLVED ARE LINK, REMOVE, EVENT, CALL$, CHOOSE, 
*     AND PROCESS.  FORTUNATELY, THESE ARE ALL KNOWN TO BE COMPLETELY 
*     DEBUGGED SINCE ANY PROBLEMS IN THIS AREA WOULD BE OBVIOUS.  THERE 
*     ARE A FEW BASIC GROUND RULES TO REMEMBER FOR ANY CODE WHICH IS
*     EXECUTED IN A SECONDARY OVERLAY( LIKE DCM, EXTCMD, UCM, ETC). 
* 
*        1) ROUTINE SETACN IS CALLED BEFORE CODE IN ANY SECONDARY 
*           OVERLAY IS EXECUTED.  HENCE, GLOBAL ITEM ACN IS THE CORRECT 
*           VALUE AND ALL BASED ARRAY POINTERS FOR RELEVANT CONTROL 
*           BLOCKS SHOULD BE PRESET TO CORRECT ADDRESSES.  FURTHER
*           CALLS TO SETACN ARE NECESSARY ONLY IF THERE IS A POSSIBILITY
*           THE TSB BUFFERS MAY HAVE MOVED (EG. AFTER A CALL TO RETTSB
*           OR XFLMGR). 
* 
*        2) A MODULE WHICH IS PROCESSING A CONNECTION MUST LINK IT TO 
*           SOME CHAIN BEFORE RETURNING.  ONE TIME THIS DOES NOT OCCUR
*           IS AFTER A CON/END IS ISSUED BY MODULE CON$END.  THE ACN
*           INVOLVED IS NOT LINKED TO ANYTHING UNTIL THE RESPONSE IS
*           RECEIVED AND PROCESSED BY SMP.  USUALLY, AN OVERLAY MODULE
*           WILL LINK A CONNECTION TO THE EVENT CHAIN AND RETURN AT THE 
*           SAME TIME BY CALLING EVENT.  OTHERWISE, AN EXPLICIT CALL TO 
*           LINK MUST BE MADE AND THE RETURN PREFORMED BY A SYMPL 
*           RETURN STATEMENT OR AN EXPLICIT GOTO TO LABEL CALLRTN (THE
*           ADDRESS TO BE RETURNED TO IN ROUTINE PROCESS).
* 
*        3) CONNECTIONS SPEND A MAJORITY OF THEIR TIME ON THE EVENT 
*           CHAIN, UNDER CONTROL OF THE EVENT PROCESSOR ACKED.  THIS
*           INDICATES THEY ARE IDLE OR ELSE WAITING FOR SOME COMMON,
*           NON-SPECIALIZED -EVENT- LIKE CONSOLE INPUT/OUTPUT AVAILABLE,
*           MODE4 INTERRUPTS, OR A BATCH DEVICE COMMAND HAS BEEN ENTERED
*           AND MUST BE PROCESSED BY DCM OR UCM.  ACKED WILL SET THE
*           APPROPRIATE FIELDS AND LINK THE ACN TO SOME MODULE FOR
*           FURTHER PROCESSING.  SOME OTHER EVENT PROCESSORS ARE... 
* 
*           CIODONE - THIS PROGRAM WAITS FOR A PP ROUTINE TO COMPLETE 
*                     A PENDING REQUEST.
*           DONE    - THIS PROGRAM WAITS FOR THE COMPLETE BIT IN THE
*                     COMMON CONTROL BLOCK HEADER (CCB$COMPLETE - IN THE
*                     1ST WORD OF A TCB, UCB, ETC.) TO BE SET.
*           WAITSM  - THIS PROGRAM WAITS FOR SUPERVISORY MESSAGES TO
*                     BE QUEUED ONTO THE SMPACN-S PSEUDO TCB. 
*           WAIT    - THIS PROGRAM DOESNT WAIT FOR ANYTHING.  IT JUST 
*                     RE-LINKS THE ACN TO THE APPROPRIATE CHAIN.
* 
*     MISCELLANEOUS PROCEDURES
* 
*     LINK,REMOVE,PROCESS,SETACN  -  SUBROUTINES TO HANDLE
*                                    PROCEDURE LINKAGE. 
*1
* 
* 
*0DC  FIGURE 2 - MAJOR RBF MODULES
* 
* 
*     ***********                      ***********
*      * START *                       *         *
*       *     *                       **  D C M  ** 
*        *   *                       * *         * *
*         * *                       *  ***********  * 
*          *                       *                 *
*          *                      *    ***********    *     *********** 
*          *                     *     *         *     *    *         * 
*          *                    *     **  U C M  ************ CON$END * 
*     ***********              *     * *         *     *    *         * 
*     *         *             *     *  ***********    *     *********** 
*     *  I N I  *            *     *                 *
*     *         *           *     *    ***********  *       *********** 
*     ***********          *     *     *         * *        *         * 
*          *              *     *     ** EXT CMD ************  D I S  * 
*          *             *     *     * *         * *        *         * 
*          *            *     *     *  ***********  *       *********** 
*          *           *     *     *                 *           *
*     ***********     *     *     *    ***********    ****  *********** 
*     *         *    *     *     *     *         *        * *         * 
*     *  S C H  ************************  Q C M  *         **  C M D  * 
*     *         *          *     *     *         *          *         * 
*     ***********           *     *    ***********          *********** 
*                            *     *
*                             *     *  ***********          *********** 
*                              *     * *         *          *         * 
*                               *     **  EVENT  *         **  N E W  * 
*                                *     *         *        * *         * 
*                                 *    ***********       *  *********** 
*                                  *                    * 
*                                   *  ***********     *    *********** 
*                                    * *         *    *     *         * 
*                                     **  S M P  ************ FIN$CON * 
*                                      *         *    *     *         * 
*                                      ***********     *    *********** 
*                                                       * 
*                                                        *  *********** 
*                                                         * *         * 
*                                                          ** FIN$DEV * 
*                                                           *         * 
*                                                           *********** 
*0DC  FIGURE 2. 
*1
* 
*0DC  FUNCTIONAL OVERVIEW OF RBF
* 
* 
*     THE REMOTE BATCH FACILITY IS THE APPLICATION IN THE HOST THAT IS
*     RESPONSIBLE FOR THE CONTROL OF RJE DATA TO AND FROM BATCH 
*     TERMINALS IN THE NETWORK. IN GENERAL, RBF IS NOT DIRECTLY INVOLVED
*     IN BATCH DATA TRAFIC FLOW BUT IS ONLY RESPONSIBLE FOR THE HIGH
*     LEVEL CONTROL OF THAT TRAFFIC. RBF STARTS AND STOPS DATA STREAMS, 
*     PROCESS ABNORMAL CONDITIONS ON THE DATA STREAM THAT ARE REPORTED
*     BY THE NPU, AND PROCESS ALL REMOTE BATCH COMMAND INTERCHANGES WITH
*     THE TERMINAL OPERATOR. IN ADDITION, RBF IS RESPONSIBLE FOR
*     TRANSLATING JOB CARDS WHEN THEY ARE RECEIVED BY THE HOST AND
*     RESPONDING WITH AN INDICATION OF THE VALIDITY OF THE JOB CARDS. 
*     IF THERE IS A JOB CARD ERROR, RBF SENDS AN INTERACTIVE OUTPUT 
*     MESSAGE TO THE ASSOCIATED TERMINAL CONSOLE INDICATING JOB CARD
*     ERROR AND UPLINE DATA IS DISCARDED UNTIL END OF FILE. 
*     FOR JOB FILES, RBF IS RESPONSIBLE FOR PLACING THE INPUT FILE
*     INTO THE SYSTEM INPUT QUEUE AT END OF INFORMATION.
* 
*     RBF IS RESPONSIBLE FOR INITIATING OUTPUT FILES TO REMOTE BATCH
*     TERMINALS. AT FILE INITIATION RBF CAUSES THE BANNER TO BE 
*     GENERATED FROM THE FILE AND PASSES THE DATA DOWNLINE. ONCE FILE 
*     TRANSMISSION HAS BEEN STARTED RBF WILL ONLY BE RESPONSIBLE FOR
*     PROCESSING ABNORMAL CONDITIONS WITH RESPECT TO BATCH STREAMS. 
*     THE ABNORMAL CONDITIONS WILL BE REPORTED BY THE NPU AND PASSED
*     UPLINE TO RBF AS SERVICE MESSAGES. IN ADDITION ANY REMOTE BATCH 
*     COMMANDS RECEIVED ON THE INTERACTIVE CONNECTION WILL BE DELIVERED 
*     TO RBF. RBF WILL PROCESS THESE COMMANDS AND IF STREAM CONTROL IS
*     REQUIRED AS A RESULT OF THE COMMAND PROCESSING, DOWNLINE SERVICE
*     MESSAGE WILL BE SENT TO ACCOMPLISH THE REQUIRED ACTION. 
* 
* 
* 
*1
* 
*0DC  UPLINE PROTOCOL FLOW DIAGRAM
* 
* 
*       RBF             NAM           NPU        COMMENTS 
*           CON/REQ/SM
*        <----------------                       TERMINAL LOGGING IN
*        ?  CON/REQ/N 
*        +--------------->
*           FC/INIT/SM   ?
*        <---------------+
*        ?  FC/INIT/N 
*        +--------------->
* 
*           PRU/ON
*        ---------------->
*                            GO,CR
*                        <--------------         CONSOLE OPERATOR TYPED 
*                        ?                       IN GO,CR COMMAND 
*        <---------------+
* 
*           IFC/START 
*        ---------------->
*                        ?
*                        +------------->
*                          PRU MSG               NAM RECEIVE FIRST PRU
*                        <--------------         BLOCK
*           IFC/JOB/SM   ?
*        <---------------+                       RBF CALLS VEJ TO VERIFY
*        ?  IFC/JOB/N                            JOB CARDS
*        +--------------->
*                        <--------------         CARD READING CONTINUES 
*                        <--------------
*                        <--------------
*                              .
*                              .
*                              .
*                        <--------------         NPU DETECTS EOI CARD 
*           IFC/EOJ/SM   ?
*        <---------------+                       RBF DISPOSE INPUT TO 
*                                                SYSTEM INPUT QUEUE 
* 
*1
* 
*0DC  DOWNLINE PROTOCOL FLOW DIAGRAM
* 
* 
*       RBF             NAM           NPU        COMMENT
*           CON/REQ/SM
*        <----------------                       TERMINAL LOGGING INTO
*        ?  CON/REQ/N                            RBF. 
*        +--------------->
*           FC/INIT/SM   ?
*        <---------------+
*        ?  FC/INIT/N 
*        ---------------->
* 
*           PRU/ON
*        ---------------->
*                            GO,LP
*                        <--------------         CONSOLE OPERATOR TYPED 
*                        ?                       IN GO,LP COMMAND.
*        <---------------+
* 
*                                                RBF SEARCHES BATCH 
*           SET/DEV                              OUTPUT QUEUE AND FINDS 
*        ---------------->                       THE OUTPUT FILE. 
*                        ?
*                        +------------->         SET DEVICE CHARACTER.
*           SET/FILE
*        ---------------->                       SET FILE LIMIT.
*                        ?
*                        +------------->
*           SET/FILE
*        ---------------->                       SET FILE CHARACTERISTIC
*                        ?                       OF BANNER PAGE.
*                        +------------->
*           BATCH/DATA
*        ---------------->                       RBF CALLS QAP TO 
*                        ?                       GENERATE BANNER BLOCK. 
*                        +------------->         SEND BANNER PAGE 
*           BATCH/DATA/N ?
*        <---------------+
*           BATCH/DATA
*        ---------------->
*                        ?
*                        +------------->
*           BATCH/DATA/N ?
*        <---------------+
*                .
*                .
*                .                               LAST BANNER BLOCK SENT.
*           SET/FILE                             SEND OUTPUT FILE 
*        ---------------->                       CHARACTERISTICS TO CCP 
*                        ?
*                        +------------->
*           OFC/STRT
*        ---------------->                       TRANSFER OUTPUT FILE 
*                           PRU BLOCK            TO NAM.
*                        -------------->
*                        -------------->         NAM SENDS PRU DATA TO
*                              .                 THE NPU. 
*                              .
*                              .
*                        -------------->         LAST PRU BLOCK SENT. 
* 
*                        <--------------         OUTPUT FILE RETURNS TO 
*           OFC/EOO      ?                       RBF WITH ACCOUNTING
*        <---------------+                       INFORMATION. 
*           BATCH/DATA/EOJ
*        ---------------->                       RBF CALLS QAP TO DO
*                        ?                       ACCOUNTING.
*                        +------------->         SEND ACCOUNTING DAYFILE
*           OFC/EOO      ?                       MESSAGE WITH EOJ FLAG. 
*        <---------------+                       RBF PURGES OUTPUT FILE.
* 
* 
*1
* 
*0DC   DATA FLOW DIAGRAMS 
* 
*        CONSOLE CONNECTION.
* 
*     +-------+ 
*     / SMP   /  SUPERVISORY MESSAGES 
*     /       / ...........+
*     +-------+            .
*                          .
*     +-------+            .         .........
*     / SCH   /  DATA      .         . DONE  .
*     /       /........+   .         .........
*     +-------+        .   .           '   ?
*                      .   .           '   ?
*                      !   !           '   ?
*                    .........       +-------+          +-------+ 
*                    . ACKED .<------/EXT$CMD/<---------/ CMD   / 
*                    .........------>/       /--------->/       / 
*                                    +-------+          +-------+ 
*                                       ' ?                 ? 
*                                       ' ?                 ? 
*                                       ' ?                 ? 
*                                       ' ?                 ? 
*                                       ' ?                 ? 
*                                       ' ?             +-------+ 
*                                       ' +------------>/ DIS   / 
*                                       +---------------/       / 
*                                                       +-------+ 
*                                                         ?   ' 
*                                                         ?   ' 
*                                                         ?   ' 
*                                                       ......... 
*                                                       . DONE  . 
*                                                       ......... 
* 
*1
* 
*        DOWN LINE CONNECTION.
* 
*     +-------+ 
*     / SMP   /  SUPERVISORY MESSAGES 
*     /       /...........+ 
*     +-------+           . 
*                         . 
*     +-------+           .         ......... 
*     /EXT$CMD/  COMMANDS .         . DONE  . 
*     /       /.......+   .         ......... 
*     +-------+       .   .           '   ? 
*                     .   .           '   ? 
*                     !   !           '   ? 
*                   .........       +-------+ 
*                   . ACKED .<------/ DCM   / 
*                   .........------>/       / 
*                                   +-------+ 
*                                     ?   ' 
*                                     ?   ' 
*                                     ?   ' 
*                                   ......... 
*                                   .CIODONE. 
*                                   ......... 
* 
* 
*1
* 
*        UP LINE CONNECTION.
* 
*     +-------+ 
*     / SMP   /  SUPERVISORY MESSAGES 
*     /       /...........+ 
*     +-------+           . 
*                         . 
*     +-------+           .         ......... 
*     /EXT$CMD/  COMMANDS .         . DONE  . 
*     /       /.......+   .         ......... 
*     +-------+       .   .           '   ? 
*                     .   .           '   ? 
*                     !   !           '   ? 
*                   .........       +-------+ 
*                   . ACKED .<------/ UCM   / 
*                   .........------>/       / 
*                                   +-------+ 
*                                     ?   ' 
*                                     ?   ' 
*                                     ?   ' 
*                                   ......... 
*                                   .CIODONE. 
*                                   ......... 
*1
* 
*     2.4 MODULE LINKAGE
* 
*     THE FOLLOWING SCHEME IS USED IN RBF TO TRANSFER CONTROL FROM
*     ONE MODULE TO ANOTHER.
*     THE PROCEDURE LINK PROVIDES THE CAPABILITY TO TRANSFER CONTROL
*     WITHOUT CONCERN FOR THE MODULE TYPE, THAT IS A FIXED RESIDENT 
*     PROCEDURE OR A MODULE IN AN OVERLAY OR ONE THAT IS DEPENDENT
*     UPON THE COMPLETION OF AN EVENT. THERE ARE THREE TYPES OF 
*     LINK CALLS: 
* 
*     1. LINK (MODULE)
*     IF THE REQUESTED MODULE IS IN MEMORY, EITHER A FIXED RESIDENT 
*     PROCEDURE OR A MODULE OF AN OVERLAY THAT IS CURRENTLY IN CORE,
*     CONTROL IS TRANSFERRED IMMEDIATELY. IF THE REQUESTED MODULE IS
*     IN AN OVERLAY NOT CURRENTLY IN CORE, THE CONNECTION PRESENTLY 
*     BEING PROCESSED BY THE CALLING MODULE IS PLACED ON THE CHAIN
*     ASSOCIATED WITH THE MODULE. THE IDENTIFICATION OF THE MODULE
*     DESIRED IS SAVED IN THE CONNECTION ENTRY ALONG WITH THE 
*     IDENTIFICATION OF ITS ASSOCIATED CHAIN. PROCESSING OF THIS
*     CONNECTION WILL CONTINUE ONCE THE OVERLAY ASSOCIATED WITH THE 
*     CHAIN IS IN CORE. 
* 
*     2. LINK (MODULE,EVENT)
*     THIS LINK CALL DOES NOT TRANSFER CONTROL TO THE MODULE, AS ABOVE, 
*     UNTIL ALLOWED TO DO SO BY THE EVENT PROCESSOR WHOSE ADDRESS IS
*     SPECIFIED BY EVENT. LINKAGE IS SET UP AS ABOVE FOR THE MODULE 
*     WHICH IS NOT YET IN CORE WITH THE ADDITION SETTING OF THE ITEM
*     XXX*EVENT IN THE CONTROL BLOCK OF THE CONNECTION BEING PROCESSED
*     BY THE CALLING MODULE BEING SET WITH THE ADDRESS OF THE EVENT 
*     PROCESSOR. THE TWO MOST COMMONLY SPECIFIED EVENTS ARE COMPLETE
*     WHICH ALLOWS THE CALLED MODULE CONTROL WHEN THE XXX*COMPLETE
*     FLAG OF THE CONTROL BLOCK IS SET, AND TIMEOUT WHICH TRANSFERS 
*     CONTROL ONCE THE VALUE IN XXX*TIME IS ZERO. XXX*TIME IS 
*     PERIODICALLY DECREMENTED BY THE PROCESS UPDATE, AND THE 
*     XXX*COMPLETE FLAG IS SET BY OTHER MODULES. THE CALLING MODULE 
*     MUST SET XXX*TIME. THE CONNECTION IS CHAINED TO THE EVENT CHAIN 
*     AND ONCE THE EVENT HAS TAKEN PLACE, THE CONNECTION IS PLACED ON 
*     THE CHAIN ASSOCIATED WITH THE REQUESTED MODULE. 
* 
*     3. EVENT (EVENT)
*     THIS CALL WILL RESULT IN A RETURN TO THE CALLING MODULE AT THE
*     NEXT INSTRUCTION AFTER THE CALL. THIS RETURN ADDRESS IS CARRIED 
*     IN THE CONTROL BLOCK HEADER WITH THE EVENT PROCESSOR ADDRESS. 
* 
*1
* 
* 
*       CHAIN TABLE - CHN$TABLE [12]
* 
* 
*       ADDR+0  6/PRIMARY,6/SECOND,12/0,18/ENTRYPT,18/NENTRIES
* 
*       ADDR+1  6/0,18/FIRST,18/NEXTCHN,18/LAST 
* 
*     *WORD 0 
*       PRIMARY    - PRIMARY OVERLAY NUMBER 
* 
*       SECOND     - SECONDARY OVERLAY NUMBER 
*                    VALUE
*         SMP$         2B - SUPERVISORY MESSAGE PROCESSOR 
*         EXT$CMD      3B - EXTENDED COMMAND PROCESSOR
*         CMD$         4B - COMMAND PROCESSOR(CRACKER)
*         DIS$         5B - DISPLAY PROCESSOR 
*         DCM$         6B - OUTPUT CONTROL PROCESSOR
*         UCM$         7B - INPUT CONTROL PROCESSOR 
*         NEW$        10B - NEW DEVICE PROCESSOR
*         CON$END     11B - CONNECTION END PROCESSOR
*         FIN$CON     12B - CLEAN UP ACN$TABLE FOR THE CONSOLE CONNETION
*         FIN$DEV     13B - CLEAN UP ACN$TABLE FOR THE BATCH DEVICE 
*         QCM$        14B - QAC CONTROL PROCESSOR 
*         BACKGROUND   0B - WAIT FOR A WHILE
* 
*       ENTRYPT    - OVERLAY ENTRY POINT ADDRESS
* 
*       NENTRIES   - NUMBER OF CONNECTIONS WAITING FOR THIS OVERLAY 
* 
*     *WORD 1 
* 
*       FIRST      - FIRST CONNECTION NUMBER IN A CHAIN 
* 
*       NEXTCHN    - NEXT CHAIN OVERLAY 
* 
*       LAST       - LAST CONNECTION NUMBER IN A CHAIN
* 
*     FIGURE 4, OVERLAY CHAIN STRUCTURE, ILLUSTRATES THE RELATIONSHIP 
*     OF CHAIN TO OVERLAY, MODULE TO CHAIN AND THE CHAIN OF CONNECTION
*     ENTRIES.
*1
* 
*0DC  FIGURE 4 - CHAIN TABLE
* 
*           OVERLAY 
*        CHN$TABLE ENTRIES         ACN$TABLE ENTRIES
*         +------------+             +---------+
*         / FIRST ACN  /............>/         /... 
*         / LAST ACN   /.            +---------+   .
*         /            / .                          . 
*      .../            /  .          +---------+    . 
*     .   / OVERLAY 1  /   .         /         /<...
*     .   +------------+<.  .        +---------+
*     .                   .  .            . 
*     .                    .  .           . 
*     .                     .  .          . 
*     .                     .   .    +---------+
*     .   +------------+    .    ...>/         /
*     .   /            /    .        +---------+
*      ..>/            /    . 
*         /            /    . 
*         /            /    . 
*         / OVERLAY 2  /    . 
*         +------------+    . 
*               .           . 
*               .           . 
*               .           . 
*         +------------+    . 
*         /            /    . 
*         /            /    . 
*         /            /    . 
*         /            /   .
*         / OVERLAY N  /... 
*         +------------+
* 
*0DC  FIGURE 4
*1
* 
*     2.2 CENTRAL MEMORY USAGE FORMULA
* 
*     TO DETERMINE THE TYPICAL CENTRAL MEMORY USAGE FOLLOW THE
*     STEPS GIVEN BELOW:  
* 
*     1. DETERMINE THE FOLLOWING VALUES FOR THE CONFIGURATION:  
*     A. NUMBER OF REMOTE BATCH STATIONS SUPPORTED          = STATIONS* 
*     B. TOTAL NUMBER OF BATCH DEVICES IN THE CONFIGURATION = TOTDEV* 
*     C. ESTIMATE AVERAGE NUMBER OF BATCH DEVICES ACTIVE AT 
*        ANY ONE TIME                                       = AVGACTDEV 
*     2. USING THE FOLLOWING CONSTANTS: 
*     A. FIXED CENTRAL MEMORY USAGE (PROGRAM, FIXED TABLES
*        ETC)                                         BASE  = 5200
*     B. STATION CONTROL BLOCK HEADER SIZE         TCBSIZE  = 8 
*     C. DATA BUFFER SIZE                         DATASIZE  =  400
*     D. UP-LINE CONTROL BLOCK HEADER SIZE         UCBSIZE  = 10
*     E. DOWN-LINE CONTROL BLOCK HEADER SIZE       DCBSIZE  = 12
*     3. CALCULATE THE TYPICAL CENTRAL MEMORY USAGE (TCMU)
*     TCMU = BASE + (2*STATIONS + TOTDEV + 2) + (DATASIZE) +
*            (STATIONS * TCBSIZE + AVGACTDEV * 2) + ((UCBSIZE + 
*            DCBSIZE) * AVGACTSIZE) 
* 
*     EXAMPLE:  STATIONS = 20, TOTDEV = 75, AVGACTDEV = 25
*     TCMU = 5200+(2*20+75+2)+400+(20*8+25*2)+((10+12)*25)
*          = 6467 
*1
*     *INSTALLATION PARAMETERS (SEE APPENDIX B) 
*     2.2.2 CENTRAL MEMORY LAYOUT 
* 
*     THE BELOW MEMORY LAYOUT BASICALLY UTILIZES A SET OF RESIDENT
*     ROUTINES THAT PERFORMS THE PROGRAM IDLE(NETWAIT) AND SERVICES 
*     DATA. DURING THE NETWAIT, THE MAIN OVERLAY PORTION REMAINS
*     IN THE CENTRAL MEMORY AND REST OF RBF IS ROLLED OUT TO DISK(RMS). 
*     WHEN RBF HAS SOMETHING TO DO, ROLLOUT ROUTINE READ IN REST OF 
*     RBF TO CENTRAL MEMORY AND EXECUTES SCH WHICH RESIDE IN PRIMARY
*     OVERLAY. IF RBF REQUIRES MORE BUFFER SPACES THEN EXEC ROUTINES
*     WILL BE CALLED. SCH WILL DECIDE WHICH SECONDARY OVERLAY TO BE 
*     LOADED AND DECIDE PROPER ENTRY POINT OF EXECUTION.
* 
*       OVERLAY 
*       (0,0)      +---------------------------------------+
*                  /                                       /
*                  /  ROLLOUT, NETWAIT                     /
*                  /  *CENTRAL MEMORY RESIDENT             /
*       (1,0)      +---------------------------------------+
*                  /  TABLES(ACN$TABLE,GLOBALI,ETC)        /
*                  /  SCH                                  /
*                  /  NETGET, NETPUT                       /
*                  /  EVENT ROUTINES(ACKED,WAIT, ETC)      /
*                  /  EXEC (BUFFER MANAGER)                /
*                  /  LINK PROCESSORS                      /
*                  /                                       /
*                  /                                       /
*                  /                                       /
*       (1,N)      +---------------------------------------+
*                  /  INI         DCM       FIN$DEV        /
*                  /  SMP         UCM       QCM            /
*                  /  EXT$CMD     NEW       UPDKDS         /
*                  /  CMD         CON$END                  /
*                  /  DIS         FIN$CON                  /
*                  +---------------------------------------+
*                  /                                       /
*                  /  DYNAMIC  MEMORY                      /
*                  /                                       /
*                  /                                       /
*                  +---------------------------------------+
* 
*1
* 
*     2.3 RELATIONSHIP OF THE MAJOR TABLES
* 
*     THE CONNECTION TABLE MAINTAINS INFORMATION ABOUT THE CONNECTIONS
*     MADE TO RBF, CURRENT STATE, WHAT TYPE OF DEVICE IS ON THE 
*     CONNECTION, LOCATION OF ITS CONTROL BLOCK, THE LOCATION OF THE
*     NEXT CONNECTION ON A PROCESS CHAIN, THE MODULE TO NEXT PROCESS
*     THIS CONNECTION.
*     EACH CONSOLE AND CARD READER CONNECTION AND OUTPUT BATCH DEVICE 
*     HAS A CONTROL BLOCK. THE CONSOLE CONTROL BLOCK MAINTAINS
*     INFORMATION ABOUT THE CONSOLE AND ITS ASSOCIATED BATCH DEVICES. 
*     THE BATCH DEVICE CONTROL BLOCKS MAINTAIN INFORMATION ABOUT THE
*     CURRENTLY PROCESSING FILE AT THE BATCH DEVICE. A PSEUDO 
*     CONNECTION IS USED TO CONTROL REQUESTS TO THE JOB MANAGEMENT
*     PROCESSOR (QAC). THE QUEUE CONTROL BLOCK KEEPS TRACK OF THE TWO 
*     QUEUE REQUEST CHAINS, THE IMMEDIATE QUEUE ACTION REQUEST CHAIN
*     AND THE EXTENDED DIVERT CHAIN. EACH CHAIN MAY CONTAIN QUEUE 
*     ACTION BLOCKS WHICH CONTAIN PARAMETER LIST PASSED FOR PROCESSING
*     TO QAC. 
*     ALL CONTROL BLOCK HAVE THE FIRST WORD IN COMMON FORMAT WHICH IS 
*     USED BY THE LINKAGE AND EVENT PROCESSING SCHEME.
*     CONSOLE AND BATCH DEVICE CONTROL BLOCKS MAY CONTAIN THE LOCATION
*     OF ASSOCIATED DATA BUFFERS WHICH WILL VARY IN SIZE DEPENDING
*     ON THE CONNECTION CHARACTERISTICS.
*     OTHER TABLES IN RBF ARE DESCRIBED IN THE LINKAGE DESCRIPTION. 
*     THESE TABLES, CHAIN AND MODULE TABLES, ARE USED IN OVERLAY
*     LINKAGE. THIS LINKAGE IS CARRIED IN THE CONNECTION TABLE ENTRIES
*     AS PROCESSING BY A MODULE IS REQUIRED FOR A CONNECTION. 
*1
* 
*0DC  FIGURE 5 - RELATIONSHIP OF MAJOR TABLES 
* 
*       A C N $ T A B L E       CONTROL BLOCKS
* 
*                               +-------------+ 
*        +-------------+        / UPLINE      / 
*      1 / 3 + CR      /.......>/ CONTROL BLK / 
*        +-------------+        +-------------+   +-------------+ 
*      2 / 3 + LP      /.........................>/ DOWNLINE    / 
*        +-------------+                          / CONTROL BLK / 
*      3 / 0 + CONSOLE /.......>+-------------+   +-------------+ 
*        +-------------+        / TERMINAL    / 
*                               / CONTROL     / 
*                               / BLOCK       / 
*              .                /             / 
*              .                +-------------+ 
*                               / CR  ACN = 1 / 
*                               +-------------+ 
*                               / LP  ACN = 2 / 
*                               +-------------+ 
* 
*                                                 +-------------+ 
*                                               .>/ Q ACTION BLK/...
*                                               . +-------------+   . 
*                                               .                   . 
*        +-------------+        +-------------+ . +-------------+   . 
*      M / Q PSEUDO ACN/.......>/ QUEUE       /   / Q ACTION BLK <..
*        +-------------+        / CONTROL     /   +-------------+ 
*                               / BLOCK       /          .
*                               /             /          .
*                               +-------------+          .
*                                                 +-------------+ 
*                                                 / Q ACTION BLK/ 
*                                                 +------------++ 
* 
* 
*                                                  +-------------+
*                                                .>/ SM BLOCK    /... 
*                                                . +-------------+   .
*         +-------------+        +-------------+ .                   .
*       N / SMP ACN     /.......>/ SUPERVISORY /.  +-------------+   .
*         +-------------+        / MESSAGE     /   / SM BLOCK    /<.. 
*                                / CONTROL     /   +-------------+
*                                / BLOCK       /          . 
*                                +-------------+          . 
*                                                         . 
*                                                  +-------------+
*                                                  / SM BLOCK    /
*                                                  +-------------+
*1
* 
*     2.3.1  MAJOR TABLE AND ITS FIELD DESCRIPTIONS 
* 
* 
*       APPLICATION CONNECTION TABLE - ACN$TABLE
* 
*       ADDR+0  12/CTLR,3/STATE,6/MODE,3/DEVTYPE,2/0,4/CHAIN,12/NEXT, 
*               6/DEVINDEX,12/CB
* 
* 
*       ACN$CTLR     -  FOR THE BATCH DEVICES IT HAS CONNECTION NUMBER
*                       OF CONTROLLING CONSOLE. 
*                       OTHERWISE VALUE ZERO INDECATES CONSOLE DEVICE 
* 
*       ACN$STATE    -  DEVICE CONNECTION STATE.
* 
*                       VALUE 
*           NON$EXISTENT  0  - NOT CONNECTED
*           PRE$CONNECT   1  - PSEUDO CONSOLE CONNECTTED( BATCH DEVICES 
*                              CONNECTED TO RBF WITHOUT CONSOLE) STATE
*           CONNECTED     2  - CONNECTION REQUEST SUPERVISORY MESSAGE 
*                              (CON/REQ) RECEIVED 
*           ACTIVE        3  - STREAM FLOW CONTROL INITIALIZED SUPER- 
*                              VISORY MESSAGE(FC/INIT) RECEIVED.
*           IDLE$DOWN     4  - IDLE DOWN IN PROGRESS
*           END$CONNECT   5  - CONNECTION IS BROKEN OR ENDED. 
* 
*       ACN$MODE     -  DEVICE ACTIVITY STATE 
* 
*                       VALUE 
*         CONSOLE 
*           CON$NULL      0  - NOT ACTIVE 
*           CON$IDLE      1  - BATCH DEVICE ACTIVE (MODE 4A ONLY) 
*           CON$ACTIVE    2  - INTERACTIVE DEVICE ACTIVE (MODE 4A ONLY) 
*           CON$GO        3  - CONSOLE ACTIVE 
* 
*         INPUT DEVICE
*           NULL          0  - NOT ACTIVE 
*           UCM$IDLE      1  - WAITING FOR VERIFY JOB CARD (IFC/JOB)
*                              SUPERVISORY
*           UCM$WTVEJ     2  - WAITING FOR VEJ TO VERIFY JOB CARDS
*           UCM$GO        3  - INPUT JOB AND CARD READER ACTIVE 
*           UCM$WTID      4  - CARD READER EMPTY AND INPUT JOB NOT
*                              ACTIVE 
*           UCM$WTGO      5  - INPUT JOB ACTIVE AND CARD READER EMPTY.
*           UCM$STOP      6  - INPUT STREAM CLOSED
*           UCM$ABTBY     7  - INPUT DATA IS BEING BY PASSED
*           UCM$ABTIM     8  - ABORTING INPUT STREAM IMMEDIATELLY 
* 
*         OUTPUT DEVICE 
*           NULL          0  - NOT ACTIVE 
*           DCM$IDLE      1  - LOOKING FOR OUTPUT FILE
*           DCM$GO        2  - TRANSMITTING OUTPUT DATA 
*           DCM$GOBAN     3  - TRANSMITTING BANNER
*           DCM$GOEOF     4  - TRANSMITTING ACCOUNTING DAYFILE
*           DCM$WAIT1     5  - TEMPORARY STOP OUTPUT TRANSMISSION 
*                              REQUEST OUTSTANDING
*           DCM$WAIT2     6  - OUTPUT DATA TRANSMISSION STOPPED 
*           DCM$WTBAN     7  - BANNER TRANSMISSION STOPPED. 
*           DCM$WTEOF     8  - ACCOUNTING DAYFILE MESSAGE TRANSMISSION
*                              STOPPED
*           DCM$STOP      9  - DO NOT SEARCH OUTPUT QUEUE 
*           DCM$SKIP     10  - SKIP OUTPUT DATA 
*           DCM$SKPEND   11  - SKIP TO END OF OUTPUT DATA 
*           DCM$ABORT    12  - ABORT OUTPUT DATA TRANSMISSION 
*           DCM$ABTBAN   13  - ABORT OUTPUT DATA TRANSMISSION AND 
*                              BANNER PAGE
*           DCM$ABTEOF   14  - ABORT OUTPUT DATA TRANSMISSION AND 
*                              ACCOUNTING DAYFILE MESSAGE 
*           DCM$RETURN   15  - RETURN OUTPUT FILE 
*           DCM$RETBAN   16  - RETURNING OUTPUT FILE WHILE GENERATING 
*                              BANNER PAGE
*           DCM$RETEOF   17  - RETURNING OUTPUT FILE AFTER EOF
* 
*       ACN$CHAIN    -  CHAIN WHICH THIS CONNECTION IS CURRENTLY ON 
*                       OR WILL BE ON 
* 
*                       VALUE 
*           NULL          0  - NULL 
*           EVENT         1  - EVENT CHAIN
*           SMP$          2  - SUPERVISORY CHAIN
*           EXT$CMD       3  - EXTENDED COMMAND CHAIN 
*           CMD$          4  - COMMAND CRACKER CHAIN
*           DIS$          5  - DISPLAY CHAIN
*           DCM$          6  - DOWN LINE CONTROL CHAIN
*           UCM$          7  - UP LINE CONTROL CHAIN
*           NEW$          8  - NEW DEVICE CHAIN 
*           CON$END       9  - END CONNECTION CHAIN 
*           FIN$CON      10  - CLEAN UP CONSOLE CONNECTION CHAIN
*           FIN$DEV      11  - CLEAN UP BATCH CONNECTION CHAIN
*           QCM$         12  - QAC CONTROL CHAIN
* 
*       ACN$NEXT     -  APPLICATION CONNECTION NUMBER OF NEXT CONNECTION
*                       ON THIS CHAIN 
* 
*       ACN$DEVINDEX -  INDEX TO TCB$DEVICE IN A TCB
* 
*       ACN$CB       -  ORDINAL OF THE DEVICE CONTROL BLOCK(TCB, DCB, 
*                       UCB)
* 
* 
*1
* 
*       TERMINAL CONTROL BLOCK - TCB
* 
* 
*       ADDR+0  1/COMPLETE,1/CRINTR,1/LPINTR,1/RESUME,1/REFRESH,1/0 
*               6/INPTYPE,12/TIME,18/EVENT,18/LINK
* 
*       ADDR+1  12/BLKSIZE,12/REF,12/ACN,3/ABL,1/STPFLAG,1/IAFFLAG, 
*               1/ENDFLAG,1/AUTOGO,1/MD4A,3/DT,5/TC,8/NDEVICE,
* 
*       ADDR+2  42/TERMNAME,1/READY,1/PAGEWAIT,8/PW,8/PL, 
* 
*       ADDR+3  42/FAMNAME,18/FAMORD
* 
*       ADDR+4  42/USERNUM,18/USERORD 
* 
*       ADDR+5  10/DIS,1/MOREINQ,1/EXTDIVC1,4/DIVFLAGS,4/NEXTBSN, 
*               4/NXTACKSN,12/QABBUF,12/ILAST,12/INPUT
* 
*       ADDR+6  1/WAITACK,1/ALOFLAG,12/ALOTIME,1/HWFLAG,9/0,
*               12/CITBUF,12/OLAST,12/OUTPUT
* 
*       ADDR+7  42/JOBNAME,6/CURACTN,6/CURSTATE,6/INPUT 
* 
*     *WORD 0 
* 
*       COMPLETE   - EVENT PROCESSING COMPLETED FLAG
*       CRINTR     - CARD READER INTERRUPTED OR CANNOT START BATCH
*                    ACTIVITY       (MODE 4A TERMINAL ONLY) 
*       LPINTR     - LINE PRINTER INTERRUPTED OR CANNOT START BATCH 
*                    ACTIVITY (MODE 4A TERMINAL ONLY) 
*       RESUME     - RESUME BATCH ACTIVITY (MODE 4A TERMINAL ONLY)
*       REFRESH    - REFRESHING DISPLAY MODE
*       INPTYPE    - INPUT TYPE FOR STATE TABLE 
*                    VALUE
*         NULLX        0  - NO INPUT
*         INPUTX       1  - RBF COMMAND (CONSOLE TYPE INS)
*         OUTPUTX      2  - OUTPUT MESSAGE TO CONSOLE 
*         RESUMEX      3  - RESUME TIME EXPIRED 
*         INTERRUPTX   4  - BATCH INTERRUPT 
*         BATCHCMDX    5  - START BATCH ACTIVITY COMMAND
*         REFRESHX     6  - REFRESH DISPLAY TIMMER EXPIRED
*         TERMFAILX    7  - TERMINAL FAILED 
*         CONBROKENX   8  - CONNECTION BROKEN 
*         USRINTRX     9  - USER INTERRUPT
* 
*       TIME       - CONSOLE TIMMER IS UPDATED EVERY TIME CONSOLE 
*                    CONNECTION NUMBER IS SERVISED. 
* 
*       EVENT      - ENTRY POINT ADDRESS OF SPECIFIC EVENT PROCESSOR
* 
*       LINK       - RETURN ADDRESS AFTER EVENT PROCESSING. 
* 
*     *WORD 1 
* 
*       BLKSIZE    - TRANSMISSION BLOCK SIZE OF TERMINAL
* 
*       REF        - REFRESHING DISPLAY TIMMER
* 
*       ACN        - APPLICATION CONNECTION NUMBER OF CONSOLE DEVICE
* 
*       ABL        - APPLICATION BLOCK LIMIT
*                    NUMBER OF MESSAGE BLOCKS RBF CAN SEND WITHOUT
*                    GETTING ACKNOWLEDGEMENT
* 
*       STPFLAG    - CONSOLE BUSY 
* 
*       IAFFLAG    - CONSOLE DEVICE CHANGED APPLICATION TO IAF
* 
*       ENDFLAG    - CONSOLE ACTIVITY ENDED 
* 
*       AUTOGO     - RESTRICTED INTERACTIVE CONSOLE FOR IBM 2780/3780 
*                    AUTOMATIC GO COMMAND IS GENERATED LONG AS TERMINAL 
*                    IS ABLE AND READY
* 
*       MD4A       - MODE 4A(200UT) TERMINAL FLAG 
* 
*       DT         - DEVICE TYPE, SHOULD BE ZERO FOR CONSOLE
* 
*       TC         - TERMINAL CLASS 
*                    VALUE
*                      0  - NULL
*         $M33         1  - M33(TTY)
*         $713         2  - CDC 713 
*                      3  - NOT USED
*         $2741        4  - IBM 2741
*         $M40         5  - M40(TTY)
*         $H2000       6  - HAZELTINE H2000 
*         $751         7  - CDC 751 
*         $T401X       8  - TEKTRONIX T4014 
*         $HASP$PST    9  - HASP POST-PRINT 
*         $200UT      10  - CDC 200UT 
*         $714$30     11  - CDC 714-30
*         $711        12  - CDC 711-10
*         $714$10     13  - CDC 714-10/20 
*         $HASP$PRE   14  - HASP PRE-PRINT
*         $734$1      15  - CDC 734 
*         $2780       16  - IBM 2780
*         $3780       17  - IBM 3780
* 
*       NDEVICE    - NUMBER OF BATCH DEVICES CONTROLED BY THIS CONSOLE
* 
*     *WORD 2 
* 
*       TERMNAME   - TERMINAL NAME OF CONSOLE DEVICE
* 
*       READY      - SEND READY MESSAGE IF TRUE (MODE 4A ONLY)
* 
*       PAGEWAIT   - PAGE WAIT FLAG FOR DISPLAY 
* 
*       PW         - SCREEN WIDTH 
* 
*       PL         - SCREEN LENGTH
* 
*     *WORD 3 
* 
*       FAMNAME    - LOGGED IN USER FAMILY NAME 
* 
*       FAMORD     - LOGGED IN USER FAMILY ORDINAL
* 
*     *WORD 4 
* 
*       USERNUM    - LOGGED IN USER NAME
* 
*       USERORD    - LOGGED IN USER ORDINAL 
* 
*     *WORD 5 
* 
*       DIS        - DISPLAY TYPE 
*         BIT 0  JOBFLAG - JOB DISPLAY FLAG 
*             1  DEVFLAG - DEVICE DISPLAY FLAG
*             5  EXFLAG  - EXECUTE QUEUE DISPLAY
*             6  PTFLAG  - PLOTTER QUEUE DISPLAY
*             7  PUFLAG  - PUNCH QUEUE DISPLAY
*             8  PRFLAG  - PRINT QUEUE DISPLAY
*             9  INFLAG  - INPUT QUEUE DISPLAY
* 
*       MOREINQ    - MORE JOBS ON DIS,RFR THEN ONE SCREEN FULL
* 
*       EXTDIVC1   - QAC WAS CALLED FIRST TIME. SOMETIMES DISPLAY 
*                    ROUTINE HAVE TO CALL QAC ROUTINE MORE THAN ONCE
*                    TO GET ALL THE JOBS ASSOCIATED WITH LOGGED IN
*                    USER NAME. 
* 
*       DIVFLAG    - EXTENDED DIVERT JOBS ASSOCIATED WITH LOG IN USER 
*                    VALUE
*                      1 - DIVERT ALL PRINT QUEUE JOBS
*                      2 - DIVERT ALL PUNCH QUEUE JOBS
*                      4 - DIVERT ALL PLOT  QUEUE JOBS
* 
*       NEXTBSN    - NEXT USABLE BLOCK SEQUENCE NUMBER
* 
*       NXTACKSN   - NEXT ACK BLOCK SEQUENCE NUMBER EXPECTED BY RBF.
* 
*       QABBUF     - QAC REQUEST BLOCK ORDINAL. 
* 
*       ILAST      - LAST INPUT BLOCK ORDINAL POINTER.
*                    INPUT = CONSOLE COMMAND
* 
*       INPUT      - FIRST INPUT BLOCK ORDINAL POINTER. 
*                    INPUT = CONSOLE COMMAND
* 
*     *WORD 6 
* 
*       WAITACK    - WAIT FOR ACKNOWLEDGEMENT RESPONSE TO BATCH DATA SM 
* 
*       ALOFLAG    - TERMINAL AUTO-LOGOUT FLAG
* 
*       ALOTIME    - INACTIVITY TIMER FOR TERMINALS THAT ARE
*                    CANDIDATES TO BE AUTO-LOGGED OUT 
* 
*       HWFLAG     - HARDWIRED TERMINAL FLAG, SET TRUE FOR HARDWIRED
*                    TERMINALS
* 
*       CITBUF     - COMMAND INTERFACE BLOCK POINTER
* 
*       OLAST      - LAST CONSOLE OUTPUT BLOCK POINTER
* 
*       OUTPUT     - FIRST CONSOLE OUTPUT BLOCK POINTER 
* 
*     *WORD 7 
* 
*       JOBNAME    - JOB NAME/NEW APPLICATION NAME
* 
*       CURACTN    - CURRENT ACTION 
* 
*       CURSTATE   - CURRENT DEVICE ACTIVITY STATE
* 
*       CURINPUT   - CURRENT INPUT(STIMULUS)
* 
* 
*1
* 
*0DC  FIGURE 6 - RELATIONSHIP OF TCB AND OTHER TABLES 
* 
* 
*         T  C  B 
* 
*     +------+------+ 
*     /  WORD ZERO  /            +----------+       +----------+
*     +------+------+            / CONSOLE  /       / CONSOLE  /
*     /  WORD ONE   /          .>/ INPUT 1  /......>/ INPUT 2  /.....>
*     +------+------+         .  +----------+       +----------+
*     /  WORD TWO   /        .
*     +------+------+       . 
*     /     ETC.    /      .
*     +------+------+     .      +----------+ 
*     /             /    .       / QAB      / 
*     +------+------+   .        /          / 
*     /   /QAB/INPUT/...........>+----------+ 
*     +------+------+ 
*     /  /CIT/OUTPUT/...........>+----------+ 
*     +------+------+   .        / CIT      / 
*     /             /    .       /          / 
*     +------+------+     .      +----------+ 
*                          .
*                           . 
*                            .
*                             .  +----------+       +----------+
*                              .>/ CONSOLE  /......>/ CONSOLE  /.....>
*                                / OUTPUT 1 /       / OUTPUT 2 /
*                                +----------+       +----------+
* 
* 
*0DC  FIGURE 6
*1
*       QUEUE CONTROL BLOCK - QCB 
* 
* 
*       ADDR+0  1/COMPLETE,11/0,12/TIME,18/EVENT,18/LINK
* 
*       ADDR+1  60/IMDTBSF
* 
*       ADDR+2  60/IMDTBSL
* 
*       ADDR+3  60/IMDSUBF
* 
*       ADDR+4  60/IMDSUBL
* 
*       ADDR+5  60/EXTTBSF
* 
*       ADDR+6  60/EXTTBSL
* 
*       ADDR+7  60/EXTSUBF
* 
*       ADDR+8  60/EXTSUBL
* 
* 
*     *WORD 0 
* 
*       COMPLETE   - EVENT PROCESSING COMPLETED FLAG
* 
*       TIME       - LAST TIME QCM CALLED QAC FOR QUEUE FILE
*                    MODIFICATION 
* 
*       EVENT      -  ENTRY POINT ADDRESS OF QTEST,EVENT PROCESSOR
* 
*       LINK       -  RETURN ADDRESS AFTER EVENT PROCESSING 
* 
*     *WORD 1 
* 
*       IMDTBSF    -  FIRST QAC ACTION BLOCK POINTER OF TO-BE-SUBMITTED 
*                     IMMEDIATELY CHAIN 
*     *WORD 2 
*       IMDTBSL    -  LAST QAC ACTION BLOCK POINTER OF TO-BE-SUBMITTED
*                     IMMEDIATELY CHAIN 
*     *WORD 3 
*       IMDSUBF    -  FIRST QAC ACTION BLOCK POINTER OF SUBMITTED CHAIN 
*     *WORD 4 
*       IMDSUBL    -  LAST QAC ACTION BLOCK POINTER OF SUBMITTED CHAIN
*     *WORD 5 
*       EXTTBSF    -  FIRST QAC ACTION BLOCK POINTER OF EXTENDED ACTION 
*                     TO-BE-SUBMITTED CHAIN 
*     *WORD 6 
*       EXTTBSL    -  LAST QAC ACTION BLOCK POINTER OF EXTENDED ACTION
*                     TO-BE-SUBMITTED CHAIN 
*     *WORD 7 
*       EXTSUBF    -  FIRST QAC ACTION BLOCK POINTER OF EXTENDED ACTION 
*                     SUBMITTED CHAIN 
*     *WORD 8 
*       EXTSUBL    -  LAST QAC ACTION BLOCK POINTER OF EXTENDED ACTION
*                     SUBMITTED CHAIN 
* 
* 
*     A QAB IS PLACED ON A PARTICULAR CHAIN ACCORDING TO WHETHER IT IS
*     MEANT TO CAUSE A ONE-TIME REQUEST (IMMEDIATE ACTION CHAIN) OR 
*     LONG-TERM, PERIODIC REQUEST (EXTENDED ACTION CHAIN).
*     IF A MODULE REQUIRES QAC CALL THEN MODULE CREATES 
*     QAB AND LINK QAB ON TO TO-BE-SUBMITTED CHAIN BY CALLING QCMCALL 
*     ROUTINE. ON THE OTHER HAND QCM WILL DELINK QAB FROM THE TO-BE-
*     SUBMITTED CHAIN AND LINK QAB TO SUBMITTED CHAIN AFTER CALLING QAC 
*     PP ROUTINE. QCM WILL DELINK QAB FROM THE SUBMITTED CHAIN AFTER
*     QAC COMPLETES THE REQUEST.
* 
* 
* 
*       UPLINE CONTROL BLOCK - UCB
* 
*       ADDR+0  1/COMPLETE,5/0,6/INPTYPE,12/TIME,18/EVENT,18/LINK 
* 
*       ADDR+1  42/TERMNAME,1/STPEND,1/INTRPT,1/FILEACT,2/0 
*               12/BUFFER 
* 
*       ADDR+2  6/CURINPUT,6/CURSTATE,6/CURACTN,6/MESSAGE,6/0 
*               12/BUFSIZE,6/0,12/DISKERR 
* 
*       - VEJ CALL PARAMETERS - 
* 
*       ADDR+3  42/FETLFN,6/VEJERR,11/0,1/FETCB 
* 
*       ADDR+4  36/0,24/VEJTID
* 
*       ADDR+5  42/0,18/VEJLWA
* 
*       ADDR+6  42/0,18/VEJFWA
* 
*       ADDR+7  12/FETFNT,48/0
* 
*       ADDR+8  42/VEJFAM,18/0
* 
*       ADDR+9  42/VEJUSR,18/0
* 
*       - DSP CALL PARAMETERS - 
* 
*       ADDR+3  42/FETLFN,6/DSPERR,11/0,1/FETCB 
* 
*       ADDR+4  15/0,1/DSPABT,1/DSPINP,7/0,12/DSPMNE,7/0, 
*               1/DSPACC,3/0,1/DSPNDM,7/0,1/DSPDC,2/0,1/DSPCS,1/0 
* 
*       ADDR+5  60/0
* 
*       ADDR+6  60/0
* 
*       ADDR+7  24/0,12/DSPMSG,12/0,12/DSPFNT 
* 
*       ADDR+8  36/0,24/DSPCARDS
* 
*       ADDR+9  42/DSPTNAME,18/0
* 
*     *WORD 0 
* 
*       COMPLETE   - EVENT PROCESSING COMPLETED FLAG
*       INPTYPE    - INPUT TYPE FOR STATE TABLE 
*                    VALUE
*         NULL         0  - NO INPUT
*         GOUCM        1  - GO COMMAND FROM THE TERMINAL
*         STOPENDUCM   2  - STOP,CR,END COMMAND FROM THE TERMINAL 
*         RESUMEUCM    3  - RESUME COMMAND
*         ABORTUCM     4  - ABORT,CR COMMAND FROM THE TERMINAL
*         IFCJOBUCM    5  - IFC/JOB SM, VERIFY JOB CARDS
*         EOSUCM       6  - IFC/STPD/RC=END OF STREAD 
*         CREMTUCM     7  - IFC/STPD/RC=CARD READER EMPTY 
*         DSKERRUCM    8  - IFC/STPD/RC=DISK ERROR
*         CRERRUCM     9  - IFC/STPD/RC=CARD READER ERROR 
*         IFCENDUCM    10 - IFC/END SM, INPUT BY-PASSED 
*         IFCEOJUCM    11 - IFC/EOJ SM, END OF JOB
*         IFCABTUCM    12 - IFC/ABORT SM, INPUT ABORTED BY CCP
*         BADJOBUCM    13 - BAD JOB/USER CARD 
*         GOODJOBUCM   14 - GOOD JOB AND USER CARD
*         INTRPTUCM    15 - BATCH INTERRUPT 
*         ENDCONUCM    16 - END COMMAND FROM TERMINAL(MODE4A ONLY)
*         CONCBUCM     17 - CON/CB SM, CONNECTION BROKEN
*         QFULLUCM     18 - INPUT QUEUE FULL
*         IDLEDOWNUCM  19 - NETWORK IDLE DOWN REQUEST 
* 
*       TIME       - UCM TIMMER IS UPDATED EVERY TIME CONNECTION IS 
*                    SERVISED 
* 
*       EVENT      - ENTRY POINT ADDRESS OF SPECIFIC EVENT PROCESSOR
* 
*       LINK       - RETURN ADDRESS AFTER EVENT PROCESSING
* 
*     *WORD 1 
* 
*       TERMNAME   - TERMINAL NAME OF BATCH INPUT DEVICE
* 
*       STPEND     - TERMINAL OPERATOR REQUESTED STOP CARD READING
*                    AT THE END OF STREAM 
* 
*       INTRPT     - CARD READING INTERRUPTED DUE TO INTERACTIVE
*                    CONSOLE INPUT OR OUTPUT
* 
*       FILEACT    - INPUT FILE CREATED FOR CARD READER DATA
*                    FLAG IS SET AFTER VEJ RETURNS NO JOB CARD ERROR
*                    RESPONSE AND CLEARED AFTER DISPOSE OR PURGE INPUT
*                    FILE.
* 
*       BUFFER     - SUPERVISORY MESSAGE TO UCM. BUFFER ORDINAL IS
*                    PLACED BY SMP IF IT CANNOT PROCESS 
* 
*       CURINPUT   - CURRENT INPUT TO UCM (SEE UCM IMS) 
* 
*       CURSTATE   - CURRENT DEVICE STATE OF UCM (SEE UCM IMS)
* 
*       CURACTN    - CURRENT ACTION/SEMANTIC (SEE UCM IMS)
* 
*       MESSAGE    - CONSOLE MESSAGE TYPE 
*                    VALUE
*         NULL         0  - NO MESSAGE
*         JOBERR       1  - JOB CARD ERROR MESSAGE
*         USRERR       2  - USER CARD ERROR MESSAGE 
*         ACKMSG       3  - ACKNOWLEDGE JOB NAME MESSAGE
*         QFULL        4  - INPUT QUEUE FULL MESSAGE
*         CRERR        5  - CARD READER ERROR MESSAGE 
*         DSKFUL       6  - DISK FULL(TRACK LIMIT REACHED) MESSAGE
*         DSKPAR       7  - DISK PARITY ERROR MESSAGE 
*         NOTRDY       8  - CARD READER NOT READY MESSAGE 
*         ABTED        9  - INPUT ABORTED MESSAGE 
*         INAPPR       10 - INAPPROPRIATE COMMAND MESSAGE 
* 
*       BUFSIZE    - ACTUAL SIZE OF UCB 
* 
*       DISKERR    - DISK ERROR CODE DETECTED BY PIP
*                    VALUE
*         DSKPARERR    1  - DISK PARITY ERROR 
*         DSKFULERR    7  - DISK FULL 
* 
*       FETLFN     - JOB NAME 
* 
*     *WORD 3 
* 
*       VEJERR     - VEJ ERROR CODE 
*                    VALUE
*         JOBOK        0  - NO ERROR ENCOUNTERED. 
*         JOBERR       1  - JOB CARD ERROR. 
*         BADBUF       2  - BUFFER ARGUMENT ERROR, BAD FWA OR LWA.
*         ACCERR       3  - USER CARD ERROR.
*         INPFUL       4  - FNT/DISK FULL.
*         BADTID       5  - INVALID TID, BAD FAMILY/USER NAME.
*         LAST         6  - ILLEGAL REQUEST.
* 
*       FETCB      - PP REQUEST COMPLETED FLAG
* 
*     *WORD 4 
* 
*       VEJTID     - TERMINAL IDENTIFICATION. LOWER EIGHTEEN BITS 
*                    CONTAIN THE COMPLEMENT OF A CENTRAL MEMORY ADDRESS 
*                    OF A TWO WORD IN THE FOLLOWING FORMAT
*                     ADDR+8  42/ FAMILY NAME ,18/ 0
*                     ADDR+9  42/ USER NUMBER ,18/ 0
* 
*     *WORD 5 
* 
*       VEJLWA     - LAST WORD ADDRESS OF BUFFER CONTAINING JOB/USER
*                    CARDS. 
* 
*     *WORD 6 
* 
*       VEJFWA     - FIRST WORD ADDRESS OF BUFFER CONTAINING JOB/USER 
*                    CARDS. 
* 
*     *WORD 7 
* 
*       FETFNT     - FILE NAME TABLE ADDRESS
* 
*     *WORD 8 
* 
*       VEJFAM   - FAMILY NAME OF TERMINAL USER 
* 
*     *WORD 9 
* 
*       VEJUSR   - USER NAME OF TERMINAL USER 
* 
*     *WORD 3 
* 
*       DSPERR     - ERROR CODE RETURNED BY DSP 
* 
*     *WORD 4 
* 
*       DSPABT     - SEND INPUT FILE WITH A KNOWN ERROR TO INPUT QUEUE
*                    SO THAT SYSTEM CAN ABORT THE JOB AND CREATE OUTPUT 
*                    FILE 
* 
*       DSPINP     - DISPOSE TO INPUT QUEUE ON JOB CARD ERROR 
* 
*       DSPMNE     - DISPOSITION CODE IN DISPLAY CODE.
* 
*       DSPACC     - DO ACCOUNTING
* 
*       DSPNDM     - NO DAYFILE MESSAGE FLAG
* 
*       DSPDC      - DISPOSITION CODE FLAG
* 
*       DSPCS      - ROUTE TO CENTRAL SITE FLAG 
* 
*     *WORD 7 
* 
*       DSPMSG     - REASON CODE FOR ABORTED INPUT FILE 
*                    VALUE
*         VEJERR     1  - JOB/USER CARD ERROR 
*         CRERR      2  - CARD READER ERROR 
*         OPREQ      3  - JOB ABORTED BY TERMINAL OPERATOR
*         DSKFUL     4  - DISK FULL 
*         DSKPAR     5  - DISK PARITY ERROR 
* 
*       DSPFNT     - FNT ADDRESS
* 
*     *WORD 8 
* 
*       DSPCARDS   - NUMBER OF CARD READ
* 
*     *WORD 9 
* 
*       DSPTNAME   - TERMINAL NAME FOR DSP
* 
*1
* 
*     DOWN LINE CONTROL BLOCK - DCB 
* 
* 
*     ADDR+0  1/COMPLETE,1/PROCESSD,3/DEVABL,1/0,6/INPTYPE,12/TIME
*             18/EVENT,18/LINK
* 
*     ADDR+1  42/TERMNAME,1/STPEND,1/0,1/FILEACT,2/0,1/EOJ
*             12/QABBUFO
* 
*     ADDR+2  6/CURINPUT,6/CURSTATE,6/CURACTN,12/PMTXT,12/BUFSIZE 
*             9/PLTEMP,1/DEVSTOP,1/TEMPSTP,1/0,1/INTRPT,1/PMINT 
*             1/LIMIT,1/NREADY,1/DISKERR
* 
*     ADDR+3  24/ACCOUNT,24/ACCLIMIT
* 
*     ADDR+4  24/DAYFILE,24/EOIPRU,12/DISKERR 
* 
*     ADDR+5  24/CURPRU,6/0,12/FNTORD,3/FILEEC,1/0,2/FILEIC,3/BANNER
*             1/RETURN,3/BANPUT,5/0 
* 
*     ADDR+6  42/FETLFN,17/FETSTAT,1/FETCB
* 
*     ADDR+7  36/0,6/FETLEN,18/FETFIRST 
* 
*     ADDR+8  60/FETIN
* 
*     ADDR+9  60/FETOUT 
* 
*     ADDR+10 12/FETFNT,30/0,18/FETLIMIT
* 
*     ADDR+11 12/CONTROL,1/NBF,2/0,9/PL,24/0,12/ORIGIN
* 
*     ADDR+12 30/FETCRI,30/FETINDEX 
* 
*     - DSP CALL PARAMETERS - 
* 
*     ADDR+6  42/FETLFN,6/DSPERR,11/0,1/FETCB 
* 
*     ADDR+7  48/0,18/DSPFLAGS
* 
*     ADDR+8  60/0
* 
*     ADDR+9  47/0,1/DSPPRB,12/DSPPR
* 
*     ADDR+10 43/0,5/DSPRC,12/DSPFNT
* 
* 
*     COMPLETE     - EVENT PROCESSING COMPLETED FLAG
* 
*     PROCESSD     - INPUT PROCESSED FLAG 
* 
*     DEVABL       - APPLICATION BLOCK LIMIT
* 
*     INPTYPE      - INPUT TYPE FOR DCM STATE TABLE 
*                    VALUE
*       NULL           0  - NO INPUT
*       GODCM          1  - GO COMMAND
*       STOPDCM        2  - STOP COMMAND
*       RESUMEDCM      3  - RESUME COMMAND
*       DEVFLDCM       4  - SUPPRESS/RESTORE FORMAT EFFECTOR COMMAND
*       STOPENDDCM     5  - STOP,END COMMAND
*       SKPDCM         6  - SKIP OR SKIP,DFL COMMAND
*       SKPENDDCM      7  - SKIP,END COMMAND
*       REWINDDCM      8  - REWIND COMMAND
*       ABORTDCM       9  - ABORT COMMAND 
*       RETURNDCM      10 - RETURN COMMAND
*       OFCEOODCM      11 - OFC/EOO SM, END OF OUTPUT 
*       OFCABTDCM      12 - OFC/ABORT SM, OUTPUT ABORTED
*       INTRPTDCM      13 - OFC/STPD/RC = BATCH INTERRUPT 
*       PMDCM          14 - OFC/STPD/RC = PM INTERRUPT
*       LIMITDCM       15 - OFC/STPD/RC = LIMIT EXCEEDED
*       NOTRDYDCM      16 - OFC/STPD/RC = DEVICE NOTREADY 
*       DSKERRDCM      17 - OFC/STPD/RC = DISK PARITY ERROR 
*       OFCSTPDCM      18 - OFC/STP SM, OUTPUT STOPPED TEMPORARILY
*       OFCDATDCM      19 - OFC/DATA SM, DIRECT OUTPUT TRANSMITTED
*       FILEFNDDCM     20 - QAC FOUND OUTPUT FILE 
*       BANCOMPDCM     21 - BANNER PAGE GENERATION COMPLETED
*       ENDCONDCM      22 - END BATCH ACTIVITIES, MODE 4A OR BINARY 
*                           SYNCH CONSOLE LOGGED OUT
*       CONCBDCM       23 - CON/CB SM, CONNECTION ENDED 
* 
*     TIME         - DCB TIMMER IS UPDATED EVERY TIME CONNECTION IS 
*                    SERVISED 
* 
*     EVENT        - ENTRY POINT ADDRESS OF EVENT PROCESSOR 
* 
*     LINK         - RETURN ADDRESS AFTER EVENT PROCESSING
* 
*     *WORD 1 
* 
*     TERMNAME     - TERMINAL NAME OF BATCH OUTPUT DEVICE 
* 
*     STPEND       - TERMINAL OPERATOR REQUESTED STOP PRINTING AT THE 
*                    END OF CURRENT OUTPUT
* 
*     FILEACT      - OUTPUT FILE ACTIVE FLAG
*                    FLAG IS SET WHEN QAC FINDS OUTPUT AND CLEARED
*                    WHEN FILE IS RETURNED TO THE OUTPUT QUEUE OR 
*                    PURGED.
* 
*     EOJ          - LAST OUTPUT BLOCK FLAG (END OF STREAM) 
* 
*     QABBUFO      - QAC ACTION BLOCK ORDINAL 
* 
*     *WORD 2 
* 
*     CURINPUT     - CURRENT INPUT TO DCM 
* 
*     CURSTATE     - CURRENT DEVICE STATE OF DCM
* 
*     CURACTN      - CURRENT ACTION/SEMANTC OF DCM
* 
*     PMTXT        - PRINTER MESSAGE BUFFER ORDINAL 
* 
*     BUFSIZE      - CURRENT DCB SIZE 
* 
*     PLTEMP       - TEMPORARY STORAGE OF THE PRINTER PAGE LENGTH 
* 
*     DEVSTOP      - OUTPUT DEVICE STOPPED
* 
*     TEMPSTP      - OUTPUT DATA TRANSMISSION TEMPORARILY STOPPED 
* 
*     INTRPT       - BATCH DEVICE INTERRUPTED 
* 
*     PMINT        - PRINTER INTERRUPTED DUE TO PM
* 
*     LIMIT        - BATCH DEVICE STOPPED DUE TO OUTPUT FILE LIMIT
*                    EXCEEDED CONDITION 
* 
*     NREADY       - OUTPUT DEVICE IS NOT READY TO ACCEPT OUTPUT
* 
*     DSKERR       - OUTPUT TRANSMISSION STOPPED DUE TO THE DISK
*                    PARITY ERROR IN OUTPUT FILE. 
* 
*     *WORD 3 
* 
*     ACCOUNT      - NUMBER OF LINES OUTPUTTED BY RBF AT THE TERMINAL 
* 
*     ACCLIMIT     - OUTPUT FILE LIMIT
* 
*     *WORD 4 
* 
*     DAYFILE      - BEGINNING OF DAYFILE PRU POSITION
* 
*     EOIPRU       - LAST PRU POSITION (FILE SIZE)
* 
*     DISKERR      - DISK ERROR CODE
*                    VALUE
*                      1 - DISK PARITY ERROR
* 
*     *WORD 5 
* 
*     CURPRU       - CURRENT PRU POSITION 
* 
*     FNTORD       - FNT ADDRESS
* 
*     FILEEC       - EXTERNAL CHARACTER TYPE
*                    VALUE
*       PRINT 
*       A4             2  - ASCII 48 CHARACTER PRINT TRAIN
*       B4             3  - BCD 48 CHARACTER PRINT TRAIN
*       B6             4  - BCD 63/4 CHARACTER PRINT TRAIN
*       A6             5  - ASCII 64 CHARACTER PRINT TRAIN
*       A9             6  - ASCII 96 CHARACTER PRINT TRAIN
* 
*       PUNCH 
*       026            4  - PUNCH BCD MODE
*       029            5  - PUNCH ASCII MODE
* 
*       PLOT
*       A6             5  - 6-BIT PLOTTER 
*       A9             6  - 8-BIT PLOTTER 
* 
*     FILEIC       - INTERNAL CHARACTER TYPE
*                    VALUE
*       DIS            0  - FILE IS IN DISPLAY (6-BIT FRAME)
*       ASCII          1  - FILE IS IN ASCII  (12-BIT FRAME)
* 
*     BANNER       - NUMBER OF BANNER PAGE PER OUTPUT FILE
* 
*     RETURN       - IF THIS FLAG IS SET, OUTPUT FILE IS IN PROCESS OF
*                    RETURNING TO OUTPUT QUEUE
* 
*     BANPUT       - PSEUDO-FLOW CONTROL NUMBER FOR BANNER SUPERVISORY
*                    MESSAGE BLOCK (OFC/DATA) 
* 
*     *WORD 6 
* 
*     FETLFN       - OUTPUT FILE NAME 
* 
*     FETSTAT      - OUTPUT FILE STATUS 
* 
*     FETCB        - PP REQUEST COMPLETED 
* 
*     *WORD 7 
* 
*     FETLEN       - LENGTH OF FET
* 
*     FETFIRST     - FIRST WORD ADDRESS OF INPUT/OUTPUT BUFFER
* 
*     *WORD 8 
* 
*     FETIN        - THE NEXT AVAILABLE LOCATION FOR ENTERING DATA INTO 
*                    THE BUFFER 
* 
*     FETOUT       - THE NEXT AVAILABLE LOCATION FOR REMOVING DATA FROM 
*                    THE BUFFER 
* 
*     *WORD 10
* 
*     FETFNT       - FNT ADDRESS
* 
*     FETLIMIT     - LAST WORD ADDRESS PLUS 1 OF THE BUFFER 
* 
*     *WORD 11
* 
*     CONTROL      - BANNER PAGE CONTROL INFORMATION FOR QAP ROUTINE
* 
*     NBF          - TERMINAL SUPPORTS SKIP TO BOTTOM-OF-FORM(BOF) FLAG,
*                    SET TO ZERO IF THE TERMINAL SUPPORTS SKIP TO BOF,
*                    SET TO ONE IF NO SUPPORT OF SKIP BOF 
* 
*     PL           - PAGE LENGTH OF THE LINE PRINTER
*                    IF ZERO, SYSTEM ROUTINE 0BP USES DEFAULT VALUE 
*                    OF 66
* 
*     ORIGIN       - ORIGIN TYPE ASSOCIATED WITH SPECIFIED FILE FOR 
*                    QAP ROUTINE
*                    VALUE IS ALL WAYS 2 FOR RBF
* 
*     *WORD 12
* 
*     FETCRI       - THE CURRENT RANDOM INDEX FOR THE FILE
* 
*     FETINDEX     - RELATIVE SECTOR ADDRESS FOR A RANDOM I/O REQUEST 
* 
*1
* 
*     1. PROC NAME           AUTHOR              DATE 
*        AAARBF              A M PRATT/B M WEST  77/05/05 
* 
*     2. FUNCTIONAL DESCRIPTION 
         EXTERNALY DEFINES MESSAGES ISSUED TO THE JOBS DAYFILE BY QAP 
* 
*     3. METHOD USED
*        NOT APPLICABLE 
* 
*     4. ENTRY PARAMETERS 
*        NONE 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS CALLED
* 
*     7. ROUTINES CALLED
*        NONE 
* 
*     8. DAYFILE MESSAGES 
*        NONE 
 #
*ENDIF
  
  
  
      CONTROL PRESET; 
      CONTROL PACK; 
  
  
  
  
  
#         ARRAY USED BY EXTCMD FOR DAYFILE MSG CALL FOR QAP            #
  
      XDEF
      ARRAY ABORT$MESS S(4);
        BEGIN                          # MESSAGE FOR USER DAYFILE      #
        ITEM PUR$MESS C(0,0,38) = 
             ["EXECUTING JOB ABORTED BY PURGE COMMAND"];
        ITEM PUR$ZERO U(3,48,12) = [0]; 
        END 
  
      COMMON CONVTBL; 
        BEGIN 
        ARRAY TABLE [0:12] S(1);
          BEGIN                        # ASCII 96 TO DISPLAY #
          ITEM TB8T6 C (0,0,127);      # CHARACTER CONVERSION#
          ITEM TBLINIT U (0,0,60)=[O"55555555555555555555", 
                                   O"55555555555555555555", 
                                   O"55555555555555555555", 
                                   O"55555566646053636770", 
                                   O"51524745564657503334", 
                                   O"35363740414243440077", 
                                   O"72547371740102030405", 
                                   O"06071011121314151617", 
                                   O"20212223242526273031", 
                                   O"32617562766574010203", 
                                   O"04050607101112131415", 
                                   O"16172021222324252627", 
                                   O"30313261756276650000"];
          END                          # TABLE               #
        END 
  
      END                    # END OF AAARBF                           #
      TERM
