Listing of file='FOOTBALL' on disk='vmedia/games.wvd.zip'
# Sector 126, program filename = 'FOOTBALL'
0010 DIM S$32,S9$64,S(3)
0020 SELECT PRINT 005
: PRINT HEX(03),"***WANG 2200 FOOTBALL***"
0030 D=1
: D$=HEX(010A0A0A0A0A0A0A0A0A0A0A0A0A0A0A)
0040 GOTO 2320
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'15
: PRINT "CALL PLAYS AS FOLLOWS:"
0100 PRINT " 1=SIMPLE RUN 2=TRICKY RUN 3=SHORT PASS 4=LONG PASS"
0110 PRINT " 5=PUNT 6=QUICK KICK 7=PLACE KICK"
0120 RETURN
0130 REM LOGIC FOR THIS PLAY T=TIME EXPIRED
0140 T=T+RND(1)
: IF T<30 THEN 160
0150 IF H2=4 THEN 1720
: GOTO 1610
0160 IF T>=28 THEN 180
: IF H7-T>0 THEN 200
0170 T=15
: H7=30
: H2=H2+1
: GOTO 200
0180 IF H1=1 THEN 200
0190 GOSUB 1850
: GOSUB 2070
: PRINT "TWO MINUTE WARNING."
: H1=1
: T=28
0200 GOSUB 1870
: Y,F=0
: GOTO 1160
0210 A=20
: B=0
: X=FN1(X)
0220 GOSUB 2070
: PRINT "KICKOFF... ";
: GOSUB 1850
: K=1
0230 Y=0
: F=-1
: Z=8
: X6=60
: GOSUB 2120
: GOSUB 2100
0240 K=0
: IF X>0 THEN 260
: PRINT "FAIR CATCH CALLED. TOUCHBACK. "
0250 X6,X=20
: GOSUB 2120
: GOTO 1070
0260 GOSUB 1790
: GOTO 900
0270 REM LOGIC FOR TEAM B CALLING A PLAY
0280 REM --MISCALLED PLAY
0290 PRINT STR(D$,1,8);"MISCALLED PLAY. CALL PLAY AGAIN.";TAB(63);HEX(0D);
0300 IF G=3 THEN 1330
0310 PRINT STR(D$,1,12);TAB(63);HEX(0D);
0320 GOSUB '15
: PRINT TAB(63);HEX(0D);
0330 IF P=1 THEN 340
: PRINT A$;
: GOTO 350
0340 PRINT B$;
0350 INPUT "'S BALL. NEXT PLAY",L
: Z=ABS(INT(L))
0360 IF Z=0THEN 280
: IF Z>7THEN 280
0370 DEFFN'14
0380 R=RND(1)
0390 REM DETERMINE TYPE OF PLAY
0400 PRINT STR(D$,1,8);TAB(63);HEX(0D);
0410 IF RND(1)>.05 THEN 430
: Q=-5
: GOSUB 1800
0420 PRINT " OFF SIDES: ";
: Y=Q
: GOTO 1000
0430 IF Z>4THEN 660
: IF Z<3THEN 460
0440 PRINT "PASS.";
: IF Z=3THEN 540
: GOTO 630
0450 REM LOGIC FOR RUN (1 OR 2)
0460 PRINT "RUN.";
: IF Z<>1THEN 490
0470 A=4.1
: B=3
: Y=FN1(X)
0480 IF RND(1)<.05 THEN 500
: GOTO 990
0490 A=15
: B=6
: Y=FN1(X)
: IF RND(1)>.15 THEN 990
0500 PRINT "***FUMBLE***";
: IF RND(1)>.4 THEN 520
0510 PRINT "BALL LOST AFTER ";
: GOSUB 1790
: F=-1
: GOTO 990
0520 PRINT " BALL RECOVERED WITH ";
: GOTO 990
0530 REM LOGIC FOR SHORT PASS (3)
0540 IF RND(1)>.4 THEN 550
: IF RND(1)>.1 THEN 610
: GOTO 600
0550 A=7.6
: B=8
: Y=FN1(X)
0560 IF RND(1)>.2THEN 990
0570 F=-1
: X6=X
: X=X+Y
: GOSUB 2120
: PRINT "INTERCEPTED!";
0580 IF X<100 THEN 590
: PRINT "IN THE ENDZONE."
: GOSUB 1850
: X=80
0590 GOSUB 1790
: GOTO 1070
0600 PRINT "BLITZ! PASSER TACKLED. ";
: Y=-13*R
: GOTO 990
0610 PRINT " INCOMPLETE. ";
: Y=0
: GOTO 990
0620 REM LOGIC FOR LONG PASS
0630 IF RND(1)<.15 THEN 600
: IF RND(1)<.6 THEN 610
0640 A=20
: B=30
: Y=FN1(X)
: IF RND(1)<.7 THEN 570
: GOTO 990
0650 REM LOGIC FOR KICK (5,6, OR 7)
0660 F=-1
: K=1
: IF Z=5THEN 670
: IF Z=6THEN 680
: GOTO 690
0670 A=15
: B=45
: GOTO 700
0680 A=20
: B=30
: GOTO 700
0690 A=20
: B=35
0700 Y=FN1(X)
0710 IF Z=7THEN 950
0720 PRINT "PUNT.";
0730 IF X+Y>=100 THEN 760
0740 IF RND(1)<.7 THEN 780
0750 PRINT " FAIR CATCH CALLED."
0760 X6=X
: X=X+Y
: GOSUB 2120
: IF X<100 THEN 770
: PRINT "TOUCHBACK"
: X=80
0770 GOSUB 1790
: K=0
: GOTO 1070
0780 IF D=4 THEN 790
: IF Z=5 THEN 800
0790 Y2=(3*RND(1))^2+RND(1)^2*25
: GOTO 810
0800 Y2=(3*RND(1))^2+2*RND(1)
0810 X6=X
: X=X+Y
: GOSUB 2120
: GOSUB 2100
0820 IF Z<>5 THEN 830
: PRINT "GOOD FOR";INT(Y);
0830 K=0
: GOSUB 1790
: X6=X
: X=X+Y2
: GOSUB 2120
0840 PRINT "RUNBACK OF";INT(Y2);"YARDS"
0850 GOTO 1070
0860 IF RND(1)<.5THEN 940
0870 S1$="***FIELD GOAL***"
: GOSUB 1980
: I=3
: GOSUB 1760
0880 GOSUB 1790
: GOTO 210
0890 GOSUB 2100
: PRINT "SHORT. ";
0900 PRINT "BALL TAKEN ON THE";
: IF INT(100-X)=100 THEN 920
0910 PRINT INT(100-X);
: GOTO 930
0920 PRINT " GOAL LINE";
0930 GOTO 830
0940 GOSUB 1790
: PRINT "MISSED. "
: K=0
: GOTO 250
0950 PRINT "PLACEKICK.";
: IF RND(1)>=.15 THEN 970
0960 PRINT "BLOCKED."
: Y=-5
: F=0
: GOTO 990
0970 X6=X
: X=X+Y
: GOSUB 2120
0980 IF X<100 THEN 890
: IF X<105 THEN 940
: GOTO 860
0990 REM - CALCULATE GAIN OR LOSS
1000 X6=X
: X=X+Y
: GOSUB 2120
1010 IF Y=0 THEN 1030
: IF Y<0 THEN 1040
1020 PRINT " GAIN OF ";INT(Y*10)/10
: GOTO 1060
1030 PRINT " NO GAIN "
: GOTO 1060
1040 PRINT " LOSS OF ";ABS(INT(Y*10)/10)
1050 IF X<=0 THEN 1220
: GOTO 1070
1060 IF X>=100 THEN 1240
1070 IF F=0 THEN 1080
: X6=X
: GOSUB 2120
: GOTO 1170
1080 X2=X-X1
: IF X2>=10 THEN 1170
1090 D=D+1
: IF D<=4 THEN 1150
: GOSUB 1790
1100 GOSUB 1850
: GOSUB 2070
1110 PRINT "FOURTH DOWN ATTEMPT IS NO GOOD!"
1120 F=-1
1130 GOSUB 1850
: GOTO 1070
1140 REM ***********END OF DOWN***********
1150 GOTO 140
1160 IF P=1 THEN 300
: GOTO 1320
1170 D=1
: X2=0
1180 IF X<=90 THEN 1200
1190 X1=90
: GOTO 140
1200 X1=X
: GOTO 140
1210 REM SCORE CALCULATIONS
1220 S1$="***SAFETY***"
: GOSUB 1980
: P=-P
: I=2
: GOSUB 1760
1230 GOTO 210
1240 REM ******
1250 S1$="***TOUCHDOWN***"
: GOSUB 1980
: I=6
: GOSUB 1760
1260 IF RND(1)<.5 THEN 1280
1270 PRINT "KICK IS GOOD."
: I=1
: GOSUB 1760
: GOTO 1290
1280 PRINT "CONVERSION FAILS"
1290 GOSUB 1790
: GOSUB 1850
1300 PRINT HEX(0C);
: GOTO 210
1310 REM ****INITIATE NEXT PLAY FOR TEAM A
1320 IF G=2 THEN 310
1330 FOR E=1 TO 1000
: NEXT E
: REM - DISPLAY DELAY
1340 REM X=CURR.YD.LINE X1=START YD.LINE X2=YDS.TO GO D=DOWN
1350 PRINT STR(D$,1,12);TAB(63);HEX(0D);
1360 IF P=1 THEN 1370
: PRINT A$;"'S BALL."
: GOTO 1380
1370 PRINT B$;"'S BALL."
1380 PRINT TAB(63)
: PRINT TAB(63)
: PRINT TAB(63)
1390 X2=10-X+X1
: R=RND(1)
1400 IF D=4THEN 1520
: IF X2<1THEN 1540
1410 IF X<90THEN 1430
: IF X>95THEN 1540
1420 IF RND(1)>.6 THEN 1540
: GOTO 1550
1430 REM DOWN 1,2,3 BETWEEN 0 AND 90
: IF X2<2THEN 1420
1440 IF D=3THEN 1470
1450 IF RND(1)<.2 THEN 1570
: IF RND(1)<.65 THEN 1560
1460 IF RND(1)<.75 THEN 1550
: GOTO 1540
1470 IF X2<15 THEN 1500
: IF X<45 THEN 1490
: IF RND(1)>.8 THEN 1590
1480 REM TRY A LONG RUN OR PASS
1490 IF RND(1)<.3 THEN 1550
: IF RND(1)<.6 THEN 1560
: GOTO 1570
1500 IF X<5 THEN 1540
: IF RND(1)>.6 THEN 1540
1510 IF RND(1)>.1 THEN 1550
: GOTO 1560
1520 IF T<=55 THEN 1530
: IF S(1)>S(3)+3 THEN 1560
1530 IF X<=60 THEN 1580
: GOTO 1600
1540 Z=1
: GOTO 380
1550 IF X<=20 THEN 1540
: Z=2
: GOTO 380
1560 Z=3
: GOTO 380
1570 Z=4
: GOTO 380
1580 Z=5
: GOTO 380
1590 Z=6
: GOTO 380
1600 Z=7
: GOTO 380
1610 GOSUB 1850
1620 PRINT HEX(03);
: T=30
: D=1
: X2=0
: GOSUB 1870
1630 PRINT ,"***HALF TIME***"
: PRINT
: P=-H
1640 IF P=1THEN 1650
: PRINT A$;
: GOTO 1660
1650 PRINT B$;
1660 PRINT " WILL RECEIVE TO OPEN THE SECOND HALF"
1670 PRINT "THE PUNCHARD ALL GIRLS BAND WILL DAZZLE YOU WITH THEIR FOOTWORK AN
D MEDIOCRE PLAYING"
1680 FOR E=1 TO 3000
: NEXT E
1690 GOSUB 2560
1700 H2=3
: T=0
: H1=0
: H7=15
: H=0
1710 PRINT HEX(03);
: GOSUB 1870
: GOTO 210
1720 GOSUB 1850
1730 PRINT HEX(03);
: T=30
: GOSUB 1870
1740 PRINT ,"***FINAL SCORE***"
1750 STOP
1760 S(2-P)=S(2-P)+I
: REM ADD TO SCORE
1770 GOSUB 1870
1780 RETURN
1790 P=-P
: X=100-X
: RETURN
: REM - GIVE BALL TO OTHER SIDE
1800 PRINT "***PENALTY***";
: D=D-1
1810 IF RND(1)<.5THEN 1830
1820 PRINT " OFFENSIVE ";
: IF X>ABS(Q) THEN 1840
: Q=-X/2
1825 RETURN
1830 PRINT " DEFENSIVE ";
: IF 100-X>Q THEN 1840
: Q=(100-X)/2
1840 RETURN
1850 FOR E=1 TO 400
: NEXT E
: RETURN
1860 %<<<<<<<<<<<<<<####################>>>>>>>>>>>>>>
1870 PRINT
: PRINT HEX(01);
1880 READ S$
: IF S$<>"9"THEN 1890
: RESTORE
: GOTO 1880
1890 IF LEN(S$)>=20THEN 1910
1900 S9$=S$
: S$=" "
: STR(S$,1+(20-LEN(S9$))/2)=S9$
1910 PRINTUSING 1860,"WANG 2200 SCOREBOARD"
1920 PRINT "! ";A$;S(3);TAB(24);B$;S(1);TAB(47);"!"
1930 PRINT "!";TAB(47);"!"
1940 PRINT "! DOWN YDS.TO GO PERIOD TIME !"
1950 PRINTUSING 70,D,10-X2,H2,INT(H7-T)+.6*(H7-T-INT(H7-T))
1960 PRINTUSING 1860,S$
1970 PRINT
: RETURN
1980 REM --DISPLAY SCORE
1990 PRINT
: PRINT STR(D$,1,3);
2000 FOR I7=1 TO 10
2010 PRINT HEX(07)
2020 FOR I8=1 TO 30
2030 PRINT "!";TAB(I8);S1$;" ";HEX(0D);
: NEXT I8
: PRINT HEX(07)
2040 FOR I8=30 TO 1 STEP -1
2050 PRINT "!";TAB(I8);S1$;" ";HEX(0D);
: NEXT I8
2060 NEXT I7
2070 PRINT STR(D$,1,8);
2080 PRINT TAB(63);HEX(0D);
2090 RETURN
2100 PRINT STR(D$,1,11);HEX(0D);TAB(13);HEX(0C0C0C);
2110 RETURN
2120 PRINT STR(D$,1,9);HEX(0D);
2130 IF INT(X)=INT(X6) THEN 2160
2140 IF X>X6 THEN 2150
: X6=X6-1-K
: GOTO 2160
2150 X6=X6+1+K
2160 IF P=-1 THEN 2180
: X3=100-X6
2170 IF X6>=50 THEN 2210
: GOTO 2190
2180 X3=X6
: IF X6<=50 THEN 2210
2190 PRINTUSING 60
2200 X3=X3-50
: GOTO 2220
2210 PRINTUSING 50
2220 PRINT TAB(63);HEX(0D);
2230 PRINT TAB(X3+10);
2240 IF K=0 THEN 2250
: PRINT "O"
: GOTO 2270
2250 IF P=-1 THEN 2260
: PRINT "<O"
: GOTO 2270
2260 PRINT HEX(08);"O>"
2270 IF INT(X)=INT(X6) THEN 2310
2280 IF INT(X)=INT(X6)+1 THEN 2310
2290 IF X3<0 THEN 2310
: IF X3>50 THEN 2310
2300 PRINT HEX(0C0C)
: GOTO 2140
2310 PRINT TAB(43);HEX(0C0C0C);
: RETURN
2320 PRINT "SET-UP PROCEDURE"
2330 A$="OPPONENT"
: PRINT A$;
: INPUT A$
: B$="YOUR TEAM"
: PRINT B$;
: INPUT B$
: PRINT
2340 PRINT "THERE ARE THREE WAYS TO PLAY:"
2350 PRINT ,"1. COMPUTER VS. PLAYER"
: PRINT ,"2. PLAYER VS. PLAYER"
: PRINT ,"3. COMPUTER VS. COMPUTER"
2360 INPUT "HOW DO YOU WISH TO PLAY",G
2370 PRINT HEX(03);"TODAY'S GAME PITS ";A$;" VS. ";B$
: PRINT
2380 IF G<>3THEN 2390
: PRINT "THE 2200 WILL SELECT AND ";
: GOSUB '15
: GOTO 2400
2390 PRINT "YOU WILL CALL PLAYS FOR YOUR TEAM"
: GOSUB '15
2400 PRINT
2410 R=RND(1)
: IF R<RND(1)THEN 2420
: GOTO 2410
2420 DEFFN'0
: H1=0
: H2=1
: H7=15
: D=1
: T=0
: P=1
2430 IF RND(1)<.5 THEN 2440
: PRINT B$;
: GOTO 2450
2440 P=-1
: PRINT A$;
2450 H=P
: PRINT " WON THE TOSS AND WILL RECEIVE."
: PRINT
2460 FOR Z=1TO 1000
: NEXT Z
: PRINT HEX(03);
: GOSUB 1870
: GOTO 210
2480 DATA "DRINK COCA COLA","MOTHERHOOD","APPLE PIE","NIXON 49-AMERICA 1","WAT
ERGATE","BE HONEST","PAY YOUR TAXES"
2490 DATA "DRINK GLENNIE'S MILK","UDDERLY NUTRITIOUS","JOHNNIES B.B.CREAMS"
2500 DATA "GIVE A HOOT","DON'T POLLUTE","CLEAN BODY","CLEAN MIND","TAKE YOUR P
ICK","STOP HEIR POLLUTION","MAKE LOVE NOT BABIES"
2510 DATA "ZPG FOR ME","NIXONS THE ONE"
2520 DATA "WANG LABS.","WORD PROCESSING","CALCULATORS","WITH PERIPHERALS"
2530 DATA "TAPE CASSETTES","DISK MEMORIES","LINE PRINTERS","TELECOMMUNICATION"
,"PLOTTERS","CARD READERS"
2540 DATA "SEE A WANG SALES REP"
2550 DATA "9"
2560 FOR Z=1TO 16
: PRINT
: NEXT Z
2570 GOSUB '33("^ ^ ^ ^ ^ ^^^^")
2580 GOSUB '33("* * * * * * * *")
2590 GOSUB '33("J J J J JJ J J")
2600 GOSUB '33("# # % % % # # #")
2610 GOSUB '33("$ $ $ $ $ % $ $ $")
2620 GOSUB '33("& & & & ??????? ? && & &&&")
2630 GOSUB '33(" P P P P P P P P P P")
2640 GOSUB '33(" O 0 0 0 0 0 000O")
2650 GOSUB '33(" ")
2660 GOSUB '33(" ^^^ ^^^ ^^^ ^^^")
2670 GOSUB '33(" 8 8 8 8 8 8 8 8")
2680 GOSUB '33(" G G G G G G")
2690 GOSUB '33(" + + + + + +")
2700 GOSUB '33(" ! ! ! ! ! !")
2710 GOSUB '33(" S S S S S S")
2720 GOSUB '33(" = = = = = =")
2730 GOSUB '33(" OO.OO <<<<< >>> OOO")
2740 FOR A=1TO 16
: GOSUB '33(" ")
: NEXT A
2750 RETURN
2760 DEFFN'33(S$)
: S9$=" "
: FOR Z=1TO 32
: IF STR(S$,Z,1)=" "THEN 2780
2770 STR(S9$,2*Z,1)=STR(S$,Z,1)
2780 NEXT Z
: PRINT S9$
: FOR Z=1TO 100
: NEXT Z
: RETURN
2790 NEXT Z
: FOR Z=1TO 100
: NEXT Z
: RETURN
2791 DEFFN'14
: LOAD DC R"MENU"