10 ON ERROR GOTO 9999:SCREEN 1,0:COLOR 8:KEY OFF:CLS:GOSUB 5400 16 DIM AR$(8),DT(5,0),CH$(59),X(11),Y(11),MAP(10,10),TR(15),TR$(15),LO(8),PC$(16) 18 FOR L=1 TO 59:READ CH$(L):NEXT:FOR L=0 TO 15:READ PC$(L):NEXT:FOR L=0 TO 15:READ TR$(L):NEXT:FOR L=1 TO 8:READ AR$(L):NEXT 20 IY=152:IX=58:FOR L=0 TO 10:X(L)=IX:Y(L)=IY:IX=IX+14:IY=IY-14:NEXT 24 IX=0:FOR L=224 TO 272 STEP 24:PX(IX)=L:PX(IX+3)=L:IX=IX+1:NEXT:FOR L=0 TO 2:PY(L)=92:PY(L+3)=112:NEXT 25 LINE (0,0)-(4,4),3,BF 26 GET (0,0)-(4,4),DT 27 CLS 30 SA$="the same":SM$="smaller":BI$="bigger":C$="Type number pair X,Y " 34 PIC$="TREASURE.PAC":GOSUB 10000:GOSUB 410:GOSUB 302:GOSUB 440:GOSUB 300:GOSUB 5030 40 LOCATE 23,2:PRINT"Would you like instructions? (Y or N)"; 42 GOSUB 60:IF IN$<>"N" AND IN$<>"Y" AND IN$<>CHR$(27) THEN 42 44 CLS:IF IN$=CHR$(27) THEN GOSUB 800:GOTO 40 46 IF IN$="Y" THEN GOSUB 2000 52 CLS:GOTO 1000 60 GOSUB 5100:IN$=INKEY$ 61 RANDOMIZE TIMER 62 IF IN$="" THEN 60 ELSE GOSUB 5102:RETURN 100 J=16:IF A<5 THEN J=-16 102 FOR I=X(5) TO X(A) STEP J:PUT (I-2,Y(5)-2),DT,XOR:GOSUB 420:PUT (I-2,Y(5)-2),DT,XOR:NEXT:PUT (X(A)-2,Y(5)-2),DT,XOR:RETURN 104 J=16:IF B>5 THEN J=-16 106 PUT (X(A)-2,Y(5)-2),DT,XOR:FOR I=Y(5) TO Y(B) STEP J:PUT (X(A)-2,I-2),DT,XOR:GOSUB 420:PUT(X(A)-2,I-2),DT,XOR:NEXT 108 IF A=AX AND B=BY THEN FOR L=1 TO 12 STEP 2:CIRCLE (X(AX),Y(BY)),L,2:GOSUB 420:NEXT:WI=1:GOTO 190 110 IF A=AX AND BBY THEN R=5:X$=SA$:Y$=SM$ 112 IF B=BY AND AAX THEN R=7:X$=SM$:Y$=SA$ 114 IF AAX AND B>BY THEN R=6:X$=SM$:Y$=SM$ 116 IF ABY THEN R=4:X$=BI$:Y$=SM$ 117 IF A>AX AND B53 THEN 604 610 D$=IN$:B$=IN$:PRINT B$;:GOTO 620 612 D$=IN$:B$=IN$:PRINT B$; 614 GOSUB 810:IF FG2=1 THEN RETURN ELSE IF FLAG=1 OR IN$=CHR$(8) THEN 600 616 IF ASC(IN$)<48 OR ASC(IN$)>53 THEN 614 618 D$=D$+IN$:B$=IN$:PRINT B$; 620 A=VAL(D$)+5:B$=D$:GOSUB 100 622 GOSUB 810:CP=POS(1):LOCATE 25,1:PRINT STRING$(39,32);:LOCATE 24,CP:IF FG2=1 THEN RETURN ELSE IF FLAG=1 OR IN$=CHR$(8) THEN PUT(X(A)-2,Y(5)-2),DT,XOR:GOTO 600 626 IF IN$<>"," THEN CP=POS(1):LOCATE 25,2:PRINT "There must be a comma between X and Y!";::LOCATE 24,CP:GOTO 622 628 D$=D$+"," 630 B2$="" 632 B$=",":PRINT B$; 634 GOSUB 810:CP=POS(1):LOCATE 25,1:PRINT STRING$(39,32);:LOCATE 24,CP:IF FG2=1 THEN RETURN ELSE IF FLAG=1 OR IN$=CHR$(8) THEN PUT (X(A)-2,Y(5)-2),DT,XOR:GOTO 600 635 IF IN$="Y" THEN CP=POS(1):LOCATE 25,2:PRINT "Type a NUMBER for Y!";:LOCATE 24,1:PRINT STRING$(39,32);:LOCATE 24,2:PRINT C$;D$;:GOTO 634 636 IF IN$="+" OR IN$="-" THEN 642 638 IF ASC(IN$)<48 OR ASC(IN$)>53 THEN 634 640 B2$=IN$:B$=IN$:PRINT B$;:D$=D$+IN$:GOTO 650 642 D$=D$+IN$:B2$=IN$:B$=B2$:PRINT B$; 644 GOSUB 810:IF FLAG=1 OR IN$=CHR$(8) THEN PUT (X(A)-2,Y(5)-2),DT,XOR:GOTO 600 646 IF ASC(IN$)<48 OR ASC(IN$)>53 THEN 644 648 B2$=B2$+IN$:B$=IN$:PRINT B$;:D$=D$+IN$ 650 B=VAL(B2$)+5 660 REM 662 GOSUB 810:IF ASC(IN$)=8 OR FLAG=1 THEN PUT (X(A)-2,Y(5)-2),DT,XOR:GOTO 600 664 IF ASC(IN$)<>13 THEN 662 670 IF LEFT$(D$,1)="-" OR LEFT$(D$,1)="+" THEN PX=31 ELSE PX=32 672 LOCATE 5,30:PRINT" ";:LOCATE 5,PX:PRINT D$;:RETURN 800 GOSUB 5000:LOCATE 23,2:PRINT "DO YOU WANT TO STOP? (Y OR N)"; 802 GOSUB 60:IF IN$<>"N" AND IN$<>"Y" THEN 802 804 IF IN$="Y" THEN 1500 806 GOSUB 5000:RETURN 810 FLAG=0:GOSUB 60:IF IN$=CHR$(13) OR IN$=CHR$(8) THEN 816 812 IF IN$="?" THEN GOSUB 2000:FG2=1:RETURN 814 IF IN$=CHR$(27) THEN GOSUB 800:GOSUB 5000:FLAG=1:RETURN 816 RETURN 820 GOSUB 5110 822 GOSUB 5100:IN$=INKEY$:IF IN$="" THEN 822 824 IF IN$="?" THEN GOSUB 2000:SCREEN 1,0:CLS:FG1=1:RETURN 826 IF IN$=CHR$(27) THEN GOSUB 800:FG1=1:RETURN 828 IF IN$<>CHR$(13) THEN 820 ELSE RETURN 904 LINE (0,0)-(213,170),0,BF:FOR L=0 TO 10:LINE (X(L),Y(0))-(X(L),Y(10)),3:LINE (X(0),Y(L))-(X(10),Y(L)),3:IF ZZ=0 AND SND=1 THEN SOUND 100*(L+1),1 905 NEXT:LINE (58,82)-(198,82),2:LINE (127,12)-(129,152),2,BF:RETURN 910 B$="-5":LOCATE 11,6:PRINT B$;:LOCATE 20,16:PRINT B$;:LOCATE 11,17:PRINT"0":LOCATE 1,16:PRINT"+5":LOCATE 11,26:PRINT"+5";:LOCATE 9,4:PRINT CHR$(24)CHR$(10)CHR$(10)" Y"CHR$(10)CHR$(10)" "CHR$(25):LOCATE 21,15:PRINT CHR$(27)" X "CHR$(26) 911 LOCATE 4,30:PRINT" ";:LOCATE 3,32:PRINT"X,Y"; 912 RETURN 1000 FOR I=0 TO 10:FOR L=0 TO 10:MAP(I,L)=0:NEXT L,I:L0=0:WI=0 1004 GOSUB 904:GOSUB 910:GOSUB 5000 1010 AX= INT(RND(1)*10):BY=INT(RND(1)*10) 1100 GOSUB 600:IF FG2=1 THEN FG2=0:GOTO 1000 ELSE GOSUB 104:IF WI=1 THEN 1200 1110 LOCATE 22,2:PRINT"Make X "+X$+" and Y "+Y$+". ":GOTO 1100 1200 LOCATE 22,2:PRINT STRING$(38,32);:LOCATE 22,2:PRINT "You found... ";:GOSUB 410 1210 K=INT(RND(1)*16):IF TR(K)=1 THEN 1210 1220 PX=PX(CT):PY=PY(CT):PC=3:PRINT TR$(K);"!":GOSUB 210 1224 FOR L=1 TO 250:NEXT 1226 TR(K)=1 1228 GOSUB 440 1230 CT=CT+1:CTT=CTT+1:IF CT<6 THEN 1300 1232 FOR I=1 TO 250:NEXT 1240 GOSUB 5000:LOCATE 22,2:PRINT "The boat is full!!";:GOSUB 430:GOSUB 300:LOCATE 24,2:PRINT "Press and Bumble will take";:LOCATE 25,2:PRINT "the treasures to shore.";:GOSUB 820 1250 IF FG1=1 THEN FG1=0:CLS:GOTO 1240 1260 PIC$="ROWING.PAC":GOSUB 10000:CT=0:ZZ=0 1280 GOSUB 450:GOTO 1310 1300 GOSUB 302 1305 IF CTT=16 THEN CTT=0:CT=0:GOSUB 3000 1310 GOSUB 304:GOSUB 5030:LOCATE 24,2:PRINT"Hunt again? (Y or N)"; 1312 IN$=INKEY$:IF IN$="" THEN 1312 1314 IF IN$="N" THEN 1500 1316 IF IN$="?" THEN GOSUB 2000:GOTO 1310 1317 IF IN$<>"Y" THEN 1312 1318 IF CT=0 THEN CLS 1320 GOTO 1000 1500 RUN "MENU" 2000 SCREEN 0,1:CLS:COLOR 13,0:LOCATE 1,1,0:PRINT STRING$(40,176);:FOR L=2 TO 22:LOCATE L,1:PRINT CHR$(176);:LOCATE L,40:PRINT CHR$(176);:NEXT:LOCATE 23,1:PRINT STRING$(40,176); 2002 INS$(1)="Please help Bumble hunt for":INS$(2)="undersea treasure!":INS$(3)="Bumble has a special underwater":INS$(4)="map that draws arrows as clues.":INS$(5)="To hunt, type a number pair" 2004 INS$(6)="such as "+CHR$(34)+"3,-5"+CHR$(34)+".":LL=0 2010 COLOR 15:LIEN=5:GOSUB 2100:LIEN=7:GOSUB 2100:LIEN=10:GOSUB 2100:LIEN=12:GOSUB 2100:LIEN=15:GOSUB 2100:LIEN=17:GOSUB 2100 2018 GOSUB 304 2020 LOCATE 22,10:PRINT "PRESS TO PLAY"; 2042 GOSUB 60:IF IN$<>CHR$(13) AND IN$<>CHR$(27) THEN 2042 2044 IF IN$=CHR$(27) THEN 2050 2046 CLS:SCREEN 1,0:COLOR 8:RETURN 2050 LOCATE 22,2:PRINT STRING$(38,32);:LOCATE 22,6:PRINT "DO YOU WANT TO STOP? (Y OR N)"; 2052 GOSUB 60:IF IN$<>"Y" AND IN$<>"N" THEN 2052 2054 IF IN$="N" THEN LOCATE 22,2:PRINT STRING$(38,32);:GOTO 2020 2055 GOTO 1500 2100 LL=LL+1:LENG=INT((40-(LEN(INS$(LL))))/2)+1:LOCATE LIEN,LENG:PRINT INS$(LL);:RETURN 3000 FOR I=0 TO 15:TR(I)=0:NEXT 3010 CLS 3020 FOR K=0 TO 7 3030 X1=K*34+25:DRAW "c3bm"+STR$(X1)+",80;xpc$(k);" 3035 K1=K+8:DRAW "c3bm"+STR$(X1)+",130;xpc$(k1);" 3040 NEXT K 3050 LOCATE 3,3:PRINT"You have found all 16 treasures.":PRINT :PRINT"That makes you a Master Treasure Hunter."; 3055 GOSUB 430 3070 FOR M=1 TO 6:COLOR M,1:GOSUB 302:NEXT M 3075 COLOR 8,1 3080 RETURN 5000 FOR L=22 TO 24:LOCATE L,1:PRINT STRING$(39,32);:NEXT:LOCATE 25,1:PRINT STRING$(39,32);:RETURN 5010 FOR L=23 TO 25:LOCATE L,1:PRINT STRING$(39,32);:NEXT:RETURN 5020 LOCATE 24,1:PRINT STRING$(39,32);:LOCATE 25,1:PRINT STRING$(39,32);:RETURN 5030 LINE (0,168)-(319,199),0,BF:RETURN 5100 DEF SEG=0:RAND=RND(0):POKE 1047,(PEEK(1047) OR 96) AND (223-(32*(PC<>&HFD))):DEF SEG:RETURN 5102 DEF SEG=0:POKE 1047,96+32*(PC=&HFD):DEF SEG:RETURN 5110 RETURN:DEF SEG=0:POKE 1050,PEEK(1052):DEF SEG:RETURN 5400 DEF SEG=0:SND=PEEK(1264):DEF SEG:DEF SEG=&HF000:IF PEEK(&HFFFE)=&HFD THEN PC=&HFD 5401 DEF SEG:RETURN 9000 DATA BR4,BR2D5BD3R1BR3BU8,,,BD8R5ND2R2E1U1H1L4H2U1E2R1NU1R5BR3,,,ND3R1BR3,,,,BD5R2NU2ND2R3BR3BU5,BD8ND2BU8BR4,BD5R5BR3BU5,BD8R1BU8BR3,,BD2D4F2R1E2U3H3BR6,BD2D1BD5R3NR1U8BR5,BD3E2R1F2D1G3L2D1R5BU8BR3,D1BD7R3E1U1H1U1E1U1H1U1BR5,D4R5ND4U4BR3 9001 DATA BD8R5U4L4U4R4BR3,D8R5U4NL3BU4BR3,BD8BR2U3E3U2NL5BR3,D8R5U4NL4U4NL4BR3,D4R5ND4U4NL4BR3,BD2NR1BD4D1R1BR3BU7,,BD4NF4R1E4BR3,,F4D1G3BR7BU8,R5D5L3BD3R1BR5BU8,,BD2D3ND3R4ND3U3H1U1BR5 9002 DATA D8R3E1U1H1U1E1U1H1U1BR5,D8R5BU8NL4BR3,D8R3E1U5H1U1BR5,D8NR5U3NR2U5R5BR3,D8R1U4NR1U4R4BR3,BD2D5R1F1R3E1U1H1U1BE2BU2NL5BR3,D8R1U3R3ND3U5BR4,ND8BR4,BD6F2R1E2U6BR3,D8BR4U2H1U1E1U3BR4,D8R5BU8BR3,ND8F4R1E4ND8BR3 9003 DATA ND8F7ND1U7BR3,D8R5U8NL4BR3,D4ND4R5U4NL4BR3,BD2D4F3E4ND4U2H3NL1BR6,D8BR5U1H2L1E3U2NL4BR3,D4BD4R5U4NL4BU4NL4BR3,R3ND8R2BR3,D8R5U8BR3,R1D7F1R1E1R1U7BR3,D6F2R1E1NU3R1F1R1E1R1U7BR3,D3BD3D3BR5U2H2U1E2U2BR3,D2F2ND4R1E2U2BR3,R5D2G5D1R5BR3BU8 9004 FOR L=0 TO 10:LINE (X(L),Y(0))-(X(L),Y(10)),3:LINE (X(0),Y(L))-(X(10),Y(L)),3:NEXT 9010 DATA BD5ND6BE1ND8BE1ND10BE1ND11R1ND11R1ND11F1ND10NE3R1ND10F1ND9R1U2ND12R1ND12R1ND11R1ND11F1ND9F1D6 9011 DATA BD5BR1D5F1R2D1G1F1R2E1R3E1U3E2U3H1L3U1L1U1L1U1L2G4 9012 DATA BR3R6NR1D1NR3D1NL5D1NR3D1NL5D1NR3D1NL5D1NR3D1NL5D1NR3D1NL5D1NR3D1NR1NL7U1R3U10 9013 DATA BD8ND6R1ND1R2ND6R3ND6R3ND6R2ND1R1ND6BU1BL3E2U3H2L6G2D3F2BU2BR1F1R2E1BU2R1U1L1BL4L1D1R1 9014 DATA BF3D8F2R1E1R1E1U8R2E2H1L1G2L2H1L1G2F2R1E1R2 9015 DATA BR7NR1G1NR3D1NR3F1NR1G1NR3D1NR5L2G1R1BR2R3BR2R1D1L1BL2L3BL2L1D1R1BR2R3BR2R1D1L1BL2L3BL2L1BD1BR3NR3D1NR3G1R1BR3R1F1L1BL5L1D1R1BR5R1D1L1BL5L1 9016 DATA BR6NR3G1NR5G1NR7D1NR7R2D1NR3D1NR3G1L1D1L1D1L1D4R1D1R1D1R1D1R5U1R1U1R1U1R1U4L1U1L1U1L1 9017 DATA BR2NR11F4D1G1NF7G3NF5G1D3F2R9E2U3H1NG5H3NG7H1U1E4 9018 DATA BR10R1F2G2L1H2E2BD4R1ND8L1D9L1D1L1D1L3U1L1U1L1U1L1U3R1ND3R1D1R1D1R1 9019 DATA BD3NF10D4NF6D4NE5F2R1E10D4NG6D4NH5G2D1R2NL13D1NL13BU9BL6L1 9020 DATA BR6R1F2G2D2R2D1L2D8R1E1R1E3U1BL13D1F3R1F1R1U8L2U1R2U2H2E2 9021 DATA BD15BR3NR7H1NR9H1NR11H1NR13BU1BR5NR3H1L1NR7H1NR6H1NR7U4E1ND6E1R2U1NR3D3NR2D1NL2D2R7D1G1U1E1U1NL4U1NL4U1NL4H1NL3H1NL2 9022 DATA D3BD9D3R1U3BU9U3BR1BD4D1BD5D1R1U1BU5U1BR1BD2D3R1U3BU6BR1D1BD3D7R1U7BU3U1BR1BD2D3BD5D3R1U3BU5U3R1D1BD3D3BD3D1R1U1BU3U3BU3U1BR1BD2ND7R1ND7BR1BD2ND3R1ND3 9023 DATA R13D1NL7D1NL13D1NL5G1NL11G1NL2G1NL7G1L1BL3L1NH3R1F1ND3R1D4R1NL3F1NL5F1NL7F1NL9 9024 DATA BR1D3ND12E1ND13E1ND14R1ND12R1ND12F1ND12F1D11F1NU5R1NU4R1NU3R1NU2R1NU2R1U1 9025 DATA BD15NR13U1NR13R2U1NR3E1NR3U1NR3U1NR3U1NR3U1NR3U1NR3U1NR3U1NR3U1NR3H1NR3U1R9D1L1ND9G1D8F1R1 9029 DATA a golden apple,a pearl necklace,an ivory comb,a friendly spaceman,a rusty can,a wooden monkey,a diamond ring,a Ming vase,a rusty hook,a golden crown,a ship's anchor,a magic orb,a golden angelfish,a silver goblet,an old boot,an old top hat 9030 DATA U8NF4NG4R1ND8NF4NG4,E8NL5ND5U1L1NL4ND6D1G7,R8NG4NH4D1NH4NL8NG4,F8NU5NL5D1L1NU6NL4U1H7,D8NE4NH4R1NH4NU8NE4,G8NU5NR5D1R1NR4NU6U1E7,L8NF4NE4D1NE4NF4R8,H8NR5ND5U1R1NR4ND6D1NF7 9999 RUN 10000 DUMMY$=STRING$(47,32):X=VARPTR(DUMMY$):UNPAC=256*PEEK(X+2)+PEEK(X+1):BLOAD"unpacker.bin",UNPAC 10010 DEF SEG=&HF000:DAK=INP(&H3DA):DAK=PEEK(&HFFFE):DEF SEG=&H40:IF DAK=&HFD THEN OUT &H3DA,&H10 ELSE OUT &H3D8,(PEEK(&H65) AND &HF7) 10011 OUT &H3C0,0:SCREEN 1,0:CLS:DEF SEG=&HB800:BLOAD PIC$,0:DEF SEG:CALL UNPAC 10012 DAL=INP(&H3DA):DEF SEG=&H40:IF DAK=&HFD THEN OUT &H3DA,0 ELSE OUT &H3D8,PEEK(&H65) 10014 OUT &H3C0,&H20:RETURN