$TITLE ('UDI GET TIME SYSTEM CALL')
$LARGE
/*************************************************************************/
/*                                                                       */
/*               D I S C L A I M E R   N O T I C E                       */
/*               -------------------   -----------                       */
/*                                                                       */
/*  This document and/or portions of the material and data furnished     */
/*  herewith, was developed under sponsorship of the U. S. Government.   */
/*  Neither the U.S. nor the U.S.D.O.E., nor the Leland Stanford Junior  */
/*  University, nor their employees, nor their respective contractors,   */
/*  subcontractors, or their employees, makes any warranty, express or   */
/*  implied, or assumes any liability or responsibility for accuracy,    */
/*  completeness or usefulness of any information, apparatus, product    */
/*  or process disclosed, or represents that its use will not infringe   */
/*  privately-owned rights.  Mention of any product, its manufacturer,   */
/*  or suppliers shall not, nor is it intended to, imply approval, dis-  */
/*  approval, or fitness for any particular use.  The U. S. and the      */
/*  University at all times retain the right to use and disseminate same */
/*  for any purpose whatsoever.  Such distribution shall be made by the  */
/*  National Energy Software Center at the Argonne National Laboratory   */
/*  and only subject to the distributee furnishing satisfactory proof    */
/*  that he has a valid license from the Intel Corporation in effect.    */
/*                                                                       */
/*************************************************************************/
 
DQ_GET$TIME: do;
 
$INCLUDE (PLM$UDI:EXCEPT.LIT)
 
declare PTR literally 'POINTER';
 
 
FOR%DATE: procedure (date$p) external;
	declare date$p pointer;
	end;
 
FOR%TIME: procedure (time$p) external;
	declare time$p pointer;
	end;
 
declare month (12) structure (name(3) byte, number(2) byte)
	data(	'JAN01', 'FEB02', 'MAR03',
		'APR04', 'MAY05', 'JUN06',
		'JUL07', 'AUG08', 'SEP09',
		'OCT10', 'NOV11', 'DEC12');
 
DQ$GET$TIME: procedure (dt$p, excep$p) public;
	declare (dt$p,excep$p) PTR;
	declare (dt based dt$p) structure (date(8) byte, time(8) byte);
	declare (status based excep$p) word;
	declare i integer;
 
	call FOR%DATE(@dt.date(7));
 
	i=0;
	do while dt.date(10)<>month(i).name(0) or
		 dt.date(11)<>month(i).name(1) or
		 dt.date(12)<>month(i).name(2);
	    i=i+1;
	end;
 
	dt.date(0)=month(i).number(0);		/* MM */
	dt.date(1)=month(i).number(1);		
	dt.date(2),dt.date(5)='/';
        dt.date(3)=dt.date(7) OR '0';           /* DD */
	dt.date(4)=dt.date(8);
	dt.date(6)=dt.date(14);			/* YY */
	dt.date(7)=dt.date(15);
 
	call FOR%TIME(@dt.time);		/* HH:MM:SS */
 
	status=E$OK;
	end DQ$GET$TIME;
 
end DQ_GET$TIME;
