10 REM COPYRIGHT 2000, CHRIS CHARLA. ALL RIGHTS RESERVED. THIS PROGRAM MAY BE FREELY DISTRIBUTED, PROV*DING THAT IT IS UNALTERED IN ANY WAY. 20 REM SPECIAL THANKS TO MIKE MIKA, FOR THE BASIC LESSONS AND THE PC CONVERSION. DEDICATED TO GUMPEI YOKOI. OH WAIT, THAT'S FOR GAME BOY. 30 REM Hi Carrie, Hi Oscar! 100 DIM RM(51,4) : DIM OB(23,2) : DIM L$(23,2) : DIM VB$(36) : DIM VT(36) 110 ER = 0 : R = 4 : REM ER IS OLD ROOM. R IS CURRENT ROOM #. 115 mt = 1 116 tb = 1 117 dd = 4 118 CC = 0 119 vu = 1 120 ci = 1 121 fu = 5 122 td = 1 123 pd = 1 124 cb = 1 125 jo = 1 126 vi = 1 127 si = 1 128 mf = 0 130 FOR X = 1 TO 51 : FOR Y = 1 TO 4 135 READ RM(X,Y) 140 NEXT Y : NEXT X 150 FOR X = 1 TO 23 : FOR Y = 1 TO 2 160 READ OB(X,Y) 170 NEXT Y : NEXT X 180 FOR Z = 1 TO 23 : FOR A = 1 TO 2 185 READ L$(Z,A) 200 NEXT A : NEXT Z 210 FOR X = 1 TO 36 : 220 READ VB$(X) 230 NEXT X 240 FOR X = 1 TO 36 : 250 READ VT(X) 260 NEXT X 1000 cc = cc + 1 : IF R = ER THEN GOTO 1100 : 1005 if er = 51 and r = 7 then goto 8010 1010 GOSUB 4000 : 1030 REM: 1040 FOR X = 1 TO 23 1050 IF OB(X,2) = R THEN GOSUB 5200 1060 NEXT X 1100 REM 1101 IF CC = W1 THEN GOTO 5000 1102 IF CC = 3 THEN GOTO 5010 1103 IF CC = W2 THEN GOTO 5020 1104 if cc = w3 then goto 5030 1105 if cc = w4 then goto 5040 1106 if cc = w5 then goto 5050 1107 if fu < 5 then fu = fu - 1 1108 if fu = 0 then goto 3570 : rem blow shit up. 1109 if ob(1,2) = 0 and ry = 0 and r > 6 then goto 7000 1110 if mf = 1 then goto 7020 1111 if mf = 5 then goto 7020 1112 if mf = 9 then goto 7020 1113 if mf > 0 and r > 8 then goto 7030 1114 if mf > 0 and ob(1,2) = 100 then goto 7060 1115 if mf > 0 then mf = mf + 1 1200 INPUT M$ 1210 ? "" 1220 L = LEN(M$) : IF L = 0 THEN GOTO 1000 1225 M1$ = "" : M2$ = "" : M2 = 0 : X = 0 1230 FOR I = 1 TO L 1240 A$ = MID$(M$,I,1):A=ASC(A$):IF A >= 97 AND A <= 122 THEN A$=CHR$(A-32) 1250 IF A$<> " " THEN GOTO 1260 1255 IF M2$<> "" THEN GOTO 1300 1257 X=1:GOTO 1290 1260 IF X=0 THEN M1$=M1$+A$ : GOTO 1290 1270 M2$=M2$+A$ 1290 NEXT I 1300 IF M1$ = "" THEN PRINT "Input, please!" : GOTO 1000 1306 MG$ = M1$ 1307 ML$ = LEFT$(M1$,3) 1308 M1$ = ML$ 1312 MM$ = LEFT$(M2$,3) 1314 M2$ = MM$ 1317 IF LEN(M1$) = 1 THEN GOTO 5300 1320 FOR X = 1 TO 36 1330 IF VB$(X) = M1$ THEN T = VT(X) : GOTO 1350 1340 NEXT X 1345 ? "I'm sorry, I don't know how to "; MG$ : GOTO 1000 1350 ON T GOTO 2100, 2200, 2300, 2500, 2520, 2600, 2700, 2800, 2900, 3000, 3100, 3200, 3300, 3400, 3500, 3600, 3700, 3800 2100 REM 2110 IF M1$ = "NOR" OR M2$ = "NOR" THEN M1$ = "N" : goto 1317 2120 IF M1$ = "SOU" OR M2$ = "SOU" THEN M1$ = "S" : goto 1317 2130 IF M1$ = "EAS" OR M2$ = "EAS" THEN M1$ = "E" : goto 1317 2140 IF M1$ = "WES" OR M2$ = "WES" THEN M1$ = "W" : goto 1317 2150 ? "I'm sorry, I didn't understand. You must 'go' a direction ('GO NORTH')." 2160 ? "Or, you can simply type the direction ('NORTH') or letter ('N')." 2170 GOTO 1000 2200 ta = 0 2202 if m2$ = "" then print "You mumble to yourself. Feel better?" : goto 1000 2206 if R > 8 THEN ? "There's no one to talk to in here." : goto 1000 2207 if m2$ = "WAI" or m2$ = "CAT" then goto 2280 2209 if m2$ = "GUE" then goto 2270 2210 if m2$ = "COP" or m2$ = "POL" then ? "You like to live dangerously, but you don't have a death wish!" : GOTO 1000 2211 if m2$ = "MAR" or m2$ = "DAV" or m2$ = "SPY" then ta = 5 2220 if ta = 5 and r = 7 and mt = 1 then goto 2290 2222 if ta = 5 and r = 7 and mt = 0 then ? "Marchant looks away. 'Remember our deal, Cartright.'" : goto 1000 2224 if ta = 5 and r <> 7 then ? "Marchant isn't here." : goto 1000 2230 ? "I don't understand who you want to talk to." : goto 1000 2270 x = 0 : x = rnd (3) 2272 if x = 0 then ? "'Isn't it exciting!' says a woman from the English embassy." 2273 if x = 1 then ? "'Why are you speaking to me?' asks a suspicious Vladistani." 2274 if x = 2 then ? "'Someone will pay for this outrage.' mutters a Morolian diplomat." 2276 goto 1000 2280 if OB(1,2) <> 0 then goto 2286 2281 if r < 4 or R > 5 then goto 2287 2282 ? "Unless you want one of them to recognize you as an imposter and go to the" 2283 ? "police, you should probably steer clear of your fellow waiters. Anyway they" 2284 ? "might find that tux you have on under your waiter's uniform a little weird." 2285 goto 1000 2286 ? "It's not polite for guests to talk to the help in Vladistan." : goto 1000 2287 print "There are no waiters around here." : goto 1000 2290 ? "Marchant looks at you. 'Cartright. I thought zat was you in zee waiter outfeet." 2291 ? "I suspect we have been sent here on similar errands by our superiors. " 2292 ? "And now I suspect zat zis bomb threat may be your doing, no? It eez troubling.'" 2293 ? "He pauses for a moment then turns to you. 'For one of us to accompleesh his " 2294 ? "mission, the other must fail. I am thus tempted to turn you in. No doubt you 2295 ? "may be theenking the same thing. So I propose a truce of sorts. I will keep my" 2296 ? "mouth shut about you, and you do zee same for me. Of course, like all bargins" 2297 ? "in zees business, I cannot make any guarentees about the duration of our deal." 2298 mt = 0 : goto 1000 2300 if m2$ = "" then goto 2390 2310 for x = 1 to 23 : rem first, check fer objects 2320 if m2$ = left$(l$(x,2),3) then goto 2340 2330 next x 2335 ? "You don't see anything special." : goto 1000 2340 if x = 10 then goto 2380 2342 if x = 15 or x = 17 then goto 2378 2345 if x = 16 then goto 2382 2350 if x = 21 then goto 2384 2351 if x = 20 then goto 2385 2355 if x = 2 then goto 2386 2356 if x = 8 then goto 2365 2360 ? "It's just an ordinary "; : ? l$(x,2);:?".":goto 1000 2365 if vi = 0 and si = 1 then print "There is some vinegar in the jar and "; : goto 2376 2366 if vi = 1 and si = 0 then print "There is some vinegar in the jar and "; : goto 2376 2367 if vi = 1 and si = 1 then print "The jar is empty, and "; : goto 2376 2368 if vi = 0 and si = 0 and jo = 0 then print "The jar is open, and filled with a bubbling solution." : goto 1000 2369 if vi = 0 and si = 0 and jo = 1 then print "The jar is closed, but there is bubbling inside." : goto 1000 2376 if jo = 1 then print "the jar is closed." : goto 1000 2377 if jo = 0 then print "the jar is open." : goto 1000 2378 ? "It looks like ordinary cleanser of Eastern European design -- " 2379 ? "meaning it looks rough and kind of gray." : goto 1000 2380 ? "The note is in French. It says: Marchant, the Slava is the plastique." 2381 ? "Good luck, Yves." : goto 1000 2382 ? "At first it looked like cleanser, but on closer examination, it" 2383 ? "actually bears a closer resemblance to modeling clay." : goto 1000 2384 ? "These are the plans to the XJ-39 nuclear device!" : ? "They are printed on special, waxy, paper." : goto 1000 2385 ? "It's a top secret Morolian codebook." : goto 1000 2386 ? "It's loaded." : goto 1000 2390 er = 0 : goto 1000 2500 M1$ = "I" : GOTO 1317 2520 rem 2530 if td = 1 then print "As always, you are in top physical condition." 2540 if td = 0 then print "You're a little shaken from the blast, but otherwise you feel fine." 2550 goto 1000 2600 if ob(5,2) = 0 then goto 2620 2615 ? "You need a knife before you can cut anything!" : goto 1000 2620 if r = 16 then goto 2650 2630 if r = 51 then goto 2670 2640 if r = 19 then goto 2648 2642 ? "You can't cut anything here." : goto 1000 2648 ? "Cutting the wires is pointless -- you need to really disable the transmitter." : goto 1000 2650 ? "You cut the ropes holding the dumbwaiter up and it plunges down!" : ?"" 2660 r = 50 : goto 1000 2670 if ob(19,2) = 0 then goto 3374 2680 if ob(19,2) <> 0 then goto 3373 2700 IF M2$ = "COP" OR M2$ = "POLICE" THEN GOTO 2750 2720 IF M2$ = "ME" OR M2$ = "SEL" THEN GOTO 2760 2730 if m1$ = "sho" then goto 2740 2735 ? "You are a spy, not an assassin. Killing is not the way you do business." : goto 1000 2740 if ob(2,2) = 0 then goto 2742 2741 ? "You need a gun or rifle to shoot!" : goto 1000 2742 ? "The rifle misfires! The bullets must be 100 years old." : goto 1000 2750 if ci = 0 then goto 2752 2751 ? "You can't see anyone to shoot!" : goto 1000 2752 print "Before you can react, the Vladistani officer delivers a well" 2753 ? "placed bullet to your kneecap, and you go down hard." : goto 5052 2760 if ci = 0 then goto 2765 2761 ? :? "As you crack the cyanide pill in your tooth, you muse: the mission" 2762 ? "is a failure, the XJ-39 is as good as in the Red's hands, but at" 2763 ? "least you won't be around to see the Soviets take over..." : goto 8000 2765 ? :? "As you crack the cyanide pill in your tooth, you muse: the mission" 2766 ? "is a failure, but at least the Vladistanis won't get the satisfaction" 2767 ? "of tossing you to one of their meaty torturers. Your secrets die with you." : goto 8000 2800 if ob(22,2) = 0 then goto 2815 2810 print "You don't have a shovel!" : goto 1000 2815 if r = 46 then goto 2840 2817 IF R = 45 THEN GOTO 2876 2820 if r < 50 and r > 37 then print "You dig a little into the dirt floor, but it fails to accomplish much here." 2825 if r < 38 then print "You need dirt to dig in." 2830 Goto 1000 2840 ? "You dig out some dirt from the soft cellar floor just under the" : ?"massive vault door." :?: dd = dd -1 2850 if dd = 3 then print "There is now a little hole under the massive door." : goto 1000 2855 if dd = 2 then print "The hole under the door is getting much bigger now." : goto 1000 2857 if dd = 1 then print "The hole under the door is almost big enough to crawl through!" : goto 1000 2860 if dd = 0 then print "The hole under the door is big enough to crawl through! " 2865 if dd = 0 then goto 2875 2867 if dd = -1 then print "Any more digging and you could collapse the hole!" : GOTO 1000 2869 if dd = -2 then print "The hole under the door collapses!" : dd = 5 : rm(46,1) = 0 : goto 1000 2870 GOTO 1000 2875 RM(46,1) = 45 : GOTO 1000 2876 ? "You dug under the door, now don't try to get cute." : goto 1000 2900 IF M2$ = "ALL" THEN GOTO 2955 2910 FOR X = 1 TO 23 2915 IF M2$ = LEFT$(L$(X,2),3) THEN 2930 2920 NEXT X 2925 ? "You can drop what you can't take!" : goto 1000 2930 if OB(X,2) = 0 THEN 2945 2940 ? "You aren't holding that!" : goto 1000 2945 if X = 1 THEN GOTO 2960 2946 if X = 16 and r = 33 then goto 2970 2947 if X = 13 and r = 33 and ob(16,2) = 33 then 2972 2948 if jo = 0 and ob(8,2) = 0 and x = 7 then goto 2980 2949 if jo = 0 and ob(8,2) = 0 and x = 6 then goto 2985 2950 OB(X,2) = R : ? "Dropped." : goto 1000 2960 OB(1,2) = 100 : ? "You stash the jacket behind some bushes, revealing your tux." 2965 ? "Now you're ready to mingle with the guests!" : goto 1000 2970 ob(16,2) = 33 : ? "You pull the Slava out of the box and mold it into one of the" 2971 ? "support beams of the radio tower." : goto 1000 2972 ob(13,2) = 33 : ? "You insert the blasting cap into the plastique, with the fuse" 2973 ? "sticking out, ready to light." : goto 1000 2980 ob(7,2) = 100 : vi = 0 : ? "You drop the vinegar into the open jar." : goto 1000 2985 ob(6,2) = 100 : si = 0 : ? "You drop the baking soda into the open jar." : goto 1000 3000 if m2$ = "ALL" then goto 3055 3010 FOR X = 1 TO 23 3015 IF M2$ = LEFT$(L$(X,2),3) THEN 3030 3020 NEXT X 3025 ? "Sorry, you can't take that." : GOTO 1000 3030 IF R = OB(X,2) THEN 3045 3035 IF OB(X,2) = 0 THEN GOTO 3050 3040 ? "You can't see the "; : ? l$(x,2); : ? " here." : goto 1000 3045 OB(X,2) = 0 : ? "You take the ";:? l$(x,2);:?".": goto 3060 3050 PRINT "You're already holding it!" : goto 1000 3055 ? "Sorry, you need to 'TAKE' each item individually." : goto 1000 3060 OB(X,1) = 0 3065 IF X = 9 THEN ? "As you pick up the coat you notice a handwritten message on a slip"; : goto 3085 3070 IF X = 12 THEN goto 3072 3071 goto 1000 3072 ? "You grab the attache case and open it, to reveal, along with a copy of" 3075 ? "Le Monde, which you discard, a small blasting cap with a length of fuse" 3080 ? "coming from one end." : OB(13,2) = 0 : GOTO 1000 3085 ?" of paper in an inner pocket." : OB(10,2) = 0 : goto 1000 3100 if m2$ = "JAR" then goto 3150 3120 if r = 11 then goto 3140 3140 ? "You gently close the French door you came in." : goto 1000 3150 if ob(8,2) = 0 then goto 3153 3151 if ob(8,2) = r then goto 3153 3152 ? "You can't see any jar here." : goto 1000 3153 if jo = 1 then goto 3170 3160 jo = 1 : ? "You close the jar tightly." : goto 1000 3170 ? "The jar is already closed!" : goto 1000 3200 IF R = 13 THEN GOTO 3230 3220 IF R = 14 OR R = 46 THEN GOTO 3229 3221 IF R = 51 THEN GOTO 3228 3222 ? "There's nothing to unlock here." : goto 1000 3228 ? "You don't have a key for the iron padlock." : goto 1000 3229 ? "You haven't got the combination." : goto 1000 3230 if ob(14,2) = 0 then goto 3240 3235 ? "You haven't got the key!" : goto 1000 3240 ? "You unlock the cloak room with the key." 3250 rm(13,2) = 15 : goto 1000 3300 if m2$ = "JAR" then goto 3340 3302 if r = 46 then goto 3320 3303 if m2$ = "PAD" or m2$ = "LOC" or m2$ = "DOO" then goto 3370 3304 if m2$ = "WIR" then goto 3322 3305 if m2$ = "TOW" or M2$ = "RAD" then goto 3324 3310 ? "You can't break anything here." : goto 1000 3320 ? "The blast door withstands your best efforts." : goto 1000 3322 ? "You snap the wires, but you can't be sure they are the ONLY wires..." : goto 1000 3324 if r = 33 then goto 3325 : ? "You can't see that here." : goto 1000 3325 ? "You'll need more than brute strength to take down the radio tower." : goto 1000 3340 if ob(8,2) = 0 then goto 3350 3341 if ob(8,2) = r then goto 3350 3342 ? "You can't see the jar here." : goto 1000 3350 if vi = 0 and si = 0 and jo = 1 then goto 3360 3351 if vi = 0 and si = 0 and jo = 0 then goto 3357 3352 if vi = 0 and si = 1 then goto 3355 3353 if vi = 1 and si = 0 then goto 3355 3354 ? "You smash the jar. It doesn't make as loud a noise as you'd expect." : ob(8,2) = 100 : goto 1000 3355 ? "You smash the jar, spilling its contents." : ob(8,2) = 100 : goto 1000 3357 ? "You smash the open jar, spilling its contents. The soda and vinegar foams" 3358 ? "for a while on the floor." : ob(8,2) = 100 : goto 1000 3360 ? "You smash the closed jar on the floor. The stored up gasses make a" 3361 ? "surprisingly loud POP! A moment later, your wrist radio buzzes." 3362 ? "'I don't know what you did in there,' says K, 'but they picked it" 3363 ? "up on their listening devices, and they now seem convinced that there's" 3364 ? "some kind of explosive activity going on in there. I think the" 3365 ? "authorities will stay out for the time being.'" : ob(8,2) = 100 : vu = 0 : goto 1000 3370 if r = 51 then goto 3372 3371 ? "Despite your best efforts, you fail." : goto 1000 3372 if ob(19,2) = 0 then goto 3374 3373 ? "You don't have the right tool to do that!" : goto 1000 3374 ? "You snap off the old padlock." : rm(51,3) = 7 : goto 1000 3400 if m2$ = "JAR" then goto 3450 3420 if m2$ = "DOO" then goto 3430 3425 if m2$ = "SLA" or m2$ = "SUD" or m2$ = "STA" then goto 3440 3430 ? "The door doesn't budge." : goto 1000 3440 ? "You open the box, look inside, then close it again." : goto 1000 3450 if ob(8,2) = 0 then goto 3455 3451 if ob(8,2) = r then goto 3455 3452 ? "What jar?" : goto 1000 3455 if jo = 0 then goto 3470 3460 jo = 0 : ? "You open the jar." : goto 1000 3470 ? "The jar is already open!" : goto 1000 3500 if m2$ = "FUS" or m2$= "BLA" or m2$ = "CAP" then goto 3545 3502 IF R = 41 THEN GOTO 3514 3503 if ob(11,2) <> 0 then goto 3512 3504 for x = 1 to 23 : if m2$ = left$(l$(x,2),3) then goto 3507 3505 next x 3506 ? "You can't burn that." : goto 1000 3507 if x = 21 then goto 3510 3508 if x = 16 then goto 3511 3509 ? " There's no point in burning the "; : ?l$(x,2);:?"." : goto 1000 3510 print "The plans are printed on some kind of flame retardant paper." :?"You'll need more heat to destroy them." : goto 1000 3511 ? "The matches are ineffective on the plastique. You need to find": ? "something with more power." : goto 1000 3512 ? "You don't have anything to burn anything with!" : goto 1000 3514 for x = 1 to 23 3515 if m2$ = left$(l$(x,2),3) then goto 3518 3516 next x 3517 ? "You can't burn that here." : goto 1000 3518 if x = 16 then goto 3523 3519 if x = 21 then goto 3528 3520 if x = 20 then goto 3530 3521 ? "You toss the "; : ?l$(x,2); :?" in the furnace, where it is consumed." 3522 ob(x,2) = 100 : goto 1000 3523 ? : ? "The next thing to go through your mind after you toss the Slava into" 3524 ? "the furnace is the furnace door itself. The Slava was actually plastique," 3525 ? "and you are dead." 3526 if pd = 0 then print "At least the plans are destroyed, so your mission wasn't a total failure." 3527 GOTO 8000 3528 ? "You toss the plans in the furnace with gusto. Let's see the Ruskies try to" : ? "rebuild the plans from the ashes! The XJ-39 remains American technology!" 3529 ? "Your primary mission is complete. Now to escape with your life..." : ob(21,2) = 100 : pd = 0 : goto 1000 3530 ? "The code book burns quickly. You'd never have gotten it past Marchant, anyway." : ob(20,2) = 100 : cb = 0 : goto 1000 3545 if ob(13,2) = r or ob(13,2) = 0 then goto 3551 3546 ? "You don't have the blasting cap!" : goto 1000 3551 if ob(11,2) <> 0 then ? "You haven't got any matches!" : goto 1000 3552 ? "You light the fuse on the end of the blasting cap. " : fu = 4 : goto 1000 3570 ? :? "You hear the pop of the blasting cap going off!" 3571 if ob(16,2) = ob(13,2) then goto 3575 3572 ob(13,2) = 100 : goto 1000 3575 ? "The blasting cap sets off the plastique!" 3576 if ob(16,2) <> 0 then 3578 3577 ? : ? "Unfortunately, you were holding the plastique. You gaze for a moment at" : ? "the fountain of blood shooting from your wrists before everything goes black." : goto 8000 3578 if ob(16,2) = 33 then goto 3583 3579 if ob(16,2) = r then goto 3596 3580 ob(13,2) = 100 : ob(16,2) = 100 : vu = 0 : ? "That ought to convince them there was a reason for the bomb threat!" 3581 ? : ? "*** Your radio crackles. 'We heard the explosion, but the tower is still there." 3582 ? "We better hope the plans weren't ready for transfer..." : goto 1000 3583 if r = 33 then goto 3590 3584 ? "A moment after the main blast, you hear the satisfying sound of" 3585 ? "transmission tower falling." : vu = 0 : ob(13,2) = 100 : ob(16,2) = 100 : td = 0 3586 ? : ? "*** Your radio crackles. 'Nice work, Cartright.'" : goto 1000 3590 ?:? "As you fly through the air towards the ground, after being blown" 3591 ? "off the roof by the blast, it occurs to you that there may have been" 3592 ? "safer places to stand after you lit the fuse. Really, though, falling" 3593 ? "two stories is the least of your problems. Getting away from the cops" 3594 ? "with your legs blown off will be a much bigger challenge..." : goto 8000 3596 ?:? "The blast sounds especially loud because you're in the same room as it!" : ? "Blinded and disorientated by the flash, you don't even" 3597 ?"notice the fountain of blood shooting from your neck.":?"You just get very, very sleepy..." : goto 8000 3600 ? "Sorry, you can't use the word USE. An accepted verb list follows:" 3611 ? "Go, North, South, East, West, Talk, Read, Look, Search, Examine," 3612 ? "Inventory, Health, Diagnose, Cut, Shoot, Kill, Dig, Put, Drop, " 3613 ? "Remove, Get, Take, Close, Unlock, Break, Pry, Smash, Bend, Open," 3614 ? "Light, Burn, and Use (well, sorta)." : goto 1000 3700 home 3720 for x = 1 to 2000 : next x 3730 ? "Okay, you asked for it..." 3740 input po$ 3750 home 3760 ? "You are in a maze of twisty little passageways, all alike." 3770 ? "Exits lead in all directions." 3780 input po$ 3790 ? "Just kidding..." : input po$ 3795 er = 0 : home : goto 1000 3800 ? "What would your betrothed, Carrie Shepherd, think if she knew you," 3810 ? "Drake Cartright, master spy, resorted to profanity as soon as" 3820 ? "things got tough? Pull yourself together, man!" 3830 goto 1000 3999 END 4000 if r> 25 then goto 4020 4010 ON R GOTO 4040, 4045, 4050, 4055, 4060, 4065, 4070, 4075, 4080, 4085, 4090, 4095, 4100, 4105, 4110, 4115, 4120, 4125, 4130, 4135, 4140, 4145, 4150, 4155, 4160 4020 g = r : g = g - 25 4026 on g goto 4165, 4170, 4175, 4180, 4185, 4190, 4195, 4200, 4205, 4210, 4215, 4220, 4225, 4230, 4235, 4240, 4245, 4250, 4255, 4260, 4265, 4270, 4275, 4280, 4285, 4290 4040 ? "You are on the front lawn of the house, just east of the driveway. " : goto 4340 4045 ? "This is the front of the Morolian Ambassador's mansion. To your north is" 4046 ? "the front door." : GOTO 4340 4050 ? "You are standing on the front lawn of the estate, just west of the driveway." 4051 ? "Several guests are here, waiting for the valets to bring their cars.": GOTO 4340 4055 ? "The back service lot. Nervous caterers mill around, exchanging gossip about" 4056 ? "the bomb threat. Police are questioning some of them, but your skills and" 4057 ? "your waiter jacket let you mingle with the help without being singled out." : GOTO 4340 4060 ? "You are in the backyard. You can see into the Game Room from here, but you'd" 4061 ? "need a ladder to get in from this spot. South of here, you can see." 4062 ? "guests chatting in their finery -- a far cry from your waiter's jacket." : GOTO 4340 4065 ? "The backyard. To your west is the back service lot. Tittering guests have" 4066 ? "congregated here. The bomb threat and heavy police response has made this THE" 4067 ? "event of Vladistan's bleak social season." : GOTO 4340 4070 ? "The heaviest concentration of guests and police are here, east of the house." : ? "Most of the guests are diplomats, but one your recognize: Davide Marchant, with" 4071 ? "the French Intelligence service. He must be here on an op of his own." : ? "Possibly he's after the XJ-39 plans too. The front lawn is south, but to the " 4072 ? "east, there appear to be a set of doors that lead to the cellar. Not wanting" : ? "to be recognized by Marchant, it's tough to look too closely." : GOTO 4340 4075 ? "Here, west of the house, only a few guests are gathered. You spy an open" 4076 ? "French door leading to the ball room. This may be your big chance.": GOTO 4340 4080 ? "This is the Parlor and Smoking Room. Hunting trophies and traditional" 4081 ? "Morolian hunting horns adorn the walls, and the air is still heavy with" 4082 ? "cigar and pipe smoke.": GOTO 4340 4085 ? "The grand foyer of the mansion is well named -- twenty foot ceilings and a " 4086 ? "grand chandelier make this one of the more brilliant rooms in all of" 4087 ? "Vladistan. A majestic double staircase to the north leads up, and to the " 4088 ? "east and west are the living and ball rooms respectively." : GOTO 4340 4090 ? "The grand ballroom. The game room is north, a service hall east, and " 4091 ? "the main foyer is south." : IF W0 = 1 THEN GOTO 4092 : GOTO 4340 4092 W0 = 0 : W1 = CC + 5 : GOTO 4340 4095 ? "The game room. Morolian games tend to run to blood sports, but a pool." 4096 ? "table has been installed in a nod to local sensibilities. ": GOTO 4340 4100 ? "This is the service hall. The kitchen is north, and the cloakroom is south" : GOTO 4340 4105 ? "The kitchen is rarely used. An old dumbwaiter is north and stairs to the" 4106 ? "cellar are east." : GOTO 4340 4110 ? "This is the cloak room. The only exit is north. ": GOTO 4340 4115 ? "With great effort you squeeze yourself into the dumbwaiter. The controls are " 4116 ? "outside, but here inside you can see the ropes that actually move the platform.": GOTO 4340 4120 ? "North Hall. North, stairs lead down. The hallways continues south, and doors" 4121 ? "lead east and west." : GOTO 4340 4125 ? "The ambassador's wife's bedroom. It is surprisingly austere." : GOTO 4340 4130 ? "The ambassador's office. Wires lead from a typewriter-like machine north out" 4131 ? "a set of French doors here to a roof deck.": GOTO 4340 4135 ? "After the opulence of the downstairs, this hallway is almost austere." 4136 ? "There are exits in all directions." : goto 4340 4140 ? "This east/west hallway is distinguished by a framed print of Morolian" 4141 ? "shepherds.": goto 4340 4145 ? "This west end of the hall features a framed print of Oscar D'Agistino, a" 4146 ? "scientist of Morolian-Italian descent who worked with Fermi.": goto 4340 4150 ? "The only bathroom upstairs. A small linen closet is south.": goto 4340 4155 ? "The south hall features a print of the pride of Morolian" 4156 ? "industrial accomplishment: a coal-fired power plant.": goto 4340 4160 ? "This guest room is coated in dust.": goto 4340 4165 ? "The Ambassador's bedroom. It's decorated in gaudy gold lame and" 4166 ? "red velvet.": goto 4340 4170 ? "The servants' quarters. This military style barracks features" 4171 ? "narrow cots. A closet is south.": goto 4340 4175 ? "This is a dusty closet.": goto 4340 4180 ? "Linen closet.": goto 4340 4185 ? "A faint odor of urine hangs in the air of this unused bedroom.": goto 4340 4190 ? "The sitting room is decorated with cross-stitched renditions of Morolia's" 4191 ? "national foods, including blood dumplings and steaming mare's milk.": goto 4340 4195 ? "This is a small roof deck. To the west is the radio tower.": goto 4340 4200 ? "You are at the base of a tall radio tower (you can probably see to" 4201 ? "Moscow from the top, you think grimly).": goto 4340 4205 ? "The other main entertainment room, the living room is decorate with" 4206 ? "gold velvet couches and rugs of Morolian yak fur, died royal purple.": goto 4340 4210 ? "This magnificent walk in closet is packed with gilded uniforms of the" 4211 ? "Morolian Foreign Service.": goto 4340 4215 ? "Tiny closet.": goto 4340 4220 ? "As bleak as its description, this closet is.": goto 4340 4225 ? "This old cellar room is filled with cobwebs.": goto 4340 4230 ? "The western end of the cellar hallway.": goto 4340 4235 ? "Apparently this is an interrogation room (or else the Ambassador's pretty kinky)." 4236 ? "Various implements of torture that you thought went out with the Plague litter" 4237 ? "the room, including a rack.": goto 4340 4240 ? "This room is dominated by a massive black furnace: a gaping hole in the side" 4241 ? "reveals white hot flames.": goto 4340 4245 ? "The hallway goes east and west here, and a passage heads north.": goto 4340 4250 ? "You're in a dirt-floored north/south hallway.": goto 4340 4255 ? "This was probably the kitchen storeroom at one time, judging from the" 4256 ? "old orange crates and what not littering the floor. A door in the west" 4257 ? "wall probably used to lead up, but it is firmly boarded shut.": goto 4340 4260 ? "A high-tech warren of East German VAX clones, the hum of air conditioning" 4261 ? "and massive reel to reel tape drives makes it hard to even think in here." 4262 ? "Clearly, this is where the bulk of the espionage happens in Vladistan." : goto 4340 4265 ? "The hall continues east and west from here. An imposing door lies north.": goto 4340 4270 ? "This dirt floored room is entirely empty.": goto 4340 4275 ? "This room is filled with garbage of every imaginable kind.": goto 4340 4280 ? "Given its contents, you could probably (if you were feeling charitable)" 4281 ? "call this room 'garden storage,' but you'd probably be just as accurate" 4282 ? "calling it 'more garbage' or 'dingy cellar room.'": goto 4340 4285 ? "You are crammed into the dumbwaiter, which is wedged into the bottom" 4286 ? "of its shaft. One lone cut rope swings piteously." : goto 4340 4290 ? "You are on some sloping stairs that lead to the lawn. Doors close" 4291 ? "above your head.": goto 4340 4340 ER = R : RETURN 5000 if vu = 0 then goto 1000 5001 ?:?"***Your one-way wrist radio crackles to life. It's K, with a message:" 5002 ?"Cartright, the bomb scare won't hold the police back very " 5003 ?"long. You need to make a boom in there, even if its a small " 5004 ?"one, to keep them outside.***" : w2 = cc + 10 : goto 1000 5010 ?:?"***Your one-way wrist radio crackles to life. It's K, with a message:" 5011 ?"Cartright, we've received word that a French agent may be on the 5012 ?"premises. We don't know why he's there. Avoid him or talk to him":?"at your discretion, but remember, "; 5013 ?"when it comes to nuclear secrets,":?"we have no allies.***" : goto 1000 5020 ?:?"***Your one-way wrist radio crackles to life. It's K, with a message:" 5021 ?"'We may have an opportunity to kill two birds with one stone here." 5022 ?"Now that you're in, see if you can destroy the radio tower on the " 5023 ?"roof. Good luck.'*** " : w3 = cc + 40 5024 ?:?"A moment later the radio crackles again. 'Cartright, K. Bit of a" 5025 ?"wrinkle for you. It appears the tower there is a reverse packet." 5026 ?"radio transmitter. The XJ-39 data may be waiting for the Russians to" 5027 ?"call in. You must, I repeat MUST, bring that radio tower down! K out.'":goto 1000 5030 if vu = 0 then goto 1000 5031 ?:?"***Your one-way wrist radio crackles to life. 'Cartright!,' barks" 5032 ?"K, 'the cops haven't detected a blast and they're about to come in!" 5033 ?"GET OUT! But if you can't, make sure you are not taken alive." 5034 w4 = cc + 3 goto 1000 5040 if vu = 0 then goto 1000 5041 ?:?"***Your wrist radio crackles to life, but you don't need to listen" 5042 ?"to know what K is about to say -- you can hear the cops coming" 5043 ?"into the building. It's only a matter of time before they get you." 5044 ci = 0 : w5 = cc + 3 : goto 1000 5050 ?:?"Uh-oh. You are face to face with two of Vladistan's finest, joined" 5051 ?"by a very angry looking Morolian Marine." 5052 ?"Images of a rat-infested prison cell and all the torture you can" 5053 ?"stand rush to your head." 5054 ?"Of course the agency will deny all knowledge of your actions. As " 5055 ?"far as they're concerned, what you're about to get is probably just" 5056 ?"punishment for not killing yourself as soon as you realized the cops" 5057 ?"were inside. As they drag you away, you wonder how long you can hold" 5058 ?"before they break you..." : goto 8000 5200 FOR X = 1 TO 23 5220 IF OB(X,2) = R AND OB(X,1) = 1 then ? l$(x,1) 5230 IF OB(X,2) = R AND OB(x,1) = 0 then ? "You see a "; l$(x,2) 5240 NEXT X 5250 RETURN 5300 IF M1$ = "I" THEN GOTO 5420 5320 IF M1$ = "L" THEN ER = 0 : goto 1000 5325 IF M1$ = "N" THEN GOTO 5345 5330 IF M1$ = "S" THEN GOTO 5355 5335 IF M1$ = "E" THEN GOTO 5365 5340 IF M1$ = "W" THEN GOTO 5375 5341 ? "I'M SORRY, BUT YOUR INPUT WASN'T UNDERSTOOD." : goto 1000 5345 IF RM(R,1) < 1 THEN B = 1 : GOTO 5385 5353 ER = R : R = RM(ER,1) : goto 1000 5355 IF RM(R,2) < 1 THEN B = 2 : GOTO 5385 5363 ER = R : R = RM(ER,2) : goto 1000 5365 IF RM(R,3) < 1 THEN B = 3 : GOTO 5385 5373 ER = R : R = RM(ER,3) : goto 1000 5375 IF RM(R,4) < 1 THEN B = 4 : GOTO 5385 5383 ER = R : R = RM(ER,4) : goto 1000 5385 FOR X = 1 TO 4 5387 IF RM(R,X) = -1 AND B = X THEN PRINT "There're too many people around to sneak in that way.": goto 1000 5388 IF RM(R,X) = -2 AND B = X THEN PRINT "You could go out that way, but you'd probably be (unfortunately but correctly)" : ?"shot as a spy.": goto 1000 5389 IF RM(R,X) = -3 AND B = X THEN PRINT "The door between the cellar and kitchen is locked tight." : GOTO 1000 5390 IF RM(R,X) = -4 AND B = X THEN PRINT "Impossible. You'd be too conspicuous, and the doors are locked on the inside." : goto 1000 5391 IF RM(R,X) = -5 AND B = X THEN PRINT "You scramble up the dusty shoot, but it is cemented over at the top. " : goto 1000 5392 IF RM(R,X) = -6 AND B = X THEN PRINT "The door to the cloak room is locked." : goto 1000 5393 IF RM(R,X) = -7 AND B = X THEN PRINT "That's the way you got in, but there's too many people there now to go out." : goto 1000 5394 IF RM(R,X) = -8 AND B = X THEN PRINT "The door to the north is sealed shut with a massive vaulted blast door." : ? "It looks strong enough to defeat even your safe cracking skills." : goto 1000 5395 IF RM(R,X) = -9 AND B = X THEN PRINT "The cellar doors are sealed with a strong iron padlock." : goto 1000 5396 NEXT X 5399 FOR X = 1 TO 4 : IF RM(R,X) = 0 THEN J = RND(5) 5400 IF J = 0 THEN PRINT "You can't go that way." : goto 1000 5402 IF J = 1 THEN PRINT "That's not an exit" : goto 1000 5404 IF J = 2 THEN PRINT "Despite your best efforts, you fail to find an exit that way." : goto 1000 5406 IF J = 3 THEN PRINT "Nope, pick another direction." : goto 1000 5408 IF J = 4 THEN PRINT "You can't go that way." : goto 1000 5410 NEXT X 5420 REM * 5425 ? "You are holding the following:" : b = 0 5430 FOR X = 1 TO 23 5440 IF OB(X,2) = 0 THEN PRINT "A "; L$(X,2) : B = B+1 5450 NEXT X 5460 IF B = 0 THEN PRINT "NOTHING." 5470 goto 1000 7000 ?:? "'Why is that waiter mingling with the guests?' you hear a suspicious" 7010 ? "voice say behind you." : mf = mf + 1 : ry = 1 : goto 1000 7020 ?:? "You notice a man following you." : mf = mf + 1 : goto 1000 7030 ?:? "Just as you step inside the hose, the man who's been following you" 7040 ? "signals to some police, who quickly surround you and haul you off for" 7050 ? "questioning..." : goto 8000 7060 ?:? "After stashing the waiter's jacket and revealing your tux, you slip" 7070 ? "away from your tail and melt into the crowd." : mf = 0 : goto 1000 8000 ? : ? "Game over." : end 8010 ? : ? 8020 ? : ? "You burst through the celler doors, directly into a crowd of guests." 8030 ? "Among them is Marchant. 'Ahh, Cartright,' he says, as he turns to his left," 8040 ? "indicating rapidly approaching men in uniform. 'I zink your mission ees at an" 8050 ? "end, one way or another.'" 8060 if ob(21,2) = 0 then eg1 = 1 8070 if ob(21,2) <> 0 and pd = 1 then eg1 = 2 8080 if pd = 0 then eg1 = 3 8090 if td = 1 then eg2 = 1 8100 if td = 0 then eg2 = 0 8110 if ob(20,2) = 0 then eg3 = 1 8120 if ob(20,2) <> 0 and cb = 1 then eg3 = 2 8130 if cb = 0 then eg3 = 3 8135 if eg1 = 1 then ? 8140 if eg1 = 1 then ? "He reaches inside your tux. 'I will take thees,' he says as he grabs the plans." 8145 if eg1 = 1 then ? "He looks briefly at the plans. 'Thees is not the codebook I was sent to steal,'" 8147 if eg1 = 1 then ? "he says. He looks up at you. 'But I think it may be even more valuable, no?'" 8149 if eg1 = 2 then ? 8150 if eg1 = 2 then ? "He looks at you. 'I see from your eyes that you did not find what you came for.'" 8155 if eg1 = 3 then ? 8160 if eg1 = 3 then ? "He pauses. 'You have the look of a man who has completed his mission. It is a" 8170 if eg1 = 3 then ? "look only one in our line of work could see.'" 8175 if eg3 = 1 then ? 8180 if eg3 = 1 then ? "He eyes you briefly, then reaches over and snatches the small Morolian codebook" 8190 if eg3 = 1 then ? "out of your pants pocket. 'The codebook! Wonderful! Cartright,' he beams, 'you" 8200 if eg3 = 1 then ? "have done my mission for me! Merci,' he says as he tucks it away in his coat." 8205 if eg3 = 2 then ? 8210 if eg3 = 2 then ? "Marchant looks at you and frowns. 'You didn't get it did you? Damnit," 8220 if eg3 = 2 then ? "Cartright. After zis show you put on tonight, how will I get inzide to get zat " 8230 if eg3 = 2 then ? "codebook now, eh? You, my friend, have made my life tres difficile ce soir.'" 8240 if eg3 = 2 then ? "He sighs. 'Ah well, you must do your job just as I must do mine, no?'" 8242 if eg3 = 3 then ? 8245 if eg3 = 3 then ? "He grabs you. 'The codebook, you deedn't destroy it, did you.' You nod." 8250 if eg3 = 3 then ? "Marchant winces. 'My my mission... blown.' He sighs and pulls himself together." 8260 if eg3 = 3 then ? "'Ahh well. Zat is the way, sometimes, the game ends up, eh?'" 8270 input x$ 8280 ?: ? "Before you can do anything, the police are upon you. As they reach for you," 8290 ? "Marchant steps forward. 'Do not touch him,' he says in perfect Vladistani." 8300 ? "'This man is with me. He has the full protection of France, and should be" 8310 ? "treated as a dipolat, with full immunity. Come with me, mon ami,' he says to" 8320 ? "you, and takes you by the arm. As you walk away from the mansion, he leans in." 8330 ? "'You owe me one,' he says." 8340 if td = 1 then ? "'Merci,' you say 'I just wish I had destroyed the tower...'" 8350 ?:?:?"FINIS." 9999 END 10000 DATA 7,0,0,2,-1,0,1,3,8,0,2,0,0,-1,6,5,0,8,4,0,0,7,0,4,6,1,-4,0,5,3,11,0,-2,34,-2,-2,17,-2,34,11 10010 DATA 12,10,13,-7,-2,11,-2,-2,14,-6,34,11,16,13,-3,0,13,0,0,0,0,14,0,0,10,20,19,18,0,0,17,0,32,0,0,17,17,24,21,22 10020 DATA 0,26,27,20,31,30,20,0,0,29,24,0,20,0,25,23,0,36,0,24,21,35,0,0,0,28,0,21,27,0,0,0,23,0,0,0,22,37,0,0 10030 DATA 0,22,0,0,0,19,0,33,0,0,32,0,9,10,-2,13,26,0,0,0,25,0,0,0,30,0,0,0,0,39,0,0,38,40,42,0,39,0,0,0 10040 DATA 42,-5,0,0,43,41,46,39,50,42,0,44,0,0,43,-3,0,46,0,0,-8,47,48,42,46,0,0,0,49,0,51,46,0,48,0,0,0,43,0,0,0,0,-9,48 10050 DATA 0,0,1,12,1,12,1,12,1,12,1,14,1,14,1,14,1,9,0,100,1,9,1,15,0,100,1,28,1,29,1,29,1,29,1,38,1,38,1,45,1,45,1,49,1,49 10060 DATA "WAITER'S JACKET","JACKET","On the wall is an antique hunting rifle.","RIFLE","On the pool table sits an ivory ball.","BALL" 10070 DATA "A pool cue sits on the floor where it was hastily dropped.", "POOL CUE", "In a special case rests a Morolian hunting knife.","KNIFE" 10080 DATA "A box of soda is on the floor.", "SODA", "A bottle of vinegar is on the counter.", "VINEGAR", "A small mason jar is on the stove.", "JAR" 10085 data "A well made coat is draped across a chair here.", "COAT" 10090 DATA "MESSAGE", "MESSAGE", "A book of matches sits in an ashtray.", "MATCHES", "An case with the initials DM on it catches your attention.", "CASE" 10100 DATA "BLASTING CAP", "BLASTING CAP", "In the dust of the servants's closet you notice a key.", "KEY", "A box of Sudski sits on the floor.", "SUDSKI", "A box of Slava soap sits on the floor.", "SLAVA" 10110 DATA "An unused bottle of StalinClean (Russia's #1 soap) rests here.", "STALINCLEAN", "A crowbar rusts in the corner.", "CROWBAR", "Bolt cutters hang from a hook in the ceiling." 10120 DATA "BOLTCUTTER", "A Morolian Codebook sits unguarded by the console.", "CODEBOOK", "There! Atop a manila folder lie the plans for the XJ-39!" 10130 DATA "PLANS", "A well used gardening shovel sits in the corner.", "SHOVEL", "A broken rake lies on the floor.", "RAKE" 10140 DATA "GO", "NOR", "SOU", "EAS", "WES", "TAL", "REA", "LOO", "EXA", "SEA", "INV", "HEA", "DIA", "CUT", "SHO", "KIL" 10150 DATA "DIG", "PUT", "DRO", "REM", "GET", "TAK", "CLO", "UNL", "BRE", "PRY", "SMA", "BEN", "OPE", "LIG", "BUR", "USE", "XYZ", "FUC", "SHI", "PIS" 10160 DATA 1,1,1,1,1,2,3,3,3,3,4,5,5,6,7,7,8,9,9,9,10,10,11,12,13,13,13,13,14,15,15,16,17, 18, 18, 18