image of READY prompt

Wang2200.org

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 " "