*DECK DB$TIM
USETEXT RQPARTX 
      PROC DB$TIM(TYPE,CP,IO);
 #
* *   DB$TIM  REQUEST OBJECT TIME ROUTINE        PAGE  1
* *   R.C. KLOENNE                               DATE  2/11/77
* * 
* DC  PURPOSE 
* 
*     FORMAT THE REQUEST PACKET FOR THE "TIME" REQUEST
* 
* DC  ENTRY CONDITIONS
* 
*     STANDARD CALLING SEQUENCE WITH THE FOLLOWING PARAMETERS 
* 
*         TYPE  TIME CALL TYPE
* 
*                TYPE VALUES ARE: 
*                 1   ISSUE DAYFILE MESSAGE OF CPU IO TIME
*                 2   DO NOT DAYFILE TIME BUT RETURN CP IO TIME  PARAMS 
*                 3   DAYFILE TIME AND RETURN CP /IO TIME PARAMETERS
* 
* 
*          CP - CP TIME RETURN PARAMETER
*          IO - IO TIME RETURN PARAMETER
* 
* DC  EXIT CONDITIONS 
* 
*     THE  "CALLSS" SUBSYSTEM REQUEST TO CDCS IS MADE VIA "DB$RQST" 
* 
* DC  CALLING ROUTINES
* 
*     HOST-LANGUAGE 
* 
* DC  CALLED ROUTINES 
* 
# 
      XREF PROC DB$RQST; # ISSUE SCP REQUEST   #
      XREF FUNC  DB$CDIS C(10); # CONVERT BINARY TO DISPLAY    #
      XREF PROC  DB$MSG ; # ISSUE DAYFILE MESSAGE      #
      XREF PROC  DB$CPT ; # GET CP TIME        #
      XREF PROC  DB$IOT ; # GET IO TIME        #
      XREF PROC  DB$NCPT;# GET NOS CP TIME       #
      XREF PROC  DB$NIOT;# GET NOS IO TIME       #
# 
* 
* DC  DESCRIPTION 
*     PARAMETERS THAT ARE PECULIAR TO THE REQUEST ARE FORMATTED 
*     IN THE BUFFER DEFINED IN DB$RQST
* 
 #
      BEGIN 
#     DEFS                                                             #
  
      CONTROL  NOLIST;       # COMDECKS CALLED  CDGDFCLS,RQPARDCLS# 
       XREF 
         BEGIN
         END
      CONTROL  LIST;
  
#     EXTERNAL DECLARATIONS                                            #
      XREF ITEM DB$RA0  U;
#     LOCAL DEFINITIONS                                                #
      STATUS  TYP  ERR,DF,ND,DFT,LDF,LND,LDFT,MWR,SPY  ;
      SWITCH  GOTYP: TYP  GOERR:ERR  ,DAYFILE:DF,NDAYF:ND,
              DAYFTIME:DFT; 
      ITEM  TYPE  S:TYP  ;
      ITEM CP U;             # CP OUTPUT PARAMETR                      #
      ITEM IO U;             # IO OUTPUT PARAMETR                      #
      ARRAY MSG S(8); 
      BEGIN 
      ITEM  MSG1  C(0,0,20) =["** ELAPSED  CP TIME "];
      ITEM  MSG2  C(2,0,6); 
      ITEM  MSG2A  C(2,36,1)=["."] ;
      ITEM  MSG2B  C(2,42,3)              ; 
      ITEM  MSG2F C(3,00,20) = ["                    "];
                             # BLANK FILL FOR COLUMN ALIGNMENT         #
      ITEM  MSG3  C(5,00,10) = ["  IO TIME "];
      ITEM  MSG4  C(6,00,06); 
      ITEM  MSG4A C(6,36,01) = ["."]; 
      ITEM  MSG4B C(6,42,03); 
      ITEM  MSG5  C(7,00,01) = [":"]; 
      END 
      ARRAY  WSA  S(2); 
      BEGIN 
      ITEM  CPUT  U(0,24,36); 
      ITEM  CPTIME  U(0,24,24); 
      ITEM  CPMIL U(0,48,12); 
      ITEM  IOT   U(1,24,36); 
      ITEM  IOTIME  U(1,24,24); 
      ITEM  IOMIL U(1,48,12); 
      END 
 #
      CHECK IF TYPE PARAMETER IS LEGAL
 #
      IF (TYPE GR 3) OR (TYPE LS 1) THEN GOTO GOERR;
      RQPTADD[0]  =LOC(WSA)  ;
      RQPTTYP[0] =TYPE; 
 #
      COMPLETE ,PACK AND ISSUE "CALLSS" REQUEST 
 #
MAX:  
      DB$RQST(DFTIM ,DFWCTIM,DB$RA0); 
OUTMSG: 
      MSG2  = DB$CDIS(CPTIME,6,10," "); 
      MSG2B = DB$CDIS(CPMIL,3,10,"0") ; 
      MSG4  = DB$CDIS(IOTIME,6,10," "); 
      MSG4B = DB$CDIS(IOMIL,3,10,"0") ; 
      GOTO  GOTYP[TYPE]  ;
      LOCDAYT:  
DAYFILE: DB$MSG(MSG); RETURN; 
DAYFTIME:  DB$MSG(MSG)  ; 
LOCRT:  
 NDAYF:  CP=CPUT ;           # TRANSMIT TIME PARAMETERS                #
         IO = IOT;
GOERR:  
      RETURN; 
      END 
           TERM 
