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"