1 WIDTH 255 5 CLEAR8000:DEFINTA-Z:D=1:CL$=CHR$(11) 'CODE FOR CLEAR SCREEN 7 CR$=CHR$(10)+CHR$(13) 'CODE FOR LINE FEED + RETURN 8 ONERRORGOTO7000 10 PRINTCL$:PRINTTAB(22)"Adventure":PRINTTAB(7)"Creative Computing Morristown, New Jersey":PRINT:PRINT"Copyright (c) 1978 By Scott Adams and Creative Computing":PRINT" CP/M Conversion By David Fox - Marin Computer Center" 11 PRINT:PRINT:INPUT"What's your name";SV$:PRINT:PRINT"Adventure number 1 is -ADVENTURE LAND-":PRINT"Adventure number 2 is -PIRATE ADVENTURE-":PRINT 15 INPUT"Which adventure number";FP$:IFFP$<>"1"ANDFP$<>"2"THEN15 ELSEOPEN"I",D,"B:ADVENT-"+FP$+".ASC":SV$=LEFT$(SV$,8)+".AD"+FP$ 78 X=Y=Z:K=R=V:N=LL=F:TP$=K$:W=IP=P:Z$="I've too much too carry. Try -TAKE INVENTORY-":GOSUB80:GOSUB5000:GOTO192 80 PRINTCL$SPC(11)"*** Welcome to Adventure Land. (#4.6) ***":PRINT:PRINT" Unless told differently you must find *TREASURES*":PRINT"and-return-them-to-their-proper-place!" 85 PRINT:PRINT"I'm your puppet. Give me English commands that consist of a" 90 PRINT"noun and a verb. ALWAYS USE UPPER CASE! Some examples...":PRINT:PRINT"To find out what you're carrying you might say: TAKE INVENTORY":PRINT"To go into a hole you might say: GO HOLE":PRINT"To save current game: SAVE GAME" 100 PRINT:PRINT"You will at times need special items to do things, but I'm":PRINT"sure you'll be a good adventurer and figure these things out.":RETURN 120 PRINT:LINEINPUT" Happy Adventuring... Press RETURN to start: ";K$:PRINTCL$:RETURN 192 R=AR:LX=LT:DF=0:SF=0:INPUT"Use old 'saved' game";K$:IFLEFT$(K$,1)<>"Y"THEN200 193 CLOSE:OPEN"I",D,SV$ 195 INPUT#D,SF,LX,DF,R:FORX=0TOIL:INPUT#D,IA(X):NEXT:IFD<>-1THENCLOSE 200 GOSUB1500:GOTO225 210 LINEINPUT"Tell me what to do: ";TP$:PRINT:GOSUB1000:IFFTHENPRINT"You use word(s) I don't know.":GOTO210 215 GOSUB2000:IFIA(9)=-1THENLX=LX-1:IFLX<0THENPRINT"Light has run out!":IA(9)=0ELSEIFLX<25THENPRINT"Light runs out in";LX;"turns!" 225 NV(0)=0:GOSUB2000:GOTO210 1000 K=0:NT$(0)="":NT$(1)="" 1010 X=INSTR(TP$," "):NT$(0)=LEFT$(TP$,LN+(LN=X)):IFX>1THENNT$(1)=MID$(TP$,X+1,LN) 1030 FORX=0TO1:NV(X)=0:IFNT$(X)=""THEN1070ELSEFORY=0TONL:K$=NV$(Y,X):IFLEFT$(K$,1)="*"THENK$=MID$(K$,2) 1035 IFX=1THENIFY<7THENK$=LEFT$(K$,LN) 1040 IFNT$(X)=K$THENNV(X)=YELSENEXTY:GOTO1070 1060 IFLEFT$(NV$(NV(X),X),1)="*"THENNV(X)=NV(X)-1:GOTO1060 1070 NEXTX:F=NV(0)<1ORLEN(NT$(1))>0ANDNV(1)<1:RETURN 1500 IFDFTHENIFIA(9)<>-1ANDIA(9)<>RTHENPRINT"I can't see, its too dark.":RETURN 1505 K=-1:IFLEFT$(RS$(R),1)="*"THENPRINTMID$(RS$(R),2);ELSEPRINT"I'm in a ";RS$(R); 1520 FORZ=0TOIL:IFKTHENIFIA(Z)=RTHENPRINT".":PRINT:PRINT"Visible items here:":PRINT:K=0 1524 GOTO1530 1525 TP$=IA$(Z):IFRIGHT$(TP$,1)="/"THENW=INSTR(TP$,"/"):IFW>LNTHENTP$=LEFT$(TP$,W-1) 1526 RETURN 1530 IFIA(Z)<>RTHEN1540ELSEGOSUB1525:IFPOS(0)+LEN(TP$)+3>62THENPRINT 1535 PRINTTP$". "; 1540 NEXT:PRINT 1550 K=-1:FORZ=0TO5:IFKTHENIFRM(R,Z)<>0THENPRINT:PRINT"Obvious exits: ";:K=0 1560 IFRM(R,Z)<>0THENPRINTNV$(Z+1,1);" "; 1570 NEXT:PRINT:PRINT:RETURN 2000 F2=-1:F=-1:F3=0:IFNV(0)=1ANDNV(1)<7THEN2210ELSEFORX=0TOCL:V=CA(X,0)/150:IFNV(0)=0THENIFV<>0THENRETURN 2005 IFNV(0)<>VTHENNEXTX:GOTO2901ELSEN=CA(X,0)-V*150 2010 IFNV(0)=0THENF=0:IFINT(100*RND(1)+1)<=NTHEN2030ELSENEXTX:GOTO2901 2020 IFN<>NV(1)ANDN<>0THENNEXTX:GOTO2901 2030 F2=-1:F=0:F3=-1:FORY=1TO5:W=CA(X,Y):LL=W/20:K=W-LL*20:F1=-1:ONK+1GOTO2140,2050,2060,2070,2080,2090,2100,2110,2120,2130,2035,2045,2055,2065,2075 2035 F1=-1:FORZ=0TOIL:IFIA(Z)=-1THEN2140ELSENEXT:F1=0:GOTO2140 2045 F1=0:FORZ=0TOIL:IFIA(Z)=-1THEN2140ELSENEXT:F1=-1:GOTO2140 2050 F1=IA(LL)=-1:GOTO2140 2055 F1=IA(LL)<>-1ANDIA(LL)<>R:GOTO2140 2060 F1=IA(LL)=R:GOTO2140 2065 F1=IA(LL)<>0:GOTO2140 2070 F1=IA(LL)=RORIA(LL)=-1:GOTO2140 2075 F1=IA(LL)=0:GOTO2140 2080 F1=R=LL:GOTO2140 2090 F1=IA(LL)<>R:GOTO2140 2100 F1=IA(LL)<>-1:GOTO2140 2110 F1=R<>LL:GOTO2140 2120 F1=SFANDCINT(2^LL+.5):F1=F1<>0:GOTO2140 2130 F1=SFANDCINT(2^LL+.5):F1=F1=0:GOTO2140 2140 F2=F2ANDF1:IFF2THENNEXTYELSENEXTX:GOTO2901 2150 IP=0:FORY=1TO4:K=(Y-1)/2+6:ONYGOTO2160,2170,2160,2170 2160 AC=CA(X,K)/150:GOTO2200 2170 AC=CA(X,K)-CINT(CA(X,K)/150)*150 2200 IFAC>101THEN2205ELSEIFAC=0THEN2600ELSEIFAC<52THENPRINTMS$(AC):GOTO2600:ELSEONAC-51GOTO2230,2260,2270,2280,2290,2300,2310,2280,2320,2340,2350,2360,2370,2380,2400,2420,2430,2440,2450,2261,2275 2205 PRINTMS$(AC-50):GOTO2600 2210 L=DF:IFLTHENL=DFANDIA(9)<>RANDIA(9)<>-1:IFLTHENPRINT"It's dangerous to move in the dark!" 2215 IFNV(1)<1THENPRINT"Give me a direction too.":GOTO2930 2220 K=RM(R,NV(1)-1):IFK<1THENIFLTHENPRINT"I fell down and broke my neck.":K=RL:DF=0:ELSEPRINT"I can't go in that direction.":GOTO2930 2222 IFNOTLTHENPRINTCL$; 2225 R=K:GOSUB1500:GOTO2930 2230 L=0:FORZ=1TOIL:IFIA(Z)=-1THENL=L+1 2235 NEXTZ 2240 IFL>=MXTHENPRINTZ$:GOTO2610 2250 GOSUB4000:IA(P)=-1:GOTO2600 2260 GOSUB4000:IA(P)=R:GOTO2600 2261 PRINT"SAVING GAME":RESET:OPEN"O",D,SV$ 2265 PRINT#D,SF,LX,DF,R:FORW=0TOIL:PRINT#D,IA(W):NEXT:CLOSE 2266 GOTO2600 2270 GOSUB4000:R=P:GOTO2600 2275 GOSUB4000:L=P:GOSUB4000:SWAPIA(P),IA(L):GOTO2600 2280 GOSUB4000:IA(P)=0:GOTO2600 2290 DF=-1:GOTO2600 2300 DF=0:GOTO2600 2310 GOSUB4000 2315 SF=SF ORCINT(.5+2^P):GOTO2600 2320 GOSUB4000 2325 SF=SFANDNOTCINT(.5+2^P):GOTO2600 2340 PRINT"I'm dead...":R=RL:DF=0:GOTO2370 2350 GOSUB4000:L=P:GOSUB4000:IA(L)=P:GOTO2600 2360 PRINT"The game is now over.":INPUT"Another game";K$:IFLEFT$(K$,1)="N"THENPRINTCL$:PRINT:PRINT"Thank you for taking this ADVENTURE with me! Bye for now.":PRINT:ENDELSEFORX=0TOIL:IA(X)=I2(X):NEXT:GOTO192 2370 GOSUB1500:GOTO2600 2380 L=0:FORZ=1TOIL:IFIA(Z)=TRTHENIFLEFT$(IA$(Z),1)="*"THENL=L+1 2390 NEXTZ:PRINT"I've stored";L;"treasures.":PRINT"On a scale of 0 to 100 that rates a";CINT(L/TT*100):IFL=TTTHENPRINT"VERY WELL DONE!!!":GOTO2360ELSE2600 2400 PRINT"I'm carrying:":K$="NOTHING":FORZ=0TOIL:IFIA(Z)<>-1THEN2410ELSEGOSUB1525:IFLEN(TP$)+POS(0)>62THENPRINT 2405 PRINTTP$". ";:K$="" 2410 NEXT:PRINTK$:GOTO2600 2420 P=0:GOTO2315 2430 P=0:GOTO2325 2440 LX=LT:IA(9)=-1:GOTO2600 2450 PRINTCL$;:GOTO2600 2600 NEXTY 2610 IFNV(0)<>0THEN2901 2900 NEXTX 2901 ' 2905 IFNV(0)=0THEN2930 2907 GOSUB4200 2908 IFFTHENPRINT"I don't understand your command.":GOTO2930 2910 IFNOTF2THENPRINT"I can't do that yet.":GOTO2930 2930 RETURN 4000 IP=IP+1:W=CA(X,IP):P=W/20:M=W-P*20:IFM<>0THEN4000ELSERETURN 4200 IFNV(0)<>10ANDNV(0)<>18ORF3THEN4290 4205 IFNV(1)=0THENPRINT"WHAT?":GOTO4280 4206 IFNV(0)<>10THEN4210 4207 L=0:FORZ=0TOIL:IFIA(Z)=-1THENL=L+1 4208 NEXT:IFL>=MXTHENPRINTZ$:GOTO4280 4210 K=0:FORX=0TOIL:Y=INSTR(IA$(X),"/"):IFY=0THEN4285 4220 TP$=LEFT$(IA$(X),LEN(IA$(X))-1):TP$=MID$(TP$,Y+1,LN) 4230 IFTP$<>NV$(NV(1),1)THEN4285 4240 IFNV(0)=10THEN4270 4250 IFIA(X)<>-1THENK=1:GOTO4285ELSEIA(X)=R:K=3:GOTO4275 4270 IFIA(X)<>RTHENK=2:GOTO4285ELSEIA(X)=-1:K=3 4275 PRINT"OK, "; 4280 F=0:RETURN 4285 NEXTX 4286 IFK=1THENPRINT"I'm not carrying it."ELSEIFK=2THENPRINT"I don't see it here." 4287 IFK=0THENIFNOTF3THENPRINT"Its beyond my power to do that.":F=0 4288 IFK<>0THENF=0 4290 RETURN 5000 PRINT:PRINT"One moment please..."; 5010 INPUT#D,IL,CL,NL,RL,MX,AR,TT,LN,LT,ML,TR 5020 DIMNV(1),CA(CL,7),NV$(NL,1),IA$(IL),IA(IL),RS$(RL),RM(RL,5),MS$(ML),NT$(1),I2(IL) 5030 FORX=0TOCL STEP2:Y=X+1:INPUT#D,CA(X,0),CA(X,1),CA(X,2),CA(X,3),CA(X,4),CA(X,5),CA(X,6),CA(X,7),CA(Y,0),CA(Y,1),CA(Y,2),CA(Y,3),CA(Y,4),CA(Y,5),CA(Y,6),CA(Y,7):NEXT 5040 FORX=0TONLSTEP10:FORY=0TO1:INPUT#D,NV$(X,Y),NV$(X+1,Y),NV$(X+2,Y),NV$(X+3,Y),NV$(X+4,Y),NV$(X+5,Y),NV$(X+6,Y),NV$(X+7,Y),NV$(X+8,Y),NV$(X+9,Y):NEXTY,X 5060 FORX=0TORL:INPUT#D,RM(X,0),RM(X,1),RM(X,2),RM(X,3),RM(X,4),RM(X,5),CK$:GOSUB6100:RS$(X)=CK$:NEXT 5070 FORX=0TOML:INPUT#D,CK$:GOSUB6100:MS$(X)=CK$:NEXT 5080 FORX=0TOIL:INPUT#D,CK$,IA(X):GOSUB6100:IA$(X)=CK$:I2(X)=IA(X):NEXT 6000 CLOSE:LINEINPUT"Happy Adventuring. Press RETURN to start: ";K$:PRINTCL$:RETURN 6100 CK=INSTR(CK$,"\"):IFCK=0THENRETURN 6110 CK$=LEFT$(CK$,CK-1)+CR$+MID$(CK$,CK+1):GOTO6100 7000 IFERR=53ANDERL=193THENPRINT:PRINT"I can't find a file saved under your name for ADVENTURE #"FP$:PRINT:ELSEPRINT"There was an error in line"ERL:END 7010 CLOSE:RESUME11 find a file saved under your name for ADVEN