home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / MBUG / MBUG085.ARC / SOVIET.BAS < prev    next >
BASIC Source File  |  1979-12-31  |  25KB  |  461 lines

  1. 100 DIM A(17,10),P(5),O1$(11),O2$(11),M$(27),T(5),ROOM$(17),IN$(11),TR(11)
  2. 110 CLS$=CHR$(26)
  3. 115 DEF FNCURS$(X,Y)=CHR$(27)+"="+CHR$(X+31)+CHR$(Y+31)
  4. 120 REM ** FIRST ADVENTURE BY **
  5. 130 REM **     DAVID MENY     **
  6. 140 REM **                    **
  7. 150 REM **    ESCAPE  FROM    **
  8. 160 REM **     S.S.A.D.B.     **
  9. 170 REM **   MAY 15TH, 1985   **
  10. 180 REM Converted to CP/M MBASIC for the Microbee by AJLaughton 20/2/88
  11. 190 GOSUB 4230:REM INITIALIZE
  12. 200 PRINT FNCURS$(21,16);
  13. 210 PRINT "Escape from the Soviet Science and Detention Base."
  14. 220 PRINT:PRINT TAB(19)"<Converted for the Microbee by A J Laughton>"
  15. 230 PRINT:GOSUB 3240:REM ROOM DESCRIPTION
  16. 240 GOSUB 1900:REM OBJECTS IN ROOM?
  17. 250 REM ** INPUT HANDLING **
  18. 260 KW=0
  19. 270 IF SIREN=1 AND SET=0 THEN MV=1:SET=1
  20. 280 IF SET=1 THEN MV=MV+1:IF MV=3 AND RO=6 AND BOX=0 THEN PRINT:PRINT "A worker comes running in and glances around. He sees you and calls the guards":PRINT "who take you away and torture you.":GOTO 3140
  21. 290 IF MV=3 AND RO=6 AND BOX=1 THEN PRINT:PRINT "A worker comes in and glances around. He glances around and not noticing":PRINT "anything, he heads to the balcony.":TR(11)=7
  22. 300 IF MV=3 THEN TR(11)=7
  23. 310 PRINT:INPUT ">",A$
  24. 320 IF A$="" THEN PRINT:PRINT "What?":GOTO 270
  25. 330 AC=ASC(A$)
  26. 340 IF AC<65 OR AC>90 THEN PRINT:PRINT "Capital letters please.":GOTO 270
  27. 350 M=LEN(A$):IF M<7 THEN A$=A$+" ":GOTO 350
  28. 360 B$=LEFT$(A$,3)
  29. 370 IF B$="INV" OR B$="I  " THEN GOSUB 730:GOTO 270
  30. 380 IF B$="SCO" THEN GOSUB 820:GOTO 270
  31. 390 IF B$="QUI" OR B$="Q  " THEN GOSUB 850:GOTO 270
  32. 400 IF B$="HEL" OR B$="CLU" THEN PRINT:PRINT "Sorry, there is no help for lost agents in this game.":GOTO 270
  33. 410 IF B$="HID" THEN GOSUB 2360:GOTO 270
  34. 420 IF B$="STA" THEN GOSUB 2410:GOTO 270
  35. 430 IF B$="LOO" OR B$="L  " THEN GOTO 230
  36. 440 IF B$="N  " THEN C$="N  ":GOSUB 920:GOTO 270
  37. 450 IF B$="S  " THEN C$="S  ":GOSUB 920:GOTO 270
  38. 460 IF B$="E  " THEN C$="E  ":GOSUB 920:GOTO 270
  39. 470 IF B$="W  " THEN C$="W  ":GOSUB 920:GOTO 270
  40. 480 IF B$="U  " THEN C$="U  ":GOSUB 920:GOTO 270
  41. 490 IF B$="D  " THEN C$="D  ":GOSUB 920:GOTO 270
  42. 500 N=1
  43. 510 IF MID$(A$,N,1)=" " THEN C$=MID$(A$,N+1,3):IF LEFT$(C$,1)<>" " THEN 540 ELSE 530
  44. 520 IF N<M THEN N=N+1:GOTO 510
  45. 530 PRINT:PRINT "In that form, I don't know the word ";A$:GOTO 270
  46. 540 IF B$="GO " OR B$="MOV" OR B$="WAL" THEN KW=1:GOSUB 920:GOTO 270
  47. 550 IF B$="EXA" OR B$="SEA" THEN GOSUB 2590:GOTO 270
  48. 560 IF B$="TAK" OR B$="GET" THEN KW=1:GOSUB 1600:GOTO 270
  49. 570 IF B$="DRO" OR B$="PUT" THEN KW=1:GOSUB 1140:GOTO 270
  50. 580 IF B$="UNL" THEN KW=1:GOSUB 2110:GOTO 270
  51. 590 IF B$="LOC" THEN KW=1:GOSUB 2440:GOTO 270
  52. 600 IF B$="OPE" THEN KW=1:GOSUB 1280:GOTO 270
  53. 610 IF B$="CLO" THEN KW=1:GOSUB 2510:GOTO 270
  54. 620 IF B$="REA" THEN KW=1:GOSUB 1440:GOTO 270
  55. 630 IF B$="PUS" OR B$="PRE" THEN KW=1:GOSUB 2260:GOTO 270
  56. 640 IF B$="PUL" OR B$="UNP" THEN KW=1:GOSUB 2980:GOTO 270
  57. 650 IF B$="TYP" THEN KW=1:GOSUB 3030:GOTO 270
  58. 660 IF B$="POU" OR B$="SPR" THEN KW=1:GOSUB 2910:GOTO 270
  59. 670 IF B$="INS" THEN KW=1:GOSUB 1830:GOTO 270
  60. 680 IF B$="KIC" OR B$="HIT" THEN KW=1:GOSUB 1970:GOTO 270
  61. 690 IF B$="MIX" OR B$="COM" THEN KW=1:GOSUB 2800:GOTO 270
  62. 700 IF B$="THR" THEN KW=1:GOSUB 2190:GOTO 270
  63. 710 PRINT:PRINT "I don't know that word.":GOTO 270
  64. 720 REM **** BEGIN SUBROUTINES ****
  65. 730 REM ** INVENTORY **
  66. 740 PRINT:PRINT "  You are carrying:"
  67. 750 PRINT
  68. 760 FOR I=1 TO 8
  69. 770 IF TR(I)=200 THEN PRINT "    ";IN$(I):AADS=1
  70. 780 NEXT I
  71. 790 IF AADS<>1 THEN PRINT "    nothing"
  72. 800 AADS=0
  73. 810 RETURN
  74. 820 REM ** SCORE **
  75. 830 PRINT:PRINT "Out of 200 points, you got ";SCORE" points."
  76. 840 RETURN
  77. 850 REM ** QUITING **
  78. 860 PRINT:PRINT "Out of 200 points, you got "SCORE" points."
  79. 870 PRINT
  80. 880 INPUT "Are you sure you want to quit";F$
  81. 890 IF F$="" THEN 870
  82. 900 IF F$="Y" OR F$="y" OR F$="YES" THEN END
  83. 910 PRINT:PRINT "Ok.":GOTO 270
  84. 920 REM ** MOVEMENT COMMAND **
  85. 930 C$=LEFT$(C$,1)
  86. 940 IF RO=10 AND GUARD=1 THEN PRINT:PRINT "As you try to leave the guard spies you and captures you. He alerts others":PRINT "and soon you are tortured and killed.":GOTO 3140
  87. 950 IF RO=9 AND C$="S" AND PLUG=0 THEN PRINT:PRINT "As you step into the record room, the camera spies you and alerts the guards.":PRINT "They take you away and torture you which eventually kills you.":GOTO 3140
  88. 960 IF RO=13 AND C$="S" AND TR(11)=16 THEN PRINT:PRINT "As you step into the missle site, a worker working on the MX-13 missle":PRINT "sees you and calls for guards. They take you away and torture you. You":PRINT "die in their hands.":GOTO 3140
  89. 970 IF RO=6 AND BOX=1 THEN PRINT:PRINT "You can't go that way while you are crouching in the box.":RETURN
  90. 980 IF RO=7 AND TR(11)=7 AND C$="W" THEN PRINT:PRINT "As you try to leave, the worker grabs you and calls for the guards. When the":PRINT "guards come, they take you away to be tortured. THE END!":GOTO 3140
  91. 990 IF C$="N" AND A(RO,1)=0 THEN PRINT:PRINT "You can't go that way.":RETURN
  92. 1000 IF C$="S" AND A(RO,2)=0 THEN PRINT:PRINT "You can't go that way.":RETURN
  93. 1010 IF C$="E" AND A(RO,3)=0 THEN PRINT:PRINT "You can't go that way.":RETURN
  94. 1020 IF C$="W" AND A(RO,4)=0 THEN PRINT:PRINT "You can't go that way.":RETURN
  95. 1030 IF C$="U" AND A(RO,5)=0 THEN PRINT:PRINT "You can't go that way.":RETURN
  96. 1040 IF C$="D" AND A(RO,6)=0 THEN PRINT:PRINT "You can't go that way.":RETURN
  97. 1050 IF C$="N" THEN RO=A(RO,1)
  98. 1060 IF C$="S" THEN RO=A(RO,2)
  99. 1070 IF C$="E" THEN RO=A(RO,3)
  100. 1080 IF C$="W" THEN RO=A(RO,4)
  101. 1090 IF C$="U" THEN RO=A(RO,5)
  102. 1100 IF C$="D" THEN RO=A(RO,6)
  103. 1110 IF RO=3 AND SOP1=0 THEN SCORE=SCORE+10:SOP1=1:GOSUB 3100
  104. 1120 IF RO=10 AND DSF=0 THEN SCORE=SCORE+30:DSF=1:GOSUB 3100
  105. 1130 RETURN
  106. 1140 REM ** DROP ROUTINE **
  107. 1150 FLAG=0:OBJECT=0
  108. 1160 PRINT
  109. 1170 FOR I=1 TO 8
  110. 1180 IF TR(I)=200 THEN FLAG=1
  111. 1190 NEXT I
  112. 1200 IF FLAG=0 THEN PRINT "You aren't carrying anything.":RETURN
  113. 1210 FOR I=1 TO 8
  114. 1220 IF C$=O1$(I) AND TR(I)=200 THEN OBJECT=I
  115. 1230 NEXT I
  116. 1240 IF OBJECT=0 THEN PRINT "You're not holding that item.":RETURN
  117. 1250 TR(OBJECT)=RO
  118. 1260 PRINT "Ok."
  119. 1270 RETURN
  120. 1280 REM ** OPEN ROUTINE **
  121. 1290 IF C$<>"DOO" AND C$<>"CAB" AND C$<>"VAU" THEN PRINT:PRINT "You can't open that.":RETURN
  122. 1300 IF C$<>"DOO" THEN 1360
  123. 1310 IF C$="DOO" AND DOOR=0 AND RO=15 THEN PRINT:PRINT "The door is locked.":RETURN
  124. 1320 IF C$="DOO" AND DOOR=1 AND RO=15 THEN PRINT:PRINT "The door swings open, revealing a passageway to the north.":DOOR=2:A(10,2)=15:A(15,1)=10:RETURN
  125. 1330 IF C$="DOO" AND DOOR=1 AND RO=10 THEN PRINT:PRINT "The door swings open, revealing a passageway to the south.":DOOR=2:A(10,2)=15:A(15,1)=10:RETURN
  126. 1340 IF C$="DOO" AND DOOR=2 AND RO=15 OR RO=10 THEN PRINT:PRINT "The door is already open.":RETURN
  127. 1350 PRINT:PRINT "You can't see a door here.":RETURN
  128. 1360 IF C$<>"VAU" THEN 1400
  129. 1370 IF C$="VAUL" AND VAULT=0 AND RO=1 THEN PRINT "You have to type in the correct code for the vault to open.":RETURN
  130. 1380 IF C$="VAUL" AND VAULT=1 AND RO=1 THEN PRINT "It's already open.":RETURN
  131. 1390 PRINT:PRINT "You can't see the vault here.":RETURN
  132. 1400 IF C$="CAB" AND CAB=0 AND RO=14 THEN PRINT "The cabinet is now open.":CAB=1:TR(7)=14:RETURN
  133. 1410 IF C$="CAB" AND CAB=1 AND RO=14 THEN PRINT "The cabinet is already open.":RETURN
  134. 1420 PRINT:PRINT "You can't see a cabinet here.":RETURN
  135. 1430 RETURN
  136. 1440 REM ** READ ROUTINE **
  137. 1450 FLAG=0
  138. 1460 PRINT
  139. 1470 IF C$<>"PLA" THEN 1500
  140. 1480 IF RO<>6 THEN PRINT "You don't see the plaque here.":RETURN
  141. 1490 PRINT "The plaque reads: 'Press in case of emergency.'":RETURN
  142. 1500 FOR I=1 TO 8
  143. 1510 IF C$=O1$(I) AND TR(I)=200 THEN FLAG=1
  144. 1520 NEXT
  145. 1530 IF FLAG=0 THEN PRINT "You don't have that item.":RETURN
  146. 1540 HH$=LEFT$(C$,3)
  147. 1550 IF HH$<>"NOT" AND HH$<>"NEW" AND HH$<>"SLI" AND HH$<>"FIL" THEN PRINT "You can't read that!":RETURN
  148. 1560 IF HH$="NEW" AND TR(2)=200 THEN PRINT "The newspaper reads: 'Signs of MX-13 missles being shipped to Russia...' It":PRINT "goes on but you can't make anymore out.":RETURN
  149. 1570 IF HH$="SLI" AND TR(6)=200 THEN PRINT "The slip reads: 'Porch needs fixing and new code is '971'.'":RETURN
  150. 1580 IF HH$="FIL" AND TR(7)=200 THEN PRINT "The file reads: 'TOP-SECRET Information on MX-13 and deployment.'":RETURN
  151. 1590 IF HH$="NOT" AND TR(3)=200 THEN PRINT "The note reads: 'New scientific breakthrough: analgesic and liquid in beaker":PRINT "makes great acid!'":RETURN
  152. 1600 REM ** GET ROUTINE **
  153. 1610 PRINT
  154. 1620 IF C$="GUA" OR C$="WOR" THEN PRINT "You can't get that.":RETURN
  155. 1640 FLAG=0:HHG=0:OBJECT=0
  156. 1650 FOR I=1 TO 8
  157. 1660 IF TR(I)=200 THEN HHG=HHG+1
  158. 1670 NEXT
  159. 1680 IF HHG>=6 THEN PRINT "You can't carry anymore.":RETURN
  160. 1690 FOR I=1 TO 8
  161. 1700 IF TR(I)=RO OR TR(2)=220 THEN FLAG=1
  162. 1710 NEXT I
  163. 1720 IF FLAG=0 THEN PRINT "There is nothing here to pick up.":RETURN
  164. 1730 IF TR(2)=220 AND C$="NEW" AND TR(4)=220 THEN OBJECT=2:INSERT=0:TR(4)=15:GOTO 1790
  165. 1740 IF TR(2)=220 AND C$="NEW" THEN OBJECT=2:INSERT=0:GOTO 1790
  166. 1750 FOR I=1 TO 8
  167. 1760 IF C$=O1$(I) AND TR(I)=RO THEN OBJECT=I
  168. 1770 NEXT
  169. 1780 IF OBJECT=0 THEN PRINT "I don't see that object here.":RETURN
  170. 1790 TR(OBJECT)=200
  171. 1800 PRINT "Ok.":IF TR(7)=200 AND SOP=0 THEN SCORE=SCORE+50:SOP=1:GOSUB 3100
  172. 1810 IF OBJECT=4 AND DGF=0 THEN SCORE=SCORE+20:DGF=1:GOSUB 3100
  173. 1820 RETURN
  174. 1830 REM ** INSERT ROUTINE **
  175. 1840 IF C$<>"NEW" THEN PRINT:PRINT "You can't insert that.":RETURN
  176. 1850 INPUT "  Under what";F$:F$=LEFT$(F$,3)
  177. 1860 IF F$<>"DOO" THEN PRINT:PRINT "You can't insert the newspaper under that.":RETURN
  178. 1870 IF RO<>15 THEN PRINT:PRINT "You can't see a door here.":RETURN
  179. 1880 PRINT:PRINT "Ok.":INSERT=1:TR(2)=220
  180. 1890 RETURN
  181. 1900 REM ** OBJECTS IN ROOM? **
  182. 1910 PRINT
  183. 1920 FOR I=1 TO 11
  184. 1930 IF TR(I)=RO THEN PRINT O2$(I)
  185. 1940 NEXT I
  186. 1950 RETURN
  187. 1960 END
  188. 1970 REM ** HIT ROUTINE **
  189. 1980 PRINT
  190. 1990 IF RO<>15 AND RO<>7 THEN PRINT "I can't use that word here.":RETURN
  191. 2000 IF C$<>"DOO" AND C$<>"WOR" THEN PRINT "You can't hit that.":RETURN
  192. 2010 IF C$="WOR" THEN GOTO 2080
  193. 2020 IF RO=15 AND C$="DOO" AND KEE=0 THEN PRINT "You hear a sound from the other side of the door.":KEE=1:GOTO 2040
  194. 2030 IF RO=15 AND C$="DOO" AND KEE=1 THEN PRINT "It doesn't work this time.":RETURN
  195. 2040 IF INSERT=0 THEN PRINT:PRINT "Sorry, because of that last action, there is no way for you to proceed.":GOTO 3140
  196. 2050 IF INSERT=1 THEN PRINT:PRINT "There is now something on the newspaper."
  197. 2060 TR(4)=220
  198. 2070 RETURN
  199. 2080 IF RO=7 AND C$="WOR" AND WORKER=0 THEN PRINT "The worker falls over the porch, yelling. As he falls, something falls out":PRINT "of the worker's pocket":TR(8)=7:TR(11)=255:WORKER=1:RETURN
  200. 2090 IF RO=7 AND C$="WOR" AND WORKER=1 THEN PRINT "The worker is dead, because of you!":RETURN
  201. 2100 RETURN
  202. 2110 REM ** UNLOCK ROUTINE **
  203. 2120 PRINT
  204. 2130 IF RO<>15 AND RO<>10 THEN PRINT "I can't use that word here.":RETURN
  205. 2140 IF C$<>"DOO" THEN PRINT "I can't unlock that.":RETURN
  206. 2150 IF TR(4)<>200 THEN PRINT "You have nothing to unlock the door with.":RETURN
  207. 2160 IF DOOR=0 THEN PRINT "The door is now unlocked.":DOOR=1:GOTO 2180
  208. 2170 IF DOOR=1 OR DOOR=2 THEN PRINT "The door is already unlocked."
  209. 2180 RETURN
  210. 2190 REM ** THROW ROUTINE **
  211. 2200 IF RO<>10 THEN PRINT:PRINT "I can't use that word here.":RETURN
  212. 2210 IF C$<>"BRI" THEN PRINT:PRINT "You can't throw that.":RETURN
  213. 2220 INPUT "  At what";F$:F$=LEFT$(F$,3)
  214. 2230 IF F$="GUA" AND GUARD=1 THEN PRINT:PRINT "You hit the guard in the back of the head with the brick and he becomes":PRINT "unconsicous.":TR(9)=255:TR(10)=10:GUARD=0:TR(1)=10:SCORE=SCORE+20:GOSUB 3100:RETURN
  215. 2240 IF F$="GUA" AND GUARD=0 THEN PRINT:PRINT "The guard is already unconsicous.":RETURN
  216. 2250 PRINT "You can't throw the brick at that.":RETURN
  217. 2260 REM ** PUSH ROUTINE **
  218. 2270 IF RO<>6 AND RO<>11 AND RO<>12 AND RO<>13 THEN PRINT:PRINT "I can't use that word here.":RETURN
  219. 2280 PRINT
  220. 2290 IF C$="ONE" THEN PRINT "The elevator doors close...":FOR I=1 TO 100:NEXT:PRINT "Then they open....":RO=11:RETURN
  221. 2300 IF C$="TWO" THEN PRINT "The elevator doors close...":FOR I=1 TO 100:NEXT:PRINT "Then they open....":RO=12:RETURN
  222. 2310 IF C$="THR" THEN PRINT "The elevator doors close...":FOR I=1 TO 100:NEXT:PRINT "Then they open....":RO=13:RETURN
  223. 2320 IF C$="BUT" AND RO=6 AND GHT=0 THEN PRINT "A siren sounds and a worker will be in here any minute. The button goes in so":PRINT "you can't press it again.":SIREN=1::GHT=1:RETURN
  224. 2330 IF C$="BUT" AND RO=6 AND GHT=1 THEN PRINT "You can't push the button again.":RETURN
  225. 2340 PRINT "You can't push that.":RETURN
  226. 2350 RETURN
  227. 2360 REM ** HIDE ROUTINE **
  228. 2370 IF RO<>6 THEN PRINT:PRINT "I can't use that word here.":RETURN
  229. 2380 INPUT "  In what";F$:F$=LEFT$(F$,3)
  230. 2390 IF F$="BOX" THEN PRINT:PRINT "Ok, you are now crouching in the box.":BOX=1:RETURN
  231. 2400 PRINT:PRINT "You can't hide in there.":RETURN
  232. 2410 REM ** STAND ROUTINE **
  233. 2420 IF BOX=0 THEN PRINT:PRINT "You are already standing.":RETURN
  234. 2430 IF BOX=1 THEN PRINT:PRINT "Ok, you are now standing outside the box.":BOX=0:RETURN
  235. 2440 REM ** LOCK ROUTINE **
  236. 2450 IF RO<>10 AND RO<>15 THEN PRINT:PRINT "I can't use that word here.":RETURN
  237. 2460 IF C$<>"DOO" THEN PRINT:PRINT "You can't lock that.":RETURN
  238. 2470 IF TR(4)<>200 THEN PRINT:PRINT "You have nothing to lock the door with.":RETURN
  239. 2480 IF DOOR=0 THEN PRINT:PRINT "The door is already locked.":RETURN
  240. 2490 IF DOOR=1 OR DOOR=2 THEN PRINT:PRINT "Ok, the door is now closed and locked.":DOOR=0:A(15,1)=0:A(10,2)=0:RETURN
  241. 2500 RETURN
  242. 2510 REM ** CLOSE ROUTINE **
  243. 2520 IF C$<>"DOO" AND C$<>"CAB" THEN PRINT:PRINT "You can't close that.":RETURN
  244. 2530 IF C$="DOO" AND DOOR=2 AND RO=15 THEN PRINT:PRINT "The door is now closed.":DOOR=1:A(10,2)=0:A(15,1)=0:RETURN
  245. 2540 IF C$="DOO" AND DOOR=2 AND RO=10 THEN PRINT:PRINT "The door is now closed.":DOOR=1:A(15,1)=0:A(10,2)=0:RETURN
  246. 2550 IF C$="DOO" AND DOOR=0 OR DOOR=1 AND RO=10 OR RO=15 THEN PRINT:PRINT "The door is already closed.":RETURN
  247. 2560 IF C$="CAB" AND CAB=1 AND RO=14 THEN PRINT:PRINT "The cabinet is now closed.":RETURN
  248. 2570 IF C$="CAB" AND CAB=0 AND RO=14 THEN PRINT:PRINT "The cabinet is already closed.":RETURN
  249. 2580 PRINT "You can't close that here.":RETURN
  250. 2590 REM ** EXAMINE ROUTINE **
  251. 2600 PRINT
  252. 2610 IF C$="DOO" AND RO=15 OR RO=10 THEN PRINT "The large, wooden door has a keyhole and a small space below it. Through":PRINT "the keyhole you can see a key, unreachable from this side.":RETURN
  253. 2620 IF C$="BRI" AND TR(1)=200 THEN PRINT "The brick is just a normal, heavy brick.":RETURN
  254. 2630 IF C$="NEW" AND TR(2)=200 THEN PRINT "The newspaper just has some readable writing on it.":RETURN
  255. 2640 IF C$="NOT" AND TR(3)=200 THEN PRINT "The note just has some writing on it.":RETURN
  256. 2650 IF C$="KEY" AND TR(4)=200 THEN PRINT "I see nothing special about that.":RETURN
  257. 2660 IF C$="BEA" AND TR(5)=200 THEN PRINT "I see nothing special about that.":RETURN
  258. 2670 IF C$="SLI" AND TR(6)=200 THEN PRINT "The slip of paper just has some writing on it.":RETURN
  259. 2680 IF C$="FIL" AND TR(7)=200 THEN PRINT "The file contains top-secret information.":RETURN
  260. 2690 IF C$="ASP" AND TR(8)=200 THEN PRINT "The aspirin has 'BUFFERIN' on it.":RETURN
  261. 2700 IF C$="GUA" AND TR(9)=RO THEN PRINT "The guard is a hard working employee of the Russians.":RETURN
  262. 2710 IF C$="GUA" AND TR(10)=RO THEN PRINT "The guard is unconsicous.":RETURN
  263. 2720 IF C$="WOR" AND TR(11)=RO THEN PRINT "The worker has something in his back pocket.":RETURN
  264. 2730 IF C$="PLA" AND RO=6 THEN PRINT "The plaque has writing on it.":RETURN
  265. 2740 IF C$="BOX" AND RO=6 THEN PRINT "The box is big enough for you to HIDE in it.":RETURN
  266. 2750 IF C$="CAB" AND RO=14 AND CAB=1 THEN PRINT "The cabinet is open.":RETURN
  267. 2760 IF C$="CAB" AND RO=14 AND CAB=0 THEN PRINT "The cabinet is closed.":RETURN
  268. 2770 IF C$="PLU" AND RO=2 AND PLUG=0 THEN PRINT "The plug is connected to an outlet.":RETURN
  269. 2780 IF C$="PLU" AND RO=2 AND PLUG=1 THEN PRINT "The plug is not connected to an outlet.":RETURN
  270. 2790 PRINT "I can't examine that now.":RETURN
  271. 2800 REM ** MIX ROUTINE **
  272. 2810 IF C$<>"ASP" AND C$<>"BEA" THEN PRINT:PRINT "I can't mix that.":RETURN
  273. 2820 IF C$="BEA" THEN GOTO 2870
  274. 2830 IF C$="ASP" AND TR(8)=200 THEN INPUT "  In what";F$:F$=LEFT$(F$,3)
  275. 2840 IF F$="BEA" AND TR(5)=200 THEN PRINT:PRINT "The beaker begins to bubble and inside there is an acidy solution.":TR(8)=255:BEAKER=1:RETURN
  276. 2850 IF F$="BEA" THEN PRINT:PRINT "You don't have the beaker.":RETURN
  277. 2860 PRINT:PRINT "You can't mix the aspirin with that.":RETURN
  278. 2870 INPUT "  With what";F$:F$=LEFT$(F$,3)
  279. 2880 IF F$="ASP" AND TR(8)=200 THEN PRINT:PRINT "The beaker begins to bubble and inside there is an acidy solution.":BEAKER=1:TR(8)=255:RETURN
  280. 2890 IF F$="ASP" THEN PRINT:PRINT "You don't have the aspirin.":RETURN
  281. 2900 PRINT:PRINT "You can't mix that with the beaker.":RETURN
  282. 2910 REM ** POUR ROUTINE **
  283. 2920 PRINT
  284. 2930 IF RO<>8 THEN PRINT:PRINT "I can't use that word here.":RETURN
  285. 2940 IF C$="BEA" OR C$="LIQ" AND BEAKER=0 THEN PRINT:PRINT "The liquid is stuck inside (for now).":RETURN
  286. 2950 IF C$="BEA" OR C$="LIQ" AND BEAKER=1 THEN INPUT "  On what";F$:F$=LEFT$(F$,3)
  287. 2960 IF F$="WAL" OR F$="NOR" THEN PRINT:PRINT "The wall to the north, becomes a giant hole, allowing you to go that way.":A(8,1)=3:TR(5)=255:RETURN
  288. 2970 PRINT:PRINT "You can't pour the liquid on that.":RETURN
  289. 2980 REM ** PULL ROUTINE **
  290. 2990 IF RO<>2 THEN PRINT:PRINT "I can't use that word here.":RETURN
  291. 3000 IF C$<>"PLU" THEN PRINT:PRINT "You can't pull that.":RETURN
  292. 3010 IF PLUG=1 THEN PRINT:PRINT "The plug is already unplugged.":RETURN
  293. 3020 PRINT "Ok, the plug is now unplugged.":PLUG=1:RETURN
  294. 3030 REM ** TYPE ROUTINE **
  295. 3040 IF RO<>1 THEN PRINT:PRINT "I can't use that word here.":RETURN
  296. 3050 IF C$<>"971" THEN PRINT:PRINT "You type in the wrong code and a loud siren  sounds. Guards rush in and take":PRINT "you away. You DON'T return.":GOTO 3100
  297. 3060 PRINT:PRINT "Congradulations! You got the right code. You rush outside to find that you are":PRINT "inside a large sewer system. But, above you see a man hole, so you climb out.":PRINT "You rush to tell the police your story."
  298. 3070 IF TR(7)=200 THEN PRINT "You show the police the file and you are rewarded with a hero's reward!":SCORE=SCORE+70:GOSUB 3100:GOTO 3140
  299. 3080 PRINT "You have no proof to show the police, so they lock you up. In exactly five":PRINT "days, the Soviets launch their supply of MX-13 missles on the U.S. All":PRINT "life as you know it, stops to exist. The human race is never heard of again."
  300. 3090 GOTO 3140
  301. 3100 REM ** SCORE ROUTINE **
  302. 3120 PRINT FNCURS$(24,40);"Score:";SCORE
  303. 3130 RETURN
  304. 3140 REM ** SCORING **
  305. 3150 PRINT:PRINT "Out of 200 points, you got ";SCORE;" points."
  306. 3160 PRINT:INPUT "Would you like to play again";F$:F$=LEFT$(F$,1)
  307. 3170 IF F$="y" OR F$="Y" THEN GOTO 3210
  308. 3180 IF F$="n" OR F$="N" THEN PRINT:PRINT "Ok.":PRINT:PRINT:END
  309. 3190 PRINT "Please answer the qusetion."
  310. 3200 GOTO 3160
  311. 3210 RO=17:SOP=0:SOP1=0:DOOR=0:KEE=0:SCORE=0:GUARD=0:BOX=0:BEAKER=0:DSF=0:DGF=0
  312. 3220 TR(1)=17:TR(2)=17:TR(3)=8:TR(4)=255:TR(5)=8:TR(6)=5:TR(7)=255:TR(8)=16
  313. 3230 PRINT CLS$:GOTO 200
  314. 3240 REM ** ROOM DESCRIPTIONS **
  315. 3260 PRINT FNCURS$(24,1);STRING$(78,32)
  316. 3270 PRINT FNCURS$(24,1);ROOM$(RO);
  317. 3280 PRINT FNCURS$(24,40);"Score:";SCORE
  318. 3300 ON RO GOSUB 3320,3380,3450,3500,3550,3600,3660,3700,3750,3790,3840,3890,3940,3990,4040,4100,4160
  319. 3310 RETURN
  320. 3320 REM ROOM ONE
  321. 3330 PRINT
  322. 3340 PRINT "You are inside a very large room which is the exit to the outside world. But"
  323. 3350 PRINT "before every person gets outside, they must pass through a giant, metal vault"
  324. 3360 PRINT "which has a large keyboard attached to it."
  325. 3370 RETURN
  326. 3380 REM ROOM TWO
  327. 3390 PRINT
  328. 3400 PRINT "This is a room where maintence equipment is stored. There are many  brooms,"
  329. 3410 PRINT "dustpans and mops around here. A dark passage way leads to the south, while"
  330. 3420 PRINT "a lighted way leads to the east. There is a plug on the east wall connect"
  331. 3430 PRINT "to an outlet."
  332. 3440 RETURN
  333. 3450 REM ROOM THREE
  334. 3460 PRINT
  335. 3470 PRINT "You are in a secret room behind the base laboratory. The hole in the south"
  336. 3480 PRINT "wall is smaller on this side, preventing you from going south."
  337. 3490 RETURN
  338. 3500 REM ROOM FOUR
  339. 3510 PRINT
  340. 3520 PRINT "This is a non descript hallway running north and south."
  341. 3530 RETURN
  342. 3550 REM ROOM FIVE
  343. 3560 PRINT
  344. 3570 PRINT "This is a repair closet where hammers, nails and screwdrivers are kept. The"
  345. 3580 PRINT "only exits is the way you came."
  346. 3590 RETURN
  347. 3600 REM ROOM SIX
  348. 3610 PRINT:IF BOX=1 THEN PRINT " (crouching in the box)"
  349. 3620 PRINT "You are in a storage room where miscellanous equipment is stored. There is a"
  350. 3630 PRINT "large, heavy box in the south corner. To the east is a balcony. Also on the"
  351. 3640 PRINT "north wall, there is a button with a small plaque beneath it."
  352. 3650 RETURN
  353. 3660 REM ROOM SEVEN
  354. 3670 PRINT
  355. 3680 PRINT "This is an old, crumbling balcony."
  356. 3690 RETURN
  357. 3700 REM ROOM EIGHT
  358. 3710 PRINT
  359. 3720 PRINT "You are in a scientific laboratory where great experiments are done. The usual"
  360. 3730 PRINT "array of supplies and equipment is here. The north wall is a bit less solid":PRINT "then the others."
  361. 3740 RETURN
  362. 3750 REM ROOM NINE
  363. 3760 PRINT
  364. 3770 PRINT "This is a very non-descript hallway running east to west."
  365. 3780 RETURN
  366. 3790 REM ROOM TEN
  367. 3800 PRINT
  368. 3810 PRINT "You are in a guard room, where a guard is supposed to guard the cell to the"
  369. 3820 PRINT "south. Passageways run off in three directions."
  370. 3830 RETURN
  371. 3840 REM ROOM ELEVEN
  372. 3850 PRINT
  373. 3860 PRINT "This is an elevator connecting all three levels of the base. There is a panel"
  374. 3870 PRINT "here with three buttons labeled 1,2 and 3."
  375. 3880 RETURN
  376. 3890 REM ROOM TWELVE
  377. 3900 PRINT
  378. 3910 PRINT "This is an elevator connecting all three levels of the base. There is a panel"
  379. 3920 PRINT "here with three buttons labeled 1,2 and 3."
  380. 3930 RETURN
  381. 3940 REM ROOM THIRTEEN
  382. 3950 PRINT
  383. 3960 PRINT "This is an elevator connecting all three levels of the base. There is a panel"
  384. 3970 PRINT "here with three buttons labeled 1,2 and 3."
  385. 3980 RETURN
  386. 3990 REM ROOM FOURTEEN
  387. 4000 PRINT
  388. 4010 PRINT "This is a record room where top secret information is kept. There is a file"
  389. 4020 PRINT "cabinet on the west wall and a camera on the west wall near the ceiling."
  390. 4030 RETURN
  391. 4040 REM ROOM FIFTEEN
  392. 4050 PRINT
  393. 4060 PRINT "This is a north cell where top security prisoners are kept. There is a"
  394. 4070 PRINT "large, wooden door on the north wall. To the south a light can be seen."
  395. 4080 IF INSERT=1 THEN PRINT "Under the door, you can see a newspaper."
  396. 4090 RETURN
  397. 4100 REM ROOM SIXTEEN
  398. 4110 PRINT
  399. 4120 PRINT "This is a large room in the shape of a missle silo, where a very important"
  400. 4130 PRINT "missle is kept. The rounded ceiling is partly open, awaiting the preparation"
  401. 4140 PRINT "of the MX-13, being kept in the center of the room."
  402. 4150 RETURN
  403. 4160 REM ROOM SEVENTEEN
  404. 4170 PRINT
  405. 4180 PRINT "You are in a cell where prisoners are kept. The second part of this two room"
  406. 4190 PRINT "cell is to the north while a crack in the ceiling is letting in a large amount"
  407. 4200 PRINT "of light."
  408. 4210 RETURN
  409. 4230 REM ** INITIALIZE **
  410. 4240 PRINT CLS$
  411. 4250 SCORE=0:RO=17:GUARD=1:FLAG=0:KEE=0:DOOR=0
  412. 4260 A(15,7)=99:REM PROBLEM DOOR 1
  413. 4270 A(8,7)=100:REM PROBLEM DOOR 2
  414. 4280 FOR X=1 TO 17
  415. 4290 FOR Y=1 TO 6
  416. 4300 READ A(X,Y)
  417. 4310 NEXT Y
  418. 4320 NEXT X
  419. 4330 FOR X=1 TO 11
  420. 4340 READ O1$(X),O2$(X),TR(X),IN$(X)
  421. 4350 NEXT X
  422. 4360 FOR I=1 TO 17
  423. 4370 READ ROOM$(I)
  424. 4380 NEXT I
  425. 4390 RETURN
  426. 4400 REM ** ROOM DATA **
  427. 4410 DATA 0,4,0,0,0,0:REM ROOM 1
  428. 4420 DATA 0,8,3,0,0,0:REM ROOM 2
  429. 4430 DATA 0,0,0,2,0,0:REM ROOM 3
  430. 4440 DATA 1,10,5,0,0,0:REM ROOM 4
  431. 4450 DATA 0,0,0,4,0,0:REM ROOM 5
  432. 4460 DATA 0,12,7,0,0,0:REM ROOM 6
  433. 4470 DATA 0,0,0,6,0,0:REM ROOM 7
  434. 4480 DATA 0,0,9,0,0,0:REM ROOM 8
  435. 4490 DATA 0,14,10,8,0,0:REM ROOM 9
  436. 4500 DATA 4,0,11,9,0,0:REM ROOM 10
  437. 4510 DATA 0,0,0,10,0,0:REM ROOM 11
  438. 4520 DATA 6,0,0,0,0,0:REM ROOM 12
  439. 4530 DATA 0,16,0,0,0,0:REM ROOM 13
  440. 4540 DATA 9,0,0,0,0,0:REM ROOM 14
  441. 4550 DATA 0,17,0,0,0,0:REM ROOM 15
  442. 4560 DATA 13,0,0,0,0,0:REM ROOM 16
  443. 4570 DATA 15,0,0,0,0,0:REM ROOM 17
  444. 4580 DATA "BRI","There is a brick on the floor near you.",17,"a brick"
  445. 4590 DATA "NEW","On the floor, there is an old newspaper.",17,"a newspaper"
  446. 4600 DATA "NOT","There is a note laying nearby.",8,"a note"
  447. 4610 DATA "KEY","There is a shining key here.",255,"a key"
  448. 4620 DATA "BEA","There is a scientific beaker full of liquid near you.",8,"a beaker full of liquid"
  449. 4630 DATA "SLI","There is a slip of paper lying here.",5,"a slip"
  450. 4640 DATA "FIL","A file containg important information is here.",255,"a file"
  451. 4650 DATA "ASP","There is a aspirin here.",255,"an aspirin"
  452. 4660 DATA "GUA","There is an alert guard here.",10,""
  453. 4670 DATA "GUA","There is an unconsicous guard here.",255,""
  454. 4680 DATA "WOR","There is a missle worker here.",16,""
  455. 4690 DATA Vault Room,Maintence Room,Secret Room,Hallway,Repair Closet
  456. 4700 DATA Storage Room,Balcony,Laboratory,Hallway,Guard Room,Elevator
  457. 4710 DATA Elevator,Elevator,Record Room,North Cell,Missle Site
  458. 4720 DATA South Cell
  459. ,Laboratory,Hallway,Guard Room,Elevator
  460. 4710 DATA Elevator,Elevator,Record Room,North Cell,Missle Site
  461. 4720 DATA South Cel