$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;