*DECK DB$ROUT 
          IDENT  DB$ROUT
          COMMENT  ROUTE A FILE TO THE INPUT QUEUE
          DATA   10L  DB$ROUT 
*#
* *   DB$ROUT - CDCS ROUTE PROCESSING            PAGE  1
* *   W P CEAGLIO                                DATE  05/20/81 
* 
* DC  PURPOSE 
* 
*     COLLECTION OF ROUTINES AND BUFFERS FOR PROCESSING A CDCS ROUTE
*     REQUEST.  DB$ROUT IS A PACKAGING MODULE--ITS ENTRY POINT SHOULD 
*     NOT BE REFERENCED BY ANY MODULE.
* 
* DC  INTERNAL PROCS
* 
*     DB$RORM      FORMAT AND ISSUE THE ROUTE MACRO 
*     DB$RORQ      REQUEST QUEUE FILE DEVICE (NOS/BE) 
* 
* DC  GLOBAL BUFFERS
* 
*     DB$ZFET      MODEL FET FOR ROUTE FILE 
*     SPOT         BUFFER FOR ROUTE REQUEST 
*     QUEFILE      BUFFER FOR REQUEST OF QUEUE FILE DEVICE (NOS/BE) 
* 
*#
          EJECT 
*#
* *   DB$RORM - FORMAT AND ISSUE ROUTE MACRO     PAGE  1
* *   W P CEAGLIO                                DATE  05/20/81 
* 
* DC  PURPOSE 
* 
*     ROUTE A DBREC JOB TO THE INPUT QUEUE FOR EXECUTION. 
* 
* DC  ENTRY CONDITIONS
* 
* D   PARAMETERS
* 
*     X1 CONTAINS THE ADDRESS OF THE LOGICAL FILE NAME. 
* 
* D   ASSUMPTIONS 
* 
*     NONE. 
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL   - DBREC JOB IS PLACED IN INPUT QUEUE VIA ROUTE MACRO.  X6
*                IS SET TO ZERO.  THE NAME OF THE ASSIGNED JOB IS PLACED
*                IN DB$ZSPT.
* 
*     ABNORMAL - ROUTE REQUEST REJECTED BY OPERATING SYSTEM.  X6 IS 
*                SET TO THE ERROR CODE. 
* 
* DC  CALLING ROUTINES
* 
*     DB$BRIF      BASIC RECOVERY INTERFACE 
* 
* DC  CALLED ROUTINES 
* 
*     ROUTE        OPERATING SYSTEM PROCEDURE FOR JOB ROUTING 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE. 
* 
* DC  DESCRIPTION 
* 
*     STORE THE LFN IN THE ROUTE BUFFER (SPOT).  CALL THE ROUTE MACRO TO
*     ROUTE THE DBREC JOB TO THE INPUT QUEUE.  ON RETURN FROM ROUTE,
*     PICK UP THE ERROR CODE AND PLACE IT IN THE LOWER 6 BITS OF X6.
*     RETURN TO THE CALLING ROUTINE.
* 
*#
  
  
          LIST   F
          ENTRY  DB$RORM
DB$RORM   EQ    *+1S17
          SA1    X1          (X1) = LFN 
          MX0    42 
          BX6    X0*X1
          SA6    SPOT        STORE LFN IN ROUTE BUFFER
          ROUTE  SPOT,R 
          SA1    SPOT        CHECK FOR ERROR
          SA2    MASK 
          BX6    X2*X1
          LX6    -12         RETURN ERROR CODE
          EQ     DB$RORM
* 
*     BUFFER FOR ROUTE REQUEST
* 
SPOT      EQU    *
          ENTRY  DB$ZSPT
DB$ZSPT   VFD    42/0LZZZZZXX,18/0
NOSBE     IFC    EQ,$"OS.NAME"$SCOPE $
          VFD    12/0,12/1200B,12/2HIN,6/0,18/411022B 
          BSSZ   5
NOSBE     ENDIF 
NOS       IFC    EQ,$"OS.NAME"$KRONOS$
          VFD    12/0,12/1200B,12/2HIN,6/0,18/402022B 
          BSSZ   5
NOS       ENDIF 
  
MASK      VFD    42/0,6/77B,12/0
          EJECT 
*#
* *   DB$RORQ - ISSUE QUEUE FILE DEVICE REQUEST  PAGE  1
* *   W P CEAGLIO                                DATE  05/20/81 
* 
* DC  PURPOSE 
* 
*     ISSUE OS REQUEST FOR QUEUE DEVICE FOR DBREC JOB.
* 
* DC  ENTRY CONDITIONS
* 
* D   PARAMETERS
* 
*     X1 CONTAINS THE ADDRESS OF THE LOGICAL FILE NAME. 
* 
* D   ASSUMPTIONS 
* 
*     NONE. 
* 
* DC  EXIT CONDITIONS 
* 
*     NORMAL   - A REQUESTED QUEUE DEVICE IS AVAILABLE.  X6 SET TO ZERO.
* 
*     ABNORMAL - REQUEST COULD NOT BE SATISFIED.  X6 SET TO 1.
* 
* DC  CALLING ROUTINES
* 
*     DB$BRIF      BASIC RECOVERY INTERFACE 
* 
* DC  CALLED ROUTINES 
* 
*     REQUEST      OPERATING SYSTEM PROCEDURE FOR FILE REQUEST
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     NONE. 
* 
* DC  DESCRIPTION 
* 
*     FOR NOS/BE:  STORE THE LFN IN THE REQUEST BUFFER (QUEFILE).  SET
*     UP THE SECOND WORD OF THE REQUEST PARAMETER BLOCK.  THIS WORD 
*     CONSISTS OF A FLAG FOR ASSIGNING THE FILE TO A QUEUE DEVICE.
*     STORE THE SECOND WORD IN THE REQUEST BUFFER (QUEFILE + 1).  ISSUE 
*     THE REQUEST MACRO.  ON RETURN FROM THE REQUEST MACRO, PICK UP THE 
*     ERROR CODE AND PLACE IT IN THE LOWER 5 BITS OF X6.  RETURN TO 
*     THE CALLING ROUTINE.
* 
*     FOR NOS:  SET X6 TO 0 AND RETURN TO THE CALLING ROUTINE.
* 
*#
  
          ENTRY  DB$RORQ
DB$RORQ   EQ    *+1S17
NOSBE     IFC    EQ,$"OS.NAME"$SCOPE $
          SA1    X1          (X1) = LFN 
          MX0    42 
          BX6    X0*X1
          SA6    QUEFILE     STORE LFN IN REQUEST BUFFER
          SA1    QUEP 
          BX6    X1 
          SA6    QUEFILE+1
          REQUEST QUEFILE 
          SA1    QUEFILE     CHECK FOR ERROR
          MX0    -5 
          LX1    -9 
          BX6    -X0*X1      RETURN ERROR CODE
NOSBE     ENDIF 
NOS       IFC    EQ,$"OS.NAME"$KRONOS$
          SX6    0
NOS       ENDIF 
          EQ     DB$RORQ
* 
*     BUFFER FOR REQUEST OF QUEUE FILE DEVICE 
* 
  
QUEFILE   VFD    42/0LZZZZZXX,18/0
          VFD    6/2,54/0 
* 
*     SECOND WORD OF REQUEST PARAMETER BLOCK
* 
QUEP      VFD    6/2,54/0 
  
          EJECT 
*#
* *   DB$ZFET - MODEL FET FOR ROUTE FILE         PAGE  1
* *   W P CEAGLIO                                DATE  05/20/81 
* 
*#
          ENTRY  DB$ZFET
DB$ZFET   FILEC  0,102B,EPR 
  
  
          END 
