5 POKE53281,11:POKE53280,11:PRINTCHR$(142):POKE52,56:POKE56,56:CLR 10 PRINT"[147]":DIM A%(26),F$(26),TL%(12),T1%(12),LC%(70),CM%(26) 15 POKE214,12:PRINT:POKE211,5:PRINT"SETTING UP ........PLEASE WAIT" 20 FORI=1TO26:READF$(I):NEXTI 50 POKE56334,PEEK(56334)AND254:POKE1,PEEK(1)AND251 51 FORI=0TO511:POKEI+14336,PEEK(I+53248):POKEI+15360,PEEK(I+54272):NEXT 52 POKE1,PEEK(1)OR4:POKE56334,PEEK(56334)OR1 55 FORI=1TO12:READZ:FORJ=ZTOZ+7:READK:POKEJ,K:NEXTJ,I 100 FORI=1TO26:READA%(I):NEXT:FORI=1TO8:READV(I):NEXT 110 FORI=1TO26:IFI=1THENCM%(I)=A%(I):GOTO150 120 CM%(I)=CM%(I-1)+A%(I) 150 NEXT:H=1024:C=54272:S=C:CH=28:FORI=1TO5:READB%(I),E%(I):NEXT 160 FORI=1TO12:READT1%(I):NEXT 165 DEFFNA(X)=INT(RND(1)*X)+1:DEFFNL(Q)=H+40*Y+X 167 DEFFND(ZZ)=ABS((ZZ=39)+(ZZ=-39)+(ZZ=41)+(ZZ=-41)) 170 FORI=1TO5:A=FNA(2):D%(I)=(A=1)-(A=2):NEXT 175 FORI=1TO5:TR(I)=(D%(I)=-1)*(-E%(I))-(D%(I)=1)*(B%(I)) 176 VR(I)=(TR(I)=E%(I))-(TR(I)=B%(I)):IFI>2THENVR(I)=VR(I)*40 177 TY=(VR(I)=1)*36+(VR(I)=-1)*37+(VR(I)=40)*39+(VR(I)=-40)*38:TY(I)=(-1)*TY 180 ED(I)=(TR(I)=B%(I))*(-E%(I))+(TR(I)=E%(I))*(-B%(I)):NEXT 185 PRINT"[147]":POKE214,8:PRINT:POKE211,13:PRINT"SELECT A LEVEL" 187 POKE214,10:PRINT:POKE211,16:PRINT"1) EASY" 189 POKE214,12:PRINT:POKE211,16:PRINT"2) HARD" 190 GETZ$:LV=VAL(Z$):RD=RND(1):IFZ$=""THEN190 191 IFLV<1ORLV>2THEN190 195 PRINT"[147]":POKE53272,(PEEK(53272)AND240)OR14 197 FORMC=STOS+24:POKEMC,0:NEXT:POKES+24,15:POKES+5,120:POKES+6,240:HF=S+1:LF=S 200 PRINT"[147]":GOSUB3005:FORI=1TO12:A=T1%(I):GOSUB3200:NEXT 210 P%=H+81:POKEP%,CH:POKEP%+C,7 220 M1=0:M2=0:M3=0:M4=0:XF%=0:CF%=0:GS=1400 300 GOSUB1000:IFEN=1THEN6000 310 IFXF%=0THENGOSUB2000 320 GOSUB400:IFEN=1THEN6000 330 GOSUB7000:GOSUB500:IFEN=1THEN6000 340 GOSUB1000:IFEN=1THEN6000 350 GOSUB5000:IFEN=1THEN6000 360 GOSUB500:IFEN=1THEN6000 390 GOTO300 400 FORT=1TO5:A=TR(T):TR(T)=TR(T)+VR(T) 410 IFTR(T)=ED(T)THENVR(T)=(-1)*VR(T):GOSUB700:GOTO440 420 IFPEEK(TR(T))>=36ANDPEEK(TR(T))<=39THENTR(T)=TR(T)-VR(T):GOTO450 430 IFPEEK(TR(T))=27ORPEEK(TR(T))=28THENEN=1:T=5:GOTO450 440 POKEA,32:POKETR(T),TY(T):POKETR(T)+C,15:GOSUB9810:IFN4=1THEN450 445 GOSUB500:IFEN=1THENT=5 450 NEXT:RETURN 500 JV=PEEK(56320):JV=15-(JVAND15):FR=PEEK(56320)AND16 505 IFFR=0ANDSH=0THENGOSUB9600 510 DY=(JV=1)+(JV=5)+(JV=9)-(JV=6)-(JV=10)-(JV=2) 520 DX=(JV=4)+(JV=5)+(JV=6)-(JV=9)-(JV=10)-(JV=8) 525 IF(DX=0ANDDY=0)ORGS=0THENRETURN 535 CH=28:IFDX<>0THENCH=28 540 IFDY<>0THENCH=27 550 ZZ=40*DY+DX:Z=P%+ZZ:PK=PEEK(Z) 555 IFFND(ZZ)=1AND(PK=32ORPK=160)THEN625 557 IFSH=1THEN800 560 CP=(PK=30)+(PK=32)*2+(PK=40)*3+(PK=41)*4+(PK=42)*5+(PK=160)*6+(PK=0)*7 570 ONABS(CP)GOTO600,620,8000,8000,9000,625,3300 580 IFPEEK(Z)>=129ANDPEEK(Z)<=154THEN4000 590 IFPEEK(Z)>=36ANDPEEK(Z)<=39THENEN=1:RETURN 600 IF(PEEK(Z+C)AND15)=5THEN620 605 GOTO625 620 GOSUB9820:POKEP%,32:POKEZ,CH:POKEZ+C,7:P%=Z 625 GS=GS-2:IFGS=<0THENGS=0:GOSUB9700 630 RETURN 700 TY=(VR(T)=1)*36+(VR(T)=-1)*37+(VR(T)=40)*39+(VR(T)=-40)*38:TY(T)=(-1)*TY 710 ED=(ED(T)=B%(T))*(-E%(T))+(ED(T)=E%(T))*(-B%(T)):ED(T)=ED 720 RETURN 800 IFPEEK(Z)=30AND(PEEK(Z+C)AND15)=5THEN620 810 IFPEEK(Z)<>32THEN625 820 GOTO620 1000 FORLL=1TO12:PK=PEEK(TL%(LL)+C)AND15 1005 IFPEEK(TL%(LL))=32THENPOKETL%(LL),30:POKETL%(LL)+C,PK 1010 POKETL%(LL)+C,PK:TL=(PK=2)*1+(PK=5)*2+(PK=7)*3 1012 GOSUB500:IFEN=1THENLL=12:GOTO1030 1015 GOSUB400:IFEN=1THENLL=12:GOTO1030 1020 GOSUB5000:IFEN=1THENLL=12:GOTO1030 1025 ONABS(TL)GOSUB1040,1050,1060 1030 NEXT:RETURN 1040 A=FNA(3):IFA=1THENPOKETL%(LL)+C,5:POKETL%(LL),30 1045 RETURN 1050 A=FNA(3):IFA=2THENPOKETL%(LL)+C,7:POKETL%(LL),30 1055 RETURN 1060 A=FNA(3):IFA=3THENPOKETL%(LL)+C,2:POKETL%(LL),30 1065 RETURN 1500 FORI=22TO23:FORJ=1TO37 1510 POKE214,I:PRINT:POKE211,J:PRINTCHR$(32);:NEXTJ,I:RETURN 2000 PX=FNA(26):XF%=PX+128 2005 GOSUB1500:POKE214,22:PRINT:POKE211,1 2010 PRINT"CABBY, GO TO THE ";F$(XF%-128);:PT=PX:CL=0:X=1:GOSUB5155 2020 GOSUB500:RETURN 3005 I=49152:IF PEEK(49154)=216THENSYS49160:GOTO3030 3010 READ A:IF A=256 THENSYS49160:GOTO3030 3020 POKE I,A:I=I+1:GOTO 3010 3030 POKE1064,40:POKE1065,41:POKE1066,40:POKE1067,41:FORI=1064TO1067:POKEI+C,1: 3040 NEXT:POKE1104+C,1:POKE1104,40:FORI=1105TO1107:POKEI,32:POKEI+40,32:NEXT 3050 POKE1144,40:POKE1144+C,1:FORI=1265TO1301:POKEI,32:NEXT 3055 FORI=1545TO1581:POKEI,32:NEXT 3060 FORI=1114TO1754STEP40:POKEI,32:POKEI+10,32:POKEI+20,32:NEXT 3065 FORI=1TO5 3067 X=FNA(38):Y=FNA(19):L=FNL(Q) 3070 IFPEEK(L)=32ORPEEK(L)<>160THEN3067 3075 POKEL,42:POKEL+C,7:NEXT 3080 K=0:FORI=1TO26:FORJ=1TOA%(I) 3090 X=FNA(40):Y=FNA(19):L=FNL(Q) 3100 IF PEEK(L)=32ORPEEK(L)<>160THEN3090 3110 IFPEEK(L+1)=160ANDPEEK(L-1)=160ANDPEEK(L+40)=160ANDPEEK(L-40)=160THEN3090 3120 K=K+1:LC%(K)=L:POKEL,I+128:NEXT:NEXT:RETURN 3200 IFPEEK(A)<>32THENGOSUB3220 3210 TL%(I)=A:POKEA,30:POKEA+C,5:RETURN 3220 FORJ=1TO8 3230 IFPEEK(A+V(J))=32THENA=A+V(J):K=8 3240 NEXT:RETURN 3300 IFXF%<>0THENRETURN 3310 POKEP%,32:POKEZ,CH:POKEZ+C,7:GOSUB2000 3320 POKEP%,CH:POKEP%+C,7:POKEZ,160:POKEZ+C,1:MN=1:RETURN 3330 M1=ABS(SP-Z)/10+1:POKEP%,32:POKEZ,CH:POKEZ+C,7:GOSUB9820 3340 M2=INT(FNA(100*M1)/10)/100 3350 GOSUB1500:POKE214,22:PRINT:POKE211,1 3360 PRINT"YOU COLLECT";M1;"PLUS TIP OF";M2; 3370 M3=M1+M2+M3:M1=0:M2=0:POKEP%,CH:POKEP%+C,7:POKEZ,XF%:POKEZ+C,1 3375 PT=PX:CL=1:X=1:GOSUB5155 3380 POKE214,23:PRINT:POKE211,1:PRINT"YOU HAVE";M3;:MN=0:XF%=0:CF%=0:RETURN 4000 IFMN=1THEN3330 4005 IFCF%<>0THEN4500 4010 IFPEEK(Z)<>XF%THEN630 4030 IFLV=2ANDZ<>DZTHEN630 4050 PC=FNA(26):CF%=PC+128 4200 SP=Z:POKEZ,CH:POKEZ+C,7:POKEP%,32:GOSUB9820 4210 IFLV=1THENPT=PC:CL=1:GOSUB5155 4260 GOSUB1500:POKE214,22:PRINT:POKE211,1 4265 PRINT"TAKE ME TO THE ";F$(CF%-128);:PT=PC:CL=0:X=2:GOSUB5155 4280 POKEP%,CH:POKEP%+C,7:GOSUB9820:POKEZ,XF%:POKEZ+C,1 4285 IFCF%=XF%THENPOKEZ+C,0 4290 IFLV=1ANDXF%<>CF%THENPT=PX:CL=1:GOSUB5155 4300 GOTO630 4500 IFPEEK(Z)<>CF%THEN630 4505 IFLV=2ANDZ<>DCTHEN630 4510 POKEZ,CH:POKEZ+C,7:POKEP%,32:GOSUB9820 4550 M1=ABS(SP-Z)/10+1 4560 M2=INT(FNA(100*M1)/10)/100 4570 GOSUB1500:POKE214,22:PRINT:POKE211,1 4573 PRINT"YOU COLLECT";M1;"PLUS TIP OF";M2; 4580 M3=M1+M2+M3:M1=0:M2=0 4600 POKE214,23:PRINT:POKE211,1:PRINT"YOU HAVE";M3; 4650 POKEP%,CH:POKEP%+C,7:GOSUB9820:POKEZ,CF%:POKEZ+C,1 4655 IFLV=1THENPT=PC:CL=1:GOSUB5155 4660 CF%=0:XF%=0:GOTO630 5000 MX=0:MY=0:GOTO5010 5005 MY=INT((P%-H)/40):MX=(P%-H)-40*MY:RETURN 5010 GOSUB5005:CT=ABS((MY=6)*1+(MY=13)*2):T=CT:IFCT>0THENGOSUB5050 5015 GOSUB5005:CT=ABS((MX=10)*3+(MX=20)*4+(MX=30)*5):T=CT:IFCT>0THENGOSUB5050 5020 RETURN 5050 IFP%>TR(CT)ANDVR(CT)>0THEN5080 5060 IFP%=36ANDPK<=39THENTR(CT)=MV-VR(CT):MV=DN:NEXT:GOSUB5150:RETURN 5115 IFPK=27ORPK=28THENMV=DN:NEXT:EN=1:RETURN 5120 POKEMV,TY(CT):POKEMV+C,15:SH=1 5125 GOSUB9810:GOSUB500:SH=0:POKEMV,32 5126 IFEN=1THENMV=DN 5130 NEXT:IFEN=1THENRETURN 5135 IFDN=ED(CT)THENTR(CT)=ED(CT)-VR(CT):POKEED(CT),TY(CT):RETURN 5140 TR(CT)=DN:POKETR(CT),TY(CT):RETURN 5150 POKETR(CT),TY(CT):GOSUB500:RETURN 5155 IFLV=2THENONXGOTO5160,5170 5156 FORLC=CM%(PT-1)+1TOCM%(PT) 5157 POKELC%(LC)+C,CL:NEXT:RETURN 5160 R=FNA(A%(PT)):DZ=LC%(CM%(PT-1)+R):POKEDZ+C,0:RETURN 5170 R=FNA(A%(PT)):DC=LC%(CM%(PT-1)+R):POKEDC+C,0:RETURN 6000 PRINT"[147]":EN=0:GOSUB9830:POKE53272,21 6050 POKE214,8:PRINT:POKE211,6:PRINT"YOUR CAB LOST TO THE TROLLEY" 6070 POKE214,10:PRINT:POKE211,15:PRINT"GAME OVER!" 6075 POKE214,12:PRINT:POKE211,8:PRINT"YOU MADE ";M4;"[146]DOLLARS" 6080 PRINT"PLAY AGAIN (Y/N)" 6085 GETZ$:RD=RND(1):IFZ$=""OR(Z$<>"Y"ANDZ$<>"N")THEN6085 6090 IFZ$="N"THENEND 6095 PRINT"[147]":RESTORE:GOTO165 7000 X=FNA(40):Y=FNA(19) 7010 IFPEEK(FNL(Q))<>160THEN7040 7030 POKEFNL(Q),0:POKEFNL(Q)+C,3 7040 RETURN 8000 M4=M4+M3:GOSUB9820 8010 GOSUB1500:POKE214,22:PRINT:POKE211,1:PRINT"SAFE IN DEPOT";M4 8020 M3=0:POKEP%,CH:POKEP%+C,7:POKEZ,40:POKEZ+C,1:FORDL=1TO500:NEXT 8025 IFM4>200THEN8300 8040 IFCF%<>0THEN8050 8041 IFXF%=0THEN630 8043 GOSUB1500:POKE214,22:PRINT:POKE211,1 8045 PRINT"CABBY, GO TO THE ";F$(XF%-128);:N4=1:GOSUB400:N4=0 8046 RETURN 8050 GOSUB1500:POKE214,22:PRINT:POKE211,1 8060 PRINT"TAKE ME TO THE ";F$(CF%-128);:N4=1:GOSUB400:N4=0 8070 RETURN 8300 PRINT"[147]":POKE214,8:PRINT:POKE211,9:PRINT"YOU HAVE SAVED ENOUGH" 8310 POKE214,10:PRINT:POKE211,11:PRINT"THE CAB IS YOURS" 8400 PRINT"YOU WIN":GOSUB9840 8450 POKE53272,21:GOTO6080 9000 POKEZ,CH:POKEZ+C,15:POKEP%,32:GS=1400 9100 POKE P%,CH:POKEP%+C,1:POKEZ,42:POKEZ+C,7 9150 RETURN 9600 GOSUB1500:POKE214,22:PRINT:POKE211,1 9605 PRINT" [146]E F [146]" 9610 A1=INT(GS/200):POKE214,23:PRINT:POKE211,A1+1:PRINT"[159]"CHR$(95); 9630 FORDL=1TO500:NEXT:IFCF%=0THEN9645 9635 GOSUB1500:POKE214,22:PRINT:POKE211,1 9640 PRINT"TAKE ME TO THE ";F$(CF%-128);:N4=1:GOSUB400:N4=0:RETURN 9645 IFXF%=0THENRETURN 9650 GOSUB1500:POKE214,22:PRINT:POKE211,1 9655 PRINT"CABBY, GO TO THE ";F$(XF%-128);:N4=1:GOSUB400:N4=0:RETURN 9700 GOSUB1500:POKE214,22:PRINT:POKE211,1 9750 PRINT"OUT OF GAS":N4=1:GOSUB400:N4=0:IFEN=1THENRETURN 9755 GOSUB1500:POKE214,22:PRINT:POKE211,1 9760 PRINT"BACK WITH 1/2 TANKFUL";:N4=1:GOSUB400:N4=0:IFEN=1THENRETURN 9765 GOSUB5000:IFEN=1THENRETURN 9770 GS=700:GOSUB1500:POKE214,22:PRINT:POKE211,1 9780 IFXF%<>0THENPRINT"CABBY, GO TO THE ";F$(XF%-128);:RETURN 9790 IFCF%<>0THENPRINT"TAKE ME TO THE ";F$(CF%-128);:RETURN 9800 RETURN 9810 POKES+4,17:POKEHF,40:POKELF,250:POKES+4,16:RETURN 9820 POKES+4,33:POKEHF,50:POKELF,100:POKES+4,32:RETURN 9830 POKES+4,33:FORI=200TO70STEP-5:POKEHF,I:POKELF,INT(I/2):NEXT:POKES+4,32 9835 POKES+24,0:RETURN 9840 POKES+4,17:POKEHF,40:POKELF,200:FORI=1TO10:FORJ=70TO200STEP5:POKEHF,J 9850 POKELF,90:NEXT:G=G+1:IFG<5THEN9840 9860 POKES+4,16:POKES+24,0:RETURN 9900 DATAAIRPORT,BANK,"CURLING RINK","DOCTOR'S OFFICE","EMPLOYMENT OFFICE" 9910 DATAFACTORY,"GROCERY STORE",HOSPITAL,INN 9915 DATA"JEWELRY STORE",KENNEL,LIBRARY,MOTEL 9920 DATA"NIGHT CLUB",OFFICE,"POST OFFICE",QUARRY,RESTAURANT,SCHOOL,THEATER 9930 DATA UNIVERSITY,"VET'S","WEATHER OFFICE","X-RAY OFFICE",YMCA,ZOO 10001 DATA 14552,24,255,255,24,24,255,255,24 10002 DATA 14560,0,102,126,255,255,126,102,0 10004 DATA 14576,0,8,42,42,42,8,4,4 10005 DATA 14584,8,28,62,28,28,28,28,28 10006 DATA 14336,60,60,25,127,124,124,24,60 10007 DATA 14624,64,32,15,255,131,253,253,108 10008 DATA 14632,2,4,8,255,193,191,191,54 10009 DATA 14640,30,24,23,23,64,87,151,30 10010 DATA 14648,30,151,87,64,23,23,24,30 10011 DATA 14656,0,255,170,255,136,136,136,136 10012 DATA 14664,0,255,171,255,143,143,141,141 10013 DATA 14672,15,25,41,47,47,47,31,15 10014 DATA 1,5,2,3,1,2,5,1,2,4,1,1,6,7,5,2,1,6,3,5,1,2,1,1,1,1 10015 DATA1,-1,40,-40,-39,39,-41,41 10016 DATA1265,1301,1545,1581,1114,1754,1124,1764,1134,1774 10260 DATA1151,1159,1169,1179,1429,1439,1449,1459,1669,1679,1689,1699 10270 DATA 1,0,216,255,255,255,40 10280 DATA 0,169,81,133,251,169,40 10290 DATA 133,253,169,4,133,252,133 10300 DATA 254,169,147,32,210,255,162 10310 DATA 0,160,0,169,160,145,253 10320 DATA 200,192,39,208,249,24,165 10330 DATA 253,105,40,133,253,144,2 10340 DATA 230,254,232,224,19,208,229 10350 DATA 160,0,169,4,145,251,169 10360 DATA 255,141,15,212,169,128,141 10370 DATA 18,212,173,27,212,41,3 10380 DATA 133,173,170,10,168,24,185 10390 DATA 0,192,101,251,133,170,185 10400 DATA 1,192,101,252,133,171,24 10410 DATA 185,0,192,101,170,133,253 10420 DATA 185,1,192,101,171,133,254 10430 DATA 160,0,177,253,201,160,208 10440 DATA 18,138,145,253,169,32,145 10450 DATA 170,165,253,133,251,165,254 10460 DATA 133,252,76,62,192,232,138 10470 DATA 41,3,197,173,208,189,177 10480 DATA 251,170,169,32,145,251,224 10490 DATA 4,240,26,138,10,168,162 10500 DATA 2,56,165,251,249,0,192 10510 DATA 133,251,165,252,249,1,192 10520 DATA 133,252,202,208,238,76,62 10530 DATA 192,169,1,160,0,153,0 10540 DATA 216,153,0,217,153,0,218 10550 DATA 153,0,219,200,208,241,96,256