10 BP=1:FI$="E:DOTACTTR.SAV" 20 LV=1:LD=0 30 CLS :RANDOMIZE 40 PRINT "DOT ACTION TREASURES" 50 PRINT " 46:MOVE 789:JUMP 5>1-9:DOTSEL 5>S:SAVE" 60 LOCATE 0,3:PRINT "0:BEEP[";RIGHT$ (STR$ (BP),1);"] 1-9:LEVEL[";RIGHT$ (STR$ (LV),1);"] ENT:START L:LOAD 70 IF INKEY$ <>"" THEN 70 80 Z=ASC (INKEY$ ):IF Z=0 THEN 80 90 IF Z>48 AND Z<58 THEN LV=Z-48 100 IF Z=13 THEN 140 110 IF Z=76 THEN 950 120 IF Z=48 THEN BP=BP+1:IF BP>1 THEN BP=0ELSE BEEP BP,10,200 130 GOTO 60 140 BEEP BP,10,200 150 IF LV=1 THEN TM=5:XM=43:DM=2:SC=5 160 IF LV=2 THEN TM=10:XM=55:DM=2:SC=4 170 IF LV=3 THEN TM=5:XM=55:DM=1:SC=4 180 IF LV=4 THEN TM=20:XM=73:DM=3:SC=3 190 IF LV=5 THEN TM=10:XM=73:DM=1:SC=3 200 IF LV=6 THEN TM=30:XM=73:DM=5:SC=3 210 IF LV=7 THEN TM=20:XM=110:DM=5:SC=2 220 IF LV=8 THEN TM=15:XM=110:DM=1:SC=2 230 IF LV=9 THEN TM=40:XM=110:DM=11:SC=2 240 YM=INT (32/SC):JM=SC*2+3 250 LOCATE 0,2:PRINT "LEVEL";LV;", SEARCH";TM;"TREASURES!" 260 PRINT " LET'S START YOUR ADVENTURE..." 270 DIM TR(TM):TR(TM)=-1 280 DIM MV(9):MV(1)=-1:MV(2)=0:MV(3)=1:MV(4)=-1:MV(5)=0:MV(6)=1:MV(7)=-1:MV(8)=0:MV(9)=1 290 DIM MY(9):MY(1)=1:MY(2)=1:MY(3)=1:MY(4)=0:MY(5)=0:MY(6)=0:MY(7)=-1:MY(8)=-1:MY(9)=-1 300 IF LD=1 THEN 980 310 FOR A=0 TO TM-1:TR(A)=RND XM-1 320 IF A>0 THEN FOR B=0 TO A-1:IF TR(A)=TR(B) THEN A=A-1:B=999:NEXT ELSE NEXT 330 NEXT 340 IF TM=1 THEN 380 350 FOR A=0 TO TM-2:FOR B=A+1 TO TM-1 360 IF TR(A)>TR(B) THEN C=TR(A):TR(A)=TR(B):TR(B)=C 370 NEXT :NEXT 380 IF A>=999 THEN 350 390 CLS 400 B=0:FOR X=0 TO XM-1:FOR A=0 TO DM-1 410 Y=RND (YM-1):IF POINT (X*SC,Y*SC)=1 THEN 410 420 GOSUB *PS 430 NEXT :IF TR(B)=X THEN TR(B)=TR(B)+Y*256:B=B+1 440 NEXT 450 X=INT (XM*SC*0.5):Y=0:DP=0 460 XB=XM*SC:LINE (XB,0)-(XB,31):XB=-1 470 LOCATE 37,0:PRINT CHR$ (128+7*DP) 480 GOSUB *TRP:JF=99 490 BEEP BP,7,700 500 Z=ASC (INKEY$ ) 510 IF Z=0 AND JF=0 THEN 500 520 IF Z<48 OR Z>57 THEN 550 ELSE IF Z=53 AND JF=0 THEN 600 530 IF Z>54 THEN IF JF=0 THEN JF=1 540 X=X+MV(Z-48):IF POINT (X,Y)<>0 OR POINT (X,Y-1)<>0 THEN X=XB 550 IF JF>0 THEN JF=JF+1 ELSE IF POINT (X,Y+1)<>1 THEN JF=100 ELSE 580 560 IF JF0 THEN Y=Y+1:JF=100 570 IF JF>JM+2 THEN Y=Y+1:IF POINT (X,Y)=1 THEN JF=0:Y=Y-1 ELSE IF Y>34 THEN 890 580 PSET (XB,YB),X:PSET (XB,YB-1),X:PSET (X,Y),X:PSET (X,Y-1),X:XB=X:YB=Y 590 GOTO 500 600 XC=X:YC=Y:X=INT (X/SC):Y=INT (Y/SC) 610 GOSUB *PX 620 BEEP BP,10,100 630 IF INKEY$ <>"" THEN 630 640 LINE (X*SC-1-SC,Y*SC-1-SC)-((X+2)*SC,(Y+2)*SC),X,B 650 LINE (X*SC-1-SC,Y*SC-1-SC)-((X+2)*SC,(Y+2)*SC),X,B 660 Z=ASC INKEY$ 670 IF Z=83 AND JF=0 THEN 1050 680 IF Z<48 OR Z>57 THEN 640 690 IF Z=53 THEN 780 700 Z=Z-48:XN=(X+MV(Z))*SC:YN=(Y+MY(Z))*SC:IF X+MV(Z)>=XM THEN 640 710 IF DP=1 THEN 730 720 IF POINT (XN,YN)=1 THEN GOSUB *PXX:DP=1:JF=99:BEEP BP,5,100:BEEP BP,3,120:GOTO 740 ELSE 640 730 IF POINT (XN,YN)=0 THEN GOSUB *PXX:DP=0:BEEP BP,3,110:BEEP BP,5,110:GOTO 780 ELSE 640 740 ZM=X+MV(Z)+(Y+MY(Z))*256:FOR A=0 TO TM-1:IF TR(A)=ZM THEN TR(A)=-1:A=999:NEXT ELSE NEXT 750 IF A<999 THEN 780 760 FOR B=0 TO 5:FOR A=0 TO 10:BEEP BP,10-A,50:NEXT :LINE (XC-6,YC-6)-(XC+6,YC+6),X,BF:NEXT 770 DP=0:TG=TG+1:GOSUB *TRP:IF TG=TM THEN 820 780 LOCATE 37,0:PRINT CHR$ (128+7*DP) 790 IF INKEY$ <>"" THEN 790 800 GOSUB *PX:X=XC:Y=YC 810 GOTO 580 820 LOCATE 0,0 830 PRINT "CONGRATULATIONS!! LEVEL";LV;"CLEAR!! 840 PRINT "YOU GOT ALL TREASURES!! 850 PRINT "THE GAME IS OVER." 860 FOR B=0 TO 5:FOR A=0 TO 10 STEP 2:BEEP BP,10-A,200:NEXT :NEXT 870 IF LV<9 THEN END 880 X=RND 238:Y=RND 30:FOR C=0 TO 1:FOR B=2 TO 7:BEEP BP,(7-B)*2,20:FOR A=1 TO 9:PSET (X+MV(A)*B,Y+MY(A)*B),X:NEXT :NEXT :NEXT :IF INKEY$ ="" THEN 880 ELSE END 890 LOCATE 0,0 900 PRINT "OH NO! YOU DIED!" 910 PRINT "" 920 PRINT "THE GAME IS OVER." 930 FOR A=0 TO 60:BEEP BP,A,20:NEXT 940 END 950 CLS :LD=1:OPEN FI$ FOR INPUT AS #1 960 INPUT #1,LV,TG,XB,YB,DP 970 GOTO 140 980 FOR A=0 TO TM-1:INPUT #1,TR(A):NEXT 990 X=0:Y=0:CLS :LOCATE 37,0:PRINT "LV";RIGHT$ (STR$ (LV),1) 1000 Z=ASC (INPUT $(1,#1))-33:FOR A=0 TO 6 1010 IF (Z AND 1)=1 THEN GOSUB *PS 1020 Z=Z/2:Y=Y+1:IF Y=YM THEN Y=0:X=X+1 1030 NEXT :IF X