Listing of file='PINGPONG' on disk='vmedia/more_games.wvd.zip'
# Sector 1109, program filename = 'PINGPONG' 0010 REM *PINGPONG* : LOAD DC T#6,"GAMES" 0020 REM RCCS CR - PONG 0030 SELECT INPUT 001,PRINT 005(64),P0 0040 DIM Z$1,P(4),D(5),P$(5)5 0050 MAT READ P 0060 DATA -5,-1,+1,+5 0070 MAT READ D 0080 DATA -3,-1,0,+1,+3 0090 MAT READ P$ 0100 DATA "*----","-*---","--*--","---*-","----*" 0110 PRINT HEX(030A);"SF 0 - TOP LEFT 5" 0120 PRINT "SF 1 - TOP LEFT 1" 0130 PRINT "SF 2 - TOP RIGHT 1" 0140 PRINT "SF 3 - TOP RIGHT 5" 0150 PRINT HEX(0A);"SF 8 - NEW GAME";HEX(0A) 0160 PRINT "SF 12 - BOTTOM LEFT 5" 0170 PRINT "SF 13 - BOTTOM LEFT 1" 0180 PRINT "SF 14 - BOTTOM RIGHT 1" 0190 PRINT "SF 15 - BOTTOM RIGHT 5";HEX(0A) 0200 KEYIN Z$,200,200 0210 PRINT "PRESS 'RETURN' TO CONTINUE"; 0220 KEYIN Z$,230,230 : GOTO 220 0230 PRINT HEX(03) 0240 S1,S2=0 0250 B1=-1 : A$="BOTTOM" : IF RND(1)<.5 THEN 260 : B1=1 : A$="TOP" 0260 PRINT A$;" WINS THE SERVE" 0270 FOR A=1 TO 1000 : NEXT A 0280 PRINT HEX(03) 0290 FOR A=1 TO 15 : PRINT "!";TAB(49);"!" : NEXT A 0300 PRINT "!";TAB(49);"!";HEX(01) 0310 P1,P2=22 0320 GOSUB 860 : GOSUB 880 : GOSUB 900 0330 FOR A=1 TO 1000 : NEXT A 0340 B2=(17+B1)/2 : B3=48*RND(1) : B4=D(5*RND(1)+1) 0350 GOSUB 950 0360 FOR Z=1 TO 10 0370 KEYIN Z$,520,380 : GOTO 520 0380 IF VAL(Z$)<4 THEN 470 0390 IF VAL(Z$)=8 THEN 230 0400 IF VAL(Z$)<12 THEN 520 0410 IF VAL(Z$)>15 THEN 520 0420 IF B1=1 THEN 430 : Z=Z-1 : GOTO 520 0430 P2=P2+P(VAL(Z$)-11) 0440 IF P2>=1 THEN 450 : P2=1 : GOTO 460 0450 IF P2<45 THEN 460 : P2=44 0460 GOSUB 880 : GOTO 520 0470 IF B1=-1 THEN 480 : Z=Z-1 : GOTO 520 0480 P1=P1+P(VAL(Z$)+1) 0490 IF P1>=0 THEN 500 : P1=0 : GOTO 510 0500 IF P1<45 THEN 510 : P1=44 0510 GOSUB 860 0520 NEXT Z 0530 IF B2=1 THEN 590 : IF B2=16 THEN 590 0540 PRINT HEX(01) 0550 FOR A=1 TO B2-1 0560 PRINT HEX(0A); 0570 NEXT A 0580 PRINT "!";TAB(49);"!" 0590 B2=B2+B1 : B3=B3+B4 0600 IF B3>=0 THEN 610 : B3=-B3 : B4=-B4 : GOTO 620 0610 IF B3<48 THEN 620 : B3=94-B3 : B4=-B4 0620 IF B2=1 THEN 650 : IF B2=16 THEN 660 0630 GOSUB 950 0640 GOTO 360 0650 P=P1 : GOTO 670 0660 P=P2 0670 IF B3<P-1 THEN 760 : IF B3>P+4 THEN 760 0680 B1=-B1 : B4=D(B3-P+2) 0690 PRINT HEX(01); 0700 IF B2=1 THEN 720 0710 PRINT HEX(0C); 0720 PRINT "!";TAB(P);P$(B3-P+2);TAB(49);"!";HEX(01) 0730 FOR A=1 TO 50 : NEXT A 0740 IF B2=16 THEN 750 : GOSUB 860 : GOTO 360 0750 GOSUB 880 : GOTO 360 0760 IF B2=1 THEN 770 : S1=S1+1 : IF S1<21 THEN 780 : IF S1<=S2+1 THEN 780 : GOTO 810 0770 S2=S2+1 : IF S2<7 THEN 780 : IF S2>S1+1 THEN 830 0780 GOSUB 900 0790 FOR A=1 TO 500 : NEXT A 0800 GOTO 310 0810 PRINT HEX(03);"THE TOP PLAYER WINS!" 0820 GOTO 840 0830 PRINT HEX(03);"THE BOTTOM PLAYER WINS!" 0840 FOR A=1 TO 1000 : NEXT A 0850 GOTO 230 0860 PRINT HEX(01);"!";TAB(P1);"-----";TAB(49);"!" 0870 RETURN 0880 PRINT HEX(010C);"!";TAB(P2);"-----";TAB(49);"!";HEX(0C) 0890 RETURN 0900 PRINT HEX(010A0A0A0A0A) 0910 PRINT "!";TAB(49);"!";TAB(60);S1;TAB(63) 0920 PRINT HEX(0A0A0A) 0930 PRINT "!";TAB(49);"!";TAB(60);S2;TAB(63) 0940 RETURN 0950 PRINT HEX(01) 0960 FOR A=1 TO B2-1 0970 PRINT HEX(0A); 0980 NEXT A 0990 PRINT "!";TAB(B3+1);"*";TAB(49);"!" 1000 RETURN