|
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 MBASICWhat 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.
|
|
|
|
|
Copyright ©2010 Steven Whitney. Last modified Thu 10/21/2010 02:08:03 -0700. |
||