Listing of file='FOOTBALL' on disk='vmedia/more_games.wvd.zip'
# Sector 514, program filename = 'FOOTBALL' 0010 REM WRITTEN BY 2200 R & D -- FEB. 22, 1974 0015 LOAD DC T#6,"GAMES" 0020 DIM S(3),S1(3,10),S1$20 0030 PRINT HEX(03); : PRINT ,"***WANG 2200 FOOTBALL***" 0040 D$=HEX(010A0A0A0A0A0A0A0A0A0A0A) : GOTO 1700 0050 % G....!....1....!....2....!....3....!....4....!....M 0060 % M....!....4....!....3....!....2....!....1....!....G 0070 %! # -##.# # ##.## ! 0080 DEFFN1(X)=8*A*(RND(1)-.5)^3+B 0090 DEFFN'32(E1) : FOR E=1 TO E1 : NEXT E : RETURN 0100 DEFFN'33(E) : PRINT STR(D$,1,E); 0110 PRINT TAB(63);HEX(0D); : RETURN 0120 DEFFN'30(E1) : S1(2-P,E1)=S1(2-P,E1)+1 : RETURN 0130 DEFFN'31(E1) : S1(2-P,E1)=S1(2-P,E1)+INT(Y) : RETURN 0140 DEFFN'15 : PRINT "CALL PLAYS AS FOLLOWS:" 0150 PRINT " 1=SIMPLE RUN 2=TRICKY RUN 3=SHORT PASS 4=LONG PASS" 0160 PRINT " 5=PUNT 6=QUICK KICK 7=PLACE KICK" : RETURN 0170 T=T+RND(1) : IF T<30 THEN 190 0180 IF H2=4THEN 2020 : GOTO 1200 0190 IF T>=28THEN 210 : IF H7-T>0THEN 230 0200 T=15 : H7=30 : H2=H2+1 : GOTO 230 0210 IF H1=1THEN 230 0220 GOSUB 1350 : GOSUB 1510 : PRINT "TWO MINUTE WARNING", : H1=1 : T=28 0230 GOSUB 1390 : Y,F=0 : IF P=1 THEN 310 : GOTO 1030 0240 A=20 : B=0 : X=FN1(X) 0250 GOSUB 1510 : PRINT "KICKOFF...", : GOSUB 1350 : K=1 0260 Y=0 : F=-1 : Z=8 : X6=60 : GOSUB 1540 : GOSUB 1520 0270 K=0 : IF X>2 THEN 290 : PRINT " TOUCHBACK." 0280 X6,X=20 : GOSUB 1540 : GOTO 890 0290 GOSUB 1280 : GOTO 750 0300 GOSUB '33(8) : PRINT "MISCALLED PLAY. CALL PLAY AGAIN."; 0310 IF G=3THEN 1040 0320 GOSUB '33(12) : GOSUB '15 : GOSUB 110 : GOSUB 1360 0330 INPUT "'S BALL. NEXT PLAY",L : Z=ABS(INT(L)) 0340 IF Z=0THEN 300 : IF Z>7THEN 300 0350 DEFFN'14 : R=RND(1) : GOSUB '33(8) : GOSUB '30(10) : J=J+1 0360 IF RND(1)>.005THEN 390 : PRINT "TIME OUT... DOG ON THE FIELD" 0370 PRINTUSING 50 : S1$=" DOG" : PRINT 0380 PRINT : PRINT STR(D$,1,11) : GOSUB 1470 0390 IF RND(1)<.06THEN 1290 : IF Z>4THEN 580 : IF Z<3THEN 410 0400 PRINT "PASS."; : GOSUB '30(4) : IF Z=3THEN 480 : GOTO 550 0410 PRINT "RUN."; : IF Z<>1THEN 430 0420 A=4.1 : B=3 : Y=FN1(X) : IF R<.05THEN 440 : GOTO 470 0430 A=15 : B=6 : Y=FN1(X) : IF R>.15THEN 470 0440 PRINT "***FUMBLE***"; : IF RND(1)<=.4THEN 460 0450 PRINT " BALL LOST"; : F=-1 : GOSUB '30(9) : GOSUB 1280 : GOTO 840 0460 PRINT " BALL RECOVERED WITH"; : GOTO 840 0470 GOSUB '31(1) : GOTO 840 0480 IF R>=.4THEN 490 : IF R>.1THEN 540 : GOTO 530 0490 A=7.6 : B=8 : Y=FN1(X) : IF R>.45THEN 570 0500 F=-1 : GOSUB 1530 : PRINT "INTERCEPTED!"; : GOSUB '30(9) 0510 IF X<100THEN 520 : PRINT "IN THE ENDZONE." : GOSUB 1350 : X=80 0520 GOSUB 1280 : GOTO 890 0530 PRINT " BLITZ! PASSER TACKLED."; : Y=-13*RND(1) : GOTO 840 0540 PRINT " INCOMPLETE."; : Y=0 : GOTO 840 0550 IF R<.15THEN 530 : IF R<.6THEN 540 0560 A=20 : B=30 : Y=FN1(X) : IF R<.7THEN 500 0570 GOSUB '31(2) : GOSUB '30(3) : GOTO 840 0580 F=-1 : K=1 : IF Z=5THEN 590 : IF Z=6THEN 600 : GOTO 610 0590 A=15 : B=40 : GOTO 620 0600 A=20 : B=30 : GOTO 620 0610 A=20 : B=35 0620 Y=FN1(X) : IF Z=7THEN 790 0630 PRINT "PUNT."; : GOSUB '30(6) : GOSUB '31(5) 0640 IF X+Y>=100THEN 650 : IF R<.7THEN 670 : PRINT "FAIR CATCH CALLED." 0650 GOSUB 1530 : IF X<100THEN 660 : PRINT "TOUCHBACK" : X=80 0660 GOSUB 1280 : K=0 : GOTO 890 0670 IF Z=5THEN 690 0680 Y2=(3*R)^3+R^2*25 : IF Z>=7THEN 720 : GOTO 700 0690 Y2=(3*R)^3+2*R 0700 GOSUB 1530 : GOSUB 1520 0710 IF Z<>5THEN 720 : PRINT "GOOD FOR";INT(Y); 0720 K=0 : GOSUB 1280 : X6=X : X=X+Y2 : GOSUB 1540 0730 PRINT "RUNBACK OF";INT(Y2);"YARDS" : GOTO 890 0740 GOSUB 1520 : PRINT "SHORT. "; 0750 PRINT "BALL TAKEN ON THE"; : IF INT(X)=0THEN 770 0760 PRINT INT(100-X); : GOTO 680 0770 PRINT "GOAL LINE"; : GOTO 680 0780 GOSUB 1280 : PRINT "MISSED. " : K=0 : GOTO 280 0790 PRINT "PLACEKICK."; : IF R>=.15THEN 810 0800 PRINT "BLOCKED." : Y=-5 : F,K=0 : GOTO 840 0810 GOSUB 1530 : IF X<100THEN 740 : IF X<105THEN 780 0820 IF RND(1)<.15THEN 780 : I=3 : GOSUB 1270 : S1$="***FIELD GOAL***" : GOSUB 1460 0830 GOSUB 1280 : GOTO 240 0840 GOSUB 1530 : IF Y=0THEN 860 : IF Y<0THEN 870 0850 PRINT "GAIN OF ";INT(Y+.5) : GOTO 880 0860 PRINT "NO GAIN " : GOTO 880 0870 PRINT "LOSS OF ";INT(ABS(Y)+.5) : IF X<=0THEN 970 : GOTO 890 0880 IF X>=100THEN 980 0890 IF F=0THEN 900 : X6=X : GOSUB 1540 : GOTO 930 0900 X2=X-X1 : IF X2>=10THEN 930 0910 D=D+1 : IF D<5THEN 170 : GOSUB 1280 : GOSUB 1350 : GOSUB 1510 0920 PRINT "FOURTH DOWN ATTEMPT NO GOOD!" : F=-1 : GOSUB 1350 : GOTO 890 0930 D=1 : X2=0 : IF J1=0THEN 940 : J2=X : J1=0 0940 IF Z>4THEN 950 : GOSUB '30(7) 0950 IF X>90THEN 960 : X1=X : GOTO 170 0960 X1=90 : X2=X-X1 : GOTO 170 0970 P=-P : I=2 : GOSUB 1270 : S1$="***SAFETY***" : GOSUB 1460 : GOTO 240 0980 I=6 : GOSUB 1270 : IF J=0THEN 1000 0990 GOSUB '33(8) : PRINT "TOUCHDOWN DRIVE WAS";INT(100-J2);"YARDS IN";J;"PLAYS." : S1$="***TOUCHDOWN***" : GOSUB 1460 : GOSUB '33(8) : GOSUB 110 1000 IF R>.9THEN 1010 : PRINT "KICK IS GOOD. " : I=1 : GOSUB 1270 : GOTO 1020 1010 PRINT "CONVERSION FAILS" 1020 GOSUB 1280 : GOSUB 1350 : PRINT HEX(0C); : GOTO 240 1030 IF G=2THEN 320 1040 GOSUB '32(650) : GOSUB '33(12) : X2=10-X+X1 : R=RND(1) 1050 GOSUB 1360 : PRINT "'S BALL." : PRINT TAB(63) : PRINT TAB(63) : PRINT TAB(63) 1060 IF T<29.5THEN 1070 : IF X<55THEN 1170 : GOTO 1190 1070 IF D=4THEN 1120 : IF D=3THEN 1090 : IF X>90THEN 1140 1080 IF R<.2THEN 1170 : IF R<.65THEN 1160 : IF R<.9THEN 1150 : GOTO 1140 1090 IF X2<2THEN 1140 : IF X2>15THEN 1110 1100 IF X>95THEN 1140 : IF R<.4THEN 1140 : IF R<.9THEN 1150 : GOTO 1160 1110 IF R<.4THEN 1150 : IF R<.8THEN 1160 : GOTO 1170 1120 IF T<25THEN 1130 : IF H2=2THEN 1130 : IF S(2+P)<S(2-P)+3THEN 1130 : IF X2<2THEN 1140 : GOTO 1160 1130 IF X<=60THEN 1180 : GOTO 1190 1140 Z=1 : GOTO 350 1150 Z=2 : GOTO 350 1160 Z=3 : GOTO 350 1170 Z=4 : GOTO 350 1180 Z=5 : GOTO 350 1190 Z=7 : GOTO 350 1200 GOSUB 1350 : PRINT HEX(03); : T=30 : D=1 : X2=0 : GOSUB 1390 1210 PRINT ,"***HALF TIME***" : PRINT : P=-H 1220 PRINTUSING 60 : S1$=" BAND" : PRINT 1230 PRINT : PRINT STR(D$,1,11) : GOSUB 1470 : GOSUB '2("<<<<<HALF TIME>>>>>>") 1240 GOSUB '32(4000) : GOSUB 1360 1250 PRINT " WILL RECEIVE TO OPEN THE SECOND HALF"; : GOSUB '32(2000) 1260 H2=3 : H,T,H1=0 : H7=15 : PRINT HEX(03); : GOSUB 1390 : GOTO 240 1270 S(2-P)=S(2-P)+I : GOSUB 1390 : RETURN 1280 P=-P : X=100-X : J=0 : J1=1 : RETURN 1290 Y=-5 : IF RND(1)>.3THEN 1300 : Y=5 1300 GOSUB 1310 : PRINT " OFF SIDES. "; : GOTO 840 1310 PRINT "***PENALTY***"; : D=D-1 : GOSUB '30(8) 1320 IF Y>0THEN 1330 : PRINT " OFFENSE "; : IF X>ABS(Y)THEN 1340 : Y=-X/2 : RETURN 1330 PRINT " DEFENSE "; : IF 100-X>YTHEN 1340 : Y=50-X/2 1340 RETURN 1350 GOSUB '32(400) : RETURN 1360 IF P=1THEN 1370 : PRINT A$; : RETURN 1370 PRINT B$; : RETURN 1380 %<<<<<<<<<<<<<<####################>>>>>>>>>>>>>> 1390 PRINT : PRINT HEX(01); 1400 PRINTUSING 1380,"WANG 2200 SCOREBOARD" 1410 PRINT "! ";A$;S(3);TAB(24);B$;S(1);TAB(47);"!" 1420 PRINT "!";TAB(47);"!" 1430 PRINT "! DOWN YDS.TO GO PERIOD TIME !" 1440 PRINTUSING 70,D,10-X2,H2,INT(H7-T)+.6*(H7-T-INT(H7-T)) 1450 PRINTUSING 1380,"<<<<<DRINK COKE>>>>>" : PRINT : RETURN 1460 PRINT : PRINT STR(D$,1,3); 1470 FOR E=1 TO 10 : PRINT HEX(07) : FOR E1=1 TO 30 1480 PRINT "!";TAB(E1);S1$;" ";HEX(0D); : NEXT E1 : PRINT HEX(07) 1490 FOR E1=30TO 1 STEP -1 1500 PRINT "!";TAB(E1);S1$;" ";HEX(0D); : NEXT E1 : NEXT E : GOSUB 1390 1510 GOSUB '33(8) : RETURN 1520 PRINT STR(D$,1,11);HEX(0D);TAB(13);HEX(0C0C0C); : RETURN 1530 X6=X : X=X+Y 1540 PRINT STR(D$,1,9);HEX(0D); : IF INT(X)=INT(X6)THEN 1580 1550 IF INT(X)=INT(X6)THEN 1580 1560 IF X>X6THEN 1570 : X6=X6-1-K : GOTO 1580 1570 X6=X6+1+K 1580 IF P=-1THEN 1600 : X3=100-X6 1590 IF X6>=50THEN 1620 : GOTO 1610 1600 X3=X6 : IF X6<=50THEN 1620 1610 PRINTUSING 60 : X3=X3-50 : GOTO 1630 1620 PRINTUSING 50 1630 PRINT TAB(63);HEX(0D);TAB(X3+10); 1640 IF K=0THEN 1650 : PRINT "O" : GOTO 1670 1650 IF P=-1THEN 1660 : PRINT "<O" : GOTO 1670 1660 PRINT "O>" 1670 IF INT(X)=INT(X6)THEN 1690 : IF INT(X)=INT(X6)+1THEN 1690 1680 IF X3<0THEN 1690 : IF X3>50THEN 1690 : PRINT HEX(0C0C) : GOTO 1560 1690 PRINT TAB(43);HEX(0C0C0C); : RETURN 1700 PRINT "SET-UP PROCEDURE" 1710 A$="OPPONENT" : PRINT A$; : INPUT A$ : B$="YOUR TEAM" : PRINT B$; : INPUT B$ : PRINT 1720 PRINT "THERE ARE THREE WAYS TO PLAY:" 1730 PRINT ,"1. COMPUTER VS. PLAYER" : PRINT ,"2. PLAYER VS. PLAYER" : PRINT ,"3. COMPUTER VS. COMPUTER" 1740 INPUT "HOW DO YOU WISH TO PLAY",G 1750 PRINT HEX(03);"TODAY'S GAME PITS ";A$;" VS. ";B$ : PRINT 1760 IF G<>3THEN 1770 : PRINT "THE 2200 WILL SELECT AND "; : GOTO 1780 1770 PRINT "YOU WILL CALL PLAYS FOR YOUR TEAM" 1780 GOSUB '15 1790 PRINT : PRINT "TO START THE GAME, PRESS 'HALT/STEP'" : PRINT ,"AND THEN 'S.F.KEY 0'" 1800 R=RND(1) : GOTO 1800 1810 DEFFN'0 : H1,T,J=0 : H2,D,P,J1=1 : H7=15 1820 IF R<.5THEN 1830 : P=-1 1830 GOSUB 1360 : H=P : PRINT " WON THE TOSS AND WILL RECEIVE." 1840 GOSUB 1350 : PRINT HEX(03); : GOSUB 1390 : GOTO 240 1850 DEFFN'2(S1$) : PRINT : PRINT HEX(03) : PRINTUSING 1380,"WANG 2200 SCOREBOARD" 1860 PRINT "! ";A$;S(3);TAB(24);B$;S(1);TAB(47);"!" 1870 PRINTUSING 1380,S1$ : PRINT 1880 PRINT "YDS. RUSHING",; : GOSUB '29(1) 1890 PRINT "YDS. PASSING",; : GOSUB '29(2) 1900 PRINT "TOTAL OFFENSE",S1(3,1)+S1(3,2),S1(1,1)+S1(1,2) : PRINT 1910 PRINT "TOTAL # PLAYS",; : GOSUB '29(10) 1920 PRINT "FIRST DOWNS",; : GOSUB '29(7) : GOSUB '20(S1(3,4),S1(1,4)) 1930 PRINT "% PASS COMPL.",INT(100*S1(3,3)/E),INT(100*S1(1,3)/E1) 1940 GOSUB '20(S1(3,6),S1(1,6)) 1950 PRINT "AVG.YDS.PUNT",INT(S1(3,5)/E),INT(S1(1,5)/E1) : PRINT 1960 PRINT "PENALTIES",; : GOSUB '29(8) 1970 PRINT "TURNOVERS",; : GOSUB '29(9) : RETURN 1980 DEFFN'29(E) : PRINT S1(3,E),S1(1,E) : RETURN 1990 DEFFN'20(E,E1) : IF E>0THEN 2000 : E=1 2000 IF E1>0THEN 2010 : E1=1 2010 RETURN 2020 GOSUB 1350 : GOSUB '2("<<<<<FINAL SCORE>>>>") 2030 IF S(3)=S(1)THEN 2090 : IF S(3)>S(1)THEN 2050 2040 GOSUB 2060 : PRINT "! ";A$;S(3);TAB(47);"!"; : GOTO 2040 2050 GOSUB 2060 : PRINT "! ";TAB(24);B$;S(1);TAB(47);"!"; : GOTO 2050 2060 PRINT HEX(010D0A); : GOSUB '32(50) 2070 PRINT "! ";A$;S(3);TAB(24);B$;S(1);TAB(47);"!" 2080 PRINT HEX(010D0A); : GOSUB '32(100) : RETURN 2090 REM 2100 DATA " "