image of READY prompt

Wang2200.org

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"