0 REM ADVENTURES IN VIDEOLAND - ROLLERCOASTER. BY @DAVIDLUBAR. PUBLISHED IN CREATIVE COMPUTING MAGAINE V8N1, JANUARY 1982. UPGRADES BY @KEVINSAVETZ, 2018. ORIG. GAME AND UPGRADES ARE IN THE PUBLIC DOMAIN. 1 DISC = 1: REM SET DISC=0 FOR NO LASERDISC. DISC=1 FOR PIONEER LD-V2200 OR COMPATIBLE LASERDISC PLAYER CONNECTED TO SLOT 2 2 GOSUB 30000: REM INITIALIZE 3 GOSUB 34000: REM INSTRUCTIONS 4 GOSUB 22000: REM DISPLAY 1ST ROOM 10 GOSUB 1000: REM INPUT ROUTINE 30 IF NOT SPACE THEN V$ = A$ 40 IF A$ = " " THEN 10 45 PRINT : PRINT 50 IF ASC (V$) = 32 AND LEN (V$) > 1 THEN V$ = RIGHT$ (V$, LEN (V$) - 1):A$ = RIGHT$ (A$, LEN (A$) - 1): GOTO 50 60 IF LEN (V$) = LEN (A$) THEN NFLAG = 0: GOTO 90 70 N$ = RIGHT$ (A$, LEN (A$) - LEN (V$)) 80 IF ASC (N$) = 32 AND LEN (N$) > 1 THEN N$ = RIGHT$ (N$, LEN (N$) - 1): GOTO 80 85 IF N$ = " " THEN NFLAG = 0 90 A = ASC (V$) - 64 100 IF A < 1 OR A > 26 THEN 10 110 ON A GOSUB 10100,10200,10300,10400,10500,10600,10700,10800,10900,11000,11100,11200,11300,11400,11500,11600,11700,11800,11900,12000,12100,12200,12300,12400,12500,12600 120 IF NOT KW THEN PRINT "I DON'T KNOW HOW TO DO THAT":KW = 1 125 T = T + 1: IF T > 150 THEN INVERSE : PRINT "I THINK TIME JUST RAN OUT": NORMAL :T = 0:VC$ = "FR19801SE/FR20007PL/": GOSUB 40000: GOTO 50000 130 PRINT : GOTO 10 1000 A$ = " ":SPACE = 0:N$ = " ":V$ = " ":NFLAG = 1 1010 GET B$: IF ASC (B$) = 13 THEN RETURN 1020 IF ASC (B$) = 8 AND SPACE AND RIGHT$ (A$,1) = " " THEN SPACE = 0 1025 IF LEN (A$) = 1 AND B$ = " " THEN 1010 1030 IF ASC (B$) = 8 AND LEN (A$) > 1 THEN A$ = LEFT$ (A$, LEN (A$) - 1): PRINT B$;" ";B$;: GOTO 1010 1040 IF B$ = " " AND NOT SPACE THEN V$ = A$:SPACE = 1: GOTO 1060 1050 IF ASC (B$) < 65 OR ASC (B$) > 91 THEN 1010 1060 PRINT B$; 1070 A$ = A$ + B$ 1080 GOTO 1010 9999 REM FOLLOWING ROUTINES ACT ON THE INPUT. KW IS KEYWORD FLAG 10100 KW = 0: RETURN 10200 IF A$ = "BREAK BOX" THEN 53000 10210 IF A$ = "BREAK DOOR" THEN PRINT "TOO SOLID TO EVEN TRY": RETURN 10299 KW = 0: RETURN 10300 KW = 0: RETURN 10400 IF V$ = "DROP" AND NFLAG THEN 26000 10499 KW = 0: RETURN 10500 IF A$ = "E" THEN D = 2: GOTO 20000 10501 IF V$ = "EXAMINE" AND NFLAG THEN 27000 10599 KW = 0: RETURN 10600 IF A$ = "FIND BATTERIES" THEN PRINT "TRY THE BEAR": RETURN 10610 IF V$ = "FIND" THEN PRINT "I CAN'T HELP YOU": RETURN 10699 KW = 0: RETURN 10700 IF V$ = "GO" THEN 19000 10710 IF A$ = "GIVE COINS" AND L = 5 THEN 43000 10720 IF A$ = "GIVE TICKET" AND L = 16 THEN 48000 10799 KW = 0: RETURN 10800 IF V$ = "HELP" THEN PRINT "JUST KEEP MOVING AND EXAMINING THINGS, AND AVOID DANGEROUS PLACES.": RETURN 10899 KW = 0: RETURN 10900 IF A$ = "I" OR A$ = "INV" OR A$ = "INVENTORY" THEN 24000 10999 KW = 0: RETURN 11000 IF V$ = "JAM" THEN 54000 11099 KW = 0: RETURN 11100 IF V$ = "KILL" THEN PRINT "THAT IS BEYOND MY POWER.": RETURN 11199 KW = 0: RETURN 11200 IF A$ = "LOOK" THEN 22000 11210 IF V$ = "LOOK" AND NFLAG THEN 27000 11299 KW = 0: RETURN 11300 IF A$ = "MAKE JAMMER" THEN 55000 11399 KW = 0: RETURN 11400 IF A$ = "N" THEN D = 1: GOTO 20000 11499 KW = 0: RETURN 11500 IF A$ = "OPEN BEAR" THEN PRINT "TWO BATTERIES JUST FELL ": PRINT "OUT OF THE BACK.": PRINT "THEY'RE ON THE GROUND":OB(11) = L: RETURN 11599 KW = 0: RETURN 11600 IF (V$ = "PUT" OR V$ = "PLACE") AND NFLAG THEN 28000 11610 IF V$ = "PLAY" AND L = 6 THEN 43000 11620 IF V$ = "PLAY" AND L = 16 THEN 48000 11630 IF (A$ = "PUSH BUTTON" OR A$ = "PRESS BUTTON") AND L = 2 THEN 53000 11699 KW = 0: RETURN 11700 IF A$ = "QUIT" THEN END 11799 KW = 0: RETURN 11800 IF (A$ = "READ BOOK") AND (OB(4) = 0 OR OB(4) = L) THEN PRINT "YOU NOW KNOW HOU TO MAKE A": PRINT "JAMMER FROM A RADIO":BK = 1: RETURN 11810 IF A$ = "READ TICKET" THEN A$ = "LOOK TICKET": GOTO 27000 11899 KW = 0: RETURN 11900 IF A$ = "S" THEN D = 3: GOTO 20000 11910 IF V$ = "SHOOT" THEN 43000 11920 IF A$ = "SHOW TICKET" AND L = 16 THEN 48000 11999 KW = 0: RETURN 12000 IF V$ = "TAKE" AND NFLAG THEN 25000 12010 IF (A$ = "TURN KNOB" OR A$ = "TURN DIAL") AND L = 2 THEN 53000 12099 KW = 0: RETURN 12100 IF A$ = "USE JAMMER" THEN 54000 12199 KW = 0: RETURN 12200 IF A$ = "VISIT DANCER" THEN PRINT "SHE DOESN'T WANT TO SEE YOU": RETURN 12299 KW = 0: RETURN 12300 IF A$ = "W" THEN D = 4: GOTO 20000 12310 IF (A$ = "WEAR UNIFORM") AND (OB(9) = 0 OR OB(9) = L) THEN VC$ = "FR5890SE/": GOSUB 40000: PRINT "IT FITS WELL AND MAKES A GOOD": PRINT "DISGUISE":KW = 1:OB(9) = 0: RETURN 12399 KW = 0: RETURN 12400 KW = 0: RETURN 12500 KW = 0: RETURN 12600 POP : STOP : REM DEBUGGING AID. INPUT OF Z STOPS PROGRAM. 19000 REM PARSER FOR DIRECTION 20000 REM MOVE ROUTINE:D=DIRECTION:R=ROOM MOVED INTO:L=PRESENT LOCATION 20060 R = ASC ( MID$ (R$(L),D,1)) - 64 20070 IF NOT R THEN PRINT "YOU CAN'T GO THAT WAY": RETURN 20080 L = R 22000 IF DISC AND RND (1) > .6 AND A$ = "LOOK" THEN VC$ = "FR2550SE/": GOSUB 40000 22001 IF V$(L) < > "" THEN VC$ = V$(L): GOSUB 40000:V$(L) = "" 22005 PRINT "YOU ARE IN "; 22010 PRINT RM$(L): PRINT RD$(L): PRINT "THIS LOCATION CONTAINS ";:F1 = 0 22020 FOR I = 1 TO NO 22030 IF OB(I) = L THEN PRINT OB$(I):F1 = 1 22040 NEXT I: IF NOT F1 THEN PRINT "NOTHING" 22050 PRINT "VISIBLE EXITS: "; 22060 FOR I = 1 TO 4 22070 IF MID$ (R$(L),I,1) < > "@" THEN PRINT DIR$(I);" ";:F1 = 1 22080 NEXT I: IF NOT F1 THEN PRINT "DON'T EXIST" 22081 PRINT : IF L = 5 THEN 41000 22082 IF L = 8 THEN 47000 22083 IF L = 15 THEN 47100 22084 IF L = 18 THEN PRINT "YOU FOLLOW A WINDING PATH, FINALLY": PRINT "RETURNING TO FAMILIAR GROUND":L = 1: GOTO 22000 22085 IF L = 9 THEN 49000 22090 RETURN 24000 F1 = 0: PRINT "YOU ARE CARRYING": FOR I = 1 TO NO 24010 IF OB(I) = 0 THEN PRINT OB$(I):F1 = 1 24020 NEXT I: IF NOT F1 THEN PRINT "NOTHING" 24030 RETURN 25000 F1 = 0:F2 = 0: FOR I = 1 TO NO 25005 IF N$ = OB$(I) AND OB(I) = 0 THEN PRINT "YOU ALREADY HAVE THE ";N$: RETURN 25010 IF (N$ = OB$(I) OR N$ = "ALL" OR N$ = "EVERYTHING") AND (OB(I) = (L)) THEN OB(I) = 0: PRINT OB$(I);" TAKEN":F1 = 1 25020 IF N$ = OB$(I) THEN F2 = 1 25025 NEXT I 25030 IF F1 = 0 AND F2 = 0 AND N$ < > "ALL" AND N$ < > "EVERVTHING" THEN PRINT "I CAN'T TAKE THE ";N$: RETURN 25035 IF F1 = 0 AND F2 = 0 THEN PRINT "THERE IS NOTHING HERE I CAN TAKE." 25040 IF F1 = 0 AND F2 = 1 THEN PRINT "I DON'T SEE IT HERE." 25060 RETURN 26000 F1 = 0: FOR I = 1 TO NO 26010 IF ((OB$(I) = N$ OR N$ = "ALL" OR N$ = "EVERYTHING") AND (OB(I) = 0)) THEN OB(I) = L:F1 = 1 26020 NEXT I 26030 IF NOT F1 THEN PRINT "YOU CAN'T DROP WHAT YOU AREN'T CARRYING": RETURN 26040 PRINT "OK": RETURN 27000 F1 = 0: FOR I = 1 TO NO 27010 IF (OB(I) = 0 OR OB(I) = L) AND (OB$(I) = N$) THEN F1 = 1: PRINT OD$(I): IF OD$(I) = "" THEN PRINT "I SEE NOTHING IMPORTANT.": RETURN 27020 IF (FL(I) = (L) OR FL(I) = 0) AND (FR$(I) = N$) THEN F1 = 1: PRINT FD$(I): IF FD$(I) = "" THEN PRINT "NOTHING EXTRAORDINARY HERE": RETURN 27030 IF F1 THEN RETURN 27040 NEXT I 27050 PRINT "I CAN'T DESCRIBE THAT" 27060 RETURN 28000 FOR I = 1 TO NO 28010 IF N$ < > OB$(I) OR OB(I) < > 0 THEN NEXT I: PRINT "YOU AREN'T CARRYING THE ";N$: RETURN 28090 PRINT "WHERE?" 28095 T$ = N$ 28100 GOSUB 1000 28102 N$ = T$ 28105 PRINT 28106 IF A$ = " DOWN" THEN 26000 28110 IF V$ < > " IN" AND V$ < > " ON" THEN PRINT "I CAN'T DO THAT": RETURN 28115 T$ = RIGHT$ (A$, LEN (A$) - LEN (V$)) 28116 IF LEFT$ (T$,1) = " " AND LEN (T$) > 1 THEN T$ = RIGHT$ (T$, LEN (T$) - 1) 28117 IF T$ = "FLOOR" OR T$ = "TABLE" THEN 26000 28120 FOR I = 1 TO NO 28130 IF T$ < > OB$(I) OR (OB(I) < > L AND OB(I) < > 0) THEN NEXT I: PRINT "THE ";T$;" ISN'T HERE": RETURN 28140 PRINT "OK": IF (T$ = "RADIO" OR T$ = "JAMMER") AND N$ = "BATTERIES" THEN B = 1 28200 RETURN 30000 DIM OB(12),OB$(12),RM$(18),RD$(18),R$(18),OD$(12),FR$(12),FL(12),FD$(12),V$(18) 30001 RM$(1) = "THE MIDWAY":RM$(2) = "THE FIRST AID STATION":RM$(3) = "THE MIDWAY":RM$(4) = "THE MIDWAY":RM$(5) = "A RESTAURANT":RM$(6) = "A SHOOTING GALLERY" 30002 RM$(7) = "A MAINTAINANCE ROOM":RM$(8) = "THE BELLY DANCER'S TENT":RM$(9) = "THE TOP OF THE ROLLER COASTER":RM$(10) = "A CLOSET" 30003 RM$(11) = "AN ALLEY":RM$(12) = "THE OBSERVATION TOWER":RM$(13) = "A CRAWLWAY":RM$(14) = "A STORAGE ROOM":RM$(15) = "A SMALL SHACK":RM$(16) = "A GAME BOOTH":RM$(17) = "A NARROW TUNNEL":RM$(18) = "A DARK, TWISTING PATH" 30010 R$(1) = "EDKC":R$(2) = "@JC@":R$(3) = "BAFG":R$(4) = "@PHA":R$(5) = "@@A@":R$(6) = "C@@@":R$(7) = "MCQ@":R$(8) = "D@N@":R$(9) = "@@M@" 30011 R$(10) = "@@@B":R$(11) = "A@O@":R$(12) = "Q@@@":R$(13) = "I@G@":R$(14) = "@@@R":R$(15) = "K@@@":R$(16) = "@@@D":R$(17) = "G@L@":R$(18) = "@@@@" 30020 L = 1:NO = 12 30030 OB$(1) = "COINS":OB$(2) = "TOOLKIT":OB$(3) = "TICKET":OB$(4) = "BOOK":OB$(5) = "LAMP":OB$(6) = "TOWELS":OB$(7) = "POSTER":OB$(8) = "BEAR" 30031 OB$(9) = "UNIFORM":OB$(10) = "RADIO":OB$(11) = "BATTERIES":OB$(12) = "JAMMER" 30040 OB(1) = 4:OB(2) = 7:OB(3) = 14:OB(4) = 15:OB(5) = - 1:OB(6) = - 1:OB(7) = - 1:OB(8) = - 1 30045 OB(9) = 10:OB(10) = - 1:OB(11) = - 1:OB(12) = - 1 30050 DIR$(1) = "NORTH":DIR$(3) = "SOUTH":DIR$(2) = "EAST":DIR$(4) = "WEST" 30060 RD$(1) = "WHICH STRETCHES TO THE EAST AND WEST. A RESTAURANT IS TO THE NORTH" 30061 RD$(2) = "CONTAINING STRANGE EQUIPMENT. LIGHTS FLASH FROM AN ELECTRONIC BOX" 30062 RD$(3) = "AN AID STATION IS TO THE NORTH. THE SOUND OF GUNFIRE COMES FROM A SHOOTING GALLERY TO THE SOUTH." 30063 RD$(4) = "FROM A TENT TO THE SOUTH YOU HEAR EXOTICMUSIC 30064 RD$(5) = "THE ROOM IS CROWDED BUT YOU SEE AN EMPTYTABLE IN THE CORNER" 30065 RD$(6) = "A SIGN READS '3 SHOTS FOR 25 CENTS'" 30066 RD$(7) = "THERE ARE DOORS TO THE NORTH AND SOUTH. THE NORTHERN DOOR IS OPEN. YOU CAN HEAR THE ROLLER COASTER." 30067 RD$(8) = "SHE STOPS AND LOOKS AT YOU" 30068 RD$(9) = "A DANGEROUS PLACE TO BE." 30069 RD$(10) = "":RD$(11) = "THERE IS A DOOR LEADING TO A SMALL ROOM TO THE SOUTH" 30070 RD$(12) = "BELOW, YOU CAN SEE THE WHOLE CARNIVAL. THE TOP OF THE ROLLER COASTER IS IN SIGHT." 30071 RD$(13) = "THE PASSAGE LEADS NORTH TO THE TOP OF THE ROLLER COASTER. THE NOISE IS QUITE LOUD" 30072 RD$(14) = "THE DOOR IS LOCKED BEHIND YOU, BUT THEREIS A WINDOW TO THE WEST" 30073 RD$(15) = "THE ROOM IS LITTERED WITH FRAGMENTS OF ELECTRONIC PARTS, BUT NONE OF IT IS SALVAGEABLE. A GUARD BLOCKS YOUR PATH" 30074 RD$(16) = "A SIGN SAYS, '50 CENTS A BALL. WINNER'S CHOICE.'" 30075 RD$(17) = "THE PASSAGE LEADS SOUTH TO THE TOP OF THE OBSERVATION TOWER" 30100 OD$(1) = "TWO DIMES AND A NICKEL":OD$(2) = "IT CONTAINS EVERYTHING NEEDED FOR SMALL ELECTRONIC REPAIRS" 30101 OD$(4) = "THE TITLE IS 'RADIO FREQUENCY JAMMING TECHNIQUES'":OD$(5) = "IT IS VERY GAUDY":OD$(6) = "NICE AND FLUFFY":OD$(7) = "WHOOPIE--IT'S THE DALLAS CHEERLEADERS":OD$(8) = "WHEN YOU PUSH THE BUTTON ON ITS BACK, ITSAYS 'I WUV YOU'" 30102 OD$(3) = "IT SAYS, 'GOOD FOR 1 FREE GAME AT THE BALL TOSS, COURTESY OF CREATIVE COMPUTING, THE #1 MAGAZINE OF SOFTUARE AND APPLICATIONS.'" 30200 FR$(1) = "BOX":FD$(1) = "IT IS FIRMLY ATTACHED TO THE TABLE. THERE ARE KNOBS AND A BUTTON ON IT" 30201 FR$(2) = "RIFLE":FL(2) = 6:FD$(2) = "IT IS CHAINED TO THE COUNTER" 30202 FR$(3) = "GUN":FL(3) = 6:FD$(3) = "IT IS CHAINED TO THE COUNTER" 30300 V$(1) = "FR4002SE/":V$(2) = "FR21130SE/":V$(3) = "FR4627SE/":V$(4) = "FR4750SE/" 30310 V$(5) = "FR23100SE/":V$(6) = "FR11000SE/":V$(7) = "FR14038SE/FR14100PL/":V$(8) = "FR11818SE/FR11907PL/":V$(9) = "FR15362SE/" 30320 V$(10) = "":V$(12) = "FR8300SE/FR8488PL/":V$(13) = "FR14724SE/FR14855PL/":V$(14) = "FR33900SE/":V$(15) = "FR28322SE/":V$(16) = "FR7343SE/" 30330 V$(17) = "":V$(18) = "" 30400 KW = 1 31000 IF NOT DISC THEN RETURN : REM SET UP SERIAL PORT FOR LASERDISC 31010 PRINT CHR$ (4);"PR#2": REM INITIALIZE SERIAL PORT 31020 POKE 49322,11: REM COMMAND-NO PARITY, NO ECHO, ACTIVATE RTS, NO INTERRUPTS, ACTIVATE DTR 31030 POKE 49323,28: REM CONTROL-1 STOP BIT, 8 DATA BITS, BAUD RATE GENERATOR ENABLED, 4800 BPS 31040 PRINT CHR$ (4);"PR#0" 31999 REM KS: EVERYTHING I KNOW ABOUT APPLE 2 SERIAL COMM I LEARNED FROM https://groups.google.com/forum/#!topic/comp.sys.apple2.programmer/ZF9iyC6vVQo 32000 RETURN 34000 VC$ = "FR2818SE/": GOSUB 40000: TEXT : HOME 34001 PRINT "WHAT IS YOUR FIRST NAME?": GOSUB 1000:NA$ = A$ 34010 PRINT : PRINT "YOU HAVE JUST RECEIVED AN ANONYMOUS": PRINT "TIP THAT A BOMB HAS BEEN PLANTED": PRINT "ON A ROLLER COASTER.": FOR I = 1 TO 1000: NEXT I 34011 VC$ = "FR6726SE/FR6959PL/": GOSUB 40000 34015 PRINT : PRINT "YOU ARE CALLED TO INVESTIGATE AND FLY": PRINT "OFF TO STOP THE SABOTEUR.": FOR I = 1 TO 1000: NEXT I 34016 VC$ = "FR30032SE/FR30214PL/": GOSUB 40000 34018 PRINT 34020 PRINT "ON HIS SIDE, HE HAS THE BRILLIANCE OF": PRINT "AN INSANE MIND, AND THE AID OF ALLIES": PRINT "WHO ARE DETERMINED TO SEE THAT YOU FAIL" 34030 PRINT : PRINT "ON YOUR SIDE, YOU HAVE CUNNING, ": PRINT "TRAINING, AND DEDICATION" 34055 PRINT : PRINT "YOU HAVE INFILTRATED THE PARK WITH": PRINT "THE KNOWLEDGE THAT THE SABOTEUR": PRINT "WILL STRIKE SOMETIME TONIGHT": PRINT : PRINT "ALL YOU NEED DO IS STOP HIM." 34056 PRINT : INVERSE : PRINT "PRESS ANY KEY TO CONTINUE";: GET A$: NORMAL : HOME 34060 PRINT "BY GIVING THE RIGHT COMMAND, YOU CAN ": PRINT "MOVE, EXAMINE OBJECTS, AND PERFORM ": PRINT "OTHER ACTIONS" 34070 PRINT : PRINT "I UNDERSTAND TWO-WORD COMMANDS SUCH AS": PRINT "'DROP BOOK' OR 'TAKE KNIFE'.": PRINT "TO MOVE, YOU CAN SIMPLY ENTER 'N' FOR": PRINT "NORTH, ETC." 34080 PRINT : PRINT "AT TIMES, I WILL AWAIT YOUR COMMAND": PRINT "IN OTHER SITUATIONS, I WILL PRESENT YOU": PRINT "WITH A CHOICE OF ACTIONS": PRINT : PRINT "BUT SUCCESS OR FAILURE IS UP TO YOU." 34090 PRINT : INVERSE : PRINT "PRESS ANY KEY TO BEGIN. MAY LUCK BE": PRINT "WITH YOU,";NA$;: GET A$: NORMAL : PRINT : RETURN 40000 REM PLAY VIDEO CLIP 40010 IF NOT DISC THEN RETURN 40020 FOR I = 1 TO LEN (VC$) 40030 IF MID$ (VC$,I,1) = "/" THEN POKE 49320,13: WAIT 49321,8:J = PEEK (49320): GOTO 40060 40040 POKE 49320, ASC ( MID$ (VC$,I,1)) 40060 NEXT I 40070 RETURN 41000 PRINT : PRINT "A WAITER APPROACHES AND ASKS IF YOU": PRINT "WOULD LIKE A SEAT": PRINT : PRINT "SINCE YOU MISSED LUNCH TODAY, YOU": PRINT "ARE HUNGRY" 41010 PRINT : PRINT "DO YOU WANT TO EAT?": GOSUB 1000 41020 IF A$ < > " NO" AND A$ < > " YES" THEN PRINT "PLEASE ANSWER YES OR NO": GOTO 41010 41025 PRINT 41030 IF A$ = " NO" THEN PRINT "THE WAITER CALLED YOU A STIFF": PRINT "AND THREW YOU OUT":L = 3: GOTO 22000 41040 PRINT : PRINT "YOU ARE SERVED A DELICIOUS MEAL": PRINT "UNFORTUNATELY, THE SERVICE IS": PRINT "RATHER SLOW":VC$ = "FR19453SE/FR19799PL/": GOSUB 40000 41045 PRINT 41050 PRINT "THE BOMB WENT OFF AND THE BOMBER ESCAPED": FOR I = 1 TO 3000: NEXT I: GOTO 50000 43000 IF OB(1) < > 0 THEN PRINT "THE MAN BEHIND THE COUNTER TELLS": PRINT "YOU, 'IF YOU WANNA PLAY YOU GOTTA PAY.'": RETURN 43010 PRINT "YOU HAND OVER THE COINS AND PICK": PRINT "UP THE GUN":OB(1) = - 1 43020 VC$ = "FR10960SE/FR11107PL/": GOSUB 40000 43030 PRINT "GOOD SHOOTING": PRINT "HE HANDS YOU A TEDDY BEAR":OB(8) = 0 43035 PRINT "A PASSERBY LOOKS AT THE BEAR AND": PRINT "SAYS, 'MODERN NONSENSE. WHAT EVER HAPPENED TO SIMPLE STUFFED ANIMALS?'": PRINT "HE SHAKES HIS HEAD AND LEAVES." 43040 RETURN 47000 PRINT : IF OB(8) < > 0 AND OB(8) < > - 2 THEN PRINT "SHE SAYS YOU CAN'T COME IN UNLESS YOU": PRINT "HAVE A PRESENT FOR HER. SHE PUSHES YOU OUT.":L = 4: GOTO 22000 47005 IF OB(8) = - 2 THEN PRINT "SHE SAYS, 'YOU THINK ONE PRESENT": PRINT "ENTITLES YOU TO COME IN HERE ANY TIME": PRINT "YOU WANT?' SHE TURNS HER BACK AND IGNORES YOU.": RETURN 47010 PRINT "SHE LETS YOU IN AND EYES THE BEAR.": PRINT "DO YOU WANT TO GIVE IT TO HER? ": GOSUB 1000 47020 PRINT : IF A$ < > " Y" AND A$ < > " YES" THEN PRINT "SHE THROWS YOU OUT":L = 4: GOTO 22000 47030 OB(8) = - 2: PRINT "SHE UNLOCKS THE DOOR TO THE SOUTH" 47040 RETURN 47100 IF OB(9) < > 0 THEN PRINT "HE SAYS, 'EMPLOYEES ONLY' AND THROWS YOU OUT":L = 11: GOTO 22000 47110 PRINT "HE SEES YOUR UNIFORM AND LETS YOU IN" 47120 RETURN 48000 IF OB(3) < > 0 THEN PRINT "YOU CAN'T AFFORD THE GAME": RETURN 48010 PRINT "YOU HAND OVER THE TICKET AND THROW THE BALL.": PRINT CHR$ (7); CHR$ (7); CHR$ (7): PRINT "IT'S A WINNER.": PRINT "YOU HAVE A CHOICE OF FOUR PRIZES!" 48020 PRINT "A LAMP, TOWELS, RADIO, OR POSTER." 48025 OB(3) = - 2 48030 PRINT "WHICH DO YOU WANT?": GOSUB 1000 48040 A$ = RIGHT$ (A$, LEN (A$) - 1): FOR I = 5 TO 10 48050 IF OB$(I) = A$ THEN OB(I) = 0: PRINT : PRINT "IT'S YOURS": IF A$ = "RADIO" THEN VC$ = "FR1234SE/": GOSUB 40000: RETURN 48055 IF OB$(I) = A$ THEN RETURN 48060 NEXT I: PRINT : PRINT "PLEASE ANSWER WITH LAMP, POSTER, RADIO OR TOWELS.": GOTO 48030 49000 INVERSE : SPEED= 200: PRINT "IF YOU LOOK BACK, YOU'LL NOTICE": PRINT "A CAR SPEEDING TOWARD YOU":VC$ = "FR16185SE/FR16223PL/" 49010 NORMAL : SPEED= 255: GOSUB 40000: GOTO 50000 50000 HOME : VTAB 10: PRINT "IT IS ONE YEAR LATER": PRINT "THE ROLLER COASTER HAS BEEN REBUILT": PRINT "THE SABOTEUR PLANS TO DESTROY IT AGAIN": PRINT "WOULD YOU LIKE TO TRY TO SAVE IT?" 50010 GOSUB 1000: PRINT 50020 IF A$ = " YES" OR A$ = " Y" THEN GOSUB 30001: GOTO 22000 50030 IF A$ < > " N" AND A$ < > " NO" THEN PRINT "YES OR NO";: GOSUB 1000: PRINT : GOTO 50020 50040 END 53000 PRINT "UH OH, I THINK THAT WAS A MISTAKE":VC$ = "FR18722SE/FR18807PL/": GOSUB 40000: PRINT "YOU SET OFF THE BOMB": FOR I = 1 TO 2000: NEXT I: GOTO 50000 54000 IF L < > 12 THEN PRINT "YOU AREN'T IN LINE OF SIGHT WITH": PRINT "THE ROLLER COASTER": RETURN 54010 IF OB(12) THEN PRINT "YOU DON'T HAVE A JAMMER": RETURN 54020 IF NOT B THEN PRINT "IT DOESN'T WORK, MAYBE IT NEEDS BATTERIES": RETURN 54030 VC$ = "FR12169SE/FR12227PL/": GOSUB 40000 54040 HOME : VTAB 10: HTAB 12: INVERSE : SPEED= 100: PRINT "CONGRATULATIONS": NORMAL : PRINT : HTAB 6: PRINT "YOU SAVED THE ROLLER COASTER": SPEED= 255: END 55000 IF NOT BK THEN PRINT "YOU DON'T KNOW HOW": RETURN 55010 IF OB(10) < > 0 THEN PRINT "SOMETHING VITAL IS MISSING": RETURN 55020 IF OB(2) < > 0 THEN PRINT "YOU DON'T HAVE THE REQUIRED TOOLS": RETURN 55030 PRINT "CONGRATULATIONS, YOU NOW HAVE A ": PRINT "JAMMER":OB(10) = - 1:OB(12) = 0: RETURN