Listing of file='PAC-MAN ' on disk='vmedia/more_games.wvd.zip'
# Sector 945, program filename = 'PAC-MAN' 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) 0070 PRINT HEX(0202020F0306);" Player 1 = "; : PRINTUSING "######",S0(1) : PRINT AT(0,61);"Player 2 = "; : PRINTUSING "######",S0(2) : PRINT : PRINT TAB(11);HEX(FCFCFCFCFCF0C0C0C0C0FCC0C0C0C0C0C0F0FCFCFCFCFCFCF0C0C0C 0C0C0C0C0C0C0C0F4C0C0C0C0C0F8C0C0C0C0FCC0C0C0C0D4C0C0C0FCFCFC) 0072 PRINT TAB(11);HEX(FFFFFFFFFFFFF5C0C0EAFFD5C0C0C0F8FEFFFFFFFFFFFFFFFFFDF4C 0C0C0C0C0C0C0C0FFFDD0C0E0FEFFC0C0C0EAFFD5C0C0C0FFD0C0C0FFFFFF) 0073 PRINT TAB(11);HEX(FFFFFFFCFFFFDFC0C0FFFFFFC0C0FAFFFFFFFFFFFFFFFFFFCFC7C3C 0E0F0F0F0F0D0C0FFFFFFFCFFFFFFC0C0C0FFFFFFC0C0C0FFFDC0C0FFFFFF) 0074 PRINT TAB(11);HEX(FFFFFFFFFFCFC1C0EAFFFFFFD5C0FFFFFFFFFFFFFFF7D1C0C0C0C0C 0EAFFFFFFFFD5C0FFFFFFFFFFFFFFC0C0EAFFFFFFD5C0C0FFFFF5C0FFFFFF) 0075 PRINT TAB(11);HEX(FFFFFFC0C0C0C0C0FFFFFCFFFFC0EBFFFFFFFFFFFFFFFFFFFCF4F0C 0C2C3C3C3C3C1C0FFFFFFFFFFFFFFC0C0FFFFFCFFFFC0C0FFFFFFD4FFFFFF) 0076 PRINT TAB(11);HEX(FFFFFFC0C0C0C0EAFFFFFFFFFFD5C0CBEFFFFFFFFFFFFFFFFFDFC7C 0C0C0C0C0C0C0C0FFFFFFFFFFFFFFC0EAFFFFFFFFFFD5C0FFFFFFFFFFFFFF) 0077 PRINT TAB(11);HEX(CFCFCFC0C0C0C0CFCFCFCFCFCFCFC0C0C0C3CFCFCFCFCFCFC3C0C0C 0C0C0C0C0C0C0C0CFCFCFCFCFCFCFC0CFCFCFCFCFCFCFC0CFCFCFCFCFCFCF) : PRINT : PRINT TAB(32);"by Steve McGarry" 0080 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) 0085 PRINT AT(13,20);HEX(020404000E8B020402000F) : S=-1 : FOR K=1TO 4 : Y1(K)=20+K*3 : NEXT K 0090 IF S=-1THEN FOR K=60TO 20STEP S : ELSE FOR K=20TO 70STEP S : PRINT AT(13,K);HEX(0E); : IF S=1THEN 110 : IF MOD(K,2)=0THEN PRINT HEX(EAFFD5); : ELSE PRINT HEX(E2FFD5); : GOTO 120 0110 IF MOD(K,2)=0THEN PRINT HEX(08C0EAFFD5); : ELSE PRINT HEX(08C0EAFFD1); 0120 FOR J=4TO 1STEP -1 : IF S=-1THEN PRINT HEX(E8FFD4); : IF S=-1THEN 130 : IF Y1(J)=0THEN 130 : IF MOD(K,2)<>0THEN 130 : Y1(J)=Y1(J)+1 : IF Y1(J)>KTHEN PRINT AT(13,Y1(J));HEX(0EE89BD4) : IF Y1(J)>KTHEN 130 : PRINT AT(13,K);HEX(0E); : PRINTUSING "###",J*200 : FOR L=1TO 15 : $BREAK255 : NEXT L : Y1(J)=0 0130 NEXT J : IF S=-1THEN PRINT TAB(79) : PRINT AT(13,K);HEX(0E); : IF S=1THEN 140 : IF MOD(K,2)=0THEN PRINT HEX(EAFFD5) : ELSE PRINT HEX(E2FFD5) : GOTO 150 0140 IF MOD(K,2)=0THEN PRINT HEX(C0EAFFD5) : ELSE PRINT HEX(C0EAFFD1) 0150 KEYIN K$,150,150 : IF K$<>"1"AND K$<>"2"THEN 160 : CONVERT K$TO P1 : GOTO 180 0160 $BREAK255 : $BREAK255 : $BREAK255 : NEXT K : IF S=1THEN 170 : S=1 : GOTO 90 0170 PRINT AT(13,0,80) : FOR K=1TO 100 : K$=" " 0172 KEYIN K$,172,172 : IF K$>" "THEN K=200 : $BREAK255 : NEXT K : IF K=200THEN 150 : GOTO 85 0180 RETURN CLEAR ALL : IF P1=1THEN P0=1 : ELSE P0=2 0190 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 LINE2040 : MAT READ A$ 0240 IF P1=1THEN 250 : IF P0=2THEN P0=1 : ELSE P0=2 : IF P(P0)=0THEN 240 0250 IF F9=0THEN 260 : FOR K=1TO 7500 : NEXT K 0260 F9=1 : IF MOD(S1(P0),2)=0AND D0(P0)=D(P0)AND D(P0)>0THEN GOSUB 2070 : 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 0290 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 395 : S1(P0)=S1(P0)+1 : D(P0),D0(P0)=0 : RESTORE : FOR X=1TO 23 0350 READ Y : IF Y=0THEN 360 : STR(D$(P0,X),Y,1)=HEX(90) : D(P0)=D(P0)+1 : GOTO 350 0360 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 0395 STR(D$(P0,14),39,3)=" " : FOR X=1TO 23 : IF STR(D$(P0,X),1)=" "THEN 425 : FOR Y=1TO 79 : IF POS(STR(D$(P0,X),Y+1)>" ")=0THEN Y=80 : IF Y=80THEN 420 : 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) 0420 NEXT Y 0425 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 0460 KEYIN K$,460,460 : 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 660 0540 IF F=0THEN F=1 : ELSE F=0 : IF D1<>-1THEN 570 : IF STR(A$(X),Y-1,1)=" "THEN 640 : GOTO 630 0570 IF D1<>1THEN 590 : IF STR(A$(X),Y+3,1)=" "THEN 640 : GOTO 630 0590 IF D2<>1THEN 610 : IF STR(A$(X+1),Y,3)=" "THEN 640 : GOTO 630 0610 IF D2<>-1THEN 630 : IF STR(A$(X-1),Y,3)=" "THEN 640 0630 D1,D2=0 : C=1 0640 X0=X : Y0=Y : X=X+D2 : Y=Y+D1 : IF Y=1THEN Y=76 : IF Y=77THEN Y=2 0660 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 670 : 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 0670 IF S0=S0(P0)THEN 700 : D0(P0)=D0(P0)+1 : STR(D$(P0,X),Y,3)=ALL(20) : IF INT(S0/5000)=INT(S0(P0)/5000)THEN 690 : 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 0690 IF S0(P0)>999999THEN 3000 : PRINT AT(0,12+(P0-1)*60);HEX(0E); : PRINTUSING "######",S0(P0) 0700 PRINT AT(X0,Y0-1,3);AT(X,Y-1);HEX(0E); : IF C=0THEN 720 : PRINT HEX(EAFFD5) : C=0 : GOTO 770 0720 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 0770 IF D0(P0)=D(P0)THEN 250 : K$=" " : KEYIN K$,800,795 : GOTO 800 0795 $TRAN(K$,HEX(3846385632453255364C365C344D345D))R 0800 IF K$<>HEX(20)THEN K1$=K$ : K$=K1$ : IF K$<"1"THEN 900 : IF K$>"8"THEN 900 : CONVERT K$TO K : ON KGOTO ,850,,860,870,880,,890 : GOTO 900 0850 IF STR(A$(X+1),Y,3)<>" "THEN 900 : IF X=10AND Y=39THEN 900 : D2=1 : D1=0 : GOTO 900 0860 IF STR(A$(X),Y-1,1)<>" "THEN 900 : D1=-1 : D2=0 : GOTO 900 0870 D1,D2=0 : GOTO 900 0880 IF STR(A$(X),Y+3,1)<>" "THEN 900 : D1=1 : D2=0 : GOTO 900 0890 IF STR(A$(X-1),Y,3)<>" "THEN 900 : D1=0 : D2=-1 : GOTO 900 0900 IF B=0THEN 930 : IF X<>14THEN 930 : IF Y<>39THEN 930 0910 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 920 : 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 0920 IF S0(P0)>999999THEN 3000 : PRINT AT(0,12+(P0-1)*60);HEX(0E); : PRINTUSING "######",S0(P0) 0930 IF B>0THEN 931 : M(P0)=M(P0)+1 : IF M(P0)<300THEN 940 : M(P0)=1 : B=INT(B0(P0)) : STR(D$(P0,14),39,3)=B$(B) : PRINT AT(14,38);HEX(0E);B$(B) : GOTO 940 0931 B0=B0+1 : IF B0<150THEN 940 : B0=0 : B=0 : IF B0(P0)<6THEN B0(P0)=B0(P0)+.5 : PRINT AT(14,38,3) : STR(D$(P0,14),39,3)=" " 0940 IF E=0THEN 960 : E=E-1 : IF E>0THEN 960 : FOR G=1TO 4 : IF S(G)<>2THEN 950 : S(G)=1 : X0(G)=X1(G) : Y0(G)=Y1(G) 0950 NEXT G 0960 FOR G=1TO 4 : G9=G9+1 : IF G9>1000THEN G9=0 : IF S(G)<4THEN 980 : IF G9>(105-25*MIN(S1(P0),4))*(G-1)THEN S(G)=1 : ELSE GOTO 1620 0980 MAT T=ZER : C0=0 : IF X1(G)<>XTHEN 1010 : IF Y1(G)=YTHEN 1670 1010 IF Y1(G)>=14AND Y1(G)<=67THEN 1050 : IF X1(G)<>12THEN 1050 : IF F<>0THEN 1050 : IF S(G)<>3THEN 1620 1050 IF S(G)<>2THEN 1070 : IF F=0THEN 1620 1070 IF S(G)<3THEN 1080 : IF X1(G)<>12THEN 1080 : IF Y1(G)<>39THEN 1080 : S(G)=1 1080 IF X1(G)<>12THEN 1110 : IF Y1(G)<36THEN 1110 : IF Y1(G)>42THEN 1110 : 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 1620 1110 IF STR(A$(X1(G)-1),Y1(G),3)<>" "THEN 1210 : IF X1(G)-1=X0(G)THEN 1210 : IF S(G)<3THEN 1150 : IF 12<X1(G)THEN 1145 : T(1)=C0+1 : C0=C0+1 : GOTO 1210 1145 T(1)=C0+50 : C0=C0+50 : GOTO 1210 1150 IF X<X1(G)THEN 1180 : IF S(G)=2THEN 1190 1170 T(1)=C0+5 : C0=C0+5 : GOTO 1210 1180 IF S(G)=2THEN 1170 1190 T(1)=C0+25 : C0=C0+25 1210 IF STR(A$(X1(G)),Y1(G)+3,1)<>" "THEN 1310 : IF Y1(G)+1=Y0(G)THEN 1310 : IF S(G)<3THEN 1250 : IF 39>Y1(G)THEN 1245 : T(2)=C0+1 : C0=C0+1 : GOTO 1310 1245 T(2)=C0+50 : C0=C0+50 : GOTO 1310 1250 IF Y>Y1(G)THEN 1280 : IF S(G)=2THEN 1290 1270 T(2)=C0+5 : C0=C0+5 : GOTO 1310 1280 IF S(G)=2THEN 1270 1290 T(2)=C0+25 : C0=C0+25 1310 IF STR(A$(X1(G)+1),Y1(G),3)<>" "THEN 1420 : IF X1(G)+1=X0(G)THEN 1420 : IF S(G)<3THEN 1350 : IF 12>X1(G)THEN 1345 : T(3)=C0+1 : C0=C0+1 : GOTO 1420 1345 T(3)=C0+50 : C0=C0+50 : GOTO 1420 1350 IF X1(G)<>10THEN 1360 : IF Y1(G)=39THEN 1420 1360 IF X>X1(G)THEN 1390 : IF S(G)=2THEN 1400 1380 T(3)=C0+5 : C0=C0+5 : GOTO 1420 1390 IF S(G)=2THEN 1380 1400 T(3)=C0+25 : C0=C0+25 1420 IF STR(A$(X1(G)),Y1(G)-1,1)<>" "THEN 1510 : IF Y1(G)-1=Y0(G)THEN 1510 : IF S(G)<3THEN 1460 : IF 39<Y1(G)THEN 1455 : T(4)=C0+1 : C0=C0+1 : GOTO 1510 1455 T(4)=C0+50 : C0=C0+50 : GOTO 1510 1460 IF Y<Y1(G)THEN 1490 : IF S(G)=2THEN 1500 1480 T(4)=C0+5 : C0=C0+5 : GOTO 1510 1490 IF S(G)=2THEN 1480 1500 T(4)=C0+25 : C0=C0+25 1510 R=INT(RND(1)*C0) : X0(G)=X1(G) : Y0(G)=Y1(G) : IF R<T(1)THEN 1580 : IF R<T(2)THEN 1590 : IF R<T(3)THEN 1600 : IF R<T(4)THEN 1610 : STOP "- HOW THE HELL DID I END UP IN A DEAD END?!?!?!?!?!?" 1580 X1(G)=X1(G)-1 : GOTO 1620 1590 Y1(G)=Y1(G)+1 : GOTO 1620 1600 X1(G)=X1(G)+1 : GOTO 1620 1610 Y1(G)=Y1(G)-1 : GOTO 1620 1620 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 1640 : Y1(G)=76 : Y0(G)=77 1640 IF Y1(G)<>77THEN 1650 : Y1(G)=2 : Y0(G)=1 1650 PRINT AT(X1(G),Y1(G)-1); : IF S(G)<>2THEN 1660 : IF E<1OR E>24THEN 1660 : IF F<>0THEN 1660 : PRINT HEX(020402020F); 1660 PRINT HEX(0E);G$(S(G));HEX(020402000F) 1670 IF X1(G)<>XOR Y1(G)<>YTHEN 1780 : IF S(G)=1THEN 1690 : IF S(G)=3THEN 1010 : 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) 1675 IF INT(S0/5000)=INT(S0(P0)/5000)THEN 1680 : 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 1680 IF S0(P0)>999999THEN 3000 : PRINT AT(0,12+(P0-1)*60);HEX(0E); : PRINTUSING "######",S0(P0) : GOTO 1780 1690 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 1760 : GOTO 240 1760 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 1770 KEYIN K$,1770,1770 : K$=" " : IF P(1)=0AND P(2)=0THEN 10 : F9=0 : GOTO 240 1780 NEXT G : GOTO 540 1810 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 1880 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 1980 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 2040 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" 2043 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" 2046 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" 2049 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 " 2052 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" 2055 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" 2058 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 " 2061 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" 2070 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) 2140 $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : $BREAK255 : FOR K=1TO 68 2160 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 2200 PRINT AT(10,0,240) : RETURN 3000 DIM W$(24)79 : GOTO 3100 3020 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 3060 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 3100 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 3380 : 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) 3230 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 3460 3380 IF C>10THEN C=10 : RESTORE LINE3470 : FOR K=1TO C*6 : READ R1,R2 : GOSUB '255(A+R1,B+R2) : NEXT K : RESTORE LINE3470 : FOR K=1TO C*6 : READ R1,R2 : GOSUB '254(A+R1,B+R2) : NEXT K 3460 NEXT F 3470 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 3540 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 3700 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." 3710 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 3730 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) 4010 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 4010 9998 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) 9999 DEFFN'31"Z$=";HEX(22);"PAC-MAN";HEX(22);":SCRATCHTZ$:SAVET$()Z$";HEX(0D)