Listing of file='@CLOCK' on disk='vmedia/benchmark_tests.wvd.zip'
# Sector 356, program filename = '@CLOCK' 0010 REM % Prog = CLOCK By JMR Date = 08/19/83 0020 DIM T$9,Y$1 0030 DIM A$(11)7,B$(11)7,C$(11)7,D$(11)7,E$(11)7,F$(11)7,G$(11)7 0040 REM % VARIABLES FOR TIME & DATE : REM U7$() - ENTERED TIME & DATE - MMDDYYHHMMSS : REM U9$() - DISPLAYED TIME & DATE - MMDDYYHHMMSS : REM V1$ - CONTAINS TIME RETURNED FROM O.S. 0050 REM U8$(1) - ENTER TIME - HH.MM.SS : REM U8$(2) - ENTER DATE - MM/DD/YY : REM V2$ - DATE FROM @DATE FILE 0054 PRINT HEX(03) 0055 PRINT "DO YOU WANT A 24 HR. CLOCK? (Y/N) " : KEYIN T1$ 0060 DIM U7$(6)2,U9$(6)2,U8$8,V1$6,V2$6,U8$(2)8,I1(6),V3$6,T1$ 0070 PRINT HEX(03); : V1$="99999999" : V2$=" " 0080 V2$=DATE 0090 U9$()=STR(V2$,3,4)&STR(V2$,1,2)&V1$ : U7$()=U9$() : STR(U9$(),7,6)=" " : V3$=DATE 0100 GOTO 110 0110 U8$()="MM/DD/YYHH:MM:SS" : IF V2$<>" "THEN U8$(1)=U9$(1)&"/"&U9$(2)&"/"&U9$(3) 0120 GOSUB '202 : T$=U9$(1)&"/"&U9$(2)&"/"&U9$(3) : GOSUB '75(16) 0130 IF V1$="999999"THEN I8=30 : ELSE I8=4 0140 U7$(1)=STR(U8$(1),1,2) : U7$(2)=STR(U8$(1),4,2) : U7$(3)=STR(U8$(1),7,2) 0150 REM % GOING TO COLCK PRO. : GOTO 350 0160 DEFFN'202 : PRINT HEX(03); : REM % DISPLAY TIME AND DATE 0170 IF V1$="999999"THEN PRINT HEX(06020402000E); 0180 COM CLEAR 0190 DEFFN'75(R) 0200 PRINT AT(I7,I9);BOX(-1,-3);AT(R,0,10*80); : GOSUB 220 : RETURN 0210 RETURN 0220 $UNPACK(D=HEX(002F))T$TO M,D,Y : ERROR$UNPACK(D=HEX(002C))T$TO M,D,Y : ERRORRETURN 0230 IF M<>INT(M)OR M<1OR M>12THEN 210 : IF D<>INT(D)OR D<1OR D>31THEN 210 : IF Y<>INT(Y)OR Y<0THEN 210 : IF Y<100THEN Y=Y+1900 0240 REM CONVERT TO STANDARD FORM : T$="00/00/0000" : CONVERT MTO STR(T$,1,2),(##) : CONVERT DTO STR(T$,4,2),(##) : CONVERT YTO STR(T$,7,2),(####) 0250 GOSUB '76(D,M,Y,R,1) : M=MOD(M,12)+1 : IF M=1THEN Y=Y+1 : GOSUB '76(0,M,Y,R,45) 0260 RETURN 0270 DEFFN'76(I0,I1,I4,R,C) : GOSUB '50(I1) : I3=I4 0280 IF I1>2THEN 290 : I1=I1+12 : I4=I4-1 0290 REM CALC. DAY OF WEEK MONTH BEGINS ON : T=MOD(2+INT((13*I1+3)/5)+INT(5*I4/4)-INT(I4/100)+INT(I4/400),7)+1 0300 REM DISPLAY MONTH : T=2-T : PRINT AT(R,C,28);AT(R,C+(28-LEN(M$)-5)/2);M$;I3 : PRINT AT(R+1,C);"SUN MON TUE WED THU FRI SAT " : FOR W=1TO 6 : PRINT AT(R+1+W,C); : FOR I=1TO 7 : IF T=I0AND T<>0THEN 310 : ELSE GOTO 320 0310 PRINT HEX(020400020E); : I7=R+1+W : I9=C+(I-1)*4 0320 IF T>0AND T<=I2THEN PRINTUSING " ## ";T; : ELSE PRINT " "; : IF T=I0THEN PRINT HEX(0F0204020F); : T=T+1 : PRINT HEX(0F); : NEXT I,W : RETURN 0330 DEFFN'50(I1) : RESTORE LINE330,2*I1-1 : READ M$,I2 : IF MOD(Y,4)=0AND I1=2THEN I2=I2+1 : RETURN : DATA "JANUARY",31,"FEBRUARY",28,"MARCH",31,"APRIL",30,"MAY",31,"JUNE",30, "JULY",31,"AUGUST",31,"SEPTEMBER",30,"OCTOBER",31,"NOVEMBER",30,"DECEMBER ",31 0340 STOP 0350 D=0 0360 INIT(20)A$(),B$(),C$(),D$(),E$(),F$(),G$() 0370 A$(1)=" 11" 0380 B$(1)=" 111" 0390 C$(1)=" 11" 0400 D$(1)=" 11" 0410 E$(1)=" 11" 0420 F$(1)=" 11" 0430 G$(1)=" 1111" 0440 A$(2)=" 22222" 0450 B$(2)="22 22" 0460 C$(2)=" 22" 0470 D$(2)=" 22" 0480 E$(2)=" 22" 0490 F$(2)=" 22" 0500 G$(2)="2222222" 0510 A$(3)="333333" 0520 B$(3)=" 33" 0530 C$(3)=" 33" 0540 D$(3)=" 3333" 0550 E$(3)=" 33" 0560 F$(3)=" 33" 0570 G$(3)="333333" 0580 A$(4)=" 444" 0590 B$(4)=" 4444" 0600 C$(4)=" 44 44" 0610 D$(4)="44 44" 0620 E$(4)="4444444" 0630 F$(4)=" 44" 0640 G$(4)=" 44" 0650 A$(5)="5555555" 0660 B$(5)="55" 0670 C$(5)="55" 0680 D$(5)="555555" 0690 E$(5)=" 55" 0700 F$(5)=" 55" 0710 G$(5)="555555" 0720 A$(6)=" 66" 0730 B$(6)=" 66" 0740 C$(6)=" 66" 0750 D$(6)=" 66666" 0760 E$(6)="66 66" 0770 F$(6)="66 66" 0780 G$(6)=" 66666" 0790 A$(7)="7777777" 0800 B$(7)=" 77" 0810 C$(7)=" 77" 0820 D$(7)=" 77" 0830 E$(7)=" 77" 0840 F$(7)=" 77" 0850 G$(7)="77" 0860 A$(8)=" 88888" 0870 B$(8)="88 88" 0880 C$(8)="88 88" 0890 D$(8)=" 88888" 0900 E$(8)="88 88" 0910 F$(8)="88 88" 0920 G$(8)=" 88888" 0930 A$(9)=" 99999" 0940 B$(9)="99 99" 0950 C$(9)="99 99" 0960 D$(9)=" 99999" 0970 E$(9)=" 99" 0980 F$(9)=" 99" 0990 G$(9)=" 99" 1000 A$(10)=" 00000" 1010 B$(10)="00 00" 1020 C$(10)="00 00" 1030 D$(10)="00 00" 1040 E$(10)="00 00" 1050 F$(10)="00 00" 1060 G$(10)=" 00000" 1070 A$(11)=HEX(20202020202020) 1080 B$(11)=HEX(20202020202020) 1090 C$(11)=HEX(20202020202020) 1100 D$(11)=HEX(20202020202020) 1110 E$(11)=HEX(20202020202020) 1120 F$(11)=HEX(20202020202020) 1130 G$(11)=HEX(20202020202020) 1140 PRINT HEX(0106); 1150 PRINT AT(4,0);BOX(9,78) 1160 PRINT AT(6,26);"##" 1170 PRINT AT(7,26);"##" 1180 PRINT AT(9,26);"##" 1190 PRINT AT(10,26);"##" 1200 PRINT AT(6,52);"##" 1210 PRINT AT(7,52);"##" 1220 PRINT AT(9,52);"##" 1230 PRINT AT(10,52);"##" 1240 T$=TIME 1250 CONVERT STR(T$,5,2)TO T1 1255 $BREAK15 1260 IF T3=T1THEN 1240 1270 T3=T1 1280 CONVERT STR(T$,3,2)TO T2 1290 CONVERT STR(T$,1,2)TO T5 1300 Z=5 1310 IF T1<5THEN Z=3 1320 IF T2=0THEN Z=1 1330 IF D=0THEN Z=1 1340 IF 3<T1THEN GOTO 1370 1350 IF T5<>T2THEN GOTO 1370 1355 IF T5<>0THEN GOTO 1370 1360 GOTO 60 1370 D=1 1372 IF T5>12AND T1$="N"THEN T6=T5-12 : ELSE T6=T5 1373 Z$=T$ 1375 CONVERT T6TO X$,(##) 1377 STR(Z$,1,2)=X$ 1380 FOR X=ZTO 6 1390 CONVERT STR(Z$,X,1)TO A 1400 IF A=0THEN A=10 1420 PRINT AT(5,((X-1)*13)+4);STR(A$(A)) 1440 PRINT AT(6,((X-1)*13)+4);STR(B$(A)) 1460 PRINT AT(7,((X-1)*13)+4);STR(C$(A)) 1480 PRINT AT(8,((X-1)*13)+4);STR(D$(A)) 1500 PRINT AT(9,((X-1)*13)+4);STR(E$(A)) 1520 PRINT AT(10,((X-1)*13)+4);STR(F$(A)) 1540 PRINT AT(11,((X-1)*13)+4);STR(G$(A)) 1550 NEXT X 1560 GOTO 1240 1600 DEFFN'127 : LOAD RUN 1610 DEFFN'15 : LOAD RUN