'=========================================================================== ' Subject: LED CLOCK DISPLAY Date: 03-23-96 (15:23) ' Author: Douglas H. Lusher Code: QB, QBasic, PDS ' Origin: FidoNet QUIK_BAS Echo Packet: MISC.ABC '=========================================================================== DECLARE SUB ClrRowCtrMsg (Message$) DECLARE SUB LED1 (Spec$) DECLARE SUB LED2 (Spec$) DEFINT A-Z 'GOTO Clock SCREEN 0, 1, 0: COLOR 7, 1: CLS COLOR 0, 1 LOCATE 3, 6: PRINT STRING$(69, "Ü") FOR R% = 4 TO 8 'change 8 to 10 for large LEDs LOCATE R%, 6: PRINT STRING$(69, "Û"); NEXT DO T$ = " 0:00:00" LOCATE 4, 7: COLOR 7, 0: CALL LED1(T$): COLOR 7, 1 ClrRowCtrMsg "Press any key to begin timing..." X$ = INPUT$(1) Start! = TIMER ClrRowCtrMsg "Press any key to stop timer..." DO GOSUB ShowTime X$ = INKEY$: IF LEN(X$) THEN EXIT DO LOOP ClrRowCtrMsg "Press ESC to quit, any other key to reset the timer." X$ = INPUT$(1): IF X$ = CHR$(27) THEN EXIT DO LOOP CLS END ShowTime: T! = TIMER - Start! Mins$ = RIGHT$(" " + STR$(INT(T!) \ 60), 3) Secs$ = RIGHT$(STR$((INT(T!) MOD 60) + 100), 2) Frac$ = MID$(STR$(T! - INT(T!)) + "00", 3, 2) MID$(T$, 1, 3) = Mins$: MID$(T$, 5, 2) = Secs$: MID$(T$, 8, 2) = Frac$ LOCATE 4, 7: COLOR 7, 0: CALL LED1(T$): COLOR 7, 1 RETURN Clock: SCREEN 0, 1, 0: COLOR 7, 1: CLS COLOR 0, 1 LOCATE 3, 10: PRINT STRING$(60, "Ü") FOR R% = 4 TO 8 'change 8 to 10 for large LEDs LOCATE R%, 10: PRINT STRING$(60, "Û"); NEXT COLOR 7, 0 DO UNTIL LEN(INKEY$) LOCATE 4, 11: CALL LED1(TIME$) LOOP CLS END SUB ClrRowCtrMsg (Message$) LOCATE 12, 1: PRINT SPC(79); " "; LOCATE , (82 - LEN(Message$)) \ 2: PRINT Message$; END SUB SUB LED1 (Spec$) STATIC IF Initialized% GOTO Begin1 Top1$ = "ÜßßßßÜ" Top2$ = "Ü Ü" Top3$ = " Ü" Top4$ = "Ü " Top5$ = " ßßßßÜ" Top6$ = "Üßßßß " Bot1$ = " ßßßß " Ctr2$ = "Û Û" Ctr3$ = " Û" Ctr4$ = "Û " XXX1$ = " " Initialized% = -1 Begin1: R% = CSRLIN: C% = POS(0) FOR Ptr% = 1 TO LEN(Spec$) SELECT CASE ASC(MID$(Spec$, Ptr%, 1)) CASE 48 T$ = Top1$: C1$ = Ctr2$: M$ = Top2$: C2$ = Ctr2$: B$ = Bot1$ GOSUB ShowChar1: C% = C% + 9 CASE 49 T$ = Top3$: C1$ = Ctr3$: M$ = Top3$: C2$ = Ctr3$: B$ = XXX1$ GOSUB ShowChar1: C% = C% + 9 CASE 50 T$ = Top5$: C1$ = Ctr3$: M$ = Top6$: C2$ = Ctr4$: B$ = Bot1$ GOSUB ShowChar1: C% = C% + 9 CASE 51 T$ = Top5$: C1$ = Ctr3$: M$ = Top5$: C2$ = Ctr3$: B$ = Bot1$ GOSUB ShowChar1: C% = C% + 9 CASE 52 T$ = Top2$: C1$ = Ctr2$: M$ = Top5$: C2$ = Ctr3$: B$ = XXX1$ GOSUB ShowChar1: C% = C% + 9 CASE 53 T$ = Top6$: C1$ = Ctr4$: M$ = Top5$: C2$ = Ctr3$: B$ = Bot1$ GOSUB ShowChar1: C% = C% + 9 CASE 54 T$ = Top4$: C1$ = Ctr4$: M$ = Top1$: C2$ = Ctr2$: B$ = Bot1$ GOSUB ShowChar1: C% = C% + 9 CASE 55 T$ = Top5$: C1$ = Ctr3$: M$ = Top3$: C2$ = Ctr3$: B$ = XXX1$ GOSUB ShowChar1: C% = C% + 9 CASE 56 T$ = Top1$: C1$ = Ctr2$: M$ = Top1$: C2$ = Ctr2$: B$ = Bot1$ GOSUB ShowChar1: C% = C% + 9 CASE 57 T$ = Top1$: C1$ = Ctr2$: M$ = Top5$: C2$ = Ctr3$: B$ = XXX1$ GOSUB ShowChar1: C% = C% + 9 CASE ASC(":") LOCATE R% + 1, C%: PRINT "ß"; LOCATE R% + 3, C%: PRINT "ß"; C% = C% + 3 CASE 32 T$ = XXX1$: C1$ = XXX1$: M$ = XXX1$: C2$ = XXX1$: B$ = XXX1$ GOSUB ShowChar1: C% = C% + 8 END SELECT NEXT EXIT SUB ShowChar1: LOCATE R% + 0, C%: PRINT T$; LOCATE R% + 1, C%: PRINT C1$; LOCATE R% + 2, C%: PRINT M$; LOCATE R% + 3, C%: PRINT C2$; LOCATE R% + 4, C%: PRINT B$; RETURN END SUB SUB LED2 (Spec$) STATIC IF Initialized% GOTO Begin2 Top1$ = "ÜßßßßßÜ" Top2$ = "Ü Ü" Top3$ = " Ü" Top4$ = "Ü " Top5$ = " ßßßßßÜ" Top6$ = "Üßßßßß " Bot1$ = " ßßßßß " Ctr2$ = "Û Û" Ctr3$ = " Û" Ctr4$ = "Û " XXX1$ = " " Initialized% = -1 Begin2: R% = CSRLIN: C% = POS(0) FOR Ptr% = 1 TO LEN(Spec$) SELECT CASE ASC(MID$(Spec$, Ptr%, 1)) CASE 48 T$ = Top1$: C1$ = Ctr2$: M$ = Top2$: C2$ = Ctr2$: B$ = Bot1$ GOSUB ShowChar2: C% = C% + 9 CASE 49 T$ = Top3$: C1$ = Ctr3$: M$ = Top3$: C2$ = Ctr3$: B$ = XXX1$ GOSUB ShowChar2: C% = C% + 9 CASE 50 T$ = Top5$: C1$ = Ctr3$: M$ = Top6$: C2$ = Ctr4$: B$ = Bot1$ GOSUB ShowChar2: C% = C% + 9 CASE 51 T$ = Top5$: C1$ = Ctr3$: M$ = Top5$: C2$ = Ctr3$: B$ = Bot1$ GOSUB ShowChar2: C% = C% + 9 CASE 52 T$ = Top2$: C1$ = Ctr2$: M$ = Top5$: C2$ = Ctr3$: B$ = XXX1$ GOSUB ShowChar2: C% = C% + 9 CASE 53 T$ = Top6$: C1$ = Ctr4$: M$ = Top5$: C2$ = Ctr3$: B$ = Bot1$ GOSUB ShowChar2: C% = C% + 9 CASE 54 T$ = Top4$: C1$ = Ctr4$: M$ = Top1$: C2$ = Ctr2$: B$ = Bot1$ GOSUB ShowChar2: C% = C% + 9 CASE 55 T$ = Top5$: C1$ = Ctr3$: M$ = Top3$: C2$ = Ctr3$: B$ = XXX1$ GOSUB ShowChar2: C% = C% + 9 CASE 56 T$ = Top1$: C1$ = Ctr2$: M$ = Top1$: C2$ = Ctr2$: B$ = Bot1$ GOSUB ShowChar2: C% = C% + 9 CASE 57 T$ = Top1$: C1$ = Ctr2$: M$ = Top5$: C2$ = Ctr3$: B$ = XXX1$ GOSUB ShowChar2: C% = C% + 9 CASE ASC(":") LOCATE R% + 1, C%: PRINT "Ü"; LOCATE R% + 4, C%: PRINT "Ü"; C% = C% + 3 CASE 32 T$ = XXX1$: C1$ = XXX1$: M$ = XXX1$: C2$ = XXX1$: B$ = XXX1$ GOSUB ShowChar2: C% = C% + 9 END SELECT NEXT EXIT SUB ShowChar2: LOCATE R% + 0, C%: PRINT T$; LOCATE R% + 1, C%: PRINT C1$; LOCATE R% + 2, C%: PRINT C1$; LOCATE R% + 3, C%: PRINT M$; LOCATE R% + 4, C%: PRINT C2$; LOCATE R% + 5, C%: PRINT C2$; LOCATE R% + 6, C%: PRINT B$; RETURN END SUB