home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib20a.dsk
/
JULY.1984
/
BINARY.CLOCK.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
78 lines
1 REM **********************
2 REM * BINARY.CLOCK *
3 REM * BY CHRIS CALVERT *
4 REM * COPYRIGHT (C) 1984 *
5 REM * BY MICROSPARC, INC *
6 REM * LINCOLN, MA. 01773 *
7 REM **********************
10 GOSUB 250
20 FOR H1 = HS TO 12
30 FOR M1 = MS TO 5
40 FOR M2 = MB TO 9
50 FOR S1 = SS TO 5
60 FOR S2 = SB TO 9
70 FOR TIME = 0 TO DLAY: NEXT
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
90 POKE P,PI: POKE L,LE: CALL BELL
100 NEXT :SB = 0
110 NEXT :SS = 0
120 NEXT :MB = 0
130 NEXT :MS = 0
140 NEXT :HS = 1
150 GOTO 20
160 VTAB 23: HTAB 16: PRINT H1":"M1;M2":"S1;S2" "
170 IF (U/8) > = 1 THEN POKE U8 +X,LIT:U = U -8: GOTO 190
180 POKE U8 +X,OFF
190 IF (U/4) > = 1 THEN POKE U4 +X,LIT:U = U -4: GOTO 210
200 POKE U4 +X,OFF
210 IF (U/2) > = 1 THEN POKE U2 +X,LIT:U = U -2: GOTO 230
220 POKE U2 +X,OFF
230 IF U = 1 THEN POKE U1 +X,LIT: RETURN
240 POKE U1 +X,OFF: RETURN
250 HOME : GR
260 VTAB 22: PRINT "INPUT STARTING TIME (HH:MM:SS) :";
270 GET A$: IF A$ <"0" OR A$ >"1" THEN 270
280 PRINT A$;:HS = VAL(A$) *10
290 GET A$: IF A$ <"0" OR A$ >"9" THEN 290
300 PRINT A$":";:HS = HS + VAL(A$)
305 IF HS >11 THEN 250
310 GET A$: IF A$ <"0" OR A$ >"5" THEN 310
320 PRINT A$;:MS = VAL(A$)
330 GET A$: IF A$ <"0" OR A$ >"9" THEN 330
340 PRINT A$":";:MB = VAL(A$)
350 GET A$: IF A$ <"0" OR A$ >"5" THEN 350
360 PRINT A$;:SS = VAL(A$)
370 GET A$: IF A$ <"0" OR A$ >"9" THEN 370
380 PRINT A$;:SB = VAL(A$)
390 U8 = 1360
400 U4 = 1832
410 U2 = 1320
420 U1 = 1792
430 LIT = 255
440 OFF = 17
450 BELL = 771:P = 0:L = 1:LE = 20
460 DLAY = 680
470 D2 = 722
480 PI = 70
490 IF FL = 1 THEN GOTO 590
500 FOR Z = 1 TO 5: READ A(Z): NEXT
510 DATA 10,16,20,26,30
520 FOR Z = 1 TO 4: READ B(Z): NEXT
530 DATA 1360,1832,1320,1792
540 REM
550 FOR M = 771 TO 789
560 READ P: POKE M,P
570 NEXT
580 DATA 173,48,192,136,208,4,198,1,240,8,202,208,246,166,0,76,3,3,96
590 FOR Z = 1 TO 4:X = B(Z)
600 FOR Z3 = -128 TO 128 STEP 128:X2 = X +Z3
610 FOR Z1 = 1 TO 5:X1 = X2 +A(Z1)
620 FOR Z2 = -1 TO 1
630 POKE X1 +Z2,OFF: NEXT
640 NEXT
650 NEXT
660 NEXT
670 VTAB 24: HTAB 5: PRINT "DO YOU WANT THE TICKING SOUND? ";: GET A$: IF A$ = "N" THEN PI = 1:LE = 1:DLAY = D2
680 VTAB 24: HTAB 5: PRINT "PRESS ANY KEY TO START THE CLOCK";: GET A$
690 HOME
700 RETURN