!7F ***THIS VOLUME DOES NOT CONTAIN A HARDWARE BOOTABLE SYSTEM *** ߋtv33333333t:#z xQz kzNNz*O:zt:#zt:#z kz U%U U` tU7 Dt: mVw %  Fχ0, 8 e    S ee@ 7w lχ  4 f b ZRet BASICFILES30JAN84231002BASICFILES [128,128] DECFILE11A ;.t:#z15JAN:113172130JAN84231002-V8. xQz16JAN:102164530JAN8423100212. kz30JAN84231002P-.NNz30JAN842310020;0.*O:z30JAN842310023J_.f.8Tz30JAN8423113330JAN84231132i\.Uu~!]n15JAN:114481515JAN:10325385ai. {E}d30JAN8423132605OCT831340146P. Hhed15JAN:114360605OCT83181636:>. xY`d 30JAN8423133414OCT83213908<. $Rvd30JAN8423133718DEC83133158B{. I ̀Ԁ14JAN:100135428FEB:00542254 G]{.  t! l^14JAN:100181128FEB:0023019cg.L  t! 30JAN8423145319DEC83141826 S!.67u~@$16JAN:102464715JAN:11537365}6B.t! 14JAN:100181128FEB:0023226.*Hy ^15JAN:116045815JAN:1145655.O bt! 14JAN:100181111JAN:1220127 5. t! 14JAN:100181211JAN:1220508&.~,,t! ^14JAN:100181211JAN:1220458&F#.~00:u~C^^14JAN:114482514JAN:1002136Jkh.t{:(#^14JAN:114491505JUN86194300|.C{:(#kQ14JAN:114495408JUL841223 }.W 4{:(#n14JAN:114495412DEC852120  BB.E f 8 30JAN8423245928NOV83124534d.L t! 30JAN8423594719DEC83142700 e̢. !u~C^14JAN:116432114JAN:1152950.(O u~X^ 14JAN:118470402JAN:0161017 k.O u~C^ 31JAN8400000709DEC83094627 p_d.(m  u~X^ 14JAN:118470502JAN:0162740 .(m u~X^ 14JAN:118470602JAN:0162045 . L  t! 31JAN8400001917DEC83232906 ڣ.!(f_K N14JAN:118472914JAN:1184309+?."(u_Kn14JAN:118501114JAN:1153718- .#zb<$^14JAN:119524714JAN:11944210.$h<$14JAN:119524714JAN:118522187.%"#<$14JAN:119524714JAN:1194430!9.&R<$l^14JAN:119524714JAN:1185221[2.'O<$14JAN:119524714JAN:1194414\V=.(*dL"14JAN:119574114JAN:1194958_K.)tu~C^25SEP8421080125SEP84203819.*&u~C^25SEP8421080525SEP84163241$~.+#u~C^l^25SEP8421080825SEP84194627%.,Wru~@$n15JAN:114481515JAN:1034724b.-$%u~X^15JAN:116001415JAN:1155633#ft:#z xQz kzNNz*O:zf.8Tz0OQz%!}zpz ~mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm? ====================================================? ====================================================? ====================================================4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx 2************************************************** 1) DL0:[1,3]TIME2.B2S;4K 9 10 !GOSUB 4000!\esc$=chr$(27)\clr$=esc$+'[H'+esc$+'[J'\ PRINT clr$;S 10 15 r$=esc$+'[7m' \ n$=esc$+'[m' \ b$=esc$+'[1m' \ REM Reverse, normal, bold*************** 2) DL0:[1,3]TIME2.B2S;5> 9 10 !GOSUB 4000!\esc$=chr$(27)\clr$=esc$+'[H'+esc$+'[J'U 10 11 call WTQIO by ref (768%,5%,1%) \ PRINT clr$; \ rem attach term, clr screenS 11 15 r$=esc$+'[7m' \ n$=esc$+'[m' \ b$=esc$+'[1m' \ REM Revers 10  1.05  52.06  1.04  0  10  1.09  52  1.09  0  10  1.09  52  1.09  0  10  1.09  52  1.09  0  10  1.09  52  1.09  0  10  1.09  52  1.09  0  10  1.09  49  1.05  2.07  1.05  0  10  1.09  49  1.14  0  10  1.09  49  1.04  2.07  1.04  0  10  1.09  52  1.09  0  10  1.09  52  1.09  0  10  1.09  52  1.09  0  10  1.09  52  1.09  0  10  1.09  22  1.05  6.07  1.04  22  1.09  0 0 10  1.09  21  1.05  8 0 1.04  21  1.09  0  10  1.09  20  1.05  10  1.04  20  1.09  0  10  1.09  20  1.14  10  1.14  20  1.09  0  10  1.09  20  1.14  10  1.14  20  1.09  0  10  1.09  20  1.04  10  1.05  3 0 1.11  16  1.09  0 0 10  1.09  21  1.04  8 0 1.05  21  1.09  0  10  1.09  22  1.04  6.07  1.05  22  1.09  0  10  1.09  52  1.09  0  10  1.09  52  1.09  0  10  1.09  23  1.05  4.07  1.04  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0 0 10  1.09  23  1.04  4.07  1.05  23  1.09  0  10  1.09  19  1.05  1.07  1.04  8  1.05  1.07  1.04  19  1.09  0 2 10  1.04  20.06  1  10.06  1  20.06 0 1.05  0 1-1 4 25 A BEAUTIFUL ELEPHANT DISK1 1.09  23  1.14  4  1.14  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0  10  1.09  23  1.14  4  1.14  23  1.09  0 0 10  1.09  23  1.04  4.07  11152.061021152.0601152.06.0224.01224.0101224.01224.0101224.01224.0101224.01224.0101224.01224.010.224.01224.010h224.01224.010r224.01224.010I224.01224.0101224.01224.0101224.01224.0101224.01224.010.224.01224.010.224.01224.010.224.01224.010.224.01224.010224.01224.010224.01224.010224.01224.0102224.01224.0102224.01224.0102224.01224.010224.01224.010224.01224.010224.01224.010224.01224.010-11.HThree cheers for PI: hurrPI, hurrPI, hurrPI. How SIGNIFICANT - ha ha ha.224.01224.0101224.01224.0101224.01224.0101224.01224.010.224.01224.010.224.01224.010.224.01224.010.224.01224.010224.01224.010224.01224.010224.01224.0102224.224.010N211.014 2.010E201.012E3.0221.01165.010191.0125.0221.01123.0152.010164.0117.0213.0164.01102.010142.0131.0116.0229.01162.0113.010122.0161.0114.022271.012.0211.010111.0182.0142.0151.01221.013.021.010101.0192.054.0171.01224.01091.0192.0521.01292.01081.0192.0541.011018.01.1.05018.1.015.3.012.05411.01101.0101861.0141.01311.01521.01911.010181.0141.01411.01421.01811.0101901.0131.01411.01411.01821.01202.010191.0141.01311.01411.01821.01173.01222.0101101.01413.01611.01811.01151.01211.011.1.01201.010101.01131.0191.01142.011.1.012.4.010.111.01131.019.8.011.0452.01302.0121.010122.01122.01141.01511.01411.0121.010142.01124.01316.011.0551.0154.010163.01132.013.0291.010.1913.011111.02311.02721.01501.0101321.013.071.0211.0151.0151.010311.021.071.021.1.023.3.011.1.015.1.010.311.021.071.1.027.3.01301.0103301.021.07141.021.01103.0101301.021.071.021.01143.010291.021.0711.021.01421.01122.0104291.021.07111.022.011141.01131.0101281.022.1.021.011.02111.0141.01131.0102281.022.1.021.01111.02111.01421.01131.0101271.022.1.0211.012.022.1.013.4.01101.010.271.0221.0211.012.0222.0151.01101.010261.0222.0211.012.021.1.0152.01101.10261.0222.02271.011.02243.0131.01921.010251.0222.0242.0134.017.3.010241.02211.0211.0264.0161.0151.010231.02311.0211.02101.01521.01521.01029.7.067.02311.02121.02111.01511.01628.011.040161.029.1.021.1.02601.055.0168.011.0461.030115.0610.022.1.025.1.01211.0321.0421.030.134.061.029.1.025.1.01151.0421.04371.035.10-117Curse You, RED BARON!!!!!.0222.0242.0134.017.3.010241.02211.0211.0264.0161.0151.010231.02311.0211.02101.01521.01521.01029.7.067.02311.02121.02111.01511.01628.011.040161.029.1.021.1.02601.055.0168.011.0461.030115.0610.022.1.025.1.01211.0321.0421.030.134.061.029.1.025.1.01151.0421.04371.035.10-117Curse You,111.053.011.042s1.053.011.04261.053.011.042 1.053.011.040101.055.011.041.055.011.04241.055.011.041.055.011.040.91.1358.0131.03221.153.8.013.1.030146.01326.0101154.01344.010.154.01344.010154.01344.010155.01334.010156.01324.010.157.01314.010.154.0114.01294.010154.013.4.01274.010.154.01454.01264.010.613.0256.4.012413.0250.418.0265.4.011918.02 0.34.02843.017.0234.01157.023.018.4.020.32.02104.012.7.0214.01117.022.4.01102.020.154.0146.0224.018.6.024.4.0105154.017.5.02154.01545.0274.0101154.0194.02214.01214.0294.010154.01104.0233.014.02104.010.154.01114.023.1.014.02114.010.154.01124.02264.022.01104.010.154.01138.024.01984.010154.01146.0224.01844.010.154.01154.0254.0164.010154.01154.0274.0144.010154.01154.02824.0134.010154.01154.02104.01114.010154.01154.02127.0102154.01154.02136.0102154.01154.02145.010154.01154.02154.010.154.01154.02154.010.154.01154.02154.010146.01144.02146.0101901.113.8.01311.03924.02981.1138.01311.0302101.045.011.051.045.011.05104.02101.045.011.051.045.011.050111.043.011.052.1.043.011.05114.02111.043.011.052.1.043.011.0501344.0201344.0202344.0205344.020.344.020336.020281.138.0231.030291.045.021.051.045.021.050301.043.021.05251.043.021.050-118$The Magic Is Back - Catch It At SHEA8.01311.03924.02981.1138.01311.0302101.045.011.051.045.011.05104.02101.045.011.051.045.011.050111.043.011.052.1.043.011.05114.02111.043.011.052.1.043.011.0501344.0201344.0202344.0205344.020.344.020336.020281.138.0231.030291.045.021.051.045.021.050301.043.021.05251.043.021.050-118$The Magic Is Back - Ca xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxx4 xxxx xxxxI Three cheers for PI: hurrPI, hurrPI, hurrPI. How SIGNIFICANT - ha ha ha.xB 22222222222222 00000000000000 00000000000000 00000000000000B 22222222222222 00000000000000 00000000000000 00000000000000B 222 000 000 000 000 000 000B 222 000 000 000 000 000 000B 222 000 000 000 000 000 000B 222 000 000 000 000 000 000B 22222222222222 000 000 000 000 000 000B 22222222222222 000 000 000 000 000 000B 222 000 000 000 000 000 000B 222 000 000 000 000 000 000B 222 000 000 000 000 000 000B 22222222222222 00000000000000 00000000000000 00000000000000B 22222222222222 00000000000000 00000000000000 000000000000004 ---------------------------------------$ January4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 7 2 3 4 5 6 7 8 27 9 10 11 12 13 14 15 27 16 17 18 19 20 21 22 07 23 24 25 26 27 28 29 - 30 31 4 ---------------------------------------% FebruaryM4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 3 4 5 7 6 7 8 9 10 11 12 7 13 14 15 16 17 18 19 7 20 21 22 23 24 25 26  27 28 29 -4 ---------------------------------------# March-4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 3 4 7 5 6 7 8 9 10 11 7 12 13 14 15 16 17 18 7 19 20 21 22 23 24 25 1 26 27 28 29 30 31 -4 ---------------------------------------# April-4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 7 2 3 4 5 6 7 8 7 9 10 11 12 13 14 15 7 16 17 18 19 20 21 22 7 23 24 25 26 27 28 29 - 30 4 ---------------------------------------" May4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 3 4 5 6 7 7 8 9 10 11 12 13 7 14 15 16 17 18 19 20 7 21 22 23 24 25 26 27 % 28 29 30 31 -4 ---------------------------------------# June-4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 3 7 4 5 6 7 8 9 10 7 11 12 13 14 15 16 17 7 18 19 20 21 22 23 24 1 25 26 27 28 29 30 -4 ---------------------------------------# July-4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 7 2 3 4 5 6 7 8 7 9 10 11 12 13 14 15 7 16 17 18 19 20 21 22 7 23 24 25 26 27 28 29 - 30 31 4 ---------------------------------------$ August4 SET NO DOUBLE 110 REM RENUMBERED ON 16-NOV-82 AT 11:24:55 STEP 1G20 REM SNOOPY: SNOOPY CALENDAR. REV. BY E. SCHAEFER, COMMACK SOUTH 3/75530 REM OTHER PICTURES BY DAVID KRAUS, NORTHPORT 10/8231 REM this is line 10piD32 REM Originally on DEC PDP 11/23; transfered to DEC PC350 9-29-83.40 DIM N(10,13),C$(14),P$(4)#50 FOR Q=1 TO 4\ READ P$(Q)\ NEXT Q60 PRINT "Choose picture:"70 FOR Q=1 TO 480 PRINT Q;". ";P$(Q) 90 NEXT Q 100 INPUT Z110 IF Z<1 THEN 60120 IF Z>Q THEN 601130 OPEN "dz1:"+P$(Z)+".pct" FOR INPUT AS FILE #1N(140 DATA "SNOOPY","DISKETTE","PI","METS"150 PRINT "What year calendar";S'160 INPUT Y\ IF INT(ABS(Y))<>Y THEN 150R170 IF Y<1582 THEN 220180 IF Y<=9999 THEN 280ML190 PRINT "Unable to do years after 9999 (if you notice there are only four"0200 PRINT "numbers at the top of the calendar)." 210 GOTO 150A220 PRINT "Not prepared to do calendars before MDLXXXII {1582} -"I:230 PRINT "the current calendar was not used before 1582."@240 PRINT "However, I have included the transition year of 1582"F250 PRINT "having ten days in October omitted to make up for previous")260 PRINT "error in the Julian calendar."Y 270 GOTO 150&280 PRINT "Roll paper and hit return." 290 INPUT J$$295 OPEN "lp:" FOR OUTPUT AS FILE #3300 FOR F=1 TO 14r310 READ C$(F) 320 NEXT F@330 DATA "x","*",")","\","/","=","-","&","!","(","#","$","%",":"340 INPUT #1,K350 IF K=0 THEN 480I360 IF K=-1 THEN 500 370 N=INT(K)380 IF K=N THEN 440d390 H=INT((100*K-100*N)+.5)w400 FOR L=1 TO N410 PRINT #3,C$(H);a 420 NEXT L 430 GOTO 340440 FOR L=1 TO N450 PRINT " "; 460 NEXT L 470 GOTO 340 480 PRINT 490 GOTO 340 500 PRINT 510 PRINT 520 INPUT #1,T530 LINPUT #1,A$ 540 CLOSE #1550 PRINT TAB(T);A$"!560 FOR U=1 TO 10\ PRINT \ NEXT U 570 Y2=Y+.11580 FOR Z3=1 TO 4E590 Y1(Z3)=INT(Y2/(10^(4-Z3)))600 Y2=Y2-Y1(Z3)*(10^(4-Z3)) 610 NEXT Z3 620 FOR L1=1 TO 10630 FOR L2=1 TO 13640 READ N(L1,L2) 650 NEXT L2 660 NEXT L14670 FOR L=1 TO 13K680 FOR T=1 TO 4685 N$=MID$(NUM$(Y),T+1,1)690 PRINT TAB(((T-1)*17)+1); 700 GOSUB 750 710 NEXT T 720 PRINT 730 NEXT L 740 GOTO 1060 :750 ON N((Y1(T)+1),L) GOTO 760,780,800,820,840,860,880,900$760 FOR Q=1 TO 14\ PRINT N$;\ NEXT Q 770 RETURN A'780 PRINT N$;N$;N$;" ";N$;N$;N$;7 790 RETURN 8800 PRINT N$;N$;N$; 810 RETURN /!820 PRINT " ";N$;N$;N$;( 830 RETURN E840 PRINT " ";N$;N$;N$;N$;O 850 RETURN !860 PRINT " ";N$;N$;N$;N$;N$;6 870 RETURN 7#880 PRINT " ";N$;N$;N$;N$;N$;N$;8 890 RETURN $900 IF L=13 THEN 940910 FOR I=1 TO (10-(L-3))U920 PRINT " "; 930 NEXT I940 PRINT N$;N$;N$;N$; 950 RETURN N"960 DATA 1,1,2,2,2,2,2,2,2,2,2,1,1"970 DATA 5,6,7,5,5,5,5,5,5,5,5,1,1"980 DATA 1,1,4,4,4,4,1,1,3,3,3,1,1"990 DATA 1,1,4,4,4,1,1,4,4,4,4,1,1#1000 DATA 2,2,2,2,2,1,1,4,4,4,4,4,4 #1010 DATA 1,1,3,3,3,1,1,4,4,4,4,1,1 #1020 DATA 1,1,3,3,3,1,1,2,2,2,2,1,1 #1030 DATA 1,1,8,8,8,8,8,8,8,8,8,8,8#1040 DATA 1,1,2,2,2,1,1,2,2,2,2,1,17#1050 DATA 1,1,2,2,2,1,1,4,4,4,4,4,4;!1060 DEF FNA(A)=INT(A-INT(A/4)*4)1#1070 DEF FNB(B)=INT(A-INT(A/7)*7)+1U1080 I1=INT((Y-1500)/100)I1090 A=I1*5+(I1+3)/41100 I2=FNB(A)1110 Y3=INT(Y-INT(Y/100)*100)21120 A=Y3/4+Y3+I27 1130 B=FNB(A)51140 IF Y3=0 THEN 12101150 T1=FNA(Y)1160 IF T1<>0 THEN 124041170 IF B<>0 THEN 11901180 B=6 1190 B=B-11200 GOTO 1240 1210 A=T1-1,1220 T1=FNA(A)1230 IF T1=0 THEN 11701240 IF B<>0 THEN 12601250 B=71260 IF Y=1582 THEN B=2,1270 PRINT \ PRINT \ PRINT 01280 FOR P4=1 TO 12, 1290 READ X$C1300 DATA "January",31,"February",28,"March",31,"April",30,"May",31UE1310 DATA "June",30,"July",31,"August",31,"September",30,"October",310 1320 READ Z(%1330 DATA "November",30,"December",31B!1340 FOR U=1 TO 4\ PRINT \ NEXT U1 1350 IF X$<>"February" THEN 14001360 IF Y/4<>INT(Y/4) THEN 14000#1370 IF Y/100<>INT(Y/100) THEN 13900#1380 IF Y/400<>INT(Y/400) THEN 14000 1390 Z=Z+1<1400 PRINT TAB(13);"---------------------------------------"!1410 PRINT TAB(33-(LEN(X$)/2));X$R<1420 PRINT TAB(13);"---------------------------------------"1430 PRINT \ PRINT ,<1440 PRINT TAB(13);"Sun Mon Tue Wed Thu Fri Sat"<1450 PRINT TAB(13);"=======================================" 1460 Q=2-B 1470 PRINT U:1480 PRINT TAB(13);\ FOR P2=Q TO Q+6\ IF Y<>1582 THEN 1500E1490 IF X$="October" THEN IF P2=5 THEN P2=16\Q=Q+10\ PRINT " 15 ";1500 IF P2<1 THEN 15301510 IF P2<10 GOTO 15501520 GOTO 157061530 PRINT " ";\ REM I thought it was 7 blanks...1540 GOTO 158021550 PRINT P2;" ";\ REM I think it's 3 blanks...1560 GOTO 15801570 PRINT P2;" ";T 1580 NEXT P2 1590 Q=Q+7 1600 PRINT 1610 IF Q+6<=Z THEN 14801620 B=11630 IF Q-1=Z THEN 1690=1640 PRINT TAB(13);=1650 FOR P2=Q TO Z1660 PRINT P2;" ";T 1670 B=B+1 1680 NEXT P21690 PRINT \ PRINT \ PRINT 1700 NEXT P41710 FOR P5=1 TO 706 1720 PRINT T 1730 NEXT P51735 PRINT 'c';C1740 END \ REM <-- This is the most SIGNIFICANT Line In The Program M I thought it was 7 blanks...1540 GOTO 158021550 PRINT P2;" ";\ REM I think it's 3 blanks. ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 3 4 5 7 6 7 8 9 10 11 12 7 13 14 15 16 17 18 19 7 20 21 22 23 24 25 26 + 27 28 29 30 31 -4 ---------------------------------------% September-4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 7 3 4 5 6 7 8 9 7 10 11 12 13 14 15 16 7 17 18 19 20 21 22 23 7 24 25 26 27 28 29 30 -4 ---------------------------------------$ October4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 3 4 5 6 7 7 8 9 10 11 12 13 14 7 15 16 17 18 19 20 21 7 22 23 24 25 26 27 28  29 30 31 4 ---------------------------------------% November-4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 3 4 7 5 6 7 8 9 10 11 7 12 13 14 15 16 17 18 7 19 20 21 22 23 24 25 + 26 27 28 29 30 -4 ---------------------------------------% December-4 ---------------------------------------4 Sun Mon Tue Wed Thu Fri Sat4 =======================================7 1 2 7 3 4 5 6 7 8 9 7 10 11 12 13 14 15 16 7 17 18 19 20 21 22 23 7 24 25 26 27 28 29 30 - 31 =======================================7 1 2 7 3 4 5 6 7 8 9 7 10 11 12 13 14 15 16 7 .ROOT BASIC2-RMSROT-USER,RMSALLUSER: .FCTR SY:CALENDAR-LIBRLIBR: .FCTR LB:[1,1]BP2OTS/LB@LB:[1,1]BP2IC1@LB:[1,1]RMSRLX .ENDSET NO DOUBLE &10 PRINT 'PRO/BASIC Version 3.1'E20 PRINT '? ATTEMPTED COPYRIGHT 1883 DGITAL EQUIPTMENT GORPORATION 'SET NO DOUBLE 110 REM RENUMBERED ON 16-NOV-82 AT 11:24:55 STEP 1G20 REM SNOOPY: SNOOPY CALENDAR. REV. BY E. SCHAEFER, COMMACK SOUTH 3/75=530 REM OTHER PICTURES BY DAVID KRAUS, NORTHPORT 10/82P31 REM this is line 10piD32 REM Originally on DEC PDP 11/23; transfered to DEC PC350 9-29-83.40 DIM N(10,13),C$(14),P$(4)#50 FOR Q=1 TO 4\ READ P$(Q)\ NEXT Q<60 PRINT "Choose picture:"70 FOR Q=1 TO 4r80 PRINT Q;". ";P$(Q)w 90 NEXT Q. 100 INPUT Z 110 IF Z<1 THEN 60120 IF Z>Q THEN 601130 OPEN "dz1:"+P$(Z)+".pct" FOR INPUT AS FILE #1N(140 DATA "SNOOPY","DISKETTE","PI","METS"150 PRINT "What year calendar";S'160 INPUT Y\ IF INT(ABS(Y))<>Y THEN 150R170 IF Y<1582 THEN 220180 IF Y<=9999 THEN 280ML190 PRINT "Unable to do years after 9999 (if you notice there are only four"0200 PRINT "numbers at the top of the calendar)." 210 GOTO 150A220 PRINT "Not prepared to do calendars before MDLXXXII {1582} -"I:230 PRINT "the current calendar was not used before 1582."@240 PRINT "However, I have included the transition year of 1582"F250 PRINT "having ten days in October omitted to make up for previous")260 PRINT "error in the Julian calendar."Y 270 GOTO 150&280 PRINT "Roll paper and hit return." 290 INPUT J$$295 OPEN "lp:" FOR OUTPUT AS FILE #3300 FOR F=1 TO 14r310 READ C$(F) 320 NEXT F@330 DATA "x","*",")","\","/","=","-","&","!","(","#","$","%",":"340 INPUT #1,K350 IF K=0 THEN 480I360 IF K=-1 THEN 500 370 N=INT(K)380 IF K=N THEN 440d390 H=INT((100*K-100*N)+.5)w400 FOR L=1 TO N410 PRINT #3,C$(H);a 420 NEXT L 430 GOTO 340440 FOR L=1 TO N450 print#3, " ";k 460 NEXT L 470 GOTO 340 480 print#3, h 490 GOTO 340 500 print#3, O 510 print#3, 520 INPUT #1,T530 LINPUT #1,A$ 540 CLOSE #1550 print#3, TAB(T);A$$560 FOR U=1 TO 10\ print#3, \ NEXT U 570 Y2=Y+.1E580 FOR Z3=1 TO 4"590 Y1(Z3)=INT(Y2/(10^(4-Z3)))600 Y2=Y2-Y1(Z3)*(10^(4-Z3)) 610 NEXT Z3K620 FOR L1=1 TO 10630 FOR L2=1 TO 13640 READ N(L1,L2)N 650 NEXT L29 660 NEXT L1K670 FOR L=1 TO 13O680 FOR T=1 TO 4685 N$=MID$(NUM$(Y),T+1,1)690 print#3, TAB(((T-1)*17)+1);5 700 GOSUB 750k 710 NEXT T 720 print#3, 730 NEXT L 740 GOTO 10600:750 ON N((Y1(T)+1),L) GOTO 760,780,800,820,840,860,880,900'760 FOR Q=1 TO 14\ print#3, N$;\ NEXT Q; 770 RETURN =*780 print#3, N$;N$;N$;" ";N$;N$;N$; 790 RETURN 800 print#3, N$;N$;N$; 810 RETURN 0$820 print#3, " ";N$;N$;N$; 830 RETURN 1"840 print#3, " ";N$;N$;N$;N$; 850 RETURN $860 print#3, " ";N$;N$;N$;N$;N$; 870 RETURN &880 print#3, " ";N$;N$;N$;N$;N$;N$; 890 RETURN ,900 IF L=13 THEN 940910 FOR I=1 TO (10-(L-3))920 print#3, " "; 930 NEXT I940 print#3, N$;N$;N$;N$;+ 950 RETURN 0"960 DATA 1,1,2,2,2,2,2,2,2,2,2,1,1"970 DATA 5,6,7,5,5,5,5,5,5,5,5,1,1"980 DATA 1,1,4,4,4,4,1,1,3,3,3,1,1"990 DATA 1,1,4,4,4,1,1,4,4,4,4,1,1#1000 DATA 2,2,2,2,2,1,1,4,4,4,4,4,4#1010 DATA 1,1,3,3,3,1,1,4,4,4,4,1,1#1020 DATA 1,1,3,3,3,1,1,2,2,2,2,1,1$#1030 DATA 1,1,8,8,8,8,8,8,8,8,8,8,8,#1040 DATA 1,1,2,2,2,1,1,2,2,2,2,1,1 #1050 DATA 1,1,2,2,2,1,1,4,4,4,4,4,4N!1060 DEF FNA(A)=INT(A-INT(A/4)*4)9#1070 DEF FNB(B)=INT(A-INT(A/7)*7)+1r1080 I1=INT((Y-1500)/100)41090 A=I1*5+(I1+3)/41100 I2=FNB(A)1110 Y3=INT(Y-INT(Y/100)*100)21120 A=Y3/4+Y3+I27 1130 B=FNB(A)51140 IF Y3=0 THEN 12101150 T1=FNA(Y)1160 IF T1<>0 THEN 124041170 IF B<>0 THEN 11901180 B=6 1190 B=B-11200 GOTO 1240 1210 A=T1-1,1220 T1=FNA(A)1230 IF T1=0 THEN 11701240 IF B<>0 THEN 12601250 B=71260 IF Y=1582 THEN B=2,$1270 print#3, \ print#3, \ print#3, 1280 FOR P4=1 TO 12, 1290 READ X$C1300 DATA "January",31,"February",28,"March",31,"April",30,"May",31IE1310 DATA "June",30,"July",31,"August",31,"September",30,"October",31( 1320 READ Z1%1330 DATA "November",30,"December",315$1340 FOR U=1 TO 4\ print#3, \ NEXT U 1350 IF X$<>"February" THEN 14001360 IF Y/4<>INT(Y/4) THEN 14000#1370 IF Y/100<>INT(Y/100) THEN 1390#1380 IF Y/400<>INT(Y/400) THEN 14000 1390 Z=Z+1?1400 print#3, TAB(13);"---------------------------------------" $1410 print#3, TAB(33-(LEN(X$)/2));X$?1420 print#3, TAB(13);"---------------------------------------"31430 print#3, \ print#3, 0?1440 print#3, TAB(13);"Sun Mon Tue Wed Thu Fri Sat"(?1450 print#3, TAB(13);"======================================="U 1460 Q=2-B1470 print#3, =1480 print#3, TAB(13);\ FOR P2=Q TO Q+6\ IF Y<>1582 THEN 15000H1490 IF X$="October" THEN IF P2=5 THEN P2=16\Q=Q+10\ print#3, " 15 ";1500 IF P2<1 THEN 15301510 IF P2<10 GOTO 1550-1520 GOTO 157091530 print#3, " ";\ REM I thought it was 7 blanks...01540 GOTO 158051550 print#3, P2;" ";\ REM I think it's 3 blanks...t1560 GOTO 15801570 print#3, P2;" "; 1580 NEXT P2 1590 Q=Q+71600 print#3, 1610 IF Q+6<=Z THEN 14801620 B=11630 IF Q-1=Z THEN 1690=1640 print#3, TAB(13);1650 FOR P2=Q TO Z1660 print#3, P2;" "; 1670 B=B+1 1680 NEXT P2$1690 print#3, \ print#3, \ print#3, 1700 NEXT P41710 FOR P5=1 TO 70 1720 print#3, 1730 NEXT P51735 print#3, 'c';-C1740 END \ REM <-- This is the most SIGNIFICANT Line In The Programnks...01540 GOTO 158051550 print#3, P2;" ";\ REM I think it's 3 blanks...t1560 GOTO 15801570 print#3, P2;" "; 1580 NEXT P2 1590 Q=Q+71600 print#3, 1610 IF Q+6<=Z THEN 14801620 B=11630 IF Q-1=Z THEN 1690=1640 print#3, TAB(13);1650 FOR P2=Q TO Z1660 print#3, P2;" "; 1670 B=B+1 1680 NEXT P2$1690 print#3, \ print#3, \ print#3, 1700 NEXT P41710 FOR P5=1 TO 70 1720 print#3, 1730 NEXT P51735 print#3, 'c';-C1740 END \ REM <-- This is the most SIGNIFSET NO DOUBLE J3 REM ***By Nick Zymaris Oct. 1983. Some lines after 3140 copied/modifiedA4 REM by me (in EDT as well as Pro/Basic) for use in the menu.5 ON ERROR GOTO 2990087 REM combined with CLOCK.BAS (line 10000) 9-Dec-83 A.M. 10 CLEAR I20 PRINT "To set time, go to Main Menu then press ";CHR$(27);"[7mSet-up";730 PRINT CHR$(27);"[m. This will rarely be necessary."<40 PRINT \ PRINT "Do you want to set alarm? [Y/N]"\ INPUT A$G50 IF A$='y' THEN PRINT 'Enter 24-hr. alarm time, format hh:mm' ELSE 60UJ53 PRINT '(If you use improper format, the alarm will not go off).''55 INPUT ALARM$\ PRINT 'Thank you!'r58 FOR T=1 TO 1000\ NEXT T 60 CLEAR RL62 PRINT 'The correct time is: ';TIME$(0);''\ PRINT \ PRINT ''%63 PRINT 'The date is ';DATE$(0%);'.'i$65 PRINT 'Alarm time is ';ALARM$;'.'C68 PRINT 'To turn off alarm when it rings (beeps), press I.'IJ69 PRINT 'To set up or exit, press , which on the PC350 is Ctrl';70 PRINT ' 3.'A71 IF VAL(MID$(TIME$(0),5,1))<>VAL(MID$(ALARM$,5,1)) THEN ALOFF=0a072 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100073 PRINT \ PRINT SLEEP$\ PRINT MESSAGE$;CHR$(15)I75 CALL INKEY (S$)\ IF S$=CHR$(27) THEN GOSUB 200\ REM setup/exit routineP79 FOR T=1 TO 314\ NEXT TT80 PRINT '';\ GOTO 62$100 FOR C=1 TO 31\ REM alarm routineF102 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);103 PRINT '';uF105 CALL INKEY (S$)\ IF S$='i' OR S$='I' THEN ALOFF=1\ CLEAR \ RETURN 107 FOR T1=1 TO 314\ NEXT T1G110 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);\ NEXT CN2120 SLEEP$='Someone overslept...'\ CLEAR \ RETURN O200 CLEAR \ PRINT '';TAB(35);'Set-up Menu ';t210 PRINT ''220 GOSUB 3140230 FOR T=1 TO 1000\ NEXT TG<270 CLEAR \ PRINT ' Returning to Main Menu Absurdity... ';9275 PRINT CHR$(15);\ REM 'Chinese' character set disabled ,280 FOR T=1 TO 3142\ NEXT T\ CLEAR \ RETURN 300 REM set alarmLF310 PRINT 'Enter new alarm time. Format is "hh:mm" (2 digits each).';#315 FOR T=1 TO 3142\ NEXT T\ PRINT R320 INPUT ALARM$K330 IF LEN(ALARM$)<>5 THEN PRINT 'Invalid alarm time'; ELSE RETURN T-340 FOR T=1 TO 1000\ NEXT T\ PRINT \ GOTO 310 (400 REM clear oversleep message (sleep$)/410 SLEEP$=''\ PRINT 'Message deleted.'; 420 FOR T=1 TO 1000\ NEXT Ti 430 RETURN 7500 REM insert messageI510 PRINT 'Type in the message when prompted by the MSG> prompt.';R#515 FOR T=1 TO 3142\ NEXT T\ PRINT tK520 PRINT 'MSG> ';\ LINPUT #0,MESSAGE$\ PRINT 'Message recorded.';\ RETURN \600 REM delete message1610 MESSAGE$=''\ PRINT 'Message deleted.';n615 FOR T=1 TO 1000\ NEXT TE 628 RETURN O"1000 REM beep if wrong key pressed1010 PRINT '';\ GOTO 32903140 REM Set-up menu proper$3142 REM note this line number3190 PRINT ''O23200 PRINT 'Type the first letter of your choice.'(3201 PRINT ' Exit to Pro/Basic' 3210 PRINT ' Set alarm';3220 PRINT ' Clear "Someone overslept..." message'I)3230 PRINT ' Insert new message';33240 PRINT ' Delete user-inserted message'P(3245 PRINT '1m Analogm clock display'&3250 PRINT ' Return to clock'-3260 REM reset window\3270 PRINT ''+3280 REM input loop103290 CALL INKEY (STR$)\ IF LEN(STR$)=0 THEN 3290J3310 Q=POS('eEsScCiIdDaArR',STR$,1)\Q=INT((Q+1)/2)\ IF Q=0 THEN GOSUB 1000.3320 ON Q GOTO 30000,300,400,500,600,10000,628?10000 PRINT '[?25lTo exit: ^C ^3 (Interrupt-Do-Escape)'n10001 ON ERROR GOTO 10200[%10002 FOR M=1 TO 2718\ NEXT M\ CLEAR 10004 M=1\M1=M10006 REM DRAW CLOCK10008 PLOT (0,.5)[10010 PLOT ARC (.5,.5,360)310012 REM DRAW HOUR MARKS r$10014 FOR I=0 TO 2*PI STEP (2*PI)/12'10016 X1=.4*SIN(I)+.5\X2=.45*SIN(I)+.5 '10018 Y1=.4*COS(I)+.5\Y2=.45*COS(I)+.5S10020 PLOT (X1,Y1),(X2,Y2)1 10022 NEXT I(10024 REM DRAW MINUTE MARKS $10026 FOR I=0 TO 2*PI STEP (2*PI)/60(10028 X1=.44*SIN(I)+.5\X2=.45*SIN(I)+.5(10030 Y1=.44*COS(I)+.5\Y2=.45*COS(I)+.510032 PLOT (X1,Y1),(X2,Y2)R 10034 NEXT I10036 REM READ TIME=10037 PRINT '';DATE$(0);CHR$(13);' ';'Alarm time: ';ALARM$E10038 NOW$=TIME$(0%)?10039 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100\ GOTO 100061110040 REM FIND HOURS (H) AND MINUTES (M)C10042 H$=MID$(NOW$,1%,2%)10044 H=VAL(H$)110046 IF H>12 THEN H=H-12010048 M$=MID$(NOW$,4%,2%)E10050 M=VAL(M$) 10052 IF M<>M1 THEN 10096/210054 REM FIND HOUR HAND ANGLE FROM 12:0010056 HD=H*30+(M*6)/12+10058 REM CONVERT ANGLE TO RADIANS310060 HD=HD*PI/180+10062 REM FIND X AND Y COORDINATES)10064 HX=.3*SIN(HD)+.510066 HY=.3*COS(HD)+.5 10068 REM DRAW HOUR HAND10070 PLOT (.5,.5),(HX,HY)310072 REM FIND MINUTE HAND ANGLE FROM 12:00 10074 MD=M*6$10076 REM CONVERT TO RADIANS10078 MD=MD*PI/180*10080 REM FIND X AND Y COORDINATES10082 MX=.49*SIN(MD)+.5F10084 MY=.49*COS(MD)+.5 "10086 REM DRAW MINUTE HAND10088 PLOT (.5,.5),(MX,MY) 10090 M1=M10092 GOTO 10036%10094 REM REM ERASE OLD HANDS010096 SET WRITING MODE 810098 PLOT (.5,.5),(HX,HY)10100 PLOT (.5,.5),(MX,MY)10102 SET WRITING MODE 4"10104 IF M1/5=INT(M1/5) THEN 10116$10106 REM REDRAW MINUTE MARK)10108 X1=.44*SIN(MD)+.5\X2=.45*SIN(MD)+.5)10110 Y1=.44*COS(MD)+.5\Y2=.45*COS(MD)+.5 10112 PLOT (X1,Y1),(X2,Y2)10114 GOTO 10054"10116 REM REDRAW HOUR MARK(10118 X1=.4*SIN(MD)+.5\X2=.45*SIN(MD)+.5(10120 Y1=.4*COS(MD)+.5\Y2=.45*COS(MD)+.510122 PLOT (X1,Y1),(X2,Y2)10124 GOTO 10054+10200 PRINT '';ERT$(ERR);' at line ';ERLT210205 PRINT 'Press to return to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 102200:10210 IF LEN(CONT$)=0 THEN 10200 ELSE CLEAR \ RESUME 1000010220 RESUME 1023010230 ON ERROR GOTO 29900. 10240 RETURN 29900 REM error-handling routine>29910 PRINT '';ERT$(ERR);' Type any key to continue';&29915 IF ERR=72 THEN CLEAR \ RESUME 62.29917 CALL INKEY (Q$)\ IF LEN(Q$)=0 THEN 2991729920 CLEAR \ RESUME 3190029950 REM reset screen and end#30000 PRINT '';\ END treturn to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 102200:10210 IF LEN(CONT$)=0 THEN 10200 ELSE CLEAR \ RESUME 1000010220 RESUME 1023010230 ON ERROR GOTO 29900. 10240 RETURN 29900 REM error-handling routine>29910 PRINT '';ERT$(ERR);' Type any key to continue';&29915 IF ERR=72 THEN Cu~,?f?f ep?7SYSYSYSYTISYSYSYSYSYSYSYTITINp?aeDLDLDLDLTIDLDLDLDLDLDLDLTITI(m6dN? p 7 9)7 -   -z-j@e@Ae&f . 1fABAD5 a C%!e e B V  B\E CP   D a@ C`B `%ֆ C ӆBEІ0  %C ‹  C B ‹ B 0    e\e\e\e\e\e\g\g\g\U\N E\N MEP\N U\v \ d$&  Z$ Cc\ L$& WtBE55 Cc%ptCc \%  ’\  \w v#\ B  aw X  T  aD\ \:w H\ \\ *l )ffeb b$ S~e& %e`Jlc###M*Bl㋣   M&&  e\ B  B    B @   \ %f&&&      ҄& ~\ v$e \&&    "   J  & ~\e\  "ҐB~\ f$f ^$&  #\ N A f C%v   \ 3 EU %  3  5EvB   v\\& & \&&\  \ \\ \\\\&\& \\\&\&\\\& \ \ \\\\\\\@A@A @A C P \\%\%\%\%\%\'\'\'\ " f"C  !$ " R"   !  !  ҥ  !C \&& @ @ &&  6  #,A R , ,  R RRRRR  e\\ \S\ e& @  eeE%,χ\e,f& \:יc&>X4%]@m  # l d  .m r*1@B*DFlm 4*1@B f`&  & ~ B~ \*f=eBC r<mm Е: Е O*ff=eCEB ae$f r  eCeF eeeA 0 BB` $Е-PPPЕ-  *w r e0e0АAMPM JanFebMarAprMayJunJulAugSepOctNovDecXXX \ \& \ \ \& \w #H#5#$#bw ~#\Ff<&4,ffff\fwL w 5Jw 5w ~IHp$ 55& ^wTbJff&f  & N & + &   v        %  = 00 6 6 3    EsAq Dws w`w w6 e%6  6  E v v %\v &&& r= \*5 #w0*EE ^  \5^ 5 ^2 B5^5 ^p5` E^U^ #pX0 ? *\ *b 5h Ew$ $ "0$%*ewP*b*&^\*^ 8A@*0H\*5& w&0 H\ 5 >\   *l עע   ע 5*!&$fl! x\   p &30 \U^\9 U^  U^ U^& 0 0 0 *0 ,\*U^*U^*U^  6p* & & 5^E^0 f J "!*3E^5`5` w&& ,T  & @ \  ! Vv v N e\we 0 0 \  ^\% 5^5^  0 : Rנ'נ", &D ŀ eEU͋  N ͥ   6  jwew,*@   \ \95^;A5U^f   `p00f p eѠѠɋ \*  `  0 "5@^ 42 42 Eנ נ , *5  5^DE^0  \ɋɥɥ ?ɥSɥ PɥEɥ C  f tE^5`685`5 C5^&`W&"U^ r @ɋɥ   a0  Rɕ v Dp 0 7 ɵfŀe\Sˋŀ  5^ &U^q S  p/  & \\  \ r@ r( @%% e ee e  @A K I  7@A 8  4   +`( @A        ` wr    f    9 3#1#N , #)'#% 6 c f ~ C`B@  @  \    w *J, J, 1@Bw4! l r E@`\ ww`*C, C,w  T& $ * ,  ,&   & 4 L& e6+e"*, , ]999:* @, @,wH  ~  h  R  w\B .5`*5`5`"5^ E` @S ˋ5^ 5^ W W   f&    c w ff&f hwf &wfU& Mvv 6`vU  q` c qm `a@ `qeAa@ a A @ A @ %  A @ 6v %\%% 0 0   H`"wH`"w \"w~ \"wx<&f @A  w< w* C P   "<  6  5^5@^I *0,&U^5` 5`0 f f ` *  h   .pXC `U^5^  4 l *$J J N \2 f*B"eR\?5^@^7hpp (f r 2%w*2*Xr2 2 A tlXp[AA x2   \hWhZf*B"eR\-f]? ?dZ2 U^ H ef*> f*B"eR\05@^,hpp & p0j0T*1h 0%vZ2frx zpd5@^5 ^ld0lfy ѥ 0 fɕ $h*1hw f*B"eR R&0 p %2fZ2d2d2\\ŀ\ \2*l2,j fZ] %Z f2]Z ]2]Z ] \Wh2Zh5^ hE^eX #ff 2 x*qf%0 f %% 2h ק&e" Zfs * ,eE 0b*0d,p`bp d W ( N&& W  TI:\*C @& : E:t EBPf *&fA F f F 5%5pV*f 5 U 5 U `$ZU@7U 4E@^U`wvf"er\ 2 dZ A5Ud5UdpZ pP^     U`ppjC E AEC E` bp5^    & f eߥ&& TIwe\$he&&5f Af&?e& e" & e% \ @  e *0 wfE A* B~*e e !3&e &s s 3  ~ 6 ~3@\  `HHVpTppX0^U`E^eEW s`3"35"C *b @ 3 3see@`ei A L  ~E ^(e2R aeRR   ;z  e<e 2E~*3$ 33 L\3 ~ ~ ~R~3 H  dW(\  p *A@ BCzEG@HPtJ$No terminal on channel 0(LUN 13.) in "?Maximum memory exceeded in "" &&&E    e " f& qfqeCaB aqfqe  FE7 0 *U@eB B  fB B f &~Wtu` B " b 2w|e? WtE & fY  D  H&*U@v&*E@v B* U@fB eEB `e E@m  f&    \5B~ E B~ f&*  ##   E b# 'f&B f ##! B EB BH#*u  Jf&*e@     &&f*@, @,  E@` `& \@A!*, , 3@sB@` Ee@"f*B, B, DF` EeDJeC  %  v vf&\l\  % *p^0bl,^-Hv$ H 5/ E0  F 5:U "W DW /H,E2E5 &e& 00/w Bel ZUb f, &  0eb < 5Ev>e  & & i*I5& #5G^A @Wt@P&3*5& "xEeє^ ^&!x>&&e ~"eRh33z 3 Z\5 d5 f5 hnBeX"333 3 x d5 nl Zhe=^t r 5dflZ& 5 d5 l5 fZV hEeC`E є~ ~eev-   6&e'6%e)  P*Uє ee: CtEe0  Q: J*wnwhlŘ   ѕ"єBѕ" ,e%e&Q  &e&e  f e `~  ee *~ѕ"ѕ ѕ * ^f*eQe&*"e \ZufdAeXfG5h&*"e$h*U?RMS error #FUNCTIONGOSUB called at line in "ERROR?Odd address trap?Memory management violation?Error file cannot be opened?Error file cannot be read?Undefined error number \fE x%5^fX5`  |܅ U^ `l  f "f E~  W  * B`.*"&`EUC`{  6% % e@ "N' E`  Aa A@^   A ^EW W  &  ѕ-ѕ  r e0 ~ѕ e& & & *2f&&& %W% % U@      r`D A @ 逎     5 Ke)f W+W-W W0W9f  *m'  e    נ נ E     CPQCQ<m     p   z &   5@  B5eN N .E D A @  eb" d$    D A @ &f&f eD A @ eA @ e@ e&f&f   %PeE <%PeE D A @ E@ 6 6   &f& & 6v*v6 6 @   U*2 &C ^ N    5  6 c6 m  6#m    m  6ඌ c& ʕ ʕ- F   E@ U0Ґ *ခ  ,W >ҕ C eH %%K b ҕ.  ҕ0 eҕE+-  Ґ s e0e0RCD`CE ~ ʥ0ʥ.%ʕ0 U  % ~B   @A  ~~ \ 2 &  & &*5@U@ &*E@E w 6*"{& & pTppXjwTjw     wwdwp@1f*E5@U"B"e 5 ! ZeXev sXw eE D` bl lrw   B eE"s    s-  Cslw  wwB&*&e& :5 ACCl  rf*e >eEf "*p`E  B~ *U@eB B  ZB B f &~Wtu` B " b &wpe? WtE & fYf&B f ##! B EB BH#*u &*5@U@ &*E@E &f  & \*A"C * RZ2 dhhfxd2 h h*5" =*"eRZ \eXfLBOP 8""&f   & & & & ` J fRCҐCҐRC  &w&C & ` `Ba#   L .&f& v  &?4faWW?ZZZZX`*"ap?TIMECL"""V"d`ad`a""" " Lxaa`:  a:  `: xa &a" & ZZ Z Z"Z"Z> &a"a`: xaa`: x aaz`: xa"a`: xax```:  `:  `:  `:  `: x`" &6`" &`a   a &`" &_a_" & a_"( &` &_ `8",  NYaFYZJYdZJYZJYFYAA",4ab xa",ZJYFYAdZJY","- NYl NYl Ad_`". NYBal_:   a: x`"/ NY`Ba`_:   a:  X_:  a:  L_:   a:  >_: x`"2`8_ B &_`_BB"5 &a^ a"7 `8 &a_HH": "< &a"> &a^ a  a &` & a"?H &^`_"A &^`_"D &Z^aT^ a_"E &^a^"F & a ^a^ a_"G   , < ` , < T TDBY"H  ` \v BYZ\ zDD"I &` &` &` "K@Y @Y~ Z\ @Y~ Z\ DE"P &aB"dZJY"f &aa aa"g &`"i@Y @Yx``^ \`T^ \ EZBY &a"k "n &aaJYZJYv JYZEE"xd]` &a" &a &a# ]" & a"J"" &a &  ]" & " &a","6 &h]`R]"; &`"@ `8HH"J` NYG &a<] aG"T  &`F""d`` &a\ a" """ &]a] a\" &`" &\ `8" &\ "X"bd`` &a\ a"g "t"" &`TL"" NY\H"` , \ H` , \: x`"` , \ H` , \: x`"$"""" R x`"` \: `,b x`"`X` X&"  ,`9T JIzJbI`, < >Y"* >Yn ,`7T n I >Y"4` >Y^d"> `,`dR >Y R"H `,`dR >Y ,` R"RY" ` ,`Z"T >Y" ,`9T JJ" "D "F "v  &a\"  &t\"  &aP\ ad\"  &aZ\ aF\"  &a:\ a\"  &a \ a["  &a[ a["  &a[ a["  &a[ a[" "  &a[a[" " :Y :Yx` :YzLTL" t[` |6YZ6YJZ6Yv 6YZL.H" 6YLWF6GpGGN(H"MVZL TZ"VZTZVZ TZ"ZZZ ZZVZZZZZ Z ZZZZZZZRZZ"ZYYYYZYYZZPZZYY& YYYY"ZJZYYZYYYYYYZYYYY"& YYYYYYYY~YYYYYYYY"YYYY~YYYY YYYY"' &aaF["' V"' &a"'Z2Y2Y.Y"'"'ZYYYY& YYZYYYYYY"'hYYZYYZYY'YY"'"'ZJZZJZJZ&Y"Y*Yd&Y*Y&Y*Y"YOpP"'" '*Y4 JZZY*Y4 JZZY""'*Y JZZY*Y JZZY"$'YY& YYYYYY"&'"&'&Y*Y"YOd&Y*Y"&'"('"*'ZJZZJZJ|ZY Y*YdY*YY*Y YPVQ"*'",'*Y4 JxZZY*Y4 JZZY".'*Y JxZZY*Y JZZY"0'YY& YYYYYY"2'"2'Y*Y YPdY*Y"2'"4'Y Y~ Z\ Y~ tZ\ Y~ Z\ Y~ pZ\ QV"5'H &a`    6[`"6' x`"7'  ` \v BYZ\ $RDO"8'":'` ,x`"<'`< Y">'v YZ^RdZY"@'`,x`"B'`< 2Y"D'v 2Y.YRS"F'"H'lZJYZJ2YJZY"J'"L'ZJYJhZY"N'"P'Y4 JdZZX"R'Y JdZZX"T'"V'ZYYZYY& YYXXYY"X'"Z'ZJ2YX"\'"^'ZJXJhZX"`'"b'X4 J`ZZX"d'X J`ZZX"f'"h'ZYYZYY& YYXX~Y~Y"j'2Y.Y"l'ZQ"n'"p'Zl LzYzYF|Y|Y"r'ZpYpYZtYtY& xYxYXXnYnY"t'ZdYdYZhYhY& lYlYXXbYbY"v'Zl L^Y^YF`Y`Y"x'.YJZ.YJZT TvU"z'"|'X4 JxZZYX4 JZZY"~'X JxZZYX JZZY"'YY& \Y\YYYZYZY"'R"'"'X4 JZZYX4 JZZY"'X JZZYX JZZY"'YY& XYXYYYVYVY"'R"' &a ([@"' &["'X"' X~ ZV &aZV"' X~ ZV V &a.N"'.V"'V"("t"t &a  aZ"t~ \ZW &a.B"tY Y~ Z2WW"t &a.J"t"0u &aZaZ"|& PYPYRYRYTYTY>"}t( < <:::::"<;::::x . 4 8 !!x x 2 pXPXSY:$  X$D2D2D2D2 C?H?4DBCC?GpC?ff?IA@B= ?AAA@BBCAB@BZ[22;1fZ[1;24rZ Type any key to continueZc[$Press to return to main clock.,[ at line :[ Alarm time: J[)[?25lPress to return to main clock.x[eEsScCiIdDaArR[ Return[[24;1f[[24;24r[ to clock[ clock display[ Analog[ user-inserted message[ Delete[ new message\ Insert\ "Someone overslept..." message>\ ClearJ\ alarmT\ Exit^\ Seth\ to monitorx\%Type the first letter of your choice.\[1;1f\19\PM\p\AM\a\Message recorded.\MSG> \Message deleted.\ prompt. ]MSG>])Type in the message when prompted by the @]Invalid alarm timeV] (2 digits each).l]!Enter new alarm time. Format is ]&Returning to Main Menu Absurdity... ]+Set-up Menu ]Someone overslept...^i ^3^ ^Ctrl^6To set up or exit, press , which on the PC350 is X^I^^/To turn off alarm when it rings (beeps), press ^Alarm time is ^ The date is ^The correct time is: ^8(If you use improper format, the alarm will not go off). _ Thank you!_._Enter alarm time, format <_yB_ (12-hour)P_hh:mm PM\_ or d_hh:mm AMp_hh:mm (24-hour)_same as displayed time_Do you want to set alarm? [Y/N]_!. This will rarely be necessary._Set-up_(To set time, go to Main Menu then press `The system time is now :`?TIMECLOCK -- written Oct.-Dec. 1983; Y2K fixes Jan. 2000 & 2001~`[1m`[m`[7m`[J`[H`!A L A R M I S S O U N D I N G $Z'&15ew , Bv     5B1 w  ?????? ? ? @>@l@@@A$A(>A,jA-A.A/B2`B5B7B:B<B>B?NCAtCDCECFCG$DHTDIzDKDPDdDfEg0EiBEkEnExEEF,F4F8FdFzF,F6F;F@FJFTG6G:GbGjGpGtGGGGXGbGg Ht(H.H2HHHLH\HH$HHHHHH I *I*bI4I>IHIRJ\^JzrJzJJJJ JD JF Jv J J J &K PK zK K K K "L &L PL TL zL LLMfMMNtN'N'N'N'O'O'O'\O'O'O 'O"'O$'&P&'XP('tP*'xP,'P.'P0' Q2'>Q4'ZQ5'Q6'Q7'Q8'$R:'(R<''JR@'^RB'tRD'RF'RH'RJ'RL'RN'RP'RR'RT'SV'SX'DSZ'HS\'XS^'\S`'pSb'tSd'Sf'Sh'Sj'Sl'Sn'Sp'Sr' Tt'^Tv'Tx'Tz'T|'T~'U''"p3! ! Gold + Help ! Info on nokeypad commandsgdef key cont a as "SHR."def key cont d as "SHL."SET CURSOR 0:21w SET WRAP 78SET TERMINAL VT100SET TERMINAL EDIT SET MODE CHANGEDefine Key Function 14 as "EXT set wrap 72." ! Fortran setupd?Define Key Gold FunctiD; Dummy stub to allow compilation of BP2 programs using CGL, without7; having CGL available (e.g. on non-Pro350 RSX systems)8 cgl:: rts pc .end (^H)EDefine Key Gold Function 28 as "EXT help change subc ?*'Subcommand>'"p3! ! Gold + Help ! Info on nokeypad commandsgdef key cont a as "SHR."def key cont d as "SHL."SET CURSOR 0:21w SET WRAP 78SET TERMINAL VT100SET TERMINAL EDIT SET MODE CHANGEDefine Key Function 14 as "EXT set wrap 72." ! Fortran setupd?Define Key Gold FunctiTIME2/CP/FP=TIMEstub/MPI TASK = TIMECLK UNITS = 18#ASG = TI:5:13:15 ; LUN 5 for INKEY ASG = SY:6:7:8:9:10:11:129EXTTSK = 952 ';CLSTR = PBFSML,CGLFPU,POSRES,RMSRES:RO,EXTSCT = DM$BUF:0=EXTSCT = FL$BUF:4310EXTSCT = HL$BUF:0=EXTSCT = MM$BUF:1000EXTSCT = MN$BUF:4540GBLDEF = HL$LUN:21GBLDEF = MN$LUN:20GBLDEF = MS$LUN:16gbldef=g$lun:17fGBLDEF = TT$EFN:1=GBLDEF = TT$LUN:15GBLDEF = WC$LUN:22//LUN:22// .ROOT USERC+USER: .FCTR SY:TIMECLOC2-inkey-cglstub-LIBR2LIBR: .FCTR LB:[1,1]BP2OTS/LBT;@LB:[1,5]BP2IC1;@LB:[1,5]RMSRLX .ENDB:[1,5]RMSRLX .ENDJ3 REM ***By Nick Zymaris Oct. 1983. Some lines after 3140 copied/modifiedC4 REM by me (in EDT as well as Pro/Basic) for use in the menu. &t6 Translated and compiled in BASIC PLUS 2 on 25-Sep-845 ON ERROR GOTO 29900'C6 dim da(11%) \ alarms$='A L A R M I S S O U N D I N G' \ab$=''t87 REM combined with CLOCK.BAS (line 10000) 9-Dec-83 A.M.L8 REM Y2K fixes 2-Jan-2000 (GOSUB 2000 makes a correct DATE$) for Pro/BASIC.L9 REM Y2K fix ported to Basic-Plus-2 version, literal ESCs rmvd 14-Jan-2001.A10 GOSUB 4000\esc$=chr$(27)\clr$=esc$+'[H'+esc$+'[J'\ PRINT clr$;eM11 call WTQIO by ref (768%,5%,1%) \ PRINT clr$; \ rem attach term, clr screentK15 r$=esc$+'[7m' \ n$=esc$+'[m' \ b$=esc$+'[1m' \ REM Reverse, normal, bold0F17 hm$=esc$+'[H' \ g$=chr$(7)\ gg$=g$+g$+g$+g$+g$+g$ \ REM Home, beepsJ18 print 'TIMECLOCK -- written Oct.-Dec. 1983; Y2K fixes Jan. 2000 & 2001':19 print 'The system time is now ';r$;TIME$(0%);n$ \ print@20 PRINT "To set time, go to Main Menu then press ";r$;"Set-up";/30 PRINT n$;". This will rarely be necessary."c<40 PRINT \ PRINT "Do you want to set alarm? [Y/N]"\ INPUT A$F44 alen%=len(TIME$(0%))\FOR c=1 to len(alarms$)\ab$=ab$+chr$(8)\NEXT c?45 if alen%<>5% and alen%<>8% then ap$="same as displayed time"c/46 if alen%=5% then ap$=r$+'hh:mm (24-hour)'+n$HM47 if alen%=8% then ap$=r$+'hh:mm AM'+n$+' or '+r$+'hh:mm PM'+n$+' (12-hour)'&C50 IF A$='y' THEN PRINT 'Enter alarm time, format ';ap$;'.' ELSE 600I53 PRINT b$;'(If you use improper format, the alarm will not go off).';n$;155 INPUT ALARM$\ PRINT r$;'Thank you!'\GOSUB 1020I 58 SLEEP 160 PRINT clr$;F62 PRINT r$;'The correct time is: ';n$;TIME$(0%);r$ \ PRINT \ PRINT n$-63 GOSUB 2000\ PRINT 'The date is ';DAT4$;'.'8$65 PRINT 'Alarm time is ';ALARM$;'.'H68 PRINT 'To turn off alarm when it rings (beeps), press ';r$;'I';n$;'.'L69 PRINT 'To set up or exit, press , which on the PC350 is ';r$;'Ctrl';70 PRINT n$;' ';r$;'3';n$;'.'pP71 IF VAL(MID$(TIME$(0%),5,1))<>VAL(MID$(ALARM$,5,1)) THEN ALOFF=0\rem ring 1min172 IF TIME$(0%)=ALARM$ AND ALOFF=0 THEN GOSUB 100S073 PRINT \ PRINT SLEEP$\ PRINT MESSAGE$;CHR$(15)L75 CALL INKEY BY REF (S%)\ IF S%=27 or S%=101 THEN GOSUB 200\ REM setup/exit80 PRINT hm$;\ GOTO 62100 C=1 \ REM alarm routine L102 PRINT r$;alarms$;n$;ab$; \ rem replaced 8-bit PRINT CHR$(141); 15-Jan-01103 PRINT gg$;K105 CALL INKEY BY REF (S%)\S$=CHR$(S%)\ IF S$='i' OR S$='I' THEN ALOFF=1 \&I PRINT clr$;\ RETURN.107 SLEEP .3142 \ REM FOR T1=1 TO 314\ NEXT T1J110 PRINT alarms$;ab$;\ C=C+1 \ if C<=31 then 102 \ REM replaced CHR$(141)6120 SLEEP$='Someone overslept...'\ PRINT clr$;\ RETURNO200 PRINT clr$;\PRINT r$;TAB(35);'Set-up Menu '; 210 PRINT n$220 GOSUB 31406230 REM parody of P/OS V1.5 message and slow return...I270 PRINT clr$;\ PRINT chr$(12);'Returning to Main Menu Absurdity... ';Y9275 PRINT CHR$(15);\ REM 'Chinese' character set disabled\M280 sleep 3.142 \ PRINT clr$;\ RETURN \ REM replaced 3142 count for fast CPUs1300 REM set alarm;F310 PRINT 'Enter new alarm time. Format is ';ap$;' (2 digits each).';315 SLEEP 4\ PRINT320 INPUT ALARM$ \ GOSUB 1020$L330 IF LEN(ALARM$)<>alen% THEN PRINT r$;'Invalid alarm time';n$; ELSE RETURN340 SLEEP 1.5\ PRINT \ GOTO 310y(400 REM clear oversleep message (sleep$).410 SLEEP$=''\ PRINT r$;'Message deleted.';n$; 420 SLEEP 1.5t 430 RETURN500 REM insert messageN510 PRINT 'Type in the message when prompted by the ';r$;'MSG>';n$;' prompt.';515 SLEEP 4\PRINT &520 PRINT 'MSG> ';\ LINPUT #0,MESSAGE$2530 PRINT 'Message recorded.';\ SLEEP 1.5 \ RETURN600 REM delete message0610 MESSAGE$=''\ PRINT r$;'Message deleted.';n$; 615 SLEEP 1.5l 628 RETURN"1000 REM beep if wrong key pressed1010 PRINT g$;\ GOTO 3290T;1020 REM validate or process alarm time (added 15-Jan-2001)L1030 if alen%=5% then return>1040 if mid$(alarm$,7,1)="a" then alarm$=mid$(alarm$,1,6)+"AM">1050 if mid$(alarm$,7,1)="p" then alarm$=mid$(alarm$,1,6)+"PM" 1060 return;M2000 REM Y2K routine - use DAT4$ instead of DATE$(0) 2-Jan-2000, 14-Jan-2001rO2010 REM IF MID$(DATE$(0%),8,1)=":" THEN ! 2-Jan-00 Kludge rmvd 14-Jan-01 ! &;I DAT4$=MID$(DATE$(0%),1,7)+"200"+MID$(DATE$(0%),9,1) ELSE DAT4$=DATE$(0%)kO2015 rem Routine to correct BP2 Date$(0%) - by Nicholas Zymaris 29-Jan-2000. &a (c) 2000-2001 & nO It is compatible with both "1900"-style and "2000"-style internal dates, &< considering the dates 1900-1969 as 2000-2069. &M Streamlined 14-Jan-2001, moved window from 1980 to 1970 & support >= Y3K02020 dat4$=date$(0%)F2050 dat4$=left$(dat4$,7%)+"19"+mid$(dat4$,8%,2%) \ rem 4-digit format2070 change dat4$ to da%G2080 if da(10%)>57% then gosub 2200 else decade%=val(mid$(dat4$,8%,3%))t@2090 if decade%<200% and da(10%)<7%+48% then decade%=decade%+10%2100 da(8%)=decade%/100%,2110 da(9%)=int((decade%-(da(8%)*100%))/10%)/2120 da(10%)=decade%-(da(8%)*100%)-(da(9%)*10%)iN2130 for d4%=8% to 10% \ da(d4%)=da(d4%)+48% \ next d4% \ rem Convert to ASCII2140 change da to dat4$t2170 goto 250032200 let decade%=199% \ rem Here if year >= 2000.$B2210 let da(10%)=da(10%)-1 \ rem cnt down decades (trashes ASCII)72220 let decade%=decade%+1% \ rem correct colon formatv>2230 if da(10%)>57% then 2210 \ rem Keep going if year >2099. 2500 returnd3140 REM Set-up menu proper/3142 REM note this line number3190 PRINT esc$;'[1;1f'd23200 PRINT 'Type the first letter of your choice.''3201 PRINT b$;' Exit';n$;' to monitor'x!3210 PRINT b$;' Set';n$;' alarm'c<3220 PRINT b$;' Clear';n$;' "Someone overslept..." message'*3230 PRINT b$;' Insert';n$;' new message'43240 PRINT b$;' Delete';n$;' user-inserted message'M3245 PRINT b$;' Analog';n$;' clock display' \ REM this line used CSI not ESCn'3250 PRINT b$;' Return';n$;' to clock'5-3260 REM reset window2(3270 PRINT esc$;'[24;24r';esc$;'[24;1f';+3280 REM input loop ?3290 CALL INKEY BY REF (ST%)\ST$=CHR$(ST%)\ IF ST%=0% THEN 3290PI3310 Q=POS('eEsScCiIdDaArR',ST$,1)\Q=INT((Q+1)/2)\ IF Q=0 THEN GOSUB 1000p.3320 ON Q GOTO 30000,300,400,500,600,10000,6284000 DEF INT%(X)=INT(X) 54002 CALL CGL BY REF (90%)\CALL CGL BY REF (86%,0%)\&A& CALL CGL BY REF (82%,.375,1,0,1)>4004 CALL CGL BY REF (80%,0,1,0,1)\CALL CGL BY REF (26%,1%,3%)?4006 CALL CGL BY REF (20%,.02,1/24)\CALL CGL BY REF (24%,.02,0)[B4008 CALL CGL BY REF (18%,1%)\CALL CGL BY REF (30%,126%,16%,16%)\& CALL CGL BY REF (18%,2%)E4010 CALL CGL BY REF (30%,126%,8%,8%)\CALL CGL BY REF (18%,0%)\RETURNQA10000 PRINT clr$;esc$;'[?25lPress to return to main clock.'510001 ON ERROR GOTO 10200F10002 SLEEP 4\ PRINT clr$;10004 M=1\M1=M10006 REM DRAW CLOCK910008 CALL CGL BY REF (1%,0,.5)\CALL CGL BY REF (4%,0,.5)(&10010 CALL CGL BY REF (39%,.5,.5,360%)#10012 REM DRAW HOUR MARKS\$10014 FOR I=0 TO 2*PI STEP (2*PI)/12'10016 X1=.4*SIN(I)+.5\X2=.45*SIN(I)+.5%'10018 Y1=.4*COS(I)+.5\Y2=.45*COS(I)+.51<10020 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 10022 NEXT I$10024 REM DRAW MINUTE MARKS$10026 FOR I=0 TO 2*PI STEP (2*PI)/60(10028 X1=.44*SIN(I)+.5\X2=.45*SIN(I)+.5(10030 Y1=.44*COS(I)+.5\Y2=.45*COS(I)+.5<10032 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 10034 NEXT IL10036 CALL INKEY BY REF (Q%)\IF Q%=27 OR Q%=69 OR Q%=101 OR Q%=81 THEN 10230I10037 GOSUB 2000\ PRINT hm$;DAT4$;CHR$(13);chr$(10);'Alarm time: ';ALARM$)-10038 NOW$=TIME$(0%) \ REM READ TIME@10039 IF TIME$(0%)=ALARM$ AND ALOFF=0 THEN GOSUB 100\ GOTO 10006110040 REM FIND HOURS (H) AND MINUTES (M)210042 H$=MID$(NOW$,1%,2%)I10044 H=VAL(H$)410046 IF H>12 THEN H=H-12510048 M$=MID$(NOW$,4%,2%)210050 M=VAL(M$)010052 IF M<>M1 THEN 10096,210054 REM FIND HOUR HAND ANGLE FROM 12:0010056 HD=H*30+(M*6)/12+10058 REM CONVERT ANGLE TO RADIANS010060 HD=HD*PI/180+10062 REM FIND X AND Y COORDINATES:10064 HX=.3*SIN(HD)+.510066 HY=.3*COS(HD)+.5 10068 REM DRAW HOUR HAND;10070 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,HX,HY) 310072 REM FIND MINUTE HAND ANGLE FROM 12:001 10074 MD=M*6$10076 REM CONVERT TO RADIANS10078 MD=MD*PI/180*10080 REM FIND X AND Y COORDINATES10082 MX=.49*SIN(MD)+.5 10084 MY=.49*COS(MD)+.5 "10086 REM DRAW MINUTE HAND;10088 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,MX,MY)1 10090 M1=M10092 GOTO 10036%10094 REM REM ERASE OLD HANDS+#10096 CALL CGL BY REF (70%,INT%(8)) ;10098 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,HX,HY) ;10100 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,MX,MY)G#10102 CALL CGL BY REF (70%,INT%(4))E"10104 IF M1/5=INT(M1/5) THEN 10116$10106 REM REDRAW MINUTE MARK)10108 X1=.44*SIN(MD)+.5\X2=.45*SIN(MD)+.5 )10110 Y1=.44*COS(MD)+.5\Y2=.45*COS(MD)+.5 ;10112 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 10114 GOTO 10054"10116 REM REDRAW HOUR MARK(10118 X1=.4*SIN(MD)+.5\X2=.45*SIN(MD)+.5(10120 Y1=.4*COS(MD)+.5\Y2=.45*COS(MD)+.5;10122 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2)L10124 GOTO 10054)10200 PRINT hm$;ERT$(ERR);' at line ';ERLL210205 PRINT 'Press to return to main clock.'10206 CALL INKEY BY REF (CONT%)RL10207 IF CONT%=27 THEN PRINT esc$;'c'\ GOTO 10220 \ REM Reset term subsystem:10210 IF CONT%=0 THEN 10200 ELSE PRINT clr$;\ RESUME 1000010220 RESUME 1023010230 ON ERROR GOTO 299000 10240 RETURN 29900 REM error-handling routine929910 PRINT r$;ERT$(ERR);n$;' Type any key to continue';O+29915 IF ERR=72 THEN PRINT clr$;\ RESUME 62L/29917 CALL INKEY BY REF (Q%)\IF Q%=0 THEN 29917 29920 PRINT clr$;\ RESUME 319029950 REM reset screen and end(30000 PRINT esc$;'[1;24r';esc$;'[22;1f';;31999 call WTQIO by ref (1024%,5%,1%) \ rem detach terminal 32200 END Reset term subsystem:10210 IF CONT%=0 THEN 10200 ELSE PRINT clr$;\ RESUME 1000010220 RESUME 1023010230 ON ERROR GOTO 299000 10240 RETURN 29900 REM error-handling routine929910 PRINT r$;ERT$(ERR);n$;' Type any key to continue';O+29915 IF ERR=72 THEN PRINT clr$;\ RESUME 62L/29917 CALL INKEY BY REF (Q%)\IF Q%=0 THEN 29917 29920 PR+Notes on TIMECLOCK programs 15-Jan-2001e---------------------------hKThe TIMECLOC*.B* programs are a combination of the TIME.BAS program which IeMwrote in late 1983, and the CLOCK.BAS program, written by (I think) Pete from DBelle Mead, NJ, who was a hallmate during my freshman year at S.I.T.N(beginning Fall 1983). I wrote TIME first in Pro/BASIC, and ran it under P/OSHV1.5 (the same applies for Pete's CLOCK) until upgrading to P/OS V1.7 inIJanuary 1984 (and later to P/OS V2.0a). It was combined with CLOCK whileoJstill under P/OS V1.5, which was a slow operating system written in PascalL(while later versions were written in Macro-11 assembly language as a PDP-11Ioperating system should be). P/OS V1.5 was so slow that it took about 3 Nseconds to return to the main menu after running an application, during which Otime the "Returning to Main Menu..." message was displayed on the screen, just PMlike in the program except without the "Absurdity". Quite early on I ported 2LTIMECLOCK to Basic-Plus-2 which I might have run on my own system (prior to Lthe April 1984 system crash or the November 1984 O/S installation?) or more Llikely on either another Pro350 with BP2 installed or most likely on one of Nthe Vaxen on campus (SITVXA:: etc.). Looking at the volume and file dates, I Icould not have written any Basic-Plus-2 programs on my own Pro350 before mI24-Feb-1984 (the volume and file dates for the Basic-Plus-2 installation oNdiskettes I have); the port of TIMECLOCK to BP2 was apparently not done until 25-Sep-1984 anyway.yMTIMECLOCK.TSK is the original TIMECLOCK.B2S compiled under RSX-11M+ BP2 then aKlinked on the Pro350 (since I don't currently have any BP2 compiler on the tGDW1: Pro350 hard disk). On 2-Jan-2000 I went to Northport and updated vNTIMECLOCK.BAS (the original Pro/Basic version) for Y2K, so it wouldn't show a Mdate of 2-Jan-:0 etc. I had a problem getting the year to display correctly -Nso I settled on a kludge that only works until 2009 but can easily be updated Gevery 10 years. That is the TIMECLOC2.BAS program. TIMECLOC2.B2S and IITIMECLOC2.TSK (compiled under RSX, linked on the Pro) have the date code Nupdated to reflect any legal RSX year, tested through the year 3999 (avoiding EY4K questions of whether that's a leap year or not). It uses a more Greasonable and generalized routine to display the date, using the date Jreturned by the Basic system which is similar to the date encoded in file Iheaders (using ASCII values of ":" for 2000, ";" for 2010, etc.) in both sLPro/BASIC and Basic-Plus-2. A number of other changes were made, including Kremoving literal escape sequences so the program can be listed, printed or aOtyped properly. Note that the ESC c sequence in the program works as intended hOon a Pro350 system or terminal, but on e.g. a VT220 it will effectively reboot iNthe terminal and change the baud rate if the saved rate is different from the Jcurrent rate. The undocumented "e" exit option from the analog clock was Iextended so that "e" also exits from the digital clock. The terminal is Nattached so that INKEY will work properly and the CLI won't interfere -- this Iis not an issue under P/OS V2.0a but is an issue under the RSX-11M+ V4.5 sHbaseline monitor. With the terminal attached it will work under either Osystem. In order to link it for RSX without changing the source code, without aNany CGL graphics routines that work under RSX and a non-Pro-350 environment, INwrote a stub CGL and associated command files (CGLSTUB, TIME110 REM RENUMBERED ON 16-NOV-82 AT 11:24:55 STEP 1PG20 REM SNOOPY: SNOOPY CALENDAR. REV. BY E. SCHAEFER, COMMACK SOUTH 3/756530 REM OTHER PICTURES BY DAVID KRAUS, NORTHPORT 10/82#M31 REM this is line 10pi -- the following changes by Nick Zymaris, 1982 & on:0D32 REM Originally on DEC PDP 11/23; transfered to DEC PC350 9-29-83.D33 REM Unsuccessfully transfered 12/21/98 to emulated RSTS/E system.A34 REM Transfered to RSX11M+/BASIC-Plus-2 environment 2-28-00 andnD35 REM fix its Y2K bug. No syntax change needed for BP2. OriginalH36 REM (high school) system this ran under was probably RT-11 V4 BASIC.40 DIM N(10,13),C$(14),P$(4)#50 FOR Q=1 TO 4\ READ P$(Q)\ NEXT QT60 PRINT "Choose picture:"70 FOR Q=1 TO 4 80 PRINT Q;". ";P$(Q)c 90 NEXT Q1 100 INPUT Z2110 IF Z<1 THEN 60120 IF Z>Q THEN 60I130 rem OPEN "du1:"+P$(Z)+".pct" FOR INPUT AS FILE #1 \REM changed deviceuH132 OPEN P$(Z)+".pct" FOR INPUT AS FILE #1 \REM rmvd device name 1-11-01(140 DATA "SNOOPY","DISKETTE","PI","METS"H142 print "File or device to print to (e.g. LP0: for printer)";\input f$F143 f$=edit$(f$,2%+4%+32%) \ REM remove spaces etc., conv to uppercase150 PRINT "What year calendar";X'160 INPUT Y\ IF INT(ABS(Y))<>Y THEN 150Q170 IF Y<1582 THEN 220180 IF Y<=9999 THEN 280 L190 PRINT "Unable to do years after 9999 (if you notice there are only four"0200 PRINT "numbers at the top of the calendar)." 210 GOTO 150A220 PRINT "Not prepared to do calendars before MDLXXXII {1582} -"":230 PRINT "the current calendar was not used before 1582."@240 PRINT "However, I have included the transition year of 1582"F250 PRINT "having ten days in October omitted to make up for previous")260 PRINT "error in the Julian calendar."Y 270 GOTO 150O280 PRINT "Roll paper and hit return." \ REM this originally ran on a DECwritere 290 INPUT J$G295 OPEN f$ FOR OUTPUT AS FILE #3 \ REM changed to any file 28-Feb-2000a300 FOR F=1 TO 14310 READ C$(F) 320 NEXT F@330 DATA "x","*",")","\","/","=","-","&","!","(","#","$","%",":"340 INPUT #1,K350 IF K=0 THEN 480 360 IF K=-1 THEN 500 370 N=INT(K)380 IF K=N THEN 4408390 H=INT((100*K-100*N)+.5)s400 FOR L=1 TO N410 PRINT #3,C$(H);i 420 NEXT L 430 GOTO 340440 FOR L=1 TO N450 PRINT #3, " "; 460 NEXT L 470 GOTO 340 480 PRINT #3 R 490 GOTO 340 500 PRINT #3 510 PRINT #3520 INPUT #1,T530 LINPUT #1,A$ 540 CLOSE #1550 PRINT #3, TAB(T);A$8$560 FOR U=1 TO 10\ PRINT #3 \ NEXT U 570 Y2=Y+.1 580 FOR Z3=1 TO 4"590 Y1(Z3)=INT(Y2/(10^(4-Z3)))600 Y2=Y2-Y1(Z3)*(10^(4-Z3)) 610 NEXT Z3F4620 FOR L1=1 TO 10 \ REM 10 possible decimal digits+630 FOR L2=1 TO 13 \ REM year digit height5640 READ N(L1,L2)N 650 NEXT L23 660 NEXT L1 *670 FOR L=1 TO 13 \ REM year digit height'680 FOR T=1 TO 4 \ REM four-digit year685 N$=MID$(NUM$(Y),T+1,1) 690 PRINT #3, TAB(((T-1)*17)+1); 700 GOSUB 750 710 NEXT T 720 PRINT #3 730 NEXT L 740 GOTO 1060:750 ON N((Y1(T)+1),L) GOTO 760,780,800,820,840,860,880,900(760 FOR Q=1 TO 14\ PRINT #3, N$;\ NEXT Q 770 RETURN 1+780 PRINT #3, N$;N$;N$;" ";N$;N$;N$;T 790 RETURN 0800 PRINT #3, N$;N$;N$; 810 RETURN T%820 PRINT #3, " ";N$;N$;N$;D 830 RETURN 5#840 PRINT #3, " ";N$;N$;N$;N$; 850 RETURN y%860 PRINT #3, " ";N$;N$;N$;N$;N$;E 870 RETURN y'880 PRINT #3, " ";N$;N$;N$;N$;N$;N$;N 890 RETURN -900 IF L=13 THEN 940910 FOR I=1 TO (10-(L-3)) 920 PRINT #3, " "; 930 NEXT I940 PRINT #3, N$;N$;N$;N$;,950 RETURN \ REM digits 0 thru 9 follow"960 DATA 1,1,2,2,2,2,2,2,2,2,2,1,1"970 DATA 5,6,7,5,5,5,5,5,5,5,5,1,1"980 DATA 1,1,4,4,4,4,1,1,3,3,3,1,1"990 DATA 1,1,4,4,4,1,1,4,4,4,4,1,1#1000 DATA 2,2,2,2,2,1,1,4,4,4,4,4,4#1010 DATA 1,1,3,3,3,1,1,4,4,4,4,1,1N#1020 DATA 1,1,3,3,3,1,1,2,2,2,2,1,1 #1030 DATA 1,1,8,8,8,8,8,8,8,8,8,8,8U#1040 DATA 1,1,2,2,2,1,1,2,2,2,2,1,1$#1050 DATA 1,1,2,2,2,1,1,4,4,4,4,1,1H71060 DEF FNA(A)=INT(A-INT(A/4)*4) \ REM 0 on leap years3F1070 DEF FNB(B)=INT(A-INT(A/7)*7)+1 \ REM 9 chngd 2-28-00; was ...,4,41080 I1=INT((Y-1500)/100)21090 A=I1*5+(I1+3)/41100 I2=FNB(A)1110 Y3=INT(Y-INT(Y/100)*100)41120 A=Y3/4+Y3+I21 1130 B=FNB(A)41140 IF Y3=0 THEN 12101150 T1=FNA(Y)1160 IF T1<>0 THEN 1240D1170 IF B<>0 THEN 11901180 B=6 1190 B=B-11200 GOTO 1240 1210 A=T1-1D1220 T1=FNA(A)1230 IF T1=0 THEN 117061240 IF B<>0 THEN 1260 \ REM NZ: B is date position?1250 B=71260 IF Y=1582 THEN B=2N81265 if y!>!=2000 then b=b-(y-1999) \ REM NZ 28-Feb-200071267 if b<1 then b=b+7 \ goto 1267 \ REM NZ 28-Feb-2000N!1270 PRINT #3\ PRINT #3\ PRINT #3)1280 FOR P4=1 TO 121 1290 READ X$C1300 DATA "January",31,"February",28,"March",31,"April",30,"May",31 E1310 DATA "June",30,"July",31,"August",31,"September",30,"October",31 1320 READ Z0%1330 DATA "November",30,"December",312#1340 FOR U=1 TO 4\ PRINT #3\ NEXT U 1350 IF X$<>"February" THEN 14001360 IF Y/4<>INT(Y/4) THEN 14002#1370 IF Y/100<>INT(Y/100) THEN 13902#1380 IF Y/400<>INT(Y/400) THEN 1400-1390 Z=Z+1 \ REM leap year@1400 PRINT #3, TAB(13);"---------------------------------------"%1410 PRINT #3, TAB(33-(LEN(X$)/2));X$$@1420 PRINT #3, TAB(13);"---------------------------------------"1430 PRINT #3\ PRINT #3,@1440 PRINT #3, TAB(13);"Sun Mon Tue Wed Thu Fri Sat"@1450 PRINT #3, TAB(13);"=======================================" 1460 Q=2-B1470 PRINT #3 >1480 PRINT #3, TAB(13);\ FOR P2=Q TO Q+6\ IF Y<>1582 THEN 1500I1490 IF X$="October" THEN IF P2=5 THEN P2=16\Q=Q+10\ PRINT #3, " 15 ";\1500 IF P2<1 THEN 15301510 IF P2<10 GOTO 1550-1520 GOTO 1570I1530 PRINT #3, " ";\ REM I thought it was 7 blanks... (now 6 blanks)11540 GOTO 158061550 PRINT #3, P2;" ";\ REM I think it's 3 blanks...1560 GOTO 15801570 PRINT #3, P2;" "; 1580 NEXT P2 1590 Q=Q+71600 PRINT #3 1610 IF Q+6<=Z THEN 14801620 B=11630 IF Q-1=Z THEN 169041640 PRINT #3, TAB(13);#1650 FOR P2=Q TO Z1660 PRINT #3, P2;" "; 1670 B=B+1 1680 NEXT P2!1690 PRINT #3\ PRINT #3\ PRINT #3I 1700 NEXT P41710 FOR P5=1 TO 70E 1720 PRINT #3 1730 NEXT P5G1735 close #3 \ rem PRINT 'c'; \ REM 28-Feb-2000 don't reset VT220kG1740 rem END \ REM <-- This is the most SIGNIFICANT Line In The Programn1750 ENDlanks...1560 GOTO 15801570 PRINT #3, P2;" "; 1580 NEXT P2 1590 Q=Q+71600 PRINT #3 1610 IF Q+6<=Z THEN 14801620 B=11630 IF Q-1=Z THEN 169041640 PRINT #3, TAB(13);#1650 FOR P2=Q TO Z1660 PRINT #3, P2;" "; 1670 B=B+1 1680 NEXT P2!1690 PRINT #3\ PRINT #3\ PRINT #3I 1700 NEXT P41710 FOR P5=1 TO 70E 1720 PRINT #3 1730 NEXT P5G1735 close #3 \ rem PRINT 'c'; \ REM 28-Feb-2000 don',99e x S r[q$ Y SYSYSYSYSYSYSYSYSYSYSYSYTITISYOV25.9DUDUDUDUDUDUDUDUDUDUDUDUTITIDUDU(?A>,w0wwDw4ww(wHwP TX`dw8ww<whlwx wp\whLw\@wTww f&.0&*"e.30*"e &.0 %0,\w4 5ae   %6U^  Vp5 ^U ^bpXp[wB\w4 ^+5^ 5^#X f* ,0 F 5` w`##!" e l "  e f&f& ]E 5ŀ5΋ΠGEנ'נ"ΐ=0eРנ נ 0 0(v W Õ 0  a z  E 0@ נ[נ]Ê3ѐE֋ 5 CN נ נ  w w0& &֒ & @ Ԥ\  D  8   *ʥ  w&f @A  wz wh C P *p$ $@@myb|*U@*E@E\S J" l R y|"   r *@- @- @` E&f& @  \= e66 f&C &  jee5& *"ePBe  ~PpT585p\u7  UU uP5`wJ&& C`  *e,u0B~  & SY&& C`  C0Cm0.u1B~ 5 %% %%4ae*45"p(3  0% w,U5@`w45` |**U b5 * kU`cB aeR`5`O55[B4BS%)%!F%=%4&8u5 B" B B *A6Erff wP f\U ` E5`  U`~   U`p(05@^HfUpV5@^ BP  E @*A"eQE5 5"5`5` B ~ %p  h 5 `Ew05` E  0 epeE%6 5*B( 1 (&44e`U¥E5U562 6 A25`.6+B +(565`U`^E`U` wA2pV Ap$w &*U@%v  E` E`  B&*E@ \C  %  v vf&\& l Ce  f[ & @ BjL0BהRؘטԘ28؎e\\;@\ \N @   =@f&ysE[\pCf&f&\% `\6 @ 006 6 \&&& r)`   5@5@ bxxLXXXؘԆؘԆؘԆؘl0ؘԌ،erf&\  \& \\r1@\[?\ \e5?U?*@ڪA P &  (& @ !     & % 6 @ X%\%5%=\www@1f*E5@U"B"e 5 ! ZeXev sXw ZeE D` bl lrw   B eE"s    s-  Cslw  wwB&*&e& <5 ACCl  rf*e @eEf "*p`E  B~ *U@eB B  ZB B f &~Wtu` B " b &wpe? WtE & fYf&B f ##! B EB BH#*u &*5@U@ &*E@E &f &f  b!#Z!w4 #:!6!C3 3  ,, UEs3w>#,8 &f8 B * ͋'% ͥ!ͥE%,  D5  PB2 %pċ5J J J @ EͥAA I 92J'' +-($141CALEND$ $$$$ $!$"$#$$$($2X-(-(-(-Px$2"(j1v$2-(-P-($2$<:܌0(v$FX-(-(-(-$F$P:"(0("(j1(v$Z$Z-(--($Z$dی(2v$nH(-|$xH(((|$ӂ$ӄ"(j1081-81$ӌ$ӎ:܌0(vڰی41v$ӏ41&F41$Ӗ:܌0(v$Ӡی(2v"(pP(Ş$ӪH(-$$ӴH(-ņ$Ӿ:܌@0(v$:܌/(v$Ş$:܌0(v$:܌/(v$:܌t/(v$:܌6/(v$:܌/(v$Ş$:܌.(v$"ی01v$'-41$,X-(-(-(- $,$6"(j1v$@$@-(--($@$J$Tی(2v$^H(-Jd$hH(-\ŀ$r"(pL($|H((|$ӆ"(~-"(~-"-pL($ӐX((X-(-(-(($Ӑ$Ӛ:"(j1(v$Ӥ$Ӥ-((-($Ӥ$Ӯ($ӸX((X-(-(-(((X$Ӹ$:܌.(v$$-(((-($$($:܌.(v$($:܌.(v$:܌.(v$ی(2v$ی,1v$$&:"(j$۰(,1(v$0X-(-(-(-8$0:܌.(v$0-(--($0$:"-(L($DX-(-(-(-j$D$N"(j0"-"-(T"(p@$X"(j0"-"-(T($b$b-(-j-($b$lX-(-(-(-f$l$vX-(-(-(-J$v$Ӏ"(j"(j02v$ӊ$ӊ-(--($ӊ$Ӕ$Ӕ-(--($Ӕ$ӞX-(-(-(-D$Ӟ$ӨX-(-(-(-$Ө$ӭ"("-(jּ(1$Ӳ:"(-~-"-j$۰(v$Ӽ$H:܌.((1((1((1((1(v$R$\:܌.((1((1((1((1((1(v$f$p:܌.((1((1((1((1((1((1(v$z$ӄH(-Vż$ӎ"(-"-Lظ(X-(-(-((Ÿ$ӎ$Ә:܌.(v$Ӣ$Ӣ-((-($Ӣ$Ӭ:܌(1((1((1((1(v$Ӷ$$$$$$$$$$$$\ <+P 0ؔ+$$"ؘ+-p~-"ؘ+pLؔ++ٔ+$.Ũ <+Ӝ 0؜+$."ش(-p~-"ش(p"-L؜++ٜ+$8"(Ծ--pLذ($B"غ-~ذ("-԰(-Lش($L"ش(jd Lج($V"(-p~-"(pLب($`"ب(-"ب("ج(Lش($j"ش(jd Lؤ($tH֨(-J!Ś!$~"(j Lؠ($ӈH֠(-l!!$ӒH֤(-~!ň!$ӜXض-($Ӧ-($Ӱ!$Ӻ"ؠ(-Lش($"ش(j Lؠ($H֠(-!l!$H֤(-!!$X-($H(-!Xز-($H(-""(Ԫ-֤($H֤(-4""ؤ(-Lؤ("$:܌.(vڌ:܌.(vڌ:܌.(v$X-(-(-(-"&$$ ی$1v$$$(ی(2v$2$<X-(-(-(-""$<:܌.(v$<-(-"-($<$F$1.#ł#$P"(-"(-p&֖2#ł#$Z"(-"(-p&֖R#r#$d"(ע-"(ע-p&֖r#ł#$n"(-L($x:܌ $۰(|.(v$ӂ:܌$10ײ-"؞-j$۰($1(v$ӌ:܌ $۰(|.(v$Ӗ:܌.(vڌ:܌.(v$Ӡ:܌ $۰(P.(v$Ӫ:܌ $۰($.(v$Ӵ"ز-Ԥ(L($Ӿ:܌.(v$:܌ $۰(v"ض-(Lؔ(X((-(-(($Ū%$H(-$ %$$1. %H֘(- %Xؚ-("(-L(:܌ .(v$H֘(-%6%$H֘(-.%R%$v%$:܌.(v$Œ%$:"ؘ(.(v$Œ%$":"ؘ(-(v$,$,-(($-($,$6"(-L($@:܌.(v$J"ض-(P(%|$$TX-($^"(-P( &Ŕ&$h:܌ $۰(v$rX((X((-(-((H&Ő&$r$|:"ؘ(-(v$ӆ"ؤ(-Lؤ($Ӑ$Ӑ-((H&-($Ӑ$Ӛ:܌.(vڌ:܌.(vڌ:܌.(v$Ӥ$Ӥ-(-"-($Ӥ$ӮX-(-(-(-'2'$Ӯ$Ӹ:܌.(v$$-(-'-($$$$~v:62.08hX0 `~vvl  ll(Pd(SY:$  ($pv(,"SNOOPY","DISKETTE","PI","METS","x","*",")","\","/","=","-","&","!","(","#","$","%",":",1,1,2,2,2,2,2,2,2,2,2,1,1,5,6,7,5,5,5,5,5,5,5,5,1,1,1,1,4,4,4,4,1,1,3,3,3,1,1,1,1,4,4,4,1,1,4,4,4,4,1,1,2,2,2,2,2,1,1,4,4,4,4,4,4,1,1,3,3,3,1,1,4,4,4,4,1,1,1,1,3,3,3,1,1,2,2,2,2,1,1,1,1,8,8,8,8,8,8,8,8,8,8,8,1,1,2,2,2,1,1,2,2,2,2,1,1,1,1,2,2,2,1,1,4,4,4,4,1,1,"January",31,"February",28,"March",31,"April",30,"May",31,"June",30,"July",31,"August",31,"September",30,"October",31,"November",30,"December",31CBCD@BEEAAAEABPB> B@C`B@AGxH~R\fpz>DV     $ .\ 8 B L V ` !j(!t8!~J!Z!l!~!!!!!!!!!!"4"h" """("2"<"F"P#Z2#dR#nr#x####$8$X$h$|$$ %%.%6%J%R%n%"v%,%6%@%J%T%^%h &r$&|L&h&x&&&&''6'@'D'1 5  *5*UW   ,   E5 E  W ˇ5  ,E l8186.51j8)awb 6  Xw , e 1 w E U &W 2/ , & 4 &9 &9U3uE uU.5`.U & E& & f&ËDef Ë )̋E U&ff r[qr[q x xd7"8111 187~888r@8l88IqM.9@~88IqMB9@~88IqMV9l8~8U(Uj9985r98U,@8l8 x~988rT,`.5.555986.595.52.5.5.58@7@7@7@7R7zt!NjklvL@Sժ@zժ@ZȪ@Q@n'@;@S۪@.@# Ȫ@z;@!@@:@irȪ@g@vg@cȪ@9@;@ժ@ @e@+@Sū@zr@S;@D@@v:@ū@Y @ @_@@Sū@T۪@z˫@˫@{L@zq@*}@۪@ Ȫ@z۪@@y@n˫@S@YȪ@T˫@zū@Y@R@.@r@@Oq@~@^@Ȫ@n۪@=@&&Ȫ@@@˫@K@@t!@2K@Z@d@p@"l@+@"6m;@+:+:+:@JDa p,a ̫rhG0ppa i ,1zhG( +: p Z d  K(( "l00 "l88 p@@ ppp +~~ Da ~"SNOOPY","DISKETTE","PI","METS","x","*",")","\","/","=","-","&","!","(","#","$","%",":",1,1,2,2,2,2,2,2,2,2,2,1,1,5,6,7,5~z,5,5,5,5,5,5,5,1,1,1,1,4,4,4,4,1,1,3,3,3,1,1,1,1,4,4,4,1,1,4,4,4,4,1,1,2,2,2,2,2,1,1,4,4,4,4,4,4,1,1,3,3,3,1,1,4,4,4,4,1,1~,1,1,3,3,3,1,1,2,2,2,2,1,1,1,1,8,8,8,8,8,8,8,8,8,8,8,1,1,2,2,2,1,1,2,2,2,2,1,1,1,1,2,2,2,1,1,4,4,4,4,1,1,"January",31,"Feb~nruary",28,"March",31,"April",30,"May",31,"June",30,"July",31,"August",31,"September",30,"October",31,"November",30,"Decemb er",31pCBCD@BEEAAAEABPB> B@C`B@AG$nuF x>~@mbers at the top of the calendar).f5Not prepared to do calendars before MDLXXXII {1582} -@Unable to do years after 9 &f`~999 (if you notice there are only fourWhat year calendar2File or device to print to (e.g. LP0: for printer)0.pct*@v048. >Choose picture: 8 > N t  ,a tV  ,a `  ̫r h, ̫r,i< 048< @!D"H#L$P(T2X<FPr G0 G4 G8 G< G@ GD GH "GL &GP *GT .GX 2G 6G :G<8Zdn*x<NR r G G G* G< GN GR G "G &G *G .G 2G 6G  :G<p0BJ\n"',6@.r G0 GB GJ G\ Gn G G "G &G *G .G 2G 6G :G.<JJTN^^hpr|"*Rfr GJ GN G^ Gp G G G "G &G *G .G" 2G* 6GR :Gf<&0:bDrNXr G G G G G G G "G &G *G .Gb 2Gr 6G :G<blv>Xt">Rr G G G G> GX Gt G "G &G *G .G 2G" 6G> :GR<Pnv B H*l4r>HR\f r Gn Gv G G G GB GH "Gl &Gr *G .G 2G 6G :G <p zd j |         $ ( r G Gd Gj G| G G G "G &G *G .G 2G 6G$ :G( <, 0 4 8 $< . 8 B L V `2 jN t^ ~p r G, G0 G4 G8 G< G G "G &G *G .G2 2GN 6G^ :Gp <           " < Z r G G G G G G G "G &G *G .G 2G" 6G< :GZ <0    ( 2 < F" P8 ZX dx n x  r G G G G G G G "G" &G8 *GX .Gx 2G 6G :G <h >^~0BT\pxr G G G> G^ G~ G G "G &G0 *GB .GT 2G\ 6Gp :Gx<",6@JT^h2rJ|rr G G G G G G G "G &G2 *GJ .Gr 2G 6G :G  ,@\fjB G G  G, G@ G\ Gf GjG   6m;(  i j  +:00 Da Da  ,a  4CALEND ̫r a p<0  !"#$(2VpVppvLvL vLvLvLvLvL vL$vL(vL,vL0Sժ 2Da V 4,a p6zժ 8Da V :,a p*hVpRv2pd2nZȪ Da V ,a p Da R vQn';S۪ ,a p.# Ȫ Da d";$!&n'.VpRvVp2<:FrZȪ Da V ,a p Da R vzժ Da V ,a pn'vL: irȪ "Da :$g(!*vL*VpVpVpRFPrSժ Da V ,a p zժ Da V ,a pZȪ Da V ,a p Da RQn'"vL&(:0p4pdZZVrS۪ ,a pvg irȪ Da 4gS۪ ,a p.cȪ Da dg"!$vL(n',ZȪ .Da V, pRVpZdlnlr ,a p Da R zժ Da V ,a pn'vL9irȪ ,a l ;"!$vL(ժ *,a l.2V<xlpNln Da V < Q vLժ ,a l ,a peNQ vL$vL(S۪ *,a l,.H\d,ncȪ Da dirȪ Da , +Sū ̫rr Da  ̫r8vL,a d@ZȪ BDa V D,a d FDa B0F,6dl@@VdrQF n'vL;S۪ ,a d.# Ȫ Da l; !"vL&n'*ZȪ ,Da V .,a d.<BVd@JT`^`p Da Bzժ Da V ,a dn'vLvL_9irȪ ,a `";$!&vL*ժ ,,a `,f>ph`:r`n Da >p Q vLժ ,a ` Da :Q vL$S۪ &,a `(v:*Sū*\|`\*`6\p ,a \vL ժ ,a ` ,a \Q*vLS۪ ,a ` T۪ "Da 6$S۪ &,a \(T۪&62X\PVTp Da 6z˫S۪ Da 2 ˫v:Sū ,a XvLSժ ,a \ ,a PSժ Da V ",a T$zժ,VTVTPXp Da V ,a TZȪ Da V ,a T ,a PQn'vLS;":$S۪ &,a X(.*cȪ0lVTPVTNp Da lg ! vLn'ZȪ Da V ,a T ,a Pzժ Da V ",a T$n'(vL,Q.N&*\LVTVTVTLNrvLSժ ,a \ ,a LSժ Da V ,a Tzժ Da V ,a TZȪ Da V ,a T ,a L"N$Q4L~LVTLNVt~n' vLS;:irȪ Da Lg!vL"n'&ZȪ (Da V *,a T ,,a L.N0zժ 2Da V8|TNHNn ,a Tn' vLQNvLS;:irȪ Da H g$!&vL*Q,N.vL2S;6:0HHHnirȪ Da Hg !vLS;:irȪ Da Hg !"vL&_(9*irȪ ,,a H.;0&Hr!vL _ {LirȪ ̫r;!vL_qvL"S;&:(S۪ *,a H,..*}*0VDVDVDpg irȪ ̫rg!vLSժ Da V ,a Dzժ Da V ",a D$ZȪ &Da V (,a D0..6^0H0VD.6r Da .6Q ^ n'S;:irȪ Da Hg! n'$ZȪ &Da V (,a D *Da .,6.zժ*ZVD0:*h@DV<Vr Da V ,a Dn' vLS۪ Da *۪ ,a hSū ,a @vL Sժ "Da V $,a <&zժ (Da V*<V<RDN<R.r ,a <ZȪ Da V ,a < Da RQn'vLS۪ ,a < ." Ȫ $Da R&S۪ (Da .(R<@X<RrS۪ Da Rz۪ ,a < S۪ ,a @yn˫v:SvLS۪ ,a <".$YȪ &Da R(.R<@bbV<RpS۪ Da .S۪ Da R z۪ ,a <T˫zū ,a @vLn' ZȪ "Da V $,a < &Da R(V<blV8V8V8.rzժ Da V ,a < n'vLSժ Da V ,a 8zժ Da V ,a 8 ZȪ "Da V $,a 8 &Da .*lvV4V4V4&:pQ n'vLSժ Da V ,a 4zժ Da V ,a 4ZȪ Da V ",a 4 $Da &&:(Q08pv84ZVtpn' vL;S۪ ,a J3 REM ***By Nick Zymaris Oct. 1983. Some lines after 3140 copied/modifiedC4 REM by me (in EDT as well as Pro/Basic) for use in the menu. &N6 Translated and compiled in BASIC PLUS 2 on 25-Sep-845 ON ERROR GOTO 29900E87 REM combined with CLOCK.BAS (line 10000) 9-Dec-83 A.M.10 GOSUB 4000\PRINT "";9I20 PRINT "To set time, go to Main Menu then press ";CHR$(27);"[7mSet-up";7730 PRINT CHR$(27);"[m. This will rarely be necessary."1<40 PRINT \ PRINT "Do you want to set alarm? [Y/N]"\ INPUT A$G50 IF A$='y' THEN PRINT 'Enter 24-hr. alarm time, format hh:mm' ELSE 60iJ53 PRINT '(If you use improper format, the alarm will not go off).''55 INPUT ALARM$\ PRINT 'Thank you!'n 58 SLEEP 1%60 PRINT CHR$(27);"[H";CHR$(27);"[J";wM62 PRINT 'The correct time is: ';TIME$(0%);''\ PRINT \ PRINT ''I%63 PRINT 'The date is ';DATE$(0%);'.'r$65 PRINT 'Alarm time is ';ALARM$;'.'C68 PRINT 'To turn off alarm when it rings (beeps), press I.'oJ69 PRINT 'To set up or exit, press , which on the PC350 is Ctrl';70 PRINT ' 3.'A71 IF VAL(MID$(TIME$(0),5,1))<>VAL(MID$(ALARM$,5,1)) THEN ALOFF=0w072 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100073 PRINT \ PRINT SLEEP$\ PRINT MESSAGE$;CHR$(15)J75 CALL INKEY BY REF (S%)\ IF S%=27 THEN GOSUB 200\ REM setup/exit routine80 PRINT '';\ GOTO 62$100 FOR C=1 TO 31\ REM alarm routineF102 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);103 PRINT '';7t105 CALL INKEY BY REF (S%)\S$=CHR$(S%)\ IF S$='i' OR S$='I' THEN ALOFF=1\ PRINT CHR$(27);"[H";CHR$(27);"[J";\ RETURN107 FOR T1=1 TO 314\ NEXT T1G110 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);\ NEXT CSM120 SLEEP$='Someone overslept...'\ PRINT CHR$(27);"[H";CHR$(27);"[J";\ RETURN(k200 PRINT CHR$(27);"[H";CHR$(27);"[J";\ PRINT '';TAB(35);'Set-up Menu ';r210 PRINT '' 220 GOSUB 3140X270 PRINT CHR$(27);"[H";CHR$(27);"[J";\ PRINT ' Returning to Main Menu Absurdity... ';9275 PRINT CHR$(15);\ REM 'Chinese' character set disabledHG280 FOR T=1 TO 3142\ NEXT T\ PRINT CHR$(27);"[H";CHR$(27);"[J";\ RETURNN300 REM set alarm F310 PRINT 'Enter new alarm time. Format is "hh:mm" (2 digits each).';315 SLEEP 4\ PRINT320 INPUT ALARM$J330 IF LEN(ALARM$)<>5 THEN PRINT 'Invalid alarm time'; ELSE RETURN340 SLEEP 1.5\ PRINT \ GOTO 310 (400 REM clear oversleep message (sleep$)/410 SLEEP$=''\ PRINT 'Message deleted.';R 420 SLEEP 1.5 430 RETURN500 REM insert messageI510 PRINT 'Type in the message when prompted by the MSG> prompt.';\515 SLEEP 4\PRINT(J520 PRINT 'MSG> ';\ LINPUT #0,MESSAGE$\ PRINT 'Message recorded.';\ RETURN600 REM delete message1610 MESSAGE$=''\ PRINT 'Message deleted.';N 615 SLEEP 1.5 628 RETURN"1000 REM beep if wrong key pressed1010 PRINT '';\ GOTO 32903140 REM Set-up menu proper3142 REM note this line number3190 PRINT '''23200 PRINT 'Type the first letter of your choice.'&3201 PRINT ' Exit to monitor' 3210 PRINT ' Set alarm';3220 PRINT ' Clear "Someone overslept..." message'2)3230 PRINT ' Insert new message' 33240 PRINT ' Delete user-inserted message'(3245 PRINT '1m Analogm clock display'&3250 PRINT ' Return to clock'-3260 REM reset window'3270 PRINT ''+3280 REM input loop?3290 CALL INKEY BY REF (ST%)\ST$=CHR$(ST%)\ IF ST%=0% THEN 3290hI3310 Q=POS('eEsScCiIdDaArR',ST$,1)\Q=INT((Q+1)/2)\ IF Q=0 THEN GOSUB 1000l.3320 ON Q GOTO 30000,300,400,500,600,10000,6284000 DEF INT%(X)=INT(X)IT4002 CALL CGL BY REF (90%)\CALL CGL BY REF (86%,0%)\CALL CGL BY REF (82%,.375,1,0,1)>4004 CALL CGL BY REF (80%,0,1,0,1)\CALL CGL BY REF (26%,1%,3%)?4006 CALL CGL BY REF (20%,.02,1/24)\CALL CGL BY REF (24%,.02,0)oY4008 CALL CGL BY REF (18%,1%)\CALL CGL BY REF (30%,126%,16%,16%)\CALL CGL BY REF (18%,2%)NE4010 CALL CGL BY REF (30%,126%,8%,8%)\CALL CGL BY REF (18%,0%)\RETURNC>10000 PRINT '[?25lPress to return to main clock.'10001 ON ERROR GOTO 10200010002 SLEEP 4\ PRINT "";10004 M=1\M1=M10006 REM DRAW CLOCK910008 CALL CGL BY REF (1%,0,.5)\CALL CGL BY REF (4%,0,.5) &10010 CALL CGL BY REF (39%,.5,.5,360%)#10012 REM DRAW HOUR MARKS0$10014 FOR I=0 TO 2*PI STEP (2*PI)/12'10016 X1=.4*SIN(I)+.5\X2=.45*SIN(I)+.5 '10018 Y1=.4*COS(I)+.5\Y2=.45*COS(I)+.58<10020 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 10022 NEXT I$10024 REM DRAW MINUTE MARKS$10026 FOR I=0 TO 2*PI STEP (2*PI)/60(10028 X1=.44*SIN(I)+.5\X2=.45*SIN(I)+.5(10030 Y1=.44*COS(I)+.5\Y2=.45*COS(I)+.5<10032 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 10034 NEXT IC10036 CALL INKEY BY REF (Q%)\IF Q%=27 OR Q%=101 OR Q%=81 THEN 10230U=10037 PRINT '';DATE$(0);CHR$(13);' ';'Alarm time: ';ALARM$N-10038 NOW$=TIME$(0%) \ REM READ TIME5@10039 IF TIME$(0%)=ALARM$ AND ALOFF=0 THEN GOSUB 100\ GOTO 10006110040 REM FIND HOURS (H) AND MINUTES (M)A10042 H$=MID$(NOW$,1%,2%)=10044 H=VAL(H$)*10046 IF H>12 THEN H=H-12)10048 M$=MID$(NOW$,4%,2%) 10050 M=VAL(M$)\10052 IF M<>M1 THEN 10096L210054 REM FIND HOUR HAND ANGLE FROM 12:0010056 HD=H*30+(M*6)/12+10058 REM CONVERT ANGLE TO RADIANS110060 HD=HD*PI/180+10062 REM FIND X AND Y COORDINATES:10064 HX=.3*SIN(HD)+.510066 HY=.3*COS(HD)+.5 10068 REM DRAW HOUR HAND;10070 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,HX,HY) 310072 REM FIND MINUTE HAND ANGLE FROM 12:001 10074 MD=M*6$10076 REM CONVERT TO RADIANS10078 MD=MD*PI/180*10080 REM FIND X AND Y COORDINATES10082 MX=.49*SIN(MD)+.5 10084 MY=.49*COS(MD)+.5 "10086 REM DRAW MINUTE HAND;10088 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,MX,MY)1 10090 M1=M10092 GOTO 10036%10094 REM REM ERASE OLD HANDS+#10096 CALL CGL BY REF (70%,INT%(8)) ;10098 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,HX,HY) ;10100 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,MX,MY)G#10102 CALL CGL BY REF (70%,INT%(4))E"10104 IF M1/5=INT(M1/5) THEN 10116$10106 REM REDRAW MINUTE MARK)10108 X1=.44*SIN(MD)+.5\X2=.45*SIN(MD)+.5 )10110 Y1=.44*COS(MD)+.5\Y2=.45*COS(MD)+.5 ;10112 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 10114 GOTO 10054"10116 REM REDRAW HOUR MARK(10118 X1=.4*SIN(MD)+.5\X2=.45*SIN(MD)+.5(10120 Y1=.4*COS(MD)+.5\Y2=.45*COS(MD)+.5;10122 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2)L10124 GOTO 10054+10200 PRINT '';ERT$(ERR);' at line ';ERLC210205 PRINT 'Press to return to main clock.'10206 CALL INKEY BY REF (CONT%)W-10207 IF CONT%=27 THEN PRINT 'c'\ GOTO 10220NQ10210 IF CONT%=0 THEN 10200 ELSE PRINT CHR$(27);"[H";CHR$(27);"[J";\ RESUME 10000Y10220 RESUME 1023010230 ON ERROR GOTO 299004 10240 RETURN 29900 REM error-handling routine>29910 PRINT '';ERT$(ERR);' Type any key to continue';B29915 IF ERR=72 THEN PRINT CHR$(27);"[H";CHR$(27);"[J";\ RESUME 62/29917 CALL INKEY BY REF (Q%)\IF Q%=0 THEN 29917;529920 PRINT CHR$(27);"[H";CHR$(27);"[J";\ RESUME 3190 29950 REM reset screen and end)30000 PRINT '';\ GOTO 32200T31999 GOTO 32200 32200 ENDCONT%=0 THEN 10200 ELSE PRINT CHR$(27);"[H";CHR$(27);"[J";\ RESUME 10000Y10220 RESUME 1023010230 ON ERROR GOTO 299004 10240 RETURN 29900 REM error-handling routine>29910 PRINT '';ERT$(ERR);' Type any key to continue';B29915 IF ERR=72 THEN PRINT CHR$(27);"[H";CHR$(27);"[J";\ RESUME 62/29917 CALL INKEY BY REF (Q%)\IF Q%=0 THEN 29917;529920 PRIN"SY:TIMECLOCK/CP/FP=SY:TIMECLOCK/MP TASK = TIMECL UNITS = 18#ASG = TI:5:13:15 ; LUN 5 for INKEY1ASG = SY:6:7:8:9:10:11:12LEXTTSK = 952 &CLSTR = PBFSML,CGLFPU,POSRES,RMSRES:ROEXTSCT = DM$BUF:03EXTSCT = FL$BUF:4310EXTSCT = HL$BUF:00EXTSCT = MM$BUF:1000EXTSCT = MN$BUF:4540GBLDEF = HL$LUN:21GBLDEF = MN$LUN:20GBLDEF = MS$LUN:16gbldef=g$lun:17FGBLDEF = TT$EFN:15GBLDEF = TT$LUN:15GBLDEF = WC$LUN:22// .ROOT BASIC2-RMSROT-USER,RMSALL#USER: .FCTR SY:TIMECLOCK-inkey-LIBR-LIBR: .FCTR LB:[1,5]BP2OTS/LBS@LB:[1,5]BP2IC12@LB:[1,5]RMSRLXS .END.END5]RMSRLX .END8.S۪ ,a 4. Ȫ Da Z ;"!$vL(n',ZȪ .Da V*d4&:V4V8.Vn ,a 4 Da &: zժ Da V ,a 4n'vLn'ZȪ Da V ,a 8 "Da .$&zժ (Da V(8VTVTVT&jn ,a 8n' vLSժ Da V ,a Tzժ Da V ,a TZȪ Da V ,a T Da &"$Q&j.VHVHVHR:rn'vL Sժ Da V ,a Hzժ Da V ,a HZȪ Da V ,a H Da R "Q$:&n'*vL*hVHpS۪ ,a hY  S۪ Da V۪ ,a H._RSū ̫rvL"S;&:(S۪,HV"Vvn ,a Hz۪ Da V T۪ Da "S۪ Da V˫.*}g! vL$.&v(vL0&VHRVHHrn'ZȪ Da V ,a H Da Rzժ Da V ,a Hn'vL S;$:&irȪ (Da H*g.!0RVT&VT< HpvLn' ZȪ Da V ,a T Da &zժ Da V ,a Tn' vL$Q&< (vL,S۪ .,a H,~RVTZHrn.YȪ Da R S۪ Da V˫.S۪ ,a T.YȪ Da Z.@$&(H*r* j VpVpVpBp  j  vLSժ Da V ,a pzժ Da V ,a pZȪ Da V ,a p "Da B$&Q(0VpBVprn'S; :irȪ ̫rg!n'ZȪ Da V ,a p "Da B$&zժ (Da V *,a p,n'4 <pvLOq vLS;:irȪ ̫rgirȪ ̫r g$irȪ &̫r(g,irȪ .Da <0g2( pirȪ ̫rg irȪ ̫rgirȪ ̫rg!vL"Oq$vL(S;,:.irȪ 0̫r4V*4,ngirȪ ̫r girȪ ̫rg!vLOq vL$S;(:*irȪ ,Da ,.g2irȪ4>H"p ̫rg irȪ ̫rgirȪ ̫rg!vL Oq"vL&S;*:,irȪ .Da "0g4R\pirȪ ̫rg irȪ ̫rgirȪ ̫rgirȪ ̫r g$!&vL*Oq,vL0S;0r:irȪ Da  girȪ ̫rgirȪ ̫rgirȪ ̫r"g&irȪ (̫r*g.irȪ4 fpp ̫rg ! vLOqvLS;:irȪ Da  g$irȪ &̫r(g,irȪ .̫r0g2B zpirȪ ̫rg irȪ ̫rgirȪ ̫rgirȪ ̫r g$!&vL*Oq,vL0ժ(p T&| TF.,p ,a T Da & |  Q vLS۪ ,a Tz۪ Da FS۪ Da . y"z˫$Sū &,a ,, V0V0V0, rSժ Da V ,a 0 zժ Da V ,a 0ZȪ Da V ,a 0 ,a , Q n'"vL&S;*:2 LV0, V0rirȪ Da Lg !vLn'ZȪ Da V ,a 0 ,a ,  zժ "Da V $,a 0&n'*vL.S;2 p:irȪ ̫r girȪ ̫rgirȪ ̫rgirȪ ̫r"g&!(vL,Oq.vLB $  v nvLvL vLvLvLvLvL vL$vL(vL,Q. 0~ 6,a :^Ȫ @,a ,V $ RR  tn'S۪ ,a  n۪ Da Rv:T۪ Da RS۪ ,a yz˫v: Sū ",a $= (,a 0~ .  .(n&&Ȫ ,a vL Q ~ ,a ^ Ȫ ,a "n'&S۪ (,a (*n۪ ,Da .v:( (VnT۪ Da S۪ ,a ( yz˫v:S۪ Da V˫Sū ,a = ,a $&&Ȫ &,a ( 8h6$B$nvLS۪ ,a h z۪ Da n۪ Da 6v:Sū ,a $vLS۪ Da "T۪ $,a $&S۪* F$R(L( Vr Da F۪ ,a $ n۪ Da R˫Sū ,a (vLS۪ ,a (  Sū ",a $vL(S۪& h66h`n ,a hn۪ Da 6 v: T۪ Da 6S۪ ,a hyz˫v:Sū ,a vL"S۪ $,a (: R (j( rn۪ Da RS۪ ,a  ˫S۪ ,a ˫Sū ,a (vLS۪ ,a ( " $Sū &,a .^ t>p ~hD rvLժ ,a  Da >p Q vLS۪ ,a h D "Sū $,a &vL*ժ ,,a . > > p Da >Y   Q vLժ ,a  Da >Y  Q  vL$Sժ &Da  (,a *vL, V V((rzժ Da V ,a  vLQ vLS۪ ,a z۪ Da VSū ,a ("vL&S۪ (,a (*, D > > pD Sū ,a  vLժ ,a  Da > Q vL ժ ",a  $Da >&Y ( *Q,  hN" hr vL Sժ Da  ,a vLժ ,a h Da N" Sժ Da  ",a $vL(ժ *,a h(* < hVZ r Da <  S۪ ,a hz۪ Da zū ,a vLժ ,a  Da V "Z $S۪ &,a .N < HHn۪ Da Sū ,a  Q< vLS;:irȪ Da Hg"!$S;(:*irȪ ,Da H.x HVVVtg! S;:irȪ Da Hg!vLSժ Da V ",a $zժ &Da V (,a *ZȪ ,Da V2   (lr ,a  Da   Q n'vL;irȪ ̫r;! vL$vL(vL,;.irȪ 0,a l( 2<VDVDVDR n;!vL vLSժ Da V ,a Dzժ Da V ,a DZȪ Da V ,a D "Da R$ &Q.  <H<VDR VDp n' S;:irȪ Da Hg!n'ZȪ Da V ",a D $Da R& (zժ *Da V ,,a D. <F8 PhRhtn'vL irȪ ̫rirȪ Da Y 8 Q vL"S۪ $,a h&n۪ (Da R*S۪ ,,a h(H RX Zh6h6nn۪ Da Rv: ˫ Y X Q vLS۪ ,a hn۪ Da 6 S۪ ",a h$n۪ &Da 6*l x dhhrv:˫Y  x  Q vLS۪ ,a hn۪ Da S۪ ,a h n۪ "Da $v:&˫(Y 2 nlVlx p Q  vLS۪ ,a l۪ Da VSū ,a lvLS;":$S;(*}*,g0irȪ, p Da g ! vLS;:irȪ ̫rKn۪ Da "S۪ $Da &y(z˫*.6  r*}g irȪ ̫rg!vLS;: S;$*}&(g,irȪ .Da 0g4!8HH rvLS; :irȪ Da Hg!S;:irȪ Da H"g&!(vL,S;0:2S;6*}8N rg irȪ Da g!vLS;:S;"*}$&g*irȪ ,Da .g2!4vL2pH pS۪ Da z۪ ,a  Sū ,a pvLS;:irȪ Da Hg"!$vL(S;,:.S;&pp V p*}g !S۪ Da ۪ ,a pSū ,a Sժ ,a p ,a  zժ "Da V $,a ,V hN0rZȪ Da V ,a ,a  Qn'ժ ,a h Da NY  Q"0$vL(irȪ *̫r&t0 0 p.rirȪ Da t  0ժ ,a Da 0Sժ Da  ,a S۪ ,a p"۪ $Da .0ph VB\rSū ,a pS; :irȪ Da hg!vLժ ,a Da V" $B&Q(\*vL.ժ2H .Tx"n ,a Da .  T QxvLQvLS; :"irȪ $Da "&g*!,vL0Q6v `"nvL S;:S۪ ,a vgirȪ Da `g !"vL&Q(*vL.S;2:4S۪, ZSET NO DOUBLE J3 REM ***By Nick Zymaris Oct. 1983. Some lines after 3140 copied/modifiedA4 REM by me (in EDT as well as Pro/Basic) for use in the menu.5 ON ERROR GOTO 2990087 REM combined with CLOCK.BAS (line 10000) 9-Dec-83 A.M. 10 CLEAR I20 PRINT "To set time, go to Main Menu then press ";CHR$(27);"[7mSet-up";730 PRINT CHR$(27);"[m. This will rarely be necessary."<40 PRINT \ PRINT "Do you want to set alarm? [Y/N]"\ INPUT A$G50 IF A$='y' THEN PRINT 'Enter 24-hr. alarm time, format hh:mm' ELSE 60UJ53 PRINT '(If you use improper format, the alarm will not go off).''55 INPUT ALARM$\ PRINT 'Thank you!'r58 FOR T=1 TO 1000\ NEXT T 60 CLEAR RL62 PRINT 'The correct time is: ';TIME$(0);''\ PRINT \ PRINT ''%63 PRINT 'The date is ';DATE$(0%);'.'i$65 PRINT 'Alarm time is ';ALARM$;'.'C68 PRINT 'To turn off alarm when it rings (beeps), press I.'IJ69 PRINT 'To set up or exit, press , which on the PC350 is Ctrl';70 PRINT ' 3.'A71 IF VAL(MID$(TIME$(0),5,1))<>VAL(MID$(ALARM$,5,1)) THEN ALOFF=0a072 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100073 PRINT \ PRINT SLEEP$\ PRINT MESSAGE$;CHR$(15)I75 CALL INKEY (S$)\ IF S$=CHR$(27) THEN GOSUB 200\ REM setup/exit routineP79 FOR T=1 TO 314\ NEXT TT80 PRINT '';\ GOTO 62$100 FOR C=1 TO 31\ REM alarm routineF102 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);103 PRINT '';uF105 CALL INKEY (S$)\ IF S$='i' OR S$='I' THEN ALOFF=1\ CLEAR \ RETURN 107 FOR T1=1 TO 314\ NEXT T1G110 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);\ NEXT CN2120 SLEEP$='Someone overslept...'\ CLEAR \ RETURN O200 CLEAR \ PRINT '';TAB(35);'Set-up Menu ';t210 PRINT ''220 GOSUB 3140230 FOR T=1 TO 1000\ NEXT TG<270 CLEAR \ PRINT ' Returning to Main Menu Absurdity... ';9275 PRINT CHR$(15);\ REM 'Chinese' character set disabled ,280 FOR T=1 TO 3142\ NEXT T\ CLEAR \ RETURN 300 REM set alarmLF310 PRINT 'Enter new alarm time. Format is "hh:mm" (2 digits each).';#315 FOR T=1 TO 3142\ NEXT T\ PRINT R320 INPUT ALARM$K330 IF LEN(ALARM$)<>5 THEN PRINT 'Invalid alarm time'; ELSE RETURN T-340 FOR T=1 TO 1000\ NEXT T\ PRINT \ GOTO 310 (400 REM clear oversleep message (sleep$)/410 SLEEP$=''\ PRINT 'Message deleted.'; 420 FOR T=1 TO 1000\ NEXT Ti 430 RETURN 7500 REM insert messageI510 PRINT 'Type in the message when prompted by the MSG> prompt.';R#515 FOR T=1 TO 3142\ NEXT T\ PRINT tK520 PRINT 'MSG> ';\ LINPUT #0,MESSAGE$\ PRINT 'Message recorded.';\ RETURN \600 REM delete message1610 MESSAGE$=''\ PRINT 'Message deleted.';n615 FOR T=1 TO 1000\ NEXT TE 628 RETURN O"1000 REM beep if wrong key pressed1010 PRINT '';\ GOTO 32903140 REM Set-up menu proper$3142 REM note this line number3190 PRINT ''O23200 PRINT 'Type the first letter of your choice.'(3201 PRINT ' Exit to Pro/Basic' 3210 PRINT ' Set alarm';3220 PRINT ' Clear "Someone overslept..." message'I)3230 PRINT ' Insert new message';33240 PRINT ' Delete user-inserted message'P(3245 PRINT '1m Analogm clock display'&3250 PRINT ' Return to clock'-3260 REM reset window\3270 PRINT ''+3280 REM input loop103290 CALL INKEY (STR$)\ IF LEN(STR$)=0 THEN 3290J3310 Q=POS('eEsScCiIdDaArR',STR$,1)\Q=INT((Q+1)/2)\ IF Q=0 THEN GOSUB 1000.3320 ON Q GOTO 30000,300,400,500,600,10000,628?10000 PRINT '[?25lTo exit: ^C ^3 (Interrupt-Do-Escape)'n10001 ON ERROR GOTO 10200[%10002 FOR M=1 TO 2718\ NEXT M\ CLEAR 10004 M=1\M1=M10006 REM DRAW CLOCK10008 PLOT (0,.5)[10010 PLOT ARC (.5,.5,360)310012 REM DRAW HOUR MARKS r$10014 FOR I=0 TO 2*PI STEP (2*PI)/12'10016 X1=.4*SIN(I)+.5\X2=.45*SIN(I)+.5 '10018 Y1=.4*COS(I)+.5\Y2=.45*COS(I)+.5S10020 PLOT (X1,Y1),(X2,Y2)1 10022 NEXT I(10024 REM DRAW MINUTE MARKS $10026 FOR I=0 TO 2*PI STEP (2*PI)/60(10028 X1=.44*SIN(I)+.5\X2=.45*SIN(I)+.5(10030 Y1=.44*COS(I)+.5\Y2=.45*COS(I)+.510032 PLOT (X1,Y1),(X2,Y2)R 10034 NEXT I10036 REM READ TIME=10037 PRINT '';DATE$(0);CHR$(13);' ';'Alarm time: ';ALARM$E10038 NOW$=TIME$(0%)?10039 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100\ GOTO 100061110040 REM FIND HOURS (H) AND MINUTES (M)C10042 H$=MID$(NOW$,1%,2%)10044 H=VAL(H$)110046 IF H>12 THEN H=H-12010048 M$=MID$(NOW$,4%,2%)E10050 M=VAL(M$) 10052 IF M<>M1 THEN 10096/210054 REM FIND HOUR HAND ANGLE FROM 12:0010056 HD=H*30+(M*6)/12+10058 REM CONVERT ANGLE TO RADIANS310060 HD=HD*PI/180+10062 REM FIND X AND Y COORDINATES)10064 HX=.3*SIN(HD)+.510066 HY=.3*COS(HD)+.5 10068 REM DRAW HOUR HAND10070 PLOT (.5,.5),(HX,HY)310072 REM FIND MINUTE HAND ANGLE FROM 12:00 10074 MD=M*6$10076 REM CONVERT TO RADIANS10078 MD=MD*PI/180*10080 REM FIND X AND Y COORDINATES10082 MX=.49*SIN(MD)+.5F10084 MY=.49*COS(MD)+.5 "10086 REM DRAW MINUTE HAND10088 PLOT (.5,.5),(MX,MY) 10090 M1=M10092 GOTO 10036%10094 REM REM ERASE OLD HANDS010096 SET WRITING MODE 810098 PLOT (.5,.5),(HX,HY)10100 PLOT (.5,.5),(MX,MY)10102 SET WRITING MODE 4"10104 IF M1/5=INT(M1/5) THEN 10116$10106 REM REDRAW MINUTE MARK)10108 X1=.44*SIN(MD)+.5\X2=.45*SIN(MD)+.5)10110 Y1=.44*COS(MD)+.5\Y2=.45*COS(MD)+.5 10112 PLOT (X1,Y1),(X2,Y2)10114 GOTO 10054"10116 REM REDRAW HOUR MARK(10118 X1=.4*SIN(MD)+.5\X2=.45*SIN(MD)+.5(10120 Y1=.4*COS(MD)+.5\Y2=.45*COS(MD)+.510122 PLOT (X1,Y1),(X2,Y2)10124 GOTO 1005410200 RESUME 10202+10202 PRINT '';ERT$(ERR);' at line ';ERLL210205 PRINT 'Press to return to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 10220R810210 IF LEN(CONT$)=0 THEN 10202 ELSE CLEAR \ GOTO 1000010220 ON ERROR GOTO 299002 10230 RETURN 29900 REM error-handling routine29905 RESUME 29910G29910 PRINT CHR$(13);'';ERT$(ERR);' Type any key to continue';0$29915 IF ERR=72 THEN CLEAR \ GOTO 62.29917 CALL INKEY (Q$)\ IF LEN(Q$)=0 THEN 2991729920 CLEAR \ GOTO 3190 29950 REM reset screen and end#30000 PRINT '';\ END ern to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 10220R810210 IF LEN(CONT$)=0 THEN 10202 ELSE CLEAR \ GOTO 1000010220 ON ERROR GOTO 299002 10230 RETURN 29900 REM error-handling routine29905 RESUME 29910G29910 PRINT CHR$(13);'';ERT$(ERR);' Type any key to continu{E}d hed xY`d Rvdt! t!  t!  ̀Ԁ t! l^t! ^t! t! t! t! t! ^ @@jo,,V V n ,a vg irȪ Da Zg!vLn'ZȪ Da V ,a ",a $&zժ (Da V *,a 2,6pp@HJpn'vL S۪ ,a p۪ Da Sū ,a pvLS; :"irȪ $Da H&g*!,vL0S۪*plTV^pp Da ۪ ,a p ū ,a l QvLSժ Da V ,a  vL$S۪ &,a p(z۪2$Vl2h rlp Da Vū ,a l  2QvLS;:S; *}"$g(!*vL.Sժ 0,a l(Rp V V nr|n ,a Sժ ,a p ,a  zժ Da V ,a ZȪ Da V ,a ,a nQ n'$vL0v ZVrS;: S۪ ,a vgirȪ Da Zg!vL S۪ ",a $۪ &Da V(Sū *,a ,vL0V nV Hrn'ZȪ Da V ,a ,a nzժ Da V ,a n'vL S;$:&irȪ (Da H*g.!2HHVpS;: irȪ Da Hg!S;:irȪ Da Hg"!$vL(n',ZȪ .Da V 0,a ( VVVVr Da  zժ Da V ,a n'vLSժ Da V ,a zժ Da V ,a "ZȪ $Da V &,a 4 (XHVt Da (Q X n'vLS;:irȪ Da Hg"!$vL(n',ZȪ .Da V 0,a 2Da $P(VF(zժ Da V ,a  n'vLS;qvLvL"t!:irȪ Da Hg"!$vL(n',ZȪ .Da V 0,a ( VVVVr Da  zժ Da V ,a n'vLSժ Da V ,a zժ Da V ,a "ZȪ $Da V &,a 4 (XHVt Da (Q X n'vLS;zu~Njkl@{:(#@vL@^@.@@:@irȪ@g@!@zS;@@9@;@@@Q@_@x@u~@<@R@f@˫@Y @zȪ@K@ժ@y@@"@{:(#@S۪@@ū@Sժ@zժ@ZȪ@n'@{:(#@zSū@:@Oq@Sժ@*}@K@{L@{:(#@Ѫ@kf@Sū@S۪@۪@n۪@v:@z.@@@~@^@Ȫ@Sū@=@)&Ȫ@S5@@@@@_Ȫ@@z@@@@@@@@@@T۪@.x@˫@@@z@@@{:(#@e@@@@@@@@@@@j@@@@@""@$"@"@yg@{:(#@s@{:(#@t!@2K@Z@d@p@"l@+@"6m;@+:+:+:@JDa D,a 2̫r$G0pa i ,1zhG( +: p Z d  K(( "l00 "l88 p@@ ppp +~~ Da tCB?H?4DABCC?GpC?ff?@BIA@B= ?AADF`DBA@B~pt Type any key to continue$Press to return to main clock.c at line Alarm t8`ft~time:  0[?25lPress to return to main clock..eEsScCiIdDaArR@T Return D.V@jT~d to clockr1m Analogm clock display& Delete user-inserted message Insert new message.[r.Xx~1m Clear "Someone overslept..." message Set alarm& Exit to monitorD%Type the first lette0H&fD~Xr of your choice.nx~Message recorded.MSG> <Type in the message when prompted by the MSG>n x&~<F~ prompt.Message deleted.Invalid alarm time9Enter new alarm time. Format is "hh:mm" (2 digits e (F~Lach).V' Returning to Main Menu Absurdity... +Set-up Menu Someone overslept... V6f~!A L A R M I S S O U N D I N GIi(A L A R M I S S O U N D I N G2:  [*06@l2t:~@7m3.L>To set up or exit, press , which on the PC350 is Ctrl8To turn off alarm when it rings (beeps), pre  LN~ss I.Alarm time is . The date is [J[HThe correct time is: .Th&"*0@HNTt.~4ank you!@?(If you use improper format, the alarm will not go off).%Enter 24-hr. alarm time, format hh:mm @Pz~yDo you want to set alarm? [Y/N]#[m. This will rarely be necessary. [7mSet-up(To set time, go to Mai .Vd (n Menu then press >> i<048@ DZ(257:"<*>\r G0 G4 G8 G@ GD GZ G "G &G *G .G 2G" 6G* :G\<8?ADEFGHHInKPdfg$i6r G G G G G G GH "Gn &G *G .G 2G 6G$ :G6<pknxT,6;@Jr G G G GT G G G "G &G *G .G 2G 6G :G<T&,0BZXbgtr G G G G G& G, G0 "GB &GZ *G .G 2G 6G :G<D F v      . @ R d v zr G G G G G G G  "G &G. *G@ .GR 2Gd 6Gv :Gz<     @L  ' ' ' '. r G G G G G  G@ G "G &GL *G .G 2G 6G :G. <P'> 'B ' ' ' ' "'& $'R &' (' *' ,' .' 0'8 r G> GB G G G G G& "GR &G *G .G 2G 6G :G8 <2'j 4' 5' 6' 7' 8'< :'@ <'T >'b @'v B' D' F' H' r Gj G G G G G< G@ "GT &Gb *Gv .G 2G 6G :G <J' L' N' P' R'T'V'X'\Z'`\'p^'t`'b'd'r G G G G G G G "G\ &G` *Gp .Gt 2G 6G :G<f'h'j'l'n'p'r'8t'vv'x'z'|'~'('Tr G G G G G G G8 "Gv &G *G .G 2G 6G( :GT<0'''''''$'N'`'n'''(r G G G G G G G$ "GN &G` *Gn .G 2G 6G :G(httttZtzt0u|}R G G G GZ Gz G G "G &GG   6m;(  i j  +:00 Da Da ,a  TIMECL ̫r a p80 :rvLvL vL^vLvL.  ":$irȪ &Da :(g,!.vL24:6irȪ6dr Da g S;girȪ Da g! vL$&:(S;,.0g4irȪ.(n Da g ! vL:irȪ Da g! :"irȪ $Da &g*!,( 2 n9irȪ ̫r  ; !vLirȪ ̫r irȪ Da  ":$irȪ &Da 0*5<7ng! Q Q*vL:irȪ Da <g"!$vL(*9,irȪ .̫r2*:<p;! : irȪ Da *g!vL_xvL"$:&S;*,.g2>> nirȪ Da g S;girȪ Da g !"vL&(:*irȪ ,Da .g.ltu~ girȪ Da g!:irȪ Da  g$!&(:*irȪ ,Da 4?Arg! vL:irȪ Da g< g$irȪ &Da (g,!.vL20Dp:irȪ Da  girȪ ̫rgirȪ Da g! vL$&:(irȪ *Da ,g2EHF6Gr!vL  :irȪ Da Hg!vL: irȪ "Da 6$g(!*vL.0u~, H`pS; _ RfirȪ ̫rS;_R f"˫$Y &H(Ȫ *,a `*HH`dnpvL u~ irȪ ̫rKժ ,a ` Da dKy "Y $n&.(,nInvL : irȪ Da g!:irȪ ̫rg"!$&:(irȪ *̫r0K^^lngS; g!vLirȪ ,a ^""{:(#$S۪ &,a ^(*ū ,Da l..TP.\dhZhp.T vL:irȪ Da .g!Q\ vL$Sժ &Da h (,a Z*zժ ,Da h,ZhZ\dfn ,a ZZȪ Da h ,a Z Da \Qn'vL: irȪ "Da $g(!*4gi^r:S;  g!vL:irȪ Da  g$!&vL*irȪ ,,a ^."2{:(#$D^nS۪ ,a ^ Sū ̫rirȪ ̫rirȪ Da KirȪ ̫rirȪ Da "0dh`rK: Y  Sժ Da h ,a `:S; g$irȪ &Da (g,S;,khVhVhtg irȪ Da g!OqvLSժ Da h ,a V"zժ $Da h &,a V(ZȪ *Da h.VXkkhVXhVknp ,a V Da X Q n'n'ZȪ Da h ,a V Da X zժ "Da h $,a V&n'*vL.nhZn:irȪ Da  g!:S;g"!$n'(ZȪ *Da h ,,a Z. \hZnxp Da \zժ Da h ,a Zn'vLSժ Da  ̫r: S;$&(g,irȪ66r Da g S;girȪ Da g! Oq"vL&(:*S;.02g2h#nirȪ Da g S;girȪ Da g !"$:&irȪ (Da *g.S;4~p*}g irȪ Da ~g!vL:irȪ Da "g&!(vL,..0vL4r:S; girȪ Da gS; "$g(irȪ *Da ,g0!20RhRn:irȪ Da R g!vL:S; g$!&vL*Sժ ,Da h .,a R("hRhRT6NhRTnzժ Da h ,a R ZȪ Da h ,a R Da T6QNn'n' ZȪ "Da h $,a R &Da T4F6hRr6zժ Da h ,a R n':S;g irȪ "Da $g(S;,.0g4v,6;rirȪ Da g !OqvLvL:irȪ Da  g$!&vL*S;.x02:,@JnirȪ Da g !vL9irȪ ̫r;!vL"irȪ $̫r&K(*ū,`Tn Da `Y   :irȪ Da g!QOqvL"_$x&(:*irȪ0n Da g ! QvLvLSժ Da  ̫r :"irȪ $Da &g*!,vL4"p_xvL OqvLvL:irȪ Da g"!$vL(S;,x.0:2irȪ,Rn Da g ! vL:irȪ Da g! {L"irȪ $̫r&;(!*.zzXbp:irȪ Da z g!OqvLvLSժ Da  ̫r ":$irȪ &Da (g,!8gttD F v nvL_ x vLOqvLvL:irȪ Da t"g&!(Q*,vL0vL4vL0j @ "t:irȪ Da j g!vL:irȪ Da @g"!$vL(*:,irȪ .Da "4   rg! vL:irȪ Da g!vL ":$irȪ &Da (g,!.vL2.4  nn:irȪ Da  g!vL:irȪ Da g !"vL&(:*irȪ ,Da n6^ P < rg! vL:irȪ Da Pg!vL vL$&:(irȪ *Da <,g0!2vL0 PP P rvLirȪ ,a P "{:(#S۪ ,a PSū ̫r Ѫ ,a P"$&Q(*vL.irȪ$* LhLLn Da *irȪ ̫r  _ kfSū ,a LS۪ Da h۪ ,a Ln۪ Da L v:"Sū2LLd L, p ,a Lժ ,a L Da d .vLS۪ ,a L.@$&(*,,. 06 @.4,.,.tvLQ @ ~ ,a .^4Ȫ ,a ,n'"S۪ $,a .&v:(.*Sū ,,a ,.= 2,a .,<,Z**&&V(n)&Ȫ ,a ,vL S5 ,a *irȪ ,a *"Ȫ ,a & irȪ ",a &$S5 (,a (*irȪ&d(hhr ,a ("  Sժ Da h ,a irȪ ,a Ȫ ,a irȪ ,a Sժ Da h ",a $irȪ*H  R$$hr ,a Sժ Da H ,a  irȪ ,a S5 ,a $irȪ ,a $" vL$Sժ &Da h (,a &h  PrirȪ ,a Ȫ ,a  irȪ ,a Sժ Da h ,a irȪ ,a Ȫ ,a irȪ ,a "S5*p ,a irȪ ,a  "S5 ,a irȪ ,a _Ȫ ,a irȪ ,a "S5 &,a (irȪ(h@Dp ,a "  vLS۪ Da hn۪ Da @Sū ,a irȪ ,a  Sժ "Da D $,a &irȪ( Dr ,a S5 ,a  irȪ ,a "Ȫ ,a irȪ ,a Sժ Da D ",a $irȪ &,a 0< tS5 ,a  irȪ ,a "vL_Ȫ ,a irȪ ,a  S5 $,a &irȪ (,a *".,h ~rS5 ,a  irȪ ,a S5 ,a irȪ ,a S5 ,a irȪ ,a "S5 &,a (irȪ *,a 2 t" S5 ,a irȪ ,a S5 ,a irȪ ,a ""$vL(S5 ,,a .irȪ 0,a , ~pS5 ,a  irȪ ,a S5 ,a irȪ ,a S5 ,a irȪ ,a ""&(Ȫ *,a 0 ''pirȪ ,a S5 ,a irȪ ,a "OqvL :"irȪ $Da &g*!,vL. $':'hHHn^$vL S;x:irȪ Da :g! vL$Sժ &Da h (,a H*Sժ ,,a H(< D''<r ,a DvL vLSժ Da < ,a irȪ ,a Ȫ ,a irȪ ,a  _Ȫ ",a $irȪ &,a ,` <v" Sժ Da < ,a irȪ ,a Ȫ ,a irȪ ,a S5 ,a "irȪ $,a &"** 'h<<'rvLS5 ,a irȪ ,a Sժ Da < ,a irȪ ,a Sժ Da < ,a u~C^^{:(#^{:(#kQ{:(#nu~C^u~X^ u~X^ u~X^ !_K N"_Kn#<$^$<$%<$f 8 &<$l^'<$(dL"u~C^ u~!]n,u~@$n-u~X^.}4Ԁ1{:<#ykQ2u~X^ N3u~X^4u~X^l^)u~C^*u~C^+u~C^l^5u~X^^6u~X^y ^/u~C^ 7y kQ8u~L"9u~L"l^:u~X^v:; xQ< xQ=[qj$'l>[qj'lu~@$?u~E$v:f 8@"irȪ $,a &S5* ''8L8Ln ,a irȪ ,a  "vLvLS۪ Da 8T۪ Da L S۪ "Da 8$T۪ &Da L(n۪$ 4<8@<@<@8 r Da 4Sū ,a < Sū ,a 8Ȫ ,a @zժ ,a < ,a @ZȪ ,a < ,a @ ,a 8 "Q* ' '@0<4@p n' vLS۪ ,a @.xT۪ Da 0S۪ Da <˫Sū ,a 4"S۪ $,a @&.x(T۪& ,<0"'@0<n Da ,S۪ Da < ˫ Sū ,a 0vLS۪ ,a @T۪ Da 0S۪ Da <"˫$Sū&< ,@,<($',4p ,a ,S۪ ,a @  T۪ Da ,S۪ Da <˫Sū ,a (vLirȪ ,a ,"irȪ $,a 4*^ (0n_Ȫ ,a irȪ ,a  "irȪ ,a (irȪ ,a 0S5 ,a  irȪ ",a $"(0 &'&'<@8 <@&'('*'8LtvLn' ZȪ ,a < ,a @ ,a 8 zժ ,a < ,a @n' vL$vL(S۪ *Da 8,T۪ .Da L$ 8L($ @$@rS۪ Da 8T۪ Da L n۪ Da (Sū ,a $Sū ,a Ȫ ,a @zժ ,a $ ,a @"ZȪ* $@ *','@$<p ,a $ ,a @ ,a   Q n'vLS۪ ,a @.xT۪ Da $"S۪ $Da <&˫(Sū& 4@,<0.'@n ,a 4S۪ ,a @ .x T۪ Da ,S۪ Da <˫Sū ,a 0vLS۪ ,a @"$T۪$ $<,@,<(p Da $S۪ Da < ˫ Sū ,a ,S۪ ,a @T۪ Da ,S۪ Da <˫ Sū ",a (*8 0',4(0nvLirȪ ,a , irȪ ,a 4_Ȫ ,a irȪ ,a "irȪ ,a ("irȪ $,a 0&S5,^ 2'2'$@ $@2'n ,a irȪ ,a  "vLn'ZȪ ,a $ ,a @ ,a  "zժ $,a $ &,a @(n'* 4'l rvLirȪ ,a  "{:(#S۪ ,a ū Da lKS۪ ,a "$ū &Da (K*  5'.p:S۪ ,a   ū Da K:Y  QvL"$:&irȪ (Da .2 ng < gS;girȪ Da "g&irȪ (Da *g.irȪ 0̫r, 6'7'`ng! vLu~Sū ̫rvLu~ irȪ "̫r$&K(ժ *,a `0( d< > 8':'t Da dKy  Y < .Q> vLvL irȪ "̫r$_&S;*R,Sū .̫r,T <'>'4v 4@'rvLirȪ ̫r fSū ,a vLժ ,a  Da 4ev  zժ "Da 4 $,a &vL*irȪ,| B'HD'HDn ̫rS; S;RSū ̫rvLirȪ ̫rfSū ,a H"vL&ժ (,a H *,a D* F'H'H4nY  Q  vLvLS۪ Da T۪ ,a S۪ Da  T۪ ",a H$n۪ &Da 4(˫, J'L'8N'P'nSū ,a vL vLS۪ Da 8T۪ ,a n۪ Da Sū ,a  vL$vL(S۪ *,a & <R' <n.xT۪ Da  S۪ Da <˫Sū ,a vLS۪ ,a T۪ Da "S۪ $Da <(T'V'<<p˫Sū ,a  vLvLSժ Da < ,a irȪ ,a Sժ Da < ,a "irȪ $,a &_Ȫ,8X'n ,a irȪ ,a  "irȪ ,a irȪ ,a S5 ,a irȪ ,a ""&(vL*`Z'H \'^'8 nvLS۪ Da  T۪ ,a HSū ,a vLvLS۪ Da 8 T۪ ",a $n۪ &Da (Sū* `'b' <d' n ,a vL vLS۪ ,a .xT۪ Da S۪ Da <˫Sū ,a "vL&S۪ (,a (<f'h'<nT۪ Da  S۪ Da <˫Sū ,a vLvLSժ Da < ,a "irȪ $,a &Sժ(<r Da < ,a irȪ ,a  _Ȫ ,a irȪ ,a "irȪ ,a irȪ ,a "S5 &,a 2j'HDl' n'p'rirȪ ,a " vLSժ ,a H ,a DvLQ  vL$vL(S۪ *Da ,.0Sū*"Fr'<~~p ,a irȪ ,a  S5 ,a irȪ ,a "vLSժ Da < ",a ~$irȪ &,a ~(Sժ(H<|r Da < ,a irȪ ,a  _Ȫ ,a irȪ ,a "irȪ ,a irȪ ,a "S5 &,a |(l|t'<rr<vvpirȪ ,a |" vLSժ Da < ,a rirȪ ,a rSժ Da < ,a v"irȪ $,a v&_Ȫ,zzppv'n ,a zirȪ ,a z "irȪ ,a irȪ ,a S5 ,a pirȪ ,a p""&(vL,PllFnnx'DrS۪ Da P  Sū ,a lirȪ ,a lS5 ,a nirȪ ,a n""$vL(S۪ *,a D,`D`z'|' rn۪ Da `S۪ ,a D n۪ Da `v:˫QvL vL$S۪ &,a (.x*T۪$$<4 ,<0p Da $S۪ Da < ˫ Sū ,a 4S۪ ,a .xT۪ Da ,S۪ Da <˫ Sū ",a 0&(~' $<, ,nvLS۪ ,a  T۪ Da $S۪ Da <˫Sū ,a ,S۪ ,a  "T۪ $Da ,(J<(',4jjnS۪ Da <˫ Sū ,a (vLirȪ ,a ,irȪ ,a 4_Ȫ ,a jirȪ ,a j""&0n(0hh' '' pirȪ ,a (irȪ ,a 0 S5 ,a hirȪ ,a h"vL Q" $vL(vL,S۪ .,a $0<4 ,<n.xT۪ Da 0 S۪ Da <˫Sū ,a 4S۪ ,a .xT۪ Da ,S۪ Da <"˫&0' 0<, nSū ,a 0vL S۪ ,a T۪ Da 0S۪ Da <˫Sū ,a , S۪ ",a $&,<(',4ffpT۪ Da ,S۪ Da < ˫Sū ,a (vLirȪ ,a ,irȪ ,a 4_Ȫ ,a f"irȪ $,a f0(0dd' 'n" irȪ ,a (irȪ ,a 0S5 ,a dirȪ ,a d" "vL&Q( *vL.2*.'r:irȪ Da . g""$"girȪ Da g ""yg&!(vL,.:0irȪ.X''ln Da g ! vLirȪ ,a "{:(#vLS۪ ,a "$ū &Da l(*,,'d$n:irȪ Da  g!QvLS۪ ,a ū Da d"$&Q($*4 p:S;  girȪ Da gS; "g&irȪ (Da *g.!0s2 8''(ttrvLs  vL^vLOqvLvL"$:&irȪ (Da *g.""0$"24g0tZpirȪ Da g !vL""ū Da Z :"S;&(*g.irȪ4:\tr Da g S;girȪ Da g! s"\$vL(irȪ *,a ,"0{:(#2S۪0jdzZtp ,a ū Da d zQZvL:S; "$g(irȪ *Da ,g4t0uppS;  girȪ Da g!svL"vL&(:*irȪ ,Da p.g2!|}(QvL QvLt!a g S;girȪ Da g! s"\$vL(irȪ *,a ,"0{:(#2S۪0jdzZtp ,a ū Da d * :D {:(#h8 4 p  $(8t87 9)7 -   -z-j  1xsV@F @F 2v@yw:G  SOq( G hz G G m"TP\d.*Da ?; INKEY.MAC translated from John Clennance's Fortran-77 version ; by Nicholas Zymaris 8-JUL-84*; To call from Fortran: CALL INKEY (icode)=; where ICODE is the ASCII code of the character typed; orC; zero if no character typed, and negative if an error occurred. LUN=5 .MCALL QIO$,DIR$ IOSB: .BLKW 2 BUFF: .BLKB 25INIT: QIO$ 1392.,LUN,0,,IOSB,, ; 1392.=SF.GMC%READ: QIO$ 528.,LUN,1,,IOSB,,ICODE: .BLKW 1 INKEY:: CLR ICODE ; initialize MOVB #71,BUFF ; TC.TBF DIR$ #INIT ; call QIO& TSTB BUFF+1 ; Any characters typed? BEQ RET ; Return if not$ CLRB BUFF ; Get rid of the TC.TBF! DIR$ #READ ; Get one character' MOVB BUFF,ICODE ; And put it in ICODE TST ICODE ; Is it nonzero? BNE RET ; Return if so" CMP IOSB,#3329. ; Check for # BNE 1$ ; If not, go to next test$ MOV #13.,ICODE ; Put in ICODE BR RET ; And return 1$: TST IOSB BNE 2$" MOV #21.,ICODE ; Put ^U in ICODE BR RET ; Return(2$: CMP IOSB,#246. ; Check for EOF (^Z) BNE 3$ ; If not, go on( MOV #26.,ICODE ; Put the ^Z into ICODE BR RET ; Return3$: CMP IOSB,#6913. BNE RET MOV #27.,ICODE:RET: MOV ICODE,@2(R5) ; Put ICODE where caller expects it RTS PC ; Return .END2************************************************** 1) DZ1:[USERFILES]INKEY.MAC;1 1 .TITLE INKEY 2 .IDENT /V2.00/ 3 ; 4 ; INKEY.MAC" 5 ; by Tim Dalton'88 S.I.T.$ 6 ; Assumes terminal is LUN 5 7 ;2 8 ; To Call from fortran use the folowing : 9 ; CHARACTER*1 ICODE 10 ; EXTERNAL INKEY 11 ; .... 12 ; CALL INKEY(ICODE) 13 ;2 14 ; To Call from pascal use the following :' 15 ; VAR Icode : [External] Char;D 16 ; [EXTERNAL(INKEY)] PROCEDURE Inkey(VAR Icode:Char); SEQ11; 17 ; ..... 18 ; Call Inkey(Icode); 19 ;N 20 ; This returns a character value but since it is between 0 and 225 it7 21 ; should work with a byte declaration (0..255) 22 ;: 23 ; To link in, add the following to your ODL file,- 24 ; 1. To the .root Line add -SY:INKEY9 25 ; 2. Or include in the proper overlay structure. 26 ;D 27 ; Known Bugs: Not all control Characters are read corectly.T 28 ; Most noteably, CTRL C (Abort task), CTRL Q and CTRL S (Stop/start screen)5 29 ; This can be fixed with the following code: 30 ; 31 ; .TITLE SETTER 32 ; .MCALL QIOW$S 33 ;IOSB: .BLKW 2 34 ;BUFF: .BLKB 2 35 ;# 36 ;SETTER::MOVB #TC.BIN,BUFF 37 ; MOVB #1,2 38 ; QIOW$S #SF.SMC,#5,#2,,#IOSB,,<#BUFF,#2> 39 ; RTS PC 40 ; .END 41 ;T 42 ; This small program should be MACROed and then linked into the other prog.F 43 ; Or the qio can be translated into your high level language.W 44 ; NOTE... Setting TC.BIN to 1 has the side effect of disabeling all processingN 45 ; of ctrl chars by TFW, this means that CTRL-C will not abort a task.1 46 ; Also, CTRL S and CTRL Q qill not work.R 47 ; Another side effect is that input through the keyboard may not function0 48 ; Correctly in the high level language.R 49 ; So you must decide if it is worth getting those 3 or 4 extra crtl-charsQ 50 ; Versus the input problems. Macro programmers should be easily able to # 51 ; get around any problems. 52 ;- 53 ; Any Improvements made on this ????" 54 ; Let me know about them. 55 ; Thanks. 56 ;  57 ; Tim Dalton* 58 ; Stevens Institute of Technology 59 ; Box S-323 60 ; Castle Point Station 61 ; Hoboken, NJ 62 ; 07030 63 ; 64  65 .MCALL QIOW$S 66 .PSECT IKDATA 67 IOSB: .BLKW 2 68 BUFF: .BLKB 2 69 ICODE:: .BLKB 1 70 .EVEN 71  72 .PSECT IKCODE7 73 INKEY:: MOV R5,-(SP) ; Save Arguement Address 74 ;. 75 MOVB #TC.BIN,BUFF ; Save Old TC.Bin 76 CLRB 1 77 QIOW$S #SF.GMC,#5,#1,,#IOSB,,<#BUFF,#2> 78 MOVB ,-(SP) 79 ; 80 CMP ,#1 81 BEQ 5$) 82 MOVB #TC.BIN,BUFF ; Set TC.Bin 83 MOVB #1,1 84 QIOW$S #SF.SMC,#5,#1,,#IOSB,,<#BUFF,#2> 85  86 5$: CLRB ICODE= 87 MOVB #TC.TBF,BUFF ; Read Type Ahead buffer length. 88 CLRB BUFF+12 89 QIOW$S #SF.GMC,#5,#1,,#IOSB,,<#BUFF,#2>/ 90 TSTB BUFF+1 ; Any characters typed?# 91 BEQ RET ; Return if not- 92 CLRB BUFF ; Get rid of the TC.TBF8 93 QIOW$S #IO.RNE,#5,#1,,#IOSB,,<#BUFF,#1>0 94 MOVB BUFF,ICODE ; And put it in ICODE' 95 TSTB ICODE ; Is it nonzero?" 96 BNE RET ; Return if so 97 + 98 CMP IOSB,#3329. ; Check for , 99 BNE 1$ ; If not, go to next test. 100 MOVB #13.,ICODE ; Put in ICODE 101 BR RET ; And return 102  103 1$: TST IOSB 104 BNE 2$, 105 MOVB #21.,ICODE ; Put ^U in ICODE 106 BR RET ; Return 107 1 108 2$: CMP IOSB,#246. ; Check for EOF (^Z)" 109 BNE 3$ ; If not, go on2 110 MOVB #26.,ICODE ; Put the ^Z into ICODE 111 BR RET ; Return 112  113 3$: CMP IOSB,#6913. 114 BNE RET 115 MOVB #27.,ICODE 116 D 117 RET: MOVB (SP)+, ; Reset TC.BIN to original value. 118 MOVB #TC.BIN,BUFF1 119 QIOW$S #SF.SMC,#5,#1,,#IOSB,,<#BUFF,#2> 120 4 121 MOV (SP)+,R5 ; Restore Arguement Address.@ 122 MOVB ICODE,@2(R5) ; Put ICODE where caller expects it 123 RTS PC ; Return 124 .END 125 *************** 2) DZ2:[2,3]INKEY.MAC;1G 1 ; INKEY.MAC translated from John Clennance's Fortran-77 version( 2 ; by Nicholas Zymaris 8-JUL-84 3 2 4 ; To call from Fortran: CALL INKEY (icode) 5 E 6 ; where ICODE is the ASCII code of the character typed; orK 7 ; zero if no character typed, and negative if an error occurred. 8  9 LUN=5 10  11 .MCALL QIO$,DIR$ 12 IOSB: .BLKW 2 13 BUFF: .BLKB 2= 14 INIT: QIO$ 1392.,LUN,0,,IOSB,, ; 1392.=SF.GMC- 15 READ: QIO$ 528.,LUN,1,,IOSB,, 16 ICODE: .BLKW 1 17 ( 18 INKEY:: CLR ICODE ; initialize 19 MOVB #71,BUFF ; TC.TBF 20 DIR$ #INIT ; call QIO. 21 TSTB BUFF+1 ; Any characters typed?" 22 BEQ RET ; Return if not 23 , 24 CLRB BUFF ; Get rid of the TC.TBF) 25 DIR$ #READ ; Get one character/ 26 MOVB BUFF,ICODE ; And put it in ICODE% 27 TST ICODE ; Is it nonzero?! 28 BNE RET ; Return if so 29 * 30 CMP IOSB,#3329. ; Check for + 31 BNE 1$ ; If not, go to next test, 32 MOV #13.,ICODE ; Put in ICODE 33 BR RET ; And return 34  35 1$: TST IOSB 36 BNE 2$* 37 MOV #21.,ICODE ; Put ^U in ICODE 38 BR RET ; Return 39 0 40 2$: CMP IOSB,#246. ; Check for EOF (^Z)! 41 BNE 3$ ; If not, go on0 42 MOV #26.,ICODE ; Put the ^Z into ICODE 43 BR RET ; Return 44  45 3$: CMP IOSB,#6913. 46 BNE RET 47 MOV #27.,ICODE 48 B 49 RET: MOV ICODE,@2(R5) ; Put ICODE where caller expects it 50 RTS PC ; Return 51 .END 1 differences foundGDW1:[USERFILES]INKEY.DIF/BL/FF/-CB=[2,3]INKEY.MAC,DZ2:[DECOMP]INKEY.MACu~,?;?;eVdx T( T kf[q Tr[q S!SYSYSYSYTISYSYSYSYSYSYSYTITISYOVT2 6:: p 7 9 )7" -   -z-j,w0wzwrDwj4wbwZ(wRHwJP TX`dw*8w"w<whlw w\wLw@www Jf&.0&*"e.30*"e &.0 %0\wd4 5ae x  ^%6U^  p5 ^U ^bpXp[w\w ^+5^ 5^#X Bf* ,0  5` `wj##!"&& @ &&  6  #,A zԄӄzԎӔzzxxժxժxժxժxd e\\ \S\ e& @ ӪeeE%,χ\e,f& \:יc&>X4%]@*f=eBC r<mm Е: Е O*ff=eCEB ae$f r  eCeF eeeA 0 BB` $Е-PPPЕ-  *wD r e0e0АAMPM JanFebMarAprMayJunJulAugSepOctNovDecXXX? *\ *b 5h Ew$ $ "0$%*ew|*b*&^\*^ A@*0H\*5& w0 H\ 5 >\   *l עע   ע 5*!&$fl!*U& &)E\&sf& *"ePBe  ~PpT585p\u7  UU uP5`wJ&& nC`  *e,u0B~  & SY&& $C`  C0Cm0.u1B~ 5 %% %%4ae*45"p(3  R 0% w,U5@`w45`  |**U 5 * kU`cB aeR`5`O55[B4BS%)%!F%=%4&8u5 B" B B *A6Erff w f\U ` E5`  U`~   U`p(05@^HfUpV5@^ BP b݅ E @  epeE%6 5*B( 1 (&44e`U¥E5U562  6 A25`.6+B +(565`U`^E`U` wjA2pV BAp$w0  ww w @1f*E5@U"B"e 5 ! ZeXev sXw ZeE D` bl lrw   B eE"s    s-  Cslw  wwB&*&e& <5 ACCl  rf*e @eEf "*p`E  B~ *U@eB B  ZB B f &~Wtu` B " b &wpe? WtE & fYf&B f ##! B EB BH#*u &*5@U@ &*E@E &f &f    p!$h!w$4 #H!D!C3 3  ,, UEs3w#8 &f8 B * ͋'% ͥ!ͥE%,  K5  PB2 %pˋ5J J J @ EͥAA I >0;T2(6)Jf+f+4*11TIMECL ( $8p1V8pt1Vh8Vf1V8ph8V>1V(8p1V8p1V81ڰ211&8p0V" "D58p0V781ڰ8p0V:D <8ph8Vj0Vh8Vd0V>8pp0V88V>0V8p1V8p\0V?8pL0V8^8VF0VA8p,0V1VF0VD8p/VE8p/VF8p/VG88D*8&1D*8&`b Ք*H881Ԕ*+ ƈI8p1V8p1V8p1Vh8VK*<,*T+&nP8p/V"vdH+*8+*+*+"0df8ph/V8ph8Vg8p^/Vi*<,*h11X/1R/ ƾH+*8ph8Vj0Vh8Vd0V kH+*8+*+*+"kk+*+8+*kn8p,/V8ph8Vn+*+8+*nxl/18ph8Vj0Vh8Vd0V 8ph8Vj0Vh8Vd0V8p>0V#^8V.V8p\0V8ph8Vj0Vh8Vd0V8p.V8ph8VH+*8+*+*+P"h+*+P8+*8ph8Vj0Vh8Vd0V ,68pz.V; 8p1V@81ڰJ1NT+8p\.V" TD 8p1V"ƠҐҚl118p@.VҤD Ү 8p.V 8p1V8p-V81ڰ8p-V Xbl118p@.VgD t 8p-V"ƪD F v 8p-VҀ 8p-Vҁ 8p-VҊ 8pp-VҔ 8p>-VҞ 8p-VҨ 8p,Vҭ 8p,VҲ 8p,VҼ  8p,V  *<,*h1*&"ƪ ,1DzT<Հ*+Ӏ*Բ+<Հ*Ԁ*+& Հ*(F Ҡ"Zfb+N<`+Ҡb+Ԥ `+b+`+ҢZ^+^+1+>+ B+B+PF+F+10+0+J2+2+4+4+1Ҧ+Ԧ+<&+&+Hժ+*+*+.+.+1 ++Hժ+ + +$+$+1ҨJ++++1++++~++++1 + +++1Ҫ++++~++ + +1<++++1 '8p\,V'>'' 8p1V'H+|*H|*x*''Hբ+** **J**1Hբ+** ****1'h**Hբ+**Hբ+**'**1''՞+jղ+՞+jղ+Ԛ+'N*+Ɛ#8Ԛ+N*@'1*1B'1&<|*D'|*x*#".%F'H'~+jN*z+j|*Ԛ+*\'^'՞+j>*v+<>*`'b'>*jn+բ+<:*d'>*jn+բ+<6*f'h'Hբ+**Hբ+**J**16*:***1j'H|*x*l'"Ơ"n'p'j+, **F**1r'Hբ+**Hբ+**J**1B*F***1t'Hբ+**Hբ+**J**16*:***1v'ն+, **F**1x'x*+x*+`&&"ƨ&z'|'>*jՊ+բ+*jՒ+բ+*jՊ+բ+<`*>*jՒ+բ+<\*Ҁ'`*h*J**1\*d***1҂'"#҄'҆'>*jՖ+բ+*jՒ+բ+*jՖ+բ+<`*>*jՒ+բ+<\*Ҋ'`*h*J**1\*d***1Ҍ'"#'8p/V8V8,VҮ'8p ,V'4*<',4*T+&Ƭ'8p2,V"'',4*T+&'">'8ph8Vj0Vh8Vd0V" '"'' (( tt8p>0V8V+VtTf+&t(8ph8Vj0Vh8Vd0V"vtR*<,R*T+&Ɣ("t(t8ph8Vj0Vh8Vd0V"t0u8p+V"(|"(}H2NF:N  V\D zZD>``)P *SY:$  0*$$*CB?H?4DABCC?GpC?ff?@BIA@B= ?AADF`DBA@B++ Type any key to continue,$Press to return to main clock.6,c<, at line J, Alarm time: Z, `,0[?25lPress to return to main clock.,eEsScCiIdDaArR,, Return to clock,1m Analogm clock display,& Delete user-inserted message"- Insert new messageB-. Clear "Someone overslept..." messaget- Set alarm- Exit to monitor-%Type the first letter of your choice.---Message recorded.-MSG> .<Type in the message when prompted by the MSG> prompt.D.Message deleted.`.Invalid alarm time~.9Enter new alarm time. Format is "hh:mm" (2 digits each)..' Returning to Main Menu Absurdity... .+Set-up Menu /Someone overslept...0/!A L A R M I S S O U N D I N GV/I\/ib/l/(A L A R M I S S O U N D I N G//  3./>To set up or exit, press , which on the PC350 is Ctrl/8To turn off alarm when it rings (beeps), press I.00Alarm time is B0J0.P0 The date is `0h0[Jn0[Ht0The correct time is: 0Thank you!0?(If you use improper format, the alarm will not go off).0%Enter 24-hr. alarm time, format hh:mm1y1Do you want to set alarm? [Y/N]B1#[m. This will rarely be necessary.j1 [7mSet-upx1(To set time, go to Main Menu then press 1'&1 <9 495ew , Bv    5Bw JNRZ ^t(25 7:<<D>v?ADEF G2HbIKPdfg>iPknx4n2,6;@JT 8@FJ\tXbgtD F v    $ 6 H Z l ~      $Zf' '( '0 'H 'X '\ ' ' ' '!"'@!$'l!&'!('!*'!,'!.'&"0'R"2'"4'"5'"6' #7',#8'V#:'Z#<'n#>'|#@'#B'#D'#F'#H'#J'#L'#N'$P'$R'$T'4$V'8$X'v$Z'z$\'$^'$`'$b'$d'$f'$h'$j'%l'"%n'*%p'.%r'R%t'%v'%x'%z'&|'&~'B&'n&'&'&'&'&'''6''>''h''z'''''''''((t (t(t2(tt(t(t(0u(|(}(1 5  .5.UW   ,   wE5 E  W LJ5  ,E 916t52)aw 6  w 4, e 1 w t5E U &W 96 3  4 &9U &9E &9U3uE uU.5`.U & E& & f&ËDef Ë )̋E U&ff r[qr[qkf[qkf[q((VdxVdx6781111889:9r@&99J9IqM::@989IqMN:@9&9IqMb:99U(Uv:n9:93gJ 9\9n9\}`: n99K}:# n99q 5:9:\9(>99%@:#99ZK:;95r;9U,@:9Vdx:9:rT,`$:6t5$: 6t5T2t5t5t587777777777SET NO DOUBLE J3 REM ***By Nick Zymaris Oct. 1983. Some lines after 3140 copied/modifiedA4 REM by me (in EDT as well as Pro/Basic) for use in the menu.5 ON ERROR GOTO 2990087 REM combined with CLOCK.BAS (line 10000) 9-Dec-83 A.M. 10 CLEAR I20 PRINT "To set time, go to Main Menu then press ";CHR$(27);"[7mSet-up";730 PRINT CHR$(27);"[m. This will rarely be necessary."<40 PRINT \ PRINT "Do you want to set alarm? [Y/N]"\ INPUT A$G50 IF A$='y' THEN PRINT 'Enter 24-hr. alarm time, format hh:mm' ELSE 60UJ53 PRINT '(If you use improper format, the alarm will not go off).''55 INPUT ALARM$\ PRINT 'Thank you!'r58 FOR T=1 TO 1000\ NEXT T 60 CLEAR RL62 PRINT 'The correct time is: ';TIME$(0);''\ PRINT \ PRINT ''%63 PRINT 'The date is ';DATE$(0%);'.'i$65 PRINT 'Alarm time is ';ALARM$;'.'C68 PRINT 'To turn off alarm when it rings (beeps), press I.'IJ69 PRINT 'To set up or exit, press , which on the PC350 is Ctrl';70 PRINT ' 3.'A71 IF VAL(MID$(TIME$(0),5,1))<>VAL(MID$(ALARM$,5,1)) THEN ALOFF=0a072 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100073 PRINT \ PRINT SLEEP$\ PRINT MESSAGE$;CHR$(15)I75 CALL INKEY (S$)\ IF S$=CHR$(27) THEN GOSUB 200\ REM setup/exit routineP79 FOR T=1 TO 314\ NEXT TT80 PRINT '';\ GOTO 62$100 FOR C=1 TO 31\ REM alarm routineF102 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);103 PRINT '';uF105 CALL INKEY (S$)\ IF S$='i' OR S$='I' THEN ALOFF=1\ CLEAR \ RETURN 107 FOR T1=1 TO 314\ NEXT T1G110 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);\ NEXT CN2120 SLEEP$='Someone overslept...'\ CLEAR \ RETURN O200 CLEAR \ PRINT '';TAB(35);'Set-up Menu ';t210 PRINT ''220 GOSUB 3140230 FOR T=1 TO 1000\ NEXT TG<270 CLEAR \ PRINT ' Returning to Main Menu Absurdity... ';9275 PRINT CHR$(15);\ REM 'Chinese' character set disabled ,280 FOR T=1 TO 3142\ NEXT T\ CLEAR \ RETURN 300 REM set alarmLF310 PRINT 'Enter new alarm time. Format is "hh:mm" (2 digits each).';#315 FOR T=1 TO 3142\ NEXT T\ PRINT R320 INPUT ALARM$K330 IF LEN(ALARM$)<>5 THEN PRINT 'Invalid alarm time'; ELSE RETURN T-340 FOR T=1 TO 1000\ NEXT T\ PRINT \ GOTO 310 (400 REM clear oversleep message (sleep$)/410 SLEEP$=''\ PRINT 'Message deleted.'; 420 FOR T=1 TO 1000\ NEXT Ti 430 RETURN 7500 REM insert messageI510 PRINT 'Type in the message when prompted by the MSG> prompt.';R#515 FOR T=1 TO 3142\ NEXT T\ PRINT tK520 PRINT 'MSG> ';\ LINPUT #0,MESSAGE$\ PRINT 'Message recorded.';\ RETURN \600 REM delete message1610 MESSAGE$=''\ PRINT 'Message deleted.';n615 FOR T=1 TO 1000\ NEXT TE 628 RETURN O"1000 REM beep if wrong key pressed1010 PRINT '';\ GOTO 32903140 REM Set-up menu proper$3142 REM note this line number3190 PRINT ''O23200 PRINT 'Type the first letter of your choice.'(3201 PRINT ' Exit to Pro/Basic' 3210 PRINT ' Set alarm';3220 PRINT ' Clear "Someone overslept..." message'I)3230 PRINT ' Insert new message';33240 PRINT ' Delete user-inserted message'P(3245 PRINT '1m Analogm clock display'&3250 PRINT ' Return to clock'-3260 REM reset window\3270 PRINT ''+3280 REM input loop103290 CALL INKEY (STR$)\ IF LEN(STR$)=0 THEN 3290J3310 Q=POS('eEsScCiIdDaArR',STR$,1)\Q=INT((Q+1)/2)\ IF Q=0 THEN GOSUB 1000.3320 ON Q GOTO 30000,300,400,500,600,10000,628?10000 PRINT '[?25lTo exit: ^C ^3 (Interrupt-Do-Escape)'n10001 ON ERROR GOTO 10200[%10002 FOR M=1 TO 2718\ NEXT M\ CLEAR 10004 M=1\M1=M10006 REM DRAW CLOCK10008 PLOT (0,.5)[10010 PLOT ARC (.5,.5,360)310012 REM DRAW HOUR MARKS r$10014 FOR I=0 TO 2*PI STEP (2*PI)/12'10016 X1=.4*SIN(I)+.5\X2=.45*SIN(I)+.5 '10018 Y1=.4*COS(I)+.5\Y2=.45*COS(I)+.5S10020 PLOT (X1,Y1),(X2,Y2)1 10022 NEXT I(10024 REM DRAW MINUTE MARKS $10026 FOR I=0 TO 2*PI STEP (2*PI)/60(10028 X1=.44*SIN(I)+.5\X2=.45*SIN(I)+.5(10030 Y1=.44*COS(I)+.5\Y2=.45*COS(I)+.510032 PLOT (X1,Y1),(X2,Y2)R 10034 NEXT I10036 REM READ TIME=10037 PRINT '';DATE$(0);CHR$(13);' ';'Alarm time: ';ALARM$E10038 NOW$=TIME$(0%)?10039 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100\ GOTO 100061110040 REM FIND HOURS (H) AND MINUTES (M)C10042 H$=MID$(NOW$,1%,2%)10044 H=VAL(H$)110046 IF H>12 THEN H=H-12010048 M$=MID$(NOW$,4%,2%)E10050 M=VAL(M$) 10052 IF M<>M1 THEN 10096/210054 REM FIND HOUR HAND ANGLE FROM 12:0010056 HD=H*30+(M*6)/12+10058 REM CONVERT ANGLE TO RADIANS310060 HD=HD*PI/180+10062 REM FIND X AND Y COORDINATES)10064 HX=.3*SIN(HD)+.510066 HY=.3*COS(HD)+.5 10068 REM DRAW HOUR HAND10070 PLOT (.5,.5),(HX,HY)310072 REM FIND MINUTE HAND ANGLE FROM 12:00 10074 MD=M*6$10076 REM CONVERT TO RADIANS10078 MD=MD*PI/180*10080 REM FIND X AND Y COORDINATES10082 MX=.49*SIN(MD)+.5F10084 MY=.49*COS(MD)+.5 "10086 REM DRAW MINUTE HAND10088 PLOT (.5,.5),(MX,MY) 10090 M1=M10092 GOTO 10036%10094 REM REM ERASE OLD HANDS010096 SET WRITING MODE 810098 PLOT (.5,.5),(HX,HY)10100 PLOT (.5,.5),(MX,MY)10102 SET WRITING MODE 4"10104 IF M1/5=INT(M1/5) THEN 10116$10106 REM REDRAW MINUTE MARK)10108 X1=.44*SIN(MD)+.5\X2=.45*SIN(MD)+.5)10110 Y1=.44*COS(MD)+.5\Y2=.45*COS(MD)+.5 10112 PLOT (X1,Y1),(X2,Y2)10114 GOTO 10054"10116 REM REDRAW HOUR MARK(10118 X1=.4*SIN(MD)+.5\X2=.45*SIN(MD)+.5(10120 Y1=.4*COS(MD)+.5\Y2=.45*COS(MD)+.510122 PLOT (X1,Y1),(X2,Y2)10124 GOTO 1005410200 RESUME 10202+10202 PRINT '';ERT$(ERR);' at line ';ERLL210205 PRINT 'Press to return to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 10220R810210 IF LEN(CONT$)=0 THEN 10202 ELSE CLEAR \ GOTO 1000010220 ON ERROR GOTO 299002 10230 RETURN 29900 REM error-handling routine29905 RESUME 29910G29910 PRINT CHR$(13);'';ERT$(ERR);' Type any key to continue';0$29915 IF ERR=72 THEN CLEAR \ GOTO 62.29917 CALL INKEY (Q$)\ IF LEN(Q$)=0 THEN 2991729920 CLEAR \ GOTO 3190 29950 REM reset screen and end#30000 PRINT '';\ END ern to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 10220R810210 IF LEN(CONT$)=0 THEN 10202 ELSE CLEAR \ GOTO 1000010220 ON ERROR GOTO 299002 10230 RETURN 29900 REM error-handling routine29905 RESUME 29910G29910 PRINT CHR$(13);'';ERT$(ERR);' Type any key to continuSET NO DOUBLE J3 REM ***By Nick Zymaris Oct. 1983. Some lines after 3140 copied/modifiedA4 REM by me (in EDT as well as Pro/Basic) for use in the menu.5 ON ERROR GOTO 2990087 REM combined with CLOCK.BAS (line 10000) 9-Dec-83 A.M.>8 REM Y2K fixes 2-Jan-2000 (GOSUB 2000 makes a correct DATE$). 10 CLEAR I20 PRINT "To set time, go to Main Menu then press ";CHR$(27);"[7mSet-up";730 PRINT CHR$(27);"[m. This will rarely be necessary."<40 PRINT \ PRINT "Do you want to set alarm? [Y/N]"\ INPUT A$G50 IF A$='y' THEN PRINT 'Enter 24-hr. alarm time, format hh:mm' ELSE 600J53 PRINT '(If you use improper format, the alarm will not go off).''55 INPUT ALARM$\ PRINT 'Thank you!'o58 FOR T=1 TO 1000\ NEXT T 60 CLEAR cL62 PRINT 'The correct time is: ';TIME$(0);''\ PRINT \ PRINT ''-63 GOSUB 2000\ PRINT 'The date is ';DATE$;'.'t$65 PRINT 'Alarm time is ';ALARM$;'.'C68 PRINT 'To turn off alarm when it rings (beeps), press I.'IJ69 PRINT 'To set up or exit, press , which on the PC350 is Ctrl';70 PRINT ' 3.'A71 IF VAL(MID$(TIME$(0),5,1))<>VAL(MID$(ALARM$,5,1)) THEN ALOFF=0a072 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100073 PRINT \ PRINT SLEEP$\ PRINT MESSAGE$;CHR$(15)I75 CALL INKEY (S$)\ IF S$=CHR$(27) THEN GOSUB 200\ REM setup/exit routineP79 FOR T=1 TO 314\ NEXT TP80 PRINT '';\ GOTO 62$100 FOR C=1 TO 31\ REM alarm routineF102 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);103 PRINT '';uF105 CALL INKEY (S$)\ IF S$='i' OR S$='I' THEN ALOFF=1\ CLEAR \ RETURN 107 FOR T1=1 TO 314\ NEXT T1G110 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);\ NEXT CN2120 SLEEP$='Someone overslept...'\ CLEAR \ RETURN O200 CLEAR \ PRINT '';TAB(35);'Set-up Menu ';t210 PRINT ''220 GOSUB 3140230 FOR T=1 TO 1000\ NEXT TG<270 CLEAR \ PRINT ' Returning to Main Menu Absurdity... ';9275 PRINT CHR$(15);\ REM 'Chinese' character set disabled ,280 FOR T=1 TO 3142\ NEXT T\ CLEAR \ RETURN 300 REM set alarmLF310 PRINT 'Enter new alarm time. Format is "hh:mm" (2 digits each).';#315 FOR T=1 TO 3142\ NEXT T\ PRINT R320 INPUT ALARM$K330 IF LEN(ALARM$)<>5 THEN PRINT 'Invalid alarm time'; ELSE RETURN T-340 FOR T=1 TO 1000\ NEXT T\ PRINT \ GOTO 310 (400 REM clear oversleep message (sleep$)/410 SLEEP$=''\ PRINT 'Message deleted.'; 420 FOR T=1 TO 1000\ NEXT Ti 430 RETURN 7500 REM insert messageI510 PRINT 'Type in the message when prompted by the MSG> prompt.';R#515 FOR T=1 TO 3142\ NEXT T\ PRINT tK520 PRINT 'MSG> ';\ LINPUT #0,MESSAGE$\ PRINT 'Message recorded.';\ RETURN \600 REM delete message1610 MESSAGE$=''\ PRINT 'Message deleted.';n615 FOR T=1 TO 1000\ NEXT TE 628 RETURN O"1000 REM beep if wrong key pressed1010 PRINT '';\ GOTO 329042000 REM Y2K routine - use DATE$ instead of DATE$(0)m2010 IF MID$(DATE$(0%),8,1)=":" THEN DATE$=MID$(DATE$(0%),1,7)+"200"+MID$(DATE$(0%),9,1) ELSE DATE$=DATE$(0%)a 2020 RETURN 3140 REM Set-up menu proper'3142 REM note this line number3190 PRINT ''M23200 PRINT 'Type the first letter of your choice.'(3201 PRINT ' Exit to Pro/Basic' 3210 PRINT ' Set alarm';3220 PRINT ' Clear "Someone overslept..." message'0)3230 PRINT ' Insert new message''33240 PRINT ' Delete user-inserted message'e(3245 PRINT '1m Analogm clock display'&3250 PRINT ' Return to clock'-3260 REM reset window03270 PRINT ''+3280 REM input loop103290 CALL INKEY (STR$)\ IF LEN(STR$)=0 THEN 3290J3310 Q=POS('eEsScCiIdDaArR',STR$,1)\Q=INT((Q+1)/2)\ IF Q=0 THEN GOSUB 1000.3320 ON Q GOTO 30000,300,400,500,600,10000,628?10000 PRINT '[?25lTo exit: ^C ^3 (Interrupt-Do-Escape)'n10001 ON ERROR GOTO 10200[%10002 FOR M=1 TO 2718\ NEXT M\ CLEAR 10004 M=1\M1=M10006 REM DRAW CLOCK10008 PLOT (0,.5)[10010 PLOT ARC (.5,.5,360)310012 REM DRAW HOUR MARKS r$10014 FOR I=0 TO 2*PI STEP (2*PI)/12'10016 X1=.4*SIN(I)+.5\X2=.45*SIN(I)+.5 '10018 Y1=.4*COS(I)+.5\Y2=.45*COS(I)+.5S10020 PLOT (X1,Y1),(X2,Y2)1 10022 NEXT I(10024 REM DRAW MINUTE MARKS $10026 FOR I=0 TO 2*PI STEP (2*PI)/60(10028 X1=.44*SIN(I)+.5\X2=.45*SIN(I)+.5(10030 Y1=.44*COS(I)+.5\Y2=.45*COS(I)+.510032 PLOT (X1,Y1),(X2,Y2)R 10034 NEXT I10036 REM READ TIMEF10037 GOSUB 2000\ PRINT '';DATE$;CHR$(13);' ';'Alarm time: ';ALARM$10038 NOW$=TIME$(0%)?10039 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100\ GOTO 100064110040 REM FIND HOURS (H) AND MINUTES (M)510042 H$=MID$(NOW$,1%,2%)P10044 H=VAL(H$)210046 IF H>12 THEN H=H-12 10048 M$=MID$(NOW$,4%,2%) 10050 M=VAL(M$) 10052 IF M<>M1 THEN 100962210054 REM FIND HOUR HAND ANGLE FROM 12:0010056 HD=H*30+(M*6)/12+10058 REM CONVERT ANGLE TO RADIANSI10060 HD=HD*PI/180+10062 REM FIND X AND Y COORDINATESE10064 HX=.3*SIN(HD)+.510066 HY=.3*COS(HD)+.5 10068 REM DRAW HOUR HAND1007..L`}4Ԁ15JAN:114543714JAN:1232457m./O u~C^ 09OCT8411203509OCT84111636 8U.0OQz20APR8514113920APR85141137E;.1{:<#ykQ15JAN:114551314JAN:1224130u.2pu~X^ N15JAN:115585315JAN:1152906X.3&u~X^15JAN:115585325SEP84163241'.4#u~X^l^15JAN:115585325SEP84194627\.5~== u~X^^15JAN:115585315JAN:1153729<.6Pu~X^15JAN:115585315JAN:11537037 .7Dy kQ15JAN:116045815JAN:1145652.8'u~L"15JAN:116045815JAN:1150326.9+u~L"l^15JAN:116045815JAN:1150422fc.:Ou~X^v:15JAN:120370415JAN:1180700#.;C, xQ15JAN:120384515JAN:1200835L .<C, xQ15JAN:120384515JAN:1200914(.=O [qj$'l15JAN:120384515JAN:1201051 g.>Oh[qj'l15JAN:120384515JAN:1201936.?Ou~E$15JAN:120483315JAN:1204833 ).f 8@17FEB:116440017FEB:1164340mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm0 PLOT (.5,.5),(HX,HY)310072 REM FIND MINUTE HAND ANGLE FROM 12:00 10074 MD=M*6$10076 REM CONVERT TO RADIANS10078 MD=MD*PI/180*10080 REM FIND X AND Y COORDINATES10082 MX=.49*SIN(MD)+.5F10084 MY=.49*COS(MD)+.5 "10086 REM DRAW MINUTE HAND10088 PLOT (.5,.5),(MX,MY) 10090 M1=M10092 GOTO 10036%10094 REM REM ERASE OLD HANDS010096 SET WRITING MODE 810098 PLOT (.5,.5),(HX,HY)10100 PLOT (.5,.5),(MX,MY)10102 SET WRITING MODE 4"10104 IF M1/5=INT(M1/5) THEN 10116$10106 REM REDRAW MINUTE MARK)10108 X1=.44*SIN(MD)+.5\X2=.45*SIN(MD)+.5)10110 Y1=.44*COS(MD)+.5\Y2=.45*COS(MD)+.5 10112 PLOT (X1,Y1),(X2,Y2)10114 GOTO 10054"10116 REM REDRAW HOUR MARK(10118 X1=.4*SIN(MD)+.5\X2=.45*SIN(MD)+.5(10120 Y1=.4*COS(MD)+.5\Y2=.45*COS(MD)+.510122 PLOT (X1,Y1),(X2,Y2)10124 GOTO 1005410200 RESUME 10202+10202 PRINT '';ERT$(ERR);' at line ';ERLL210205 PRINT 'Press to return to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 10220R810210 IF LEN(CONT$)=0 THEN 10202 ELSE CLEAR \ GOTO 1000010220 ON ERROR GOTO 299002 10230 RETURN 29900 REM error-handling routine29905 RESUME 29910G29910 PRINT CHR$(13);'';ERT$(ERR);' Type any key to continue';0$29915 IF ERR=72 THEN CLEAR \ GOTO 62.29917 CALL INKEY (Q$)\ IF LEN(Q$)=0 THEN 2991729920 CLEAR \ GOTO 3190 29950 REM reset screen and end#30000 PRINT '';\ END ern to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHRSET NO DOUBLE J3 REM ***By Nick Zymaris Oct. 1983. Some lines after 3140 copied/modifiedA4 REM by me (in EDT as well as Pro/Basic) for use in the menu.N5 ON ERROR GOTO 29900D87 REM combined with CLOCK.BAS (line 10000) 9-Dec-83 A.M.8 REM Y2K fixes 2-Jan-2000.c 10 CLEAR 2I20 PRINT "To set time, go to Main Menu then press ";CHR$(27);"[7mSet-up";R730 PRINT CHR$(27);"[m. This will rarely be necessary."u<40 PRINT \ PRINT "Do you want to set alarm? [Y/N]"\ INPUT A$G50 IF A$='y' THEN PRINT 'Enter 24-hr. alarm time, format hh:mm' ELSE 60sJ53 PRINT '(If you use improper format, the alarm will not go off).''55 INPUT ALARM$\ PRINT 'Thank you!'N58 FOR T=1 TO 1000\ NEXT T 60 CLEAR dM62 PRINT 'The correct time is: ';TIME$(0);''\ PRINT \ PRINT '' E,63 gosub 2000\PRINT 'The date is ';DATE$;'.'$65 PRINT 'Alarm time is ';ALARM$;'.'C68 PRINT 'To turn off alarm when it rings (beeps), press I.'IJ69 PRINT 'To set up or exit, press , which on the PC350 is Ctrl';70 PRINT ' 3.'A71 IF VAL(MID$(TIME$(0),5,1))<>VAL(MID$(ALARM$,5,1)) THEN ALOFF=0a072 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100073 PRINT \ PRINT SLEEP$\ PRINT MESSAGE$;CHR$(15)I75 CALL INKEY (S$)\ IF S$=CHR$(27) THEN GOSUB 200\ REM setup/exit routineP79 FOR T=1 TO 314\ NEXT T\80 PRINT '';\ GOTO 62$100 FOR C=1 TO 31\ REM alarm routineF102 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);103 PRINT '';uF105 CALL INKEY (S$)\ IF S$='i' OR S$='I' THEN ALOFF=1\ CLEAR \ RETURN 107 FOR T1=1 TO 314\ NEXT T1G110 PRINT 'A L A R M I S S O U N D I N G'\ PRINT CHR$(141);\ NEXT CN2120 SLEEP$='Someone overslept...'\ CLEAR \ RETURN O200 CLEAR \ PRINT '';TAB(35);'Set-up Menu ';t210 PRINT ''220 GOSUB 3140230 FOR T=1 TO 1000\ NEXT TG<270 CLEAR \ PRINT ' Returning to Main Menu Absurdity... ';9275 PRINT CHR$(15);\ REM 'Chinese' character set disabled ,280 FOR T=1 TO 3142\ NEXT T\ CLEAR \ RETURN 300 REM set alarmLF310 PRINT 'Enter new alarm time. Format is "hh:mm" (2 digits each).';#315 FOR T=1 TO 3142\ NEXT T\ PRINT R320 INPUT ALARM$K330 IF LEN(ALARM$)<>5 THEN PRINT 'Invalid alarm time'; ELSE RETURN T-340 FOR T=1 TO 1000\ NEXT T\ PRINT \ GOTO 310 (400 REM clear oversleep message (sleep$)/410 SLEEP$=''\ PRINT 'Message deleted.'; 420 FOR T=1 TO 1000\ NEXT Ti 430 RETURN 7500 REM insert messageI510 PRINT 'Type in the message when prompted by the MSG> prompt.';R#515 FOR T=1 TO 3142\ NEXT T\ PRINT tK520 PRINT 'MSG> ';\ LINPUT #0,MESSAGE$\ PRINT 'Message recorded.';\ RETURN \600 REM delete message1610 MESSAGE$=''\ PRINT 'Message deleted.';n615 FOR T=1 TO 1000\ NEXT TE 628 RETURN O"1000 REM beep if wrong key pressed1010 PRINT '';\ GOTO 329042000 REM Y2K routine - use DATE$ instead of DATE$(0)m2010 if mid$(date$(0%),8,1)=":" then date$=mid$(date$(0%),1,7)+"200"+mid$(date$(0%),9,1) else date$=date$(0%)a 2020 returnt3140 REM Set-up menu proper'3142 REM note this line number3190 PRINT ''M23200 PRINT 'Type the first letter of your choice.'(3201 PRINT ' Exit to Pro/Basic' 3210 PRINT ' Set alarm';3220 PRINT ' Clear "Someone overslept..." message'0)3230 PRINT ' Insert new message''33240 PRINT ' Delete user-inserted message'e(3245 PRINT '1m Analogm clock display'&3250 PRINT ' Return to clock'-3260 REM reset window03270 PRINT ''+3280 REM input loop103290 CALL INKEY (STR$)\ IF LEN(STR$)=0 THEN 3290J3310 Q=POS('eEsScCiIdDaArR',STR$,1)\Q=INT((Q+1)/2)\ IF Q=0 THEN GOSUB 1000.3320 ON Q GOTO 30000,300,400,500,600,10000,628?10000 PRINT '[?25lTo exit: ^C ^3 (Interrupt-Do-Escape)'n10001 ON ERROR GOTO 10200[%10002 FOR M=1 TO 2718\ NEXT M\ CLEAR 10004 M=1\M1=M10006 REM DRAW CLOCK10008 PLOT (0,.5)[10010 PLOT ARC (.5,.5,360)310012 REM DRAW HOUR MARKS r$10014 FOR I=0 TO 2*PI STEP (2*PI)/12'10016 X1=.4*SIN(I)+.5\X2=.45*SIN(I)+.5 '10018 Y1=.4*COS(I)+.5\Y2=.45*COS(I)+.5S10020 PLOT (X1,Y1),(X2,Y2)1 10022 NEXT I(10024 REM DRAW MINUTE MARKS $10026 FOR I=0 TO 2*PI STEP (2*PI)/60(10028 X1=.44*SIN(I)+.5\X2=.45*SIN(I)+.5(10030 Y1=.44*COS(I)+.5\Y2=.45*COS(I)+.510032 PLOT (X1,Y1),(X2,Y2)R 10034 NEXT I10036 REM READ TIME=10037 PRINT '';DATE$(0);CHR$(13);' ';'Alarm time: ';ALARM$E10038 NOW$=TIME$(0%)?10039 IF TIME$(0)=ALARM$ AND ALOFF=0 THEN GOSUB 100\ GOTO 100061110040 REM FIND HOURS (H) AND MINUTES (M)C10042 H$=MID$(NOW$,1%,2%)10044 H=VAL(H$)110046 IF H>12 THEN H=H-12010048 M$=MID$(NOW$,4%,2%)E10050 M=VAL(M$) 10052 IF M<>M1 THEN 10096/210054 REM FIND HOUR HAND ANGLE FROM 12:0010056 HD=H*30+(M*6)/12+10058 REM CONVERT ANGLE TO RADIANS310060 HD=HD*PI/180+10062 REM FIND X AND Y COORDINATES)10064 HX=.3*SIN(HD)+.510066 HY=.3*COS(HD)+.5 10068 REM DRAW HOUR HAND10070 PLOT (.5,.5),(HX,HY)310072 REM FIND MINUTE HAND ANGLE FROM 12:00 10074 MD=M*6$10076 REM CONVERT TO RADIANS10078 MD=MD*PI/180*10080 REM FIND X AND Y COORDINATES10082 MX=.49*SIN(MD)+.5F10084 MY=.49*COS(MD)+.5 "10086 REM DRAW MINUTE HAND10088 PLOT (.5,.5),(MX,MY) 10090 M1=M10092 GOTO 10036%10094 REM REM ERASE OLD HANDS010096 SET WRITING MODE 810098 PLOT (.5,.5),(HX,HY)10100 PLOT (.5,.5),(MX,MY)10102 SET WRITING MODE 4"10104 IF M1/5=INT(M1/5) THEN 10116$10106 REM REDRAW MINUTE MARK)10108 X1=.44*SIN(MD)+.5\X2=.45*SIN(MD)+.5)10110 Y1=.44*COS(MD)+.5\Y2=.45*COS(MD)+.5 10112 PLOT (X1,Y1),(X2,Y2)10114 GOTO 10054"10116 REM REDRAW HOUR MARK(10118 X1=.4*SIN(MD)+.5\X2=.45*SIN(MD)+.5(10120 Y1=.4*COS(MD)+.5\Y2=.45*COS(MD)+.510122 PLOT (X1,Y1),(X2,Y2)10124 GOTO 1005410200 RESUME 10202+10202 PRINT '';ERT$(ERR);' at line ';ERLL210205 PRINT 'Press to return to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 10220R810210 IF LEN(CONT$)=0 THEN 10202 ELSE CLEAR \ GOTO 1000010220 ON ERROR GOTO 299002 10230 RETURN 29900 REM error-handling routine29905 RESUME 29910G29910 PRINT CHR$(13);'';ERT$(ERR);' Type any key to continue';0$29915 IF ERR=72 THEN CLEAR \ GOTO 62.29917 CALL INKEY (Q$)\ IF LEN(Q$)=0 THEN 2991729920 CLEAR \ GOTO 3190 29950 REM reset screen and end#30000 PRINT '';\ END eturn to main clock.'10206 CALL INKEY (CONT$)310207 IF CONT$=CHR$(27) THEN PRINT 'c'\ GOTO 10220R810210 - Directory DW1:[USERFILES] 14-JAN-01 18:43  TIMECLOC2.BAS;1 P(1512,70) 13./13. 02-JAN-2000 16:10[200,200][RWED,RWED,RWED,RWED] TIMECLOC2.BAS;3 P(1517,30) 13./13. 02-JAN-2000 16:27[200,200][RWED,RWED,RWED,RWED] TIMECLOC2.BAS;2 P(1525,10) 13./13. 02-JAN-2000 16:20[200,200][RWED,RWED,RWED,RWED] TIMECLOCK.BAS;1 f(440,57) 13./13. 09-OCT-1984 11:16[200,200][RWED,RWED,RWED,RWED] 12-DEC-1985 03:01(3.)) Total of 52./52. blocks in 4. files ES] 14-JAN-01 18:43  TIMECLOC2.BAS;1 P(1512,70) 13./13. 02-JAN-2000 16:10[200,200][RWED,RWED,RWED,RWED] TIMECLOC2.BAS;3 P(1517,30) 13./13. 02-JAN-2000 16:27[200,200][RWED,RWED,RWED,RWED] TIMECLOC2.BAS;2 P(1525,10) 13./13. 02-JAN-2000 16:20[200,200][RWED,RWED,RWED,RWED] TIMECLOCK.BAS;1 f(440,57) 13./13. 09-OCT-1984 11:16[200,200][RWED,RWED,RWED,RWED] 12-DEC-1985 03:01(3.)) Total of 52.2**************************************************$ 1) DW1:[TIMECLOCK]TIMECLOCK.BAS;1 6 10 CLEAR ***************$ 2) DW1:[TIMECLOCK]TIMECLOC2.BAS;3F 6 8 REM Y2K fixes 2-Jan-2000 (GOSUB 2000 makes a correct DATE$). 7 10 CLEAR 2**************************************************$ 1) DW1:[TIMECLOCK]TIMECLOCK.BAS;1- 16 63 PRINT 'The date is ';DATE$(0%);'.', 17 65 PRINT 'Alarm time is ';ALARM$;'.'***************$ 2) DW1:[TIMECLOCK]TIMECLOC2.BAS;35 17 63 GOSUB 2000\ PRINT 'The date is ';DATE$;'.'*, 18 65 PRINT 'Alarm time is ';ALARM$;'.'2**************************************************$ 1) DW1:[TIMECLOCK]TIMECLOCK.BAS;1# 61 3140 REM Set-up menu properm***************T$ 2) DW1:[TIMECLOCK]TIMECLOC2.BAS;3< 62 2000 REM Y2K routine - use DATE$ instead of DATE$(0)u 63 2010 IF MID$(DATE$(0%),8,1)=":" THEN DATE$=MID$(DATE$(0%),1,7)+"200"+MID$(DATE$(0%),9,1) ELSE DATE$=DATE$(0%)* 64 2020 RETURN # 65 3140 REM Set-up menu properS2**************************************************$ 1) DW1:[TIMECLOCK]TIMECLOCK.BAS;1E 98 10037 PRINT '';DATE$(0);CHR$(13);' ';'Alarm time: ';ALARM$T 99 10038 NOW$=TIME$(0%)***************o$ 2) DW1:[TIMECLOCK]TIMECLOC2.BAS;3N 102 10037 GOSUB 2000\ PRINT '';DATE$;CHR$(13);' ';'Alarm time: ';ALARM$ 103 10038 NOW$=TIME$(0%) 4 differences foundM<DZ2:[TIMECLOCK]Y2K.DIF/BL/FF/-CB=TIMECLOCK.BAS,TIMECLOC2.BAS0%)* 64 2020 RETURN # 65 3140 REM Set-up menu propez<$NjklvL@@<@Sū@Sժ@irȪ@S;@L@+@R@z+˫@@Sū@ Ȫ@S۪@@S@}@YȪ@˫@e@.@Q@f@.@zѪ@L@y@@Y @5@q;@T˫@y@z˫@n˫@v:@S5@Ȫ@XȪ@Zn'@˫@@E@:@g@!@z۪@8Ȫ@Oq@t!@2K@Z@d@p@"l@+@"6m;@+:+:+:@JDa >,a 6̫rG0zpa i ,1zhG( +: p Z d  K(( "l00 "l88 p@@ ppp +~~ Da  @4 Corrected date: Uncorrected date: 419 .4 6  ,a i<048< @D2VFPZdnxLyr G0 G4 G8 G< G@ GD GV "G &G *G .G 2G 6GL :G08&0JRntb G G G G G G& G0 "GJ &GR *Gn .GtG   6m;(  i j  +:00 Da Da ,a  DATE4  ̫r a p60 2pvLvL vLvLvLvL< Sū "̫r$Sժ &̫r (̫r*vL.irȪ 0̫r2S;.b0FpLirȪ Da 0 +irȪ ̫rS;S;R+˫Sū ̫r"vL&irȪ (̫r*,:P :9pSū ,a  Ȫ Da : S۪ ,a S}vLS;YȪ Da :"S;&(˫*e0&Zn.& Q irȪ ̫rS;S;Rf ."Sū $,a &vL*Ѫ ,,a 2 :7 d:rLS; YȪ Da :S;˫LyY  5 $,a &vL*S;. Ȫ 0Da :0dn ::dpS۪ ,a q; SvLS; Ȫ Da :S; YȪ "Da :$S;(*T˫,S۪ .,a 2: x ::dryz˫ S;n˫v:SvLS; Ȫ Da :"S;&YȪ (Da :*S;.0T˫0h : ynS۪ ,a  y z˫S;YȪ Da :S;T˫z˫ S"vL&vL*S5 .,a (::rȪ ,a XȪ ,a  Da Qn'S۪ ,a  Ȫ Da : S۪ ",a $YȪ &Da :00:nS; ˫ Sn'XȪ ,a  Da Ȫ ,a n'"vL&*YȪ ,Da :...nESū ̫r vL:irȪ Da girȪ ̫rg"!$vL(*:,irȪ6t : n Da g irȪ ̫rg!vLQtvL S5 $,a &vL*S;. Ȫ 0Da :2S;.@: :9nnYȪ Da :z۪ Da  SvL8Ȫ ,a vLS;YȪ Da :"S;&(˫*e,nj0$Q0vL OqvLt!nESū ̫r vL:irȪ Da girȪ ̫rg"!$vL(*:,irȪ6t : n Da g irȪ ̫rg!vLQtvL S5 $,a &vL*S;. Ȫ 0Da :2S;.@: :9nnYȪ Da :z۪ Da  SvL8Ȫ ,a vLS;YȪ SY:DATE4/CP=SY:DATE4/MP UNITS = 15ASG = TI:13:15ASG = SY:5:6:7:8:9:10:11:12EXTTSK = 512 //,?? eN6#SYSYSYSYSYSYSYSYSYSYSYSYTITINN6z;>DUDUDUDUDUDUDUDUDUDUDUDUTITI(C%N>@e@Ae&f . 1fABAD5 a C%!e e B V  B\E CP   D a@ C`B `%ֆ C ӆBEІ0  %C ‹  C B ‹ B 0    e\e\e\e\e\e\g\g\g\U\N E\N MEP\N U\v \ &   Cc\ & WtBE55 Cc%ptCc \%  ’\  \w v#\ B  aw X  T  aD\ \:w H\ \\ *l )ffeb  S~e& >e`Jlc###M*Bl㋣   M B  B    B @   \ f&&&      ҄& ~\ 0e \&&       J  & ~\e\ N A f C%v   \ 3 EU %  3  5EvB   v\\\\&\& \\\&\&\\\& \ \ \\\\\\\@A@A @A C P \\%\%\%\%\%\'\'\'\m h # l d @ .m .*1@B*DFlm *1@B hf`&  & ~ B~ \*f=eBC r<mm Е: Е O*ff=eCEB ae$f r  eCeF eeeA 0 BB` $Е-PPPЕ-  *w r e0e0АAMPM JanFebMarAprMayJunJulAugSepOctNovDecXXX \ \& \ \ \& \ff&f  & N & + &   v        %  = 00 6 6 3    EsAq Dws w`w w6 e%6  6  E v v %\v &&& r= \*5 <w*EE ^  \5^ 5 ^2 B5^5 ^p5` E^U^ pX0 ? *\ *b 5h Ewr$ $ "0$%*ew*b*&^\*^ "A@*0H\*5& w0 H\ 5 >\   *l עע   ע 5*!&$fl! w& * & @ \ \   p &30 \U^\9 U^  U^ U^& 0 0 0 *0 ,\*U^*U^*U^  6p* & & 5^E^0 f L*3E^5`5` V \ r@ r( @%% e ee e  @A K I  7@A 8  4  N +`( @A        ` w   & f    9 3#1#N , #)'#% 6 c f ~ C`B@  @  \& \\\& & \&&\  \ \\ \ t   \w` N*J, J, 1@Bw0 & r E@`\ ww`*C, C,w T& $ * ,  ,&   &  L& e6+e"*, , ]*(++D+* @, @,wD 8  "   R wB .5`*5`5`"5^ E` xS ˋ5^ 5^ W W   f&  B  c w ff&f hwf &wfU& Mvv 6`vU  q` c qm `a@ `qeAa@ a A @ A @ %  A @ 6v %\%% 0 0   H`"wH`"w \"w \"w<  <  ~6  5^5@^I *0,&U^5` 5`0 f f ` *  h   .pXC `U^5^ p : \0 f5`U^w  F *X5 ~     U^ *ʥ 0 fʥ  f f*B"eR\05@^,hpp & p0j0T*1h 0%vZ2frx zpd5@^5 ^ld0lfy ѥ 0 fɕ $h*1hw f*B"eR R&0 p %2fZ2d2d2\\ŀ\ \2*l2,j fZ] %Z f2]Z ]2]Z ] \Wh2Zh5^ hE^eX ff 2 x*qf%0 f %% 2h ק&e" Zfs * ,eE 0b*0d,p`bp d W ( && W  TI:\*C @& : E:t EBPf *&fA jF f F 5%5pV*f 5 U 5 U `$ZU@7U 4E@^U`wJf"er\ 2 dZ A5Ud5UdpZ pP^   r \ U`ppjC E AEC E` p5^    & f eߥ&& TIwe\$he&&5f Af&?e& e" & e% @ n e ` *0 wE A* B~*e e !3&e &s s 3  ~ 6 ~3@\  `HHVpTppX0^U`E^eEW s`3"35"C *b @ 3 3see@`ei A   ~E Pe2R aeRR   ;z  e<e 2E~*3$ 33 L\3 ~ ~ ~R~3 H  dW(\  p *A@ BCzEG@HPtJ$No terminal on channel 0(LUN 13.) in "?Maximum memory exceeded in "" &&&E    e " f& qfqeCaB aqfqe  FE7  *U@eB B  fB B f &~Wtu` B " b 2w|e? WtE & fY  D  H&*U@v&*E@v B* U@fB eEB `e E@m  f&    \5B~ E B~ Pf&*  ##   E b# 'f&B f ##! B EB BH#*u  f&*e@     &f*@, @,  E@` `& \@A!*, , 3@sB@` Ee@"f*B, B, DF` EeDJe \fE %5^fX5` B 4 U^ l  f Df E~l\  % *p^0bl,$Hv$ H 5/ E0   N5:U "W DW /H,E2E5 &e& 00/w Bel Ub f, &  0eb < 5E5e  & & i*I5& #5G^A @Wt@P&3*5& "xEeє^ &!5&&e ~"eRh33z 3 Z\5 d5 f5 hnBeX"333 3 x d5 nl Zhe=^t r 5dflZ& 5 d5 l5 fZV hEeC`E є~ ~ee-   6&e'6%e)  P*Uє ee: CtEe0  Q: J*wnwhlŘ   ѕ"єBѕ" ,e%e&Q  &e&e  f e `~  ee *~ѕ"ѕ ѕ * ^f*eQe&*"e \ZufdAeXfG5h&*"e$h*U?RMS error #FUNCTIONGOSUB called at line in "ERROR?Odd address trap?Memory management violation?Error file cannot be opened?Error file cannot be read?Undefined error number  W  * B`.*"&`EUC`{C  %  v vf&\  N% <B   @A  ~~ \ &  &   6% % e@ "N' E`  Aa A@^   A ^EW W  &  ѕ-ѕ  r e0 ~ѕ e& & & *2f&&& %W% % U@      r`D A @ 逎     5 Ke)f W+W-W W0W9f  *m'  e    נ נ E     CPQCQ<m     p   z &   5@  B5eN N .E D A @  eb" d$    D A @ &f&f eD A @ eA @ e@ e&f&f   %PeE <%PeE D A @ E@ 6 6   &f& & 6v*v6 6 @   U*2 &C ^ N    5  6 c6 m  6#m    m  6ඌ c& ʕ ʕ- F   E@ U0Ґ *ခ  ,W >ҕ C eH %%K b ҕ.  ҕ0 eҕE+-  Ґ s e0e0RCD`CE ~ ʥ0ʥ.%ʕ0 U*@@ , w*&h\*&f\  \f*x0 x\ & &\&*5@U@ &*E@E w n*"{& & pTppXjwTjw     wwPw\@1f*E5@U"B"e 5 ! ZeXev sXw <eE D` bl lrw   B eE"s    s-  Cslw  wwB&*&e& :5 ACCl  rf*e >eEf "*p`E  B~ *U@eB B  ZB B f &~Wtu` B " b &wpe? WtE & fYf&B f ##! B EB BH#*u &*5@U@ &*E@E &f  & \*A"C * RZ2 dhhfxd2 h h*5" <5*"eRZ \eXfLBOP 8""  hҐB~\ "f &  \&f &f& v  d6?;89~6D:D::::N6DATE4 ~ ~ ~ ~ ~ ~  :::~ 2:~t:p::~ F:J:^~:: ^~ P v~:9 6 7t8B$7:.:~ ZL: v~:7 :8P7& :~ d^~:: d ~ n ^~:v~:d : ~  ~ x ^~:v~:d : ~ v~: ~ y~ : ::D:7B 8~ :^~::v~:0 ~ :D:7 :~ ~ v~::~ ^:: ~ J:: ~ B8~ :~  ^~: v~:F:~ :~  v~:9 68B~8~ *~  (z3z3F2>2:2B2D2|3b2R2V2J2J2j &*jj$9P9SY:$   :$)))) @N:Corrected date: b:Uncorrected date: x:19 :'&15ew , Bv     5B1 w ~6666 6626F6P6Z$7dP7nh7x7y77$888R8l8t8~88888@>8-? D- E %     U EU 5  5U ?: ?>:$>E U *5@*& E& & f&ËDef Ë )̋U&ff  .ROOT USERUSER: .FCTR SY:DATE4-LIBRLIBR: .FCTR LB:[1,1]BP2OTS/LB .ENDN5 rem Routine to correct BP2 Date$(0%) - by Nicholas Zymaris, (c) 29-Jan-2000.N6 rem It is compatible with both "1900"-style and "2000"-style internal dates,37 rem considering the dates 1900-1969 as 2000-2069.yN8 rem Streamlined 14-Jan-2001, moved window from 1980 to 1970 & support >= Y3K10 dim da(11%)O20 let dat4a$=date$(0%) \ let dat4$=dat4a$ \ rem save date in case just 57% then gosub 200 else decade%=val(mid$(dat4$,8%,3%))>90 if decade%<200% and da(10%)<7%+48% then decade%=decade%+10%100 da(8%)=decade%/100%"+110 da(9%)=int((decade%-(da(8%)*100%))/10%) .120 da(10%)=decade%-(da(8%)*100%)-(da(9%)*10%)?121 rem print "DIAG: decade% is ";decade%,da(8%),da(9%),da(10%)0M130 for d4%=8% to 10% \ da(d4%)=da(d4%)+48% \ next d4% \ rem Convert to ASCIIe140 change da to dat4$M150 print "Uncorrected date: ";dat4a$ \ rem use saved date in case past midnt4"160 print "Corrected date: ";dat4$ 170 goto 5002200 let decade%=199% \ rem Here if year >= 2000.A210 let da(10%)=da(10%)-1 \ rem cnt down decades (trashes ASCII)6220 let decade%=decade%+1% \ rem correct colon format<230 if da(10%)>57% then 210 \ rem Keep going if year >2099. 240 return500 end8%),da(9%),da(10%)0M130 for d4%=8% to 10% \ da(d4%)=da(d4%)+48% \ next d4% \ rem Convert to ASCIIe140 change da to dat4$M150 print "Uncorrected date: ";dat4a$ \ rem use saved date in case past midnt4"160 print "Corrected date: "; current date run date4 dti 14-jan-1900e run date4ndti 14-feb-1953S run date4ndti 29-feb-1969e; I know it's not a leap year run date4Sdti 1-mar-1969 run date4cdti 31-dec-1970e run date4udti 23-nov-1997' run date4 dti 1-jan-2000 run date4odti 1-jan-2009 run date4odti 1-jan-2032 run date4tdti 29-feb-2040 run date4rdti 10-Apr-2058t run date4adti 16-May-2065L run date4 dti 18-Jun-2070e run date4odti 19-Jul-2071w run date4 dti 23-Aug-2080 run date4Gdti 27-Sep-2099r run date4udti 3-Oct-2100 run date4dti 4-Nov-2101 run date4Sdti 14-mar-3142 run date4edti 29-feb-4000o; Y4K leap year or not??? run date49dti 14-jan-2001t*; make sure it is set back to current date run date4 dti 1-jan-2000 run date4odti 1-jan-2009 run date4odti 1-jan-2032 run date4tdti 29-feb-2040 run date4rdti 10-Apr-2058t run date4adti 16-May-2065L run date4 dti 18-Jun-2070e run date4odti 19-Jul-2071w run date4 dti 23-Aug-2080 run date4Gdti 27-Se, normal, bold*2************************************************** 1) DL0:[1,3]TIME2.B2S;4< 129 30000 PRINT esc$;'[1;24r';esc$;'[22;1f';\ GOTO 32200 130 31999 GOTO 32200 131 32200 END$***************  2) DL0:[1,3]TIME2.B2S;50 130 30000 PRINT esc$;'[1;24r';esc$;'[22;1f';C 131 31999 call WTQIO by ref (1024%,5%,1%) \ rem detach terminall 132  133 32200 END  2 differences foundr$TIMEQIO.DIF/BL/FF/-CB=TIME2.B2S;4,;5m' \ n$=esc$+'[m' \ b$=esc$+'[1m' \ REM Revers2************************************************** 1) DL0:[1,3]TIME2.B2S;5, 38 100 FOR C=1 TO 31\ REM alarm routineT 39 102 PRINT r$;alarms$;n$;ab$; \ rem replaced 8-bit PRINT CHR$(141); 15-Jan-01*************** 2) DL0:[1,3]TIME2.B2S;6# 38 100 C=1 \ REM alarm routineT 39 102 PRINT r$;alarms$;n$;ab$; \ rem replaced 8-bit PRINT CHR$(141); 15-Jan-012************************************************** 1) DL0:[1,3]TIME2.B2S;5$ 43 107 FOR T1=1 TO 314\ NEXT T1H 44 110 PRINT alarms$;ab$;\ NEXT C \ REM replaced CHR$(141) here too> 45 120 SLEEP$='Someone overslept...'\ PRINT clr$;\ RETURN***************N 2) DL0:[1,3]TIME2.B2S;66 43 107 SLEEP .3142 \ REM FOR T1=1 TO 314\ NEXT T1W 44 110 PRINT alarms$;ab$;\ C=C+1 \ if C<=31 then 102 \ REM repl CHR$(141) here too$> 45 120 SLEEP$='Someone overslept...'\ PRINT clr$;\ RETURN2************************************************** 1) DL0:[1,3]TIME2.B2S;5V 52 280 sleep 2.71828\ PRINT clr$;\ RETURN \ REM replaced 3142 count for fast CPUs 53 300 REM set alarm ***************' 2) DL0:[1,3]TIME2.B2S;6U 52 280 sleep 3.142 \ PRINT clr$;\ RETURN \ REM replaced 3142 count for fast CPUs  53 300 REM set alarm12************************************************** 1) DL0:[1,3]TIME2.B2S;5/ 118 3270 PRINT esc$;'[24;24r';esc$;'[24;1f'.3 119 3280 REM input loop***************** 2) DL0:[1,3]TIME2.B2S;60 118 3270 PRINT esc$;'[24;24r';esc$;'[24;1f';3 119 3280 REM input loop0 4 differences found*"TIME2.DIF/BL/FF/-CB=TIME2.B2S;5,;6 52 280 sleep 3.142 \ PRINT clr$;\ RETURN \ REM replaced 3142 count for fast CPUs  53 300 REM set alarm12************************************************** 1) DL0:[1,3]TIME2.B2S;5/ 118 3270 PRINT esc$;'[24;24r';esc$;'[24;1f'.3 119 3280 REM input loop***************** 2) DL0:[1,3]TIME2.B2S;60 118 3270 PRINT esc$;'[24;24r';esc$;'[24;1f';3 u~,BB  eVdx T( T kf[q Tr[q Sf%SYSYSYSYTISYSYSYSYSYSYSYTITISYOVf9l=A p 7 9 )7" -   -z-j,w0wwDw4ww(wHwP TX`dwv8wnwf<w^hlwP wH\w@Lw4@w,ww Jf&.0&*"e.30*"e &.0 %0\wd4 5ae x  %6U^  Fp5 ^U ^bpXp[w2\w ^+5^ 5^#X Bf* ,0  5` `wj##!" f&&&      ҄& ~\ e \&&    ~   J  & ~\e\&& @ Ӵ&&  6  #,A Ԅ&,x`xժxժxժxժx e\\ \S\ e& @ BeeE%,χ\e,f& \:יc&>X4%]@*f=eBC r<mm Е: Е O*ff=eCEB ae$f r  eCeF eeeA 0 BB` $Е-PPPЕ-  *w r e0e0АAMPM JanFebMarAprMayJunJulAugSepOctNovDecXXX?2 *\ *b 5h EwJ$ $ "0$%*ew*b*&^\*^ $A@*0H\*5& w0 H\ 5 >\   *l עע   ע 5*!&$fl!*U& &)E\&sf& *"ePBe  ~PpT585p\u7  UU uP5`wJ&& C`  *e,u0B~  & SY&& C`  C0Cm0.u1B~ 5 %% %%4ae*45"p(3  0% w,U5@`w45` z |**U \5 * kU`cB aeR`5`O55[B4BS%)%!F%=%4&8u5 B" B B *A6Erff wJ f\U ` |PB9//L2L208*$9fTIMECLҶ.l8 9l89  $h998898898p9V J222222N8p9V9z899t8 99l89989h9998989898988p(8V8p 8V9V88V 9V8p8V8p7V9V7V8p 9V7V(8p8V8p7V88ڰ,88N @1 9NT<81Hղ2<18Բ2<1ղ2<181",hF99,ղ2<1818Բ2<1,-@1"@1" lr78.@1& 9^78 98/@1&V9R78 98J7898>78 9807828*7&Ɗ8p 7V8V7V"Ǝ"58p9V6V 9V788ڰ8p9V6V׾> :DJ <8p9V>8p9V6V 9V88V9V8p8V8p 9V? 8p6V8V7VA8p6V8V7VD8pL6V9VF6V 9V7VE8p 6V9V6VF8p 9V5V9V5V 9V7VG88D*8&8D*8&`J 41H888412 pI8p8V8p8V8p8Vh8VK21<,21TԶ2,21TԢ2 P8p9V"dHղ2<1f8p9V 9V 9V9Vg8p8Vi21<,21h8858F6 ƆHղ2418p9V k8J n8p 9V9V<1Ӳ2<<1<12"xl588p9V 8p9V8p9V#^8V5V8p 9Vž"8p9V8p h8V5V8ph8VJ 8p9V ,68pZ5V8VD5V;J 8p8V@88ڰ׾> J8N@18p9V.5V 9V" TDJ 8p8V"ƎҐҚl888p9V4V 9VҤDJ Ү 8p5V9V4V 9V4VJ 8p8V8p4V88ڰ8p4VDJ Xbl888p9V4V 9VgDJ t 8p9V"J$@1&R 8D*84&Ɔ 8D*8488D*84&ƺ 8D*848$ 888848*88 0p8,0T0   89T`@!p""X!8*8& 01*01$ 87T`$ Ƅ! 014p8,01dT0> p88dTx,01T T0H p88dTx,01T 8 TxՄ0R.1.1.1L2"""P"R,.1p8,.180T0R.1L2"".1R\:8F8z"Ƹ"Ҙ01Ң p8 8vӲ20Ҭ01Ҷ 89T`Ƹ""z" D F v 8p9V4VҀ 8pf4Vҁ 8p9VB4V 9VV4VҊ 8p9VL4V 9V84VҔ 8p9V,4V 9V4VҞ 8p9V3V 9V3VҨ 8p9V3V 9V3Vҭ 8p9V3V 9V3VҲ 8p9Vx3V 9V3VҼ  8p9V3V9V3V  ,1<,,1h8,1&p$"J$ f38DzT<(1ղ2(1Ԏ2<(1(12&Ʀ$$  (1B/,f& Ҡ"$fH2$'02T*8Ԛ20@'8*8B'8&<$1D'$1 1Ɗ*"+F'H'^2j0Ւ2j$1Ԛ2<0J'L'z2j0Z2<0N'P'0jV2~2<0R'0jV2~2<0T'V'H~2~1~1H~211J11@900|1|1@9X'Z'Ւ2j$1<0\'^'z2j0Z2<0`'b'0jR2~2<0d'0jR2~2<0f'h'H~2r1r1H~2v1v1Jz1z1@900p1p1@9j'H$1 1l'"P)n'p'ծ2$ l1l1Fn1n1@9r'H~2b1b1H~2f1f1Jj1j1@900`1`1@9t'H~2V1V1H~2Z1Z1J^1^1@900T1T1@9v'Ֆ2$ P1P1FR1R1@9x' 1Ԫ2 1Ԫ2`&,"l-z'|'0jj2~2<10jr2~2< 1~'0jj2~2<10jr2~2<1Ҁ'11JN1N1@91 1L1L1@9҂'"Ɗ*҄'҆'0jv2~2<10jr2~2< 1҈'0jv2~2<10jr2~2<1Ҋ'11JJ1J1@91 1H1H1@9Ҍ'"Ɗ*'8p9VҀ 8V3VҮ'8p2V'0<',0TԶ2&x.8p9V2V"Ơ.',0TԦ2&Ǝ.".8p9V"Ҷ&'"Ҩ.'Ҷ.( tt8p9VҀ 8V 9V2VtTN2&/8p9V"t0<,0TԦ2&(/"/t8p9V""t0u8p9V2V9V2V|JB1B1D1D1F1F1N}H2NF:N V\D@zZD>``b0P0SY:$  0$$* C?H?4DBCC?GpC?ff?IA@B= ?AAA@BBCAB@B2[22;1f2[1;24r2 Type any key to continue2c2$Press to return to main clock.3 at line ,3 Alarm time: <3)[?25lPress to return to main clock.j3eEsScCiIdDaArR|3 Return3[24;1f3[24;24r3 to clock3 clock display3 Analog3 user-inserted message3 Delete3 new message4 Insert 4 "Someone overslept..." message04 Clear<4 alarmF4 ExitP4 SetZ4 to monitorj4%Type the first letter of your choice.4[1;1f4194PM4p4AM4a4Message recorded.4MSG> 4Message deleted.4 prompt.4MSG>5)Type in the message when prompted by the 25Invalid alarm timeH5 (2 digits each).^5!Enter new alarm time. Format is 5&Returning to Main Menu Absurdity... 5+Set-up Menu 5Someone overslept...5i536 6Ctrl66To set up or exit, press , which on the PC350 is J6IP6/To turn off alarm when it rings (beeps), press 6Alarm time is 6 The date is 6The correct time is: 68(If you use improper format, the alarm will not go off).6 Thank you! 7.7Enter alarm time, format .7y47 (12-hour)B7hh:mm PMN7 or V7hh:mm AMb7hh:mm (24-hour)v7same as displayed time7Do you want to set alarm? [Y/N]7!. This will rarely be necessary.7Set-up7(To set time, go to Main Menu then press 8The system time is now ,8?TIMECLOCK -- written Oct.-Dec. 1983; Y2K fixes Jan. 2000 & 2001p8[1mx8[m~8[7m8[J8[H8!A L A R M I S S O U N D I N G 2'&1 B`@ :A5ew , Bv    5Bw    4b(4,`-./ 2V57:<>?DAjDEFGHJIpKPdfg&i8knx"*.Zp,6;@JT,0X`fjXbg t $ ( > B R  $      !  !*X!4!>!H!R"\T"zh"p"z""" "D "F "v " " " # F# p# # # # $ $ F$ J$ p$ $$$\%%&j&'&'&'&'&''' ''R''''' ''"''$'(&'N(('j(*'n(,'(.'(0')2'4)4'P)5')6')7')8'*:'*<'2*>'@*@'T*B'j*D'x*F'*H'*J'*L'*N'*P'*R'*T'*V'*X':+Z'>+\'N+^'R+`'f+b'j+d'+f'+h'+j'+l'+n'+p'+r',t'T,v',x',z',|',~'-'2-'d-'l-'p-'-'-'-'.',.'>.'L.'x.'.'.(.t.t.t.t/t(/t>/0uB/|l/}/1 5  .5.UW   ,   wE5 E  W LJ5  ,E N@$9=<H9)aw 6  w 4, e 1 w N<E U &W 96 3  4 &9U &9E &9U3uE uU.5`.U & E& & f&ËDef Ë )̋E U&ff r[qr[qkf[qkf[q((VdxVdxF?@68888?:@d?66`@\AJAr@r@N@@IqMA@`@@IqMA@`@r@IqMAN@`@U(UA@\AN@3gJ @@@\}`A @@K}A# @@q 5AA\A@(>@A%@B#@AZK&BPB8A5r"PB&AU,@\A@Vdx:BJA\ArT,`pA=>>>???"?"?4?STUB) which can beLcompiled and linked under RSX, producing the TIME2.TSK executable which does;everything that TIMECLOC2 does except for the analog clock.nder P/OS V2.0a but is an issue under the RSX-11M+ V4.5 sHbaseline monitor. With the terminal attached it will work under either Osystem. In order to link it for RSX without changing the source code, without aNany CGL graphics routines that work under RSX and a non-Pro-350 environment, INwrote a stub CGL and associated command files (CGLSTUB, TIME2 Dump of DU0:[0,0]BITMAP.SYS;1 - File ID 2,2,01 Virtual block 0,000002 - Size 512. bytes C 000000 000000 000000 000000 000000 000000 000000 000000 000000C 000020 000000 000000 000000 177400 177777 000007 000000 000000C 000040 000000 000000 000000 000000 000000 000000 000000 000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 176000 000003 000000 000000 000000 000000 000000 000000 C 000140 177770 077777 000000 000000 000000 000000 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 000000C 000200 000000 000000 000000 000000 000000 000000 000000 000000C 000220 000000 000000 000000 000000 000000 000000 000000 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 0000000C 000320 000000 000000 000000 000000 000000 000000 000000 0000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 0000000C 000500 000000 000000 000000 000000 000000 000000 000000 0000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 0000000C 000660 000000 000000 000000 000000 000000 000000 000000 0000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 000000C 000760 000000 000000 000000 000000 000000 000000 000000 000000 000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 0000000C 000660 000000 000000 000000 000000 000000 000002 Dump of DU2:[0,0]BITMAP.SYS;1 - File ID 2,2,01 Virtual block 0,000002 - Size 512. bytes C 000000 000000 000000 000000 000000 000000 000000 000000 000000C 000020 000000 000000 000000 000000 170000 000007 000000 000000C 000040 000000 000000 000000 000000 000000 000000 000000 000000C 000060 000000 000000 000000 000000 000000 000000 000000 000000C 000100 000000 000000 000000 000000 000000 000000 000000 000000C 000120 176000 000003 000000 000000 000000 000000 100000 177777 C 000140 177777 077777 000000 000000 000000 000000 000000 000000C 000160 000000 000000 000000 000000 000000 000000 000000 000000C 000200 000000 000000 000000 000000 000000 000000 000000 000000C 000220 000000 000000 000000 000000 000000 000000 000000 000000C 000240 000000 000000 000000 000000 000000 000000 000000 000000C 000260 000000 000000 000000 000000 000000 000000 000000 000000C 000300 000000 000000 000000 000000 000000 000000 000000 0000000C 000320=Linking TIMECLOCK/TIMECLOCK2 on Pro350 14-Jan-2001 23:25:05 LMultiply defines - it is DIAGnostic only and does not prevent execution; PAB5probably just ignores 2nd and subsequent definitions:c8PAB -- *DIAG*-Module $ERTHR multiply defines symbol OGB$Land same for symbols: OEG$, RSM$, ERR$, OGS$, LIN$, FLN$, OEA$, ERL$, ERT$X, ERN$, RSU$ SET WRAP 78SET TERMINAL VT100SET TERMINAL EDIT SET MODE CHANGEDefine Key Function 14 as "EXT set wrap 72." ! Fortran setupd?Define Key Gold Functiicode: .word 0param: .word 1,icodestart: mov #param,r5 call inkey# tst icode beq start mov icode,r0  halt( .end startODE where caller expects it 50 RTS PC ; Return 51 .END 1 differences foundGDW1:[USERFILES]INKEY.DIF/BL/FF/-CB=[2,3]INKEY.MAC,DZ2:[DECOMP]INKEY.MAC pTIMECL 15-Jan-:1 03:29 PM PDP-11 BASIC-PLUS-2 V2.1-00J000115 SY:TIMECLOC2T 00001 3 REM ***By Nick Zymaris Oct. 1983. Some lines after 3140 copied/modifiedM 00001 4 REM by me (in EDT as well as Pro/Basic) for use in the menu. &@ 00001 Translated and compiled in BASIC PLUS 2 on 25-Sep-84 00001 5 ON ERROR GOTO 29900M 00003 6 dim da(11%) \ alarms$='A L A R M I S S O U N D I N G' \ab$='' B 00001 7 REM combined with CLOCK.BAS (line 10000) 9-Dec-83 A.M.V 00001 8 REM Y2K fixes 2-Jan-2000 (GOSUB 2000 makes a correct DATE$) for Pro/BASIC.V 00001 9 REM Y2K fix ported to Basic-Plus-2 version, literal ESCs rmvd 14-Jan-2001.K 00004 10 GOSUB 4000\esc$=chr$(27)\clr$=esc$+'[H'+esc$+'[J'\ PRINT clr$;hW 00003 11 call WTQIO by ref (768%,5%,1%) \ PRINT clr$; \ rem attach term, clr screen U 00004 15 r$=esc$+'[7m' \ n$=esc$+'[m' \ b$=esc$+'[1m' \ REM Reverse, normal, boldNP 00004 17 hm$=esc$+'[H' \ g$=chr$(7)\ gg$=g$+g$+g$+g$+g$+g$ \ REM Home, beepsT 00001 18 print 'TIMECLOCK -- written Oct.-Dec. 1983; Y2K fixes Jan. 2000 & 2001'D 00002 19 print 'The system time is now ';r$;TIME$(0%);n$ \ printJ 00001 20 PRINT "To set time, go to Main Menu then press ";r$;"Set-up";9 00001 30 PRINT n$;". This will rarely be necessary."5F 00003 40 PRINT \ PRINT "Do you want to set alarm? [Y/N]"\ INPUT A$P 00004 44 alen%=len(TIME$(0%))\FOR c=1 to len(alarms$)\ab$=ab$+chr$(8)\NEXT cI 00002 45 if alen%<>5% and alen%<>8% then ap$="same as displayed time"09 00002 46 if alen%=5% then ap$=r$+'hh:mm (24-hour)'+n$JW 00002 47 if alen%=8% then ap$=r$+'hh:mm AM'+n$+' or '+r$+'hh:mm PM'+n$+' (12-hour)' M 00002 50 IF A$='y' THEN PRINT 'Enter alarm time, format ';ap$;'.' ELSE 600S 00002 53 PRINT r$;'(If you use improper format, the alarm will not go off).';n$y; 00003 55 INPUT ALARM$\ PRINT r$;'Thank you!'\GOSUB 1020n 00001 58 SLEEP 1 00001 60 PRINT clr$;P 00003 62 PRINT r$;'The correct time is: ';n$;TIME$(0%);r$ \ PRINT \ PRINT n$7 00002 63 GOSUB 2000\ PRINT 'The date is ';DAT4$;'.'r. 00001 65 PRINT 'Alarm time is ';ALARM$;'.'R 00001 68 PRINT 'To turn off alarm when it rings (beeps), press ';r$;'I';n$;'.'V 00001 69 PRINT 'To set up or exit, press , which on the PC350 is ';r$;'Ctrl';' 00001 70 PRINT n$;' ';r$;'3';n$;'.'yZ 00003 71 IF VAL(MID$(TIME$(0%),5,1))<>VAL(MID$(ALARM$,5,1)) THEN ALOFF=0\rem ring 1min; 00002 72 IF TIME$(0%)=ALARM$ AND ALOFF=0 THEN GOSUB 100s: 00003 73 PRINT \ PRINT SLEEP$\ PRINT MESSAGE$;CHR$(15)V 00004 75 CALL INKEY BY REF (S%)\ IF S%=27 or S%=101 THEN GOSUB 200\ REM setup/exit 00002 80 PRINT hm$;\ GOTO 62% 00002 100 C=1 \ REM alarm routine;V 00002 102 PRINT r$;alarms$;n$;ab$; \ rem replaced 8-bit PRINT CHR$(141); 15-Jan-01 00001 103 PRINT gg$;U 00005 105 CALL INKEY BY REF (S%)\S$=CHR$(S%)\ IF S$='i' OR S$='I' THEN ALOFF=1 \& " 00006 PRINT clr$;\ RETURN8 00002 107 SLEEP .3142 \ REM FOR T1=1 TO 314\ NEXT T1T 00004 110 PRINT alarms$;ab$;\ C=C+1 \ if C<=31 then 102 \ REM replaced CHR$(141)@ 00003 120 SLEEP$='Someone overslept...'\ PRINT clr$;\ RETURNY 00002 200 PRINT clr$;\PRINT r$;TAB(35);'Set-up Menu ';a 00001 210 PRINT n$ 00001 220 GOSUB 3140@ 00001 230 REM parody of P/OS V1.5 message and slow return...S 00002 270 PRINT clr$;\ PRINT chr$(12);'Returning to Main Menu Absurdity... ';;C 00002 275 PRINT CHR$(15);\ REM 'Chinese' character set disabled W 00004 280 sleep 3.142 \ PRINT clr$;\ RETURN \ REM replaced 3142 count for fast CPUs0 00001 300 REM set alarmlP 00001 310 PRINT 'Enter new alarm time. Format is ';ap$;' (2 digits each).'; 00002 315 SLEEP 4\ PRINT' 00002 320 INPUT ALARM$ \ GOSUB 10200V 00003 330 IF LEN(ALARM$)<>alen% THEN PRINT r$;'Invalid alarm time';n$; ELSE RETURN 0pTIMECL 15-Jan-:1 03:29 PM PDP-11 BASIC-PLUS-2 V2.1-00J000115 SY:TIMECLOC2) 00003 340 SLEEP 1.5\ PRINT \ GOTO 31002 00001 400 REM clear oversleep message (sleep$)8 00002 410 SLEEP$=''\ PRINT r$;'Message deleted.';n$; 00001 420 SLEEP 1.5\ 00001 430 RETURN 00001 500 REM insert messageX 00001 510 PRINT 'Type in the message when prompted by the ';r$;'MSG>';n$;' prompt.'; 00002 515 SLEEP 4\PRINT 0 00002 520 PRINT 'MSG> ';\ LINPUT #0,MESSAGE$< 00003 530 PRINT 'Message recorded.';\ SLEEP 1.5 \ RETURN 00001 600 REM delete message: 00002 610 MESSAGE$=''\ PRINT r$;'Message deleted.';n$; 00001 615 SLEEP 1.5l 00001 628 RETURN, 00001 1000 REM beep if wrong key pressed# 00002 1010 PRINT g$;\ GOTO 3290E 00001 1020 REM validate or process alarm time (added 15-Jan-2001)R& 00002 1030 if alen%=5% then returnH 00002 1040 if mid$(alarm$,7,1)="a" then alarm$=mid$(alarm$,1,6)+"AM"H 00002 1050 if mid$(alarm$,7,1)="p" then alarm$=mid$(alarm$,1,6)+"PM" 00001 1060 returnU 00001 W 00001 2000 REM Y2K routine - use DAT4$ instead of DATE$(0) 2-Jan-2000, 14-Jan-2001 Y 00001 2010 REM IF MID$(DATE$(0%),8,1)=":" THEN ! 2-Jan-00 Kludge rmvd 14-Jan-01 ! & S 00001 DAT4$=MID$(DATE$(0%),1,7)+"200"+MID$(DATE$(0%),9,1) ELSE DAT4$=DATE$(0%) Y 00001 2015 rem Routine to correct BP2 Date$(0%) - by Nicholas Zymaris 29-Jan-2000. &,& 00001 (c) 2000-2001 &Y 00001 It is compatible with both "1900"-style and "2000"-style internal dates, &0F 00001 considering the dates 1900-1969 as 2000-2069. &W 00001 Streamlined 14-Jan-2001, moved window from 1980 to 1970 & support >= Y3KN 00001 2020 dat4$=date$(0%)P 00002 2050 dat4$=left$(dat4$,7%)+"19"+mid$(dat4$,8%,2%) \ rem 4-digit format! 00001 2070 change dat4$ to dauQ 00003 2080 if da(10%)>57% then gosub 2200 else decade%=val(mid$(dat4$,8%,3%)))J 00002 2090 if decade%<200% and da(10%)<7%+48% then decade%=decade%+10%" 00001 2100 da(8%)=decade%/100%6 00001 2110 da(9%)=int((decade%-(da(8%)*100%))/10%)9 00001 2120 da(10%)=decade%-(da(8%)*100%)-(da(9%)*10%)1X 00004 2130 for d4%=8% to 10% \ da(d4%)=da(d4%)+48% \ next d4% \ rem Convert to ASCII! 00001 2140 change da to dat4$+ 00001 2170 goto 2500= 00002 2200 let decade%=199% \ rem Here if year >= 2000.0L 00002 2210 let da(10%)=da(10%)-1 \ rem cnt down decades (trashes ASCII)A 00002 2220 let decade%=decade%+1% \ rem correct colon formatH 00002 2230 if da(10%)>57% then 2210 \ rem Keep going if year >2099. 00001 2500 return0 00001 % 00001 3140 REM Set-up menu proper1( 00001 3142 REM note this line number! 00001 3190 PRINT esc$;'[1;1f'v< 00001 3200 PRINT 'Type the first letter of your choice.'1 00001 3201 PRINT b$;' Exit';n$;' to monitor'e+ 00001 3210 PRINT b$;' Set';n$;' alarm'dF 00001 3220 PRINT b$;' Clear';n$;' "Someone overslept..." message'4 00001 3230 PRINT b$;' Insert';n$;' new message'> 00001 3240 PRINT b$;' Delete';n$;' user-inserted message'W 00002 3245 PRINT b$;' Analog';n$;' clock display' \ REM this line used CSI not ESC  0pTIMECL 15-Jan-:1 03:29 PM PDP-11 BASIC-PLUS-2 V2.1-00J000115 SY:TIMECLOC21 00001 3250 PRINT b$;' Return';n$;' to clock'07 00001 3260 REM reset window2 00001 3270 PRINT esc$;'[24;24r';esc$;'[24;1f';5 00001 3280 REM input loop I 00003 3290 CALL INKEY BY REF (ST%)\ST$=CHR$(ST%)\ IF ST%=0% THEN 3290 S 00004 3310 Q=POS('eEsScCiIdDaArR',ST$,1)\Q=INT((Q+1)/2)\ IF Q=0 THEN GOSUB 1000 8 00001 3320 ON Q GOTO 30000,300,400,500,600,10000,628 00001 ! 00001 4000 DEF INT%(X)=INT(X) ? 00003 4002 CALL CGL BY REF (90%)\CALL CGL BY REF (86%,0%)\&;0 00003 CALL CGL BY REF (82%,.375,1,0,1)H 00002 4004 CALL CGL BY REF (80%,0,1,0,1)\CALL CGL BY REF (26%,1%,3%)I 00002 4006 CALL CGL BY REF (20%,.02,1/24)\CALL CGL BY REF (24%,.02,0) L 00003 4008 CALL CGL BY REF (18%,1%)\CALL CGL BY REF (30%,126%,16%,16%)\&( 00003 CALL CGL BY REF (18%,2%)O 00003 4010 CALL CGL BY REF (30%,126%,8%,8%)\CALL CGL BY REF (18%,0%)\RETURN 00003 K 00001 10000 PRINT clr$;esc$;'[?25lPress to return to main clock.'G# 00001 10001 ON ERROR GOTO 10200 $ 00002 10002 SLEEP 4\ PRINT clr$; 00002 10004 M=1\M1=M( 00001 10006 REM DRAW CLOCKC 00002 10008 CALL CGL BY REF (1%,0,.5)\CALL CGL BY REF (4%,0,.5).0 00001 10010 CALL CGL BY REF (39%,.5,.5,360%)- 00001 10012 REM DRAW HOUR MARKS . 00001 10014 FOR I=0 TO 2*PI STEP (2*PI)/121 00002 10016 X1=.4*SIN(I)+.5\X2=.45*SIN(I)+.501 00002 10018 Y1=.4*COS(I)+.5\Y2=.45*COS(I)+.5eF 00002 10020 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 00001 10022 NEXT I. 00001 10024 REM DRAW MINUTE MARKS. 00001 10026 FOR I=0 TO 2*PI STEP (2*PI)/602 00002 10028 X1=.44*SIN(I)+.5\X2=.45*SIN(I)+.52 00002 10030 Y1=.44*COS(I)+.5\Y2=.45*COS(I)+.5F 00002 10032 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 00001 10034 NEXT IV 00002 10036 CALL INKEY BY REF (Q%)\IF Q%=27 OR Q%=69 OR Q%=101 OR Q%=81 THEN 10230S 00002 10037 GOSUB 2000\ PRINT hm$;DAT4$;CHR$(13);chr$(10);'Alarm time: ';ALARM$L7 00002 10038 NOW$=TIME$(0%) \ REM READ TIME2J 00003 10039 IF TIME$(0%)=ALARM$ AND ALOFF=0 THEN GOSUB 100\ GOTO 10006; 00001 10040 REM FIND HOURS (H) AND MINUTES (M) # 00001 10042 H$=MID$(NOW$,1%,2%)C 00001 10044 H=VAL(H$)C# 00002 10046 IF H>12 THEN H=H-12 # 00001 10048 M$=MID$(NOW$,4%,2%)I 00001 10050 M=VAL(M$)Y# 00001 10052 IF M<>M1 THEN 100961< 00001 10054 REM FIND HOUR HAND ANGLE FROM 12:00 00001 10056 HD=H*30+(M*6)/125 00001 10058 REM CONVERT ANGLE TO RADIANS  00001 10060 HD=HD*PI/1805 00001 10062 REM FIND X AND Y COORDINATES1 00001 10064 HX=.3*SIN(HD)+.5 00001 10066 HY=.3*COS(HD)+.5* 00001 10068 REM DRAW HOUR HANDE 00002 10070 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,HX,HY)0= 00001 10072 REM FIND MINUTE HAND ANGLE FROM 12:00  5pTIMECL 15-Jan-:1 03:29 PM PDP-11 BASIC-PLUS-2 V2.1-00J000115 SY:TIMECLOC2 00001 10074 MD=M*6. 00001 10076 REM CONVERT TO RADIANS 00001 10078 MD=MD*PI/1804 00001 10080 REM FIND X AND Y COORDINATES! 00001 10082 MX=.49*SIN(MD)+.5 ! 00001 10084 MY=.49*COS(MD)+.5L, 00001 10086 REM DRAW MINUTE HANDE 00002 10088 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,MX,MY)  00001 10090 M1=M 00001 10092 GOTO 10036/ 00001 10094 REM REM ERASE OLD HANDS - 00001 10096 CALL CGL BY REF (70%,INT%(8)) E 00002 10098 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,HX,HY) E 00002 10100 CALL CGL BY REF (1%,.5,.5)\CALL CGL BY REF (4%,MX,MY) - 00001 10102 CALL CGL BY REF (70%,INT%(4)) , 00001 10104 IF M1/5=INT(M1/5) THEN 10116. 00001 10106 REM REDRAW MINUTE MARK3 00002 10108 X1=.44*SIN(MD)+.5\X2=.45*SIN(MD)+.5L3 00002 10110 Y1=.44*COS(MD)+.5\Y2=.45*COS(MD)+.50E 00002 10112 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2) 00001 10114 GOTO 10054, 00001 10116 REM REDRAW HOUR MARK2 00002 10118 X1=.4*SIN(MD)+.5\X2=.45*SIN(MD)+.52 00002 10120 Y1=.4*COS(MD)+.5\Y2=.45*COS(MD)+.5E 00002 10122 CALL CGL BY REF (1%,X1,Y1)\CALL CGL BY REF (4%,X2,Y2)  00001 10124 GOTO 100543 00001 10200 PRINT hm$;ERT$(ERR);' at line ';ERLK< 00001 10205 PRINT 'Press to return to main clock.') 00001 10206 CALL INKEY BY REF (CONT%).V 00004 10207 IF CONT%=27 THEN PRINT esc$;'c'\ GOTO 10220 \ REM Reset term subsystemD 00003 10210 IF CONT%=0 THEN 10200 ELSE PRINT clr$;\ RESUME 10000 00001 10220 RESUME 10230# 00001 10230 ON ERROR GOTO 29900O 00001 10240 RETURN* 00001 29900 REM error-handling routineC 00001 29910 PRINT r$;ERT$(ERR);n$;' Type any key to continue'; 5 00003 29915 IF ERR=72 THEN PRINT clr$;\ RESUME 6209 00002 29917 CALL INKEY BY REF (Q%)\IF Q%=0 THEN 29917 ( 00002 29920 PRINT clr$;\ RESUME 3190( 00001 29950 REM reset screen and end2 00001 30000 PRINT esc$;'[1;24r';esc$;'[22;1f';E 00002 31999 call WTQIO by ref (1024%,5%,1%) \ rem detach terminal  00001 32200 END0 0lTIMECL 15-Jan-:1 03:29 PM PDP-11 BASIC-PLUS-2 V2.1-00J000115 SY:TIMECLOC29PDP-11 BASIC-PLUS-2 V2.1-00 using EIS with NO run support ;ENVIRONMENT INFORMATION: RMS FILE ORGANIZATION:10 Current edit line : 0 NO Index3 NO Modules loaded NO Relative05 NO Main module loaded NO Sequentialt2 NO Virtual>DEFAULT DATA TYPE INFORMATION: LISTING FILE INFORMATION:1 Data type : REAL Source : Real size : SINGLE NO Cross Reference3 Integer size : WORD NO KeywordspB Scale factor : 0 60 lines by 132 columns6COMPILATION QUALIFIERS: BUILD QUALIFIERS:/ Object NO Dump . NO Macro NO Map3 Lines NO Cluster u; Warnings Task extend : 512 ME NO Debug records RMS ODL file : LB:[1,1]RMSRLXzE NO Syntax checking BP2 Disk lib : LB:[1,1]BP2OTS ? Flag :NO Declining BP2 Resident lib : NONE I Variant : 0 RMS Resident lib : LB:[1,1]RMSRESDLIFIERS:/ Object NO Dump . NO Macro NO Map3 Lines"SY:TIMECLOC2/CP/FP=SY:TIMECLOC2/MP TASK = TIMECL UNITS = 18#ASG = TI:5:13:15 ; LUN 5 for INKEY1ASG = SY:6:7:8:9:10:11:12LEXTTSK = 952 &CLSTR = PBFSML,CGLFPU,POSRES,RMSRES:ROEXTSCT = DM$BUF:03EXTSCT = FL$BUF:4310EXTSCT = HL$BUF:00EXTSCT = MM$BUF:1000EXTSCT = MN$BUF:4540GBLDEF = HL$LUN:21GBLDEF = MN$LUN:20GBLDEF = MS$LUN:16gbldef=g$lun:17FGBLDEF = TT$EFN:15GBLDEF = TT$LUN:15GBLDEF = WC$LUN:22// .ROOT BASIC2-RMSROT-USER,RMSALL#USER: .FCTR SY:TIMECLOC2-inkey-LIBR-LIBR: .FCTR LB:[1,5]BP2OTS/LBS@LB:[1,5]BP2IC12@LB:[1,5]RMSRLXS .END.END5]RMSRLX .ENDzu~Njkl@{:(#@:@vL@^@Sժ@.@S;@@Sū@zirȪ@+@@:@g@!@_Ȫ@S5@"@:@u~@9@;@K@Sū@z@Sū@Sժ@zժ@ZȪ@Q@n'@S۪@y@+˫@Ѫ@5M@y@@Y @z@@_@x@R@f@˫@Ȫ@K@ժ@{:(#@S۪@ū@:@{:(#@zOq@S۪@۪@ @*}@ū@{L@<@L@@ Ȫ@S@}@YȪ@e@z.@L@5@q;@T˫@y@z˫@n˫@v:@Ȫ@XȪ@˫@@E@z۪@z8Ȫ@{:(#@kf@n۪@@@~@^@Ȫ@=@)&Ȫ@@@@@@z@@@@@@@@@@T۪@.x@@@@z@@{:(#@@@@@@@@@@@@@b@@@""@$"@"@yg@{:(#@s@{:(#@:@t!@2K@Z@d@p@"l@+@"6m;@+:+:+:@JDa t,a r̫rTG02pa i&,1zhG( +: p Z d  K(( "l00 "l88 p@@ ppp +~~ Da r C?H?4DBCC?GpC?ff?IA@B= ?AAA@BBCAB@B~nr[22;1f|[1;24r Type any key to continuec$Press to return to main clock. at line Alarm tir|6<dr~me: )[?25lPress to return to main clock.eEsScCiIdDaArR0 Return<[24;1fF[24;24rR to clock` c6H0T<^FjRx`~block displayr Analog~ user-inserted message Delete new message Insert "Someone overslept..." messr~6BR^|age Clear alarm Exit Set to monitor%Type the first letter of your choice.H[1;1fR19"(2BlHvR~TXPM^pdAMjapMessage recorded.MSG> Message deleted. prompt.MSG>)Type in the message wh*X ^djp2<P\d~en prompted by the Invalid alarm time (2 digits each).!Enter new alarm time. Format is 8&Returning to Mai.Dj8|Hn Menu Absurdity... b+Set-up Menu Someone overslept...i3 CtrlbJbhnt~6To set up or exit, press , which on the PC350 is I/To turn off alarm when it rings (beeps), press 8Al>Dx8~:arm time is J The date is ZThe correct time is: t8(If you use improper format, the alarm will not go off). ThanJ Z:tv~k you!.Enter alarm time, format y (12-hour)hh:mm PM or hh:mm AMhh:mm (24-hour)*same& .4BNV bv*~. as displayed timeDDo you want to set alarm? [Y/N]h!. This will rarely be necessary.Set-up(To set time, go D:h`j|to Main Menu then press The system time is now ?TIMECLOCK -- written Oct.-Dec. 1983; Y2K fixes Jan. 2000 & 2001 8P $[1m,[m2[7m:[J@[HJ!A L A R M I S S O U N D I N G$ ,2: @*J l < ,a <i<048@PT X \ FXr G0 G4 G8 G@ GP GT GX "G\ &G *G .G 2GF 6GX :G<8(,-^./25(7J:t<|>?Ar G G G G^ G G G "G( &GJ *Gt .G| 2G 6G :G<pD&EXFzGHI KDPvdfgik n(r G& GX Gz G G G  GD "Gv &G *G .G 2G 6G  :G(<x\v ,$6(;J@bJvTr G\ Gv G G G G G "G  &G$ *G( .GJ 2Gb 6Gv :G<6NlXbgtr G G G G G G G6 "GN &Gl *G .G 2G 6G :G< $T Z ^ b f r   * r G G G G G GT GZ "G^ &Gb *Gf .Gr 2G 6G :G <P4 >6 Hh R \ z   . 6 R D X F \ v ` r G G6 Gh G G G G "G &G. *G6 .GR 2GX 6G\ :G` < z 4 ^ @ r Gz G G G G G4 G^ "G &G *G .G 2G 6G :G@ <^   P'P'r'z'''''r G^ G G GP G G GP "Gr &Gz *G .G 2G 6G :G<'" '^"'$'&'('*','D.'p0'2'4'5'86'~r G" G^ G G G G G "GD &Gp *G .G 2G 6G8 :G~<07'8':'<'>'@'B'D'F'$H'(J'FL'JN'^P'br G G G G G G G "G &G$ *G( .GF 2GJ 6G^ :Gb<hR'zT'V'X'Z'\'^'`'b'd'f'4h'8j'vl'r Gz G G G G G G "G &G *G .G4 2G8 6Gv :G<n'p'r't'v',x'Pz'p|'t~''''' '6r G G G G G, GP Gp "Gt &G *G .G 2G 6G  :G6<'b''''''':'B(JtPtTttr Gb G G G G G G "G: &GB *GJ .GP 2GT 6G :Gtt0u|},2 G G G G G,G   6m;(  i j  +:00 Da Da ,a  *TIMECL ̫r a p60PFPBL nvLvL vL^PvLSժ Da F ̫rPSժ Da B "̫rL$vL(vL,vL0vL4.(b^ HH<H6p^ S;  Sū ̫rHirȪ ̫rHirȪ Da <+irȪ ̫rH +"$irȪ &Da 6,DD 668r+Sū ̫rD  :irȪ ̫rDg!vL_Ȫ ,a 6 irȪ ",a 6$S5 (,a 8*irȪ.8::DHr ,a 8S5 ,a : irȪ ,a :"::irȪ ̫rDg"!$vL(irȪ *̫rH,irȪ$.@H(<H p Da .+Sū ̫r@ irȪ ̫rHirȪ Da (+Sū ̫r<irȪ ̫rHirȪ Da "+(8H<400nSū ̫r8vL irȪ ̫rHirȪ Da <+Sū ̫r4S; Sū "̫r0$irȪ &̫r0&0000pirȪ ̫r0+  irȪ ̫r0+irȪ ̫r0+irȪ ̫r0 +"$irȪ.>0,p ̫r0+Sū ̫r, vL:irȪ Da g!vL"$:&irȪ (Da *g.h@<BnirȪ ̫r@g u~girȪ ̫r<g! ":$irȪ &Da B(g,!0@nvL : irȪ Da girȪ ̫r@girȪ Da  g$!&vL*,:.irȪ.<d(B@p ̫r<g irȪ Da dg!vL:irȪ Da B g$!&(:*irȪ ,Da @*(,fPng!  9irȪ ̫r(;!vLu~ K"Sū $,a f&irȪ (̫rP$^fbfbfb^0pKSū ,a ^ Sժ Da f ,a bzժ Da f ,a bZȪ Da f ,a b ,a ^ 0"Q,.Z,LL,fb^0nZn' S;S۪ ̫rLy+˫Sū ̫rLn' ZȪ "Da f $,a b &,a ^(0*zժ.Vfb,-ff&$r Da f ,a bn' vLѪ ,a f5MѪ ,a f5M y"$Y &(Sժ *Da & ,̫r$,.f@<$/pvLѪ ,a firȪ ̫r@irȪ Da +irȪ ̫r<"+$Sū &̫r$(vL(f@<pѪ ,a f  irȪ ̫r@irȪ Da +irȪ ̫r<+ "irȪ $Da &+&@<pirȪ ̫r@ + irȪ Da +irȪ ̫r<+irȪ Da "+$Sū,$2($$p ̫r$vL irȪ ̫r(irȪ Da $:irȪ Da  g$irȪ &̫r$(g0(|58ppirȪ Da g !Q(Q|vL:irȪ ̫r8"g&irȪ (Da p*g.irȪ,B<7 @p ̫r<g ! vL9irȪ ̫r ;!: irȪ "̫r@$g(irȪ *Da 2j:<D>ng! . vL_xvL:irȪ ̫rD"g&!(vL,.:0irȪ0@V<@p ̫r@g irȪ Da VgirȪ ̫r<gu~ g$irȪ &̫r@(g,!..B<?Z Fr:irȪ Da B g!:irȪ ̫r<g!vL".$Z &(:*irȪ ,Da F2A4 pgirȪ ̫r girȪ Da g!vL :"irȪ $Da 4&g*irȪ ,̫r .g0D@pirȪ Da g !vL:irȪ Da girȪ ̫r@"g&irȪ (Da *g.irȪ0H<E@r ̫r<g irȪ Da g!vL:irȪ Da  g$irȪ &̫r@(g,irȪ .Da 2tF<@pg! vL:irȪ ̫r<girȪ Da g"irȪ $̫r@&g*irȪ ,Da .g0<G tirȪ ̫r<g irȪ Da g!vLu~ S;$_&R(*f,irȪ .̫r ,ZH pS;_ R f˫Y Ȫ ,a ZvL u~"$irȪ &̫r (*K,ZZ IBpժ ,a Z Da Z K yY  .vL: irȪ "Da B$g(!*2KXt:irȪ ̫r g!:irȪ ̫rgS; "$g(!*vL.irȪ 0,a X(LXjXVp"{:(# S۪ ,a Xū Da jKS۪ ,a Xū Da V K":$&Y 0pvvP4dfbfnv.v vL:irȪ ̫r4g!Q vL$Sժ &Da f (,a b*vL.0@P<Lgp:irȪ ̫r@ girȪ ̫rPgirȪ ̫r<girȪ ̫rL"g&!(vL,.:,,iXXrirȪ ̫r,g !vLirȪ ,a X"{:(#S۪ ,a X "Sū $̫r&irȪ (̫r*irȪ& fZp Da K irȪ ̫rirȪ Da K:Y  Sժ Da f ",a Z$.DknPLn:irȪ ̫rD g!OqvLxvL :"irȪ $̫rP&g*irȪ ,̫rL*<bfbbR\xng! S۪ ,a b۪ Da fSū ,a bժ ,a b Da R \ Q"$vL(Sժ,bDDp Da  ̫r : irȪ ̫rDg!OqvL: irȪ "̫rD$g(!*0@#^<n:irȪ ̫r@ gS;*}girȪ Da ^g"!$vL(*:,irȪ .̫r<4X D ng! vL.X vLvL:irȪ ̫rD"g&!(*:,S;0264pgirȪ Da 4 g!vL:S; "g&!(vL,S;0x24:0D,6$pirȪ ̫rDg !OqvLvL:irȪ Da  g$irȪ &̫r$(g,irȪ .Da 2D;B@ rg! vLS;x:irȪ Da Bg !"vL&(9*irȪ ,̫r .;0!.rJ f@r.vL irȪ ̫r Kū ,a fY :irȪ ̫r@"g&irȪ (Da *g.<TB(nirȪ ̫r<g !QOqvL_x: irȪ "Da B$g(!*Q,(0B@<rvLvL Sժ Da B ̫r:irȪ ̫r@girȪ Da "g&irȪ (̫r<*g.!2@nvL_ x vLOqvLvL:irȪ Da "g&irȪ (̫r@*g.irȪ 0Da 2 <BngirȪ ̫r< girȪ Da g!vLS;"x$&:(irȪ *Da B,g0!.NltvL : irȪ Da g!{LirȪ ̫r; !"vL&(:*irȪ ,Da l.xXbB@pg! _ xOqvLvLSժ Da B ̫r :"irȪ $̫r@&g*irȪ ,Da 6<gt0rgirȪ ̫r< g!vL_xvLOq vL$vL(*:,irȪ .̫r00g4!2 f fpQ vL vLѪ ,a fOqvL irȪ "̫r $S;(_*R,.irȪ 0Da f* `  n  irȪ ̫r _S;RirȪ Da `+Sū ̫r "vL&irȪ (̫r ,( ZT TrS;_ R irȪ Da ZT irȪ ̫r _S;"R$&irȪ (Da T*+4P $nSū ̫r vL OqvLvLvLvL <"Sū $̫r&vL*irȪ ,̫r.S;2L. NpirȪ Da N + irȪ ̫rS;S;R+˫Sū ̫r vL$irȪ &̫r(,Sū, p  p9 n ,a  Ȫ Da p S۪ ,a S}vLS;YȪ Da p S;$&˫(e* 0 V*Vp. Q  irȪ ̫rS;S;Rf. Sū ",a V$vL(Ѫ *,a V.L2 p7 V4prS;YȪ Da p S;˫LyY  5 ",a V$vL(S;, Ȫ .Da p0S۪0, Vd> ppdVp ,a Vq;  SvLS; Ȫ Da pS;YȪ Da p"S;&(T˫*S۪ ,,a V.2X H ppdryz˫S; n˫v:SvLS; Ȫ Da p S;$YȪ &Da p(S;,.T˫0S۪. V p RTTp ,a Vy z˫ S;YȪ Da pS;T˫z˫S vL$S5 (,a T*Ȫ ,,a T* T RTpTp0pXȪ ,a T Da   Q n'S۪ ,a T Ȫ Da pS۪ ,a T YȪ "Da p$S;(. RT TR\pn˫Sn' XȪ ,a T Da  Ȫ ,a Tn'vL $YȪ &Da p(.*E,Sū2 zR V p pfp ̫rvL Q R vLS5 ,a VvLS;  Ȫ "Da p$S;(YȪ *Da p,z۪ .Da f0S6. V p9R  D F nvL8Ȫ ,a V vLS;YȪ Da pS;˫ e"R $Q& (vL,Oq.vL2vL0` v HD nvL : irȪ ̫rHgirȪ Da Dg!vL"$:&irȪ (Da *g.!2 8<  pvL : irȪ ̫r8girȪ Da girȪ ̫r< g$irȪ &Da (g,!.vL0 8< p:irȪ ̫r8 girȪ Da girȪ ̫r<g irȪ "Da $g(!*vL.0 8< p:irȪ ̫r8 girȪ Da girȪ ̫r<girȪ Da "g&!(vL,.:0 8< pirȪ ̫r8g irȪ Da girȪ ̫r<girȪ Da  g$!&vL*,:.irȪ0> 8<z 8r ̫r8g irȪ Da girȪ ̫r<girȪ Da zg"!$vL(*:,irȪ .̫r82j n<\ 8pgirȪ Da n girȪ ̫r<girȪ Da \g !"vL&(:*irȪ ,̫r8.g2 ,<N HpirȪ Da ,g irȪ ̫r<girȪ Da Ng!vL"vL&(:*irȪ ,̫rH.g2 BH8 RpirȪ Da Bg irȪ ̫rHgirȪ Da 8g!vL"vL&irȪ (,a R*".{:(#0S۪* R R  n ,a RSū ̫r  Ѫ ,a R Q vLirȪ Da "irȪ $̫r &_(kf$ NfNBNNZpSū ,a N S۪ Da f۪ ,a Nn۪ Da Bv:Sū ,a Nժ ,a N Da Z"<: @  N$P np@ . vLS۪ ,a N.@$ "$P&(vL,Q. 0~ 6,a n:^0r lnlnlZ4r Ȫ ,a l n'S۪ ,a nv:.Sū ,a l= ,a n")&Ȫ $,a l&vL*S5 .,a 4* 400V22fnirȪ ,a 4" Ȫ ,a 0irȪ ,a 0S5 ,a 2irȪ ,a 2 "$&Sժ (Da f" ""f&&>*n ,a irȪ ,a  Ȫ ,a "irȪ ,a "Sժ Da f ,a &irȪ ,a &Sժ Da > ,a ** *R..f  pirȪ ,a *S5 ,a .irȪ ,a ."vLSժ Da f ,a "irȪ $,a &Ȫ (,a *fPxirȪ ,a Sժ Da f ,a irȪ ,a Ȫ ,a irȪ ,a S5 ,a  irȪ ",a $"(,.  nS5 ,a  irȪ ,a _Ȫ ,a irȪ ,a S5 ,a irȪ ,a  "$&vL*S۪&Vf6:t Da fn۪ Da 6 Sū ,a irȪ ,a Sժ Da : ,a irȪ ,a S5 ,a "irȪ $,a ,x:v" Ȫ ,a irȪ ,a Sժ Da : ,a irȪ ,a S5 ,a "irȪ $,a &"*.nvL_Ȫ ,a  irȪ ,a S5 ,a irȪ ,a " S5 $,a &irȪ (,a *S5,~p ,a irȪ ,a  S5 ,a irȪ ,a S5 ,a irȪ ,a ""$S5 (,a *irȪ.p ,a S5 ,a  irȪ ,a "vLS5 ,a  irȪ ",a $S5 (,a *irȪ ,,a ,~pS5 ,a  irȪ ,a S5 ,a irȪ ,a "Ȫ ,a "irȪ $,a &S5 *,a 0D'DHpirȪ ,a " OqvL:irȪ ̫rDg irȪ "̫rH$g(irȪ *Da ,g2p''D'fJr!vL ^ vLS;x:irȪ ̫rD g$!&vL*Sժ ,Da f .,a J0Sժ(JF''2r ,a J ,a FvL vLSժ Da 2 ,a irȪ ,a Ȫ ,a irȪ ,a "_Ȫ $,a &irȪ(2r ,a "  Sժ Da 2 ,a irȪ ,a Ȫ ,a irȪ ,a S5 ",a $irȪ &,a *'h22p" vLS5 ,a irȪ ,a Sժ Da 2 ,a irȪ ,a "Sժ $Da 2 &,a (irȪ, '''.B.n ,a S5 ,a  irȪ ,a "vLvLS۪ Da ."T۪ $Da B&S۪ (Da .*T۪"4BN>:B>B>Bn Da Bn۪ Da N Sū ,a >Sū ,a :Ȫ ,a Bzժ ,a > ,a BZȪ ,a > ,a B*R:Z' 'B*26n ,a :ZQ  n'vLS۪ ,a B.xT۪ Da *S۪ Da 2"˫$Sū &,a 6(S۪&xB&22"'B*n ,a B.xT۪ Da & S۪ Da 2˫Sū ,a 2vLS۪ ,a B T۪ "Da *$S۪&2.B&2*$'n Da 2˫Sū ,a . S۪ ,a BT۪ Da &S۪ Da 2˫Sū ,a * vL$irȪ(.6*2p ,a .irȪ ,a 6 _Ȫ ,a irȪ ,a "irȪ ,a *irȪ ,a 2 S5 $,a &irȪ2&'&'>B:Z>B&'('*'r ,a "  vLn'ZȪ ,a > ,a B ,a :Zzժ ,a > ",a B$n'(vL,vL0S۪$.B.B"&"Br Da .T۪ Da B S۪ Da .T۪ Da Bn۪ Da "Sū ,a &Sū ,a "Ȫ ,a B"zժ*.&B&B"@*','Br ,a & ,a BZȪ ,a & ,a B ,a "@Qn'vLS۪ ,a B".x$T۪ &Da (S۪&T26B&22.'n Da 2˫Sū ,a 6 S۪ ,a B.xT۪ Da &S۪ Da 2˫Sū ,a 2 vL$S۪$vB2.B&2p ,a BT۪ Da  S۪ Da 2˫Sū ,a .S۪ ,a BT۪ Da & S۪ "Da 2(*0'.6*n˫Sū ,a * vLirȪ ,a .irȪ ,a 6_Ȫ ,a irȪ ,a ""$irȪ &,a *.22'2'&B"@&tirȪ ,a 2S5 ,a irȪ ,a "vLn' ZȪ ",a & $,a B &,a "(@*zժ ,,a &,B2'4'  j r ,a Bn' vLirȪ ,a "{:(#S۪ ,a ū Da j"K$S۪ &,a (*ū&  V r Da K: S۪ ,a ū Da VK:S۪ ,a ū Da "K$:2.8B5'Z 4 rY 8 Q BvL.Z :irȪ ̫r4g"irȪ $̫r&g*S;.02\ 6'ngS; girȪ Da girȪ ̫r  g$!&vL*,u~.Sū 0̫r*7' ZZpvL u~ irȪ ̫r Kժ ,a Z Da ZKy "Y $&.(.8':'<'nQvL vLirȪ ̫r_S;RSū ̫r vL$irȪ &̫r(f*Sū ,,a .>'NN@'rvLժ ,a  Da Nezժ Da N ,a vLirȪ ̫r S;$S;(R*Sū ,̫r0B'JD'JF$F'H'tvLirȪ ̫r fSū ,a JvLժ ,a J ,a FY $ Q"$vL(vL,S۪ .Da (0FJNJ'L'.nT۪ ,a S۪ Da F T۪ ,a Jn۪ Da N˫Sū ,a vLvL"S۪ $Da .&T۪(TN'P' 2n ,a n۪ Da  Sū ,a vLvLS۪ ,a .xT۪ Da  S۪ "Da 2$˫&Sū*xR' 2T'V'2n ,a vL S۪ ,a T۪ Da S۪ Da 2˫Sū ,a vL"vL&Sժ (Da 2&2r ,a irȪ ,a  Sժ Da 2 ,a irȪ ,a _Ȫ ,a irȪ ,a " "irȪ $,a ,X'Z'FJ nirȪ ,a S5 ,a irȪ ,a "vLvL S۪ "Da F$T۪ &,a J(Sū *,a .\'^'.  `'b' tvLvL S۪ Da .T۪ ,a n۪ Da Sū ,a vL vL$S۪ &,a (.x*T۪ ,Da &2d' 2nS۪ Da 2˫ Sū ,a vLS۪ ,a T۪ Da S۪ Da 2 ˫"Sū $,a (4f'h'22rvLvL Sժ Da 2 ,a irȪ ,a Sժ Da 2 ,a irȪ ,a  _Ȫ ",a $irȪ &,a ,Xj'JFn" irȪ ,a irȪ ,a S5 ,a irȪ ,a " "vL&Sժ (,a J *,a F.l'n'p'bf FnvLQ  vLvLS۪ Da bf Sū ,a  irȪ ",a $S5 (,a *irȪ ,,a (r'22p" vLSժ Da 2 ,a irȪ ,a Sժ Da 2 ,a irȪ ,a "_Ȫ $,a &irȪ,t'2n ,a "  irȪ ,a irȪ ,a S5 ,a irȪ ,a ""$vL(Sժ *Da 2&||2r ,a |irȪ ,a | Sժ Da 2 ,a irȪ ,a _Ȫ ,a irȪ ,a " "irȪ $,a ,zzv'Jf vvrirȪ ,a S5 ,a zirȪ ,a z"vLS۪ Da J "f $Sū &,a v(irȪ *,a v*@Fxxx'F^F^nS5 ,a x irȪ ,a x"vLS۪ ,a Fn۪ Da ^ S۪ ",a F$n۪ &Da ^(v:,fpz'|' 26r˫p Q vLvLS۪ ,a .xT۪ Da  S۪ "Da 2$˫&Sū (,a 6*S۪& &22~' n ,a .xT۪ Da & S۪ Da 2˫Sū ,a 2vLS۪ ,a  T۪ "Da $S۪&2. &2*'n Da 2˫Sū ,a . S۪ ,a T۪ Da &S۪ Da 2˫Sū ,a * vL$irȪ(.6tt*2rp ,a .irȪ ,a 6 _Ȫ ,a tirȪ ,a t"irȪ ,a *irȪ ,a 2 S5 $,a r&irȪ.r'$'' *2n ,a r"  vLQ$vLvLS۪ ,a  .x"T۪ $Da *&S۪ (Da 2*˫,Sū& 6 &22' n ,a 6S۪ ,a  .x T۪ Da &S۪ Da 2˫Sū ,a 2vLS۪ ,a "$T۪$B*2. &2*p Da *S۪ Da 2 ˫ Sū ,a .S۪ ,a T۪ Da &S۪ Da 2˫ Sū ",a **b'.6pp*2nvLirȪ ,a . irȪ ,a 6_Ȫ ,a pirȪ ,a p"irȪ ,a *"irȪ $,a 2&S52nn'$'4r ,a nirȪ ,a n "vLQ$vL: irȪ "̫r4$g(""*$",.g4''tirȪ Da g "yg!vL:irȪ Da  g$!&vL*irȪ ,,a ."2{:(#,'jHnvLS۪ ,a  ū Da j:irȪ ̫rHg"irȪ $Da &g*!,:'Z(DnQ:vL S۪ ,a ū Da Z(Q :"irȪ $̫rD&g*!66P'B'P(tt@psPvL sBvL^PvLOqvL"vL&(:*irȪ ,̫r@.g2""4$"0h<trg irȪ ̫r<girȪ Da g!vL """$ū &Da (*,.:,Dt  ZnirȪ ̫rDg !svLirȪ ,a "{:(# S۪ ",a $&ū (Da Z*4tD` t0uHrQ vL:irȪ ̫rDg!s`  vL$vL(*:,irȪ .̫rH0g0xHn|hhjtirȪ Da xg irȪ ̫rHgirȪ Da ng!vL"_Ȫ $,a h&irȪ (,a h*S5 .,a jjll}DirȪ ,a jS5 ,a lirȪ ,a l":vLt!irȪ ,a "{:(# S۪ ",a $&ū (Da Z*4tD` t0uHrQ vL:irȪ ̫rDg!s`  vL$vL(*:,irȪ .̫rH0g0xHn|hhjtirȪ Da xg irȪ ̫rHgirȪ Da ng!vL"_Ȫ $,a h&irȪ (,a h*S5 .,a jjll}DirȪ ,a jS5 ,a lirȪ ,a l":vL 000000 000000 000000 000000 000000 000000 000000 0000000C 000340 000000 000000 000000 000000 000000 000000 000000 000000C 000360 000000 000000 000000 000000 000000 000000 000000 000000C 000400 000000 000000 000000 000000 000000 000000 000000 000000C 000420 000000 000000 000000 000000 000000 000000 000000 000000C 000440 000000 000000 000000 000000 000000 000000 000000 000000C 000460 000000 000000 000000 000000 000000 000000 000000 0000000C 000500 000000 000000 000000 000000 000000 000000 000000 0000000C 000520 000000 000000 000000 000000 000000 000000 000000 000000C 000540 000000 000000 000000 000000 000000 000000 000000 000000C 000560 000000 000000 000000 000000 000000 000000 000000 000000C 000600 000000 000000 000000 000000 000000 000000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 0000000C 000660 000000 000000 000000 000000 000000 000000 000000 0000000C 000700 000000 000000 000000 000000 000000 000000 000000 000000C 000720 000000 000000 000000 000000 000000 000000 000000 000000C 000740 000000 000000 000000 000000 000000 000000 000000 000000C 000760 000000 000000 000000 000000 000000 000000 000000 000000 000 000000 000000C 000620 000000 000000 000000 000000 000000 000000 000000 000000C 000640 000000 000000 000000 000000 000000 000000 000000 0000000C 000660 000000 000000 000000 000000 000000 00000O DU2: Logical Block 000, 000714; I/O Status 1., 512., DSW= 1. $000000: GN9  AN  C  FQ  FS    L4 $000020:  B   T   T  DJ   $000040:        TIM $000060: ECL OC2 B2S  A  B HTQ JQ4 IMF $000100: G43 HG3 G.T G44 K47 LT3 G5B HTQ $000120: H3K HGX   m g l 0 7 $000140: u . SI ,2YZ CAX  DX 0 G  $000160:      2   $000200:      4   $000220:      6 E O B $000240:      0 G H G $000260:      2 H H $000300:      4   2 $000320:      6   $000340:      0   $000360:      2   $000400:      4   $000420:      6   $000440:      0   $000460:      2   $000500:      4   $000520:      6   $000540:      0   $000560:      2   $000600:      4   $000620:      6   $000640:      0   $000660:      2   $000700:      4   $000720:      6   $000740:      0   $000760:      2   Z9 $000000: 027027 000066 000003 000401 000403 000000 000000 001002 $000020: 000120 000000 000024 000000 000024 000252 000000 000000 $000040: 0000000 000000 000000 000000 000000 000000 000000 077165 $000060: 017704 057130 010623 000001 000002 032461 040512 035116 $000100: 030461 031471 030064 030462 045065 047101 030472 032461 $000120: 033463 031460 000000 000000 000000 000000 000000 000000 $000140: 000000 001401 146002 011400 000270 000000 000000 000000 $000160: 000000 000000 000000 000000 000000 000000 000000 000000 $000200: 000000 000000 000000 000000 000000 000000 000000 000000 $000220: 000000 000000 000000 000000 000000 000000 000000 000000 $000240: 000000 000000 000000 000000 000000 000000 000000 000000 $000260: 000000 000000 000000 000000 000000 000000 000000 000000 $000300: 000000 000000 000000 000000 000000 000000 000000 000000 $000320: 000000 000000 000000 000000 000000 000000 000000 000000 $000340: 000000 000000 000000 000000 000000 000000 000000 000000 $000360: 000000 000000 000000 000000 000000 000000 000000 000000 $000400: 000000 000000 000000 000000 000000 000000 000000 000000 $000420: 000000 000000 000000 000000 000000 000000 000000 000000 $000440: 000000 000000 000000 000000 000000 000000 000000 000000 $000460: 000000 000000 000000 000000 000000 000000 000000 000000 $000500: 000000 000000 000000 000000 000000 000000 000000 000000 $000520: 000000 000000 000000 000000 000000 000000 000000 000000 $000540: 000000 000000 000000 000000 000000 000000 000000 000000 $000560: 000000 000000 000000 000000 000000 000000 000000 000000 $000600: 000000 000000 000000 000000 000000 000000 000000 000000 $000620: 000000 000000 000000 000000 000000 000000 000000 000000 $000640: 000000 000000 000000 000000 000000 000000 000000 000000 $000660: 000000 000000 000000 000000 000000 000000 000000 000000 $000700: 000000 000000 000000 000000 000000 000000 000000 000000 $000720: 000000 000000 000000 000000 000000 000000 000000 000000 $000740: 000000 000000 000000 000000 000000 000000 000000 000000 $000760: 000000 000000 000000 000000 000000 000000 000000 002067 000000 000000 O DU2: Logical Block 000, 000714; I/O Status 1., 512., DSW= 1. $000000: 027027 000066 000002 000401 000403 000000 000000 001002 $000020: 000120 000000 000024 000000 000024 000252 000000 000000 $000040: 000000 000000 000000 000000 000000 000000 000000 077165 $000060: 017704 057130 010623 000001 000002 032461 040512 035116 $000100: 030461 032465 032470 030463 045065 047101 030472 032461 $000120: 033463 031460 000000 000000 000000 000000 000000 000000 $000140: 000000 001401 146002 011400 000270 000000 000000 000000 $000160: 000000 000000 000000 000000 000000 000000 000000 000000 $000200: 000000 000000 000000 000000 000000 000000 000000 000000 $000220: 000000 000000 000000 000000 000000 000000 000000 000000 $000240: 000000 000000 000000 000000 000000 000000 000000 000000 $000260: 000000 000000 000000 000000 000000 000000 000000 000000 $000300: 000000 000000 000000 000000 000000 000000 000000 000000 $000320: 000000 000000 000000 000000 000000 000000  *** Listing aborted ***O DU2: Logical Block 000, 000551; I/O Status 1., 512., DSW= 1.0 $000000: 000025 000002 000000 077165 017704 057103 057032 000001 $000020: 000026 000002 000000 035173 021450 000000 057032 000001 $000040: 000027 000002 000000 035173 021450 000000 050553 000001 $000060: 000030 000002 000000 035173 021450 000000 015156 000001 $000100: 000033 000006 000000 077165 017704 057103 100003 000001 $000120: 000034 000003 000000 077165 017704 057130 006273 000001 $000140: 000036 000002 000000 077165 017704 057130 006273 000003 $000160: 000037 000002 000000 077165 017704 057130 006273 000002 $000200: 000041 000002 000000 057644 120513 000000 047014 000001 $000220: 000042 000002 000000 057644 120513 000000 015156 000001 $000240: 000043 000004 000000 014474 022220 000000 057032 000001 $000260: 000044 000003 000000 014474 022220 000000 012314 000001 $000300: 000045 000004 000000 014474 022220 000000 100003 000001 $000320: 000031 000001 000000 063337 006273 034270 006273 000001 $000340: 000046 000002 000000 014474 022220 000000 057154 000001 $000360: 000047 000003 000000 014474 022220 000000 010623 000001 $000400: 000050 000005 000000 017144 021114 000000 012314 000001 $000420: 000035 000001 000000 077165 017704 057103 006273 000001 $000440: 000007 000010 000000 077165 020761 056700 015156 000001 $000460: 000054 000006 000000 077165 022100 000000 015156 000001 $000500: 000055 000005 000000 077165 017704 057130 100003 000001 $000520: 000056 000004 000000 076605 102464 000000 100324 000001 $000540: 000061 000020 000000 035173 021474 074740 050553 000001 $000560: 000062 000003 000000 077165 017704 057130 047014 000001 $000600: 000063 000003 000000 077165 017704 057130 012314 000001 $000620: 000064 000002 000000 077165 017704 057130 057154 000001 $000640: 000051 000003 000000 077165 017704 057103 010623 000001 $000660: 000052 000004 000000 077165 017704 057103 012314 000001 $000700: 000053 000003 000000 077165 017704 057103 057154 000001 $000720: 000065 000004 000000 077165 017704 057130 057032 000001 $000740: 000066 000003 000000 077165 017704 057130 010623 000001 $000760: 000021 000003 000000 011744 074765 006200 057032 000001 $000000: 000025 000002 000000 077165 017704 057103 057032 000001 $000020: 000026 000002 000000 035173 021450 000000 057032 000001 $000040: 000027 000002 000000 035173 021450 000000 050553 000001 $000060: 000030 000002 000000 035173 021450 000000 015156 000001 $000100: 000033 000006 000000 077165 017704 057103 100003 000001 $000120: 000034 000003 000000 077165 017704 057130 006273 000001 $000140: 000036 000002 000000 077165 017704 057130 006273 000003 $000160: 000037 000002 000000 077165 017704 057130 006273 000002 $000200: 000041 000002 000000 057644 120513 000000 047014 000001 $000220: 000042 000002 000000 057644 120513 000000 015156 000001 $000240: 000043 000004 000000 014474 022220 000000 057032 000001 $000260: 000044 000003 000000 014474 022220 000000 012314 000001 $000300: 000045 000004 000000 014474 022220 000000 100003 000001 $000320: 000031 000001 000000 063337 006273 034270 006273 000001 $000340: 000046 000002 000000 014474 022220 000000 057154 000001 $000360: 000047 000003 000000 014474 022220 000000 010623 000001 $000400: 000050 000005 000000 017144 021114 000000 012314 000001 $000420: 000035 000001 000000 077165 017704 057103 006273 000001 $000440: 000007 000010 000000 077165 020761 056700 015156 000001 $000460: 000054 000006 000000 077165 022100 000000 015156 000001 $000500: 000055 000005 000000 077165 017704 057130 100003 000001 $000520: 000056 000004 000000 076605 102464 000000 100324 000001 $000540: 000061 000020 000000 035173 021474 074740 050553 000001 $000560: 000062 000003 000000 077165 017704 057130 047014 000001 $000600: 000063 000003 000000 077165 017704 057130 012314 000001 $000620: 000064 000002 000000 077165 017704 057130 057154 000001 $000640: 000051 000003 000000 077165 017704 057103 010623 000001 $000660: 000052 000004 000000 077165 017704 057103 012314 000001 $000700: 000053 000003 000000 077165 017704 057103 057154 000001 $000720: 000065 000004 000000 077165 017704 057130 057032 000001 $000740: 000066 000002 000000 077165 017704 057130 010623 000001 $000760: 000021 000003 000000 011744 074765 006200 057032 000001 704 057103 010623 000001 $000660: 000052 000004 000000 077165 017704 057103 012314 000001 $000700: 000053 )Running TIME2 under E11's VT100 emulation)-----------------------------------------nMUnder E11, some escape sequences are treated differently -- perhaps this is GKhow a real VT100 works, but it is different from what the Pro350 uses. So HOwhen adding a message, the escape sequence will keep the screen from scrolling SOthe menu off the screen if using a Pro350 as terminal to the RSX system, or if Lrunning TIMECLOC2 or TIME2 on the Pro itself, but it will scroll if running under E11's emulated VT100.nKThe double-printing of the user message and the oversleep message when the nHalarm rings is intentional; perhaps it was meant for emphasis (the user Lmessage was originally intended as a reminder with e.g. details of the "zeroKhour" exam I was getting up early for). It could be prevented by clearing mHinstead of homing the screen before each refresh, but this would create Oundesirable flicker which is why I used the home, not the clear, sequence here cB(line 80). Anyway, it is not due to any terminal emulation issue.g of the user message and the oversleep message when the nHalarm rings is intentional; perhaps it was meant for emphasis (the user Lmessage was originally intended as a reminder with e.g. details of the "zeroKhour" exam I was getting up early for). It could be prevented by clearing mHinstead of homing the screen before each refresh, but this would create Oundesirable flicker which is why I used the home, not the clear, sequence here cB(line 80). Anyway, it is not due toSET NO DOUBLE 110 REM RENUMBERED ON 16-NOV-82 AT 11:24:55 STEP 1G20 REM SNOOPY: SNOOPY CALENDAR. REV. BY E. SCHAEFER, COMMACK SOUTH 3/75530 REM OTHER PICTURES BY DAVID KRAUS, NORTHPORT 10/8231 REM this is line 10piD32 REM Originally on DEC PDP 11/23; transfered to DEC PC350 9-29-83.40 DIM N(10,13),C$(14),P$(4)#50 FOR Q=1 TO 4\ READ P$(Q)\ NEXT Q60 PRINT "Choose picture:"70 FOR Q=1 TO 480 PRINT Q;". ";P$(Q) 90 NEXT Q 100 INPUT Z110 IF Z<1 THEN 60120 IF Z>Q THEN 601130 OPEN "dz1:"+P$(Z)+".pct" FOR INPUT AS FILE #1N(140 DATA "SNOOPY","DISKETTE","PI","METS"150 PRINT "What year calendar";S'160 INPUT Y\ IF INT(ABS(Y))<>Y THEN 150R170 IF Y<1582 THEN 220180 IF Y<=9999 THEN 280ML190 PRINT "Unable to do years after 9999 (if you notice there are only four"0200 PRINT "numbers at the top of the calendar)." 210 GOTO 150A220 PRINT "Not prepared to do calendars before MDLXXXII {1582} -"I:230 PRINT "the current calendar was not used before 1582."@240 PRINT "However, I have included the transition year of 1582"F250 PRINT "having ten days in October omitted to make up for previous")260 PRINT "error in the Julian calendar."Y 270 GOTO 150&280 PRINT "Roll paper and hit return." 290 INPUT J$295 PRINT '[?25h';r300 FOR F=1 TO 14u310 READ C$(F) 320 NEXT F@330 DATA "x","*",")","\","/","=","-","&","!","(","#","$","%",":"340 INPUT #1,K350 IF K=0 THEN 480r360 IF K=-1 THEN 500 370 N=INT(K)380 IF K=N THEN 440n390 H=INT((100*K-100*N)+.5)"400 FOR L=1 TO N410 PRINT C$(H); 420 NEXT L 430 GOTO 340440 FOR L=1 TO N450 PRINT " "; 460 NEXT L 470 GOTO 340 480 PRINT 490 GOTO 340 500 PRINT 510 PRINT 520 INPUT #1,T530 LINPUT #1,A$ 540 CLOSE #1550 PRINT TAB(T);A$ !560 FOR U=1 TO 10\ PRINT \ NEXT U 570 Y2=Y+.1u580 FOR Z3=1 TO 42590 Y1(Z3)=INT(Y2/(10^(4-Z3)))600 Y2=Y2-Y1(Z3)*(10^(4-Z3)) 610 NEXT Z3620 FOR L1=1 TO 10630 FOR L2=1 TO 13640 READ N(L1,L2) 650 NEXT L2 660 NEXT L1E670 FOR L=1 TO 131680 FOR T=1 TO 4685 N$=MID$(NUM$(Y),T+1,1)690 PRINT TAB(((T-1)*17)+1); 700 GOSUB 750 710 NEXT T 720 PRINT 730 NEXT L 740 GOTO 1060 :750 ON N((Y1(T)+1),L) GOTO 760,780,800,820,840,860,880,900$760 FOR Q=1 TO 14\ PRINT N$;\ NEXT Q 770 RETURN A'780 PRINT N$;N$;N$;" ";N$;N$;N$;7 790 RETURN 8800 PRINT N$;N$;N$; 810 RETURN /!820 PRINT " ";N$;N$;N$;( 830 RETURN E840 PRINT " ";N$;N$;N$;N$;O 850 RETURN !860 PRINT " ";N$;N$;N$;N$;N$;6 870 RETURN 7#880 PRINT " ";N$;N$;N$;N$;N$;N$;8 890 RETURN $900 IF L=13 THEN 940910 FOR I=1 TO (10-(L-3))U920 PRINT " "; 930 NEXT I940 PRINT N$;N$;N$;N$; 950 RETURN N"960 DATA 1,1,2,2,2,2,2,2,2,2,2,1,1"970 DATA 5,6,7,5,5,5,5,5,5,5,5,1,1"980 DATA 1,1,4,4,4,4,1,1,3,3,3,1,1"990 DATA 1,1,4,4,4,1,1,4,4,4,4,1,1#1000 DATA 2,2,2,2,2,1,1,4,4,4,4,4,4 #1010 DATA 1,1,3,3,3,1,1,4,4,4,4,1,1 #1020 DATA 1,1,3,3,3,1,1,2,2,2,2,1,1 #1030 DATA 1,1,8,8,8,8,8,8,8,8,8,8,8#1040 DATA 1,1,2,2,2,1,1,2,2,2,2,1,17#1050 DATA 1,1,2,2,2,1,1,4,4,4,4,4,4;!1060 DEF FNA(A)=INT(A-INT(A/4)*4)1#1070 DEF FNB(B)=INT(A-INT(A/7)*7)+1U1080 I1=INT((Y-1500)/100)I1090 A=I1*5+(I1+3)/41100 I2=FNB(A)1110 Y3=INT(Y-INT(Y/100)*100)21120 A=Y3/4+Y3+I27 1130 B=FNB(A)51140 IF Y3=0 THEN 12101150 T1=FNA(Y)1160 IF T1<>0 THEN 124041170 IF B<>0 THEN 11901180 B=6 1190 B=B-11200 GOTO 1240 1210 A=T1-1,1220 T1=FNA(A)1230 IF T1=0 THEN 11701240 IF B<>0 THEN 12601250 B=71260 IF Y=1582 THEN B=2,1270 PRINT \ PRINT \ PRINT 01280 FOR P4=1 TO 12, 1290 READ X$C1300 DATA "January",31,"February",28,"March",31,"April",30,"May",31UE1310 DATA "June",30,"July",31,"August",31,"September",30,"October",310 1320 READ Z(%1330 DATA "November",30,"December",31B!1340 FOR U=1 TO 4\ PRINT \ NEXT U1 1350 IF X$<>"February" THEN 14001360 IF Y/4<>INT(Y/4) THEN 14000#1370 IF Y/100<>INT(Y/100) THEN 13900#1380 IF Y/400<>INT(Y/400) THEN 14000 1390 Z=Z+1<1400 PRINT TAB(13);"---------------------------------------"!1410 PRINT TAB(33-(LEN(X$)/2));X$R<1420 PRINT TAB(13);"---------------------------------------"1430 PRINT \ PRINT ,<1440 PRINT TAB(13);"Sun Mon Tue Wed Thu Fri Sat"<1450 PRINT TAB(13);"=======================================" 1460 Q=2-B 1470 PRINT U:1480 PRINT TAB(13);\ FOR P2=Q TO Q+6\ IF Y<>1582 THEN 1500E1490 IF X$="October" THEN IF P2=5 THEN P2=16\Q=Q+10\ PRINT " 15 ";1500 IF P2<1 THEN 15301510 IF P2<10 GOTO 15501520 GOTO 157061530 PRINT " ";\ REM I thought it was 7 blanks...1540 GOTO 158021550 PRINT P2;" ";\ REM I think it's 3 blanks...1560 GOTO 15801570 PRINT P2;" ";T 1580 NEXT P2 1590 Q=Q+7 1600 PRINT 1610 IF Q+6<=Z THEN 14801620 B=11630 IF Q-1=Z THEN 1690=1640 PRINT TAB(13);=1650 FOR P2=Q TO Z1660 PRINT P2;" ";T 1670 B=B+1 1680 NEXT P21690 PRINT \ PRINT \ PRINT 1700 NEXT P41710 FOR P5=1 TO 706 1720 PRINT T 1730 NEXT P51735 PRINT 'c';C1740 END \ REM <-- This is the most SIGNIFICANT Line In The Program M I thought it was 7 blanks...1540 GOTO 158021550 PRINT P2;" ";\ REM I think it's 3 blanks...1560 GOTO 1580mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm