home *** CD-ROM | disk | FTP | other *** search
/ Game Killer / Game_Killer.bin / 075.CLOCK.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  4KB  |  94 lines

  1. 100 REM
  2. 110 REM          Digital Clock and Alarm
  3. 120 REM            Copyright (c) 1990
  4. 130 REM by Randy Hawkins and ONE THOUSAND Magazine
  5. 140 REM            All Rights Reserved
  6. 150 REM
  7. 155 COMMON RH: IF RH = 0 THEN SYSTEM
  8. 160 SCREEN 1: KEY OFF: COLOR 0,1: CLS
  9. 170 DIM A(255), B(255), C(255), D(255), E(255)
  10. 180 DIM F(255), G(255), H(255), I(255), J(255), K(255)
  11. 190 LOCATE 20,12: PRINT "One Moment Please"
  12. 200 REM
  13. 210 REM Store Pictures of Digits in Arrays A-K
  14. 220 REM
  15. 230 A$ = "O": GOSUB 960: GET (140,50)-(172,120),A
  16. 240 A$ = "1": GOSUB 960: GET (140,50)-(172,120),B
  17. 250 A$ = "2": GOSUB 960: GET (140,50)-(172,120),C
  18. 260 A$ = "3": GOSUB 960: GET (140,50)-(172,120),D
  19. 270 A$ = "4": GOSUB 960: GET (140,50)-(172,120),E
  20. 280 A$ = "5": GOSUB 960: GET (140,50)-(172,120),F
  21. 290 A$ = "6": GOSUB 960: GET (140,50)-(172,120),G
  22. 300 A$ = "7": GOSUB 960: GET (140,50)-(172,120),H
  23. 310 A$ = "8": GOSUB 960: GET (140,50)-(172,120),I
  24. 320 A$ = "9": GOSUB 960: GET (140,50)-(172,120),J
  25. 330 A$ = ":": GOSUB 960: GET (140,50)-(172,120),K
  26. 340 REM
  27. 350 REM Prepare Screen for Clock, then Check for Keypress
  28. 360 REM
  29. 370 CLS: LINE (0,30)-(319,140),1,BF: LINE (20,45)-(299,125),0,BF
  30. 380 LOCATE 21,10: PRINT "Press <A> to Set Alarm"
  31. 390 LOCATE 23,13: PRINT "or <ESC> to Exit"
  32. 400 REM
  33. 410 REM Display Time and Check Keystrokes
  34. 420 REM
  35. 430 GOSUB 780: IF TIME$ = ALARM$ THEN 730
  36. 440 K$ = INKEY$: IF K$ = "" THEN 430
  37. 450 IF K$ = CHR$(27) THEN SCREEN 0: WIDTH 80
  38. 452 IF K$ = CHR$(27) THEN LOCATE 12,30
  39. 454 IF K$ = CHR$(27) THEN PRINT "One Moment Please": RUN "menu"
  40. 460 IF K$ <> "A" AND K$ <> "a" THEN 430
  41. 470 REM
  42. 480 REM Set Alarm Time
  43. 490 REM
  44. 500 HR = 12: MN = 0: LOCATE 21,10: PRINT STRING$(22,32)
  45. 510 LOCATE 22,9: PRINT "Use < and > to set hour,"
  46. 520 LOCATE 23,9: PRINT CHR$(27); " and "; CHR$(26);
  47. 530 PRINT CHR$(32);"to set minutes,": LOCATE 24,7
  48. 540 PRINT "press ENTER to set the alarm.";
  49. 550 ALARM$ = "": IF HR < 10 THEN ALARM$ = "0"
  50. 560 ALARM$ = ALARM$ + MID$(STR$(HR),2) + ":"
  51. 570 IF MN < 10 THEN ALARM$ = ALARM$ + "0"
  52. 580 ALARM$ = ALARM$ + MID$(STR$(MN),2) + ":00"
  53. 590 LOCATE 20,10: PRINT "Alarm Set at "; ALARM$
  54. 600 K$ = INKEY$: IF K$ = "" THEN GOSUB 780: GOTO 600
  55. 605 IF K$ = CHR$(27) THEN 450
  56. 610 REM
  57. 620 REM Adjustments to Alarm Setting
  58. 630 REM
  59. 640 IF K$ = "<" OR K$ = "," THEN HR = HR - 1 - 24 * (HR = 0)
  60. 650 IF K$ = ">" OR K$ = "." THEN HR = HR + 1 + 24 * (HR = 23)
  61. 660 IF K$ = CHR$(0) + "K" THEN MN = MN - 1 - 60 * (MN = 0)
  62. 670 IF K$ = CHR$(0) + "M" THEN MN = MN + 1 + 60 * (MN = 59)
  63. 680 IF K$ <> CHR$(13) THEN 550 ELSE FOR A = 22 TO 24
  64. 690 LOCATE A,5: PRINT STRING$(32,32);: NEXT A: GOTO 430
  65. 700 REM
  66. 710 REM Sound the Alarm
  67. 720 REM
  68. 730 WHILE INKEY$ = "": PLAY "L8CC": GOSUB 780
  69. 740 WEND: ALARM$ = "": GOTO 370
  70. 750 REM
  71. 760 REM Use TIME$ to Display Correct Time
  72. 770 REM
  73. 780 IF A$ = TIME$ THEN RETURN ELSE A$ = TIME$
  74. 790 FOR A = 0 TO 7: B = ASC(MID$(A$,A+1,1)) - 47
  75. 800 ON B GOSUB 820,830,840,850,860,870,880,890,900,910,920
  76. 810 NEXT A: RETURN
  77. 820 PUT (A*33+26,50),A,PSET: RETURN
  78. 830 PUT (A*33+26,50),B,PSET: RETURN
  79. 840 PUT (A*33+26,50),C,PSET: RETURN
  80. 850 PUT (A*33+26,50),D,PSET: RETURN
  81. 860 PUT (A*33+26,50),E,PSET: RETURN
  82. 870 PUT (A*33+26,50),F,PSET: RETURN
  83. 880 PUT (A*33+26,50),G,PSET: RETURN
  84. 890 PUT (A*33+26,50),H,PSET: RETURN
  85. 900 PUT (A*33+26,50),I,PSET: RETURN
  86. 910 PUT (A*33+26,50),J,PSET: RETURN
  87. 920 PUT (A*33+26,50),K,PSET: RETURN
  88. 930 REM
  89. 940 REM Draw Digit in A$ Using Graphics
  90. 950 REM
  91. 960 LOCATE 1,1: PRINT A$: FOR B = 0 TO 6: FOR C = 0 TO 7
  92. 970 LINE (140+C*4,50+B*10)-(144+C*4,60+B*10),POINT(C,B),BF
  93. 980 NEXT C,B: RETURN
  94.