1 ' <><><> TIMEBOMB <><><> Rev. 1 2 ' 3 ' Written for the TANDY 200 by: 4 ' Max L. Seim (71116,1347) 5 ' Roseville, Minnesota 6 ' 7 ' Please feel free to add or make 8 ' changes. Contact me for comments 9 ' or questions. 10 ' good luck... 11 ' 12 CLS:DIMB(4),D(4) 13 T=300:D=1:E=0:F=1:DE$=CHR$(98)+CHR$(99)+CHR$(97):REM T=Seconds (300=5 Min) 15 PRINT"Do you want instructions "; 16 A$=INKEY$:IFA$=""THEN16 17 CLS:IFA$="y"THENGOSUB5000 18 IFA$="Y"THEN:PRINT"Use only small letters in this game!":PRINT:PRINT"TURN OFF CAPS LOCK!":FORX=1TO1000:NEXTX:RUN 20 LINE(0,10)-(239,127),1,B:R%=6:FORX=1TO5:READXC%,YC%:GOSUB10004:NEXTX 25 DATA 20,25,220,25,120,70,20,110,220,110 30 FORX=1TO5:READA,A$:PRINT@A,A$;:NEXTX 31 FORX=1TO4:B(X)=1:NEXTX 32 DATA85,A,114,B,300,C,525,D,554,E 33 D(1)=85:D(2)=114:D(3)=525:D(4)=554 35 GOSUB510:PRINT@0,"Remove which BOLT ";:GOSUB500 36 IFA$=""THEN:GOSUB500:GOTO36 40 IFA$=CHR$(99)THEN20000 42 IFA$=CHR$(97)THENB(1)=0ELSEIFA$=CHR$(98)THENB(2)=0ELSEIFA$=CHR$(100)THENB(3)=0ELSEIFA$=CHR$(101)THENB(4)=0 43 FORX=1TO4:IFB(X)=0THENPRINT@D(X),"*"; 44 NEXTX 45 IFASC(A$)>96ANDASC(A$)<102THEN:FORX=1TO10:SOUND15500,1:NEXTX 47 PRINT@0,"Open PLATE? (Y/N) ";:GOSUB500 48 IFA$=""THEN:GOSUB500:GOTO48 49 IFA$="y"THEN55ELSEGOTO35 55 FORX=1TO4:IFB(X)=1THEN20000ELSENEXTX 100 CLS:R%=5:LINE(0,10)-(239,127),1,B 101 PRINT@0,"Inside view of the TIMEBOMB..."; 102 LINE(30,13)-(210,124),1,B:FORX=1TO4:READXC%,YC%:GOSUB10004:NEXTX 103 LINE(29,12)-(211,125),1,B 104 DATA 20,25,220,25,20,110,220,110 110 LINE(35,90)-(75,124),1,B:LINE(83,90)-(123,124),1,B 115 LINE(30,13)-(90,80),1,B:LINE(100,13)-(140,60),1,B:LINE(160,20)-(195,35),1,B 116 Y=79:FORX=91TO95:LINE(X,Y)-(X,13),1:Y=Y-1:NEXTX 117 Y=59:FORX=141TO145:LINE(X,Y)-(X,13),1:Y=Y-1:NEXTX 118 Y=123:FORX=76TO79:LINE(X,Y)-(X,Y-35),1:LINE(X+48,Y)-(X+48,Y-35),1:Y=Y-1:NEXTX 119 X=36:FORY=89TO85STEP-1:LINE(X,Y)-(X+39,Y),1:LINE(X+47,Y)-(X+87,Y),1:X=X+1:NEXTY 120 LINE(147,80)-(157,100),1,B:LINE(165,80)-(175,100),1,B:LINE(183,80)-(193,100),1,B 121 Y=34:FORX=196TO199:LINE(X,Y)-(X,Y-14),1:Y=Y-1:NEXTX 122 X=161:FORY=20TO17STEP-1:LINE(X,Y)-(X+34,Y),1:X=X+1:NEXTY 123 Y=99:FORX=158TO159:LINE(X,Y)-(X,Y-19),1:LINE(X+18,Y)-(X+18,Y-19),1:LINE(X+36,Y)-(X+36,Y-19),1:Y=Y-1:NEXTX 130 PRINT@208,"panel";:PRINT@338,"tilt";:PRINT@227,"timer";:PRINT@567,"power";:PRINT@575,"power"; 132 PRINT@585,"switches";:PRINT@290,"H";:PRINT@260,"C";:PRINT@145,"G";:PRINT@489,"A"; 134 PRINT@497,"B";:PRINT@385,"D";:PRINT@388,"E";:PRINT@391,"F"; 140 PRINT@465,CHR$(152);:PRINT@468,CHR$(153);:PRINT@471,CHR$(152);:GOSUB510 150 PRINT@147,T;:T=T-1:IFT<=0THEN20000 151 IFTT=4THEN20000ELSEIFE=1THEN:BEEP:T=T-50 152 LINE(120,13)-(102,40),1:PRINT@486,CHR$(229);:PRINT@494,CHR$(229);:PRINT@86,CHR$(239); 153 IFQ=1ORQ=2ORQ=3THEN157 155 PRINT@0,"Touch (A-H) "; 157 GOSUB500:IFA$=""THEN158ELSE165 158 FORZ=1TO75:NEXTZ:PRINT@486,CHR$(230);:PRINT@494,CHR$(230);:PRINT@86,CHR$(255); 159 IFF=0THEN:FORZ=1TO75:NEXTZ:GOTO150 160 LINE(120,13)-(102,40),0:LINE(120,13)-(138,40),1:FORZ=1TO75:NEXTZ:LINE(120,13)-(138,40),0:GOTO150 165 IFA$="c"THEN:BEEP:PRINT@0,"...don't touch the TILT switch";:FORZ=1TO300:NEXTZ:T=T-3:TT=TT+1:GOSUB510:GOTO150 167 IFA$="g"THEN:PRINT@0,"Disconnect TIMER (Y/N) ";:GOSUB500:Q=1 168 IFQ=1ANDA$="n"THEN:GOSUB510:Q=0:GOTO150 169 IFQ=1ANDA$="y"THEN20000 170 IFA$="a"THEN:PRINT@0,"Yank wire off of POWERPACK (Y/N) ";:GOSUB500:Q=2 171 IFQ=2ANDA$="n"THEN:GOSUB510:Q=0:GOTO150 172 IFQ=2ANDA$="y"THEN20000 173 IFA$="b"THEN:A$="a":GOTO170 175 IFA$="h"ANDF=1THEN:BEEP:PRINT@0,"OOPS...Touched PANEL, bumped TILT";:FORZ=1TO300:NEXTZ:T=T-3:TT=TT+1:GOSUB510:GOTO150 177 IFA$="f"ANDF=1THEN:PRINT@471,CHR$(153);:F=0:GOTO150 178 IFA$="f"ANDF=0THEN:PRINT@471,CHR$(152);:F=1:GOTO150 180 IFA$="e"ANDE=0THEN:PRINT@468,CHR$(152);:E=1:GOTO150 181 IFA$="e"ANDE=1THEN:PRINT@468,CHR$(153);:E=0:GOTO150 183 IFA$="d"ANDD=0THEN:PRINT@465,CHR$(152);:D=1:FORZ=10000TO1000STEP-200:SOUNDZ,1:NEXTZ:GOTO150 184 IFA$="d"ANDD=1THEN:PRINT@465,CHR$(153);:D=0:FORZ=1000TO10000STEP200:SOUNDZ,1:NEXTZ:GOTO150 185 IFA$="h"ANDF=0THEN:PRINT@0,"Open the PANEL (Y/N) ";:GOSUB500:Q=3 186 IFQ=3ANDA$="n"THEN:GOSUB510:Q=0:GOTO150 187 IFQ=3ANDA$="y"THEN300 190 GOTO150 300 CLS:PRINT@0,"Inside view of CONTROL PANEL..."; 305 LINE(30,13)-(140,120),1,B:XC%=50:YC%=33:R%=15:GOSUB10004 310 LINE(35,52)-(70,67),1,B:LINE(35,90)-(80,110),1,B:Y=89:FORX=36TO78STEP3:PSET(X,Y):PSET(X,Y-1):NEXTX 315 Y=111:FORX=36TO78STEP3:PSET(X,Y):PSET(X,Y+1):NEXTX:Y=68:FORX=36TO69STEP3:PSET(X,Y):NEXTX 320 LINE(109,110)-(130,127),1,BF:LINE(75,75)-(80,78),1,B:LINE(115,75)-(120,78),1,B 325 LINE(85,95)-(90,98),1,B:LINE(40,75)-(45,78),1,B 330 Y=29:FORX=89TO91:PSET(X,Y):PSET(X+20,Y):PSET(X+40,Y):NEXTX 332 Y=51:FORX=89TO91:PSET(X,Y):PSET(X+20,Y):PSET(X+40,Y):NEXTX 335 FORY=30TO50:PSET(90,Y):PSET(110,Y):PSET(130,Y):NEXTY 340 PRINT@168,CHR$(239);:PRINT@295,"A";:PRINT@298,"B";:PRINT@301,"C";:PRINT@488,"IC1";:PRINT@539,"J1";:PRINT@286,T; 350 PRINT@105,"1) Remove IC1";:PRINT@185,"2) Pull Out J1"; 355 PRINT@265,"3) Cut LINK A";:PRINT@345,"4) Cut LINK B";:PRINT@425,"5) Cut LINK C";:PRINT@505,"6) REMOVE"; 356 PRINT@548,"DETONATOR";:A=1:B=1:C=1 359 B(1)=239:B(2)=230:B(3)=239:B(4)=229:GOSUB510:CC=1 360 IFD$=DE$THEN370 362 PRINT@286,T;:T=T-1:IFT<=0THEN20000 365 SOUND16000,1:PRINT@168,CHR$(B(CC));:CC=CC+1:IFCC=5THENCC=1 370 GOSUB500:IFA$=""THEN371ELSE380 371 FORZ=1TO75:NEXTZ:IFD$=DE$THEN370 372 PRINT@168,CHR$(B(CC));:CC=CC+1:IFCC=5THENCC=1 373 FORZ=1TO75:NEXTZ:GOTO360 380 IFA$="1"THEN20000ELSEIFA$="2"THEN20000 384 IFA$="3"ANDA=1THEN:D$=D$+"a":A=0 385 IFA$="4"ANDB=1THEN:D$=D$+"b":B=0 386 IFA$="5"ANDC=1THEN:D$=D$+"c":C=0 390 IFA$="6"ANDD$=DE$THEN30000 391 IFA$="6"ANDD$<>DE$THEN20000 392 IFA$="3"THEN:FORY=30TO50:PRESET(90,Y):NEXTY 393 IFA$="4"THEN:FORY=30TO50:PRESET(110,Y):NEXTY 394 IFA$="5"THEN:FORY=30TO50:PRESET(130,Y):NEXTY 399 GOTO360 500 A$=INKEY$:RETURN 510 PRINT@0,STRING$(39," ");:RETURN 5000 CLS:PRINT" ":PRINT 5005 PRINT"The Minneapolis Police have discovered":PRINT"a timebomb at the airport. You have" 5010 PRINT"been assigned to open and diffuse the":PRINT"bomb. The bomb is built into a large" 5015 PRINT"steel box with a plate used to gain":PRINT"access. Simply select what you want":PRINT"to do with the choices given." 5020 PRINT"BE CAREFUL! Causing too many tilts":PRINT"will explode the bomb!" 5021 PRINT:PRINT" " 5022 A$=INKEY$:IFA$=""THEN5022ELSE:CLS 5025 PRINT:PRINT"Different portions of the bomb are":PRINT"rigged to explode if touched." 5030 PRINT"Also, if the timer expires, so do you!":PRINT"If you can diffuse the bomb, then you" 5035 PRINT"receive the medal of honor!":PRINT 5050 PRINT:PRINT"You start by examining the PLATE..." 5055 PRINT:PRINT" " 5056 A$=INKEY$:IFA$=""THEN5056ELSE:CLS:RETURN 10004 REM *circle routine* 10006 ON ERROR GOTO 10020 10008 XX%=R%:YY%=0:R1%=XX%/2 10010 YY%=YY%+1:R1%=R1%-YY%:IF R1%<0 THEN XX%=XX%-1:R1%=R1%+XX% 10012 PSET(XX%+XC%,YY%+YC%):PSET(XC%+YY%,YC%+XX%):PSET(XC%-YY%,YC%+XX%):PSET(XC%-XX%,YC%+YY%) 10014 PSET(XC%-XX%,YC%-YY%):PSET(XC%-YY%,YC%-XX%):PSET(XC%+YY%,YC%-XX%):PSET(XC%+XX%,YC%-YY%) 10016 IF XX%>YY% THEN 10010 10018 RETURN 10020 IF ERR=5 THEN RESUME NEXT ELSE PRINT "ERR=";ERR:STOP 20000 FORX=1000TO0STEP-10:SOUNDX,1:NEXTX 20005 CLS:PRINT@295,"KABOOM!!!";:FORZ=1TO1000:NEXTZ 20010 PRINT@0,"Play again (Y/N)";:GOSUB500 20015 IFA$=""THENGOSUB500:GOTO20015 20020 IFA$="y"THENRUNELSE:CLS:MENU 30000 CLS:PRINT@295,"YOU DID IT!!!";:FORZ=1TO1000:NEXTZ:GOTO20010