1 'The Harrow House Adventure 2 'by Jon Blossom (c) 1985 3 'this program has been placed in the 4 'public domain with permission granted 5 'to copy and distribute. NOT FOR SALE 6 'copies must include lines 1-6 10 CLS:CLEAR3000,MAXRAM:S$=" ":EL$=CHR$(27)+"D"+CHR$(27)+"D.":CP=1:DR=-4 20 DIMRM$(27),MO(27,5),DI$(6),OD$(42),NL(42),OS$(19),DM$(4) 30 POKE64634,PEEK(63791):OPEN"DATA1.DO"FORINPUTAS1 40 INPUT#1,VB$,NO$ 50 FORI=0TO42:J=I/2:LINE(J,J)-(239-J,63-J),1,B 60 INPUT#1,OD$(I),NL(I):NEXT 70 PRINT@132,"The Harrow House"; 80 FORI=0TO19:INPUT#1,OS$(I):NEXT 90 PRINT@168,"JB Portable Adventure #1"; 100 FORI=0TO27:LINEINPUT#1,RM$(I) 110 FORJ=0TO5:INPUT#1,MO(I,J):NEXTJ,I 120 PRINT@207,"Press ENTER if you dare..."; 130 IFINKEY$<>CHR$(13)THEN130ELSECLS 140 FORI=0TO4:INPUT#1,DM$(I):NEXT 145 FORI=0TO5:INPUT#1,DI$(I):NEXT 147 GOSUB500 150 IN$="":LINEINPUT"What now? ";IN$ 160 IFIN$=""THEN150ELSEA$=IN$ 170 GOSUB200:GOSUB600: 180 IFDL=1THENGOSUB500 190 GOSUB400:GOTO150 200 CV$="":B$="":A$=A$+S$ 210 FORI=1TOLEN(A$) 220 C=ASC(MID$(A$,I,1)):IFC=32THEN270 230 IFC>96THENC=CAND223 240 IFC>90ORC<65THEN260 250 B$=B$+CHR$(C) 260 NEXT:RETURN 270 IFB$=""THEN260ELSEIFLEN(B$)=1THEN300 280 IFINSTR("THEANINTONDAMNHIM",B$)>0THENB$="":GOTO260 290 IFB$="THEN"THEN310ELSEIFB$="AND"THEN330 295 IFB$="IT"THENB$=N1$ 300 IFB$="U"THENB$="UP" 305 CV$=CV$+LEFT$(B$,3)+S$:B$="":GOTO260 310 C$=MID$(A$,I+1):A$=LEFT$(A$,I-6) 320 IN$=A$:GOSUB600:IFDI=1THENGOSUB500 325 A$=C$:GOTO200 330 C$=MID$(A$,I+1):A$=LEFT$(A$,I-5) 340 IFINSTR(VB$,LEFT$(C$,3))>0THEN320 350 C$=LEFT$(A$,3)+S$+C$:GOTO320 400 IFNL(41)=CPTHENPRINT"The ghost is awfully scary!" 410 IFCP=24ANDMO(24,3)<>25THENPRINT"I think the alligator wants to eat me!" 420 IFDR>-1THENPRINTDM$(INT(5*RND(1))) 430 IFDR>-4THENDR=DR+1:IFDR=26THENDR=-4 440 IFCP=0THEN3000 450 IFCP<>27ORFL=1THEN490 460 FL=1:PRINT"A face appears on the screen and says:" 470 PRINT"Aaaagh! You made it!" 480 PRINT"Then fades away. The cavern" 485 PRINT"seals and a door opens to the south.":MO(CP,0)=-1:MO(CP,1)=0 490 RETURN 500 CLS:DL=0:IFCP>21ANDLN=0THENPRINT"It's too dark down here to see!":RETURN 505 PRINT"I am ";RM$(CP) 510 PRINT"I can see ";:IS=0 520 FORI=0TO42:IFNL(I)=CPTHENPRINTOD$(I);", ";:IS=1 530 NEXT:IFIS=0THENPRINT"nothing here."ELSEPRINTEL$ 540 PRINT"I can go ";:IS=0 550 FORI=0TO5:IFMO(CP,I)>-1THENPRINTDI$(I);", ";:IS=1 560 NEXT:IFIS=0THENPRINT"nowhere!"ELSEPRINTEL$ 570 RETURN 600 SL=INSTR(CV$,S$) 610 IV$=LEFT$(CV$,SL-1):IN$=MID$(CV$,SL+1) 620 IFIN$=S$THENNO=-1:GOTO660 630 NO=INSTR(NO$,LEFT$(IN$,3)):IFNO>0THEN650 640 IN$=MID$(IN$,INSTR(IN$,S$)+1):GOTO630 650 N1$=IN$:IFIN$=""THENNO=-1ELSENO=INT((NO-1)/3) 660 VB=INSTR(VB$,LEFT$(IV$,3)):IFVB=0THEN720 670 VB=INT((VB-1)/3):N1=NO-6 680 IFN1>22THENN1=N1-3:GOTO710 690 IFN1>17THENN1=N1-1:IFN1=19THENN1=18:GOTO710 700 IFN1=20ORN1=21THENN1=19 710 ONVB+1GOTO730,730,730,730,730,730,890,900,940,940,940,960,960,960,960,960,960,1080,1080,1080,1080,1080,1080,1190,1190,1190,1190,1190,1190,1290,1290,1360,1410,1410,1410,1450,1450,1450,1450,1490,1490,1490,1520,1520,1520,1540,1540 715 ONVB-46GOTO1650,1650,1730,1780,1850,1880,1900,1900,1920,1920,1920,2060,2000,2000,2100,2130,2130,1900 720 PRINT"I don't understand!":RETURN 730 IFDR>-1THENVB=INT(6*RND(1)) 735 P=MO(CP,VB):IFP>-1THEN800 740 IFCP=8ANDVB=1THENPRINT"The scary ghost won't let me by!":RETURN 750 IFCP=16ANDVB=3THENPRINT"I have to pay first.":RETURN 760 IFCP=23ANDVB=3THENPRINT"I can't get through the grate!":RETURN 770 IFCP=24ANDVB=3THENPRINT"No way! Do you want the alligator to eatme?!":RETURN 780 IFCP=23ANDVB=4THENPRINT"The trapdoor is shut and locked!":RETURN 790 PRINT"I can't go that way.":RETURN 800 IFCP=11ANDVB=5THENPRINT"The trapdoor shut when I came down...":MO(23,4)=-1:FORI=1TO500:NEXT 810 CP=P:DL=1 820 IFCP<5ANDCP>0THENNL(20)=CP 830 IFCP=3ORCP=5OR(CP>6ANDCP<10)ORCP=15THENNL(21)=CP:NL(22)=CP 840 IFCP=3ORCP=5ORCP=10ORCP=15THENNL(24)=CP 850 IFCP=6ORCP=11THENNL(27)=CP 860 IFCP=13ORCP=19ORCP=21THENNL(31)=CP:NL(32)=CP:NL(33)=CP 870 IFCP=18ORCP=20ORCP=17THENNL(34)=CP:NL(35)=CP:NL(36)=CP 880 RETURN 890 RETURN 900 PRINT"I am carrying ";:IS=0 910 FORI=0TO19:IFNL(I)=-1THENPRINTOS$(I);", ";:IS=1 920 NEXT:IFIS=0THENPRINT"nothing."ELSEPRINTEL$ 930 RETURN 940 PRINT"Are you sure?":I$=INPUT$(1) 950 IFI$="Y"ORI$="y"THENMENUELSERETURN 960 IFN1=47OR(N1=42ANDCP<>24)THEN1050 970 IFN1<0THENPRINT"Get what?":RETURN 980 IFN1=48THEN900 990 IFNL(N1)<>CPTHENPRINT"I don't see that here.":RETURN 995 IFN1>19THENPRINT"Too hard to carry!":RETURN 1000 IFNI=5THENPRINT"I can't carry anymore.":RETURN 1010 PRINT"Got it!":NL(N1)=-1:NI=NI+1 1015 IFN1=0ANDCP=1ANDNL(1)=-2THENPRINT"There's something here.":NL(1)=CP 1020 IFN1=9ANDCP=13ANDNL(17)=-2THENPRINT"There's something under it...":NL(17)=CP 1030 IFN1=10ANDCP=12ANDNL(11)=-2THENPRINT"Hey, I found something!":NL(11)=CP 1040 RETURN 1050 FORI=0TO19:IFNL(I)=CPTHENPRINT"Got ";OS$(I):NI=NI+1 1051 IFI=0ANDCP=1ANDNL(1)=-2THENPRINT"There's a key under it!":NL(1)=CP 1054 IFI=9ANDCP=13ANDNL(17)=-2THENPRINT"There's a piece of paper under it!":NL(17)=CP 1057 IFI=10ANDCP=10ANDNL(11)=-2THENPRINT"There's a crowbar there!":NL(11)=CP 1060 IFNL(I)=CPTHENNL(I)=-1 1065 IFNI<5THENNEXTELSEPRINT"I can't carry anymore." 1070 RETURN 1080 IFN1<0THENPRINT"Drop what?":RETURN 1090 IFN1=42ORN1=47THEN1150 1100 IFN1>19THENPRINT"Ha ha. Very funny.":RETURN 1110 IFNL(N1)<>-1THENPRINT"I'm not carrying it.":RETURN 1120 PRINT"Dropped.":NL(N1)=CP:NI=NI-1 1130 IFN1=15ANDCP=16THENPRINT"They disappeared!":MO(16,3)=17:NL(15)=-3 1135 IFN1=19ANDCP=24THENPRINT"The alligator hungrily takes it and":PRINT"ignores me.":NL(19)=-3:MO(24,3)=25 1140 RETURN 1150 FORI=0TO18:IFNL(I)=-1THENPRINT"Dropped ";OS$(I):NI=NI-1 1160 IFI=15ANDCP=16ANDNL(I)=-1THENPRINT"They disappeared!":MO(16,3)=17:NL(15)=-3 1165 IFI=19ANDCP=24ANDNL(I)=-2THENPRINT"The alligator grabs it hungrily!":MO(24,3)=25:NL(19)=-3 1170 IFNL(I)=-1THENNL(I)=CP:NEXTELSENEXT 1180 RETURN 1190 IFNO>5ANDVB>23ANDVB<28THENPRINT"Please use a direction.":RETURN 1200 IFVB=27ANDCP=18THENPRINT"I can see a small niche in the wall.":NL(40)=CP 1210 IFNO<6ANDNO>-1THENVB=NO:GOTO730 1220 IFVB=28ANDN1=44THENPRINT"I can see a niche high in the wall!":NL(40)=CP 1230 IFVB<>23THEN1270 1240 IFN1=9ANDCP=13ANDNL(17)=-2THENPRINT"There's something under it...":NL(17)=CP:RETURN 1250 IFN1=35ANDCP=20ANDNL(12)=-2THENPRINT"There's a knife there!":NL(12)=CP:RETURN 1260 IFN1=10ANDCP=12ANDNL(11)=-2THENPRINT"There's something there...":NL(11)=CP:RETURN 1265 IFN1=0ANDCP=1ANDNL(1)=-2THENPRINT"There's something under it.":NL(1)=CP:RETURN 1270 IFVB<>27THENPRINT"Try a direction." 1280 RETURN 1290 IFNO=-1THENDL=1:RETURNELSEIFN1>42THEN1300 1295 IFNL(N1)<>CPANDNL(N1)<>-1THENPRINT"I don't see that here.":RETURN 1300 IFN1<0ORN1>46THENPRINT"Examine what?":RETURN 1310 IFN1=28THENPRINT"I found a secret button!":NL(39)=CP:RETURN 1320 IFN1=17ORN1=6ORN1=38THEN1370 1330 IF(N1=43ORN1=46)ANDCP=13ANDNL(9)=-2THENPRINT"There's a tile loose in the floor!":NL(9)=CP:RETURN 1340 IF(N1>42ANDN1<46)ANDCP=18THENPRINT"I see a niche high in the wall.":NL(40)=CP:RETURN 1345 IFN1=40ANDCP=18ANDNL(14)=-2THENPRINT"There's something tucked away up there!":NL(14)=CP:RETURN 1350 PRINT"I see nothing special about it.":RETURN 1360 IFN1<0ORN1>46THENPRINT"What?":RETURN 1370 IFN1=17AND(NL(17)=CPORNL(17)=-1)THENPRINT"It says '10-20-34'":RETURN 1380 IFN1=6AND(NL(6)=CPORNL(6)=-1)THENPRINT"It reads 'Last Will and Tes...'":RETURN 1390 IFN1=38ANDCP=16THENPRINT"It says 'See the Master Bedroom! Leave coins here'":RETURN 1400 PRINT"It doesn't say anything.":RETURN 1410 IFN1<0THENPRINT"What?":RETURN 1420 IFN1=41ORN1=42THEN1460 1430 IFNL(11)<>-1THENPRINT"With what?":RETURN 1440 PRINT"I refuse to vandalize.":RETURN 1450 IFN1<0THENPRINT"What?":RETURN 1460 IFN1=41ANDCP=8THENPRINT"It does no good...I pass right through!":RETURN 1470 IFN1=42ANDCP=24THENPRINT"No way! That thing is MEAN!":RETURN 1480 PRINT"Oh, don't be silly.":RETURN 1490 IFN1=39ANDCP=10ANDNL(39)=10THENPRINT"It opend a secret panel...":MO(10,1)=14:RETURN 1500 IFN1<0ORN1>46THENPRINT"Press what?":RETURN 1505 IFNL(N1)<>CPANDNL(N1)<>-1THENPRINT"I don't see that here.":RETURN 1510 GOTO1460 1520 IFNO=58ANDCP=8ANDMO(8,1)=-1THENPRINT"The ghost runs away scared!":MO(8,1)=13:NL(41)=-3:RETURN 1530 PRINT"It is said.":RETURN 1540 IFN1<0THENPRINT"Open what?":RETURN 1550 IFN1<>20THEN1590 1560 IFCP=1ORCP=4THENMO(1,1)=4:MO(4,0)=1:RETURN 1570 IFCP=3ORCP=2THENIFU1=0THENPRINT"It's locked.":RETURNELSEMO(2,3)=3:MO(3,2)=2:RETURN 1580 PRINT"There's no door here.":RETURN 1590 IFN1=30ANDCP=11THENIFU2=1THENMO(11,5)=23:RETURNELSEPRINT"It's locked.":RETURN 1600 IFN1=37ANDCP=23THENPRINT"It won't open.":RETURN 1610 IFN1=14AND(NL(14)=CPORNL(14)=-1)ANDNL(15)=-2THENIFNL(12)=-1THENPRINT"It contains many gold coins!":NL(15)=NL(14):RETURNELSEPRINT"It is tightly closed.":RETURN 1615 IFN1=14AND(NL(14)=CPORNL(14)=-1)THEN2050 1620 IFN1=33ANDCP=19ANDNL(13)=-2THENPRINT"There's something there.":NL(13)=CP:RETURN 1630 IFNL(N1)<>CPANDNL(N1)=-1THENPRINT"That's not here.":RETURN 1635 IFN1=28ANDCP=10ANDNL(11)=-1THENPRINT"It opens with a screech...There's a":PRINT"letter!":NL(6)=CP:RETURN 1637 IFN1=33THENRETURN 1640 PRINT"You can't open that!":RETURN 1650 IFN1<0ORN1>42THENPRINT"Close what":RETURN 1660 IFN1<>20THEN1700 1670 IFCP=1ORCP=4THENMO(1,1)=-1:MO(4,0)=-1:RETURN 1680 IFCP=2ORCP=3THENMO(2,3)=-1:MO(3,2)=-1:RETURN 1690 PRINT"There's no door here.":RETURN 1700 IFN1=30ANDCP=11THENMO(11,5)=-1:RETURN 1710 IFNL(N1)<>CPANDNL(N1)<>-2THENPRINT"I don't see it here.":RETURN 1720 PRINT"It won't close.":RETURN 1730 IFN1<>20ANDN1<>30THENPRINT"How can I do that?":RETURN 1740 IFN1<>20THEN1770 1750 IFCP<>2ANDCP<>3THENPRINT"It doesn't lock!":RETURN 1755 IFNL(1)<>-1THENPRINT"You don't have the key!":RETURN 1760 U1=0:MO(3,2)=-1:MO(2,3)=-1:RETURN 1770 U2=0:MO(11,5)=-1:RETURN 1780 IFN1<>20ANDN1<>30THENPRINT"That's impossible!":RETURN 1790 IFN1<>20THEN1830 1800 IFCP<>2ANDCP<>3THENPRINT"It's already unlocked!":RETURN 1810 IFNL(1)<>-1THENPRINT"You don't have the key!":RETURN 1820 U1=1:RETURN 1830 IFNL(17)<>-1THENPRINT"You need the combination!":RETURN 1840 U2=1:RETURN 1850 IFN1<>8ANDN1<>16THENPRINT"You can't drink that!":RETURN 1860 IFN1=8THENPRINT"Tastes like water...":NL(8)=-3:RETURN 1870 PRINT"Mmm...good wine!":DR=-3:RETURN 1880 IFM<>19THENPRINT"You can't eat that!":RETURN 1890 IFNL(19)<>-2THENPRINT"I'm not carrying it!":RETURN 1895 PRINT"Ugh! Alligator food tastes terrible!":NL(19)=-3:NI=NI-1:RETURN 1900 IFCP=20THENPRINT"I feel something under the mattress..." 1910 RETURN 1920 IFNL(3)<>-1THENPRINT"You don't have anything to light with.":RETURN 1925 IFN1=7AND(NL(7)=CPORNL(7)=-1)THENPRINT"Try using a fuse.":RETURN 1930 IFN1=2AND(NL(2)=CPORNL(2)=-1)THENLN=1:RETURN 1940 IFN1<>13THEN1970