Listing of file='PAC-MAN2' on disk='vmedia/more_games.wvd.zip'
# Sector 1017, program filename = 'PAC-MAN2' 0010 REM %"PAC-MAN" - Steve McGarry - 23 OCT 81 - 1.0.0 0020 DIM A$80,K$1,K1$1,A$(23)79,D$(2,23)79,T(4),X1(4),Y1(4),X0(4),Y0(4),S(4),G $(4)3,B$(6)3,S0(2),P(2),S1(2),B0(2),D(2),D0(2),M(2) : G$()=HEX(E8FFD4E89BD4C09BC0E8FFD4) : B$()=HEX(8181819191919292929393939B9B9B9A9A9A) 0025 DIM N$(5)24,S9(5) 0030 PRINT HEX(0202020F0306);" Player 1 = "; : PRINTUSING "######",S0(1) : PRINT AT(0,61);"Player 2 = "; : PRINTUSING "######",S0(2) : PRINT : PRINT TAB(11);HEX(FCFCFCFCFCF0C0C0C0C0FCC0C0C0C0C0C0F0FCFCFCFCFCFCF0C0C0C 0C0C0C0C0C0C0C0F4C0C0C0C0C0F8C0C0C0C0FCC0C0C0C0D4C0C0C0FCFCFC) 0040 PRINT TAB(11);HEX(FFFFFFFFFFFFF5C0C0EAFFD5C0C0C0F8FEFFFFFFFFFFFFFFFFFDF4C 0C0C0C0C0C0C0C0FFFDD0C0E0FEFFC0C0C0EAFFD5C0C0C0FFD0C0C0FFFFFF) 0050 PRINT TAB(11);HEX(FFFFFFFCFFFFDFC0C0FFFFFFC0C0FAFFFFFFFFFFFFFFFFFFCFC7C3C 0E0F0F0F0F0D0C0FFFFFFFCFFFFFFC0C0C0FFFFFFC0C0C0FFFDC0C0FFFFFF) 0060 PRINT TAB(11);HEX(FFFFFFFFFFCFC1C0EAFFFFFFD5C0FFFFFFFFFFFFFFF7D1C0C0C0C0C 0EAFFFFFFFFD5C0FFFFFFFFFFFFFFC0C0EAFFFFFFD5C0C0FFFFF5C0FFFFFF) 0070 PRINT TAB(11);HEX(FFFFFFC0C0C0C0C0FFFFFCFFFFC0EBFFFFFFFFFFFFFFFFFFFCF4F0C 0C2C3C3C3C3C1C0FFFFFFFFFFFFFFC0C0FFFFFCFFFFC0C0FFFFFFD4FFFFFF) 0080 PRINT TAB(11);HEX(FFFFFFC0C0C0C0EAFFFFFFFFFFD5C0CBEFFFFFFFFFFFFFFFFFDFC7C 0C0C0C0C0C0C0C0FFFFFFFFFFFFFFC0EAFFFFFFFFFFD5C0FFFFFFFFFFFFFF) 0090 PRINT TAB(11);HEX(CFCFCFC0C0C0C0CFCFCFCFCFCFCFC0C0C0C3CFCFCFCFCFCFC3C0C0C 0C0C0C0C0C0C0C0CFCFCFCFCFCFCFC0CFCFCFCFCFCFCFC0CFCFCFCFCFCFCF) : PRINT : PRINT TAB(32);"by Steve McGarry" 0100 PRINT AT(16,34);HEX(0202020F0E900F);" = 10 Points";AT(18,34);HEX(02040400 0E8B0F);" = 50 Points";AT(22,24);"Select number of players (1 or 2)";HEX( 01) 0110 PRINT AT(13,20);HEX(020404000E8B020402000F) : S=-1 : FOR K=1TO 4 : Y1(K)=20+K*3 : NEXT K 0120 IF S=-1THEN FOR K=60TO 20STEP S : ELSE FOR K=20TO 70STEP S : PRINT AT(13,K);HEX(0E); : IF S=1THEN 130 : IF MOD(K,2)=0THEN PRINT HEX(EAFFD5); : ELSE PRINT HEX(E2FFD5); : GOTO 140 0130 IF MOD(K,2)=0THEN PRINT HEX(08C0EAFFD5); : ELSE PRINT HEX(08C0EAFFD1); 0140 FOR J=4TO 1STEP -1 : IF S=-1THEN PRINT HEX(E8FFD4); : IF S=-1THEN 150 : IF Y1(J)=0THEN 150 : IF MOD(K,2)<>0THEN 150 : Y1(J)=Y1(J)+1 : IF Y1(J)>KTHEN PRINT AT(13,Y1(J));HEX(0EE89BD4) : IF Y1(J)>KTHEN 150 : PRINT AT(13,K);HEX(0E); : PRINTUSING "###",J*200 : FOR L=1TO 15 : $BREAK255 : NEXT L : Y1(J)=0 0150 NEXT J : IF S=-1THEN PRINT TAB(79) : PRINT AT(13,K);HEX(0E); : IF S=1THEN 160 : IF MOD(K,2)=0THEN PRINT HEX(EAFFD5) : ELSE PRINT HEX(E2FFD5) : GOTO 170 0160 IF MOD(K,2)=0THEN PRINT HEX(C0EAFFD5) : ELSE PRINT HEX(C0EAFFD1) 0170 KEYIN K$,170,170 : IF K$<>"1"AND K$<>"2"THEN 180 : CONVERT K$TO P1 : GOTO 210 0180 $BREAK255 : $BREAK255 : $BREAK255 : NEXT K : IF S=1THEN 190 : S=1 : GOTO 120 0190 PRINT AT(13,0,80) : FOR K=1TO 100 : K$=" " 0200 KEYIN K$,200,200 : IF K$>" "THEN K=200 : $BREAK255 : NEXT K : IF K=200THEN 170 : GOTO 110 0210 RETURN CLEAR ALL : IF P1=1THEN P0=1 : ELSE P0=2 0220 FOR K=1TO P1 : P(K)=3 : NEXT K : MAT S0=ZER : MAT S1=ZER : B,B0=0 : B0(1),B0(2)=1 : F9=0 : MAT D0=ZER : MAT D=ZER : D$()=ALL(20) : MAT M=CON : RESTORE LINE1090 : MAT READ A$ 0230 IF P1=1THEN 240 : IF P0=2THEN P0=1 : ELSE P0=2 : IF P(P0)=0THEN 230 0240 IF F9=0THEN 250 : FOR K=1TO 7500 : NEXT K 0250 F9=1 : IF MOD(S1(P0),2)=0AND D0(P0)=D(P0)AND D(P0)>0THEN GOSUB 1170 : PRINT HEX(03060202020F020402000F); : PRINT HEX(03020402000F); : IF P0=1THEN PRINT HEX(0E); : PRINT " Player 1 = "; : PRINTUSING "######",S0(1) : IF P0=2THEN PRINT HEX(0E); : PRINT AT(0,61);"Player 2 = "; : PRINTUSING "######",S0(2) : FOR K=1TO MIN(10,P(P0)) : PRINT AT(0,(38-MIN(10,P(P0)))+K*2);HEX(0E8B) : NEXT K 0260 FOR K=1TO 23 : $GIO/005(A000)STR(A$(K),1) : IF K<23THEN PRINT : NEXT K : PRINT HEX(01) : PRINT AT(11,38);HEX(0ECCCCCC) : STR(D$(P0,11),39,3)=HEX(CCCCCC) : IF D(P0)>0AND D(P0)<>D0(P0)THEN 290 : S1(P0)=S1(P0)+1 : D(P0),D0(P0)=0 : RESTORE : FOR X=1TO 23 0270 READ Y : IF Y=0THEN 280 : STR(D$(P0,X),Y,1)=HEX(90) : D(P0)=D(P0)+1 : GOTO 270 0280 NEXT X : STR(D$(P0,4),3,1),STR(D$(P0,4),77,1),STR(D$(P0,16),3,1),STR(D$(P0,16),77, 1)=HEX(8B) : D(P0)=D(P0)+4 0290 STR(D$(P0,14),39,3)=" " : FOR X=1TO 23 : IF STR(D$(P0,X),1)=" "THEN 310 : FOR Y=1TO 79 : IF POS(STR(D$(P0,X),Y+1)>" ")=0THEN Y=80 : IF Y=80THEN 300 : Y=Y+POS(STR(D$(P0,X),Y+1)>" ") : IF STR(D$(P0,X),Y,1)=HEX(8B)THEN PRINT HEX(020404000E); : ELSE PRINT HEX(020402000E); : PRINT AT(X,Y-1);STR(D$(P0,X),Y,1);HEX(020402000F) 0300 NEXT Y 0310 NEXT X : X,X0=16 : Y,Y0=39 : D1=0 : D2=-1 : C=0 : K$,K1$=" " : IF B>0AND B0(P0)<6THEN B0(P0)=B0(P0)+.5 : B,B0=0 : X1(1),X0(1)=10 : Y1(1),Y0(1)=39 : S(1)=1 : FOR G=2TO 4 : X1(G),X0(G)=12 : S(G)=4 : NEXT G : Y1(2),Y0(2)=39 : Y1(3),Y0(3)=36 : Y1(4),Y0(4)=42 : G9=0 0320 KEYIN K$,320,320 : PRINT AT(X,Y-1);HEX(0EEAFFD5) : FOR K=1TO 4 : PRINT AT(X1(K),Y1(K)-1);HEX(0EE8FFD4) : NEXT K : PRINT AT(14,37);HEX(0E);"READY!";AT(10,35);"PLAYER #"; : IF P0=1THEN PRINT "1" : ELSE PRINT "2" : FOR K=1TO 5000 : NEXT K : PRINT AT(14,35,10);AT(10,35,10);AT(X1(1),Y1(1)-1);HEX(0E);G$(1) : GOTO 390 0330 IF F=0THEN F=1 : ELSE F=0 : IF D1<>-1THEN 340 : IF STR(A$(X),Y-1,1)=" "THEN 380 : GOTO 370 0340 IF D1<>1THEN 350 : IF STR(A$(X),Y+3,1)=" "THEN 380 : GOTO 370 0350 IF D2<>1THEN 360 : IF STR(A$(X+1),Y,3)=" "THEN 380 : GOTO 370 0360 IF D2<>-1THEN 370 : IF STR(A$(X-1),Y,3)=" "THEN 380 0370 D1,D2=0 : C=1 0380 X0=X : Y0=Y : X=X+D2 : Y=Y+D1 : IF Y=1THEN Y=76 : IF Y=77THEN Y=2 0390 S0=S0(P0) : IF POS(STR(D$(P0,X),Y,3)=HEX(90))>0THEN S0(P0)=S0(P0)+10 : IF POS(STR(D$(P0,X),Y,3)=HEX(8B))=0THEN 400 : S0(P0)=S0(P0)+50 : E=150-25*MIN(S1(P0),4) : FOR G=1TO 4 : IF S(G)=1THEN S(G)=2 : NEXT G : G0=0 : MAT X0=X1 : MAT Y0=Y1 0400 IF S0=S0(P0)THEN 420 : D0(P0)=D0(P0)+1 : STR(D$(P0,X),Y,3)=ALL(20) : IF INT(S0/5000)=INT(S0(P0)/5000)THEN 410 : P(P0)=P(P0)+1 : PRINT AT(0,28,25);HEX(07) : FOR K=1TO MIN(10,P(P0)) : PRINT AT(0,(38-MIN(10,P(P0)))+K*2);HEX(0E8B) : NEXT K 0410 IF S0(P0)>999999THEN 1210 : PRINT AT(0,12+(P0-1)*60);HEX(0E); : PRINTUSING "######",S0(P0) 0420 PRINT AT(X0,Y0-1,3);AT(X,Y-1);HEX(0E); : IF C=0THEN 430 : PRINT HEX(EAFFD5) : C=0 : GOTO 440 0430 IF D1=-1THEN PRINT HEX(E2FFD5) : IF D1=1THEN PRINT HEX(EAFFD1) : IF D2=-1THEN PRINT HEX(EAFCD5) : IF D2=1THEN PRINT HEX(EACFD5) : C=1 0440 IF D0(P0)=D(P0)THEN 240 : K$=" " : KEYIN K$,460,450 : GOTO 460 0450 $TRAN(K$,HEX(3846385632453255364C365C344D345D))R 0460 IF K$<>HEX(20)THEN K1$=K$ : K$=K1$ : IF K$<"1"THEN 520 : IF K$>"8"THEN 520 : CONVERT K$TO K : ON KGOTO ,470,,480,490,500,,510 : GOTO 520 0470 IF STR(A$(X+1),Y,3)<>" "THEN 520 : IF X=10AND Y=39THEN 520 : D2=1 : D1=0 : GOTO 520 0480 IF STR(A$(X),Y-1,1)<>" "THEN 520 : D1=-1 : D2=0 : GOTO 520 0490 D1,D2=0 : GOTO 520 0500 IF STR(A$(X),Y+3,1)<>" "THEN 520 : D1=1 : D2=0 : GOTO 520 0510 IF STR(A$(X-1),Y,3)<>" "THEN 520 : D1=0 : D2=-1 : GOTO 520 0520 IF B=0THEN 550 : IF X<>14THEN 550 : IF Y<>39THEN 550 0530 S0=S0(P0) : S0(P0)=S0(P0)+B*150 : SELECT P3 : PRINT AT(14,38);HEX(0E); : PRINTUSING "###",B*150 : SELECT P : B,B0=0 : STR(D$(P0,14),39,3)=" " : IF B0(P0)<6THEN B0(P0)=B0(P0)+.5 : IF INT(S0/5000)=INT(S0(P0)/5000)THEN 540 : P(P0)=P(P0)+1 : PRINT AT(0,28,25);HEX(07) : FOR K=1TO MIN(10,P(P0)) : PRINT AT(0,(38-MIN(10,P(P0)))+K*2);HEX(0E8B) : NEXT K 0540 IF S0(P0)>999999THEN 1210 : PRINT AT(0,12+(P0-1)*60);HEX(0E); : PRINTUSING "######",S0(P0) 0550 IF B>0THEN 560 : M(P0)=M(P0)+1 : IF M(P0)<300THEN 570 : M(P0)=1 : B=INT(B0(P0)) : STR(D$(P0,14),39,3)=B$(B) : PRINT AT(14,38);HEX(0E);B$(B) : GOTO 570 0560 B0=B0+1 : IF B0<150THEN 570 : B0=0 : B=0 : IF B0(P0)<6THEN B0(P0)=B0(P0)+.5 : PRINT AT(14,38,3) : STR(D$(P0,14),39,3)=" " 0570 IF E=0THEN 590 : E=E-1 : IF E>0THEN 590 : FOR G=1TO 4 : IF S(G)<>2THEN 580 : S(G)=1 : X0(G)=X1(G) : Y0(G)=Y1(G) 0580 NEXT G 0590 FOR G=1TO 4 : G9=G9+1 : IF G9>1000THEN G9=0 : IF S(G)<4THEN 600 : IF G9>(105-25*MIN(S1(P0),4))*(G-1)THEN S(G)=1 : ELSE GOTO 950 0600 MAT T=ZER : C0=0 : IF X1(G)<>XTHEN 610 : IF Y1(G)=YTHEN 990 0610 IF Y1(G)>=14AND Y1(G)<=67THEN 620 : IF X1(G)<>12THEN 620 : IF F<>0THEN 620 : IF S(G)<>3THEN 950 0620 IF S(G)<>2THEN 630 : IF F=0THEN 950 0630 IF S(G)<3THEN 640 : IF X1(G)<>12THEN 640 : IF Y1(G)<>39THEN 640 : S(G)=1 0640 IF X1(G)<>12THEN 650 : IF Y1(G)<36THEN 650 : IF Y1(G)>42THEN 650 : X0(G)=X1(G) : Y0(G)=Y1(G) : IF Y1(G)<39THEN Y1(G)=Y1(G)+1 : IF Y1(G)>39THEN Y1(G)=Y1(G)-1 : IF Y0(G)=39THEN X1(G)=11 : GOTO 950 0650 IF STR(A$(X1(G)-1),Y1(G),3)<>" "THEN 710 : IF X1(G)-1=X0(G)THEN 710 : IF S(G)<3THEN 670 : IF 12<X1(G)THEN 660 : T(1)=C0+1 : C0=C0+1 : GOTO 710 0660 T(1)=C0+50 : C0=C0+50 : GOTO 710 0670 IF X<X1(G)THEN 690 : IF S(G)=2THEN 700 0680 T(1)=C0+5 : C0=C0+5 : GOTO 710 0690 IF S(G)=2THEN 680 0700 T(1)=C0+25 : C0=C0+25 0710 IF STR(A$(X1(G)),Y1(G)+3,1)<>" "THEN 770 : IF Y1(G)+1=Y0(G)THEN 770 : IF S(G)<3THEN 730 : IF 39>Y1(G)THEN 720 : T(2)=C0+1 : C0=C0+1 : GOTO 770 0720 T(2)=C0+50 : C0=C0+50 : GOTO 770 0730 IF Y>Y1(G)THEN 750 : IF S(G)=2THEN 760 0740 T(2)=C0+5 : C0=C0+5 : GOTO 770 0750 IF S(G)=2THEN 740 0760 T(2)=C0+25 : C0=C0+25 0770 IF STR(A$(X1(G)+1),Y1(G),3)<>" "THEN 840 : IF X1(G)+1=X0(G)THEN 840 : IF S(G)<3THEN 790 : IF 12>X1(G)THEN 780 : T(3)=C0+1 : C0=C0+1 : GOTO 840 0780 T(3)=C0+50 : C0=C0+50 : GOTO 840 0790 IF X1(G)<>10THEN 800 : IF Y1(G)=39THEN 840 0800 IF X>X1(G)THEN 820 : IF S(G)=2THEN 830 0810 T(3)=C0+5 : C0=C0+5 : GOTO 840 0820 IF S(G)=2THEN 810 0830 T(3)=C0+25 : C0=C0+25 0840 IF STR(A$(X1(G)),Y1(G)-1,1)<>" "THEN 900 : IF Y1(G)-1=Y0(G)THEN 900 : IF S(G)<3THEN 860 : IF 39<Y1(G)THEN 850 : T(4)=C0+1 : C0=C0+1 : GOTO 900 0850 T(4)=C0+50 : C0=C0+50 : GOTO 900 0860 IF Y<Y1(G)THEN 880 : IF S(G)=2THEN 890 0870 T(4)=C0+5 : C0=C0+5 : GOTO 900 0880 IF S(G)=2THEN 870 0890 T(4)=C0+25 : C0=C0+25 0900 R=INT(RND(1)*C0) : X0(G)=X1(G) : Y0(G)=Y1(G) : IF R<T(1)THEN 910 : IF R<T(2)THEN 920 : IF R<T(3)THEN 930 : IF R<T(4)THEN 940 : STOP "- HOW THE HELL DID I END UP IN A DEAD END?!?!?!?!?!?" 0910 X1(G)=X1(G)-1 : GOTO 950 0920 Y1(G)=Y1(G)+1 : GOTO 950 0930 X1(G)=X1(G)+1 : GOTO 950 0940 Y1(G)=Y1(G)-1 : GOTO 950 0950 PRINT AT(X0(G),Y0(G)-1); : IF POS(STR(D$(P0,X0(G)),Y0(G),3)=HEX(8B))<>0THEN PRINT HEX(020404000E); : ELSE PRINT HEX(020402000E); : PRINT STR(D$(P0,X0(G)),Y0(G),3);HEX(020402000F) : IF Y1(G)<>1THEN 960 : Y1(G)=76 : Y0(G)=77 0960 IF Y1(G)<>77THEN 970 : Y1(G)=2 : Y0(G)=1 0970 PRINT AT(X1(G),Y1(G)-1); : IF S(G)<>2THEN 980 : IF E<1OR E>24THEN 980 : IF F<>0THEN 980 : PRINT HEX(020402020F); 0980 PRINT HEX(0E);G$(S(G));HEX(020402000F) 0990 IF X1(G)<>XOR Y1(G)<>YTHEN 1050 : IF S(G)=1THEN 1020 : IF S(G)=3THEN 610 : S0=S0(P0) : G0=G0+200 : S0(P0)=S0(P0)+G0 : SELECT P3 : PRINT AT(X1(G),Y1(G)-1);HEX(0E); : PRINTUSING "###",G0 : SELECT P : S(G)=3 : X0(G)=X1(G) : Y0(G)=Y1(G) 1000 IF INT(S0/5000)=INT(S0(P0)/5000)THEN 1010 : P(P0)=P(P0)+1 : PRINT AT(0,28,25);HEX(07) : FOR K=1TO MIN(10,P(P0)) : PRINT AT(0,(38-MIN(10,P(P0)))+K*2);HEX(0E8B) : NEXT K 1010 IF S0(P0)>999999THEN 1210 : PRINT AT(0,12+(P0-1)*60);HEX(0E); : PRINTUSING "######",S0(P0) : GOTO 1050 1020 FOR K=1TO 1000 : NEXT K : SELECT P1 : PRINT AT(X,Y-1);HEX(0EEAFCD5) : PRINT AT(X,Y-1);HEX(0EE8FCD4) : PRINT AT(X,Y-1);HEX(0EE0FCD0) : PRINT AT(X,Y-1);HEX(0EC0FCC0) : PRINT AT(X,Y-1);HEX(0EC0CCC0) : PRINT AT(X,Y-1);HEX(C0C0C007) : SELECT P : P(P0)=P(P0)-1 : IF P(P0)=0THEN 1030 : GOTO 230 1030 PRINT AT(0,39,3);HEX(0E);AT(14,35);"GAME OVER";AT(10,35);"PLAYER #"; : IF P0=1THEN PRINT "1" : ELSE PRINT "2" : FOR K=1TO 7500 : NEXT K 1040 KEYIN K$,1040,1040 : K$=" " : IF P(1)=0AND P(2)=0THEN 10 : F9=0 : GOTO 230 1050 NEXT G : GOTO 330 1060 DATA 0 : DATA 3,6,9,12,15,18,21,24,27,30,33,37,43,47,50,53,56,59,62,65,68,71,74,77 ,0 : DATA 3,15,37,43,65,77,0 : DATA 15,37,43,65,0 : DATA 3,15,37,43,65,77,0 : DATA 3,6,9,12,15,18,21,24,28,31,34,37,40,43,46,49,52,56,59,62,65,68,71,74 ,77,0 : DATA 3,15,28,52,65,77,0 1070 DATA 3,15,28,31,34,37,43,46,49,52,65,77,0 : DATA 3,15,65,77,37,43,0 : DATA 3,6,9,12,15,65,68,71,74,77,0 : DATA 15,65,0 : DATA 15,65,0 : DATA 15,65,0 : DATA 3,6,9,12,15,65,68,71,74,77,0 : DATA 3,15,65,77,0 : DATA 6,9,15,18,21,24,28,31,34,37,43,46,49,52,56,59,62,65,71,74,0 : DATA 9,15,28,52,65,71,0 1080 DATA 3,6,9,12,15,28,52,65,68,71,74,77,0 : DATA 3,28,52,77,0 : DATA 3,28,31,34,37,43,46,49,52,77,0 : DATA 3,37,43,77,0 : DATA 3,6,9,12,15,18,21,24,27,30,33,37,40,43,47,50,53,56,59,62,65,68,71,74 ,77,0 : DATA 0 1090 DATA "\E8\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\ CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\DC\CC\EC\CC\CC\CC\CC\CC\C C\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC \CC\CC\CC\CC\CC\CC\CC\D4" : DATA "\EA \D5 \EA \D5" : DATA "\EA \DC\CC\CC\CC\CC\CC\CC\CC\EC \DC\CC\CC\CC\CC\CC\CC\CC\CC\CC\ CC\CC\CC\CC\CC\CC\CC\CC\EC \D5 \EA \DC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\ CC\CC\CC\CC\CC\CC\CC\EC \DC\CC\CC\CC\CC\CC\CC\CC\EC \D5" 1100 DATA "\EA \D5 \EA \D5 \EA \D5 \EA \D5 \EA \D5 \EA \D5" : DATA "\EA \CD\CC\CC\CC\CC\CC\CC\CC\CE \CD\CC\CC\CC\CC\CC\CC\CC\CC\CC\ CC\CC\CC\CC\CC\CC\CC\CC\CE \CD\CC\CE \CD\CC\CC\CC\CC\CC\CC\CC\CC\CC\C C\CC\CC\CC\CC\CC\CC\CC\CE \CD\CC\CC\CC\CC\CC\CC\CC\CE \D5" : DATA "\EA \D5" 1110 DATA "\EA \DC\CC\CC\CC\CC\CC\CC\CC\EC \DC\CC\CC\CC\CC\CC\CC\CC\CC\EC \CC\CC\CC\CC\CC\CC\CC\CC\CC\DC\CC\EC\CC\CC\CC\CC\CC\CC\CC\CC\CC \DC\C C\CC\CC\CC\CC\CC\CC\CC\EC \DC\CC\CC\CC\CC\CC\CC\CC\EC \D5" : DATA "\EA \D5 \EA \D5 \EA \D5 \EA \D5 \EA \D5 \EA \D5" : DATA "\EA \CD\CC\CC\CC\CC\CC\CC\CC\CE \D5 \CA\CC\CC\CC\CC\EC\C C\CC\CC\CC \CD\CC\CE \CC\CC\CC\CC\DC\CC\CC\CC\CC\C5 \EA \CD\ CC\CC\CC\CC\CC\CC\CC\CE \D5" 1120 DATA "\EA \D5 \EA \D5 \EA \D5" : DATA "\CA\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC \CD\CC\CC\CC\CC\CC\CC\CC\ CC\CC\CC\CC\CC\CC\CE \DC\CC\CC\CC \CC\CC\CC\EC \CD\CC\CC\CC\CC\CC\C C\CC\CC\CC\CC\CC\CC\CC\CE \CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\C5" : DATA " \D5 \EA " 1130 DATA "\E8\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC \DC\CC\CC\CC\CC\CC\CC\CC\ CC\CC\CC\CC\CC\CC\EC \CD\CC\CC\CC\CC\CC\CC\CC\CC\CC\CE \DC\CC\CC\CC\C C\CC\CC\CC\CC\CC\CC\CC\CC\CC\EC \CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\D4 " : DATA "\EA \D5 \EA \D5 \EA \D5" : DATA "\EA \CC\CC\CC\CC\CC\CC\DC\CC\EC \CD\CC\CC\CC\CC\CC\CC\CC\CC\CC\ CC\CC\CC\CC\CE \CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC \CD\CC\CC\CC\CC\CC\C C\CC\CC\CC\CC\CC\CC\CC\CE \DC\CC\EC\CC\CC\CC\CC\CC\CC \D5" 1140 DATA "\EA \D5 \EA \D5 \EA \D5" : DATA "\EA\CC\CC\CC\CC\CC\CC \CD\CC\CE \DC\CC\CC\CC\CC\CC\CC\CC\CC\EC \DC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\EC \DC\C C\CC\CC\CC\CC\CC\CC\CC\EC \CD\CC\CE \CC\CC\CC\CC\CC\CC\D5" : DATA "\EA \D5 \EA \D5 \EA \D5 \EA \D5" 1150 DATA "\EA \DC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\C5 \EA \CD\CC\C C\CC\CC\CC\CC\CC\CC\D4 \E8\CC\CC\CC\CC\CC\CC\CC\CC\CE \D5 \CA\CC \CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\EC \D5" : DATA "\EA \D5 \EA \D5 \EA \D5 \EA \D5" : DATA "\EA \CD\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\ CC\CE\CC\CC\CC\CC\CC\CC\CC\CC\CC \CD\CC\CE \CC\CC\CC\CC\CC\CC\CC\CC\C C\CD\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CE \D5 " 1160 DATA "\EA \D5" : DATA "\CA\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\ CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\C C\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC\CC \CC\CC\CC\CC\CC\CC\CC\C5" 1170 PRINT HEX(03060202020F020402000E) : FOR K=68TO 1STEP -1 : PRINT AT(11,K); : IF MOD(K,2)=0THEN PRINT HEX(EAFFD5C0) : ELSE PRINT HEX(E2FFD5C0) : PRINT AT(11,K+4);HEX(E8FFD4C0) : $BREAK255 : $BREAK255 : NEXT K : PRINT AT(11,0,80) 1180 $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : FOR K=1TO 68 1190 PRINT AT(10,K); : IF MOD(K,2)=0THEN A$=HEX(C0FCFCFCFCFCFC0A08080808080808C0FFFFFFFFFFFF0A08 080808080808C0CFCFCFCFCFCF) : ELSE A$=HEX(C0FCFCFCFCFCFC0A08080808080808C0FFFFFFFFC0C00A08080808080808C 0CFCFCFCFCFCF) : $GIO/005(A000)A$ : PRINT AT(11,K+8);HEX(C0E89BD4) : $BREAK255 : $BREAK255 : NEXT K 1200 PRINT AT(10,0,240) : RETURN 1210 DIM W$(24)79 : GOTO 1240 1220 DEFFN'254(X,Y) : X=INT(X) : Y=INT(Y) : X1=INT(Y/3)+1 : Y1=INT(X/2)+1 : B0=MOD(Y,3)*2+MOD(X,2) : STR(W$(X1),Y1,1)=XOR BIN(2^B0) : PRINT AT(X1-1,Y1-1);STR(W$(X1),Y1,1); : RETURN 1230 DEFFN'255(X,Y) : X=INT(X) : Y=INT(Y) : X1=INT(Y/3)+1 : Y1=INT(X/2)+1 : B0=MOD(Y,3)*2+MOD(X,2) : STR(W$(X1),Y1,1)=OR BIN(2^B0) : PRINT AT(X1-1,Y1-1);STR(W$(X1),Y1,1); : RETURN 1240 PRINT HEX(03060202020F020402000E) : FOR F=1TO 10 : A=INT(RND(1)*117)+25 : B=INT(RND(1)*30)+15 : C=INT(RND(1)*10)+5 : W$()=ALL(C0) : FOR K=69TO BSTEP -2 : GOSUB '255(A,K) : GOSUB '254(A,K) : NEXT K : IF RND(1)>.5THEN GOTO 1260 : D=INT(RND(1)*2)+1 : FOR K=0TO CSTEP D : GOSUB '255(A,B-K) : GOSUB '255(A,B+K) : GOSUB '255(A-K,B) : GOSUB '255(A+K,B) : GOSUB '255(A-K,B-K) : GOSUB '255(A+K,B+K) 1250 GOSUB '255(A-K,B+K) : GOSUB '255(A+K,B-K) : NEXT K : GOSUB '254(A,B) : FOR K=0TO CSTEP D : GOSUB '254(A,B-K) : GOSUB '254(A,B+K) : GOSUB '254(A-K,B) : GOSUB '254(A+K,B) : GOSUB '254(A-K,B-K) : GOSUB '254(A+K,B+K) : GOSUB '254(A-K,B+K) : GOSUB '254(A+K,B-K) : NEXT K : GOTO 1270 1260 IF C>10THEN C=10 : RESTORE LINE1280 : FOR K=1TO C*6 : READ R1,R2 : GOSUB '255(A+R1,B+R2) : NEXT K : RESTORE LINE1280 : FOR K=1TO C*6 : READ R1,R2 : GOSUB '254(A+R1,B+R2) : NEXT K 1270 NEXT F 1280 DATA -1,-1,1,-1,0,0,0,-1,-1,1,1,1 : DATA -2,-1,2,-1,-1,-2,1,-2,-3,2,3,2 : DATA -4,-1,4,-1,-3,-3,3,-3,-4,2,4,2 : DATA -5,-2,5,-2,-5,-4,5,-4,-5,2,5,2 : DATA -7,-2,7,-2,-7,-5,7,-5,-6,3,6,3 : DATA -9,-2,9,-2,-8,-5,8,-5,-7,3,7,3 : DATA -11,-1,11,-1,-10,-5,10,-5,-8,4,8,4 1290 DATA -13,0,13,0,-12,-4,12,-4,-9,5,9,5 : DATA -15,1,15,1,-14,-3,14,-3,-9,6,9,6 : DATA -16,2,16,2,-16,-2,16,-2,-9,6,-9,6 1300 PRINT HEX(0F);AT(3,25);"C O N G R A T U L A T I O N S !" : PRINT : PRINT TAB(12);"You have scored ";HEX(020404000E);"1,000,000 POINTS";HEX(0 20402000F);" in this game of PAC-MAN." 1310 PRINT : PRINT TAB(8);"Since this is a great accomplishment, the author of this pr ogram" : PRINT TAB(6);"would appreciate it if you would contact him so that he may send you" : PRINT TAB(26);"a Certificate of Achievement!" : PRINT : PRINT TAB(30);"Please call or write:" : PRINT 1320 PRINT TAB(34);"Steve McGarry" : PRINT TAB(25);"Wang Laboratories, Incorporated" : PRINT TAB(31);"1 Industrial Avenue" : PRINT TAB(26);"Lowell, Massachusetts 01851" : PRINT TAB(30);"Phone: (617) 459-5000" : PRINT HEX(020402000E) 1330 FOR K=0TO 2 : PRINT AT(20,1); : FOR J=0TO 12 : PRINT TAB(J*6+(2-K)*2+2);HEX(CF); : NEXT J : PRINT TAB(80);HEX(01) : PRINT AT(0,0); : FOR J=0TO 12 : PRINT TAB(J*6+K*2);HEX(CF); : NEXT J : PRINT TAB(80) : FOR J=20TO 2STEP -3 : PRINT AT(J-K+1,0,1) : PRINT AT(J-K,0);HEX(CF) : NEXT J : FOR J=0TO 18STEP 3 : IF J+K>0THEN PRINT AT(J+K-1,78,1) : PRINT AT(J+K,78);HEX(CF) : NEXT J : NEXT K : GOTO 1330 1340 DEFFN'30"SELECTLIST215(132):LIST";HEX(22);"DE-COMPRESSED PROGRAM TEXT";HE X(22);"D:LIST";HEX(22);"LINE NUMBER CROSS-REFERENCE";HEX(22);"#:LIST";HEX (22);"VARIABLE CROSS-REFERENCE";HEX(22);"V:LIST";HEX(22);"DEFINED SUBROUT INE CROSS-REFERENCE";HEX(22);"':SELECTLIST005(80)";HEX(0D) 1350 DEFFN'31"Z$=";HEX(22);"PAC-MAN";HEX(22);":SCRATCHTZ$:SAVET$()Z$";HEX(0D) 2000 DATA LOAD DC OPEN T"SCORE" 2010 DATA LOAD DC N$(),S9() 2020 FOR X=1 TO 5