home *** CD-ROM | disk | FTP | other *** search
/ Hall of Fame / HallofFameCDROM.cdr / misc3 / tclock.bas < prev    next >
BASIC Source File  |  1986-10-18  |  25KB  |  502 lines

  1. 10 ' TCLOCK.BAS
  2. 1000 ' -----------------------------------------------------------------------
  3. 1010 ' PROGRAM NAME = TCLOCK
  4. 1020 '     FUNCTION = DATE AND TIME DISPLAY ON MONOCHROME
  5. 1030 ' -----------------------------------------------------------------------
  6. 1040 '       AUTHOR = WILLIAM T. VATH
  7. 1050 ' -----------------------------------------------------------------------
  8. 1060 '
  9. 1070 ' To See Instruction Menu, Type Character ?.(INSTRUCTIONS)
  10. 1080 '
  11. 1090 ' To Set Alarm Type Character A.(ALARM)
  12. 1100 '
  13. 1110 ' To Switch From 12 Hour To 24 Hour Display, Type Character M.(MODE)
  14. 1120 '
  15. 1130 ' To Turn Time Change Beep On Or Off, Type Character B.(BEEP)
  16. 1140 '
  17. 1150 ' To Turn Chimes On Or Off, Type Character C.(CHIME)
  18. 1160 '
  19. 1170 ' To Set Date & Time, Type Character S.(SET)
  20. 1180 '
  21. 1190 ' To Cancel The Program And Return To Caller, Hit The ESC Key.
  22. 1200 '
  23. 1210 ' -----------------------------------------------------------------------
  24. 1220 '
  25. 1230 DEFINT A-Z:DIM ALARM$(6),ALDESC$(6):AL$="  :  ":DES$=STRING$(50,32)
  26. 1240 DEF SEG=&H40:POKE &H17,64
  27. 1250 FOR I=1 TO 6:ALARM$(I)=AL$:ALDESC$(I)=DES$:NEXT
  28. 1260 KEY OFF:WIDTH 80:COLOR 7,0:CLS
  29. 1270 D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  30. 1280 SW1$="1":SW2$="0":BP1$="1":BP2$="0":CH1$="0":CH2$="1":AL1$="0"
  31. 1290 ET1$="0":ET2$="1"
  32. 1300 ' -----------------------------------------------------------------------
  33. 1310 '                                                           PRINT BIG BOX
  34. 1320 ' -----------------------------------------------------------------------
  35. 1330 '
  36. 1340 CLS:LOCATE 1,1,0:COLOR 7,0:PRINT CHR$(201)+STRING$(77,205)+CHR$(187);
  37. 1350 FOR I=2 TO 24
  38. 1360 LOCATE I,1:PRINT CHR$(186);:LOCATE I,79:PRINT CHR$(186);
  39. 1370 NEXT
  40. 1380 LOCATE 25,1:PRINT CHR$(200)+STRING$(77,205)+CHR$(188);
  41. 1390 ' -----------------------------------------------------------------------
  42. 1400 '                                                       PRINT CENTER LINE
  43. 1410 ' -----------------------------------------------------------------------
  44. 1420 '
  45. 1430 LOCATE 13,1:COLOR 7,0:PRINT CHR$(204)+STRING$(77,205)+CHR$(185);
  46. 1440 ' -----------------------------------------------------------------------
  47. 1450 '                                                          PRINT DATE BOX
  48. 1460 ' -----------------------------------------------------------------------
  49. 1470 '
  50. 1480 LOCATE 6,2:COLOR 7,0:PRINT CHR$(201)+STRING$(4,205)+CHR$(187);
  51. 1490 LOCATE 7,2:PRINT CHR$(186)+STRING$(4,32)+CHR$(186);
  52. 1500 LOCATE 8,2:PRINT CHR$(200)+STRING$(4,205)+CHR$(188);
  53. 1510 LOCATE 7,3:PRINT "DATE";
  54. 1520 ' -----------------------------------------------------------------------
  55. 1530 '                                                         PRINT DATE DASH
  56. 1540 ' -----------------------------------------------------------------------
  57. 1550 '
  58. 1560 LOCATE 7,36:COLOR 0,7:PRINT STRING$(4,32)
  59. 1570 ' -----------------------------------------------------------------------
  60. 1580 '                                                          PRINT yEAR BOX
  61. 1590 ' -----------------------------------------------------------------------
  62. 1600 '
  63. 1610 LOCATE 9,72:COLOR 7,0:PRINT CHR$(201)+CHR$(205)+CHR$(205)+CHR$(187);
  64. 1620 LOCATE 10,72:PRINT CHR$(186)+CHR$(32)+CHR$(32)+CHR$(186);
  65. 1630 LOCATE 11,72:PRINT CHR$(200)+CHR$(205)+CHR$(205)+CHR$(188);
  66. 1640 ' -----------------------------------------------------------------------
  67. 1650 '                                                          PRINT TIME BOX
  68. 1660 ' -----------------------------------------------------------------------
  69. 1670 '
  70. 1680 LOCATE 18,2:COLOR 7,0:PRINT CHR$(201)+STRING$(4,205)+CHR$(187);
  71. 1690 LOCATE 19,2:PRINT CHR$(186)+STRING$(4,32)+CHR$(186);
  72. 1700 LOCATE 20,2:PRINT CHR$(200)+STRING$(4,205)+CHR$(188);
  73. 1710 LOCATE 19,3:PRINT "TIME";
  74. 1720 ' -----------------------------------------------------------------------
  75. 1730 '                                                        PRINT TIME COLON
  76. 1740 ' -----------------------------------------------------------------------
  77. 1750 '
  78. 1760 LOCATE 17,37:COLOR 0,7:PRINT SPACE$(2):LOCATE 21,37:PRINT SPACE$(2)
  79. 1770 ' -----------------------------------------------------------------------
  80. 1780 '                                                       PRINT SECONDS BOX
  81. 1790 ' -----------------------------------------------------------------------
  82. 1800 '
  83. 1810 LOCATE 21,72:COLOR 7,0:PRINT CHR$(201)+CHR$(205)+CHR$(205)+CHR$(187);
  84. 1820 LOCATE 22,72:PRINT CHR$(186)+CHR$(32)+CHR$(32)+CHR$(186);
  85. 1830 LOCATE 23,72:PRINT CHR$(200)+CHR$(205)+CHR$(205)+CHR$(188);
  86. 1840 ' -----------------------------------------------------------------------
  87. 1850 '                                                                GET DATE
  88. 1860 ' -----------------------------------------------------------------------
  89. 1870 '
  90. 1880 D$=DATE$
  91. 1890 D1$=LEFT$(D$,1):D2$=MID$(D$,2,1):D3$=MID$(D$,4,1):D4$=MID$(D$,5,1)
  92. 1900 D1=VAL(D1$):D2=VAL(D2$):D3=VAL(D3$):D4=VAL(D4$):YR$=RIGHT$(D$,2)
  93. 1910 LOCATE 10,73:COLOR 7,0:PRINT YR$;
  94. 1920 ' -----------------------------------------------------------------------
  95. 1930 '                                                                GET TIME
  96. 1940 ' -----------------------------------------------------------------------
  97. 1950 '
  98. 1960 T$=TIME$:TL$=LEFT$(T$,2)
  99. 1970 TR$=MID$(T$,4,2):TR1$=MID$(T$,4,1):TR2$=MID$(T$,5,1)
  100. 1980 TL=VAL(TL$):TR=VAL(TR$):TR1=VAL(TR1$):TR2=VAL(TR2$)
  101. 1990 IF SW1$="1" THEN 2000 ELSE 2050
  102. 2000 IF TL>11 AND TR>0 THEN LOCATE 15,72:COLOR 1,0:PRINT"P M":GOTO 2020
  103. 2010 LOCATE 15,72:COLOR 1,0:PRINT "A M";
  104. 2020 '
  105. 2030 IF TL>12 THEN TL=TL-12
  106. 2050 '
  107. 2060 IF SW1$="0" THEN LOCATE 15,72:COLOR 1,0:PRINT "MIL";
  108. 2070 SEC$=RIGHT$(T$,2):LOCATE 22,73:COLOR 7,0:PRINT SEC$;:COLOR 0,7
  109. 2080 LOCATE 24,2:COLOR 7,0:IF CH1$="1" THEN PRINT CHR$(14); ELSE PRINT" ";
  110. 2090 LOCATE 24,78:COLOR 7,0:IF BP1$="1" THEN PRINT CHR$(46); ELSE PRINT" ";
  111. 2100 ' -----------------------------------------------------------------------
  112. 2110 '                                                       CHECK ALARM TIMES
  113. 2120 ' -----------------------------------------------------------------------
  114. 2130 '
  115. 2140 AL1$="0"
  116. 2150 TALARM$=LEFT$(T$,5)
  117. 2160 FOR I=1 TO 6
  118. 2170 IF ALARM$(I)="  :  " OR ALARM$(I)="  :" THEN 2180 ELSE AL1$="1"
  119. 2180 IF TALARM$=ALARM$(I) THEN GOTO 5610
  120. 2190 NEXT
  121. 2200 IF AL1$="1" THEN LOCATE 2,2:PRINT CHR$(64);
  122. 2210 ' -----------------------------------------------------------------------
  123. 2220 '                                                   CHECK RESPONSE IF ANY
  124. 2230 ' -----------------------------------------------------------------------
  125. 2240 '
  126. 2250 RESP$=INKEY$
  127. 2260 IF RESP$=CHR$(27) THEN 6000
  128. 2270 IF RESP$="M" THEN SWAP SW1$,SW2$
  129. 2280 IF SW1$="0" THEN CH1$="0":CH2$="1"
  130. 2290 IF RESP$="B" THEN SWAP BP1$,BP2$
  131. 2300 IF RESP$="E" THEN SWAP ET1$,ET2$
  132. 2310 IF ET1$="1" THEN CH1$="0":CH2$="1":BP1$="0":BP2$="1"
  133. 2320 IF RESP$="C" THEN SWAP CH1$,CH2$
  134. 2330 IF CH1$="1" THEN BP1$="0":BP2$="1":SW1$="1":SW2$="0":ET1$="0":ET2$="1"
  135. 2340 IF RESP$="R" THEN CNT1=0:CNT2=0:CNT3=0
  136. 2350 IF RESP$="S" THEN GOTO 4620
  137. 2360 IF RESP$="A" THEN GOTO 4810
  138. 2370 IF RESP$="?" THEN GOTO 5750
  139. 2380 ' -----------------------------------------------------------------------
  140. 2390 '                                                    DISPLAY DATE DIGIT 1
  141. 2400 ' -----------------------------------------------------------------------
  142. 2410 '
  143. 2420 A=3
  144. 2430 IF D1=D1SAVE THEN 2520
  145. 2440 B=10
  146. 2450 IF D1=0 THEN 2480
  147. 2460 GOSUB 4180
  148. 2470 ON D1 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  149. 2480 D1SAVE=D1
  150. 2490 ' -----------------------------------------------------------------------
  151. 2500 '                                                    DISPLAY DATE DIGIT 2
  152. 2510 ' -----------------------------------------------------------------------
  153. 2520 '
  154. 2530 IF D2=D2SAVE THEN 2620
  155. 2540 B=25
  156. 2550 GOSUB 4180
  157. 2560 IF D2=0 THEN GOSUB 4080
  158. 2570 ON D2 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  159. 2580 D2SAVE=D2
  160. 2590 ' -----------------------------------------------------------------------
  161. 2600 '                                                    DISPLAY DATE DIGIT 3
  162. 2610 ' -----------------------------------------------------------------------
  163. 2620 '
  164. 2630 IF D3=D3SAVE THEN 2720
  165. 2640 B=42
  166. 2650 GOSUB 4180
  167. 2660 IF D3=0 THEN GOSUB 4080
  168. 2670 ON D3 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  169. 2680 D3SAVE=D3
  170. 2690 ' -----------------------------------------------------------------------
  171. 2700 '                                                    DISPLAY DATE DIGIT 4
  172. 2710 ' -----------------------------------------------------------------------
  173. 2720 '
  174. 2730 IF D4=D4SAVE THEN 2820
  175. 2740 B=57
  176. 2750 GOSUB 4180
  177. 2760 IF D4=0 THEN GOSUB 4080
  178. 2770 ON D4 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  179. 2780 D4SAVE=D4
  180. 2790 ' -----------------------------------------------------------------------
  181. 2800 '                                                    DISPLAY TIME DIGIT 1
  182. 2810 ' -----------------------------------------------------------------------
  183. 2820 '
  184. 2830 A=15
  185. 2840 IF TL=TLSAVE THEN 3030
  186. 2850 IF BP1$="1" THEN 2860 ELSE 2870
  187. 2860 SOUND 3000,2
  188. 2870 B=10
  189. 2880 GOSUB 4180
  190. 2890 IF TL=0 THEN GOTO 2940
  191. 2900 ON TL GOSUB 2940,2940,2940,2940,2940,2940,2940,2940,2940,3460,3460,3460,3460,3460,3460,3460,3460,3460,3460,3520,3520,3520,3520,3520
  192. 2910 ' -----------------------------------------------------------------------
  193. 2920 '                                                    DISPLAY TIME DIGIT 2
  194. 2930 ' -----------------------------------------------------------------------
  195. 2940 '
  196. 2950 B=25
  197. 2960 GOSUB 4180
  198. 2970 IF TL=0 THEN GOSUB 4080
  199. 2980 ON TL GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010,4080,3460,3520,3590,3650,3730,3790,3860,3920,4010,4080,3460,3520,3590,3650
  200. 2990 TLSAVE=TL
  201. 3000 ' -----------------------------------------------------------------------
  202. 3010 '                                                    DISPLAY TIME DIGIT 3
  203. 3020 ' -----------------------------------------------------------------------
  204. 3030 '
  205. 3040 IF TR1=TR1SAVE THEN 3130
  206. 3050 B=42
  207. 3060 GOSUB 4180
  208. 3070 IF TR1=0 THEN GOSUB 4080
  209. 3080 ON TR1 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  210. 3090 TR1SAVE=TR1
  211. 3100 ' -----------------------------------------------------------------------
  212. 3110 '                                                    DISPLAY ELAPSED TIME
  213. 3120 ' -----------------------------------------------------------------------
  214. 3130 '
  215. 3140 IF ET1$="0" THEN 3210
  216. 3150 '
  217. 3160 IF SEC$=SECHOLD$ THEN 3210
  218. 3170 CNT3=CNT3+1
  219. 3180 IF CNT3>=60 THEN CNT2=CNT2+1:CNT3=0
  220. 3190 IF CNT2>=60 THEN CNT1=CNT1+1:CNT2=0
  221. 3200 SECHOLD$=SEC$
  222. 3210 '
  223. 3220 IF CNT1+CNT2+CNT3=0 THEN LOCATE 2,71:COLOR 7,0:PRINT SPACE$(8):GOTO 3270
  224. 3230 LOCATE 2,71:COLOR 7,0:PRINT USING"##";CNT1;
  225. 3240 LOCATE 2,73:PRINT USING":##";CNT2;
  226. 3250 LOCATE 2,76:PRINT USING":##";CNT3;
  227. 3260 ' -----------------------------------------------------------------------
  228. 3270 '                                                    DISPLAY TIME DIGIT 4
  229. 3280 ' -----------------------------------------------------------------------
  230. 3290 '
  231. 3300 IF TR2=TR2SAVE THEN 1850
  232. 3310 IF BP1$="1" THEN 3320 ELSE 3330
  233. 3320 SOUND 4000,1
  234. 3330 B=57
  235. 3340 GOSUB 4180
  236. 3350 IF TR2=0 THEN GOSUB 4080
  237. 3360 ON TR2 GOSUB 3460,3520,3590,3650,3730,3790,3860,3920,4010
  238. 3370 TR2SAVE=TR2
  239. 3380 IF CH1$="1" AND TR$="15" THEN GOSUB 4270
  240. 3390 IF CH1$="1" AND TR$="30" THEN GOSUB 4330
  241. 3400 IF CH1$="1" AND TR$="45" THEN GOSUB 4400
  242. 3410 IF CH1$="1" AND TR$="00" THEN GOSUB 4490
  243. 3420 GOTO 1850
  244. 3430 ' -----------------------------------------------------------------------
  245. 3440 '                                                       DIGIT SUBROUTINES
  246. 3450 ' -----------------------------------------------------------------------
  247. 3460 ' 1
  248. 3470 LOCATE A+0,B+4:PRINT SPACE$(2);:LOCATE A+1,B+4:PRINT SPACE$(2);
  249. 3480 LOCATE A+2,B+4:PRINT SPACE$(2);:LOCATE A+3,B+4:PRINT SPACE$(2);
  250. 3490 LOCATE A+4,B+4:PRINT SPACE$(2);:LOCATE A+5,B+4:PRINT SPACE$(2);
  251. 3500 LOCATE A+6,B+4:PRINT SPACE$(2);:LOCATE A+7,B+4:PRINT SPACE$(2);
  252. 3510 LOCATE A+8,B+4:PRINT SPACE$(2);:RETURN
  253. 3520 ' 2
  254. 3530 LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+7:PRINT SPACE$(2);
  255. 3540 LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+7:PRINT SPACE$(2);
  256. 3550 LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+0:PRINT SPACE$(2);
  257. 3560 LOCATE A+6,B+0:PRINT SPACE$(2);:LOCATE A+7,B+0:PRINT SPACE$(2);
  258. 3570 LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  259. 3580 RETURN
  260. 3590 ' 3
  261. 3600 LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+7:PRINT SPACE$(2);
  262. 3610 LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+7:PRINT SPACE$(2);
  263. 3620 LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+7:PRINT SPACE$(2);
  264. 3630 LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  265. 3640 LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  266. 3650 ' 4
  267. 3660 LOCATE A+0,B+0:PRINT SPACE$(2);:LOCATE A+0,B+7:PRINT SPACE$(2);
  268. 3670 LOCATE A+1,B+0:PRINT SPACE$(2);:LOCATE A+1,B+7:PRINT SPACE$(2);
  269. 3680 LOCATE A+2,B+0:PRINT SPACE$(2);:LOCATE A+2,B+7:PRINT SPACE$(2);
  270. 3690 LOCATE A+3,B+0:PRINT SPACE$(2);:LOCATE A+3,B+7:PRINT SPACE$(2);
  271. 3700 LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+7:PRINT SPACE$(2);
  272. 3710 LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  273. 3720 LOCATE A+8,B+7:PRINT SPACE$(2);:RETURN
  274. 3730 ' 5
  275. 3740 LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  276. 3750 LOCATE A+2,B+0:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  277. 3760 LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+7:PRINT SPACE$(2);
  278. 3770 LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  279. 3780 LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  280. 3790 ' 6
  281. 3800 LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  282. 3810 LOCATE A+2,B+0:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  283. 3820 LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+5,B+0:PRINT SPACE$(2);
  284. 3830 LOCATE A+5,B+7:PRINT SPACE$(2);:LOCATE A+6,B+0:PRINT SPACE$(2);
  285. 3840 LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+0:PRINT SPACE$(2);
  286. 3850 LOCATE A+7,B+7:PRINT SPACE$(2);:LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  287. 3860 ' 7
  288. 3870 LOCATE A+0,B+0:PRINT SPACE$(9);:PRINT:LOCATE A+1,B+7:PRINT SPACE$(2);
  289. 3880 LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+7:PRINT SPACE$(2);
  290. 3890 LOCATE A+4,B+7:PRINT SPACE$(2);:LOCATE A+5,B/7:PRINT SPACE$(2);
  291. 3900 LOCATE A+6,B+7:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  292. 3910 LOCATE A+8,B+7:PRINT SPACE$(2);:RETURN
  293. 3920 ' 8
  294. 3930 LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  295. 3940 LOCATE A+1,B+7:PRINT SPACE$(2);:LOCATE A+2,B+0:PRINT SPACE$(2);
  296. 3950 LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  297. 3960 LOCATE A+3,B+7:PRINT SPACE$(2);:LOCATE A+4,B+0:PRINT SPACE$(9);
  298. 3970 LOCATE A+5,B+0:PRINT SPACE$(2);:LOCATE A+5,B+7:PRINT SPACE$(2);
  299. 3980 LOCATE A+6,B+0:PRINT SPACE$(2);:LOCATE A+6,B+7:PRINT SPACE$(2);
  300. 3990 LOCATE A+7,B+0:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  301. 4000 LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  302. 4010 ' 9
  303. 4020 LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  304. 4030 LOCATE A+1,B+7:PRINT SPACE$(2);:LOCATE A+2,B+0:PRINT SPACE$(2);
  305. 4040 LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  306. 4050 LOCATE A+3,B+7:PRINT SPACE$(2);:LOCATE A+4,B+0:PRINT SPACE$(9);
  307. 4060 LOCATE A+5,B+7:PRINT SPACE$(2);:LOCATE A+6,B+7:PRINT SPACE$(2);
  308. 4070 LOCATE A+7,B+7:PRINT SPACE$(2);:LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  309. 4080 ' 0
  310. 4090 LOCATE A+0,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(2);
  311. 4100 LOCATE A+1,B+7:PRINT SPACE$(2);:LOCATE A+2,B+0:PRINT SPACE$(2);
  312. 4110 LOCATE A+2,B+7:PRINT SPACE$(2);:LOCATE A+3,B+0:PRINT SPACE$(2);
  313. 4120 LOCATE A+3,B+7:PRINT SPACE$(2);:LOCATE A+4,B+0:PRINT SPACE$(2);
  314. 4130 LOCATE A+4,B+7:PRINT SPACE$(2);:LOCATE A+4,B+4:PRINT SPACE$(1);
  315. 4140 LOCATE A+5,B+0:PRINT SPACE$(2);:LOCATE A+5,B+7:PRINT SPACE$(2);
  316. 4150 LOCATE A+6,B+0:PRINT SPACE$(2);:LOCATE A+6,B+7:PRINT SPACE$(2);
  317. 4160 LOCATE A+7,B+0:PRINT SPACE$(2);:LOCATE A+7,B+7:PRINT SPACE$(2);
  318. 4170 LOCATE A+8,B+0:PRINT SPACE$(9);:RETURN
  319. 4180 ' CLEAR
  320. 4190 COLOR 7,0:LOCATE A+8,B+0:PRINT SPACE$(9);:LOCATE A+7,B+0:PRINT SPACE$(9);
  321. 4200 LOCATE A+6,B+0:PRINT SPACE$(9);:LOCATE A+5,B+0:PRINT SPACE$(9);
  322. 4210 LOCATE A+4,B+0:PRINT SPACE$(9);:LOCATE A+3,B+0:PRINT SPACE$(9);
  323. 4220 LOCATE A+2,B+0:PRINT SPACE$(9);:LOCATE A+1,B+0:PRINT SPACE$(9);
  324. 4230 LOCATE A+0,B+0:PRINT SPACE$(9);:COLOR 0,7:RETURN
  325. 4240 ' -----------------------------------------------------------------------
  326. 4250 '                                              15 MINUTE CHIME SUBROUTINE
  327. 4260 ' -----------------------------------------------------------------------
  328. 4270 '
  329. 4280 SOUND 1000,15:SOUND 32000,1:SOUND 800,15:SOUND 32000,1
  330. 4290 SOUND 900,15:SOUND 32000,1:SOUND 600,15:SOUND 32000,1:RETURN
  331. 4300 ' -----------------------------------------------------------------------
  332. 4310 '                                              30 MINUTE CHIME SUBROUTINE
  333. 4320 ' -----------------------------------------------------------------------
  334. 4330 '
  335. 4340 SOUND 600,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1:SOUND 1000,15
  336. 4350 SOUND 32000,1:SOUND 800,15:SOUND 32000,5:SOUND 1000,15:SOUND 32000,1
  337. 4360 SOUND 900,15:SOUND 32000,1:SOUND 800,15:SOUND 32000,1:SOUND 600,15:RETURN
  338. 4370 ' -----------------------------------------------------------------------
  339. 4380 '                                              45 MINUTE CHIME SUBROUTINE
  340. 4390 ' -----------------------------------------------------------------------
  341. 4400 '
  342. 4410 SOUND 600,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1:SOUND 1000,15
  343. 4420 SOUND 32000,1:SOUND 800,15:SOUND 32000,5:SOUND 1000,15:SOUND 32000,1
  344. 4430 SOUND 800,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1:SOUND 600,15
  345. 4440 SOUND 32000,5:SOUND 600,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1
  346. 4450 SOUND 1000,15:SOUND 32000,1:SOUND 800,15:RETURN
  347. 4460 ' -----------------------------------------------------------------------
  348. 4470 '                                                ON HOUR CHIME SUBROUTINE
  349. 4480 ' -----------------------------------------------------------------------
  350. 4490 '
  351. 4500 SOUND 1000,15:SOUND 32000,1:SOUND 800,15:SOUND 32000,1:SOUND 900,15
  352. 4510 SOUND 32000,1:SOUND 600,15:SOUND 32000,5:SOUND 600,15:SOUND 32000,1
  353. 4520 SOUND 900,15:SOUND 32000,1:SOUND 1000,15:SOUND 32000,1:SOUND 800,15
  354. 4530 SOUND 32000,5:SOUND 1000,15:SOUND 32000,1:SOUND 900,15:SOUND 32000,1
  355. 4540 SOUND 800,15:SOUND 32000,1:SOUND 600,15:SOUND 32000,5:SOUND 600,15
  356. 4550 SOUND 32000,1:SOUND 900,15:SOUND 32000,1:SOUND 1000,15:SOUND 32000,1
  357. 4560 SOUND 800,15:SOUND 32000,20
  358. 4570 '
  359. 4580 FOR I=1 TO TL:SOUND 400,15:SOUND 32000,15:NEXT:RETURN
  360. 4590 ' -----------------------------------------------------------------------
  361. 4600 '                                              SET DATE & TIME SUBROUTINE
  362. 4610 ' -----------------------------------------------------------------------
  363. 4620 '
  364. 4630 COLOR 7,0:CLS
  365. 4640 LOCATE 2,20:COLOR 0,7:PRINT"    S E T    D A T E    T I M E    "
  366. 4650 LOCATE 5,36:COLOR 7,0:PRINT"CURRENT DATE = ";DATE$
  367. 4660 LOCATE 7,20:INPUT"ENTER NEW DATE - ELSE ENTER--> ",IN$
  368. 4670 IF IN$="" THEN 4680 ELSE DATE$=IN$
  369. 4680 LOCATE 5,36:COLOR 0,7:PRINT"CURRENT DATE = ";DATE$
  370. 4690 LOCATE 10,36:COLOR 7,0:PRINT"CURRENT TIME = ";TIME$
  371. 4700 LOCATE 12,20:INPUT"ENTER NEW TIME - ELSE ENTER--> ",IN$
  372. 4710 IF IN$="" THEN 4720 ELSE TIME$=IN$
  373. 4720 LOCATE 10,36:COLOR 0,7:PRINT"CURRENT TIME = ";TIME$
  374. 4730 LOCATE 15,20:COLOR 7,0:PRINT"IS DATE AND TIME CORRECT ? (Y or N)"
  375. 4740 RESP$=INKEY$:IF RESP$="" THEN 4740
  376. 4750 IF RESP$="Y" THEN 4760 ELSE 4620
  377. 4760 D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  378. 4770 GOTO 1330
  379. 4780 ' -----------------------------------------------------------------------
  380. 4790 '                                                    SET ALARM SUBROUTINE
  381. 4800 ' -----------------------------------------------------------------------
  382. 4810 '
  383. 4820 COLOR 7,0:CLS
  384. 4830 LOCATE 2,20:COLOR 0,7:PRINT"    S E T    A L A R M    T I M E S    "
  385. 4840 LOCATE 4,20:COLOR 7,0:PRINT"CURRENT DATE = ";DATE$
  386. 4850 LOCATE 5,20:PRINT"CURRENT TIME = ";TIME$
  387. 4860 LOCATE 7,10:PRINT"USE 24 HOUR CLOCK TIMES"
  388. 4870 LOCATE 9,15:COLOR 1,0:PRINT"TIMES"
  389. 4880 LOCATE 9,28:PRINT"ALARM DESCRIPTIONS"
  390. 4890 '
  391. 4900 FOR I=11 TO 16:LOCATE I,15:COLOR 7,0:PRINT SPACE$(64);:NEXT
  392. 4910 LOCATE 11,15:COLOR 1,0:PRINT ALARM$(1)
  393. 4920 LOCATE 11,28:PRINT ALDESC$(1)
  394. 4930 LOCATE 12,15:PRINT ALARM$(2)
  395. 4940 LOCATE 12,28:PRINT ALDESC$(2)
  396. 4950 LOCATE 13,15:PRINT ALARM$(3)
  397. 4960 LOCATE 13,28:PRINT ALDESC$(3)
  398. 4970 LOCATE 14,15:PRINT ALARM$(4)
  399. 4980 LOCATE 14,28:PRINT ALDESC$(4)
  400. 4990 LOCATE 15,15:PRINT ALARM$(5)
  401. 5000 LOCATE 15,28:PRINT ALDESC$(5)
  402. 5010 LOCATE 16,15:PRINT ALARM$(6)
  403. 5020 LOCATE 16,28:PRINT ALDESC$(6)
  404. 5030 LOCATE 7,40:COLOR 7,0:PRINT"YOU CAN SET UP TO 6 ALARM TIMES"
  405. 5040 LOCATE 11,15:LINE INPUT"",IN$
  406. 5050 IF IN$="" THEN 5060 ELSE ALARM$(1)=IN$
  407. 5060 LOCATE 11,15:PRINT SPACE$(10)
  408. 5070 LOCATE 11,15:PRINT ALARM$(1)
  409. 5080 LOCATE 11,28:INPUT"",IN$
  410. 5090 IF IN$="" THEN 5100 ELSE ALDESC$(1)=IN$
  411. 5100 LOCATE 11,28:PRINT SPACE$(50)
  412. 5110 LOCATE 11,28:PRINT ALDESC$(1)
  413. 5120 LOCATE 12,15:LINE INPUT"",IN$
  414. 5130 IF IN$="" THEN 5140 ELSE ALARM$(2)=IN$
  415. 5140 LOCATE 12,15:PRINT SPACE$(10)
  416. 5150 LOCATE 12,15:PRINT ALARM$(2)
  417. 5160 LOCATE 12,28:INPUT"",IN$
  418. 5170 IF IN$="" THEN 5180 ELSE ALDESC$(2)=IN$
  419. 5180 LOCATE 12,28:PRINT SPACE$(50)
  420. 5190 LOCATE 12,28:PRINT ALDESC$(2)
  421. 5200 LOCATE 13,15:LINE INPUT"",IN$
  422. 5210 IF IN$="" THEN 5220 ELSE ALARM$(3)=IN$
  423. 5220 LOCATE 13,15:PRINT SPACE$(10)
  424. 5230 LOCATE 13,15:PRINT ALARM$(3)
  425. 5240 LOCATE 13,28:INPUT"",IN$
  426. 5250 IF IN$="" THEN 5260 ELSE ALDESC$(3)=IN$
  427. 5260 LOCATE 13,28:PRINT SPACE$(50)
  428. 5270 LOCATE 13,28:PRINT ALDESC$(3)
  429. 5280 LOCATE 14,15:LINE INPUT"",IN$
  430. 5290 IF IN$="" THEN 5300 ELSE ALARM$(4)=IN$
  431. 5300 LOCATE 14,15:PRINT SPACE$(10)
  432. 5310 LOCATE 14,15:PRINT ALARM$(4)
  433. 5320 LOCATE 14,28:INPUT"",IN$
  434. 5330 IF IN$="" THEN 5340 ELSE ALDESC$(4)=IN$
  435. 5340 LOCATE 14,28:PRINT SPACE$(50)
  436. 5350 LOCATE 14,28:PRINT ALDESC$(4)
  437. 5360 LOCATE 15,15:LINE INPUT"",IN$
  438. 5370 IF IN$="" THEN 5380 ELSE ALARM$(5)=IN$
  439. 5380 LOCATE 15,15:PRINT SPACE$(10)
  440. 5390 LOCATE 15,15:PRINT ALARM$(5)
  441. 5400 LOCATE 15,28:INPUT"",IN$
  442. 5410 IF IN$="" THEN 5420 ELSE ALDESC$(5)=IN$
  443. 5420 LOCATE 15,28:PRINT SPACE$(50)
  444. 5430 LOCATE 15,28:PRINT ALDESC$(5)
  445. 5440 LOCATE 16,15:LINE INPUT"",IN$
  446. 5450 IF IN$="" THEN 5460 ELSE ALARM$(6)=IN$
  447. 5460 LOCATE 16,15:PRINT SPACE$(10)
  448. 5470 LOCATE 16,15:PRINT ALARM$(6)
  449. 5480 LOCATE 16,28:INPUT"",IN$
  450. 5490 IF IN$="" THEN 5500 ELSE ALDESC$(6)=IN$
  451. 5500 LOCATE 16,28:PRINT SPACE$(50)
  452. 5510 LOCATE 16,28:PRINT ALDESC$(6)
  453. 5520 LOCATE 19,20:PRINT"ARE ALL ENTRIES CORRECT ? (Y or N)"
  454. 5530 RESP$=INKEY$:IF RESP$="" THEN 5530
  455. 5540 LOCATE 19,20:PRINT SPACE$(40)
  456. 5550 IF RESP$="Y" THEN 5560 ELSE 4890
  457. 5560 D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  458. 5570 GOTO 1330
  459. 5580 ' -----------------------------------------------------------------------
  460. 5590 '                                                   DISPLAY ALARM ROUTINE
  461. 5600 ' -----------------------------------------------------------------------
  462. 5610 '
  463. 5620 COLOR 7,0:CLS
  464. 5630 LOCATE 2,15:COLOR 0,7:PRINT"             A L A R M             "
  465. 5640 LOCATE 10,15:COLOR 7,0:PRINT ALDESC$(I);
  466. 5650 LOCATE 15,15:COLOR 23,0:PRINT"Press  Any  Key  To  Reset  Alarm";
  467. 5660 '
  468. 5670 SOUND 1000,5:SOUND 32000,5
  469. 5680 RESP$=INKEY$:IF RESP$="" THEN 5660
  470. 5690 D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  471. 5700 ALARM$(I)="  :  ":ALDESC$(I)=STRING$(50,32)
  472. 5710 GOTO 1330
  473. 5720 ' -----------------------------------------------------------------------
  474. 5730 '                                                    INSTRUCTIONS ROUTINE
  475. 5740 ' -----------------------------------------------------------------------
  476. 5750 '
  477. 5760 COLOR 7,0:CLS
  478. 5770 LOCATE 1,10:COLOR 0,7:PRINT"    CLOCK    FUNCTION    CONTROLS    "
  479. 5780 LOCATE 4,10:COLOR 7,0:PRINT"  B = TIME CHANGE BEEP SET ON/OFF"
  480. 5790 LOCATE 6,10:PRINT"  C = CHIMES SET ON/OFF"
  481. 5800 LOCATE 8,10:PRINT"  E = ELAPSED TIME SET ON/OFF"
  482. 5810 LOCATE 10,10:PRINT"  M = CHANGE FROM 12 TO 24 HOUR MODE"
  483. 5820 LOCATE 1,55:COLOR 0,7:PRINT" CURRENT CONDITION ":COLOR 7,0
  484. 5830 LOCATE 4,60:IF BP1$="1" THEN PRINT" ON" ELSE PRINT"OFF"
  485. 5840 LOCATE 6,60:IF CH1$="1" THEN PRINT" ON" ELSE PRINT"OFF"
  486. 5850 LOCATE 8,60:IF ET1$="1" THEN PRINT" ON" ELSE PRINT"OFF"
  487. 5860 LOCATE 10,60:IF SW1$="1" THEN PRINT" 12" ELSE PRINT" 24"
  488. 5870 LOCATE 12,10:PRINT"  A = SET ALARM TIMES AND DESCRIPTIONS"
  489. 5880 LOCATE 14,10:PRINT"  R = RESET ELAPSED TIME"
  490. 5890 LOCATE 16,10:PRINT"  S = SET DATE AND TIME"
  491. 5900 LOCATE 18,10:PRINT"  ? = DISPLAY INSTRUCTIONS"
  492. 5910 LOCATE 20,10:PRINT"ESC = EXIT - RETURN TO SYSTEM MODE"
  493. 5920 LOCATE 24,20:COLOR 23,0:PRINT"Press  Any  Key  To  Continue";
  494. 5930 RESP$=INKEY$:IF RESP$="" THEN 5930
  495. 5940 COLOR 7,0:CLS
  496. 5950 D1SAVE=99:D2SAVE=99:D3SAVE=99:D4SAVE=99:TLSAVE=99:TR1SAVE=99:TR2SAVE=99
  497. 5960 GOTO 1330
  498. 5970 ' -----------------------------------------------------------------------
  499. 5980 '                                                            EXIT ROUTINE
  500. 5990 ' -----------------------------------------------------------------------
  501. 6000 COLOR 7,0:CLS:END
  502.