`L i=L\Ʃx ? N'i  ͭЅ?0ȱ Ѕ?iȱi lԠԠ͠ԠϠŠͮŠ SYSTEM.APPLE   L$JN^<,0 CLOCK.CODE=vg06 AUTODATE.TEXTvgS69SYSTEM.STARTUPgSTHUNDER   CLOCK.TEXTE^o<  SETCLOCK.TEXT^o< BSRX10.TEXT^o< BSRX10.CODE^o<TIMEVALUES.CODE! SETTIME.CODE^oL+ "?I>  N `  ` x V Nx .x- z `V0^*^*>` aI꽌ɪVɭ&Y&&Y& 꽌ɪ\8`&(*$S++*)   PROGRAM CLOCK;  #USES TURTLEGRAPHICS,APPLESTUFF,TRANSCEND; # #VAR MO,DW,DT,HR,MIN,SEC:INTEGER; 'OLDSEC,XC,YC,X,Y,I:INTEGER; 'XS,YS,XM,YM,XH,YH:INTEGER; 'X1,Y1,X2,Y2,X3,Y3:INTEGER; 'RH,RM,RS:INTEGER; 'AS,AM,AH,CV:REAL; 'TIME:STRING;D (VAL <= MAX)); (GETNUM:=VAL; & &END; & (  BEGIN (WRITELN; (WRITELN('**************************************'); (WRITELN('* PLEASE PUT THE SET/PROTECT SWITCH *'); (WRITELN('* YOUR THUNDERCLOCK P.C. CARD IN THE *'); (WRITELN('* SET-ENABLE POSITIERNAL; #  PROCEDURE TIMEVALUES(VAR A,B,C,D,E,F:INTEGER); #EXTERNAL; # #FUNCTION GETNUM(T:STRING;LAST,MIN,MAX:INTEGER):INTEGER; & &VAR VAL:INTEGER; &BEGIN & (REPEAT BEGIN 0WRITE(T,'[',LAST,']: '); 0READLN(VAL); (END; (UNTIL ((VAL >= MIN) AN(*$S++*)   PROGRAM SETCLOCK;  #USES APPLESTUFF; # #VAR MO,DW,DT,HR,MN,SC:INTEGER; # MO1,DW1,DT1,HR1,MN1,SC1:INTEGER; 'T1:STRING; # #PROCEDURE SETTIME(A,B,C,D,E,F:INTEGER); #EXTERNAL; # #PROCEDURE TIMEASCII(VAR T:STRING;FMT:INTEGER); #EXTN^<<*COS(AM)); 0XH:=XC+ROUND(RH*SIN(AH)); 0YH:=YC+ROUND(RH*COS(AH)); 0PENCOLOR(NONE); 0MOVETO(63,1); ( WSTRING(TIME); ( NOTE(1,1); 0REDRAW(XS,YS,X1,Y1); ( REDRAW(XM,YM,X2,Y2); 0REDRAW(XH,YH,X3,Y3); (END; (TEXTMODE; ( #END.  HR,MIN,SEC) 0UNTIL 7SEC <> OLDSEC; ( OLDSEC:=SEC; 0TIMEASCII(TIME,12); ( AS:=SEC*CV; 0AM:=(MIN+(SEC/60))*CV; 0AH:=(HR+(MIN/60))*5*CV; 0XS:=XC+ROUND(RS*SIN(AS)); 0YS:=YC+ROUND(RS*COS(AS)); 0XM:=XC+ROUND(RM*SIN(AM)); 0YM:=YC+ROUND(RM0MOVETO(X,Y); 0PENCOLOR(WHITE1); 0MOVETO(X,Y); (END; (PENCOLOR(NONE); (MOVETO(53,182); (WSTRING('* THUNDERCLOCK PLUS TIME *'); (  (* REDRAW THE HANDS EACH TIME THE SECOND CHANGES *)  (WHILE(NOT KEYPRESS) DO BEGIN 0REPEAT 7TIMEVALUES(MO,DW,DT,0;RS:=78;  X1:=0;Y1:=0; (X2:=0;Y2:=0; (X3:=0;Y3:=0;   (* DRAW THE CLOCK FACE OUTLINE *)  (INITTURTLE; (FILLSCREEN(BLACK); (FOR I:=0 TO 11 DO BEGIN 0X:=XC+ROUND((80*SIN(5*I*CV))); 0Y:=YC+ROUND((80*COS(5*I*CV))); 0PENCOLOR(NONE); N 0 PENCOLOR(BLACK1); 0 MOVETO(XN,YN); 0 MOVETO(XC,YC); 0 XN:=X; YN:=Y; 0END; 0PENCOLOR(WHITE1); 0MOVETO(XN,YN); ( (END (* REDRAW *); # #BEGIN # (OLDSEC:=-1; (CV:=0.104720;  XC:=140; YC:=95; (RH:=45;RM:=7 ' #PROCEDURE TIMEVALUES(VAR A,B,C,D,E,F:INTEGER); #EXTERNAL; # #PROCEDURE TIMEASCII(VAR S:STRING;FMT:INTEGER); #EXTERNAL; # #PROCEDURE REDRAW(VAR X,Y,XN,YN:INTEGER); (BEGIN 0PENCOLOR(NONE); 0MOVETO(XC,YC); 0IF((X <> XN) OR (Y <> YN)) THEN BEGION TO SET CLOCK. *'); (WRITELN('**************************************'); (WRITELN; (TIMEASCII(T1,12); (TIMEVALUES(MO,DW,DT,HR,MN,SC); (WRITELN('CLOCK TIME: ',T1); (WRITELN; (MO:=GETNUM('MONTH (1-12)',MO,1,12); (DW:=GETNUM('DAY-OF-WEEK (0=SUN,..,6=SAT)',DW,0,6); (DT:=GETNUM('DATE (1-31)',DT,1,31); (HR:=GETNUM('HOUR (0-23)',HR,0,23); (MN:=GETNUM('MINUTE (0-59)',MN,0,59); (SC:=GETNUM('SECOND (0-59)',SC,0,59); (SETTIME(MO,DW,DT,HR,MN,SC); (TIMEVALUES(MO1,DW1, LN(CS); 0FOR I:=1 TO LENGTH(CS) DO BEGIN  IF(CS[I] = '*') THEN @FLAG:=TRUE 8ELSE @IF(FLAG = TRUE) THEN BEGIN HDUR:=CS[I]; @ FLAG:=FALSE; @END @ELSE HSENDX10(CS[I],DUR);  END;  END; #END. BACK COVER OF THE *'); (WRITELN('* THUNDERCLOCK PLUS OPERATING MANUAL.*'); ( (WHILE(1 > 0) DO BEGIN 0GOTOXY(0,15); 0WRITELN(' '); 0GOTOXY(0,15); 0FLAG:=FALSE; 0DUR:='D'; 0WRITE('COMMAND STRING: '); 0READENTER A *'); (WRITELN('* STRING OF CHARACTERS CORRESPONDING *'); (WRITELN('* TO THE COMMANDS (A-V). YOU MAY *'); (WRITELN('* IMBED AN "*" BEFORE A DURATION *'); (WRITELN('* CHARACTER (A-Z) TO CHANGE DURATION *'); (WRITELN('* SEE THE INSIDE(*$S++*)   PROGRAM BSRX10;  #VAR CS:STRING; # I:INTEGER; # DUR:CHAR; 'FLAG:BOOLEAN; # #PROCEDURE SENDX10(A,B:CHAR); #EXTERNAL; # #BEGIN (WRITELN; (WRITELN('* BE SURE YOUR THUNDERWARE BSR/X-10 *'); (WRITELN('* IS PROPERLY INSTALLED. N^<<SS) DO BEGIN 0TIMEASCII(T1,12); 0GOTOXY(9,22); 0WRITE(T1); (END; (  END. ( DT1,HR1,MN1,SC1); (WRITELN; (IF((MO=MO1) AND (DW=DW1) AND (DT=DT1) AND +(HR=HR1) AND (MN=MN1) AND (SC=SC1)) THEN ( WRITELN(' ** SET SWITCH TO WRITE-PROTECT **') (ELSE ( WRITELN(' >>WRITE-PROTECTED! NO CHANGE!<<'); ( (WHILE( NOT KEYPRE BSRX10 h h h.h0L ! f. o/ 0 o1 o2 o3 o fLP0 c銍())`x() `8 0Lqi H 0 fh 0 f f`) @ !(mxxxx x )`(xxx'II.0 [d.4]n SETTIME TIMEVALU TIMEVALU ! H H`00,00,00,00,00,00ywBh h i# h2h32) e)e2LS0 f銍 ) `x(  C ! xxxx x ` xxxx  x 'II.0 [d.4]J TIMEVALU  `  !Mxxxx x `xxxx  x ! H H`nlš) .D-COMMAND STRING: P,/,/ȡ5,*á.. ,-. ,-,,DZ h h O* Fh Fh^ Fh FhL00 C銍)`x( N "*" BEFORE A DURATION *&* CHARACTER (A-Z) TO CHANGE DURATION *&* SEE THE INSIDE BACK COVER OF THE *&* THUNDERCLOCK PLUS OPERATING MANUAL.*š) ׶&* BE SURE YOUR THUNDERWARE BSR/X-10 *&* IS PROPERLY INSTALLED. ENTER A *&* STRING OF CHARACTERS CORRESPONDING *&* TO THE COMMANDS (A-V). YOU MAY *&* IMBED A'x  x ! H H`%  }fSETTIME SETTIME  nSETCLOCK TIMEASCI TIMEASCI ! H H`NO THUNDERCLOCK! Ph h h hhbhc i%  &  UL?0 R銍 )`x(ʎ)` / ! (%xxxx x ` xxxx  x 'II.0 [d.4]X TIMEASCI SENDX10 SENDX10  nlh h O* Fh Fh^ Fh FhL00 C銍)`x( `  !Mxxxx x `xxxx  x ! H H`'II.0 [d.4] SENDX10 G@ݪP[ ]: 0 00Ȅ0QT ^צ&**************************************צ&* PLEASE PUT THE SET/PROTECT SWITCH *צ&* YOUR THUNDERCLOCK P.C (%xxxx x ` xxxx  x ! H H`NO THUNDERCLOCK! PZxxxx  x ! H H`00,00,00,00,00,00ywBh h h hhbhc i%  &  UL?0 R銍 )`x(ʎ)` / !& /h h i# h2h32) e)e2LS0 f銍 ) `x(  C ! xxxx x ` IME *ˡ& $"< <$$""  ?&ˍB=pwnj _ -FN OOȡGP P  5Ƕצ* THUNDERCLOCK PLUS TGp CLOCK x  x ! H H`00,00,00,00,00,00ywBLPh h i# h2h32) e)e2LS0 f銍 ) `x(  C ! xxxx x ` xxx0 R銍 )`x(ʎ)` / ! (%xxxx x ` xxxx  x ! H H`NO THUNDERCLOCK! (mxxxx x )`(xxxx  x ! H H`%  }fh h h hhbhc i%  &  UL?ECTED! NO CHANGE!<<   0jh h h.h0L ! f. o/ 0 o1 o2 o3 o fLP0 c銍())`x() `8 0Lqi H 0 fh 0 f f`) @ !WEEK (0=SUN,..,6=SAT) DATE (1-31)צ HOUR (0-23) MINUTE (0-59);צ SECOND (0-59); ÄÄÄÄÄ8" ** SET SWITCH TO WRITE-PROTECT **4 >>WRITE-PROT. CARD IN THE *צ&* SET-ENABLE POSITION TO SET CLOCK. *צ&**************************************  CLOCK TIME:  MONTH (1-12) DAY-OF-N^rS/Y0Y Pצ-QYǡPצ SETFDATE.TEXT%FD0RSETFDATE.TEXTYQ%%%%EXEC/SETFDATE.TEXTGfAUTODATE %CLOSE(EXFILEID,LOCK); ! SETCHAIN('EXEC/SETFDATE.TEXT'); ! !END.  !EXTERNAL; ! !BEGIN ! %TIMEASCII(TIME,24); %NEWDATE:=CONCAT(COPY(TIME,9,2),'-',COPY(TIME,5,3)); %REWRITE(EXFILEID,'SETFDATE.TEXT');  WRITELN(EXFILEID,'%FD',NEWDATE); %WRITELN(EXFILEID,'RSETFDATE.TEXT'); %WRITELN(EXFILEID,'YQ%%%%'); O SET THE MONTH AND DATE. *) !(* *) !(*** THIS PROGRAM ONLY WORKS WITH PASCAL 1.1 ***) ! !USES CHAINSTUFF; ! !VAR EXFILEID:TEXT; %TIME,NEWDATE:STRING; ! !PROCEDURE TIMEASCII(VAR TIME:STRING;FMT:INTEGER);ND THE RESULTING CODE *) !(* FILE SHOULD BE NAMED 'SYSTEM.STARTUP' AND *) !(* T)RANSFERED TO YOUR BOOT DISKETTE. WHEN YOU *) !(* BOOT YOUR PASCAL 1.1 SYSTEM THIS PROGRAM *) !(* WILL BE RUN. IT CREATES AN EXEC FILE AND *) !(* THEN EXECUTES IT TPROGRAM AUTODATE;  !(* THE AUTODATE PROGRAM WILL AUTOMATICALLY *) !(* SET THE SYSTEM DATE FROM YOUR THUNDERCLOCK *) !(* WHEN YOU BOOT YOUR PASCAL 1.1 DISKETTE. *) !(* THIS PROGRAM SHOULD BE COMPILED AND LINKED *) !(* WITH TIMEASCII.CODE, A Ph h h hhbhc i%  &  UL?0 R銍 )`x(ʎ)` / ! (%xxxx x ` xxxx  x ! H H`NO THUNDERCLOCK! PX ! xxxx x ` xxxx  x ! H H`00,00,00,00,00,00ywBJ xxxx  x ! H H`NO THUNDERCLOCK! Ph h i# h2h32) e)e2LS0 f銍 ) `x(  C4.(=h h h hhbhc i%  &  UL?0 R銍 )`x(ʎ)` / ! (%xxxx x `ˡ& $"< <$$""  ?&ˍSB=pwnj _ -FN OOȡGP P  5Ƕצ* THUNDERCLOCK PLUS TIME *