home *** CD-ROM | disk | FTP | other *** search
/ START Magazine / START VOL 4 NO 7.st / FOOTBALL.ARC / FOOTBALL.GFA (.txt) < prev    next >
Encoding:
GFA-BASIC Atari  |  1989-11-07  |  60.8 KB  |  3,006 lines

  1. ' ================================================================
  2. ' ======================= Crunch Time Football ===================
  3. ' =============== Copyright 1990 by Antic Publishing Inc. ========
  4. ' ================================================================
  5. setup
  6. start:
  7. dissolve
  8. teamcolors
  9. teamname
  10. level
  11. newgame
  12. DO
  13.   IF offense#=1
  14.     offense
  15.   ELSE
  16.     defense
  17.   ENDIF
  18. LOOP UNTIL endgame#=1
  19. STICK 0
  20. SHOWM
  21. ALERT 2,"Do you want to|play another game?",1," Yes | Quit ",playmore#
  22. IF playmore#=1
  23.   GOTO start
  24. ENDIF
  25. restore_pal      !complements retain_pal which is called in setup
  26. PROCEDURE offense
  27.   REPEAT
  28.     q#=RANDOM(3+(diff#>2))
  29.     IF diff#<3
  30.       bigplay#=q#-1
  31.     ELSE
  32.       bigplay#=q#-2
  33.     ENDIF
  34.     IF bigplay#=-2 AND diff#=3
  35.       bigplay#=0
  36.     ENDIF
  37.     IF fg#=1
  38.       fg#=0
  39.     ENDIF
  40.     IF ko#=1
  41.       kickoff
  42.       ko#=2
  43.       count#=12
  44.     ELSE IF punt#=1
  45.       punt#=2
  46.     ELSE IF int2#=1
  47.       int2#=0
  48.     ELSE
  49.       tackle#=0
  50.       chooseplay
  51.       CLS
  52.       redball
  53.     ENDIF
  54.     IF punt#<>1 AND fg#<>1
  55.       REPEAT
  56.         mover
  57.         IF y#<goal# AND offense#=1
  58.           td
  59.         ELSE IF off#=0
  60.           players
  61.           j#=RANDOM(7)
  62.           IF j#=1
  63.             IF screen#<=bigplay#
  64.             ELSE IF screen#>bigplay#
  65.               chaser
  66.               chaser
  67.             ENDIF
  68.           ELSE
  69.             chaser
  70.           ENDIF
  71.           IF ABS(x#-cx#)<16 AND ABS(y#-cy#)<24 AND offense#=1
  72.             tackle#=1
  73.           ENDIF
  74.         ELSE IF off#=1
  75.           scroll
  76.         ENDIF
  77.         INC frame#
  78.         IF frame#=3
  79.           frame#=1
  80.         ENDIF
  81.       UNTIL ko#=1 OR tackle#=1 OR endgame#=1 OR offense#=0
  82.       IF tackle#=1
  83.         tackle
  84.       ENDIF
  85.     ENDIF
  86.   UNTIL offense#=0 OR endgame#=1
  87. RETURN
  88. PROCEDURE defense
  89.   REPEAT
  90.     bigplay#=RANDOM(2)
  91.     IF diff#=1
  92.       bigplay#=-1
  93.     ENDIF
  94.     IF fg#=1
  95.       fg#=0
  96.     ENDIF
  97.     IF ko#=1
  98.       kickoff2
  99.       ko#=2
  100.       count#=12
  101.     ELSE IF punt#=1
  102.       punt#=2
  103.     ELSE IF int#=1
  104.       int#=0
  105.     ELSE
  106.       tackle#=0
  107.       choose2
  108.       CLS
  109.       blueball
  110.     ENDIF
  111.     IF punt#<>1 AND fg#<>1
  112.       REPEAT
  113.         q#=RANDOM(7)
  114.         IF q#=1
  115.           IF screen#<=bigplay#
  116.           ELSE IF screen#>bigplay#
  117.             mover
  118.             mover
  119.           ENDIF
  120.         ELSE
  121.           mover
  122.         ENDIF
  123.         IF cy#>goal# AND offense#=0
  124.           td
  125.         ELSE IF ABS(x#-cx#)<16 AND ABS(y#-cy#)<24
  126.           tackle#=1
  127.         ENDIF
  128.         players2
  129.         INC frame#
  130.         IF frame#=3
  131.           frame#=1
  132.         ENDIF
  133.       UNTIL ko#=1 OR tackle#=1 OR endgame#=1 OR offense#=1
  134.       IF tackle#=1
  135.         tackle
  136.       ENDIF
  137.     ENDIF
  138.   UNTIL offense#=1 OR endgame#=1
  139. RETURN
  140. PROCEDURE mover
  141.   a#=STICK(1)
  142.   SELECT a#
  143.   CASE 0
  144.     cel#=1
  145.   CASE 1
  146.     cel#=frame#+4
  147.     y#=y#-sp#/2
  148.   CASE 2
  149.     cel#=frame#+2
  150.     y#=y#+sp#/2
  151.   CASE 4
  152.     cel#=frame#+8
  153.     x#=x#-sp#/2
  154.   CASE 8
  155.     cel#=frame#+6
  156.     x#=x#+sp#/2
  157.   CASE 5
  158.     cel#=frame#+4
  159.     x#=1+x#-sp#/2
  160.     y#=y#-sp#/2
  161.   CASE 9
  162.     cel#=frame#+4
  163.     x#=-1+x#+sp#/2
  164.     y#=y#-sp#/2
  165.   CASE 6
  166.     cel#=frame#+2
  167.     x#=1+x#-sp#/2
  168.     y#=y#+sp#/2
  169.   CASE 10
  170.     cel#=frame#+2
  171.     x#=-1+x#+sp#/2
  172.     y#=y#+sp#/2
  173.   ENDSELECT
  174.   IF x#<0
  175.     x#=0
  176.   ELSE IF x#>304
  177.     x#=304
  178.   ENDIF
  179.   IF y#<0
  180.     y#=0
  181.     off#=1
  182.   ELSE IF y#>176
  183.     y#=176
  184.   ENDIF
  185.   k#=POINT(x#+8,y#+28)
  186.   IF k#=0 OR k#=8
  187.   ELSE
  188.     x#=x1#
  189.     y#=y1#
  190.   ENDIF
  191.   IF a#<>0
  192.     PUT x1#,y1#,one$
  193.     GET x#,y#,x#+15,y#+23,one$
  194.     IF offense#=1
  195.       PUT x#,y#,redhot$(cel#)
  196.     ELSE
  197.       PUT x#,y#,red$(cel#)
  198.     ENDIF
  199.   ENDIF
  200.   x1#=x#
  201.   y1#=y#
  202. RETURN
  203. PROCEDURE chaser
  204.   IF offense#=1
  205.     IF y#<>cy#
  206.       IF y#<cy#
  207.         blue$=blue$(frame#+4)
  208.         cy#=cy#-sp#/2
  209.       ELSE IF y#>cy#
  210.         blue$=blue$(frame#+2)
  211.         cy#=cy#+sp#/2
  212.       ENDIF
  213.       IF x#<cx#
  214.         cx#=1+cx#-sp#/2
  215.       ELSE IF x#>cx#
  216.         cx#=-1+cx#+sp#/2
  217.       ENDIF
  218.     ELSE IF y#=cy#
  219.       IF x#<cx#
  220.         blue$=blue$(frame#+8)
  221.         cx#=cx#-sp#
  222.       ELSE IF x#>cx#
  223.         blue$=blue$(frame#+6)
  224.         cx#=cx#+sp#
  225.       ENDIF
  226.     ENDIF
  227.   ENDIF
  228.   IF offense#=0
  229.     bluehot$=bluehot$(frame#+2)
  230.     cy#=cy#+sp#/2
  231.     IF ABS(x#-cx#)<40
  232.       IF x#<cx#
  233.         cx#=-1+cx#+sp#/2
  234.       ELSE IF x#>cx#
  235.         cx#=1+cx#-sp#/2
  236.       ENDIF
  237.     ENDIF
  238.   ENDIF
  239.   IF cy#<0
  240.     cy#=0
  241.   ELSE IF cy#>176 AND offense#=1
  242.     cy#=176
  243.   ELSE IF cy#>176 AND offense#=0
  244.     CLS
  245.     scroll
  246.   ELSE IF cx#<0
  247.     cx#=0
  248.   ELSE IF cx#>304
  249.     cx#=304
  250.   ENDIF
  251.   PUT cx1#,cy1#,two$
  252.   GET cx#,cy#,cx#+15,cy#+23,two$
  253.   IF offense#=0
  254.     PUT cx#,cy#,bluehot$
  255.   ELSE
  256.     PUT cx#,cy#,blue$
  257.   ENDIF
  258.   cx1#=cx#
  259.   cy1#=cy#
  260. RETURN
  261. ' ==================
  262. PROCEDURE kickoff
  263.   CLS
  264.   fp#=63
  265.   IF safety#=1
  266.     fp#=78
  267.   ENDIF
  268.   field
  269.   FOR t#=60 TO 240 STEP 60
  270.     PUT t#,160,red$(2)
  271.   NEXT t#
  272.   PUT 155,65,ball$(1)
  273.   FOR t#=50 TO 250 STEP 20
  274.     PUT t#,22,blue$(1)
  275.     IF t#=130
  276.       t#=150
  277.     ENDIF
  278.   NEXT t#
  279.   PUT 150,2,blue$(1)
  280.   GET 50,20,65,45,koblue$(1)
  281.   GET 170,20,185,45,koblue$(2)
  282.   REPEAT
  283.   UNTIL STRIG(1)
  284.   frame#=1
  285.   PUT 150,2,blue$(3)
  286.   GET 150,0,165,25,koblue$(1)
  287.   PUT 150,2,blue$(4)
  288.   GET 150,0,165,25,koblue$(2)
  289.   FOR t#=2 TO 20 STEP 2
  290.     PUT 150,t#,koblue$(frame#)
  291.     INC frame#
  292.     IF frame#=3
  293.       frame#=1
  294.     ENDIF
  295.     PAUSE 2
  296.   NEXT t#
  297.   FOR t#=22 TO 38 STEP 2
  298.     FOR tt#=50 TO 250 STEP 20
  299.       PUT tt#,t#,koblue$(frame#)
  300.     NEXT tt#
  301.     INC frame#
  302.     IF frame#=3
  303.       frame#=1
  304.     ENDIF
  305.   NEXT t#
  306.   ty#=75
  307.   PUT 155,65,ball$(2)
  308.   FOR t#=40 TO 60 STEP 2
  309.     PUT 155+2*(t#-40),ty#,ball$(3)
  310.     PUT 155,ty#,ball$(1)
  311.     FOR tt#=50 TO 250 STEP 20
  312.       PUT tt#,t#,koblue$(frame#)
  313.     NEXT tt#
  314.     INC frame#
  315.     IF frame#=3
  316.       frame#=1
  317.     ENDIF
  318.     ty#=ty#+10
  319.     PUT 155+2*(t#-40),ty#-10,ball$(2)
  320.     PUT 155,ty#-10,ball$(2)
  321.   NEXT t#
  322.   CLS
  323.   goal#=-30
  324.   fp#=10
  325.   IF safety#=1
  326.     fp#=30
  327.     safety#=0
  328.   ENDIF
  329.   field
  330.   sp#=4
  331.   x#=150
  332.   y#=170
  333.   x1#=x#
  334.   y1#=y#
  335.   cx#=100+RANDOM(100)
  336.   cy#=RANDOM(20)
  337.   cx1#=cx#
  338.   cy1#=cy#
  339.   one$=blank$
  340.   two$=blank$
  341.   PUT cx#,cy#,blue$(3)
  342.   PUT x#,y#,red$(2)
  343.   SGET screen$
  344.   FOR t#=10 TO 160 STEP 10
  345.     PUT 200-t#/4,t#-5,ball$(3)
  346.     PUT 155,t#-5,ball$(1)
  347.     PAUSE 2
  348.     SPUT screen$
  349.   NEXT t#
  350.   PUT x#,y#,red$(2)
  351.   off#=0
  352.   screen#=0
  353.   ko#=2
  354.   count#=12
  355.   tackle#=0
  356. RETURN
  357. PROCEDURE chooseplay
  358.   WHILE STRIG(1)
  359.   WEND
  360.   IF tm#=1 AND (qtr#=2 OR qtr#=4)
  361.     ' ========== choose play ============
  362.     DEFFILL 0,2,8
  363.     PBOX 100,50,220,150
  364.     COLOR 6
  365.     BOX 100,50,220,150
  366.     DEFTEXT 2,0,0,6
  367.     TEXT 124,70,"LAST PLAY"
  368.     DEFTEXT 5,0,0,6
  369.     IF qtr#=2
  370.       TEXT 116,90,"OF THE HALF"
  371.     ELSE IF qtr#=4
  372.       TEXT 116,90,"OF THE GAME"
  373.     ENDIF
  374.     DEFTEXT 6,0,0,6
  375.     TEXT 110,120,"Field Goal"
  376.     DEFTEXT 3,0,0,6
  377.     TEXT 110,130,"Go for It"
  378.     '
  379.     fdp#=1
  380.     fdp1#=1
  381.     fg#=1
  382.     REPEAT
  383.       a#=STICK(1)
  384.       PAUSE 2
  385.       IF a#=1
  386.         fdp#=fdp#-1
  387.       ELSE IF a#=2
  388.         fdp#=fdp#+1
  389.       ENDIF
  390.       IF fdp#=0
  391.         fdp#=2
  392.       ELSE IF fdp#=3
  393.         fdp#=1
  394.       ENDIF
  395.       '
  396.       IF a#=1 OR a#=2
  397.         DEFTEXT 3,0,0,6
  398.         SELECT fdp1#
  399.         CASE 1
  400.           TEXT 110,120,"Field Goal"
  401.         CASE 2
  402.           TEXT 110,130,"Go for It"
  403.         ENDSELECT
  404.         '
  405.         DEFTEXT 6,0,0,6
  406.         SELECT fdp#
  407.         CASE 1
  408.           TEXT 110,120,"Field Goal"
  409.           punt#=0
  410.           fg#=1
  411.         CASE 2
  412.           TEXT 110,130,"Go for It"
  413.           punt#=0
  414.           fg#=0
  415.         ENDSELECT
  416.         fdp1#=fdp#
  417.       ENDIF
  418.     UNTIL STRIG(1)
  419.   ENDIF
  420.   IF dn#=4 AND fg#<>1
  421.     ' ========== choose play ============
  422.     DEFFILL 0,2,8
  423.     PBOX 100,50,220,150
  424.     COLOR 6
  425.     BOX 100,50,220,150
  426.     DEFTEXT 2,0,0,6
  427.     TEXT 116,70,"FOURTH DOWN"
  428.     DEFTEXT 5,0,0,6
  429.     TEXT 116,90,"CHOOSE PLAY"
  430.     DEFTEXT 6,0,0,6
  431.     TEXT 110,110,"Punt"
  432.     DEFTEXT 3,0,0,6
  433.     TEXT 110,120,"Field Goal"
  434.     TEXT 110,130,"Go for It"
  435.     '
  436.     fdp#=1
  437.     fdp1#=1
  438.     punt#=1
  439.     fg#=0
  440.     REPEAT
  441.       a#=STICK(1)
  442.       PAUSE 2
  443.       IF a#=1
  444.         fdp#=fdp#-1
  445.       ELSE IF a#=2
  446.         fdp#=fdp#+1
  447.       ENDIF
  448.       IF fdp#=0
  449.         fdp#=3
  450.       ELSE IF fdp#=4
  451.         fdp#=1
  452.       ENDIF
  453.       '
  454.       IF a#=1 OR a#=2
  455.         DEFTEXT 3,0,0,6
  456.         SELECT fdp1#
  457.         CASE 1
  458.           TEXT 110,110,"Punt"
  459.         CASE 2
  460.           TEXT 110,120,"Field Goal"
  461.         CASE 3
  462.           TEXT 110,130,"Go for It"
  463.         ENDSELECT
  464.         '
  465.         DEFTEXT 6,0,0,6
  466.         SELECT fdp#
  467.         CASE 1
  468.           TEXT 110,110,"Punt"
  469.           punt#=1
  470.           fg#=0
  471.         CASE 2
  472.           TEXT 110,120,"Field Goal"
  473.           punt#=0
  474.           fg#=1
  475.         CASE 3
  476.           TEXT 110,130,"Go for It"
  477.           punt#=0
  478.           fg#=0
  479.         ENDSELECT
  480.         fdp1#=fdp#
  481.       ENDIF
  482.     UNTIL STRIG(1)
  483.   ENDIF
  484.   IF punt#=0 AND fg#=0
  485.     DEFLINE 1,1,0,0
  486.     DEFFILL 0,2,8
  487.     COLOR 3
  488.     FOR g#=1 TO 8
  489.       PUT grid#(g#,1),grid#(g#,2),diagram$(g#)
  490.     NEXT g#
  491.     g#=1
  492.     COLOR 2
  493.     BOX 20,25,100,75
  494.     '
  495.     REPEAT
  496.       a#=STICK(1)
  497.       IF a#<>0
  498.         COLOR 3
  499.         BOX grid#(g#,1),grid#(g#,2),grid#(g#,1)+80,grid#(g#,2)+50
  500.         SELECT a#
  501.         CASE 1
  502.           g#=2
  503.         CASE 2
  504.           g#=7
  505.         CASE 4
  506.           g#=4
  507.         CASE 5
  508.           g#=1
  509.         CASE 6
  510.           g#=6
  511.         CASE 8
  512.           g#=5
  513.         CASE 9
  514.           g#=3
  515.         CASE 10
  516.           g#=8
  517.         ENDSELECT
  518.         COLOR 2
  519.         BOX grid#(g#,1),grid#(g#,2),grid#(g#,1)+80,grid#(g#,2)+50
  520.       ENDIF
  521.       play#=g#
  522.       PAUSE 5
  523.     UNTIL STRIG(1)
  524.     q#=RANDOM(2)
  525.     IF q#=1
  526.       play#=play#+8
  527.     ENDIF
  528.   ENDIF
  529. RETURN
  530. PROCEDURE redball
  531.   field
  532.   screen#=0
  533.   off#=0
  534.   count#=1
  535.   countt#=1
  536.   ko#=0
  537.   x#=150
  538.   y#=130
  539.   x1#=x#
  540.   y1#=y#
  541.   frame#=1
  542.   sp#=4
  543.   one$=blank$
  544.   IF punt#=0 AND fg#=0
  545.     PUT x#,y#,red$(2)
  546.     teams
  547.   ELSE
  548.     redkick
  549.   ENDIF
  550. RETURN
  551. PROCEDURE teams
  552.   FOR t#=90 TO 210 STEP 40
  553.     PUT t#,70,blue$(1)
  554.   NEXT t#
  555.   FOR t#=110 TO 190 STEP 40
  556.     PUT t#,60,blue$(1)
  557.   NEXT t#
  558.   GET 90,55,230,95,bteam$
  559.   FOR t#=70 TO 230 STEP 160
  560.     PUT t#,40,blue$(1)
  561.   NEXT t#
  562.   FOR yes#=1 TO 16
  563.     IF play#=yes#
  564.       FOR tt#=1 TO 12
  565.         FOR ttt#=1 TO 3
  566.           pr#(1,tt#,ttt#)=p#(ppp#(play#,1),tt#,ttt#)
  567.           pr#(2,tt#,ttt#)=p#(ppp#(play#,2),tt#,ttt#)
  568.           pr#(3,tt#,ttt#)=p#(ppp#(play#,3),tt#,ttt#)
  569.           pb#(1,tt#,ttt#)=p#(ppp#(play#,4),tt#,ttt#)
  570.           pb#(2,tt#,ttt#)=p#(ppp#(play#,5),tt#,ttt#)
  571.           pb#(3,tt#,ttt#)=p#(ppp#(play#,6),tt#,ttt#)
  572.         NEXT ttt#
  573.       NEXT tt#
  574.     ENDIF
  575.   NEXT yes#
  576.   '
  577.   SELECT play#
  578.   CASE 2,3,4,5,6,9,10,11,13,14,15,16
  579.     cx#=130
  580.     cy#=30
  581.   CASE 8,12
  582.     cx#=170
  583.     cy#=30
  584.   CASE 1,7
  585.     cx#=230
  586.     cy#=40
  587.   ENDSELECT
  588.   SELECT play#
  589.   CASE 2,3,4,5,6,8,10,11,12,13,14,16
  590.     pass#=1
  591.   DEFAULT
  592.   ENDSELECT
  593.   cx1#=cx#
  594.   cy1#=cy#
  595.   two$=blank$
  596.   PUT cx#,cy#,blue$(1)
  597.   FOR t#=90 TO 210 STEP 20
  598.     PUT t#,100,red$(2)
  599.   NEXT t#
  600.   GET 90,100,105,127,red$(11)
  601.   FOR t#=1 TO 3
  602.     PUT pr#(t#,1,1),pr#(t#,1,2),red$(2)
  603.     PUT pb#(t#,1,1),pb#(t#,1,2),blue$(1)
  604.   NEXT t#
  605.   REPEAT
  606.   UNTIL STRIG(1)
  607.   PUT 150,130,redhot$(2)
  608.   FOR t#=1 TO 4
  609.     PUT 90,55+t#*2,bteam$
  610.     FOR tt#=90 TO 210 STEP 40
  611.       PUT tt#,100-t#*3,red$(11)
  612.     NEXT tt#
  613.     FOR tt#=110 TO 190 STEP 40
  614.       PUT tt#,100-t#*4,red$(11)
  615.     NEXT tt#
  616.     mover
  617.   NEXT t#
  618.   IF play#=6 OR play#=14
  619.     PUT 210,64,blank$
  620.     PUT 210,88,blank$
  621.     PUT 260,74,blue$(1)
  622.     PUT 260,88,red$(2)
  623.   ELSE IF play#=7 OR play#=15
  624.     PUT 110,64,blank$
  625.     PUT 110,88,blank$
  626.     PUT 130,64,blank$
  627.     PUT 130,88,blank$
  628.     PUT 140,44,blue$(1)
  629.     PUT 140,54,red$(2)
  630.     PUT 100,84,blue$(1)
  631.     PUT 100,94,red$(2)
  632.   ENDIF
  633. RETURN
  634. PROCEDURE players
  635.   IF count#<12
  636.     sp#=8
  637.     PUT pb#(countt#,count#,1),pb#(countt#,count#,2),blank$
  638.     PUT pb#(countt#,count#+1,1),pb#(countt#,count#+1,2),blue$(pb#(countt#,count#+1,3))
  639.     PUT pr#(countt#,count#,1),pr#(countt#,count#,2),blank$
  640.     PUT pr#(countt#,count#+1,1),pr#(countt#,count#+1,2),red$(pr#(countt#,count#+1,3))
  641.     INC countt#
  642.     IF countt#=4
  643.       countt#=1
  644.       count#=count#+1
  645.     ENDIF
  646.     IF count#>3 AND pass#=1 AND STRIG(1)
  647.       pass
  648.     ENDIF
  649.   ELSE
  650.     sp#=4
  651.   ENDIF
  652. RETURN
  653. PROCEDURE pass
  654.   '
  655.   IF int#=2 AND (play#=4 OR play#=5 OR play#=8)
  656.     q#=RANDOM(4)
  657.     IF q#=1 AND qtr#>1
  658.       int#=1
  659.     ENDIF
  660.   ENDIF
  661.   '
  662.   IF countt#=1
  663.     count#=count#-1
  664.   ENDIF
  665.   IF count#>11
  666.     count#=11
  667.   ENDIF
  668.   '
  669.   IF play#=2 OR play#=3 OR play#=6
  670.     mmm#=7
  671.   ELSE
  672.     mmm#=5
  673.   ENDIF
  674.   PUT x#,y#,blank$
  675.   PUT x#,y#,red$(mmm#)
  676.   rx#=pr#(1,count#+1,1)
  677.   ry#=pr#(1,count#+1,2)
  678.   rp#=pr#(1,count#+1,3)
  679.   IF int#=1
  680.     rx#=pb#(1,count#+1,1)
  681.     ry#=pb#(1,count#+1,2)
  682.     rp#=pb#(1,count#+1,3)
  683.   ENDIF
  684.   SGET screen$
  685.   SELECT play#
  686.   CASE 2,10,4,12,5,13,8,16
  687.     q#=RANDOM(3)
  688.     IF q#=1 AND int#<>1
  689.       rx#=rx#+20
  690.       ry#=ry#+20
  691.       inc#=1
  692.       tackle#=1
  693.       count#=12
  694.     ENDIF
  695.   CASE 1,9,3,11,6,14,7,15
  696.     q#=0
  697.   ENDSELECT
  698.   FOR mm#=1 TO 10
  699.     IF inc#=0
  700.       PUT 5+x#+mm#*((rx#-x#)/10),y#+mm#*((ry#-y#)/10),ball$(3)
  701.     ELSE
  702.       PUT (5-mm#/2)+x#+mm#*((rx#-x#)/10),y#+mm#*((ry#-y#)/10),ball$(3)
  703.     ENDIF
  704.     PUT x#+mm#*((rx#-x#)/10),y#+mm#*((ry#-y#)/10),ball$(1)
  705.     PAUSE 2
  706.     SPUT screen$
  707.   NEXT mm#
  708.   IF inc#=1
  709.     PUT rx#,ry#,ball$(1)
  710.   ELSE IF inc#=0 AND int#<>1
  711.     FOR m#=count#+1 TO 12
  712.       pr#(1,m#,1)=x#
  713.       pr#(1,m#,2)=y#
  714.       pr#(1,m#,3)=mmm#
  715.     NEXT m#
  716.     x#=rx#
  717.     y#=ry#
  718.     x1#=x#
  719.     y1#=y#
  720.     PUT x#,y#,blank$
  721.     GET x#,y#,x#+15,y#+23,one$
  722.     PUT x#,y#,red$(5)
  723.     pass#=0
  724.     IF play#<>2
  725.       rx#=pb#(1,count#+1,1)
  726.       ry#=pb#(1,count#+1,2)
  727.       rp#=pb#(1,count#+1,3)
  728.       FOR m#=count#+1 TO 12
  729.         pb#(1,m#,1)=cx#
  730.         pb#(1,m#,2)=cy#
  731.         pb#(1,m#,3)=5
  732.       NEXT m#
  733.       cx#=rx#
  734.       cy#=ry#
  735.       cx1#=cx#
  736.       cy1#=cy#
  737.       PUT cx#,cy#,blank$
  738.       GET cx#,cy#,cx#+15,cy#+23,two$
  739.       PUT cx#,cy#,blue$(5)
  740.     ENDIF
  741.   ENDIF
  742.   '
  743.   IF int#=1
  744.     interception
  745.   ENDIF
  746.   '
  747. RETURN
  748. PROCEDURE redkick
  749.   FOR t#=70 TO 230 STEP 20
  750.     PUT t#,70,blue$(1)
  751.   NEXT t#
  752.   PUT 150,0,blue$(1)
  753.   GET 70,66,85,93,blue$(11)
  754.   FOR t#=90 TO 210 STEP 20
  755.     PUT t#,100,red$(2)
  756.   NEXT t#
  757.   FOR t#=70 TO 230 STEP 160
  758.     PUT t#,120,red$(2)
  759.   NEXT t#
  760.   GET 70,120,85,147,red$(11)
  761.   IF punt#=1
  762.     PUT 150,175,red$(2)
  763.     PUT 130,130,red$(2)
  764.   ELSE IF fg#=1
  765.     PUT 138,175,red$(2)
  766.     PUT 158,165,kicker$(1)
  767.   ENDIF
  768.   REPEAT
  769.   UNTIL STRIG(1)
  770.   SGET screen$
  771.   IF punt#=1
  772.     FOR t#=0 TO 35 STEP 5
  773.       PUT 154,130+t#,ball$(1)
  774.       PAUSE 2
  775.       SPUT screen$
  776.     NEXT t#
  777.     PUT 150,175,redhot$(2)
  778.   ELSE IF fg#=1
  779.     FOR t#=0 TO 45 STEP 5
  780.       PUT 154,130+t#,ball$(1)
  781.       PAUSE 2
  782.       SPUT screen$
  783.     NEXT t#
  784.     PUT 154,178,ball$(1)
  785.   ENDIF
  786.   '
  787.   FOR st#=0 TO 4
  788.     FOR tt#=90 TO 210 STEP 20
  789.       PUT tt#,70+st#*3,blue$(11)
  790.       PUT tt#,100-st#*2,red$(11)
  791.     NEXT tt#
  792.     FOR tt#=70 TO 230 STEP 160
  793.       PUT tt#,70+st#*4,blue$(11)
  794.       PUT tt#,120-st#*2,red$(11)
  795.     NEXT tt#
  796.   NEXT st#
  797.   '
  798.   IF punt#=1
  799.     PUT 150,175,kicker$(2)
  800.   ELSE IF fg#=1
  801.     PUT 138,175,kicker$(2)
  802.   ENDIF
  803.   IF fg#=1
  804.     PUT 154,178,ball$(2)
  805.   ENDIF
  806.   SGET screen$
  807.   FOR t#=0 TO 160 STEP 10
  808.     PUT 154+t#/3,160-t#,ball$(3)
  809.     PUT 154,160-t#,ball$(1)
  810.     PAUSE 1
  811.     SPUT screen$
  812.   NEXT t#
  813.   '
  814.   IF fg#=1
  815.     ' ============ field goal ========
  816.     CLS
  817.     q#=INT(RND(0)*40)+20
  818.     IF q#>100-fp#
  819.       good#=1
  820.     ELSE
  821.       good#=0
  822.     ENDIF
  823.     DEFTEXT 8,0,0,13
  824.     TEXT 0,195,"G"
  825.     TEXT 304,195,"G"
  826.     COLOR 8
  827.     DEFLINE 1,3,0,0
  828.     LINE 115,20,130,5
  829.     LINE 215,20,230,5
  830.     LINE 150,35,165,20
  831.     LINE 115,20,215,20
  832.     DEFLINE 1,1,0,0
  833.     SGET screen$
  834.     '
  835.     IF good#=1
  836.       q#=INT(RND(0)*50)
  837.       x1#=145+q#/2.5
  838.       x2#=135+q#
  839.       y1#=190
  840.       y2#=0
  841.     ELSE IF good#=0
  842.       y1#=190
  843.       q#=INT(RND(0)*4)+1
  844.       SELECT q#
  845.       CASE 1
  846.         x1#=145
  847.         x2#=100
  848.         y2#=0
  849.       CASE 2
  850.         x1#=165
  851.         x2#=235
  852.         y2#=0
  853.       CASE 3
  854.         x1#=150
  855.         x2#=130
  856.         y2#=40
  857.       CASE 4
  858.         x1#=160
  859.         x2#=180
  860.         y2#=35
  861.       ENDSELECT
  862.     ENDIF
  863.     FOR t#=1 TO 50
  864.       PUT (50-t#)+x1#+t#*(x2#-x1#)/50,y1#-t#*(y1#-y2#)/50,ball$(3)
  865.       PUT x1#+t#*(x2#-x1#)/50,y1#-t#*(y1#-y2#)/50,ball$(1)
  866.       PAUSE 1
  867.       IF t#<>50
  868.         SPUT screen$
  869.       ENDIF
  870.     NEXT t#
  871.     DEFTEXT 6,0,0,13
  872.     IF good#=1
  873.       TEXT 112,80,"Kick is Good"
  874.       scr1#=scr1#+3
  875.       ko#=1
  876.       victory
  877.     ELSE
  878.       TEXT 100,80,"Kick is No Good"
  879.       bad
  880.     ENDIF
  881.     offense#=0
  882.     goal#=230
  883.     '    PAUSE 100
  884.     DEFFILL 0,2,8
  885.     GET 0,0,319,199,screen$
  886.     FOR t#=2 TO 40 STEP 2
  887.       PBOX 0,t#-2,319,t#-1
  888.       PUT 0,t#,screen$
  889.     NEXT t#
  890.     endplay
  891.   ELSE IF punt#=1
  892.     ' =========== runback ==========
  893.     q#=RANDOM(30)
  894.     fp#=fp#+20+q#
  895.     IF fp#>100
  896.       fp#=100
  897.     ENDIF
  898.     CLS
  899.     field
  900.     offense#=0
  901.     goal#=210
  902.     count#=12
  903.     cx#=150
  904.     cy#=10
  905.     PUT cx#,cy#,blue$(1)
  906.     cx1#=cx#
  907.     cy1#=cy#
  908.     two$=blank$
  909.     x#=100+INT(RND(0)*100)
  910.     y#=150+INT(RND(0)*20)
  911.     x1#=x#
  912.     y1#=y#
  913.     PUT x#,y#,red$(2)
  914.     one$=blank$
  915.     SGET screen$
  916.     FOR t#=20 TO 190 STEP 10
  917.       PUT 215-t#/3,210-t#,ball$(3)
  918.       PUT 154,210-t#,ball$(1)
  919.       PAUSE 1
  920.       SPUT screen$
  921.     NEXT t#
  922.   ENDIF
  923. RETURN
  924. PROCEDURE interception
  925.   possession#=1
  926.   cx#=rx#
  927.   cy#=ry#
  928.   cx1#=cx#
  929.   cy1#=cy#
  930.   count#=12
  931.   SGET screen$
  932.   COLOR 8
  933.   ELLIPSE cx#+8,cy#+12,12,16
  934.   DEFTEXT 2,0,0,32
  935.   TEXT 64,180,"INTERCEPTION"
  936.   FOR t#=1 TO 4
  937.     FOR tt#=1 TO 12
  938.       SOUND 1,10,13-tt#,6,1
  939.     NEXT tt#
  940.   NEXT t#
  941.   SOUND 1,0
  942.   SPUT screen$
  943.   one$=blank$
  944.   two$=blank$
  945.   PUT x#,y#,one$
  946.   offense#=0
  947.   WHILE cx#<160 AND cx#>30 AND tackle#=0
  948.     PUT cx#,cy#,two$
  949.     cx#=cx#-6
  950.     GET cx#,cy#,cx#+15,cy#+23,two$
  951.     PUT cx#,cy#,bluehot$(10)
  952.     mover
  953.     IF a#=0
  954.       PUT x#,y#,red$(2)
  955.     ENDIF
  956.     IF ABS(x#-cx#)<10 AND ABS(y#-cy#)<10
  957.       tackle#=1
  958.     ENDIF
  959.     PAUSE 1
  960.   WEND
  961.   WHILE cx#>159 AND cx#<275 AND tackle#=0
  962.     PUT cx#,cy#,two$
  963.     cx#=cx#+6
  964.     GET cx#,cy#,cx#+15,cy#+23,two$
  965.     PUT cx#,cy#,bluehot$(8)
  966.     mover
  967.     IF a#=0
  968.       PUT x#,y#,red$(2)
  969.     ENDIF
  970.     IF ABS(x#-cx#)<10 AND ABS(y#-cy#)<10
  971.       tackle#=1
  972.     ENDIF
  973.     PAUSE 1
  974.   WEND
  975.   goal#=210
  976.   PUT cx#,cy#,blank$
  977.   two$=blank$
  978.   bigplay#=0
  979. RETURN
  980. ' ====================
  981. PROCEDURE field
  982.   DEFTEXT 8,0,0,13
  983.   FOR t#=1 TO 10
  984.     TEXT 0,-5+20*t#,field$(fp#+7-t#)
  985.     ON ERROR GOSUB exit
  986.     TEXT 304,-5+20*t#,field$(fp#+7-t#)
  987.     ON ERROR GOSUB exit
  988.   NEXT t#
  989.   IF fp#>90 AND offense#=1
  990.     goal#=100-(20*(100-fp#))
  991.   ENDIF
  992.   IF fp#<10 AND offense#=0
  993.     goal#=100+20*fp#
  994.   ENDIF
  995. RETURN
  996. PROCEDURE scroll
  997.   CLS
  998.   IF offense#=1
  999.     ds#=1
  1000.   ELSE
  1001.     ds#=-1
  1002.   ENDIF
  1003.   one$=blank$
  1004.   two$=blank$
  1005.   fp#=fp#+10*ds#
  1006.   screen#=screen#+1
  1007.   field
  1008.   IF offense#=1
  1009.     players
  1010.     tt#=cy#/2
  1011.     IF tt#>50
  1012.       tt#=50
  1013.     ENDIF
  1014.     y#=175
  1015.     y1#=175
  1016.     frame#=1
  1017.     FOR t#=0 TO tt#
  1018.       red$=red$(frame#)
  1019.       mover
  1020.       PAUSE 1
  1021.       INC frame#
  1022.       IF frame#=3
  1023.         frame#=1
  1024.       ENDIF
  1025.     NEXT t#
  1026.     off#=0
  1027.     cy#=175
  1028.     cy1#=175
  1029.   ELSE
  1030.     tt#=(180-y#)/4
  1031.     IF tt#>20
  1032.       tt#=20
  1033.     ENDIF
  1034.     cy#=0
  1035.     cy1#=0
  1036.     frame#=1
  1037.     FOR t#=0 TO tt#
  1038.       blue$=blue$(frame#)
  1039.       chaser
  1040.       PAUSE 1
  1041.       INC frame#
  1042.       IF frame#=3
  1043.         frame#=1
  1044.       ENDIF
  1045.     NEXT t#
  1046.     off#=0
  1047.     y#=0
  1048.     y1#=0
  1049.   ENDIF
  1050. RETURN
  1051. PROCEDURE tackle
  1052.   q#=RANDOM(10)
  1053.   IF q#=1 AND inc#=0 AND qtr#>1
  1054.     IF (offense#=1 AND fum1#=2) OR (offense#=0 AND fum2#=2)
  1055.       DEFTEXT 2,0,0,13
  1056.       GRAPHMODE 1
  1057.       TEXT 146,183,"FUMBLE"
  1058.       PUT x#,y#,blank$
  1059.       PUT cx#,cy#,blank$
  1060.       IF x#>290 OR cx#>290
  1061.         cx#=290
  1062.       ENDIF
  1063.       IF offense#=0
  1064.         x#=cx#
  1065.         y#=cy#
  1066.       ENDIF
  1067.       FOR t#=1 TO 16
  1068.         PUT cx#,cy#,tackle$(t#)
  1069.         SOUND 1,12,t#*16
  1070.         PAUSE 2
  1071.       NEXT t#
  1072.       IF offense#=1
  1073.         TEXT 102,199,"OPPONENT RECOVERS"
  1074.         fum1#=1
  1075.         offense#=0
  1076.         goal#=230
  1077.         bad#=1
  1078.       ELSE
  1079.         TEXT 114,199,"YOUR TEAM RECOVERS"
  1080.         fum2#=1
  1081.         offense#=1
  1082.         goal#=-30
  1083.         charge#=1
  1084.       ENDIF
  1085.     ENDIF
  1086.   ENDIF
  1087.   IF inc#=1
  1088.     DEFTEXT 6,0,0,6
  1089.     TEXT 88,150,"PASS IS INCOMPLETE"
  1090.     SGET screen$
  1091.   ENDIF
  1092.   IF inc#=0
  1093.     PUT x#,y#,blank$
  1094.     PUT cx#,cy#,blank$
  1095.     IF offense#=1
  1096.       IF x#>=cx# AND y#>=cy#
  1097.         tkl#=4
  1098.       ELSE IF x#>=cx# AND y#<=cy#
  1099.         tkl#=2
  1100.       ELSE IF x#<=cx# AND y#>=cy#
  1101.         tkl#=3
  1102.       ELSE IF x#<=cx# AND y#<=cy#
  1103.         tkl#=1
  1104.       ENDIF
  1105.     ELSE IF offense#=0
  1106.       IF x#>=cx# AND y#>=cy#
  1107.         tkl#=9
  1108.       ELSE IF x#>=cx# AND y#<=cy#
  1109.         tkl#=11
  1110.       ELSE IF x#<=cx# AND y#>=cy#
  1111.         tkl#=10
  1112.       ELSE IF x#<=cx# AND y#<=cy#
  1113.         tkl#=12
  1114.       ENDIF
  1115.     ENDIF
  1116.     IF offense#=0
  1117.       x#=cx#
  1118.       y#=cy#
  1119.     ENDIF
  1120.     IF x#>290
  1121.       x#=290
  1122.     ENDIF
  1123.     PUT x#,y#,tackle$(tkl#)
  1124.     SGET screen$
  1125.     DEFTEXT 2,0,0,32
  1126.     TEXT 120,30,"TACKLE"
  1127.   ENDIF
  1128.   '
  1129.   IF x#>75 AND x#<160
  1130.     refx#=5
  1131.     refy#=y#
  1132.     dx#=5
  1133.     dy#=0
  1134.     z#=7
  1135.   ELSE IF x#>159 AND x#<240
  1136.     refx#=315
  1137.     refy#=y#
  1138.     dx#=-5
  1139.     dy#=0
  1140.     z#=9
  1141.   ELSE IF y#<95
  1142.     refx#=x#+5
  1143.     refy#=165
  1144.     dx#=0
  1145.     dy#=-5
  1146.     z#=5
  1147.   ELSE IF y#>94
  1148.     refx#=x#+5
  1149.     refy#=20
  1150.     dx#=0
  1151.     dy#=5
  1152.     z#=3
  1153.   ENDIF
  1154.   FOR t#=1 TO 5
  1155.     PUT refx#,refy#,ref$(z#)
  1156.     IF inc#=0
  1157.       PUT x#,y#,tackle$(tkl#+4)
  1158.     ENDIF
  1159.     SOUND 1,10,1,7,2
  1160.     PUT refx#,refy#,blank$
  1161.     PUT refx#+dx#,refy#+dy#,ref$(z#+1)
  1162.     IF inc#=0
  1163.       PUT x#,y#,tackle$(tkl#)
  1164.     ENDIF
  1165.     SOUND 1,0,0,0,1
  1166.     PUT refx#+dx#,refy#+dy#,blank$
  1167.     refx#=refx#+2*dx#
  1168.     refy#=refy#+2*dy#
  1169.   NEXT t#
  1170.   PUT refx#,refy#,ref$(z#)
  1171.   IF z#=3
  1172.     z#=1
  1173.   ELSE IF z#=5
  1174.     z#=2
  1175.   ENDIF
  1176.   SPUT screen$
  1177.   PUT refx#,refy#,ref$(z#)
  1178.   IF inc#=0
  1179.     fp#=INT(fp#-y#/20+5)
  1180.   ENDIF
  1181.   IF fp#<0 AND offense#=1
  1182.     safety
  1183.   ELSE IF fp#>100 AND offense#=0
  1184.     safety
  1185.   ENDIF
  1186.   tackle#=1
  1187.   IF int#=1
  1188.     int#=0
  1189.   ELSE IF int2#=1
  1190.     int2#=0
  1191.   ENDIF
  1192.   endplay
  1193. RETURN
  1194. PROCEDURE td
  1195.   SGET screen$
  1196.   FOR t#=1 TO 10
  1197.     PUT 150,t#*5-5,ref$(3)
  1198.     SOUND 1,12,1,7,2
  1199.     PUT 150,t#*5-5,blank$
  1200.     PUT 150,t#*5,ref$(4)
  1201.     SOUND 1,0,0,0,1
  1202.     PUT 150,t#*5,blank$
  1203.   NEXT t#
  1204.   SPUT screen$
  1205.   PUT 150,50,ref$(11)
  1206.   TEXT 125,100,"Touchdown"
  1207.   IF offense#=1
  1208.     scr1#=scr1#+7
  1209.     offense#=0
  1210.     goal#=210
  1211.     IF screen#>0
  1212.       shuffle
  1213.     ENDIF
  1214.     victory
  1215.   ELSE
  1216.     scr2#=scr2#+7
  1217.     offense#=1
  1218.     goal#=-30
  1219.     IF screen#>0
  1220.       spike
  1221.     ENDIF
  1222.     bad
  1223.     bad
  1224.     charge#=0
  1225.   ENDIF
  1226.   endplay
  1227.   REPEAT
  1228.     kwit$=INKEY$
  1229.     IF kwit$="q"
  1230.       endgame#=1
  1231.     ENDIF
  1232.   UNTIL STRIG(1) OR endgame#=1
  1233.   dissolve
  1234.   off#=0
  1235.   ko#=1
  1236. RETURN
  1237. PROCEDURE safety
  1238.   DEFTEXT 6,0,0,13
  1239.   TEXT 136,100,"SAFETY"
  1240.   IF offense#=1
  1241.     PUT refx#,refy#,ref$(14)
  1242.     bad
  1243.     scr2#=scr2#+2
  1244.     offense#=0
  1245.   ELSE
  1246.     PUT refx#,refy#,ref$(13)
  1247.     victory
  1248.     scr1#=scr1#+2
  1249.     offense#=1
  1250.   ENDIF
  1251.   ko#=1
  1252.   safety#=1
  1253. RETURN
  1254. PROCEDURE endplay
  1255.   IF screen#>1 AND offense#=1 AND tackle#=1
  1256.     charge#=1
  1257.   ENDIF
  1258.   IF offense#=1 AND y#<goal# AND safety#<>1
  1259.     td
  1260.     charge#=1
  1261.   ENDIF
  1262.   IF charge#=1
  1263.     charge
  1264.     charge#=0
  1265.   ELSE IF bad#=1
  1266.     bad
  1267.     bad#=0
  1268.   ENDIF
  1269.   IF ko#=2 OR punt#=2 OR fg#=1
  1270.     yardline#=fp#
  1271.   ENDIF
  1272.   IF inc#=0
  1273.     IF offense#=1
  1274.       ytg#=ytg#-(fp#-yardline#)
  1275.     ELSE
  1276.       ytg#=ytg#-(yardline#-fp#)
  1277.     ENDIF
  1278.   ENDIF
  1279.   dn#=dn#+1
  1280.   IF ytg#<1
  1281.     dn#=1
  1282.     ytg#=10
  1283.   ENDIF
  1284.   yardline#=fp#
  1285.   IF possession#=1
  1286.     possession#=0
  1287.     dn#=1
  1288.     ytg#=10
  1289.   ENDIF
  1290.   IF ko#=2 OR punt#=2 OR fum1#=1 OR fum2#=1
  1291.     punt#=0
  1292.     ko#=0
  1293.     dn#=1
  1294.     ytg#=10
  1295.     IF fum1#=1
  1296.       fum1#=0
  1297.     ELSE IF fum2#=1
  1298.       fum2#=0
  1299.     ENDIF
  1300.   ENDIF
  1301.   IF fg#=1
  1302.     dn#=1
  1303.     ytg#=10
  1304.     td#=0
  1305.     x#=100
  1306.     cx#=0
  1307.   ENDIF
  1308.   IF dn#=5 AND ytg#>0 AND offense#=1
  1309.     SGET screen$
  1310.     DEFFILL 6,2,8
  1311.     PBOX 80,70,240,115
  1312.     DEFTEXT 2,0,0,6
  1313.     GRAPHMODE 2
  1314.     TEXT 84,80,"   Play is Short"
  1315.     TEXT 84,90,"  Of a First Down"
  1316.     TEXT 84,110,"Opponent Takes Over"
  1317.     bad
  1318.     bad
  1319.     REPEAT
  1320.       kwit$=INKEY$
  1321.       IF kwit$="q"
  1322.         endgame#=1
  1323.       ENDIF
  1324.     UNTIL STRIG(1) OR endgame#=1
  1325.     SPUT screen$
  1326.     dn#=1
  1327.     ytg#=10
  1328.     offense#=0
  1329.     goal#=230
  1330.   ENDIF
  1331.   tm#=tm#-1
  1332.   stats
  1333.   IF tm#=0
  1334.     kwit$=INKEY$
  1335.     IF kwit$="q"
  1336.       endgame#=1
  1337.     ELSE
  1338.       quarter
  1339.       qtr#=qtr#+1
  1340.       tm#=15
  1341.       IF qtr#<5
  1342.         stats
  1343.       ENDIF
  1344.     ENDIF
  1345.   ENDIF
  1346.   IF endgame#=0
  1347.     REPEAT
  1348.       kwit$=INKEY$
  1349.       IF kwit$="q"
  1350.         endgame#=1
  1351.       ENDIF
  1352.     UNTIL STRIG(1) OR endgame#=1
  1353.   ENDIF
  1354.   inc#=0
  1355. RETURN
  1356. PROCEDURE quarter
  1357.   SGET screen$
  1358.   REPEAT
  1359.   UNTIL STRIG(1)
  1360.   DEFTEXT 8,0,0,13
  1361.   IF qtr#=1 OR qtr#=3
  1362.     CLS
  1363.     TEXT 136,150,"End of"
  1364.     IF qtr#=1
  1365.       TEXT 108,170,"First Quarter"
  1366.     ELSE
  1367.       TEXT 108,170,"Third Quarter"
  1368.     ENDIF
  1369.     DEFFILL 5,2,8
  1370.     PBOX 0,0,319,99
  1371.     ' ==============================
  1372.     ' the wave
  1373.     ' ==============================
  1374.     FOR t#=1 TO 20
  1375.       PUT (t#-1)*16,100,crowd$(t#*2)
  1376.     NEXT t#
  1377.     stats
  1378.     FOR wave#=1 TO 2
  1379.       PUT 0,100,crowd$(1)
  1380.       PAUSE 10
  1381.       FOR t#=1 TO 19
  1382.         PUT (t#)*16,100,crowd$((t#*2)+1)
  1383.         PAUSE 10
  1384.         PUT (t#-1)*16,100,crowd$(t#*2)
  1385.       NEXT t#
  1386.       PAUSE 10
  1387.       PUT 304,100,crowd$(40)
  1388.     NEXT wave#
  1389.     PAUSE 40
  1390.     SPUT screen$
  1391.   ELSE IF qtr#=2
  1392.     CLS
  1393.     halftime
  1394.     ko#=1
  1395.     offense#=0
  1396.   ELSE IF qtr#=4
  1397.     endgame#=1
  1398.     REPEAT
  1399.       DEFTEXT 6,0,0,13
  1400.       TEXT 124,100,"Game Over"
  1401.       PAUSE 10
  1402.       DEFTEXT 2,0,0,13
  1403.       TEXT 124,100,"Game Over"
  1404.       PAUSE 10
  1405.     UNTIL STRIG(1)
  1406.     dissolve
  1407.   ENDIF
  1408. RETURN
  1409. PROCEDURE stats
  1410.   ' put data in setup
  1411.   GRAPHMODE 2
  1412.   DEFFILL 1,2,8
  1413.   PBOX 20,0,300,18
  1414.   COLOR 3
  1415.   BOX 20,0,300,18
  1416.   DEFTEXT 5,0,0,4
  1417.   TEXT 25,7,"Quarter"
  1418.   TEXT 75,7,"Time"
  1419.   TEXT 130,7,name$
  1420.   TEXT 130,15,"Opponent"
  1421.   TEXT 220,7,"Down"
  1422.   TEXT 255,7,"  Yards"
  1423.   TEXT 260,15,"To Go"
  1424.   '  DEFTEXT 2,0,0,4
  1425.   TEXT 43,15,qtr#
  1426.   IF tm#<10
  1427.     TEXT 78,15,tm#
  1428.   ELSE
  1429.     TEXT 72,15,tm#
  1430.   ENDIF
  1431.   TEXT 84,15,":00"
  1432.   TEXT 184,7,scr1#
  1433.   TEXT 184,15,scr2#
  1434.   TEXT 230,15,dn#
  1435.   IF ytg#<10
  1436.     TEXT 256,7,ytg#
  1437.   ELSE
  1438.     TEXT 250,7,ytg#
  1439.   ENDIF
  1440.   GRAPHMODE 1
  1441. RETURN
  1442. PROCEDURE dissolve
  1443.   COLOR 0
  1444.   FOR t#=0 TO 196 STEP 4
  1445.     LINE 0,t#,319,t#
  1446.   NEXT t#
  1447.   FOR t#=0 TO 198 STEP 2
  1448.     LINE 0,t#,319,t#
  1449.   NEXT t#
  1450.   FOR t#=1 TO 199 STEP 2
  1451.     LINE 0,t#,319,t#
  1452.   NEXT t#
  1453. RETURN
  1454. PROCEDURE exit
  1455.   TEXT 0,t#," "
  1456.   RESUME NEXT
  1457. RETURN
  1458. ' ====================
  1459. PROCEDURE setup
  1460.   ON BREAK GOSUB jesse
  1461.   DIM red$(11),blue$(11),ref$(14),tackle$(16)
  1462.   DIM ball$(4),diagram$(8),kicker$(4)
  1463.   DIM field$(101)
  1464.   DIM p#(20,12,3),pr#(3,12,3),pb#(3,12,3),pp#(17,12,3)
  1465.   DIM grid#(8,2)
  1466.   DIM rteam$(2),bteam$(2)
  1467.   DIM koblue$(2),kored$(2)
  1468.   DIM crowd$(40)
  1469.   DIM ppp#(16,6)
  1470.   DIM palette#(16,3)
  1471.   DIM reddef#(5,3)
  1472.   DIM blueoff#(10,3)
  1473.   DIM playbook#(5,5)
  1474.   DIM sitz#(20,1)
  1475.   DIM name$(8)
  1476.   DIM redhot$(10)
  1477.   DIM bluehot$(10)
  1478.   DIM spiker$(6)
  1479.   DIM band$(2)
  1480.   '
  1481.   ' check for necessities: low rez, data files in same folder
  1482.   path$=""
  1483.   IF XBIOS(4)<>0
  1484.     ALERT 3,"Crunch Time Football runs|in low resolution only.",1," Quit ",blob#
  1485.     EDIT
  1486.   ENDIF
  1487.   IF NOT EXIST(path$+"fb2.dat")
  1488.     ALERT 3,"File FB2.DAT must be in the|same folder as FOOTBALL.GFA.",1," Quit ",blob#
  1489.     EDIT
  1490.   ENDIF
  1491.   IF NOT EXIST(path$+"fb3.dat")
  1492.     ALERT 3,"File FB3.DAT must be in the|same folder as FOOTBALL.GFA.",1," Quit ",blob#
  1493.     EDIT
  1494.   ENDIF
  1495.   IF NOT EXIST(path$+"fb4.dat")
  1496.     ALERT 3,"File FB4.DAT must be in the|same folder as FOOTBALL.GFA.",1," Quit ",blob#
  1497.     EDIT
  1498.   ENDIF
  1499.   retain_pal    !complements restore_pal called in main loop
  1500.   '
  1501.   FOR t#=1 TO 16
  1502.     FOR tt#=1 TO 3
  1503.       READ a#
  1504.       palette#(t#,tt#)=a#
  1505.     NEXT tt#
  1506.   NEXT t#
  1507.   DATA 0,4,0,0,0,0,7,0,0,0,7,0
  1508.   DATA 0,0,7,0,7,7,7,7,0,7,5,5
  1509.   DATA 7,7,7,4,4,4,6,6,7,5,0,5
  1510.   DATA 7,6,0,0,0,5,0,7,5,7,3,0
  1511.   '
  1512.   FOR t#=0 TO 15
  1513.     VSETCOLOR t#,palette#(t#+1,1),palette#(t#+1,2),palette#(t#+1,3)
  1514.   NEXT t#
  1515.   '
  1516.   title
  1517.   DEFTEXT 1,0,0,6
  1518.   TEXT 33,151,"Loading Graphics ... Please Wait"
  1519.   DEFTEXT 8,0,0,6
  1520.   TEXT 32,150,"Loading Graphics ... Please Wait"
  1521.   '
  1522.   FOR t#=1 TO 16
  1523.     FOR tt#=1 TO 6
  1524.       READ a#
  1525.       ppp#(t#,tt#)=a#
  1526.     NEXT tt#
  1527.   NEXT t#
  1528.   '
  1529.   DATA 1,4,7,11,15,16
  1530.   DATA 5,8,9,13,16,18
  1531.   DATA 5,3,8,12,17,18
  1532.   DATA 3,4,8,16,11,18
  1533.   DATA 10,8,1,18,12,17
  1534.   DATA 8,9,5,12,16,19
  1535.   DATA 1,9,4,13,15,16
  1536.   DATA 9,1,4,20,15,11
  1537.   '
  1538.   DATA 1,4,7,11,16,19
  1539.   DATA 5,8,9,18,13,16
  1540.   DATA 5,3,8,17,12,18
  1541.   DATA 3,4,8,15,11,18
  1542.   DATA 10,8,1,17,12,18
  1543.   DATA 8,9,5,18,12,16
  1544.   DATA 1,9,4,13,16,18
  1545.   DATA 9,1,4,16,11,20
  1546.   '
  1547.   FOR t#=1 TO 5
  1548.     FOR tt#=1 TO 3
  1549.       READ a#
  1550.       reddef#(t#,tt#)=a#
  1551.     NEXT tt#
  1552.   NEXT t#
  1553.   ' rem data for red defense
  1554.   DATA 10,12,16,10,12,14
  1555.   DATA 10,12,16,10,14,16
  1556.   DATA 10,12,16
  1557.   '
  1558.   FOR t#=1 TO 10
  1559.     FOR tt#=1 TO 3
  1560.       READ a#
  1561.       blueoff#(t#,tt#)=a#
  1562.     NEXT tt#
  1563.   NEXT t#
  1564.   ' rem data for blue offense
  1565.   DATA 2,4,6,6,4,9,5,6,9,1,7,4,1,4,8
  1566.   DATA 3,4,7,3,5,6,3,8,9,4,7,3,6,4,8
  1567.   '
  1568.   FOR t#=1 TO 5
  1569.     FOR tt#=1 TO 5
  1570.       READ a#
  1571.       playbook#(t#,tt#)=a#
  1572.     NEXT tt#
  1573.   NEXT t#
  1574.   ' rem data for playbook
  1575.   DATA 3,2,8,6,4,6,8,9,7,3
  1576.   DATA 1,6,7,5,10,1,2,3,4,8
  1577.   DATA 2,10,1,9,5
  1578.   '
  1579.   DIM victory#(32,1)
  1580.   FOR t#=1 TO 32
  1581.     READ a#
  1582.     victory#(t#,1)=a#
  1583.   NEXT t#
  1584.   DATA 1,3,5,6,8,10,12,13,15,15,13,13,12,12,10,10
  1585.   DATA 13,12,12,10,12,12,15,15
  1586.   DATA 13,13,13,13,13,13,13,13
  1587.   '
  1588.   DIM charge#(12,1)
  1589.   FOR t#=1 TO 10
  1590.     READ a#
  1591.     charge#(t#,1)=a#
  1592.   NEXT t#
  1593.   DATA 6,8,10,13,13,10,13,13,13,13
  1594.   '
  1595.   FOR t#=1 TO 20
  1596.     sitz#(t#,1)=1
  1597.   NEXT t#
  1598.   '
  1599.   FOR t#=1 TO 8
  1600.     READ a#,b#
  1601.     grid#(t#,1)=a#
  1602.     grid#(t#,2)=b#
  1603.   NEXT t#
  1604.   DATA 20,25,120,25,220,25,20,85,220,85,20,145,120,145,220,145
  1605.   picdataload
  1606.   '
  1607.   arrays
  1608.   arrays2
  1609.   GET 0,0,15,23,blank$
  1610.   GET 7,5,13,15,ball$(2)
  1611.   titleanimation
  1612. RETURN
  1613. '
  1614. ' ------------- SAVE ORIGINAL COLOR PALETTE -----------------------
  1615. PROCEDURE retain_pal
  1616.   '
  1617.   DIM spalette%(16,3)
  1618.   '
  1619.   FOR z%=0 TO 15
  1620.     DPOKE CONTRL,26
  1621.     DPOKE CONTRL+2,0
  1622.     DPOKE CONTRL+6,2
  1623.     DPOKE INTIN,z%
  1624.     DPOKE INTIN+2,0
  1625.     VDISYS
  1626.     spalette%(z%,0)=DPEEK(INTOUT+2)
  1627.     spalette%(z%,1)=DPEEK(INTOUT+4)
  1628.     spalette%(z%,2)=DPEEK(INTOUT+6)
  1629.   NEXT z%
  1630. RETURN
  1631. '
  1632. PROCEDURE restore_pal
  1633.   ' --------------------- RESTORES PALETTE -------------------
  1634.   ' Dimensions: Spalette%(16,3)
  1635.   '
  1636.   FOR z%=0 TO 15
  1637.     DPOKE CONTRL,14
  1638.     DPOKE CONTRL+2,0
  1639.     DPOKE CONTRL+6,4
  1640.     DPOKE INTIN,z%
  1641.     DPOKE INTIN+2,spalette%(z%,0)
  1642.     DPOKE INTIN+4,spalette%(z%,1)
  1643.     DPOKE INTIN+6,spalette%(z%,2)
  1644.     VDISYS
  1645.   NEXT z%
  1646. RETURN
  1647. '
  1648. PROCEDURE title
  1649.   VSETCOLOR 0,0,4,0
  1650.   CLS
  1651.   GRAPHMODE 2
  1652.   DEFTEXT 1,16,0,13
  1653.   TEXT 81,21,"Poppy and Jesse"
  1654.   DEFTEXT 5,16,0,13
  1655.   TEXT 80,20,"Poppy and Jesse"
  1656.   DEFTEXT 1,0,0,6
  1657.   TEXT 123,51,"present"
  1658.   DEFTEXT 3,0,0,6
  1659.   TEXT 122,50,"present"
  1660.   DEFTEXT 6,13,0,32
  1661.   TEXT 65,91,"Crunch Time"
  1662.   DEFTEXT 2,13,0,32
  1663.   TEXT 64,90,"Crunch Time"
  1664.   DEFTEXT 6,13,0,32
  1665.   TEXT 80,121,"Football"
  1666.   DEFTEXT 2,13,0,32
  1667.   TEXT 79,120,"Football"
  1668.   DEFTEXT 1,0,0,6
  1669.   TEXT 3,181,"Copyright 1990 by Antic Publishing, Inc."
  1670.   DEFTEXT 3,0,0,6
  1671.   TEXT 2,180,"Copyright 1990 by Antic Publishing, Inc."
  1672. RETURN
  1673. PROCEDURE titleanimation
  1674.   DEFFILL 0,2,8
  1675.   PBOX 32,140,288,152
  1676.   DEFTEXT 1,0,0,6
  1677.   TEXT 32,151,"Press Fire Button to Start Game"
  1678.   DEFTEXT 8,0,0,6
  1679.   TEXT 31,150,"Press Fire Button to Start Game"
  1680.   REPEAT
  1681.     DEFTEXT 6,13,0,32
  1682.     TEXT 65,91,"Crunch Time"
  1683.     DEFTEXT 2,13,0,32
  1684.     TEXT 64,90,"Crunch Time"
  1685.     DEFTEXT 6,13,0,32
  1686.     TEXT 79,121,"Football"
  1687.     DEFTEXT 2,13,0,32
  1688.     TEXT 80,120,"Football"
  1689.   UNTIL STRIG(1)
  1690. RETURN
  1691. PROCEDURE teamcolors
  1692.   FOR t#=0 TO 15
  1693.     VSETCOLOR t#,palette#(t#+1,1),palette#(t#+1,2),palette#(t#+1,3)
  1694.   NEXT t#
  1695.   FOR g#=0 TO 9
  1696.     PUT 15+g#*30,85,red$(1)
  1697.   NEXT g#
  1698.   DEFFILL 2,2,8
  1699.   FILL 23,86
  1700.   FILL 23,95
  1701.   DEFFILL 6,2,8
  1702.   FILL 23,101
  1703.   DEFFILL 4,2,8
  1704.   FILL 53,86
  1705.   FILL 53,95
  1706.   DEFFILL 8,2,8
  1707.   FILL 53,101
  1708.   DEFFILL 10,2,8
  1709.   FILL 83,86
  1710.   FILL 83,101
  1711.   DEFFILL 1,2,8
  1712.   FILL 83,95
  1713.   DEFFILL 11,2,8
  1714.   FILL 113,86
  1715.   FILL 113,95
  1716.   DEFFILL 6,2,8
  1717.   FILL 113,101
  1718.   DEFFILL 2,2,8
  1719.   FILL 143,86
  1720.   FILL 142,95
  1721.   DEFFILL 8,2,8
  1722.   FILL 143,101
  1723.   DEFFILL 6,2,8
  1724.   FILL 173,86
  1725.   FILL 173,101
  1726.   DEFFILL 3,2,8
  1727.   FILL 173,95
  1728.   DEFFILL 8,2,8
  1729.   FILL 203,86
  1730.   FILL 203,101
  1731.   DEFFILL 5,2,8
  1732.   FILL 203,95
  1733.   DEFFILL 12,2,8
  1734.   FILL 233,86
  1735.   FILL 233,101
  1736.   DEFFILL 2,2,8
  1737.   FILL 233,95
  1738.   DEFFILL 10,2,8
  1739.   FILL 263,86
  1740.   FILL 263,101
  1741.   DEFFILL 4,2,8
  1742.   FILL 263,95
  1743.   DEFFILL 1,2,8
  1744.   FILL 293,86
  1745.   FILL 293,95
  1746.   DEFFILL 6,2,8
  1747.   FILL 293,101
  1748.   '
  1749.   DEFTEXT 8,16,0,13
  1750.   TEXT 20,30,"1"
  1751.   DEFTEXT 8,0,0,6
  1752.   TEXT 54,50,"Select your team colors:"
  1753.   '
  1754.   g#=0
  1755.   COLOR 8
  1756.   BOX 10+g#*30,80,35+g#*30,110
  1757.   '
  1758.   REPEAT
  1759.     a#=STICK(1)
  1760.     IF a#<>0
  1761.       COLOR 0
  1762.       BOX 10+g#*30,80,35+g#*30,110
  1763.       SELECT a#
  1764.       CASE 4
  1765.         g#=g#-1
  1766.       CASE 8
  1767.         g#=g#+1
  1768.       ENDSELECT
  1769.       IF g#=-1
  1770.         g#=9
  1771.       ELSE IF g#=10
  1772.         g#=0
  1773.       ENDIF
  1774.       COLOR 8
  1775.       BOX 10+g#*30,80,35+g#*30,110
  1776.     ENDIF
  1777.     PAUSE 5
  1778.   UNTIL STRIG(1)
  1779.   SELECT g#
  1780.   CASE 0
  1781.     g1#=2
  1782.     g2#=2
  1783.     g3#=6
  1784.   CASE 1
  1785.     g1#=4
  1786.     g2#=4
  1787.     g3#=8
  1788.   CASE 2
  1789.     g1#=10
  1790.     g2#=1
  1791.     g3#=10
  1792.   CASE 3
  1793.     g1#=11
  1794.     g2#=11
  1795.     g3#=6
  1796.   CASE 4
  1797.     g1#=2
  1798.     g2#=2
  1799.     g3#=8
  1800.   CASE 5
  1801.     g1#=6
  1802.     g2#=3
  1803.     g3#=6
  1804.   CASE 6
  1805.     g1#=8
  1806.     g2#=5
  1807.     g3#=8
  1808.   CASE 7
  1809.     g1#=12
  1810.     g2#=2
  1811.     g3#=12
  1812.   CASE 8
  1813.     g1#=10
  1814.     g2#=4
  1815.     g3#=10
  1816.   CASE 9
  1817.     g1#=1
  1818.     g2#=1
  1819.     g3#=6
  1820.   ENDSELECT
  1821.   '
  1822.   g1#=g1#+1
  1823.   g2#=g2#+1
  1824.   g3#=g3#+1
  1825.   VSETCOLOR 10,palette#(g1#,1),palette#(g1#,2),palette#(g1#,3)
  1826.   ' human helmet
  1827.   VSETCOLOR 11,palette#(g2#,1),palette#(g2#,2),palette#(g2#,3)
  1828.   ' human shirt
  1829.   VSETCOLOR 14,palette#(g3#,1),palette#(g3#,2),palette#(g3#,3)
  1830.   ' human pants
  1831.   '
  1832.   q#=INT(RND(0)*3)
  1833.   IF q#=0
  1834.     VSETCOLOR 12,7,0,0
  1835.     VSETCOLOR 13,7,0,0
  1836.   ELSE IF q#=1
  1837.     VSETCOLOR 12,5,0,5
  1838.     VSETCOLOR 13,7,7,0
  1839.   ELSE IF q#=2
  1840.     VSETCOLOR 12,6,6,7
  1841.     VSETCOLOR 13,6,6,7
  1842.   ENDIF
  1843. RETURN
  1844. PROCEDURE teamname
  1845.   CLS
  1846.   DEFTEXT 8,16,0,13
  1847.   TEXT 20,30,"2"
  1848.   DEFTEXT 8,0,0,6
  1849.   TEXT 44,50,"Enter Your Name or Team Name:"
  1850.   TEXT 120,96,"________"
  1851.   VSETCOLOR 1,7,7,7
  1852.   LOCATE 16,12
  1853.   FORM INPUT 8,name$
  1854.   VSETCOLOR 1,0,0,0
  1855. RETURN
  1856. PROCEDURE level
  1857.   CLS
  1858.   '
  1859.   ' ========== choose difficulty ============
  1860.   DEFTEXT 8,16,0,13
  1861.   TEXT 20,30,"3"
  1862.   DEFTEXT 8,0,0,6
  1863.   TEXT 68,50,"Select Difficulty Level"
  1864.   DEFTEXT 3,0,0,6
  1865.   TEXT 100,100,"High School"
  1866.   TEXT 100,120,"Pro"
  1867.   TEXT 100,130,"Super Bowl"
  1868.   DEFTEXT 6,0,0,6
  1869.   TEXT 100,110,"College"
  1870.   '
  1871.   diff#=2
  1872.   diff1#=2
  1873.   REPEAT
  1874.     a#=STICK(1)
  1875.     PAUSE 2
  1876.     IF a#=1
  1877.       diff#=diff#-1
  1878.     ELSE IF a#=2
  1879.       diff#=diff#+1
  1880.     ENDIF
  1881.     IF diff#=0
  1882.       diff#=4
  1883.     ELSE IF diff#=5
  1884.       diff#=1
  1885.     ENDIF
  1886.     '
  1887.     IF a#=1 OR a#=2
  1888.       DEFTEXT 3,0,0,6
  1889.       SELECT diff1#
  1890.       CASE 1
  1891.         TEXT 100,100,"High School"
  1892.       CASE 2
  1893.         TEXT 100,110,"College"
  1894.       CASE 3
  1895.         TEXT 100,120,"Pro"
  1896.       CASE 4
  1897.         TEXT 100,130,"Super Bowl"
  1898.       ENDSELECT
  1899.       '
  1900.       DEFTEXT 6,0,0,6
  1901.       SELECT diff#
  1902.       CASE 1
  1903.         TEXT 100,100,"High School"
  1904.         diff#=1
  1905.       CASE 2
  1906.         TEXT 100,110,"College"
  1907.         diff#=2
  1908.       CASE 3
  1909.         TEXT 100,120,"Pro"
  1910.         diff#=3
  1911.       CASE 4
  1912.         TEXT 100,130,"Super Bowl"
  1913.         diff#=4
  1914.       ENDSELECT
  1915.       diff1#=diff#
  1916.     ENDIF
  1917.   UNTIL STRIG(1)
  1918.   '
  1919. RETURN
  1920. PROCEDURE newgame
  1921.   int#=2
  1922.   int2#=2
  1923.   fum1#=2
  1924.   fum2#=2
  1925.   endgame#=0
  1926.   playmore#=0
  1927.   tm#=15
  1928.   qtr#=1
  1929.   scr1#=0
  1930.   scr2#=0
  1931.   offense#=1
  1932.   goal#=-30
  1933.   ko#=1
  1934.   tackle#=0
  1935.   fg#=0
  1936.   punt#=0
  1937. RETURN
  1938. PROCEDURE picdataload
  1939.   '
  1940.   OPEN "I",#1,path$+"fb2.dat"
  1941.   '
  1942.   FOR t#=1 TO 10
  1943.     red$(t#)=SPACE$(198)
  1944.     BGET #1,VARPTR(red$(t#)),198
  1945.   NEXT t#
  1946.   '
  1947.   FOR t#=1 TO 10
  1948.     blue$(t#)=SPACE$(198)
  1949.     BGET #1,VARPTR(blue$(t#)),198
  1950.   NEXT t#
  1951.   '
  1952.   FOR t#=1 TO 10
  1953.     ref$(t#)=SPACE$(198)
  1954.     BGET #1,VARPTR(ref$(t#)),198
  1955.   NEXT t#
  1956.   '
  1957.   FOR t#=11 TO 14
  1958.     ref$(t#)=SPACE$(230)
  1959.     BGET #1,VARPTR(ref$(t#)),230
  1960.   NEXT t#
  1961.   '
  1962.   FOR t#=1 TO 16
  1963.     tackle$(t#)=SPACE$(518)
  1964.     BGET #1,VARPTR(tackle$(t#)),502
  1965.   NEXT t#
  1966.   '
  1967.   ball$(1)=SPACE$(94)
  1968.   BGET #1,VARPTR(ball$(1)),94
  1969.   ball$(3)=SPACE$(78)
  1970.   BGET #1,VARPTR(ball$(3)),78
  1971.   '
  1972.   FOR t#=1 TO 4
  1973.     kicker$(t#)=SPACE$(198)
  1974.     BGET #1,VARPTR(kicker$(t#)),198
  1975.   NEXT t#
  1976.   '
  1977.   FOR t#=1 TO 6
  1978.     spiker$(t#)=SPACE$(198)
  1979.     BGET #1,VARPTR(spiker$(t#)),198
  1980.   NEXT t#
  1981.   '
  1982.   FOR t#=1 TO 2
  1983.     band$(t#)=SPACE$(1574)
  1984.     BGET #1,VARPTR(band$(t#)),1574
  1985.   NEXT t#
  1986.   '
  1987.   FOR t#=1 TO 8
  1988.     diagram$(t#)=SPACE$(2454)
  1989.     BGET #1,VARPTR(diagram$(t#)),2454
  1990.   NEXT t#
  1991.   '
  1992.   CLOSE #1
  1993.   '
  1994.   OPEN "I",#1,path$+"fb3.dat"
  1995.   '
  1996.   FOR t#=1 TO 40
  1997.     crowd$(t#)=SPACE$(246)
  1998.     BGET #1,VARPTR(crowd$(t#)),246
  1999.   NEXT t#
  2000.   '
  2001.   CLOSE #1
  2002.   '
  2003.   OPEN "I",#1,path$+"fb4.dat"
  2004.   '
  2005.   FOR t#=1 TO 10
  2006.     redhot$(t#)=SPACE$(198)
  2007.     BGET #1,VARPTR(redhot$(t#)),198
  2008.   NEXT t#
  2009.   '
  2010.   FOR t#=1 TO 10
  2011.     bluehot$(t#)=SPACE$(198)
  2012.     BGET #1,VARPTR(bluehot$(t#)),198
  2013.   NEXT t#
  2014.   '
  2015.   CLOSE #1
  2016.   '
  2017. RETURN
  2018. PROCEDURE jesse
  2019.   STICK 0
  2020.   END
  2021. RETURN
  2022. PROCEDURE arrays
  2023.   '
  2024.   FOR t#=1 TO 101
  2025.     field$(t#)="-"
  2026.     SELECT t#
  2027.     CASE 1,101
  2028.       field$(t#)="G"
  2029.     CASE 6,96
  2030.       field$(t#)="5"
  2031.     CASE 11,91
  2032.       field$(t#)="10"
  2033.     CASE 16,86
  2034.       field$(t#)="15"
  2035.     CASE 21,81
  2036.       field$(t#)="20"
  2037.     CASE 26,76
  2038.       field$(t#)="25"
  2039.     CASE 31,71
  2040.       field$(t#)="30"
  2041.     CASE 36,66
  2042.       field$(t#)="35"
  2043.     CASE 41,61
  2044.       field$(t#)="40"
  2045.     CASE 46,56
  2046.       field$(t#)="45"
  2047.     CASE 51
  2048.       field$(t#)="50"
  2049.     ENDSELECT
  2050.   NEXT t#
  2051.   '
  2052.   FOR q#=1 TO 20
  2053.     FOR t#=1 TO 12
  2054.       READ a#,b#,c#
  2055.       p#(q#,t#,1)=a#
  2056.       p#(q#,t#,2)=b#
  2057.       p#(q#,t#,3)=c#
  2058.     NEXT t#
  2059.   NEXT q#
  2060.   '
  2061.   ' ================= Offense ===============
  2062.   ' rem l flanker fly
  2063.   DATA 60,120,2,60,110,5,60,100,6,60,90,5,60,80,6,60,70,5
  2064.   DATA 60,60,6,60,50,5,60,40,6,60,30,5,60,20,6,60,10,5
  2065.   ' rem l flanker reverse
  2066.   DATA 60,120,2,60,130,7,70,140,8,80,150,7,90,160,8,95,160,7
  2067.   DATA 100,160,8,105,160,7,110,160,8,115,160,7,120,160,8,125,160,7
  2068.   ' rem l flanker cross
  2069.   DATA 60,120,2,60,110,5,60,100,6,60,90,5,60,80,6,60,70,5
  2070.   DATA 70,60,6,80,50,7,90,40,8,100,30,7,110,20,8,120,20,7
  2071.   ' rem l half block left
  2072.   DATA 110,160,2,100,150,5,90,140,10,80,130,5,70,120,6,60,110,5
  2073.   DATA 50,100,6,40,90,5,40,80,6,40,70,5,40,70,6,40,70,5
  2074.   ' rem l half run right
  2075.   DATA 110,160,2,120,160,7,130,160,8,140,160,7,150,160,8,160,160,7
  2076.   DATA 170,160,8,180,160,7,190,160,8,200,160,7,210,160,8,220,160,7
  2077.   ' rem i-back run left
  2078.   DATA 150,160,2,150,170,10,140,180,9,130,180,10,120,180,9,110,180,10
  2079.   DATA 100,180,9,90,180,10,80,180,9,70,180,10,60,180,9,50,180,10
  2080.   ' rem rt half block right 1
  2081.   DATA 180,160,2,190,160,7,200,160,8,210,160,7,220,160,8,230,160,7
  2082.   DATA 240,150,6,240,140,5,240,130,6,240,120,5,240,110,6,240,100,5
  2083.   ' rem rt half block right 2
  2084.   DATA 190,160,2,200,150,6,210,140,5,220,130,6,230,120,5,240,110,6
  2085.   DATA 240,100,5,240,98,6,240,96,5,240,94,6,240,92,5,240,90,6
  2086.   ' rem rt flanker slant in
  2087.   DATA 240,120,2,240,110,5,240,100,6,240,90,5,240,80,6,230,70,5
  2088.   DATA 220,60,6,210,50,5,200,40,6,190,30,5,180,20,6,170,10,5
  2089.   ' rem rt flanker out
  2090.   DATA 240,120,2,240,110,5,240,100,6,240,90,5,240,80,6,230,70,5
  2091.   DATA 240,60,6,245,55,5,250,50,7,255,45,8,260,40,7,265,35,8
  2092.   '
  2093.   ' ============ Defense =============
  2094.   ' rem l corner wide out
  2095.   DATA 70,40,1,65,40,9,60,40,10,55,40,9,50,40,10,45,40,9
  2096.   DATA 40,40,10,40,50,3,40,50,4,40,55,3,40,60,4,40,65,3
  2097.   ' rem l corner rush
  2098.   DATA 70,40,1,70,50,3,70,60,4,70,70,3,70,80,4,70,90,3
  2099.   DATA 70,100,4,70,110,3,80,120,4,90,120,7,100,120,8,110,120,7
  2100.   ' rem l corner contain
  2101.   DATA 70,40,1,65,45,3,60,50,4,55,55,3,50,60,4,45,65,3
  2102.   DATA 40,70,4,35,70,3,30,80,4,25,85,3,20,90,4,15,95,3
  2103.   ' rem l safety rush
  2104.   DATA 130,30,1,120,35,3,110,40,4,100,45,3,90,50,4,80,55,3
  2105.   DATA 70,60,4,70,65,3,70,70,4,70,75,3,70,80,4,70,85,3
  2106.   ' rem l safety deep
  2107.   DATA 130,30,1,130,20,3,125,20,10,120,20,9,115,20,10,110,20,9
  2108.   DATA 105,20,10,100,20,9,95,20,10,90,20,5,80,20,6,75,10,5
  2109.   ' rem rt safety slant
  2110.   DATA 170,30,1,175,35,3,180,40,4,185,45,3,185,45,4,185,45,7
  2111.   DATA 180,40,6,175,35,5,170,30,6,165,25,5,160,20,6,155,15,5
  2112.   ' rem rt safety sideline
  2113.   DATA 170,30,1,175,35,3,180,40,4,185,45,3,190,45,4,190,45,7
  2114.   DATA 195,45,8,200,45,7,205,45,8,210,45,7,215,45,8,220,45,7
  2115.   ' rem rt corner pass/run
  2116.   DATA 230,40,1,230,35,3,230,30,4,230,25,3,230,20,4,230,30,3
  2117.   DATA 230,40,4,230,50,3,230,60,4,230,70,3,230,80,4,230,90,3
  2118.   ' rem rt corner contain
  2119.   DATA 230,40,1,240,40,7,250,40,8,260,40,7,270,45,4,280,50,3
  2120.   DATA 285,55,4,285,60,3,285,65,4,285,70,3,285,75,4,285,80,3
  2121.   ' rem rt corner slant
  2122.   DATA 230,40,1,230,35,3,230,30,4,230,25,3,230,20,4,230,20,9
  2123.   DATA 225,20,10,220,20,9,215,20,10,210,20,9,205,20,10,200,20,9
  2124.   '
  2125. RETURN
  2126. PROCEDURE arrays2
  2127.   FOR q#=1 TO 17
  2128.     FOR t#=1 TO 12
  2129.       READ a#,b#,c#
  2130.       pp#(q#,t#,1)=a#
  2131.       pp#(q#,t#,2)=b#
  2132.       pp#(q#,t#,3)=c#
  2133.     NEXT t#
  2134.   NEXT q#
  2135.   '
  2136.   ' ================= Offense ===============
  2137.   ' rem qb pass right
  2138.   DATA 150,40,1,150,40,9,150,40,5,145,35,6,140,30,5,135,25,6
  2139.   DATA 130,20,5,125,15,6,120,10,10,115,10,9,110,10,10,105,10,9
  2140.   ' rem qb run left
  2141.   DATA 150,40,1,160,35,5,170,30,6,180,30,7,190,30,8,200,30,7
  2142.   DATA 210,35,8,220,40,7,230,45,8,240,50,7,250,55,8,260,60,7
  2143.   ' rem qb pass left
  2144.   DATA 150,40,1,150,40,9,150,40,5,155,35,6,160,30,5,165,25,6
  2145.   DATA 170,20,5,175,15,6,180,10,8,185,10,7,190,10,8,195,10,7
  2146.   ' rem rt half run right
  2147.   DATA 120,10,1,115,15,9,110,20,10,100,25,9,90,30,10,80,35,9
  2148.   DATA 70,40,10,60,45,9,50,50,10,40,55,9,30,60,10,20,65,3
  2149.   ' rem rt half off tackle
  2150.   DATA 120,10,1,115,15,3,110,20,4,110,25,3,110,30,4,110,35,3
  2151.   DATA 110,40,4,110,45,3,110,50,4,110,55,3,110,60,4,110,65,3
  2152.   ' rem left half sweep right
  2153.   DATA 190,10,1,180,10,9,165,10,10,150,10,9,135,10,10,120,10,9
  2154.   DATA 105,10,10,90,14,9,80,18,10,70,22,9,60,26,10,50,30,3
  2155.   ' rem left half pass
  2156.   DATA 190,10,1,200,15,3,210,20,4,220,25,3,230,30,4,240,35,3
  2157.   DATA 250,40,4,260,45,3,260,55,4,260,65,3,260,75,4,260,85,3
  2158.   ' rem rt flanker fly
  2159.   DATA 60,60,1,60,70,3,60,80,4,60,90,3,60,100,4,60,110,3
  2160.   DATA 60,120,4,60,130,3,60,140,4,60,150,3,60,160,4,60,170,3
  2161.   ' rem l flanker out
  2162.   DATA 240,60,1,240,65,3,240,70,4,240,75,3,240,80,4,245,85,3
  2163.   DATA 250,90,4,255,95,3,260,100,4,270,100,7,280,100,8,290,100,7
  2164.   ' ===================== Defense ==================
  2165.   ' rem left corner rush
  2166.   DATA 60,140,2,60,135,5,60,130,6,60,125,5,60,120,6,60,115,5
  2167.   DATA 65,110,6,65,100,5,65,90,6,70,80,5,70,70,6,70,60,5
  2168.   ' rem left corner fly
  2169.   DATA 60,140,2,60,145,5,60,150,6,65,145,5,70,140,6,75,135,5
  2170.   DATA 80,130,6,80,130,7,80,130,3,80,140,4,80,150,3,80,160,4
  2171.   ' rem rt corner rush
  2172.   DATA 240,140,2,240,135,5,240,130,6,240,125,5,240,120,6,240,115,5
  2173.   DATA 235,110,6,235,100,5,235,90,6,230,80,5,230,70,6,230,60,5
  2174.   ' rem rt corner out
  2175.   DATA 240,140,2,240,145,5,240,150,6,240,155,5,240,160,6,240,155,5
  2176.   DATA 245,150,6,250,145,7,260,140,8,265,135,7,275,130,8,280,125,7
  2177.   ' rem rt half rush
  2178.   DATA 190,160,2,190,155,5,190,150,6,195,145,5,195,140,6,195,135,5
  2179.   DATA 200,130,6,200,125,5,200,120,6,205,115,5,205,110,6,205,105,5
  2180.   ' rem rt half out
  2181.   DATA 190,160,2,195,155,5,200,150,6,205,145,5,210,140,6,215,135,5
  2182.   DATA 225,130,7,235,125,8,245,125,7,255,125,8,265,125,7,275,125,8
  2183.   ' rem left half rush
  2184.   DATA 110,160,2,110,155,5,110,150,6,105,145,5,105,140,6,105,135,5
  2185.   DATA 100,130,6,100,125,5,100,120,6,95,115,5,95,110,6,95,105,5
  2186.   ' rem left half fly
  2187.   DATA 110,160,2,105,155,5,100,150,6,95,145,5,90,140,10,85,140,9
  2188.   DATA 80,145,4,80,150,3,80,155,4,80,160,3,80,165,4,80,170,3
  2189. RETURN
  2190. ' ====================
  2191. PROCEDURE kickoff2
  2192.   CLS
  2193.   screen#=0
  2194.   fp#=37
  2195.   IF safety#=1
  2196.     fp#=22
  2197.   ENDIF
  2198.   field
  2199.   FOR t#=50 TO 250 STEP 20
  2200.     PUT t#,160,red$(2)
  2201.     IF t#=130
  2202.       t#=150
  2203.     ENDIF
  2204.   NEXT t#
  2205.   PUT 150,174,red$(5)
  2206.   FOR t#=60 TO 240 STEP 60
  2207.     PUT t#,20,blue$(1)
  2208.   NEXT t#
  2209.   PUT 155,140,ball$(1)
  2210.   PAUSE 10
  2211.   REPEAT
  2212.   UNTIL STRIG(1)
  2213.   frame#=1
  2214.   PUT 150,174,red$(5)
  2215.   GET 150,174,165,199,kored$(1)
  2216.   PUT 150,174,red$(6)
  2217.   GET 150,174,165,199,kored$(2)
  2218.   FOR t#=8 TO 20 STEP 2
  2219.     PUT 150,180-t#,kored$(frame#)
  2220.     INC frame#
  2221.     IF frame#=3
  2222.       frame#=1
  2223.     ENDIF
  2224.     PAUSE 2
  2225.   NEXT t#
  2226.   FOR t#=22 TO 38 STEP 2
  2227.     FOR tt#=50 TO 250 STEP 20
  2228.       PUT tt#,180-t#,kored$(frame#)
  2229.     NEXT tt#
  2230.     INC frame#
  2231.     IF frame#=3
  2232.       frame#=1
  2233.     ENDIF
  2234.   NEXT t#
  2235.   ty#=130
  2236.   PUT 155,140,ball$(2)
  2237.   FOR t#=40 TO 60 STEP 2
  2238.     PUT 155+2*(t#-40),ty#,ball$(3)
  2239.     PUT 155,ty#,ball$(1)
  2240.     FOR tt#=50 TO 250 STEP 20
  2241.       PUT tt#,180-t#,kored$(frame#)
  2242.     NEXT tt#
  2243.     INC frame#
  2244.     IF frame#=3
  2245.       frame#=1
  2246.     ENDIF
  2247.     ty#=ty#-10
  2248.     PUT 155+2*(t#-40),ty#+10,ball$(2)
  2249.     PUT 155,ty#+10,ball$(2)
  2250.   NEXT t#
  2251.   CLS
  2252.   fp#=90
  2253.   IF safety#=1
  2254.     fp#=70
  2255.     safety#=0
  2256.   ENDIF
  2257.   field
  2258.   sp#=4
  2259.   x#=100+RANDOM(100)
  2260.   y#=150+RANDOM(20)
  2261.   x1#=x#
  2262.   y1#=y#
  2263.   cx#=150
  2264.   cy#=20
  2265.   cx1#=cx#
  2266.   cy1#=cy#
  2267.   one$=blank$
  2268.   two$=blank$
  2269.   PUT cx#,cy#,blue$(3)
  2270.   PUT x#,y#,red$(2)
  2271.   SGET screen$
  2272.   FOR t#=10 TO 160 STEP 10
  2273.     PUT 210-t#/3,180-t#+5,ball$(3)
  2274.     PUT 155,180-t#+5,ball$(1)
  2275.     PAUSE 2
  2276.     SPUT screen$
  2277.   NEXT t#
  2278.   t#=tt#
  2279.   off#=0
  2280.   count#=12
  2281.   tackle#=0
  2282.   goal#=230
  2283. RETURN
  2284. PROCEDURE choose2
  2285.   WHILE STRIG(1)
  2286.   WEND
  2287.   IF tm#=1 AND (qtr#=2 OR qtr#=4) AND fp#<50
  2288.     fg#=1
  2289.   ENDIF
  2290.   IF dn#<>4 AND fg#=0
  2291.     '
  2292.     ' ========== choose defense ============
  2293.     DEFFILL 0,2,8
  2294.     PBOX 100,50,220,150
  2295.     COLOR 6
  2296.     BOX 100,50,220,150
  2297.     DEFTEXT 5,0,0,6
  2298.     TEXT 136,70,"SELECT"
  2299.     TEXT 132,80,"DEFENSE"
  2300.     DEFTEXT 6,0,0,6
  2301.     TEXT 110,100,"Basic 4-3"
  2302.     DEFTEXT 3,0,0,6
  2303.     TEXT 110,110,"Run Prevent"
  2304.     TEXT 110,120,"Pass Prevent"
  2305.     TEXT 110,130,"Blitz"
  2306.     TEXT 110,140,"Goal Line"
  2307.     '
  2308.     def#=1
  2309.     def1#=1
  2310.     REPEAT
  2311.       a#=STICK(1)
  2312.       PAUSE 2
  2313.       IF a#=1
  2314.         def#=def#-1
  2315.       ELSE IF a#=2
  2316.         def#=def#+1
  2317.       ENDIF
  2318.       IF def#=0
  2319.         def#=5
  2320.       ELSE IF def#=6
  2321.         def#=1
  2322.       ENDIF
  2323.       '
  2324.       IF a#=1 OR a#=2
  2325.         DEFTEXT 3,0,0,6
  2326.         SELECT def1#
  2327.         CASE 1
  2328.           TEXT 110,100,"Basic 4-3"
  2329.         CASE 2
  2330.           TEXT 110,110,"Run Prevent"
  2331.         CASE 3
  2332.           TEXT 110,120,"Pass Prevent"
  2333.         CASE 4
  2334.           TEXT 110,130,"Blitz"
  2335.         CASE 5
  2336.           TEXT 110,140,"Goal Line"
  2337.         ENDSELECT
  2338.         '
  2339.         DEFTEXT 6,0,0,6
  2340.         SELECT def#
  2341.         CASE 1
  2342.           TEXT 110,100,"Basic 4-3"
  2343.         CASE 2
  2344.           TEXT 110,110,"Run Prevent"
  2345.         CASE 3
  2346.           TEXT 110,120,"Pass Prevent"
  2347.         CASE 4
  2348.           TEXT 110,130,"Blitz"
  2349.         CASE 5
  2350.           TEXT 110,140,"Goal Line"
  2351.         ENDSELECT
  2352.         def1#=def#
  2353.       ENDIF
  2354.     UNTIL STRIG(1)
  2355.     '
  2356.     ' SELECT red defense
  2357.     a#=reddef#(def#,1)
  2358.     b#=reddef#(def#,2)
  2359.     c#=reddef#(def#,3)
  2360.     ' CASE 1
  2361.     FOR tt#=1 TO 12
  2362.       FOR ttt#=1 TO 3
  2363.         pr#(1,tt#,ttt#)=pp#(a#,tt#,ttt#)
  2364.         pr#(2,tt#,ttt#)=pp#(b#,tt#,ttt#)
  2365.         pr#(3,tt#,ttt#)=pp#(c#,tt#,ttt#)
  2366.       NEXT ttt#
  2367.     NEXT tt#
  2368.     '
  2369.     SELECT def#
  2370.     CASE 1
  2371.       x#=190
  2372.       y#=160
  2373.     CASE 2
  2374.       x#=110
  2375.       y#=160
  2376.     CASE 3
  2377.       x#=210
  2378.       y#=140
  2379.     CASE 4
  2380.       x#=240
  2381.       y#=100
  2382.     CASE 5
  2383.       x#=160
  2384.       y#=150
  2385.     ENDSELECT
  2386.     '
  2387.     q#=RANDOM(5)+1
  2388.     SELECT def#
  2389.     CASE 1
  2390.       play#=RANDOM(10)+1
  2391.     CASE 2,3,4
  2392.       play#=playbook#(def#-1,q#)
  2393.     CASE 5
  2394.       IF fp#<10
  2395.         play#=playbook#(4,q#)
  2396.       ELSE
  2397.         play#=playbook#(5,q#)
  2398.       ENDIF
  2399.     ENDSELECT
  2400.     '
  2401.     ' SELECT blue offense
  2402.     a#=blueoff#(play#,1)
  2403.     b#=blueoff#(play#,2)
  2404.     c#=blueoff#(play#,3)
  2405.     FOR tt#=1 TO 12
  2406.       FOR ttt#=1 TO 3
  2407.         pb#(1,tt#,ttt#)=pp#(a#,tt#,ttt#)
  2408.         pb#(2,tt#,ttt#)=pp#(b#,tt#,ttt#)
  2409.         pb#(3,tt#,ttt#)=pp#(c#,tt#,ttt#)
  2410.       NEXT ttt#
  2411.     NEXT tt#
  2412.     '
  2413.     SELECT play#
  2414.     CASE 1,2,3,9
  2415.       pass#=0
  2416.     CASE 4,5,6,7,8,10
  2417.       pass#=1
  2418.     ENDSELECT
  2419.   ELSE IF dn#=4
  2420.     IF fp#>50
  2421.       punt#=1
  2422.     ELSE
  2423.       fg#=1
  2424.     ENDIF
  2425.   ENDIF
  2426.   q#=RANDOM(2)
  2427.   IF q#=1 AND def#=3 AND (play#=6 OR play#=8) AND int2#=2
  2428.     int2#=1
  2429.   ENDIF
  2430. RETURN
  2431. PROCEDURE blueball
  2432.   field
  2433.   screen#=0
  2434.   off#=0
  2435.   count#=1
  2436.   countt#=1
  2437.   ko#=0
  2438.   x1#=x#
  2439.   y1#=y#
  2440.   SELECT play#
  2441.   CASE 4,5,7,9
  2442.     bx#=240
  2443.     by#=60
  2444.   CASE 2,3,10
  2445.     bx#=150
  2446.     by#=40
  2447.   CASE 1,6
  2448.     bx#=60
  2449.     by#=60
  2450.   CASE 8
  2451.     bx#=120
  2452.     by#=10
  2453.   ENDSELECT
  2454.   cx#=pb#(1,12,1)
  2455.   cy#=pb#(1,12,2)
  2456.   cx1#=cx#
  2457.   cy1#=cy#
  2458.   frame#=1
  2459.   sp#=4
  2460.   red$=red$(2)
  2461.   GET x#,y#,x#+15,y#+23,one$
  2462.   IF punt#=0 AND fg#=0
  2463.     teams2
  2464.   ELSE
  2465.     bluekick
  2466.   ENDIF
  2467. RETURN
  2468. PROCEDURE teams2
  2469.   PUT x#,y#,red$(2)
  2470.   GET x#,y#,x#+15,y#+27,red$(11)
  2471.   PUT bx#,by#,blue$(1)
  2472.   GET bx#,by#-4,bx#+15,by#+23,blue$(11)
  2473.   FOR t#=90 TO 210 STEP 20
  2474.     PUT t#,70,blue$(1)
  2475.   NEXT t#
  2476.   '
  2477.   FOR t#=1 TO 3
  2478.     PUT pb#(t#,1,1),pb#(t#,1,2),blue$(1)
  2479.     PUT pr#(t#,1,1),pr#(t#,1,2),red$(2)
  2480.   NEXT t#
  2481.   '
  2482.   blue$=blue$(1)
  2483.   two$=blank$
  2484.   FOR t#=90 TO 210 STEP 40
  2485.     PUT t#,100,red$(2)
  2486.   NEXT t#
  2487.   FOR t#=110 TO 190 STEP 40
  2488.     PUT t#,110,red$(2)
  2489.   NEXT t#
  2490.   REPEAT
  2491.     PUT x#,y#,blank$
  2492.     PAUSE 20
  2493.     PUT x#,y#,red$(2)
  2494.     PAUSE 20
  2495.   UNTIL STRIG(1)
  2496.   SGET screen$
  2497.   FOR t#=0 TO 15 STEP 5
  2498.     PUT 154,65-t#,ball$(1)
  2499.     PAUSE 1
  2500.   NEXT t#
  2501.   SPUT screen$
  2502.   PUT 150,40,bluehot$(1)
  2503.   FOR st#=1 TO 4
  2504.     FOR tt#=90 TO 210 STEP 40
  2505.       PUT tt#,65+st#*3,blue$(11)
  2506.       PUT tt#,100-st#*2,red$(11)
  2507.     NEXT tt#
  2508.     FOR tt#=110 TO 190 STEP 40
  2509.       PUT tt#,65+st#*4,blue$(11)
  2510.       PUT tt#,110-st#*2,red$(11)
  2511.     NEXT tt#
  2512.   NEXT st#
  2513.   IF play#=3
  2514.     PUT 150,40,blue$(9)
  2515.     SGET screen$
  2516.     FOR t#=0 TO 20 STEP 5
  2517.       PUT 150-t#,35-t#,ball$(3)
  2518.       PUT 145-t#,35-t#,ball$(1)
  2519.       PAUSE 1
  2520.       SPUT screen$
  2521.     NEXT t#
  2522.     PUT 110,81,blank$
  2523.     PUT 110,102,blank$
  2524.     PUT 135,70,blue$(3)
  2525.     PUT 135,110,red$(5)
  2526.   ELSE IF play#=2 OR play#=10
  2527.     PUT 150,40,blue$(7)
  2528.     SGET screen$
  2529.     FOR t#=0 TO 20 STEP 5
  2530.       PUT 175+t#,35-t#,ball$(3)
  2531.       PUT 170+t#,35-t#,ball$(1)
  2532.       PAUSE 1
  2533.       SPUT screen$
  2534.     NEXT t#
  2535.   ELSE IF play#=9
  2536.     PUT 150,40,blue$(9)
  2537.     SGET screen$
  2538.     FOR t#=0 TO 20 STEP 5
  2539.       PUT 150-t#,35-t#,ball$(3)
  2540.       PUT 145-t#,35-t#,ball$(1)
  2541.       PAUSE 1
  2542.       SPUT screen$
  2543.     NEXT t#
  2544.   ENDIF
  2545. RETURN
  2546. PROCEDURE players2
  2547.   IF count#<12
  2548.     sp#=8
  2549.     PUT pb#(countt#,count#,1),pb#(countt#,count#,2),blank$
  2550.     IF countt#=1
  2551.       PUT pb#(countt#,count#+1,1),pb#(countt#,count#+1,2),bluehot$(pb#(countt#,count#+1,3))
  2552.     ELSE
  2553.       PUT pb#(countt#,count#+1,1),pb#(countt#,count#+1,2),blue$(pb#(countt#,count#+1,3))
  2554.     ENDIF
  2555.     PUT pr#(countt#,count#,1),pr#(countt#,count#,2),blank$
  2556.     PUT pr#(countt#,count#+1,1),pr#(countt#,count#+1,2),red$(pr#(countt#,count#+1,3))
  2557.     INC countt#
  2558.     IF countt#=4
  2559.       countt#=1
  2560.       count#=count#+1
  2561.     ENDIF
  2562.     cx#=pb#(1,count#,1)
  2563.     cy#=pb#(1,count#,2)
  2564.     IF count#=11 AND pass#=1
  2565.       pass2
  2566.     ENDIF
  2567.   ELSE
  2568.     sp#=8
  2569.     chaser
  2570.     PAUSE 1
  2571.   ENDIF
  2572. RETURN
  2573. PROCEDURE pass2
  2574.   PUT pb#(1,11,1),pb#(1,11,2),blank$
  2575.   PUT pb#(1,12,1),pb#(1,12,2),blue$(3)
  2576.   rx#=pb#(3,11,1)
  2577.   ry#=pb#(3,11,2)
  2578.   rp#=pb#(3,11,3)
  2579.   q#=RANDOM(6)
  2580.   IF q#=1
  2581.     rx#=rx#-10
  2582.     ry#=ry#-10
  2583.     inc#=1
  2584.     tackle#=1
  2585.     count#=12
  2586.   ENDIF
  2587.   IF int2#=1
  2588.     rx#=x#
  2589.     ry#=y#
  2590.     inc#=0
  2591.   ENDIF
  2592.   SGET screen$
  2593.   FOR mm#=1 TO 10
  2594.     IF inc#=0
  2595.       PUT 5+cx#+mm#*((rx#-cx#)/10),cy#+mm#*((ry#-cy#)/10),ball$(3)
  2596.     ELSE
  2597.       PUT (5-mm#/2)+cx#+mm#*((rx#-cx#)/10),cy#+mm#*((ry#-cy#)/10),ball$(3)
  2598.     ENDIF
  2599.     PUT cx#+mm#*((rx#-cx#)/10),cy#+mm#*((ry#-cy#)/10),ball$(1)
  2600.     PAUSE 2
  2601.     SPUT screen$
  2602.   NEXT mm#
  2603.   IF inc#=1
  2604.     PUT rx#,ry#,ball$(1)
  2605.   ELSE IF int2#<>1
  2606.     cx#=rx#
  2607.     cy#=ry#
  2608.     cx1#=cx#
  2609.     cy1#=cy#
  2610.   ENDIF
  2611.   IF int2#=1
  2612.     interception2
  2613.   ENDIF
  2614.   pass#=0
  2615.   count#=12
  2616. RETURN
  2617. PROCEDURE interception2
  2618.   offense#=1
  2619.   tackle#=0
  2620.   goal#=-30
  2621.   possession#=1
  2622.   SGET screen$
  2623.   COLOR 8
  2624.   ELLIPSE x#+8,y#+12,12,16
  2625.   DEFTEXT 2,0,0,32
  2626.   TEXT 64,180,"INTERCEPTION"
  2627.   FOR t#=1 TO 4
  2628.     FOR tt#=1 TO 12
  2629.       SOUND 1,10,tt#,6,1
  2630.     NEXT tt#
  2631.   NEXT t#
  2632.   SOUND 1,0
  2633.   SPUT screen$
  2634. RETURN
  2635. PROCEDURE bluekick
  2636.   FOR t#=70 TO 230 STEP 20
  2637.     PUT t#,100,red$(2)
  2638.   NEXT t#
  2639.   PUT 150,175,red$(2)
  2640.   GET 70,100,85,127,red$(11)
  2641.   FOR t#=90 TO 210 STEP 20
  2642.     PUT t#,70,blue$(1)
  2643.   NEXT t#
  2644.   FOR t#=70 TO 230 STEP 160
  2645.     PUT t#,50,blue$(1)
  2646.   NEXT t#
  2647.   GET 70,46,85,73,blue$(11)
  2648.   IF punt#=1
  2649.     PUT 170,40,blue$(1)
  2650.     PUT 150,10,blue$(1)
  2651.   ELSE IF fg#=1
  2652.     PUT 138,10,kicker$(3)
  2653.     PUT 162,0,blue$(1)
  2654.   ENDIF
  2655.   REPEAT
  2656.   UNTIL STRIG(1)
  2657.   SGET screen$
  2658.   FOR t#=0 TO 35 STEP 5
  2659.     PUT 154,65-t#,ball$(1)
  2660.     PAUSE 2
  2661.     SPUT screen$
  2662.   NEXT t#
  2663.   IF fg#=1
  2664.     PUT 154,25,ball$(1)
  2665.   ELSE
  2666.     PUT 150,10,bluehot$(1)
  2667.   ENDIF
  2668.   '
  2669.   FOR st#=0 TO 4
  2670.     FOR tt#=90 TO 210 STEP 20
  2671.       PUT tt#,70+st#*2,blue$(11)
  2672.       PUT tt#,100-st#*3,red$(11)
  2673.     NEXT tt#
  2674.     FOR tt#=70 TO 230 STEP 160
  2675.       PUT tt#,50+st#*2,blue$(11)
  2676.       PUT tt#,100-st#*4,red$(11)
  2677.     NEXT tt#
  2678.   NEXT st#
  2679.   IF punt#=1
  2680.     PUT 150,10,kicker$(4)
  2681.   ELSE IF fg#=1
  2682.     PUT 154,25,ball$(2)
  2683.     PUT 162,0,kicker$(4)
  2684.   ENDIF
  2685.   SGET screen$
  2686.   FOR t#=20 TO 190 STEP 10
  2687.     PUT 154+t#/3,t#,ball$(3)
  2688.     PUT 154,t#,ball$(1)
  2689.     PAUSE 1
  2690.     SPUT screen$
  2691.   NEXT t#
  2692.   IF fg#=1
  2693.     ' ========= field goal ============
  2694.     CLS
  2695.     q#=INT(RND(0)*40)+20
  2696.     IF q#>fp#
  2697.       good#=1
  2698.     ELSE
  2699.       good#=0
  2700.     ENDIF
  2701.     DEFTEXT 8,0,0,13
  2702.     TEXT 0,15,"G"
  2703.     TEXT 304,15,"G"
  2704.     COLOR 8
  2705.     DEFLINE 1,3,0,0
  2706.     LINE 115,180,130,165
  2707.     LINE 215,180,230,165
  2708.     LINE 150,195,165,180
  2709.     LINE 115,180,215,180
  2710.     DEFLINE 1,1,0,0
  2711.     SGET screen$
  2712.     '
  2713.     IF good#=1
  2714.       q#=INT(RND(0)*50)
  2715.       x1#=145+q#/2.5
  2716.       x2#=135+q#
  2717.       y1#=0
  2718.       y2#=190
  2719.     ELSE IF good#=0
  2720.       y1#=0
  2721.       q#=INT(RND(0)*4)+1
  2722.       SELECT q#
  2723.       CASE 1
  2724.         x1#=145
  2725.         x2#=100
  2726.         y2#=190
  2727.       CASE 2
  2728.         x1#=165
  2729.         x2#=235
  2730.         y2#=190
  2731.       CASE 3
  2732.         x1#=150
  2733.         x2#=130
  2734.         y2#=160
  2735.       CASE 4
  2736.         x1#=160
  2737.         x2#=180
  2738.         y2#=155
  2739.       ENDSELECT
  2740.     ENDIF
  2741.     FOR t#=1 TO 50
  2742.       PUT (50-t#)+x1#+t#*(x2#-x1#)/50,y1#-t#*(y1#-y2#)/50,ball$(3)
  2743.       PUT x1#+t#*(x2#-x1#)/50,y1#-t#*(y1#-y2#)/50,ball$(1)
  2744.       PAUSE 1
  2745.       IF t#<>50
  2746.         SPUT screen$
  2747.       ENDIF
  2748.     NEXT t#
  2749.     DEFTEXT 6,0,0,13
  2750.     IF good#=1
  2751.       TEXT 112,80,"Kick is Good"
  2752.       bad
  2753.       bad
  2754.       scr2#=scr2#+3
  2755.       ko#=1
  2756.     ELSE
  2757.       TEXT 100,80,"Kick is No Good"
  2758.     ENDIF
  2759.     offense#=1
  2760.     goal#=-30
  2761.     endplay
  2762.   ELSE IF punt#=1
  2763.     ' =========== runback ==========
  2764.     q#=INT(RND(0)*30)
  2765.     fp#=fp#-20-q#
  2766.     IF fp#<0
  2767.       fp#=0
  2768.     ENDIF
  2769.     CLS
  2770.     field
  2771.     offense#=1
  2772.     goal#=-30
  2773.     count#=12
  2774.     x#=150
  2775.     y#=170
  2776.     PUT x#,y#,red$(2)
  2777.     x1#=x#
  2778.     y1#=y#
  2779.     one$=blank$
  2780.     cx#=100+INT(RND(0)*100)
  2781.     cy#=0+INT(RND(0)*20)
  2782.     cx1#=cx#
  2783.     cy1#=cy#
  2784.     PUT cx#,cy#,blue$(1)
  2785.     two$=blank$
  2786.     SGET screen$
  2787.     FOR t#=0 TO 170 STEP 10
  2788.       PUT 210-t#/3,t#,ball$(3)
  2789.       PUT 154,t#,ball$(1)
  2790.       PAUSE 1
  2791.       SPUT screen$
  2792.     NEXT t#
  2793.     screen#=0
  2794.   ENDIF
  2795. RETURN
  2796. ' ===================
  2797. PROCEDURE victory
  2798.   PAUSE 4
  2799.   FOR t#=1 TO 24
  2800.     b#=victory#(t#,1)
  2801.     SOUND 1,10,b#,4,8
  2802.   NEXT t#
  2803.   FOR t#=25 TO 32
  2804.     b#=victory#(t#,1)
  2805.     c#=4
  2806.     IF b#>12
  2807.       b#=b#-12
  2808.       c#=5
  2809.     ENDIF
  2810.     SOUND 1,10,b#,c#,4
  2811.   NEXT t#
  2812.   PAUSE 2
  2813.   SOUND 1,0
  2814. RETURN
  2815. PROCEDURE bad
  2816.   FOR t#=0 TO 12
  2817.     SOUND 1,10,12-t#,4,1
  2818.   NEXT t#
  2819.   FOR t#=0 TO 12
  2820.     SOUND 1,10,12-t#,3,1
  2821.   NEXT t#
  2822.   FOR t#=0 TO 12
  2823.     SOUND 1,10,12-t#,2,1
  2824.   NEXT t#
  2825.   SOUND 1,0
  2826. RETURN
  2827. PROCEDURE charge
  2828.   PAUSE 4
  2829.   FOR t#=1 TO 9
  2830.     a#=charge#(t#,1)
  2831.     IF a#<13
  2832.       tt#=4
  2833.     ELSE
  2834.       tt#=5
  2835.       a#=a#-12
  2836.     ENDIF
  2837.     SOUND 1,10,a#,tt#,6
  2838.   NEXT t#
  2839.   DEFTEXT 6,0,0,32
  2840.   SOUND 1,0,0,0,8
  2841.   TEXT 104,100,"CHARGE!"
  2842.   SOUND 1,9,6,5,32
  2843.   SOUND 1,0
  2844.   PAUSE 8
  2845. RETURN
  2846. PROCEDURE halftime
  2847.   SETCOLOR 0,0,4,0
  2848.   DEFFILL 5,2,8
  2849.   PBOX 0,0,319,99
  2850.   stats
  2851.   DEFTEXT 2,0,0,13
  2852.   GRAPHMODE 2
  2853.   TEXT 128,70,"Halftime"
  2854.   GRAPHMODE 2
  2855.   FOR t#=1 TO 20
  2856.     PUT (t#-1)*16,100,crowd$(t#*2)
  2857.   NEXT t#
  2858.   DEFFILL 6,2,8
  2859.   PBOX 0,130,319,135
  2860.   DEFFILL 3,2,8
  2861.   PBOX 0,180,319,199
  2862.   jump
  2863.   FOR t#=0 TO 400 STEP 16
  2864.     PUT t#-8,156,blank$
  2865.     PUT t#,156,red$(8)
  2866.     jump
  2867.     PUT t#-28,156,blank$
  2868.     PUT t#-20,156,red$(7)
  2869.     jump
  2870.     PUT t#-68,156,blank$
  2871.     PUT t#-60,156,red$(8)
  2872.     jump
  2873.     PAUSE 8
  2874.     PUT t#,156,blank$
  2875.     PUT t#+8,156,red$(7)
  2876.     jump
  2877.     PUT t#-20,156,blank$
  2878.     PUT t#-12,156,red$(8)
  2879.     jump
  2880.     PUT t#-60,156,blank$
  2881.     PUT t#-52,156,red$(7)
  2882.     jump
  2883.     PAUSE 8
  2884.   NEXT t#
  2885.   FOR t#=1 TO 20
  2886.     PUT (t#-1)*16,100,crowd$(t#*2)
  2887.   NEXT t#
  2888.   band
  2889.   FOR t#=0 TO 400 STEP 16
  2890.     PUT 320-t#+8,156,blank$
  2891.     PUT 320-t#,156,red$(10)
  2892.     jump
  2893.     PUT 320-t#+28,156,blank$
  2894.     PUT 320-t#+20,156,red$(9)
  2895.     jump
  2896.     PUT 320-t#+68,156,blank$
  2897.     PUT 320-t#+60,156,red$(10)
  2898.     jump
  2899.     PAUSE 8
  2900.     PUT 320-t#,156,blank$
  2901.     PUT 320-t#-8,156,red$(9)
  2902.     jump
  2903.     PUT 320-t#+20,156,blank$
  2904.     PUT 320-t#+12,156,red$(10)
  2905.     jump
  2906.     PUT 320-t#+60,156,blank$
  2907.     PUT 320-t#+52,156,red$(9)
  2908.     jump
  2909.     PAUSE 8
  2910.   NEXT t#
  2911.   FOR t#=1 TO 20
  2912.     PUT (t#-1)*16,100,crowd$(t#*2)
  2913.   NEXT t#
  2914.   REPEAT
  2915.   UNTIL STRIG(1)
  2916.   dissolve
  2917. RETURN
  2918. PROCEDURE jump
  2919.   q#=1+RANDOM(20)
  2920.   a#=sitz#(q#,1)
  2921.   IF a#=1
  2922.     PUT (q#-1)*16,100,crowd$(q#*2-1)
  2923.     sitz#(q#,1)=2
  2924.   ELSE IF a#=2
  2925.     PUT (q#-1)*16,100,crowd$(q#*2)
  2926.     sitz#(q#,1)=1
  2927.   ENDIF
  2928. RETURN
  2929. PROCEDURE shuffle
  2930.   DEFFILL 15,2,8
  2931.   FOR t#=1 TO 4
  2932.     PUT x#,y#,spiker$(1)
  2933.     delay
  2934.     PUT x#,y#,spiker$(2)
  2935.     delay
  2936.   NEXT t#
  2937.   PUT x#,y#,spiker$(3)
  2938.   delay
  2939.   PUT x#,y#,spiker$(4)
  2940.   SGET screen$
  2941.   WHILE x#>0
  2942.     PELLIPSE x#-10,y#+16,3,4
  2943.     x#=x#-10
  2944.     PAUSE 2
  2945.     SPUT screen$
  2946.     PELLIPSE x#-10,y#+16,4,3
  2947.     x#=x#-10
  2948.     PAUSE 2
  2949.     SPUT screen$
  2950.   WEND
  2951. RETURN
  2952. PROCEDURE spike
  2953.   DEFFILL 15,2,8
  2954.   PUT cx#,cy#,spiker$(5)
  2955.   delay
  2956.   delay
  2957.   PUT cx#,cy#,spiker$(6)
  2958.   SGET screen$
  2959.   WHILE cx#>0
  2960.     PELLIPSE cx#-10,cy#+16,3,4
  2961.     cx#=cx#-10
  2962.     PAUSE 2
  2963.     SPUT screen$
  2964.     PELLIPSE cx#-10,cy#+16,4,3
  2965.     cx#=cx#-10
  2966.     PAUSE 2
  2967.     SPUT screen$
  2968.   WEND
  2969. RETURN
  2970. PROCEDURE delay
  2971.   PAUSE 10
  2972. RETURN
  2973. PROCEDURE band
  2974.   xyz#=1
  2975.   FOR t#=-140 TO 356 STEP 8
  2976.     FOR tt#=0 TO 2 STEP 2
  2977.       PUT t#+tt#,152,band$(1)
  2978.       PAUSE 2
  2979.     NEXT tt#
  2980.     b#=victory#(xyz#,1)
  2981.     xyz#=xyz#+1
  2982.     c#=4
  2983.     IF b#>12
  2984.       b#=b#-12
  2985.       c#=5
  2986.     ENDIF
  2987.     SOUND 1,10,b#,c#,4
  2988.     FOR tt#=4 TO 6 STEP 2
  2989.       PUT t#+tt#,152,band$(2)
  2990.       PAUSE 2
  2991.     NEXT tt#
  2992.     b#=victory#(xyz#,1)
  2993.     xyz#=xyz#+1
  2994.     c#=4
  2995.     IF b#>12
  2996.       b#=b#-12
  2997.       c#=5
  2998.     ENDIF
  2999.     SOUND 1,10,b#,c#,4
  3000.     IF xyz#>32
  3001.       xyz#=1
  3002.     ENDIF
  3003.   NEXT t#
  3004.   SOUND 1,0
  3005. RETURN
  3006.