*DECK DB$INV
USETEXT RQPARTX 
      PROC DB$INV (SBNAM,SCNAM,RUID,SBCKSM);
*CALL COPYRDCLS 
  BEGIN 
 #
* *   DB$INV                                     PAGE  1
* *   INVOKE OBJECT-TIME ROUTINE
* *   W P CEAGLIO                                DATE  11/21/75 
* *   J J JANIK                                  DATE  11/07/78 
* *   A W ALLEN - DATABASE VERSIONS              DATE  01/30/81 
* 
* DC  PURPOSE 
* 
*     FORMAT THE REQUEST PACKET FOR THE "INVOKE" CALL WITHOUT DATABASE
*     VERSION.  THIS DB$INV PROCEDURE ALLOWS COMPATIBILITY WITH USER
*     RELOCATABLES DEVELOPED FOR USE WITH CDCS 2.2 AND EARLIER OBJECT-
*     TIME ROUTINES-- THAT IS, FOR INVOKE CALLS WITHOUT A DATABASE
*     VERSION.
* 
* DC  ENTRY CONDITIONS
* 
*     PARAMETERS
* 
# 
      ITEM SBNAM  C(30);           # 30-CHARACTER SUBSCHEMA NAME       #
      ITEM SCNAM  C(30);           # 30-CHARACTER SCHEMA NAME          #
      ITEM RUID   C(10);           # 10-CHARACTER RUN-UNIT ID          #
      ITEM SBCKSM     U;           # SUBSCHEMA CHECKSUM                #
# 
* 
* DC  EXIT CONDITIONS 
* 
*     THE INVOKE REQUEST (WITH DATABASE VERSION = MASTER) HAS BEEN
*     ISSUED AND PROCESSED BY CDCS.  SEE THE IMBEDDED PROCEDURE,
*     DB$INVV, FOR DETAILS. 
* 
* DC  CALLING ROUTINES
* 
*     HOST-LANGUAGE FOR CDCS 2.2 OR EARLIER.
*     IMPLICIT INVOKE IN COBOL. 
* 
* DC  CALLED ROUTINES 
* 
# 
      XDEF PROC DB$INVV;           # INVOKE OBJECT-TIME ROUTINE WITH   #
                                   # VERSION.  IMBEDDED PROCEDURE,     #
                                   # ALSO EXTERNALLY CALLABLE.         #
# 
* 
* DC  DESCRIPTION 
* 
*     SET DATABASE VERSION TO MASTER AND CALL DB$INVV FOR INVOKE WITH 
*     DATABASE VERSION. 
* 
 #
#     LOCAL VARIABLES                                                  #
  
      ITEM VENAME  C(07);          # DEFAULT VERSION NAME FOR DB$INVV  #
      ITEM XPAR1       I;          # UNUSED PARAMETER FOR DB$INVV CALL #
  
  
#     S T A R T   O F   D B $ I N V   E X E C U T A B L E   C O D E    #
  
  
      BEGIN 
      VENAME = DFMASTER;
      XPAR1 = 0;
      DB$INVV(SBNAM,SCNAM,RUID,SBCKSM,VENAME,XPAR1);
      RETURN; 
      END 
      CONTROL EJECT;
      PROC DB$INVV(SBNAM,SCNAM,RUID,SBCKSM,VENAME,XPAR1); 
      BEGIN 
 #
* *   DB$INV                                     PAGE  1
* *   DB$INVV--INVOKE WITH DATABASE VERSION OBJECT-TIME ROUTINE 
* *   W P CEAGLIO                                DATE  11/21/75 
* *   J J JANIK                                  DATE  11/07/78 
* *   A W ALLEN - DATABASE VERSIONS              DATE  01/30/81 
* 
* DC  PURPOSE 
* 
*     FORMAT THE REQUEST PACKET FOR INVOKE REQUEST WITH DATABASE
*     VERSION.
* 
* DC  ENTRY CONDITIONS
* 
*     PARAMETERS
* 
# 
      ITEM SBNAM  C(30);           # 30-CHARACTER SUBSCHEMA NAME       #
      ITEM SCNAM  C(30);           # 30-CHARACTER SCHEMA NAME          #
      ITEM RUID   C(10);           # 10-CHARACTER RUN-UNIT ID          #
      ITEM SBCKSM     U;           # SUBSCHEMA CHECKSUM                #
      ITEM VENAME C(07);           # 7-CHARACTER DATABASE VERSION NAME #
      ITEM XPAR1      I;           # EXTRA UNUSED PARAMETER            #
# 
*     ASSUMPTIONS 
* 
*     PARAMETER XPAR1 IS SET TO ZERO BY CALLER. 
*     THIS PARAMETER IS RESERVED FOR FUTURE AND CURRENTLY UNUSED. 
* 
* DC  EXIT CONDITIONS 
* 
*     THE "CALLSS" SUBSYSTEM REQUEST TO CDCS IS MADE. 
* 
* DC  CALLING ROUTINES
* 
*     DB$INV                       INVOKE OBJECT-TIME ROUTINE (WITHOUT
*                                  VERSIONS)
*     HOST-LANGUAGES               FOR CDCS 2.3 (WITH VERSIONS) 
* 
* DC  CALLED ROUTINES 
* 
*     DB$RQST    FINALIZE REQUEST PACKET AND ISSUE "CALLSS" REQUEST 
* 
* DC  NON-LOCAL VARIABLES MODIFIED
* 
*     DB$DBS  - ONE-WORD ARRAY DEFINED IN DB$RQST THAT CONTAINS THE 
*               LOCATION AND LENGTH OF THE USER"S DBST.  MUST BE ZEROED 
*               INITIALLY BECAUSE NO DBST CAN BE ESTABLISHED YET. 
*     DB$IMRT - RESET THE IMMEDIATE RETURN FLAG.
*     DB$RQBF - REQUEST PACKET BUFFER DEFINED IN DB$RQST
* 
* DC  DESCRIPTION 
* 
*     PARAMETERS THAT ARE PECULIAR TO THE REQUEST ARE FORMATTED IN THE
*     REQUEST PACKET.  INVOKE PARAMETERS ARE SAVED IN DB$INVP.  THE 
*     LOCATION AND LENGTH OF THE DBST ARE INITIALIZED TO ZERO.  THE 
*     IMMEDIATE RETURN FLAG IS RESET.  THEN DB$RQST IS CALLED TO
*     COMPLETE THE REQUEST PACKET AND TO ISSUE THE "CALLSS" SUBSYSTEM 
*     FUNCTION.  UPON RETURN, CONTROL IS RETURNED TO THE HOST-LANGUAGE. 
* 
 #
# XREF ITEMS                                                           #
  
      XREF ARRAY DB$DBS;           # LOCATION AND LENGTH OF THE DBST   #
        BEGIN 
        ITEM DBSTWD U(00,00,60);   # FULL WORD                         #
        END 
  
      XREF ITEM DB$IMRT B;         # IMMEDIATE RETURN FLAG - IN DB$GLDF#
  
      XDEF
        BEGIN 
*CALL INPARDCLS 
        END 
  
      XREF PROC DB$RQST;
      XREF PROC  DB$RA0;
      CONTROL EJECT;
  
#     FILL IN ENTRIES IN THE REQUEST PACKET BUFFER                     #
  
      RQPINID [0] = RUID; 
      RQPINSC [0] = SCNAM;
      RQPINSB [0] = SBNAM;
      RQPINSBCK[0] = SBCKSM;
      RQPVENAM[0] = VENAME; 
  
  
# SAVE CERTAIN INVOKE PARAMETERS FOR POSSIBLE LATER CHECK OF SUB-INVOKE#
# CALL ISSUED BY SAME RUN-UNIT                                         #
  
      MISCNAM [0] = SCNAM;
      MISBNAM [0] = SBNAM;
      MISBCKSM [0] = SBCKSM;
      MIVENAM[0] = VENAME;
  
#     INITIALIZE THE LOCATION AND LENGTH OF THE DBST TO ZERO.          #
  
      DBSTWD[0] = 0;
  
#     RESET THE IMMEDIATE RETURN FLAG.                                 #
  
      DB$IMRT = FALSE;
  
#     COMPLETE REQUEST PACKET AND ISSUE "CALLSS" REQUEST               #
  
      DB$RQST (DFINV,DFWCINV,DB$RA0); 
  
  
      END 
  END 
      TERM
