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)