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