*DECK,RBF$AID 
           IDENT RBF$AID
*IF DEF,IMS 
*#
*1DC  SYSTEM
* 
*     1. PROC NAME           AUTHOR              DATE 
*        SYSTEM              M. T. KAUFMAN       1976 
* 
*     2. FUNCTIONAL DESCRIPTION.
*        MAKES A SYSTEM CALL
* 
*     3. METHOD USED. 
*        MAKES A RA+1 MASKING PP ROUTINE AND RECALL BIT WITH PARAMETERS 
* 
*     4. ENTRY PARAMETERS 
* 
*         1. PP ROUTINE AND RECALL BIT - EXAMPLE  "TIMP" WHERE TIM IS 
*                                        THE PP ROUTINE AN P IS RECALL
*                                        BIT SET
*         2. PARAMETERS - AS REQUIRED BY CALLED PP ROUTINE. 
* 
*     5. EXIT PARAMETERS. NONE. 
* 
*     6. COMDECKS USED. NONE. 
* 
*     7. ROUTINES CALLED. SYS 
* 
*     8. DAYFILE MESSAGES. NONE.
* 
*#
*ENDIF
          ENTRY  SYSCALL
 SYSCALL  JP     *+1S17 
          SA2    A1+1 
          SA1    X1 
          SA3    SMASK
          SA2    X2 
          BX6    X1*X3
          IX6    X6+X2
          RJ     =XSYS= 
          EQ     SYSCALL
SMASK     VFD    18/-0,2/1,40/0 
*IF DEF,IMS 
*#
*1DC  MEM 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        MEM                 M. T. KAUFMAN       1976 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        ALLOWS MEMORY REFERENCES FOR ABSOLUTE MEMORY REFERENCE 
* 
*#
*ENDIF
          ENTRY  MEM
 MEM      EQU    0
*IF,DEF,IMS 
*IF DEF,IMS 
*#
*1DC  CHKSSID 
* 
*     1. FUNC NAME           AUTHOR             DATE
*        CHKSSID             E.GEE              8/01/81 
* 
*     2. FUNCTIONAL DESCRIPTION.
*        CHECK RBF"S SUBSYSTEM ID TO VERIFY IT WAS BROUGHT UP CORRECTLY.
* 
*     3. METHOD USED. 
*        USE GETSSID MACRO WHICH REQUESTS SUBSYSTEM ID VALUE OF THIS
*        JOB. 
* 
*     4. ENTRY PARAMETERS.
*        NONE 
* 
*     5. EXIT PARAMETERS. 
*        X6 = 0              RBF NOT INITIATED CORRECTLY
*           = RBSI           RBF INITIATED CORRECTLY
* 
*     6. COMDECKS USED. 
*        COMSSSD             NOS COMDECK WITH SUBSYSTEM ID VALUE
* 
*     7. ROUTINES CALLED. 
*        GETSSID             NOS MACRO TO GET JOB SUBSYSTEM ID
* 
*     8. DAYFILE MESSAGES.
*        NONE 
*#
*ENDIF
          ENTRY CHKSSID 
  
OPL       XTEXT  COMSSSD
OPL       XTEXT  COMCMAC
  
SSID      BSSZ   1           JOB SUBSYSTEM ID 
  
CHKSSID   SUBR
          GETSSID SSID       GET JOB SUBSYSTEM ID 
          SA1    SSID        X1 = JOB SUBSYSTEM ID
          SX6    RBSI        X6 = RBF SUBSYSTEM ID
          IX2    X6-X1       CHECK IF SUBSYTEM IDS MATCH
          ZR     X2,CHKSSIDX  THIS JOB HAS RBF SUBSYSTEM ID 
          SX6    B0          RETURN 0 VALUE - NOT RBF SUBSYSTEM 
          EQ     CHKSSIDX 
          EJECT 
*#
*1DC  CALL$ 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        CALL$               B. M. WEST          14 MARCH 1977
* 
*     2. FUNCTIONAL DESCRIPTION.
*        TRANSFERS CONTROL TO MODULE SO THAT THAT MODULE WILL RETURN
*        TO MODULE WHICH CALLED CALL$.
* 
*     3. METHOD USED. 
*        CALLED MODULES ENTRY POINT PASSED IN X1. 
*        RETURN ADDRESS PICKED UP FROM CALL$ ENTRY POINT AND PLACED 
*        IN CALLED MODULES ENTRY POINT. 
*        CALL$ CALLS ROUTINE CONT WHICH WILL JUMP TO THE CONTINUE 
*        ADDRESS, IF ANY, ELSE CONT WILL RETURN TO CALL$. 
*        CALL$ JUMPS TO CALLED MODULES" ENTRY POINT + 1.
* 
*        CONT 
*     4. ENTRY PARAMETERS.
* 
*        CALLED MODULES ENTRY POINT IN X1.
*        ADDRESS OF THE CONTINUE ADDRESS IN A1 + 1. 
* 
*     5. EXIT PARAMETERS. NONE
* 
*     6. COMDECKS USED. NONE. 
* 
*     7. ROUTINES CALLED. NONE. 
* 
*     8. DAYFILE MESSAGES. NONE.
*#
          ENTRY  CALL$
CALL$     JP     *+1S17 
          SA2    CALL$
          SA3    A1+1 
          SA1    X1 
          BX7    X2          SAVE CALLING MODULES RETURN ADDRESS IN 
          SB6    X1+1        CALLED MODULES ENTRY POINT 
          SA7    X1 
          SA1    A3 
          RJ     CONT 
          JP     B6          JUMP TO CALLED PROGRAM ENTRY POINT + 1 
*#
*1DC  CONT
* 
*     1. PROC NAME           AUTHOR              DATE 
*        CONT                M. T. KAUFMAN       1976 
* 
*     2. FUNCTIONAL DESCRIPTION.
*        CONTINUES PROCESSING AT THE ADDRESS PASSED.
* 
*     3. METHOD USED. 
*        JUMPS TO THE ADDRESS PASSED IN THE PARAMETER POINTED TO BY X1. 
* 
*     4. ENTRY PARAMETER. 
*        X1 = THE ADDRESS OF THE ADDRESS TO JUMP TO.
* 
*     5. EXIT PARAMETERS. NONE. 
* 
*     6. COMDECKS USED. NONE. 
* 
*     7. ROUTINES CALLED. NONE. 
* 
*     8. DAYFILE MESSAGES. NONE.
* 
*#
          ENTRY  CONT 
 CONT     JP     *+1S17 
          SA1    X1 
          SB5    X1 
          ZR     B5,CONT
          JP     B5 
          END 
          IDENT  MOVEBLK
          SPACE  3
*ENDIF
          EJECT 
          ENTRY  MOVEBLK
  
 MOVEBLK  BSSZ   1           MOVEBLK(N,X,Y) MOVES N WORDS FROM ARRAY X
          SA1    A1          TO ARRAY Y 
          SB1    1
          SA2    A1+1 
          SA3    A1+2 
          SA1    X1 
  
          RJ     =XMVE= 
  
          EQ     MOVEBLK
          END 
          IDENT  ISC64
          ENTRY  ISC63
          SST 
          SYSCOM
*#
*IDC  ISC63 
* 
*     1. PROC NAME           AUTHOR              DATE 
*        ISC63               S. OH               79/02/06 
* 
*     2. FUNCTIONAL DESCRIPTION.
*        CHECKS FOR 63-CHARACTER SET MODE OPERATION DURING THE
*        INITIALIZATION. THIS ROUTINE WILL BE LOADED WITH OVERLAY 1N1 
* 
*     3. METHOD USED
*        READ RA + 67B(CSMR) TO CHECK SYSTEM CHARACTER SET MODE FLAG
* 
*#
 ISC63    BSS    1
          SA2    CSMR        READ RA + 67B
          BX6    X2 
          EQ     ISC63       RETURN 
          END                RBF$AID
          IDENT  YSFN 
          TITLE  YSFN - SPACE FILL 7 CHARACTER NOS NAME 
          COMMENT SPACE FILL 7 CHARACTER NOS NAME 
*IF,DEF,IMS 
*#
*1DC  YSFN
*     1. PROC NAME             AUTHOR               DATE
*        YSFN                  G. A. VALENCIA       19 JUNE 1980
* 
*     2. FUNCTIONAL DESCRIPTION 
*        PROVIDES A SYMPL INTERFACE TO THE NOS COMMON DECK COMCSFN, 
*        WHICH SPACE FILLS A LEFT-JUSTIFIED 7 CHARACTER NOS NAME. 
*        IT IS IDENTICAL TO THE MACREL ROUTINE XSFN EXCEPT THAT IT
*        RIGHT-JUSTIFIES THE SPACE FILLED NAME FOR THE K-DISPLAY. 
* 
*     3. METHOD USED. 
*        THE PASSED PARAMETER IS PUT IN X1 AND B1 IS SET TO 1,
*        REQUIRED BY SFN.  THE LOW 18 BITS OF X1 ARE CLEARED AS 
*        SYMPL WILL BLANK FILL ANY CHARACTER TYPE PARAMETER.
* 
*     4. ENTRY PARAMETERS.
*        ASSUMED TO BE ONE WORD OF TYPE CHARACTER.
* 
*     5. EXIT PARAMETERS. 
*        RIGHT-JUSTIFIED SPACE FILLED NAME IN X6. 
* 
*     6. COMDECKS USED. 
* 
*        COMCSFN FROM THE NOS OPL.
* 
*     7. ROUTINES CALLED. 
* 
*        SFN - SPACE FILL A LEFT-JUSTIFIED NAME 
* 
*#
          EJECT 
*ENDIF,IMS
          ENTRY  YSFN 
          SST 
          SYSCOM B1 
          SPACE  3
* 
*         SPACE FILLL A 7-CHARACTER NOS NAME.  RETURN THE 
*         RESULT RIGHT-JUSTIFIED IN THE LEFT-MOST 7 CHARACTERS. 
* 
 YSFN     JP     *+1S17 
          SB1    1                REQUIRED BY COMCSFN 
          SA1    X1 
          MX2    -18
          BX1    X1*X2            MASK OUT LOWER 18 BITS
          RJ     SFN
          CX2    X7               (X2) = POP COUNT OF MASK USED 
          SB2    X2+18            ADD 18 TO SHIFT THE NAME INTO 
          LX6    B2               THE 7 LEFTMOST CHAR. POSITIONS
          EQ     YSFN 
  
***       SFN - SPACE FILL LEFT-JUSTIFIED NAME SUBROUTINE 
  
 OPL      XTEXT  COMCSFN
          EJECT 
          END 
*IF,DEF,TRACE 
          IDENT  DMP$ZB5
          COMMENT WRITE TO SPITOUT FILE 
          TITLE  WRITE TO SPITOUT FILE
*#
*1D   WRITE TO SPITOUT FILE 
* 
* D  DMP$ZB5(BUFFER SIZE IN WORDS,BUFFER ADDRESS,STATUS VALUE)
* 
*     1. PROC NAME           AUTHOR              DATE 
*        DMP$ZB5             G. A. VALENCIA      APRIL 14, 1980 
* 
*     2. FUNCTIONAL DESCRIPTION 
*        DMP$ZB5 - WRITE TO LFN SPITOUT.
* 
*     3. METHOD 
*        COMPASS INTERFACE TO WRITEH MACRO TO 
*        MANIPULATE THE DEBUG FILE CALLED SPITOUT.  A LINE COUNT IS 
*        KEPT SO THAT HUGE SPITOUT FILES CAUSE AN ABORT.
* 
*     4. ENTRY PARAMETERS 
*        BUFFER LENGTH IN WORDS, BUFFER ADDRESS 
*        (USING SYMPL CALLING SEQUENCE) 
* 
*     5. EXIT PARAMETERS
*        STATUS VALUE - NOT CURRENTLY USED. 
* 
*     6. COMDECKS CALLED
*        NONE.
* 
*     7. CALLED BY
*        DMP$ACN, DMP$TCB, ETC. (ALL THE FORTRAN TABLE DUMPERS) 
* 
*     8. ROUTINES CALLED
*        WRITEH(MACRO)       OS MACRO 
* 
*     9. DAYFILE AND ERROR MESSAGES 
*        DMP$ZB5 - LINE LIMIT EXCEEDED. 
*#
          EJECT 
          ENTRY DMP$ZB5     WRITE TO MS, FILENAME=SPITOUT 
          SST 
* 
*         CONSTANTS 
* 
 PBUFL    EQU    201B         LENGTH OF CIO BUFFER
* 
*        DEFINE FET FOR LFN - SPITOUT 
* 
          ENTRY  SPITOUT
 SPITOUT  FILEB  PBUF,PBUFL,FET=6 
* 
*         RESERVE SPACE FOR CIO BUFFER
* 
 PBUF     BSS    PBUFL
          SPACE  3
* 
*         OUTPUT ROUTINE. WRITE TO MS DEVICE WITH 
*         LFN $SPITOUT$.
* 
 DMP$ZB5  EQ     *+1S17 
          SA2    X1          LENGTH INTO X2 
          SA3    A1+1 
          SA5    A1+2        SAVE STATUS RETURN PTR 
          WRITEH SPITOUT,X3,X2 FET,BUFFADDR,LEN 
* 
*         USES FULL CAPABILITY OF CIO BUFFER AND
*         MACRO. WRITEH WILL ISSUE CIO CALL WHEN
*         NECESSARY.
* 
          BX6    X1 
          SA6    X5          RETURN IT
          SA4    LCOUNT      LINE COUNTER 
          SX6    X4+B1
          SA6    A4 
          SB2    X6 
          SB3    15000     MAX LINE COUNT (250 PAGES X 60)
          LT     B2,B3,DMP$ZB5        JIF OK
          SX6    B0 
          SA6    A4          CLEAR COUNT FOR REPRIEVE CALL
          MESSAGE MSG,0,R    ISSUE DAYFILE MESSAGE
          ABORT 
 LCOUNT   BSSZ   1           LINE COUNTER 
 MSG      DIS    ,*NP$ZB5 LINE LIMIT EXCEEDED*
          EQ    DMP$ZB5 
          EJECT 
          END 
*ENDIF
          IDENT  LOADX
          TITLE  LOADX - LOAD AND EXECUTE A RBF OVERLAY 
          COMMENT LOAD AND EXECUTE A RBF OVERLAY
*IF,DEF,IMS 
*#
*1DC  LOADX 
*     1. PROC NAME             AUTHOR               DATE
*        LOADX                 G. A. VALENCIA       13 AUGUST 1980
* 
*     2. FUNCTIONAL DESCRIPTION 
*        PROVIDES A SYMPL INTERFACE TO THE RBF ROUTINE LOADO SUCH 
*        THAT THE OVERLAY IS EXECUTED (BY RETURN JUMP) AFTER IT 
*        HAS BEEN LOADED. 
* 
*     3. METHOD USED. 
*        AFTER DOING A RETURN JUMP TO LOADO, THE ENTRY POINT ADDRESS
*        IS EXTRACTED FROM THE LDR PARAMETER BLOCK AND A RETURN JUMP
*        INTO THE OVERLAY IS PREFORMED BY CALL$.  NOTE - CALL$ REQUIRES 
*        THE ENTRY POINT ADDRESS TO BE PASSED IN A SYMPL APLIST.
* 
*     4. ENTRY PARAMETERS.
*        PRIMARY - GLOBAL VARIABLE, PRIMARY OVERLAY NUMBER TO LOAD
*        SECOND  - GLOBAL VARIABLE, SECONDARY OVERLAY NUMBER TO LOAD
* 
*     5. EXIT PARAMETERS. 
*        NONE 
* 
*     6. COMDECKS CALLED. 
*        NONE 
* 
*     7. ROUTINES CALLED. 
*        LOADO - LOAD AN RBF OVERLAY
* 
*#
*ENDIF
          EJECT 
          ENTRY  LOADX
          SST 
          EXT    LDRCALL          ADDRESS OF LDR PARAMETER BLOCK
          EXT    SECOND           SECONDARY OVERLAY LEVEL TO LOAD 
          SPACE  3
 MODADDR  BSSZ   1                MODULE ADDRESS PARAMETER FOR CALL$
 CONADDR  BSSZ   1                CONTINUE ADDRESS PARAMETER FOR CALL$
          SPACE  3
 APLIST   VFD    60/MODADDR       PARAMETER LIST FOR CALL$
          VFD    60/CONADDR 
          SPACE  3
* 
*         LOAD AND EXECUTE AN RBF OVERLAY 
* 
 LOADX    JP     *+1S17D
          SA3    LDRCALL+1        (X3) = 2ND WORD OF LDR PARAMETER BLOCK
          MX4    -6               FORM 6 BIT MASK AND SHIFT TO MASK OUT 
          LX4    54-6             THE CURRENT SECONDARY OVERLAY LEVEL.
          BX4    -X4*X3 
          LX4    6-54             (X4) = CURRENT SECONDARY OVERLAY LEVEL
          SA5    SECOND 
          IX5    X5-X4            TEST IF OVERLAY TO LOAD IS ALREARY IN.
          ZR     X5,LOADXIN       SECONDARY OVERLAY IS IN, CONTINUE.
          RJ     =XLOADO          LOAD THE PRIMARY,SECOND OVERLAY 
 LOADXIN  SA4    LDRCALL+1        (X4) = 2ND WORD OF LRD PARAMETER BLOCK
          MX5    -18              ADDRESS IS 18 BITS RIGHT JUSTIFIED
          BX6    -X5*X4           (X6) = ENTRY POINT ADDRESS
          SA6    MODADDR          STORE INTO PARAMETER LIST FOR CALL$ 
          SA1    APLIST 
          RJ     =XCALL$          CALL$ WILL RJ TO MODADDR
          EQ     LOADX            RETURN
          EJECT 
          END 
