10  COM Q$[11],L,D$[72],M$[72]
20  REM:  CLOCK  Written by David Shayer 12/6/79
30  REM:         Modified by Brad Zaller 7/12/80
40  DATA 31,28,31,30,31,30,31,31,30,31,30,31
50  D$="DAY  MON 00, 1900   00:00:00 AM   0000/000"
60  D1=(TIM(2)+365*TIM(3)+INT((TIM(3)-1)/4))/7
70  D1=INT(7*(D1-INT(D1))+1.5)
80  M$="SunMonTueWedThuFriSat"
90  D$[1,3]=M$[D1*3-2,D1*3]
100  D=TIM(2)
110  FOR X=1 TO 12
120  READ M
130  M=M+((X=2) MIN (TIM(3)/4=INT(TIM(3)/4)))
140  IF D <= M THEN 170
150  D=D-M
160  NEXT X
170  M$="JanFebMarAprMayJunJulAugSepOctNovDec"
180  D$[6,8]=M$[X*3-2,X*3]
190  CONVERT D TO D$[11-(D>9),11]
200  CONVERT TIM(3) TO D$[16,17]
210  T=TIM(1)-(12*(TIM(1)>12))
220  CONVERT T TO D$[22-(T>9),22]
230  CONVERT TIM(0) TO D$[25-(TIM(0)>9),25]
240  CONVERT TIM(4) TO D$[28-(TIM(4)>9),28]
250  D$[30,30]=CHR$(65+(15*(TIM(1)>11)))
260  CONVERT TIM(1)*100+TIM(0) TO D$[36-(TIM(1)>9),38]
270  CONVERT TIM(2) TO D$[42-(TIM(2)>9)-(TIM(2)>99),42]
280  IF  ERROR  THEN 340
290  REM: Try to chain back to the program specified in
300  REM: Q$ at line specified by L
310  CHAIN B,Q$,L
320  REM: Chain to line L failed - Try to chain without
330  REM: a line number 
340  CHAIN B,Q$
350  REM: Illegal or no program specified in Q$.  Print
360  REM: the date string at the terminal and exit.
370  PRINT D$
380  END 
