10 'A DEMO PROGRAM TO SHOW HOW ADDRESSED ZONES CAN RUN DIFFERENT 11 'FUNCTIONS ON AN AE RS232 CLOCK SYSTEM. 20 'WRITTEN BY JIM RECCELLI, APPLIED TECHNICAL SYSTEMS - 6/8/96 REVISED 9/6/96 (24HR TIME) 100 'MENU 110 CLS : BEEP: PRINT "ENTER ADDRESS (ZONE) TO COMMUNICATE WITH:" 115 PRINT 120 INPUT "VALID ADDRESSES ARE 1-15, OR 0 FOR ALL ZONES. ", ADDR 130 IF ADDR > 15 THEN 110 140 CLS : BEEP: PRINT "ADDRESS SELECTED IS ----> ", ADDR 150 PRINT : PRINT "FUNCTIONS AVAILABLE ARE:": PRINT 160 PRINT "(1) SEND COMPUTER'S TIME TO THE SELECTED ADDRESS": PRINT 170 PRINT "(2) RUN A COUNT DOWN TIMER ON THE SELECTED ADDRESS": PRINT 180 PRINT "(3) SEND A SCROLLING MESSAGE TO THE SELECTED ADDRESS": PRINT 185 PRINT "(4) SELECT A NEW ADDRESS": PRINT 186 PRINT "(5) SEND SIX CHARACTERS TO THE SELECTED ADDRESS": PRINT 190 PRINT "(9) QUIT - SENDS COMPUTER'S TIME TO THE SELECTED ADDRESS AND RETURNS TO SYSTEM": PRINT 200 INPUT "SELECT ONE OF THE ABOVE, THEN HIT RETURN. ", MENU 210 IF MENU > 9 THEN 140 211 IF MENU = 6 THEN 140 212 IF MENU = 7 THEN 140 213 IF MENU = 8 THEN 140 214 IF MENU = 5 THEN 50000 220 IF MENU < 1 THEN 140 230 IF MENU = 1 THEN GOSUB 10000 240 IF MENU = 2 THEN GOSUB 20000 250 IF MENU = 3 THEN GOSUB 30000 260 IF MENU = 4 THEN GOTO 100 270 IF MENU = 9 THEN GOSUB 90000 1000 GOTO 140 10000 'SEND TIME ROUTINE 10005 REM 232TIME.BAS SETS TIME IN AN AE DEVICE WITH RS232 OPTION 10010 OPEN "COM2:2400,N,8,1" FOR RANDOM AS #1 10020 H1$ = MID$(TIME$, 1, 1) 10030 H2$ = MID$(TIME$, 2, 1) 10040 H1H2$ = MID$(TIME$, 1, 2) 10060 PRINT TIME$ 10070 M1$ = MID$(TIME$, 4, 1) 10080 M2$ = MID$(TIME$, 5, 1) 10090 S1$ = MID$(TIME$, 7, 1) 10100 S2$ = MID$(TIME$, 8, 1) 10120 PRINT #1, CHR$(0); CHR$(0); CHR$(17); CHR$(ADDR); CHR$(4); H1$; H2$; M1$; M2$; S1$; S2$; CHR$(0) 10130 CLOSE 1 10135 RETURN 20000 'COUNT DOWN TIMER 20001 REM PROGRAM NAME IS "CDDEMO". DEMONSTRATES COUNT DOWN TIMER (RS232) 20002 REM JIM RECCELLI 1/8/95. 20010 OPEN "COM1:2400,N,8,1" FOR RANDOM AS #1 20020 DIM A(7) 20095 ' 20096 ' 20100 CLS : INPUT "ENTER COUNT DOWN TIME HHMMSS ", CD$ 20110 H1$ = MID$(CD$, 1, 1) 20111 H2$ = MID$(CD$, 2, 1) 20112 M1$ = MID$(CD$, 3, 1) 20113 M2$ = MID$(CD$, 4, 1) 20114 S1$ = MID$(CD$, 5, 1) 20115 S2$ = MID$(CD$, 6, 1) 20200 PRINT #1, CHR$(17); CHR$(ADDR); CHR$(5); H1$; H2$; M1$; M2$; S1$; S2$; CHR$(0); 20210 PRINT : PRINT "PRESS F1 TO RESET COUNT": PRINT 20211 PRINT "PRESS F2 TO RESUME COUNT": PRINT 20212 PRINT "PRESS F3 TO STOP AND FLASH THE COUNT": PRINT 20213 PRINT "PRESS F4 TO GO TO 00:00:00 AND FLASH": PRINT 20214 PRINT "PRESS F10 TO ENTER A NEW COUNT DOWN TIME": PRINT 20219 PRINT "PRESS F9 TO QUIT": PRINT 20300 ON KEY(1) GOSUB 21000 20310 KEY(1) ON 20400 ON KEY(2) GOSUB 22000 20410 KEY(2) ON 20500 ON KEY(3) GOSUB 23000 20510 KEY(3) ON 20550 ON KEY(4) GOSUB 24000 20560 KEY(4) ON 20570 ON KEY(10) GOSUB 29000 20580 KEY(10) ON 20590 ON KEY(9) GOSUB 40000 20591 KEY(9) ON 20600 GOTO 20300 21000 'PRINT "F1 RESET" 21010 PRINT #1, CHR$(17); CHR$(ADDR); CHR$(5); H1$; H2$; M1$; M2$; S1$; S2$; CHR$(4); 21999 RETURN 22000 'PRINT "F2 RESUME" 22010 PRINT #1, CHR$(17); CHR$(ADDR); CHR$(5); H1$; H2$; M1$; M2$; S1$; S2$; CHR$(8); 22999 RETURN 23000 'PRINT "F3 STOP" 23010 PRINT #1, CHR$(17); CHR$(ADDR); CHR$(5); H1$; H2$; M1$; M2$; S1$; S2$; CHR$(140); 23999 RETURN 24000 'PRINT "F4 GO TO 00:00:00 AND FLASH" 24010 PRINT #1, CHR$(17); CHR$(ADDR); CHR$(1); "0"; "0"; "0"; "0"; "0"; "0"; CHR$(130); 24999 RETURN 29000 CLS : PRINT "F10 ENTER A NEW COUNT DOWN TIME" 29005 CLS 29010 GOTO 20100 29020 GOTO 20300 29999 RETURN 30000 'SCROLLING MESSAGE 30005 REM THIS PROGRAM SENDS ASCII CHARACTERS (MODE 0), 1/27/94. 30010 OPEN "COM1:2400,N,8,1" FOR RANDOM AS #1 30020 ' 30240 CLS : INPUT "TYPE YOUR MESSAGE HERE.--->", Y$: PRINT 30245 PRINT "PRESS F1 TO ENTER NEW MESSAGE": PRINT 30249 PRINT "PRESS F9 TO QUIT" 30250 X$ = "... " 30260 A$ = Y$ + X$ 30270 ' 30280 B = LEN(A$) 30290 FOR C = 1 TO B 30300 D$ = MID$(A$, C, 1): E = ASC(D$) 30310 FOR Z = 1 TO 6: A(Z) = A(Z + 1): NEXT Z: A(6) = E 30320 PRINT #1, CHR$(17); CHR$(ADDR); CHR$(0); CHR$(A(1)); CHR$(A(2)); CHR$(A(3)); CHR$(A(4)); CHR$(A(5)); CHR$(A(6)); CHR$(0); 30322 ON KEY(1) GOSUB 31000 30323 KEY(1) ON 30326 ON KEY(9) GOSUB 40000 30327 KEY(9) ON 30330 GOSUB 30410 30350 C$ = INKEY$: IF C$ <> "" THEN 30240 30360 NEXT C 30370 GOTO 30270 30400 ' 30410 G = TIMER 30420 H = TIMER 30430 IF H > G + .25 THEN RETURN 30440 GOTO 30420 31000 'NEW MESSAGE 31010 CLOSE 1 31020 GOTO 30000 31030 RETURN 39999 RETURN 40000 'NEW ADDRESS 40010 CLOSE 1 40020 GOTO 100 49999 RETURN 50000 ' SEND SIX CHARACTERS 50005 REM THIS PROGRAM SENDS 6 ASCII CHARACTERS (MODE 0), 6/8/96. 50010 OPEN "COM1:2400,N,8,1" FOR RANDOM AS #1 50240 CLS : PRINT "PRESS F1 TO ENTER NEW MESSAGE": PRINT 50245 PRINT "PRESS F9 TO QUIT": PRINT 50250 INPUT "TYPE YOUR SIX CHARACTERS HERE.--->", Y$ 50252 ' 50253 ' 50260 A$ = Y$ 50270 ' 50280 B = LEN(A$) 50290 IF B > 6 GOTO 50240 50291 IF B < 6 GOTO 50240 50300 A1$ = MID$(A$, 1, 1) 50301 A2$ = MID$(A$, 2, 1) 50302 A3$ = MID$(A$, 3, 1) 50303 A4$ = MID$(A$, 4, 1) 50304 A5$ = MID$(A$, 5, 1) 50305 A6$ = MID$(A$, 6, 1) 50500 PRINT #1, CHR$(17); CHR$(ADDR); CHR$(0); A1$; A2$; A3$; A4$; A5$; A6$; CHR$(0); 50520 'LOOK FOR F1 OR F9 50522 ON KEY(1) GOSUB 51000 50523 KEY(1) ON 50526 ON KEY(9) GOSUB 40000 50527 KEY(9) ON 50540 GOTO 50520 50600 ' 51000 'NEW MESSAGE 51010 CLOSE 1 51020 GOTO 50000 51030 RETURN 59999 RETURN 89999 GOTO 140 90000 'SEND TIME TO SELECTED ADDRESS AND QUIT 90005 CLOSE 1 90010 OPEN "COM1:2400,N,8,1" FOR RANDOM AS 1 90020 H1$ = MID$(TIME$, 1, 1) 90030 H2$ = MID$(TIME$, 2, 1) 90040 H1H2$ = MID$(TIME$, 1, 2) 90060 PRINT TIME$ 90070 M1$ = MID$(TIME$, 4, 1) 90080 M2$ = MID$(TIME$, 5, 1) 90090 S1$ = MID$(TIME$, 7, 1) 90100 S2$ = MID$(TIME$, 8, 1) 90120 PRINT #1, CHR$(0); CHR$(0); CHR$(17); CHR$(ADDR); CHR$(4); H1$; H2$; M1$; M2$; S1$; S2$; CHR$(0) 90130 CLOSE 1 90135 SYSTEM 99999 END