Listing of file='8KFTBAL ' on disk='vmedia/games.wvd.zip'
# Sector 241, program filename = '8KFTBAL'
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
3000 STOP
3100 DEFFN'31
: LOAD DC F"GAMES"