File BBALLA.BA (BASIC source file)

Directory of image this file is from
This file as a plain text file

100 REM                BASEBALL - 1977
120 REM                ===============
140 REM
160 REM
180 REM                K. M. BOWYER
200 REM                1000 CEDAR AVE.
220 REM                LEWES, DELAWARE
240 REM                19958
260 REM
280 REM     <<<DEFINE DIMENSIONS>>>
300 REM
320 DIM N$(9),P9$(9,4),H9$(9,15),V9$(9,15),V(16),H(16)
340 DIM I1(16),B3(7),Q(7)
360 DIM S1$(5,1)
380 REM
400 REM     <<<GET FORMALITIES OUT OF THE WAY>>>
420 REM
440 PRINT "WELCOME TO SPITBALL STATIUM"\PRINT
460 RANDOMIZE
480 PRINT "TODAY OUR HOMETOWN 'SPITS' MEET THE VISITING :";
500 INPUT N$\PRINT
520 PRINT "WHILE THE SPITS TAKE THE FIELD, LETS LOOK AT THE LINEUPS."
540 PRINT\PRINT "BAT","POS","SPITS",,N$\PRINT
560 FOR I=1 TO 9
580 READ P9$(I),H9$(I)
600 PRINT I,P9$(I),H9$(I),,
620 INPUT V9$(I)
640 NEXT I
660 REM
680 REM     <<<SET UP CONSTANTS FOR  GAME>>>
700 REM
720 Q(1)=37\Q(2)=50\Q(3)=6\Q(4)=4\Q(5)=2\Q(6)=1
740 Q(7)=Q(1)+Q(2)+Q(3)+Q(4)+Q(5)+Q(6)
760 S=0\FOR I=1 TO 6\S=S+Q(I)\Q(I)=INT(S*100/Q(7))\NEXT I
780 I1=0\T=1\O=3\FOR I=1 TO 16\H(I)=0\V(I)=0\NEXT I\B1=1\B2=1
800 REM
820 REM     <<<TOP OF INNING>>>
840 REM
860 GOTO 3440
880 REM
900 REM     <<<VISITING BATTER UP>>>
920 REM     <<<PRINT DIAAMOND, SCORE, COUNT AND BATTER>>>
940 REM
960 GOSUB 3740
980 PRINT\PRINT N$;" BATTER IS - ";V9$(B1);"."
1000 REM
1020 REM     <<<VISITOR BATTER SWINGS>>>
1040 REM
1060 GOSUB 2280\PRINT "YOUR SWING [(S)TEAL OR <CR>]: ";
1080 PRINT\PRINT ">";
1100 IF S$="S" GOTO 1980\Q(7)=100*RND(1)
1120 IF Q(7)>Q(1) GOTO 1160\B=B+1\PRINT "BALL";B\IF B<4 GOTO 960
1140 GOSUB 2680\GOTO 960
1160 IF Q(7)>Q(2) GOTO 1240\S=S+1\PRINT "STRIKE";S
1180 IF S=3 GOTO 1200\GOTO 960
1200 O=O+1\B1=B1+1\IF B1=10 GOTO 1220\GOTO 3400
1220 B1=1\GOTO 3400
1240 IF Q(7)>Q(3) GOTO 1300\H5=1
1260 P=40\GOSUB 3320\IF P=1 GOTO 4040
1280 GOSUB 3020\GOTO 960
1300 IF Q(7)>Q(4) GOTO 1320\H5=2\GOTO 1260
1320 IF Q(7)>Q(5) GOTO 1340\H5=3\GOTO 1260
1340 H5=4\GOTO 1260
1360 REM
1380 REM     <<<BOTTOM OF INNING>>>
1400 REM     <<<PRINT DIAMOND, SCORE, COUNT AND BATTER>>>
1420 REM
1440 GOSUB 3740
1460 PRINT\PRINT "SPITS BATTER IS - ";H9$(B2);"."
1480 REM
1500 REM     <<<VISITING PITCHER PITCHES>>>
1520 REM
1540 GOSUB 2280\PRINT "YOUR PITCH [<CR>]: ";
1560 PRINT\PRINT ">";
1580 REM
1600 REM     <<<HOME TEAM STEAL GENERATOR>>>
1620 REM
1640 IF B3(1)+B3(2)+B3(3)=0 GOTO 1700
1660 P=8\GOSUB 3320\IF P=0 GOTO 1700
1680 GOTO 1980
1700 Q(7)=100*RND(1)
1720 IF Q(7)>Q(1) GOTO 1780\B=B+1\PRINT "BALL";B
1740 IF B<4 GOTO 1440
1760 GOSUB 2680\GOTO 1440
1780 IF Q(7)>Q(2) GOTO 1860
1800 S=S+1\PRINT "STRIKE";S\IF S=3 GOTO 1820\GOTO 1440
1820 O=O+1\B2=B2+1\IF B2=10 GOTO 1840\GOTO 3440
1840 B2=1\GOTO 3400
1860 IF Q(7)>Q(3) GOTO 1900\H5=1
1880 GOSUB 3020\GOTO 1440
1900 IF Q(7)>Q(4) GOTO 1920\H5=2\GOTO 1880
1920 IF Q(7)>Q(5) GOTO 1940\H5=3\GOTO 1880
1940 H5=4\GOTO 1880
1960 REM
1980 REM     <<<STEAL HANDLER>>>
2000 REM
2020 FOR I=3 TO 1 STEP -1\IF B3(I)<>0 GOTO 2080\NEXT I
2040 PRINT "CAN'T STEAL - NOBODY ON BASE !"
2060 IF T=1 GOTO 1440\GOTO 960
2080 IF T=1 GOTO 2100\PRINT V9$(B3(I));\GOTO 2120
2100 PRINT H9$(B3(I));
2120 PRINT " ATTEMPTS TO STEAL - HE IS ";
2140 P=80-20*I\GOSUB 3320\IF P=1 GOTO 2180
2160 PRINT "OUT !"\O=O+1\B3(I)=0\GOTO 3440
2180 PRINT "SAFE !"\B3(I+1)=B3(I)\B3(I)=0
2200 IF I<>3 GOTO 2060\GOSUB 2360\GOTO 2060
2220 REM
2240 REM     <<<PRINT COUNT SUBROUTINE>>>
2260 REM
2280 PRINT "   B    S    O"\PRINT "  ";B;"  ";S;"  ";O
2300 PRINT
2320 RETURN
2340 REM
2360 REM     <<<RUN HANDLER>>>
2380 REM
2400 IF B3(4)+B3(5)+B3(6)+B3(7)<>0 GOTO 2420\RETURN
2420 FOR I=7 TO 4 STEP -1\IF B3(I)=0 GOTO 2480
2440 IF T=1 GOTO 2520
2460 PRINT V9$(B3(I));" SCORES"\V(I1)=V(I1)+1\V(16)=V(16)+1
2480 B3(I)=0\NEXT I
2500 RETURN
2520 PRINT H9$(B3(I));" SCORES"\H(I1)=H(I1)+1\H(16)=H(16)+1
2540 GOTO 2480
2560 REM
2580 REM     <<<CLEAR BASES, OUTS, STRIKES AND BALLS SUBROUTINE>>>
2600 REM
2620 FOR I=1 TO 7\B3(I)=0\NEXT I
2640 B=0\S=0\O=0\RETURN
2660 REM
2680 REM     <<<WALK HANDLER>>>
2700 REM
2720 IF T=1 GOTO 2740\PRINT V9$(B1);" WALKS"\GOTO 2760
2740 PRINT H9$(B2);" WALKS"
2760 B=0\S=0\IF B3(1)<>0 GOTO 2860
2780 B3(1)=B1
2800 IF T=0 GOTO 2820\B2=B2+1\IF B2<>10 GOTO 2840\B2=1\GOTO 2840
2820 B1=B1+1\IF B1<>10 GOTO 2840\B1=1
2840 RETURN
2860 IF B3(2)<>0 GOTO 2900
2880 B3(2)=B3(1)\GOTO 2780
2900 IF B3(3)<>0 GOTO 2940
2920 B3(3)=B3(2)\GOTO 2880
2940 B3(4)=B3(3)\GOSUB 2400\GOTO 2920
2960 REM
2980 REM     <<<HIT HANDLER>>>
3000 REM
3020 B=0\S=0\FOR I=1 TO H5
3040 FOR J=7 TO 2 STEP -1
3060 B3(J)=B3(J-1)
3080 NEXT J\B3(1)=0
3100 NEXT I
3120 IF T=1 GOTO 3180
3140 PRINT V9$(B1);\B3(H5)=B1
3160 B1=B1+1\IF B1<>10 GOTO 3220\B1=1\GOTO 3220
3180 PRINT H9$(B2);\B3(H5)=B2
3200 B2=B2+1\IF B2<>10 GOTO 3220\B2=1
3220 PRINT " GETS";H5;" BASE HIT"\GOSUB 2400
3240 RETURN
3260 REM
3280 REM     <<<PROBABILITY HANDLER>>>
3300 REM
3320 IF P/100<=RND(1) GOTO 3340\P=1\GOTO 3360
3340 P=0
3360 RETURN
3380 REM
3400 REM     <<<OUT DISPATCHER>>>
3420 REM
3440 S=0\B=0\IF O=>3 GOTO 3460\IF T=1 GOTO 1440\GOTO 960
3460 O=0\IF T=1 GOTO 3520
3480 IF I1<9 GOTO 3500\IF V(16)=>H(16) GOTO 3500\GOTO 3600
3500 PRINT\PRINT "BOTTOM OF INNING NO.";I1\T=1\GOSUB 2620\GOTO 1440
3520 IF I1<9 GOTO 3560\IF I1=13 GOTO 3660
3540 IF V(16)=H(16) GOTO 3560\GOTO 3600
3560 PRINT\PRINT "TOP OF INNING NO.";\I1=I1+1
3580 T=0\PRINT I1\GOSUB 2620\GOTO 960
3600 PRINT\PRINT "END OF GAME"
3620 FOR I=1 TO 7\B3(I)=0\NEXT I
3640 PRINT "FINAL SCORE:"\GOSUB 3740\STOP
3660 PRINT\PRINT "GAME CALLED DUE TO DARKNESS"\GOTO 3620
3680 REM
3700 REM     <<<DISPLAAY SUBROUTINE>>>
3720 REM
3740 PRINT\PRINT
3760 IF B3(2)=0 GOTO 3780\PRINT "      [X]","   : INNING",\GOTO 3800
3780 PRINT "      [O]","   : INNING",
3800 FOR I=1 TO I1\PRINT I;\NEXT I\PRINT "   R"
3820 IF B3(3)=0 GOTO 3840\PRINT "[X]         ";\GOTO 3860
3840 PRINT "[O]         ";
3860 IF B3(1)=0 GOTO 3880\PRINT "[X]  : ";\GOTO 3900
3880 PRINT "[O]  : ";
3900 PRINT N$,\FOR I=1 TO I1\PRINT V(I);\NEXT I\PRINT "  ";V(16)
3920 PRINT "      [O]","   : SPITS",\FOR I=1 TO I1\PRINT H(I);\NEXT I
3940 PRINT "  ";H(16)
3960 RETURN
3980 REM
4000 REM     <<<FLY BALL & ERROR HANDELR>>>
4020 REM
4040 PRINT "FLY BALL CAUGHT BY ";
4060 P=1+INT(9*RND(1))\IF T=1 GOTO 4100
4080 PRINT H9$(P);" (";P9$(P);")"\GOTO 4120
4100 PRINT V9$(P);" (";P9$(P);")"
4120 P=15\GOSUB 3320\IF P=1 GOTO 4140\O=O+1\GOTO 3440
4140 PRINT "*ERROR* HE DROPPED THE BALL!! - SAFE AT FIRST!"
4160 H5=1\GOSUB 3020\GOTO 3440
4180 REM
4200 REM     <<<DEFINE POSITIONS AND HOME TEAM PLAYERS>>>
4220 REM
4240 DATA "1B","LEFTY O'TOOLE","2B","DEAD EYE HERB"
4260 DATA "SS","SCOOP JAMES","3B","DIGGER DAN"
4280 DATA "LF","SCRATCHER SAM","CF","BLIND BERT"
4300 DATA "RF","SLUGGER MCGHEE","C ","POP UP PETE"
4320 DATA "P ","WILD WILLIE"
4340 REM
4360 REM     <<<END OF PROGRAM>>>
4380 REM
4400 END



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search