'100 CLS:Print Tab(16);CAT(3);"D O G S T A R";CAT(0):?:? ? Tab(8);"BY LANCE MICKLUS 1979" ? Tab(9);"FOR THE TRS-80 MODEL I" ?:? Tab(10);CAT(3);"PORTED BY joeydoa";CAT(0) ?:? Tab(16);CAT(3);"PRESS ANY KEY";CAT(0):PAUSE ?:INPUT "Do you wish instructions";ans if UPPER(left(ans,1))<>"Y" then goto START ?"DOG STAR ADVENTURE" ?"written by Lance Micklus" ?"(c)(p) copyright 1979-81 by Lance Micklus, Inc. Burlington, Vt, 05401 All rights " ?"reserved." ?"" ?"Welcome to the world of Adventure. Most instruction booklets tell you " ?"how to play the game. This instruction book won''t. The object of the game is to " ?"figure out how to play it. There are clues almost everywhere you look, so use " ?"your imagination." ?"" ? "":PAUSE ?"PREMISE OF THE GAME" ?"-------------------" ?"I, your computer-puppet, am hidden in " ?"the cockpit of Princess Leya''s shuttle craft. I will be your eyes and your ears. " ?"You will tell me what to do in plain English. If I can understand your commands " ?"and can do them, then I''ll do exactly what you asked and will tell you the " ?"result. The shuttle craft where I am hiding is inside General Doom''s Battle " ?"Platform, which is almost like an aircraft carrier in outer space. The shuttle " ?"craft is located on the flight deck and is held in place by a tractor beam. The " ? "":PAUSE ?"evil General Doom and his Roche Soldiers are ready to launch an attack against " ?"the Forces of Freedom, led by Princess Leya. Enroute to a secret command center " ?"on the planet Harris Seven, Princess Leya''s shuttle craft - the ship I''m in " ?"right now - was attacked by a fleet of General Doom''s Rat Tail Fighters. The " ?"princess was taken prisoner, brought here, and now I don''t know where she is. To " ?"make matters worse, on board Princess Leya''s ship was the entire treasury of her " ?"Freedom Fighting Force in a chest containing Melidium Crystals, the currency in " ? "":PAUSE ?"this part of the galaxy. The Princess is also wearing a necklace made of " ?"Shinestones. Encoded in one of the stones is the location and strength of her " ?"Freedom Fighting Force. Hopefully, Doom has not yet discovered the secret of the " ?"necklace. It is possible, although very difficult, that we may be able to save " ?"the day by rescuing Princess Leya, her necklace, and the treasury. But even if " ?"we don''t, anything you and I can do to foil General Doom''s plans may help win a " ?"victory for peace and freedom in the galaxy. We must be very careful of guards " ? "":PAUSE ?"who are all over the ship. We could easily be caught and imprisoned. Sometimes " ?"you may only have enough time to give me one command which, if not the " ?"appropriate action to take, could easily end the game for both of us. Remember, " ?"I understand ordinary English in one- or two-word commands. If you want me to go " ?"somewhere, just give me the direction - like SOUTH. You can abbreviate " ?"directions if you like by just typing the first two letters - like SO. I can GET " ?"or DROP something just by your typing one of those two words followed by the " ? "":PAUSE ?"name of the object you want me to manipulate. Other words I understand include " ?"HELP, INVEN, LOOK, SCORE, and QUIT. Of course, there are many other words in my " ?"vocabulary but you''ll have to figure them out for yourself as you play." ?"" ?"LOAD & SAVE GAME" ?"----------------" ?"If you have to stop playing in the middle of a " ?"game, you can save your current game on tape so that the game can be continued " ?"later where you left off. To do this, first load a blank tape into your tape " ?"recorder. Make certain that when you start recording that you will not be " ?"recording on the tape leader. Instead of typing your next move, issue the " ? "":PAUSE ?"command SAVE GAME to the computer. The computer will then ask you to press the " ?"(ENTER) key when you are ready to record on the tape. To restart a previously " ?"saved game, begin by loading the program and then the data tape as if you were " ?"going to start from the beginning. Once the game has started, load your tape " ?"recorder with the tape that contains the previously saved game and get the " ?"recorder ready to playback the tape. Instead of entering a move, type the " ? "":PAUSE ?"command LOAD GAME. The computer will tell you to press the (ENTER) key when " ?"you''re ready to play back the tape. After pressing the (ENTER) key, the tape " ?"should read into the computer''s memory and you will now pick up the game exactly " ?"where you left off when you saved the game." ?"" ?"HISTORY OF THE GAME" ?"-------------------" ? "":PAUSE ?"DOG STAR ADVENTURE is just one of many " ?"Adventure type games which have been written over the years. Adventure type " ?"games have their roots in a game called Dungeons and Dragons (D&D) which you can " ?"buy at almost any hobby store for around $12.00. D&D is a role playing game that " ?"requires several players. Each player creates a character and the group of " ? "":PAUSE ?"players together explore a fantasy world. The game is controlled by one player -" ?"call the Dungeon Master - who makes up the fantasy world and acts as the " ?"referee. The Artificial Intelligence Laboratory at Standford University created " ?"the first Adventure game. In fact, the game was just called ADVENTURE. Like D&D, " ?"the players explored a fantasy world but this time the world was inside the " ? "":PAUSE ?"computer instead of on a playing board. Rather than having several players, " ?"ADVENTURE had only one player which was the computer''s character controlled by " ?"the human. Furthermore, the computer also played the role of Dungeon Master. The " ?"problem with the original ADVENTURE was that it required a very large computer " ?"system to play on. In recent years, a large number of programmers have been able " ? "":PAUSE ?"to use the ADVENTURE format to create new fantasy worlds using programs that " ?"could run on the average size microcomputer. In playing the game, it is easy to " ?"get discouraged. Adventure-type games are basically a puzzle with a finite " ?"solution. It''s not only a matter of knowing what to do, but it is also a matter " ?"of figuring out how to explain it to the computer. Once you know all of the " ? "":PAUSE ?"secrets, you can play DOG STAR ADVENTURE is ten minutes and get a perfect score. " ?"Good luck." ?"" ?"DON''T BE A PIRATE" ?"-----------------" ?"This program is sold to you with the understanding that it will be used solely for" ?"entertainment purposes on a single TRS-80(tm) computer system. You have every right" ?"to make backup copies of this program to protect your investment. Please don''t use" ?"that right to infringe upon the rights of others who receive their fair royalty" ? "":PAUSE ?"only when a sale is made. By all means, invite your friends over to play this game" ?"on your computer; but don''t let them borrow your copy to take home. If they like it" ?"enough to want to take it home, encourage them, instead, to buy a copy from their" ?"software dealer. If you want to trade programs, go ahead. But trade only those programs" ?"which you and your friends wrote or which are in public domain." ?"" ? "":PAUSE LABEL START: 110 Randomize Timer:RESTORE MYDATA SC=215 LV=21 Dim VB2(LV) VB2(1)="GO":VB2(2)="GET":VB2(3)="LOOK" VB2(4)="INVEN":VB2(5)="SCORE":VB2(6)="DROP" VB2(7)="HELP":VB2(8)="SAVE":VB2(9)="LOAD":VB2(10)="QUIT" VB2(11)="PRESS":VB2(12)="SHOOT":VB2(13)="SAY" VB2(14)="READ":VB2(15)="EAT":VB2(16)="CSAVE" VB2(17)="SHOW":VB2(18)="OPEN":VB2(19)="FEED" VB2(20)="HIT":VB2(21)="KILL" LN=37 Dim NO2(LN) NO2(1)="NORTH":NO2(2)="EAST":NO2(3)="SOUTH" NO2(4)="WEST":NO2(5)="UP":NO2(6)="DOWN" NO2(10)="BUTTON":NO2(11)="TAG":NO2(12)="FUEL" NO2(13)="BLASTER":NO2(14)="COMMUNICATOR":NO2(15)="GUARD" NO2(16)="MAP":NO2(17)="KEYS":NO2(18)="NECKLACE" NO2(19)="SESAME":NO2(20)="GRAFFITI" NO2(21)="CAPE":NO2(22)="HAMBURGER" NO2(23)="TAPE":NO2(24)="TURBO" NO2(25)="SCIENTIST":NO2(26)="PLANS" NO2(27)="SCHEMATIC":NO2(28)="DEVICE":NO2(29)="GUN" NO2(30)="SECURITY":NO2(31)="I.D.":NO2(32)="CRYSTALS" NO2(33)="SIGN":NO2(34)="ROBOT":NO2(35)="PRINCESS" NO2(36)="DOOR":NO2(37)="AMMUNITION" CL=37 Dim DS$(CL) DS$(1)="I''m in the passenger & storage compartment of my space ship."+CHR(10)+"There''s an exit here to leave the ship." LABEL MYDATA DATA 2,0,0,0,0,3 DS$(2)="I''m in the cockpit of my space ship."+CHR(10)+"A large red button says >> PRESS TO BLAST OFF <<" DATA 0,0,1,0,0,0 DS$(3)="I''m standing next to my space ship which is located on a"+CHR(10)+"huge flight deck." DATA 18,0,4,0,1,0 DS$(4)="I''m out on the flight deck of General Doom''s Battle Cruiser." DATA 3,5,4,4,0,0 DS$(5)=DS$(4):DATA 4,6,5,4,0,0 DS$(6)="I''m in a hallway. There are doors on all sides."+CHR(10)+"The door to the north says: >> CLOSED FOR THE DAY <<" DATA 7,0,8,5,0,0 DS$(7)="I''m in the SUPPLY DEPOT."+CHR(10)+CHR$(12)+"around me I see:"+CHR(10)+"all kinds of things" DATA 0,0,6,0,0,0 DS$(8)="I''m at the end of one of the hallways."+CHR(10)+"I can here voices nearby. Sounds like guards." DATA 6,10,0,9,0,12 DS$(9)="I''m in the STRATEGY PLANNING room.":DATA 11,8,0,0,0,0 DS$(10)="I''m in the DECONTAMINATION area.":DATA 0,14,0,8,0,0 DS$(11)="This area is the tractor beam control room."+CHR(10)+"A large sign warns: >> DO NOT PRESS ANY BUTTONS <<" DATA 0,0,9,0,0,0 DS$(12)="I''m in another hallway. To the EAST is a restroom." DATA 15,13,0,0,8,0 DS$(13)="This is what is commonly called on earth, the BATHROOM."+CHR(10)+"There''s graffiti written all over the wall."+Chr(10)+"Pipes lead up through the ceiling." DATA 15,0,0,12,27,0 DS$(14)="This appears to be an interrogation room.":DATA 0,0,0,10,0,0 DS$(15)="I''m in a LOUNGE.":DATA 0,0,13,12,0,0 DS$(16)="This is a computer room. There''s a TRS-80 in here."+CHR(10)+"On the screen it says: >> CSAVE TAPE <<":DATA 17,0,18,0,0,0 DS$(17)="I''m in a testing labortory.":DATA 0,0,16,0,0,0 DS$(18)="I''m in a hallway."+CHR(10)+"A large arrow points EAST and says: >> TO THE VAULT <<" DATA 16,25,3,19,0,0 DS$(19)="This is the entrance to the DEVELOPMENT LAB SECTION":DATA 20,18,21,20,22,0 DS$(20)="I''m in a long corridor. There are labortories all around me.":DATA 19,23,21,20,22,24 DS$(21)="I''m in a research lab.":DATA 20,0,0,0,0,0 DS$(22)="I''m lost!":DATA 22,22,22,22,22,20 DS$(23)=DS$(21):DATA 0,0,0,20,0,0 DS$(24)=DS$(21):DATA 0,0,0,0,20,0 DS$(25)="I''m near the entrance to the vault."+CHR(10)+"A sign here says: >> AUTHORIZED PERSONEL ONLY <<" DATA 0,26,0,18,0,0 DS$(26)="I''m in the vault.":DATA 0,0,0,25,0,0 DS$(27)="I''m in a pipe tunnel which leads in every direction.":DATA 28,27,27,27,27,13 DS$(28)=DS$(27):DATA 29,29,29,29,30,29 DS$(29)="I''m lost in a maze of pipes.":DATA 28,29,29,29,29,27 DS$(30)="I''m in the pipe maze."+CHR(10)+"Below me I think I can see the jail." DATA 29,29,28,29,29,31 DS$(31)="I''m in the jail." DATA 32,33,34,35,0,0 DS$(32)="I''m in a jail cell.":DATA 0,0,31,0,0,0 DS$(33)=DS$(32):DATA 0,0,0,31,0,0 DS$(34)=DS$(32):DATA 31,0,0,0,0,0 DS$(35)="I''m at the security desk."+CHR(10)+"To the north an elevator.":DATA 36,31,0,0,0,0 DS$(36)="I''m in the elevator.":DATA 0,0,35,0,37,0 DS$(37)=DS$(36):DATA 0,0,14,0,0,36 LO=23 Dim OB2(LO) OB2(1)="a TAG which says: >> NEEDS TURBO <<":DATA 11,5,0 OB2(2)="Anti-matter FUEL":DATA 12,5,5 OB2(3)="BLASTER":DATA 13,7,0 OB2(4)="COMMUNICATOR":DATA 14,9,0 OB2(5)="A very surprised GUARD":DATA 15,9,0 OB2(6)="MAP of the ship":DATA 16,29,20 OB2(7)="some KEYS":DATA 17,9,0 OB2(8)="a shinestone NECKLACE":DATA 18,10,20 OB2(9)="Princess Leya''s CAPE":DATA 21,14,5 OB2(10)="McDonald''s HAMBURGER":DATA 22,15,0 OB2(11)="a cassette TAPE":DATA 23,7,0 OB2(12)="a TURBOENCABULATOR":DATA 24,17,5 OB2(13)="an evil looking SCIENTIST":DATA 25,17,0 OB2(14)="secret attack PLANS":DATA 26,0,20 OB2(15)="Death Ray SCHEMATIC":DATA 27,9,20 OB2(16)="Cloaking DEVICE":DATA 28,17,20 OB2(17)="Micro Laser GUN":DATA 29,24,20 OB2(18)="I.D. card":DATA 31,17,0 OB2(19)="Malidium CRYSTALS (the Treasury!)":DATA 32,26,30 OB2(20)="a SIGN which says: >> OUT OF ORDER <<":DATA 33,3,0 OB2(21)="attack ROBOT":DATA 34,35,0 OB2(22)="PRINCESS Leya":DATA 35,34,50 OB2(23)="AMMUNITION":DATA 37,7,0 Dim DS(CL,5) For ZL=1 TO CL FOR ZD=0 TO 5 READ DS(ZL,ZD) Next ZD Next ZL Dim OB(LO,2) For ZL=1 TO LO READ OB(ZL,0),OB(ZL,1),OB(ZL,2) Next ZL Dim HE2(CL) HE2(1)="I think we''re suppose to leave the stuff here." HE2(2)="I wonder if we have enough fuel?" HE2(7)="How ''bout a BLASTER." HE2(9)="Try SHOOT GUARD." HE2(13)="It might be intersting to read the graffiti." HE2(17)="Try SHOOT SCIENTIST." HE2(22)="I''m as confused as you are." HE2(29)=HE2(22) HE2(31)="It might help if we had some keys to OPEN any locked DOORS." HE2(35)="Did you bring anything to eat?" M0$="I can''t go there. The door is locked." M1$="I''m not carrying any blank tape." M2$="The TRS-80 recorded something on the tape, and then it printed:"+CHR(10)+">> ATTACK PLANS -- VERY SECRET <<" M3$="I can''t. I''m not carrying any keys." M4$="O.K. The door to the jail cell is unlocked." M5$="There''s no robot here." M6$="But I don''t have any hambergers." M7$="Chump...chump BURP!"+CHR(10)+"The princess thanks you for a delicious meal." M8$=" doesn''t eat hamburger." M9$="Nothing happened. The hamburger is cold you know." N0$="The attack robot eats the hamberger and dissapears." N1$="I''m at the identification terminal."+CHR(10)+"On the screen it says: >> SHOW I.D. <<" N2$="The tractor beam is off." N3$="The tractor beam is on." N4$="You forgot to open the flight deck doors." 130 LC=2:SL=64:BL=4:GF=50:RV=16396 140 GoTo 1910 150 If TC<25 OR Int(((GF-1+1)*RND+GF)-(GF-1))<>1 Then 250 160 If TC=300 Then GF=20 170 If LC<3 OR LC=9 OR LC=26 OR LC=36 OR LC=37 Then 250 180 IF LC>26 AND LC<31 THEN 250 190 PRINT"Holy smokes. An armed guard just walked in." 200 sub1:IF VB<>12 OR NO<>15 THEN 1130 210 X=13:sub2:IF Y<>-1 THEN 1130 220 IF BL=0 Then CLS:PRINT"I''m out of ammunition.":PRINT:GOTO 1140 230 PRINT"zzZAP! No more guard." 240 BL=BL-1:IF BL=0 Then PRINT"I''m out of ammunition." 250 IF MD<>TC THEN 280 260 X=22:sub2:IF Y<>-1 THEN 280 270 PRINT"Your McDonald''s Hamburger is cold." 280 sub1:TC=TC+1 290 IF VB=0 AND NO=0 THEN 300 ELSE 320 300 PRINT"I don''t know how to do that.":GOTO 150 310 PRINT"Nothing happened.":GOTO 150 320 IF VB>1 OR NO>7 THEN 450 330 IF NO=0 THEN 300 340 IF DS(LC,NO-1)=0 Then PRINT"I can''t go that way!":GOTO 150 350 IF DR AND DS(LC,NO-1)>2 AND DS(LC,NO-1)<6 Then PRINT"I can''t go that way. Flight deck doors are open.":?"NO AIR!!!":GOTO 150 360 IF NO=3 AND LC=31 AND NOT DJ Then Print M0$:GOTO 150 370 IF LC=35 AND DS(LC,NO-1)=36 AND OB(21,1)<>0 Then PRINT"The robot won''t let me through.":GOTO 150 380 IF LC=17 AND OB(13,1)=17 THEN 1130 390 IF LC=9 AND OB(5,1)=9 THEN 1130 400 IF LC=9 OR LC=17 Then HE2(LC)="" 410 LC=DS(LC,NO-1) 420 IF LC=34 Then HE2(LC)="" 430 IF LC=26 THEN 2130 440 GOTO 1910 450 IF VB=3 Then GOTO 1910 460 IF VB<>2 THEN 620 470 IF NO=0 Then PRINT"I don''t know what a ";CHR$(34);NO2(0);CHR$(34);" is.":GOTO 150 480 IF CR>5 Then PRINT"I can''t carry any more.":?"HINT: Drop something.":GOTO 150 490 FOR I=1 TO LO If OB(I,0)=NO fflag=1 Exit For endif Next I If fflag=1 fflag=0 GoTo 500 endif GoTo 300 500 IF OB(I,1)=-1 Then PRINT"I''m already carrying it.":GOTO 150 510 IF OB(I,1)<>LC Then PRINT"I don''t see it.":GOTO 150 520 IF NO<>37 THEN 550 530 X=13:sub2:IF Y<>-1 Then PRINT"I don''t have a blaster to put it in.":GOTO 150 540 BL=4:OB(I,1)=0:PRINT"My BLASTER''s reloaded.":FOR I=1 TO 1:NEXT I:GOTO 150 550 IF NO=15 OR NO=25 OR NO=34 Then PRINT"He looks pretty mean to me.":GOTO 150 560 CR=CR+1:OB(I,1)=-1:PRINT"O.K.":FOR I=1 TO 1:NEXT I 570 IF NO=14 AND NOT CM Then PRINT"A voice says: ";CHR$(34);"SESAME";CHR$(34);".":CM=-1 580 IF NO=22 AND MD=0 Then MD=TC+50 590 IF NO=12 Then HE2(2)="" 600 IF NO=13 Then HE2(7)="" 610 GOTO 150 620 IF VB<>4 THEN 670 630 PRINT"I''m carrying:" 640 K=0 FOR I=1 TO LO IF OB(I,1)=-1 Print OB2(I) K=1 ENDIF Next I 650 If K=0 Then PRINT"NOTHING" 660 PRINT:GOTO 150 670 IF VB<>5 THEN 680 ELSE GOSUB 2290:GOTO 150 680 IF VB<>6 THEN 760 690 IF NO=0 THEN 470 700 IF LC=2 Then PRINT"There''s no room here.":GOTO 150 710 IC=0 For I=1 TO LO IF OB(I,1)=LC Then IC=IC+1 Next I 720 If IC>12 Then PRINT"There not enough room. Get rid of something.":GOTO 150 730 FOR I=0 TO LO If OB(I,0)=NO fflag=1 Exit For endif Next I If fflag=1 fflag=0 GoTo 740 endif GoTo 300 740 IF OB(I,1)<>-1 Then PRINT"I''m not carrying it.":GOTO 150 750 CR=CR-1:OB(I,1)=LC:PRINT"O.K.":FOR I=1 TO 1:NEXT I:GOTO 150 760 IF VB<>7 THEN 780 770 IF HE2(LC)="" PRINT"How am I supposed to know what to do?" GOTO 150 Else Print HE2(LC) GOTO 150 ENDIF 780 IF VB<>8 THEN 900 790 SAVEGAME:GoTo 150 900 If VB<>9 THEN 1020 910 LOADGAME 1010 GOTO 1910 1020 IF VB<>10 GoTo 1030 Else Cls J=0 GOTO 2070 ENDIF 1030 IF VB<>11 THEN 1170 1040 IF NO<>10 THEN 300 1050 IF LC<>2 AND LC<>11 Then PRINT"What button,":GOTO 150 1060 IF LC=11 AND !TB Then TB=-1:Print N2$:GOTO 150 1070 IF LC=11 AND TB Then TB=0:Print N3$:GOTO 150 1080 X=12:sub2:IF Y<>1 THEN 310 1090 X=24:sub2:IF Y<>1 THEN 310 1100 IF !TB Then Print N3$:GOTO 310 1110 IF !DR Then Print N4$:GOTO 310 1120 GOTO 2060 1130 CLS:PRINT"H E L P ! ! !":PRINT 1140 PRINT"Roche Soldiers are everywhere. I''ve been captured." 1150 PRINT"I''m now a prisoner. Woe is me...":? 1160 GOTO 2100 1170 IF VB<>12 OR NO=0 THEN 1270 1180 IF BL=0 Then PRINT"But I don''t have any ammunition left.":GOTO 150 1190 X=13:sub2:IF Y<>-1 Then PRINT"But I''m not carrying a BLASTER.":GOTO 150 1200 X=NO:sub2:IF Y=-1 Then PRINT"I can''t. I''m holding it.":GOTO 150 1210 IF NO=34 Then PRINT"zzZAP!":BL=BL-1:GOTO 150 1220 IF Y<>LC Then PRINT"I don''t see it.":GOTO 150 1230 FOR I=1 TO LO If OB(I,0)=NO fflag=1 Exit For endif Next I If fflag=1 fflag=0 GoTo 1240 endif GoTo 300 1240 OB(I,1)=0:FOR I=1 TO 1:NEXT I:PRINT"zzZAP!!! The ";NO2(NO);" vaporized." 1250 BL=BL-1:IF BL=0 Then PRINT"I''m out of ammunition." 1260 GOTO 150 1270 IF VB<>13 THEN 1350 1280 IF NO=0 Then PRINT"Say what?":GOTO 150 1290 X=14:sub2 1300 IF Y<>-1 OR NO<>19 Then PRINT"O.K. ";NO2(NO):GOTO 150 1310 IF DR Then GOTO 310 1320 DR=-1:PRINT"A voice comes over the P.A. system and says:":?"OPENNING FLIGHT DECK DOORS":? 1330 IF LC>2 AND LC<6 Then PRINT:?"Yips!!! There''s no air!!! CROAK...":END 1340 GOTO 150 1350 IF VB<>14 THEN 1520 1360 IF NO<>20 AND NO<>16 AND NO<>11 AND NO<>33 THEN 300 1370 IF NO=20 THEN 1460 1380 IF NO<>16 THEN 1420 1390 IF OB(6,1)=-1 Then PRINT"Sorry. I''m not a cartographer.":GOTO 150 1400 IF OB(6,1)=LC Then PRINT"Try GET MAP.":GOTO 150 1410 PRINT"It''s not here.":GOTO 150 1420 X=NO:sub2:IF Y<>LC AND Y<>-1 THEN 1410 1430 IF NO=11 Then PRINT"It says: >> NEEDS TURBO <<" 1440 IF NO=33 Then PRINT"It says: >> OUT OF ORDER <<" 1450 GOTO 150 1460 IF LC<>13 Then PRINT"I don''t see any.":GOTO 150 1470 PRINT:PRINT"It says on the wall," 1480 PRINT">> YOUR MOTHER''S GOT A BIG NOSE <<" 1490 PRINT">> KILROY MADE IT HERE, TOO <<" 1500 PRINT">> SAY SECURITY <<" 1510 GOTO 150 1520 IF VB<>15 THEN 1590 1530 IF NO=0 Then PRINT"What''s a ";NO2(0);"?":GOTO 150 1540 IF NO<>22 Then PRINT"Don''t be ridiculous.":GOTO 150 1550 X=22:sub2:IF Y<>-1 Then PRINT"I''m not holding it.":GOTO 150 1560 FOR I=1 TO LO If OB(I,0)=22 fflag=1 Exit For endif Next I If fflag=1 fflag=0 GoTo 1570 endif Print"I don''t know where it is." GOTO 150 1570 OB(I,1)=0:PRINT"Chump - Chump. Hummm, good." 1580 FOR I=1 TO 1:NEXT I:GOTO 150 1590 IF VB<>16 OR NO<>23 OR LC<>16 THEN 1630 1600 X=23:sub2:IF Y<>-1 Then Print M1$:GOTO 150 1610 OB(11,1)=0:OB(14,1)=16:CR=CR-1:Print M2$ 1620 GOTO 150 1630 IF VB<>18 OR NO<>36 THEN 1670 1640 IF NO<>36 OR LC<>31 THEN 300 1650 X=17:sub2:IF Y<>-1 Then Print M3$:GOTO 150 1660 HE2(31)="":DJ=-1:Print M4$:GOTO 150 1670 IF VB<>19 OR NO=0 THEN 1780 1680 IF NO<>34 Then PRINT"That''s stupid!":GOTO 150 1690 IF LC<>35 Then Print M5$:GOTO 150 1700 X=22:sub2:IF Y<>-1 Then Print M6$:GOTO 150 1710 IF NO=35 Then Print M7$:GOTO 150 1720 IF NO<>34 Then Print NO2(0);M8$:GOTO 150 1730 IF TC>MD Then Print M9$:GOTO 150 1740 FOR I=1 TO LO If OB(I,0)=34 fflag=1 Exit For endif Next I If fflag=1 fflag=0 GoTo 1750 endif GoTo 300 1750 K=I FOR I=1 TO LO If OB(I,0)=22 fflag=1 Exit For endif Next I If fflag=1 fflag=0 GoTo 1760 endif GoTo 300 1760 Print N0$:HE2(35)="" 1770 OB(K,1)=0:OB(I,1)=0:FOR I=1 TO 1:NEXT I:GOTO 150 1780 IF VB<>17 THEN 1800 1790 Print NO2(0):GOTO 150 1800 IF VB<>20 THEN 1890 1810 IF NO=0 THEN 300 1820 X=NO:sub2:IF Y=-1 Then PRINT"I''m carrying it. That''s impossible.":GOTO 150 1830 IF Y=LC THEN 1860 1840 IF NO<11 OR NO=19 OR NO=20 OR NO=30 THEN 300 1850 PRINT"I can''t hit something I can''t see.":GOTO 150 1860 IF NO=15 OR NO=25 OR NO=34 Then PRINT"I''d rather not. He might hit me back!":GOTO 150 1870 IF NO=35 Then PRINT"That''s not nice!":GOTO 150 1880 GOTO 310 1890 IF VB<>21 GoTo 1900 Else PRINT"I''m not strong enough to kill anything." GOTO 150 ENDIF 1900 GOTO 300 1910 CLS:Print DS$(LC):A$="" 1920 IF LC=35 Then GF=10 1930 IF LC=7 THEN 1990 1940 K=0 FOR I=1 TO LO If OB(I,1)<>LC GoTo L5 endif If K=0 K=1 Print"Around me I see:" A$=OB2(I) GoTo L5 ENDIF If LEN(A$)+5+LEN(OB2(I))>SL Print A$ A$=OB2(I) Else A$=A$+" "+OB2(I) ENDIF LABEL L5: Next I 1980 IF A$<>"" Then Print A$ 1990 PRINT:PRINT"Obvious directions are ";:K=0 2000 FOR I=0 TO 5 IF DS(LC,I)<>0 IF K<>0 Then PRINT", "; Print NO2(I+1); K=1 ENDIF Next I 2040 IF K=0 Then PRINT"unknown"; 2050 PRINT".":GOTO 150 2060 CLS:GOSUB 2290 2070 IF J=0 Then PRINT"We have FAILED our mission.":?"The forces of Princess Leya will be conquered.":? 2080 IF J=SC Then PRINT"We are HEROS.":?"The forces of Princess Leya will conquer the evil Roche":?"soldiers, and freedom will prevail throughout the galaxy.":? 2090 IF J>0 AND J13 OR NO<>30 THEN 1130 2160 Print N1$ 2170 sub1 2180 X=31:sub2:IF Y<>-1 THEN 1130 2190 IF VB<>17 OR NO<>31 THEN 1130 ELSE 1910 2200 sub1 2290 J=0 FOR I=1 TO LO IF OB(I,1)=1 Then J=J+OB(I,2) Next I 2300 Print"Out of a maximum of ";SC;" points, you have ";J;" points." 2310 IF J=0 Then PRINT"We''re not doing too good." 2320 RETURN FUNC sub1() Input"What should I do";CM$ CM$=UPPER(CM$) VB2(0)="" NO2(0)="" VB=0 NO=0 IF LEN(CM$)=0 Then Exit FUNC FOR ZL=1 TO LEN(CM$) IF MID$(CM$,ZL,1)<>" " VB2(0)=VB2(0)+MID$(CM$,ZL,1) Else Exit For ENDIF Next ZL FOR ZL=1 TO LV IF VB2(ZL)<>"" AND LEFT$(VB2(0),LEN(VB2(ZL)))=VB2(ZL) VB=ZL fflag=1 Exit For endif Next ZL If fflag=1 fflag=0 GoTo L1 endif VB=0 NO2(0)=VB2(0) GOTO L2 LABEL L1: IF LEN(VB2(0))+1>=LEN(CM$) NO=0 Exit FUNC Else NO2(0)=RIGHT$(CM$,LEN(CM$)-1-LEN(VB2(0))) endif LABEL L2: FOR ZL=1 TO LN IF NO2(ZL)<>"" AND LEFT$(NO2(0),LEN(NO2(ZL)))=NO2(ZL) NO=ZL fflag=1 Exit For endif Next ZL If fflag=1 fflag=0 For ZL=1 TO 1 Next ZL Exit FUNC endif NO=0 Exit FUNC End FUNC sub2() FOR ZL=0 TO LO If OB(ZL,0)=X Y=OB(ZL,1) fflag=1 Exit For ENDIF Next ZL If fflag=1 fflag=0 FOR ZL=1 TO 1 NEXT ZL Exit FUNC endif Y=-99 Exit FUNC End FUNC LOADGAME FHAND=FreeFile GAMENAME="dogstar.dat" If !EXIST(GAMENAME) Print "No SAVED GAME!!!" PAUSE Exit FUNC endif Open GAMENAME For Input AS #FHAND Print"Press (ENTER) when ready to * READ TAPE *" PAUSE For I=0 TO LO READ #FHAND;OB(I,0),OB(I,1),OB(I,2) Next I READ #FHAND;TB,TC,CM,DR,BL,MD,GF,DJ,CR,LC Close #FHAND End FUNC SAVEGAME Print"Press (ENTER) when ready to : RECORD :" PAUSE GAMENAME="dogstar.dat" FHAND=FreeFile If EXIST(GAMENAME) Then Kill GAMENAME ENDIF Open GAMENAME For OUTPUT AS #FHAND For I=0 TO LO Write #FHAND;OB(I,0),OB(I,1),OB(I,2) Next I Write #FHAND;TB,TC,CM,DR,BL,MD,GF,DJ,CR,LC Close #FHAND Print"O.K." End '