image of READY prompt

Wang2200.org

Listing of file='@CLOC' on disk='vmedia/731-8009-F.wvd.zip'

# Sector 1014, program filename = '@CLOC'
0010 REM % Prog = @CLOC   By DMB (Mod. by SPM)   Date = 05/09/86   Rel 2.7
0015 REM %(c) Copr. Wang Laboratories, Inc. 1985, 1986
0020 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.
0030 REM     U8$(1) - ENTER TIME - HH.MM.SS
   : REM     U8$(2) - ENTER DATE - MM/DD/YY
   : REM     V2$ - DATE FROM @DATE FILE
0040 DIM U7$(6)2,U9$(6)2,U8$8,V1$6,V2$6,U8$(2)8,I1(6),V3$6
0050 PRINT HEX(03);
   : V1$=TIME
   : V2$=" "
   : DATA LOAD DC OPEN T"@DATE"
   : ERRORGOTO 80
0060 DATA LOAD DC V2$
   : ERRORGOTO 80
0070 DATA SAVE DC CLOSE
   : ERRORGOTO 80
0080 U9$()=STR(V2$,3,4)&STR(V2$,1,2)&V1$
   : U7$()=U9$()
   : STR(U9$(),7,6)=" "
   : U8$="SYSTEM"
   : V3$=DATE
   : DATE=V3$ PASSWORD "SYSTEM"
   : ERRORGOTO 100
0090 GOTO 110
0100 REM CALL ENTER PASSWORD SUBROUTINE
   : GOSUB '200
0110 U8$()="MM/DD/YYHH:MM:SS"
   : IF V2$<>" " THEN U8$(1)=U9$(1)&"/"&U9$(2)&"/"&U9$(3)
0130 GOSUB '202
   : T$=U9$(1)&"/"&U9$(2)&"/"&U9$(3)
   : GOSUB '75(12)
0140 IF V1$="999999" THEN I8=30
   : ELSE I8=4
0150 PRINT AT(22,45);"Press FN or TAB to return to menu";
   : PRINT HEX(06);AT(6,I8);"Enter date:";
   : LINPUT -U8$(1)
   : U7$(1)=STR(U8$(1),1,2)
   : U7$(2)=STR(U8$(1),4,2)
   : U7$(3)=STR(U8$(1),7,2)
0160 REM % VALIDATE DATE ENTRY
   : I1=0
   : FOR I=1 TO 3
   : CONVERT U7$(I) TO I1(I)
   : ERRORI1=1
   : I=3
0170 NEXT I
   : IF I1=1 THEN 220
0180 IF I1(1)<1 OR I1(1)>12 OR I1(2)<1 OR I1(2)>31 THEN 220
0190 ON I1(1) GOTO 230,200,230,210,230,210,230,230,210,230,210,230
0200 REM PROCESS FEBRUARY
   : IF I1(2)>29 THEN 220
   : IF MOD(I1(3),4)<>0 AND I1(2)=29 THEN 220
   : GOTO 230
0210 REM 30 DAY MONTHS
   : IF I1(2)>30 THEN 220
   : GOTO 230
0220 PRINT HEX(07);
   : GOTO 150
0230 FOR I=1 TO 3
   : CONVERT I1(I) TO U7$(I),(##)
   : NEXT I
   : STR(U9$(),1,6)=STR(U7$(),1,6)
   : V2$=U7$(3)&U7$(1)&U7$(2)
   : U8$(1)=U7$(1)&"/"&U7$(2)&"/"&U7$(3)
   : DATE=V2$ PASSWORD U8$
0240 DATA LOAD DC OPEN T"@DATE"
   : ERRORGOTO 270
0250 DATA SAVE DC V2$
   : ERRORGOTO 270
0260 DATA SAVE DC CLOSE
   : ERRORGOTO 270
0270 T$=U9$(1)&"/"&U9$(2)&"/"&U9$(3)
   : I8=1
   : IF V1$="999999" THEN I8=36
   : PRINT AT(2,I8);T$;
   : GOSUB '75(12)
   : PRINT AT(23,0,79);
0280 IF V1$="999999" THEN 350
   : PRINT HEX(06);AT(6,53);"Enter time:";
   : LINPUT -U8$(2)
   : U7$(4)=STR(U8$(2),1,2)
   : U7$(5)=STR(U8$(2),4,2)
   : U7$(6)=STR(U8$(2),7,2)
0290 REM % VALIDATE TIME ENTRY
   : I1=0
   : FOR I=4 TO 6
   : CONVERT U7$(I) TO I1(I)
   : ERRORI1=1
   : I=6
0300 NEXT I
   : IF I1=1 THEN 320
0310 IF I1(4)<0 OR I1(4)>23 OR I1(4)<>FIX(I1(4)) THEN 320
   : IF I1(5)<0 OR I1(5)>59 OR I1(5)<>FIX(I1(5)) THEN 320
   : IF I1(6)<0 OR I1(6)>59 OR I1(6)<>FIX(I1(6)) THEN 320
   : GOTO 330
0320 PRINT HEX(07);
   : GOTO 280
0330 FOR I=4 TO 6
   : CONVERT I1(I) TO U7$(I),(##)
   : NEXT I
   : STR(U9$(),7,6)=STR(U7$(),7,6)
0340 V1$=STR(U7$(),7,6)
   : U8$(2)=U7$(4)&":"&U7$(5)&":"&U7$(6)
   : TIME=V1$ PASSWORD U8$
0350 PRINT HEX(06);AT(21,38);"Press FN or TAB to accept date";AT(22,38,42);"Pr
     ess RETURN to modify date ";
0360 IF V1$<>"999999" THEN PRINT HEX(06);AT(22,66);"& time      ";AT(21,69);"&
      time";
   : KEYIN K$,380,390
   : IF V1$="999999" THEN 360
   : V1$=TIME
   : STR(U7$(),7,6),STR(U9$(),7,6)=V1$
   : U8$(2)=U7$(4)&":"&U7$(5)&":"&U7$(6)
   : PRINT HEX(06);AT(2,71);U8$(2);
0370 V2$=DATE
   : U7$(1)=STR(V2$,3,2)
   : U7$(2)=STR(V2$,5,2)
   : U7$(3)=STR(V2$,1,2)
   : STR(U9$(),1,6)=STR(U7$(),1,6)
   : U8$(1)= U7$(1)&"/"&U7$(2)&"/"&U7$(3)
   : PRINT HEX(06);AT(2,1);U8$(1)
   : GOTO 360
0380 IF K$<>HEX(0D) THEN 350
   : PRINT HEX(06);AT(21,38,42);AT(22,38,42)
   : GOTO 140
0390 IF K$<>HEX(7F) AND K$<>HEX(7E) THEN 350
   : GOTO 490
0400 DEFFN'200
   : REM % ENTER PASSWORD FIELD
0410 GOSUB '202
   : U8$=" "
0420 PRINT AT(6,30);"Password:";
   : LINPUT -U8$
0430 REM VALIDATE PASSWORD HERE
   : V3$=DATE
   : DATE=V3$ PASSWORD U8$
   : ERRORPRINT HEX(07)
   : GOTO 420
0440 RETURN
0450 DEFFN'202
   : PRINT HEX(03);
   : REM % DISPLAY TIME AND DATE
0460 PRINT AT(22,45);"Press FN or TAB to return to menu";
   : IF V1$="999999" THEN PRINT HEX(06020402000E);AT(22,0);"No system clock";H
     EX(0F);
0470 IF V1$="999999" THEN 480
   : PRINT AT(0,25);HEX(0E);"*** Initialize Date & Time ***";HEX(0F);AT(1,21);
     "(c) Copr. Wang Laboratories, Inc. 1986";AT(2,0);BOX(1,9);AT(2,70);BOX(1,
     9);AT(2,1);STR(U9$(1),1);"/";STR(U9$(2),1);"/";U9$(3);AT(2,71);STR(U9$(4)
     ,1);":";STR(U9$(5),1);":";U9$(6);
   : RETURN
0480 PRINT AT(0,25);"*** Initialize Date & Time ***";AT(2,35);BOX(1,9);AT(2,36
     );STR(U9$(1),1);"/";STR(U9$(2),1);"/";U9$(3);
   : RETURN
0490 DEFFN'126
0500 DEFFN'127
   : COM CLEAR
   : PRINT HEX(06);AT(21,0,);AT(23,0);HEX(0E);"(Returning to System Menu)";HEX
     (01)
   : $PSTAT=" "
   : LOAD T"@MENU"
0510 DEFFN'75(R)
0520 PRINT HEX(06);AT(I7,I9);BOX(-1,-3);AT(R,0,10*80)
   : GOSUB 540
   : RETURN
0530 RETURN
0540 $UNPACK (D=HEX(002F)) T$ TO M,D,Y
   : ERROR$UNPACK(D=HEX(002C)) T$ TO M,D,Y
   : ERRORRETURN
0550 IF M<>INT(M) OR M<1 OR M>12 THEN 530
   : IF D<>INT(D) OR D<1 OR D>31 THEN 530
   : IF Y<>INT(Y) OR Y<0 THEN 530
   : IF Y<100 THEN Y=Y+1900
0560 REM CONVERT TO STANDARD FORM
   : T$="00/00/0000"
   : CONVERT M TO STR(T$,1,2),(##)
   : CONVERT D TO STR(T$,4,2),(##)
   : CONVERT Y TO STR(T$,7,4),(####)
0570 GOSUB '76(D,M,Y,R,1)
   : M=MOD(M,12)+1
   : IF M=1 THEN Y=Y+1
   : GOSUB '76(0,M,Y,R,45)
0580 RETURN
0590 DEFFN'76(I0,I1,I4,R,C)
   : GOSUB '50(I1)
   : I3=I4
0600 IF I1>2 THEN 610
   : I1=I1+12
   : I4=I4-1
0610 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
0620 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=1 TO 6
   : PRINT AT(R+1+W,C);
   : FOR I=1 TO 7
   : IF T=I0 AND T<>0 THEN 625
   : ELSE GOTO 630
0625 PRINT BOX(1,3);
   : I7=R+1+W
   : I9=C+(I-1)*4
0630 IF T>0 AND T<=I2 THEN PRINTUSING " ## ";T;
   : ELSE PRINT "    ";
   : IF T=I0 THEN PRINT HEX(0F0204020F);
   : T=T+1
   : PRINT HEX(0F);
   : NEXT I,W
   : RETURN
0640 DEFFN'50(I1)
   : RESTORE LINE 640,2*I1-1
   : READ M$,I2
   : IF MOD(Y,4)=0 AND I1=2 THEN 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