*DECK RBFBONES
          IDENT  RBF2P0 
*IF DEF,IMS 
*#
*1DC  RBF2P0
* 
*     1. PROC NAME           AUTHOR              DATE 
*        RBF2P0              FOX                 77/07/07 
*                            SEYUNG OH           NOV 19,1979
* 
*     2. FUNCTIONAL DESCRIPTION 
*        -RBF2P0- IS THE FIRST PROC TO GET CONTROL FROM THE OPERATING 
*        SYSTEM WHEN -RBF- IS INITIATED.
* 
*     3. METHOD USED
*        -RBF2P0- DOES THE FOLLOWING SEQUENCE - 
*         A) INITIALEZES REPRIEVE ERROR PROCESSING
*         B) LOADS THE PRIMARY OVERLAY (1,0)
*         C) LOADS THE INITIALIZATION SECONDARY OVERLAY (1,1) 
*         D) TRANSFERS TO -INI- IN (1,1) WHICH EVENTUALLY CALLS -SCH-.
* 
*     4. ENTRY PARAMETERS 
*        NONE 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS USED
*        NONE 
* 
*     7. ROUTINES CALLED
*        LOADO
* 
*     8. DAYFILE MESSAGES 
*        NONE 
* 
*#
*ENDIF
          LCC    OVERLAY(RBF2P0,00,00)
          LIST   F           LIST IF SKIPPED CODE 
          COMMENT  RBF MAIN OVERLAY, ROLLIN AND OVERLAY LOADER
  
          LDSET  USE=RBFKDS        FORCE LOADING OF K-DISPLAY BUFFER
*IF,DEF,TRACE 
          LDSET  USE=DMP$COM      FORCE LOADING OF THE COMMON BLOCKS
          LDSET  USE=DMP$ZB5      FORCE LOADING OF OUTPUT FET - BUFFER
*ENDIF
  
PRIM$L1   EQU    1
PRIM$L2   EQU    0                 L1 AND L2 OF PRIMARY OVERLAY 
INI$L1    EQU    1                 L1 OF -INI- OVERLAY
INI$L2    EQU    1                 L2 OF -INI- OVERLAY
*CALL MACDEF
*CALL CRCOM 
          SPACE  2
* 
*         DUMMY ENTRIES TO AVOID LOADING UN-USED MEMORY 
*         MANAGEMENT ROUTINES FROM NAMPL
*CALL SYS$PAR 
*CALL CON$PAR 
 OPL      XTEXT  COMCMAC     NOS CPU COMPASS MACROS 
 OPL      XTEXT  COMSSFM     NOS SYSTEM SECURITY MACROS 
 OPL      XTEXT  COMCDCM     NOS DISPLAY CONSOLE MACROS 
* 
          ENTRY  OVDELET
          ENTRY  OVENTER
* 
OVDELET   BSS    0
OVENTER   EQ     *+1S17 
          SPACE  2
          ENTRY  RBF2P0 
RBF2P0    NO
+         REPRIEVE RPVADDR,SET,77B INITIALIZE REPRIEVE PROCESSING 
          SX6    PRIM$L1           GET PRIMARY OVERLAY L1 
          SX7    PRIM$L2           GET PRIMARY OVERLAY L2 
          SA6    PRIMARY
          SA7    SECOND 
          RJ     LOADO             LOAD THE PRIMARY OVERLAY 
          SX6    INI$L1 
          SX7    INI$L2            GET L1 AND L2 OF INI OVERLAY 
          SA6    PRIMARY
          SA7    SECOND 
          RJ     LOADO
          SA4    LDRCALL2          GET ENTRY POINT ADDRESS OF -INI- 
          SB3    X4                ADDRESS IS IN RIGHTMOST 18 BITS
          GETSSL SYSSSL 
          CSTATUS CTYPE      GET SYSTEM CONSOLE TYPE
          JP     B3                GO TO -INI-, NO RETURN.............. 
          TITLE  OVERLAY LOADER INTERFACE 
*IF DEF,IMS 
*#
*1DC  LOADO 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        LOADO               FOX                 77/07/07 
*                            SEYUNG OH           NOV 19,1979
* 
*     2. FUNCTIONAL DESCRIPTION 
*        -LOADO- IS THE COMPASS INTERFACE TO INITIATE LOADING OF
*        OVERLAYS FROM THE SYSTEM LIBRARY, LOCAL LIBRARY OR LOCAL FILE. 
* 
*     3. METHOD USED
*        -LOADO- DOES THE FOLLOWING SEQUENCE -
*         A) SETS UP THE OVERLAY NAME AND LEVEL NUMBERS INTO THE
*           -LOADREQ- BLOCK.
*         B) SETS UP THE PROPER FL PARAMETER IN THE -LOADREQ- BLOCK.
*         C) INITIATES THE OVERLAY LOAD VIA THE -LOADREQ- MACRO.
* 
*     4. ENTRY PARAMETERS 
*        PRIMARY - L1 OF THE OVERLAY TO LOAD
*        SECOND - L2 OF THE OVERLAY TO LOAD 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS USED
*        NONE 
* 
*     7. ROUTINES CALLED
*        NONE 
* 
*     8. DAYFILE MESSAGES 
*        NONE 
* 
*#
*ENDIF
HHA       EQU    104B        HIGHEST HIGH ADDRESS OF OVERLAY STRUCTURE
MINFL00   EQU    101B        LWA + 1 OF OVERLAY 0-0 
          ENTRY  PRIMARY
PRIMARY   BSS    1                 PRIMARY OVERLAY LEVEL TO LOAD
          ENTRY  SECOND 
SECOND    BSS    1                 SECONDARY OVERLAY LEVEL
          ENTRY  RA67 
RA67      EQU    67B               LOADER OVERLAY LOAD COMPLETE FLAG
NUVE      VFD    12/0,2/1,3/0,1/0,1/1,4/0,1/0,36/0
*                                  V=1, N=1, E=0, U WILL BE SET LATER   0 
SYSOVL    VFD    60/6LSYSOVL                                            0 
NUCLEUS   VFD    60/7LNUCLEUS 
OVLNAME   VFD    18/0,42/7LRBF0000 BASE NAME OF OVERLAY TO LOAD 
MASK      DATA   7070707B 
          ENTRY  LDRCALL
LDRCALL   BSS    0
LDRCALL1  DATA   0                 CALL BLOCK FOR THE LOADREQ           0 
LDRCALL2  DATA   0                                                      0 
LDRCALL3  DATA   0                                                      0 
          SPACE  3
          ENTRY  LOADO
LOADOX    NZ     X5,SKIPIT         JUMP IF SETUP NOT NEEDED 
          SA4    64B               GET LOCAL FILE NAME TO LOAD FROM 
          BX6    X4 
          SA6    A5                AND PUT IT INTO LOADER CALL
          SA2    65B
          LX2    59-18             SHIFT LIBRARY BIT
          MX0    1                 SET UP THE U BIT                     0 
          BX6    X0*X2
          LX6    42+1              SHIFT AROUND TO POSITION 42  (U)     0 
          ZR     X6,LOCAL          JUMP IF  FROM A LOCAL FILE           0 
          MX3    42           MASK JUST 7 CHARACTERS
          SA2    NUCLEUS           COMPARE WITH THE NAME -NUCLEUS-
          BX5    X5*X3
          BX2    -X5-X2 
          NZ     X2,LOCAL     JUMP IF NOT FROM -NUCLEUS-
          SA5    SYSOVL 
          BX7    X5 
          SA7    LDRCALL1          SYSOVL IS THE LIBRARY NAME           0 
LOCAL     SA5    NUVE              GET WORD OF  N, V AND E BITS 
          BX6    X6+X5             MERGE IN U 
          SA6    A5                REPLACE -NUVE- 
SKIPIT    BSS    0
          SA2    PRIMARY
          SA3    SECOND 
          MX0    42                MASK OUT THE CRUD
          SA5    HHA               PICK UP LWA+1 OF LARGEST OVERLAY 
          BX5    -X0*X5 
          SA4    MINFL00           GET LWA+1 OF (0,0) 
          ZR     X3,GOTFWA    IF L2=0, WE LOAD A PRIMARY AT LWA+1 OF 0-0
          SA4    X4+1         ELSE GET LWA+1 OF CURRENT PRIMARY 
GOTFWA    SX4    X4           ELIMINATE HIGH 42 BITS
          BX6    X2                SETUP THE LOADER CALL WORD           0 
          LX6    6                                                      0 
          BX6    X6+X3             MERGE IN L2                          0 
          LX6    30                PARTIALLY MOVE TO RECEIVE LWA, FWA   0 
          BX6    X6+X5             MERGE IN LWA                         0 
          LX6    18                POSITION TO RECEIVE FWA              0 
          BX6    X6+X4             MERGE IN FWA                         0 
          SA1    NUVE              FETCH N, U, E, AND V FLAGS           0 
          BX6    X6+X1                                                  0 
          MX0    42 
          SA6    LDRCALL2          SECOND WORD IS COMPLETE              0 
          SA1    LDRCALL1          CLEAR                                0 
          BX6    X0*X1                       OLD                        0 
          SA6    A1                              STATUS 
          BX6    X2                NOW FORM THE OVERLAY NAME
          LX6    3
          BX6    X6+X2
          LX6    9
          BX6    X6+X3
          LX6    3
          SA1    MASK              NOW MASK OUT THE GARBAGE WE COLLECTED
          BX6    X6+X3
          BX6    X6*X1
          SA1    OVLNAME           MERGE THE LEVEL NUMBERS WITH THE NAME
          IX6    X6+X1
          LX6    18                ALL DONE 
          SA6    LDRCALL3          WORD 3 IS COMPLETE                   0 
          SA1    RA67        GET LOADER COMMUNICATION WORD
          MX2    59          MASK FOR ALL BUT COMPLETION BIT
          LX2    29 
          BX6    X2*X1       MASK OUT LOADER COMPLETION BIT 
          SA6    RA67        REPLACE LOADER WORD
          LOADREQ  LDRCALL1,RECALL   LOAD OVERLAY RBFPPSS 
          SPACE  3
LOADO     JP     *+400000B         ENTRY / EXIT 
          SA5    LDRCALL1          DO WE NEED TO DO THE SETUP STUFF 
          EQ     LOADOX 
          TITLE  ROLLIN PROCESSOR 
*IF DEF,IMS 
*#
*1DC  ROLLIN
* 
*     1. PROC NAME           AUTHOR              DATE 
*        ROLLIN              FOX                 77/07/07 
*                            SEYUNG OH           NOV 19,1979
* 
*     2. FUNCTIONAL DESCRIPTION 
*        -ROLLIN- COMPLETES A ROLLOUT STARTED BY -ROLLOUT-, WAITS AND 
*        THEN ROLLS -RBF- BACK IN.
* 
*     3. METHOD USED
*        -ROLLIN- DOES THE FOLLOWING SEQUENCE - 
*         A) MEM-S DOWN TO THE SIZE OF THE MAIN (0,0) OVERLAY 
*         B) VIA -TIM- AND -RCL- WAITS UNTIL -ROLLMS- MILLISECONDS
*            HAVE ELAPSED.
*         C) MEM-S BACK UP TO THE ORIGINAL FL BEFORE THE CALL 
*         D) ROLLS -RBF- BACK IN. 
* 
*     4. ENTRY PARAMETERS 
*        MEMDN - FL TO MEM DOWN TO BEFORE WAIT
*        MEMUP - FL TO MEM UP TO AFTER WAIT 
* 
*     5. EXIT PARAMETERS
*        NONE 
* 
*     6. COMDECKS CALLED
*        NONE 
* 
*     7. ROUTINES CALLED
*        NONE 
* 
*     8. DAYFILE MESSAGES 
*        NONE 
* 
*#
*ENDIF
          ENTRY  ROLLFET
          ENTRY  ROLLFWA
ROLLFET   VFD    42/0LRBFROLL,18/0
ROLLFWA   VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0 
          VFD    60/0              FET RANDOM I/O WORD
          SPACE  2
          ENTRY  MEMUP
MEMUP     VFD    30/0,30/0         FL TO MEM UP TO AFTER ROLLOUT
          ENTRY  MEMDN
MEMDN     VFD    30/0,30/0         FL TO MEM TO DURING ROLLOUT
          ENTRY  OLDTIM 
OLDTIM    VFD    60/0              OLD TIME 
          ENTRY  NEWTIM 
NEWTIM    VFD    60/0              NEW TIME 
  
          ENTRY  SRHTIME
SRHTIME   VFD    60/0              SEARCH TIME DEFINED BY INSTALLATION
NWTIME    DATA   1
NWFLAG    DATA   0
 NWLIST   VFD    60/SRHTIME 
          VFD    60/NWFLAG
          VFD    60/0 
          SPACE  2
          ENTRY  NSUP 
NSUP      DATA   0                 NETWORK SUPERVISORY WORD 
          SPACE  3
          ENTRY  INHROLL           THIS FLAG IS SET WHEN CIO ERROR IS 
 INHROLL  DATA   0                 DETECTED ON ROLL IN/OUT. 
          SPACE  3
 CIOMSG   DATA   H* RBF DISK *     DAYFILE MESSAGE FOR ANY CIO ERRORS 
          DATA   H*ERROR, CAN*     THAT OCCUR WHILE TRYING TO ROLL
          DATA   H*NOT ROLL B*     RBF BACK IN FROM DISK. 
          DATA   C*ACK IN*
          SPACE  3
 RPVMSG   DATA   H* RBF REPRI*     DAYFILE MESSAGE ISSUED BY REPRIEVE 
          DATA   C*EVED.*          CODE WHEN RBF IS ABORTED.
          SPACE  3
          ENTRY  ROLLIN 
 ROLLINX  SA2    RPVROLL           PICK UP ROLLOUT STATUS 
          ZR     X2,ROLLIN         NOT CURRENTLY ROLLED OUT, RETURN 
          MEMORY CM,MEMUP,RECALL   GET ENOUGH FL TO ROLL IN 
          SYSTEM CIO,RECALL,ROLLFET  READ THE MESS BACK IN
          SA2    ROLLFET
          MX3    4                 MASK ONLY CIO ERROR BITS 
          LX3    14 
          BX2    X3*X2             ANY ERROR BITS 
          ZR     X2,ROLLIN         NO, RETURN TO PROC ROLLOUT 
          SPACE  3
          SX6    1                 CIO ERRORS DURING ROLLIN SO
          SA6    INHROLL           INHIBIT ROLL IN BY REPRIEVE CODE.
          MESSAGE CIOMSG,6,R       SEND CIO ERROR MESSAGE TO DAYFILE. 
          ABORT                    INITIATE RPV PROCESSING. 
         EJECT
 ROLLIN   EQ     *+1S17D           ROLLIN ENTRY POINT 
 ROLLINH  SA2    RPVROLL           PICK UP ROLLOUT STATUS 
          ZR     X2,NOROLL   DO NOT ROLL OUT
          MEMORY CM,MEMDN,RECALL   MEM DOWN TO LWA+1 OF (0,0) 
NOROLL    BSS    0                 DEFINE NEW LABEL FOR ROLL INHIBIT
          SA1    NWLIST 
          RJ     =XNETWAIT
          MX6    0           NEWTIM MUST BE .EQ. OLDTIM 
          SA6    NEWTIM       FOR OTHER MODULE FUNCTIONS
          EQ     ROLLINX
          SPACE  3
          ENTRY  RPVROLL
 RPVROLL  DATA   0                 RPV/ROLLOUT FLAG 0 - ROLLED IN 
*                                                   1 - ROLLED OUT
*                                                   2 - REPRIEVED 
          SPACE  3
          ENTRY  RPVADDR           PARAMETER BLOCK FOR RPV
 RPVADDR  VFD    36/0,12/25D,12/2  RPV PARAM BLOCK LENG AND FUNC
          VFD    30/0,30/TRFADDR   RPV TRANSFER ADDRESS 
          BSSZ   1
          VFD    24/77B,36/0       SET INTERUPT MASK
          BSSZ   21D               RESERVE ROOM FOR EXCHANGE PACKAGE
          SPACE  3
 TRFADDR  BSS    0                 INTERRUPT HANDLER ENTRY POINT
          QUAL   RPVCPY 
          MESSAGE RPVMSG,6,R       SEND RBF REPRIEVED DAYFILE MESSAGE 
          QUAL   *
          SA1    RPVROLL           CHECK IF ROLLED IN 
          SX6    2                 SET RPVROLL TO REPRIEVED 
          SA6    RPVROLL
          ZR     X1,TRFADD1        ROLLED IN, CONTINUE RPV PROCESSING 
          SA1    INHROLL           CHECK IF ROLLING IN IS INHIBITED 
          NZ     X1,TRFADD2        INHIBITED, JUMP TO NETOFF
          QUAL   RPVCPY 
          MEMORY CM,MEMUP,RECALL   GET ENOUGH FL TO ROLL IN 
          QUAL   *
          QUAL   RPVCPY 
          SYSTEM CIO,RECALL,ROLLFET    READ THE FL BACK IN
          QUAL   *
          SA2    ROLLFET
          MX3    4                 MASK ONLY CIO ERROR BITS 
          LX3    14 
          BX2    X3*X2             ANY ERROR BITS ? 
          ZR     X2,TRFADD1        NO, CONTINUE REPRIEVE PROCESSING 
          QUAL   RPVCPY 
          MESSAGE CIOMSG,6,R       SEND CIO ERROR MESSAGE TO DAYFILE. 
          QUAL   *
          EQ     RPVRST            FIELD LENGTH UNUSABLE, GIVE UP 
          EJECT 
 TRFADD1  BSS    0                 LABELS SHOULD NOT BE QUALIFIED 
          QUAL   RPVCPY 
          SYSTEM DMB,R             DUMP FL TO OUTUT IN ANY CASE 
          QUAL   *
* 
*         THE FOLLOWING CODE IS CONTROLLED BY TRACE BEING DEFINED 
* 
*IF,-DEF,TRACE
          EQ     ROLLIN            RETURN TO PROC ROLLOUT 
*ENDIF
*IF,DEF,TRACE 
          SX6    2                 ROLLED IN, SO DUMP TABLES. 
          SA6    PRIMARY           SET UP THE CALL TO LOADX TO LOAD THE 
          SX6    0                 TABLE DUMPER OVERLAY AND EXECUTE IT. 
          SA6    SECOND 
          RJ     =XLOADX           LOAD AND EXECUTE AN RBF OVERLAY. 
 TRFADD2  BSS    0
          NETOFF                   END RBF-S NETWORK CONNECTION 
*ENDIF
* 
*         THE   ABOVE   CODE IS CONTROLLED BY TRACE BEING DEFINED 
* 
 RPVRST   REPRIEVE RPVADDR,RESET,77B RETURN ERROR PROCESSING TO NOS 
          SPACE  3
          QUAL   RPVCPY            A QUALIFIED COPY OF COMCSYS IS 
 OPL      XTEXT  COMCSYS           REQUIRED FOR ANY RA+1 REQUESTS MADE
          QUAL   *                 BY THE ABOVE INTERUPT HANDLER SINCE
*                                  COMCSYS IS NOT REENTRANT.
          EJECT 
          END    RBF2P0 
          IDENT  RBF0100
          LCC    OVERLAY(RBF2P0,01,00)
          ENTRY  RBF0100
RBF0100   BSS    0                 THIS IS NEVER CALLED (SCH IS CALLED) 
          SPACE  3
* 
*  FORCE THE LOADING OF THE FOLLOWING INTO THE PRIMARY OVERLAY -
* 
          LDSET  USE=AAARBF 
          LDSET  USE=ACKED
          LDSET  USE=BUFINFO
          LDSET  USE=CHOOSE 
          LDSET  USE=CIODONE
          LDSET  USE=CONSOLE
          LDSET  USE=DONE 
          LDSET  USE=EVENT
          LDSET  USE=GETBSN 
          LDSET  USE=QCMCALL
          LDSET  USE=QTEST
          LDSET  USE=RDYMSG 
          LDSET  USE=SCH
          LDSET  USE=WAIT 
          LDSET  USE=WAITSM 
          END    RBF0100
          IDENT  RBF0101
  
          COMMENT - RBF - MAIN EXECUTION OVERLAY. 
  
          LCC    OVERLAY(RBF2P0,01,01)
          ENTRY  RBF0101
RBF0101   NO
+         RJ     =XINI
          EQ     RBF0101
          END    RBF0101
          IDENT  RBF0102
  
          COMMENT - RBF/SMP - SUPERVISORY MESSAGE PROCESSOR.
  
          LCC    OVERLAY(RBF2P0,01,02)
          ENTRY  RBF0102
RBF0102   NO
+         RJ     =XSMP
          EQ     RBF0102
          END    RBF0102
          IDENT  RBF0103
  
          COMMENT - RBF/COMMAND - COMMAND PROCESSOR.
  
          LCC    OVERLAY(RBF2P0,01,03)
          ENTRY  RBF0103
RBF0103   NO
+         RJ     =XCMD
          EQ     RBF0103
          END    RBF0103
          IDENT  RBF0104
  
          COMMENT - RBF/EXTCMD - TERMINAL CONTROL MODULE. 
  
          LCC    OVERLAY(RBF2P0,01,04)
          ENTRY  RBF0104
RBF0104   NO
+         RJ     =XEXTCMD 
          EQ     RBF0104
          END    RBF0104
          IDENT  RBF0105
  
          COMMENT - RBF/DIS - DISPLAY PROCESSOR.
  
          LCC    OVERLAY(RBF2P0,01,05)
          ENTRY  RBF0105
RBF0105   NO
+         RJ     =XDIS
          EQ     RBF0105
          END    RBF0105
          IDENT  RBF0106
  
          COMMENT - RBF/DCM - DOWNLINE CONTROL MODULE.
  
          LCC    OVERLAY(RBF2P0,01,06)
          ENTRY  RBF0106
RBF0106   NO
+         RJ     =XDCM
          EQ     RBF0106
          END    RBF0106
          IDENT  RBF0107
  
          COMMENT - RBF/UCM - UPLINE CONTROL MODULE.
  
          LCC    OVERLAY(RBF2P0,01,07)
          ENTRY  RBF0107
RBF0107   NO
+         RJ     =XUCM
          EQ     RBF0107
          END    RBF0107
          IDENT  RBF0110
  
          COMMENT - RBF/NEW - NEW CONNECTION PROCESSOR. 
  
          LCC    OVERLAY(RBF2P0,01,10)
          ENTRY  RBF0110
RBF0110   NO
+         RJ     =XNEW
          EQ     RBF0110
          END    RBF0110
          IDENT  RBF0111
  
          COMMENT - RBF/CON$END - TERMINATE CONNECTION PROCESSOR. 
  
          LCC    OVERLAY(RBF2P0,01,11)
          ENTRY  RBF0111
RBF0111   NO
+         RJ     =XCON$END
          EQ     RBF0111
          END    RBF0111
          IDENT  RBF0112
  
          COMMENT - RBF/FIN$CON - FINISH TERMINATION PROCESSOR. 
  
          LCC    OVERLAY(RBF2P0,01,12)
          ENTRY  RBF0112
RBF0112   NO
+         RJ     =XFIN$CON
          EQ     RBF0112
          END    RBF0112
          IDENT  RBF0113
  
          COMMENT - RBF/FIN$DEV - BATCH DEVICE TERMINATION PROCESSOR. 
  
          LCC    OVERLAY(RBF2P0,01,13)
          ENTRY  RBF0113
RBF0113   NO
+         RJ     =XFIN$DEV
          EQ     RBF0113
          END    RBF0113
          IDENT  RBF0114
  
          COMMENT - RBF/QCM - QUEUE CONTROL BLOCK.
  
          LCC    OVERLAY(RBF2P0,01,14)
          ENTRY  RBF0114
RBF0114   NO
+         RJ     =XQCM
          EQ     RBF0114
          END    RBF0114
          IDENT  RBF0115
  
          COMMENT - RBF/UPDKDS - RBF K-DISPLAY PROCESSOR. 
  
          LCC    OVERLAY(RBF2P0,01,15)
          ENTRY  RBF0115
RBF0115   NO
+         RJ     =XUPDKDS 
          EQ     RBF0115
          END    RBF0115
*IF,DEF,TRACE 
          IDENT  RBF0200
  
          COMMENT - RBF/DMP - DUMP PROCESSOR. 
  
          LCC    OVERLAY(RBF2P0,02,00)
          ENTRY  RBF0200
 RBF0200  NO
+         RJ     =XDUMPERS
          EQ     RBF0200
          END    RBF0200
*ENDIF
