*TITLEDATIME -- DATE AND TIME FROM COMPUTER CLOCK 00000010 C*********************************************************************** C COPYRIGHT ATLANTIC RICHFIELD COMPANY 1991 * C*********************************************************************** *A 00000020 *A SYSTEM PROGRAM SYS1.SUBLIB 00000030 *A MAINTAINED BY RESEARCH AND DEVELOPMENT 00000040 *A AUTHOR/DESIGNER P. D. WITT 00000050 *A LANGUAGE S/360 ASSEMBLER-F 00000060 *A system ibm (see cray) 00000060 *A WRITTEN CA. 1965 00000070 * REVISED 2/27/67 FAC. ABSTRACT ONLY. 00000080 * REVISED 5/06/82 FAC. BRANCH AROUND NAME (TRACEBACK LINKAGE). 00000090 *A 00000100 *A 00000110 *A CALL DATIME (D, E, T) 00000120 *A 00000130 *A OUTPUT D = DATE IN EBCDIC CODE, MO-DA-YR R8 00000140 *A OUTPUT E = TIME IN EBCDIC CODE, HR:MI:SC R8 00000150 *A OUTPUT T = TIME IN CENTISECONDS I4 00000160 *A 00000170 *A 00000180 *A THIS PROGRAM GETS DATE AND TIME FROM THE MACHINE TIMER. 00000190 *A DATE D AND TIME E ARE READY TO PRINT, FORTRAN FORMAT A8. 00000200 *A TIME T IS IN CENTISECONDS FOR USE IN GETTING TIME DIFFERENCES. 00000210 *A 00000220 *A RELATED SUBPROGRAMS: CLOCK, CUMTIM, EBCTIM. 00000230 *A THIS ABSTRACT PREPARED 5/5/67, FRANCIS COLLINS. 00000240 *AEND 00000250 SPACE 2 00000260 DATIME CSECT 00000270 USING *,15 00000280 B START 00000290 DC X'06',C'DATIME ' 00000300 START STM 14,12,12(13) 00000310 ST 13,SAVE+4 00000320 LA 12,SAVE 00000330 ST 12,8(0,13) 00000340 LR 13,12 00000350 LR 12,15 00000360 DROP 15 00000370 USING DATIME,12 00000380 LM 5,7,0(1) 00000390 TIME BIN TIME IN R0 IN BINARY 00000400 ST 0,0(0,7) STORE TIME IN FOURTH PARAMETER 00000410 ON AH 0,FIFTY ROUND 00000420 LR 3,0 00000430 SR 2,2 00000440 D 2,HUNDRED SECONDS IN R3 00000450 SR 2,2 00000460 D 2,SIXTY 00000470 LR 8,2 SECONDS IN R8 00000480 SR 2,2 00000490 D 2,SIXTY 00000500 LR 9,2 MIN IN R9 00000510 LR 10,3 HOURS IN R10 00000520 CVD 10,HOLD 00000530 MVO HOLD(2),HOLD+6(2) 00000540 MVC PRTIME(1),HOLD 00000550 CVD 9,HOLD 00000560 MVO HOLD(2),HOLD+6(2) 00000570 MVC PRTIME+1(1),HOLD 00000580 CVD 8,HOLD 00000590 MVO HOLD(2),HOLD+6(2) 00000600 MVC PRTIME+2(1),HOLD 00000610 MVC EDITA(9),TPAT 00000620 ED EDITA(9),PRTIME 00000630 MVC 0(8,6),EDITA+1 00000640 ST 1,DATE 00YYDDDS 00000650 L 6,DATE RELOAD DATE GIVING 00YYDDDS 00000660 SRL 6,16 SHIFT OFF DDDS LEAVING 000000DD 00000670 SLL 6,4 GIVING 00000DD0 00000680 ST 6,WRK+4 00000690 OI WRK+7,X'0C' PUT A SIGN ON IT 00000700 CVB 7,WRK 00000710 SR 6,6 CLEAR 6 00000720 D 6,DVSR DIVIDE BY 4 00000730 C 6,RMDR IF REMAINDER iS i5960CH92&Z2 CE-70HE-R 00000740 BZ LEAPYEAR 00000750 LA 4,NOD 00000760 RTRN LR 6,4 00000770 MVC HOLD+2(2),DATE+1 00000780 MVI DATE+1,X'00' 00000790 TEST CLI 0(4),X'FF' 00000800 BNE SNOD 00000810 WTO 'DATE TOO LARGE' 00000820 SR 6,6 00000830 ST 6,0(0,5) 00000840 ST 6,4(0,5) 00000850 B EOJ 00000860 SNOD CP 0(2,4),DATE+2(2) 00000870 BNL FMTH 00000880 SP DATE,0(2,4) 00000890 LA 4,2(4) 00000900 B TEST 00000910 FMTH LA 4,2(4) 00000920 SR 4,6 00000930 SRL 4,1 00000940 CVD 4,KEEP 00000950 MVO HOLD(2),KEEP+6(2) 00000960 MVO DATE(2),DATE+2(2) 00000970 MVC HOLD+1(1),DATE HOLD=MMDDYY 00000980 MVC EDITA(9),DPAT 00000990 ED EDITA(9),HOLD 00001000 MVC 0(8,5),EDITA+1 00001010 EOJ L 13,SAVE+4 00001020 RETURN (14,12) 00001030 LEAPYEAR LA 4,LYR INITIALIZE WITH ADDRESS OF LEAPYEAR TABLE 00001040 LR 6,4 00001050 B RTRN 00001060 WRK DC D'0' 00001070 HOLD DS 1D 00001080 KEEP DS 1D 00001090 DATE DS 1F 00001100 HUNDRED DC 1F'100' 00001110 SIXTY DC 1F'60' 00001120 SAVE DS 18F 00001130 DVSR DC F'4' 00001140 RMDR DC F'0' 00001150 FIFTY DC 1H'50' 00001160 PRTIME DS CL6 00001170 EDITA DS CL9 00001180 DPAT DC X'402020602020602020' 00001190 TPAT DC X'4020207A20207A2020' 00001200 LYR DC P'31,29,31,30' 00001210 DC P'31,30,31,31' 00001220 DC P'30,31,30,31' 00001230 DC X'FF' 00001240 NOD DC P'31,28,31,30' 00001250 DC P'31,30,31,31' 00001260 DC P'30,31,30,31' 00001270 DC X'FF' 00001280 END 00001290