25 Years of Programming
An open source source for C, C++, OWL, BASIC, MDB, XLS, DOT, and more...
Home   Projects   Up   Sitemap   Search   Blog   Forum+Chat   About Us   Privacy   Terms of Use   Feedback   FAQ   Images   Services   Payments   Humor   Music

Use your Heathkit H-89 computer as a simple burglar alarm, Microsoft MBASIC

What do you do if the homes around yours are being burglarized at an alarming rate and it seems certain you'll be hit eventually, but you absolutely have to be at work and leave the house unattended?

Here are some amusing solutions. The comments at the start of each program describe what it does and what events inspired it to be written.

As it turned out, the day they tried to break in, I was there.

10 'ANSWER.BAS 09-11-83 
10 'COPYRIGHT (C)1983 STEVEN WHITNEY.
11 'Initially published by http://25yearsofprogramming.com.
12 'Published under GNU GPL (General Public License) Version 3,with ABSOLUTELY NO WARRANTY.
13 'SETS HAYES MODEM TO ANSWER THE PHONE BUT NOT GIVE A CARRIER TONE.
14 'OUR HOUSEHOLD WAS GETTING MANY HANGUP PHONE CALLS. BASED ON THE MANY BURGLARIES IN THE
15 'NEIGHBORHOOD, WE FIGURED IT WAS PROBABLY SOMEONE TRYING TO DETERMINE WHEN WE WERE HOME.
16 'THE ANSWERING MACHINE MADE IT SEEM LIKE NO ONE WAS HOME, SO I TRIED THIS INSTEAD. 
17 'THE MODEM JUST PICKS UP THE PHONE AND DOES NOTHING (LIKE THE HANGUPS!), AS THOUGH 
18 'SOMEONE PICKED UP THE PHONE BUT REFUSES TO SAY ANYTHING, JUST LISTENING.
19 'THE PURPOSE WAS TO CONFUSE THE CALLERS SUFFICIENTLY TO DETER THEM.
20 'THE LOOP TIMERS WERE FOR MBASIC FOR THE H89, WHICH IS SLOW.
21 LPRINT "ATQ1"
30 FOR I=1 TO 200:NEXT I
40 LPRINT "ATE"
50 FOR I=1 TO 200:NEXT I
60 LPRINT "ATC0"
70 FOR I=1 TO 200:NEXT I
80 LPRINT "ATS0=3"
90 FOR I=1 TO 200:NEXT I
100 LPRINT "ATS7=40"
110 SYSTEM


9 'ALARM.BAS 09-10-83 
10 'COPYRIGHT (C)1983 STEVEN WHITNEY.
11 'Initially published by http://25yearsofprogramming.com.
12 'Published under GNU GPL (General Public License) Version 3,with ABSOLUTELY NO WARRANTY.
13 'AFTER RUNNING ANSWER.BAS TO HANDLE INCOMING CALLS, I LEFT THIS ONE RUNNING.
14 'IT CALLED ME AT WORK AT TIMED INTERVALS TO SIGNAL EITHER THAT
15 'ALL WAS OK, OR NOT. AND IF A CALL DIDN'T COME IN AT THE SCHEDULED TIME,
16 'I ALSO WOULD KNOW SOMETHING WAS WRONG.
17 'PGM MAKES USE OF THE HAYES SMARTMODEM 300'S MORSE CODE CAPABILITIES.
19 'THE HAYES MODEM MUST BE ON THE H89 PORT THAT IS CONFIGURED AS PRN: (PRINTER), FOR THE LPRINT STMTS.
20 INPUT "WHAT PHONE NUMBER TO DIAL";PHONE$
30 PRINT CHR$(27)"E"
40 REM PRINT CHR$(27)"x5"
50 REM GOTO 115
55 'EVERYTHING SHOWN ON THE SCREEN IS A FAKE. 
60 PRINT "Auto-Alert Home Security System, Version 2.02"
70 PRINT STRING$(80,"*")
80 PRINT:PRINT
90 PRINT TAB(30)"On Alert..."
100 PRINT:PRINT"Sensor 1 triggered"
110 PRINT:PRINT"Sensor 2 confirmed entry"
120 REM PRINT "Verified."
130 PRINT:PRINT "Dialing emergency number..."
140 PRINT
150 PRINT "TEXT MESSAGE TRANSMITTED TO SUMMON HELP"
152 PRINT
153 PRINT CHR$(27)"p"
154 'ANOTHER FAKE. POLICE OR OTHER EMERGENCY NUMBERS MUST NEVER BE CALLED BY AN AUTOMATED SYSTEM.
155 PRINT "POLICE HAVE BEEN ALERTED THAT A BREAK-IN HAS OCCURRED"
157 PRINT CHR$(27)"q"
159 'THIS IS INTENDED TO PROVOKE AN INTRUDER INTO PRESSING A KEY TO TRY TO STOP IT...
160 REM PRINT:PRINT "Owner dialed...";
169 'IF NO KEY IS PRESSED, THE PROGRAM JUST CALLED ME AT WORK EVERY 18 MINUTES TO SIGNAL ALL CLEAR IN MORSE CODE.
170 GOSUB 410
180 X$=INKEY$
190 IF X$="" THEN 170
199 'IF A KEY WAS PRESSED, IT CALLED ME AT WORK WITH A MORSE CODE SOS.
200 FOR K=1 TO 2
210 	LPRINT "ATQ1"
220 	FOR I=1 TO 100:NEXT I
230 	LPRINT "ATM0"
240 	FOR I=1 TO 100:NEXT I
250 	LPRINT "ATDT"+PHONE$+";"
260 	FOR I=1 TO 6000:NEXT I 
270 	FOR I=1 TO 10
280 		LPRINT "ATDR;C1.../---/..."
290 		FOR J=1 TO 1000 : NEXT J
300 	NEXT I
310 	FOR I=1 TO 1000:NEXT I
320 	LPRINT "ATH"
330 	FOR I=1 TO 200 : NEXT I
331 	LPRINT "ATC0"
332 	FOR I=1 TO 200:NEXT I
340 NEXT K
350 GOTO 170
360 REM PRINT "Counting."
370 FOR I=1 TO 1E+15
380 	FOR J=1 TO 200:NEXT J
390 	PRINT CHR$(7);
400 NEXT I
410 REM DELAY LOOP FOR APPROX. 18 MINUTES BETWEEN CALLS
420 FOR I=1 TO 25000:FOR J=1 TO 17:NEXT J,I : REM TIMER LINE
430 LPRINT "ATDT"+PHONE$+";"
440 FOR I=1 TO 6000:NEXT I
450 FOR I=1 TO 5
460 	LPRINT "ATD;C1-----/-----"
470 	FOR J=1 TO 1000: NEXT J
480 NEXT I
490 FOR I=1 TO 1000 : NEXT I
500 LPRINT "ATH"
510 FOR I=1 TO 200:NEXT I
512 LPRINT "ATC0"
513 FOR I=1 TO 200:NEXT I
520 RETURN


5 'SENTRY.BAS 09-14-83
6 'COPYRIGHT (C)1983 STEVEN WHITNEY.
7 'Initially published by http://25yearsofprogramming.com.
9 'Published under GNU GPL (General Public License) Version 3,with ABSOLUTELY NO WARRANTY.
10 'MONITORS H89 PORT 214 AND CALLS IF STATUS CHANGE OR TYPED KEYBOARD INPUT.
11 'GETTING A MORSE CODE PHONE CALL EVERY 18 MINUTES FROM ALARM.BAS GOT OLD FAST.
12 'THIS PROGRAM REQUIRED SOME NEW HARDWARE: A MERCURY SWITCH INSTALLED ON THE BACK OF THE TV,
13 'WIRED TO A 6 VOLT (I THINK) POWER SOURCE, WHICH WAS CONNECTED (THROUGH A RELAY, FOR A 
14 'REASON I DON'T RECALL) TO A DB25 PLUG AT WHICHEVER SERIAL PORT WAS MONITORED BY THE H89'S
15 'BIT 1 OF PORT 214 (DECIMAL). IF THE TV (THE CLOSEST VALUABLE ITEM TO THE DOOR) WAS MOVED,
16 'THE SWITCH WOULD APPLY VOLTAGE TO THE SERIAL PORT PIN, 
17 'THE PORT WOULD CHANGE STATUS, AND CALL ME AT WORK WITH AN SOS, SAME AS BEFORE.
20 INPUT "WHAT PHONE NUMBER TO DIAL";PHONE$
30 PRINT CHR$(27)"E"
40 REM PRINT CHR$(27)"x5"
50 REM GOTO 115
60 PRINT "             Auto-Alert Home Security System, Version 2.02"
70 PRINT STRING$(80,"*")
80 PRINT:PRINT
90 PRINT TAB(30)"On Alert..."
100 PRINT:PRINT"Sensor 1 triggered"
110 PRINT:PRINT"Sensor 2 confirms"   
120 REM PRINT "Verified."
130 PRINT:PRINT "Dialing emergency number..."
140 PRINT
150 PRINT "               TEXT MESSAGE TRANSMITTED TO SUMMON HELP"
160 PRINT
165 PRINT:PRINT
170 PRINT CHR$(27)"p"
190 PRINT TAB(15);"POLICE HAVE BEEN ALERTED THAT A BREAK-IN HAS OCCURRED";TAB(80)
200 PRINT CHR$(27)"q"
210 REM PRINT:PRINT "Owner dialed...";
220 IF (INP(214) AND 1) OR INKEY$<>"" THEN 230 ELSE 220
230 FOR K=1 TO 2
240 	LPRINT "ATQ1"
250 	FOR I=1 TO 100:NEXT I
260 	LPRINT "ATM0"
270 	FOR I=1 TO 100:NEXT I
280 	LPRINT "ATDT"+PHONE$+";"
290 	FOR I=1 TO 6000:NEXT I 
300 	FOR I=1 TO 10
310 		LPRINT "ATDR;C1.../---/..."
320 		FOR J=1 TO 1000 : NEXT J
330 	NEXT I
340 	FOR I=1 TO 1000:NEXT I
350 	LPRINT "ATH"
360 	FOR I=1 TO 200 : NEXT I
370 	LPRINT "ATC0"
380 	FOR I=1 TO 200:NEXT I
390 NEXT K
400 GOTO 220

The next "escalation" was to install a real alarm system.

 

Valid HTML 4.01 Transitional Valid CSS
Yahoo! Search
Search the web Search this site
View content labeling at ICRA.