home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib20a.dsk / JULY.1984 / BINARY.CLOCK.bas < prev    next >
BASIC Source File  |  2023-02-26  |  2KB  |  78 lines

  1. 1  REM   **********************
  2. 2  REM   *    BINARY.CLOCK    *
  3. 3  REM   *  BY CHRIS CALVERT  *
  4. 4  REM   * COPYRIGHT (C) 1984 *
  5. 5  REM   * BY MICROSPARC, INC *
  6. 6  REM   * LINCOLN, MA. 01773 *
  7. 7  REM   **********************
  8. 10  GOSUB 250
  9. 20  FOR H1 = HS TO 12
  10. 30  FOR M1 = MS TO 5
  11. 40  FOR M2 = MB TO 9
  12. 50  FOR S1 = SS TO 5
  13. 60  FOR S2 = SB TO 9
  14. 70  FOR TIME = 0 TO DLAY: NEXT 
  15. 80 U = S2:X = 30: GOSUB 160:U = S1:X = 26: GOSUB 170:U = M2:X = 20: GOSUB 170:U = M1:X = 16: GOSUB 170:U = H1:X = 10: GOSUB 170
  16. 90  POKE P,PI: POKE L,LE: CALL BELL
  17. 100  NEXT :SB = 0
  18. 110  NEXT :SS = 0
  19. 120  NEXT :MB = 0
  20. 130  NEXT :MS = 0
  21. 140  NEXT :HS = 1
  22. 150  GOTO 20
  23. 160  VTAB 23: HTAB 16: PRINT H1":"M1;M2":"S1;S2" "
  24. 170  IF (U/8) > = 1  THEN  POKE U8 +X,LIT:U = U -8: GOTO 190
  25. 180  POKE U8 +X,OFF
  26. 190  IF (U/4) > = 1  THEN  POKE U4 +X,LIT:U = U -4: GOTO 210
  27. 200  POKE U4 +X,OFF
  28. 210  IF (U/2) > = 1  THEN  POKE U2 +X,LIT:U = U -2: GOTO 230
  29. 220  POKE U2 +X,OFF
  30. 230  IF U = 1  THEN  POKE U1 +X,LIT: RETURN 
  31. 240  POKE U1 +X,OFF: RETURN 
  32. 250  HOME : GR 
  33. 260  VTAB 22: PRINT "INPUT STARTING TIME (HH:MM:SS) :";
  34. 270  GET A$: IF A$ <"0"  OR A$ >"1"  THEN 270
  35. 280  PRINT A$;:HS =  VAL(A$) *10
  36. 290  GET A$: IF A$ <"0"  OR A$ >"9"  THEN 290
  37. 300  PRINT A$":";:HS = HS + VAL(A$)
  38. 305  IF HS >11  THEN 250
  39. 310  GET A$: IF A$ <"0"  OR A$ >"5"  THEN 310
  40. 320  PRINT A$;:MS =  VAL(A$)
  41. 330  GET A$: IF A$ <"0"  OR A$ >"9"  THEN 330
  42. 340  PRINT A$":";:MB =  VAL(A$)
  43. 350  GET A$: IF A$ <"0"  OR A$ >"5"  THEN 350
  44. 360  PRINT A$;:SS =  VAL(A$)
  45. 370  GET A$: IF A$ <"0"  OR A$ >"9"  THEN 370
  46. 380  PRINT A$;:SB =  VAL(A$)
  47. 390 U8 = 1360
  48. 400 U4 = 1832
  49. 410 U2 = 1320
  50. 420 U1 = 1792
  51. 430 LIT = 255
  52. 440 OFF = 17
  53. 450 BELL = 771:P = 0:L = 1:LE = 20
  54. 460 DLAY = 680
  55. 470 D2 = 722
  56. 480 PI = 70
  57. 490  IF FL = 1  THEN  GOTO 590
  58. 500  FOR Z = 1 TO 5: READ A(Z): NEXT 
  59. 510  DATA 10,16,20,26,30
  60. 520  FOR Z = 1 TO 4: READ B(Z): NEXT 
  61. 530  DATA 1360,1832,1320,1792
  62. 540  REM 
  63. 550  FOR M = 771 TO 789
  64. 560  READ P: POKE M,P
  65. 570  NEXT 
  66. 580  DATA  173,48,192,136,208,4,198,1,240,8,202,208,246,166,0,76,3,3,96
  67. 590  FOR Z = 1 TO 4:X = B(Z)
  68. 600  FOR Z3 =  -128 TO 128  STEP 128:X2 = X +Z3
  69. 610  FOR Z1 = 1 TO 5:X1 = X2 +A(Z1)
  70. 620  FOR Z2 =  -1 TO 1
  71. 630  POKE X1 +Z2,OFF: NEXT 
  72. 640  NEXT 
  73. 650  NEXT 
  74. 660  NEXT 
  75. 670  VTAB 24: HTAB 5: PRINT "DO YOU WANT THE TICKING SOUND? ";: GET A$: IF A$ = "N"  THEN PI = 1:LE = 1:DLAY = D2
  76. 680  VTAB 24: HTAB 5: PRINT "PRESS ANY KEY TO START THE CLOCK";: GET A$
  77. 690  HOME 
  78. 700  RETURN