home *** CD-ROM | disk | FTP | other *** search
- ' ================================================================
- ' ======================= Crunch Time Football ===================
- ' =============== Copyright 1990 by Antic Publishing Inc. ========
- ' ================================================================
- setup
- start:
- dissolve
- teamcolors
- teamname
- level
- newgame
- DO
- IF offense#=1
- offense
- ELSE
- defense
- ENDIF
- LOOP UNTIL endgame#=1
- STICK 0
- SHOWM
- ALERT 2,"Do you want to|play another game?",1," Yes | Quit ",playmore#
- IF playmore#=1
- GOTO start
- ENDIF
- restore_pal !complements retain_pal which is called in setup
- PROCEDURE offense
- REPEAT
- q#=RANDOM(3+(diff#>2))
- IF diff#<3
- bigplay#=q#-1
- ELSE
- bigplay#=q#-2
- ENDIF
- IF bigplay#=-2 AND diff#=3
- bigplay#=0
- ENDIF
- IF fg#=1
- fg#=0
- ENDIF
- IF ko#=1
- kickoff
- ko#=2
- count#=12
- ELSE IF punt#=1
- punt#=2
- ELSE IF int2#=1
- int2#=0
- ELSE
- tackle#=0
- chooseplay
- CLS
- redball
- ENDIF
- IF punt#<>1 AND fg#<>1
- REPEAT
- mover
- IF y#<goal# AND offense#=1
- td
- ELSE IF off#=0
- players
- j#=RANDOM(7)
- IF j#=1
- IF screen#<=bigplay#
- ELSE IF screen#>bigplay#
- chaser
- chaser
- ENDIF
- ELSE
- chaser
- ENDIF
- IF ABS(x#-cx#)<16 AND ABS(y#-cy#)<24 AND offense#=1
- tackle#=1
- ENDIF
- ELSE IF off#=1
- scroll
- ENDIF
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- UNTIL ko#=1 OR tackle#=1 OR endgame#=1 OR offense#=0
- IF tackle#=1
- tackle
- ENDIF
- ENDIF
- UNTIL offense#=0 OR endgame#=1
- RETURN
- PROCEDURE defense
- REPEAT
- bigplay#=RANDOM(2)
- IF diff#=1
- bigplay#=-1
- ENDIF
- IF fg#=1
- fg#=0
- ENDIF
- IF ko#=1
- kickoff2
- ko#=2
- count#=12
- ELSE IF punt#=1
- punt#=2
- ELSE IF int#=1
- int#=0
- ELSE
- tackle#=0
- choose2
- CLS
- blueball
- ENDIF
- IF punt#<>1 AND fg#<>1
- REPEAT
- q#=RANDOM(7)
- IF q#=1
- IF screen#<=bigplay#
- ELSE IF screen#>bigplay#
- mover
- mover
- ENDIF
- ELSE
- mover
- ENDIF
- IF cy#>goal# AND offense#=0
- td
- ELSE IF ABS(x#-cx#)<16 AND ABS(y#-cy#)<24
- tackle#=1
- ENDIF
- players2
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- UNTIL ko#=1 OR tackle#=1 OR endgame#=1 OR offense#=1
- IF tackle#=1
- tackle
- ENDIF
- ENDIF
- UNTIL offense#=1 OR endgame#=1
- RETURN
- PROCEDURE mover
- a#=STICK(1)
- SELECT a#
- CASE 0
- cel#=1
- CASE 1
- cel#=frame#+4
- y#=y#-sp#/2
- CASE 2
- cel#=frame#+2
- y#=y#+sp#/2
- CASE 4
- cel#=frame#+8
- x#=x#-sp#/2
- CASE 8
- cel#=frame#+6
- x#=x#+sp#/2
- CASE 5
- cel#=frame#+4
- x#=1+x#-sp#/2
- y#=y#-sp#/2
- CASE 9
- cel#=frame#+4
- x#=-1+x#+sp#/2
- y#=y#-sp#/2
- CASE 6
- cel#=frame#+2
- x#=1+x#-sp#/2
- y#=y#+sp#/2
- CASE 10
- cel#=frame#+2
- x#=-1+x#+sp#/2
- y#=y#+sp#/2
- ENDSELECT
- IF x#<0
- x#=0
- ELSE IF x#>304
- x#=304
- ENDIF
- IF y#<0
- y#=0
- off#=1
- ELSE IF y#>176
- y#=176
- ENDIF
- k#=POINT(x#+8,y#+28)
- IF k#=0 OR k#=8
- ELSE
- x#=x1#
- y#=y1#
- ENDIF
- IF a#<>0
- PUT x1#,y1#,one$
- GET x#,y#,x#+15,y#+23,one$
- IF offense#=1
- PUT x#,y#,redhot$(cel#)
- ELSE
- PUT x#,y#,red$(cel#)
- ENDIF
- ENDIF
- x1#=x#
- y1#=y#
- RETURN
- PROCEDURE chaser
- IF offense#=1
- IF y#<>cy#
- IF y#<cy#
- blue$=blue$(frame#+4)
- cy#=cy#-sp#/2
- ELSE IF y#>cy#
- blue$=blue$(frame#+2)
- cy#=cy#+sp#/2
- ENDIF
- IF x#<cx#
- cx#=1+cx#-sp#/2
- ELSE IF x#>cx#
- cx#=-1+cx#+sp#/2
- ENDIF
- ELSE IF y#=cy#
- IF x#<cx#
- blue$=blue$(frame#+8)
- cx#=cx#-sp#
- ELSE IF x#>cx#
- blue$=blue$(frame#+6)
- cx#=cx#+sp#
- ENDIF
- ENDIF
- ENDIF
- IF offense#=0
- bluehot$=bluehot$(frame#+2)
- cy#=cy#+sp#/2
- IF ABS(x#-cx#)<40
- IF x#<cx#
- cx#=-1+cx#+sp#/2
- ELSE IF x#>cx#
- cx#=1+cx#-sp#/2
- ENDIF
- ENDIF
- ENDIF
- IF cy#<0
- cy#=0
- ELSE IF cy#>176 AND offense#=1
- cy#=176
- ELSE IF cy#>176 AND offense#=0
- CLS
- scroll
- ELSE IF cx#<0
- cx#=0
- ELSE IF cx#>304
- cx#=304
- ENDIF
- PUT cx1#,cy1#,two$
- GET cx#,cy#,cx#+15,cy#+23,two$
- IF offense#=0
- PUT cx#,cy#,bluehot$
- ELSE
- PUT cx#,cy#,blue$
- ENDIF
- cx1#=cx#
- cy1#=cy#
- RETURN
- ' ==================
- PROCEDURE kickoff
- CLS
- fp#=63
- IF safety#=1
- fp#=78
- ENDIF
- field
- FOR t#=60 TO 240 STEP 60
- PUT t#,160,red$(2)
- NEXT t#
- PUT 155,65,ball$(1)
- FOR t#=50 TO 250 STEP 20
- PUT t#,22,blue$(1)
- IF t#=130
- t#=150
- ENDIF
- NEXT t#
- PUT 150,2,blue$(1)
- GET 50,20,65,45,koblue$(1)
- GET 170,20,185,45,koblue$(2)
- REPEAT
- UNTIL STRIG(1)
- frame#=1
- PUT 150,2,blue$(3)
- GET 150,0,165,25,koblue$(1)
- PUT 150,2,blue$(4)
- GET 150,0,165,25,koblue$(2)
- FOR t#=2 TO 20 STEP 2
- PUT 150,t#,koblue$(frame#)
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- PAUSE 2
- NEXT t#
- FOR t#=22 TO 38 STEP 2
- FOR tt#=50 TO 250 STEP 20
- PUT tt#,t#,koblue$(frame#)
- NEXT tt#
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- NEXT t#
- ty#=75
- PUT 155,65,ball$(2)
- FOR t#=40 TO 60 STEP 2
- PUT 155+2*(t#-40),ty#,ball$(3)
- PUT 155,ty#,ball$(1)
- FOR tt#=50 TO 250 STEP 20
- PUT tt#,t#,koblue$(frame#)
- NEXT tt#
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- ty#=ty#+10
- PUT 155+2*(t#-40),ty#-10,ball$(2)
- PUT 155,ty#-10,ball$(2)
- NEXT t#
- CLS
- goal#=-30
- fp#=10
- IF safety#=1
- fp#=30
- safety#=0
- ENDIF
- field
- sp#=4
- x#=150
- y#=170
- x1#=x#
- y1#=y#
- cx#=100+RANDOM(100)
- cy#=RANDOM(20)
- cx1#=cx#
- cy1#=cy#
- one$=blank$
- two$=blank$
- PUT cx#,cy#,blue$(3)
- PUT x#,y#,red$(2)
- SGET screen$
- FOR t#=10 TO 160 STEP 10
- PUT 200-t#/4,t#-5,ball$(3)
- PUT 155,t#-5,ball$(1)
- PAUSE 2
- SPUT screen$
- NEXT t#
- PUT x#,y#,red$(2)
- off#=0
- screen#=0
- ko#=2
- count#=12
- tackle#=0
- RETURN
- PROCEDURE chooseplay
- WHILE STRIG(1)
- WEND
- IF tm#=1 AND (qtr#=2 OR qtr#=4)
- ' ========== choose play ============
- DEFFILL 0,2,8
- PBOX 100,50,220,150
- COLOR 6
- BOX 100,50,220,150
- DEFTEXT 2,0,0,6
- TEXT 124,70,"LAST PLAY"
- DEFTEXT 5,0,0,6
- IF qtr#=2
- TEXT 116,90,"OF THE HALF"
- ELSE IF qtr#=4
- TEXT 116,90,"OF THE GAME"
- ENDIF
- DEFTEXT 6,0,0,6
- TEXT 110,120,"Field Goal"
- DEFTEXT 3,0,0,6
- TEXT 110,130,"Go for It"
- '
- fdp#=1
- fdp1#=1
- fg#=1
- REPEAT
- a#=STICK(1)
- PAUSE 2
- IF a#=1
- fdp#=fdp#-1
- ELSE IF a#=2
- fdp#=fdp#+1
- ENDIF
- IF fdp#=0
- fdp#=2
- ELSE IF fdp#=3
- fdp#=1
- ENDIF
- '
- IF a#=1 OR a#=2
- DEFTEXT 3,0,0,6
- SELECT fdp1#
- CASE 1
- TEXT 110,120,"Field Goal"
- CASE 2
- TEXT 110,130,"Go for It"
- ENDSELECT
- '
- DEFTEXT 6,0,0,6
- SELECT fdp#
- CASE 1
- TEXT 110,120,"Field Goal"
- punt#=0
- fg#=1
- CASE 2
- TEXT 110,130,"Go for It"
- punt#=0
- fg#=0
- ENDSELECT
- fdp1#=fdp#
- ENDIF
- UNTIL STRIG(1)
- ENDIF
- IF dn#=4 AND fg#<>1
- ' ========== choose play ============
- DEFFILL 0,2,8
- PBOX 100,50,220,150
- COLOR 6
- BOX 100,50,220,150
- DEFTEXT 2,0,0,6
- TEXT 116,70,"FOURTH DOWN"
- DEFTEXT 5,0,0,6
- TEXT 116,90,"CHOOSE PLAY"
- DEFTEXT 6,0,0,6
- TEXT 110,110,"Punt"
- DEFTEXT 3,0,0,6
- TEXT 110,120,"Field Goal"
- TEXT 110,130,"Go for It"
- '
- fdp#=1
- fdp1#=1
- punt#=1
- fg#=0
- REPEAT
- a#=STICK(1)
- PAUSE 2
- IF a#=1
- fdp#=fdp#-1
- ELSE IF a#=2
- fdp#=fdp#+1
- ENDIF
- IF fdp#=0
- fdp#=3
- ELSE IF fdp#=4
- fdp#=1
- ENDIF
- '
- IF a#=1 OR a#=2
- DEFTEXT 3,0,0,6
- SELECT fdp1#
- CASE 1
- TEXT 110,110,"Punt"
- CASE 2
- TEXT 110,120,"Field Goal"
- CASE 3
- TEXT 110,130,"Go for It"
- ENDSELECT
- '
- DEFTEXT 6,0,0,6
- SELECT fdp#
- CASE 1
- TEXT 110,110,"Punt"
- punt#=1
- fg#=0
- CASE 2
- TEXT 110,120,"Field Goal"
- punt#=0
- fg#=1
- CASE 3
- TEXT 110,130,"Go for It"
- punt#=0
- fg#=0
- ENDSELECT
- fdp1#=fdp#
- ENDIF
- UNTIL STRIG(1)
- ENDIF
- IF punt#=0 AND fg#=0
- DEFLINE 1,1,0,0
- DEFFILL 0,2,8
- COLOR 3
- FOR g#=1 TO 8
- PUT grid#(g#,1),grid#(g#,2),diagram$(g#)
- NEXT g#
- g#=1
- COLOR 2
- BOX 20,25,100,75
- '
- REPEAT
- a#=STICK(1)
- IF a#<>0
- COLOR 3
- BOX grid#(g#,1),grid#(g#,2),grid#(g#,1)+80,grid#(g#,2)+50
- SELECT a#
- CASE 1
- g#=2
- CASE 2
- g#=7
- CASE 4
- g#=4
- CASE 5
- g#=1
- CASE 6
- g#=6
- CASE 8
- g#=5
- CASE 9
- g#=3
- CASE 10
- g#=8
- ENDSELECT
- COLOR 2
- BOX grid#(g#,1),grid#(g#,2),grid#(g#,1)+80,grid#(g#,2)+50
- ENDIF
- play#=g#
- PAUSE 5
- UNTIL STRIG(1)
- q#=RANDOM(2)
- IF q#=1
- play#=play#+8
- ENDIF
- ENDIF
- RETURN
- PROCEDURE redball
- field
- screen#=0
- off#=0
- count#=1
- countt#=1
- ko#=0
- x#=150
- y#=130
- x1#=x#
- y1#=y#
- frame#=1
- sp#=4
- one$=blank$
- IF punt#=0 AND fg#=0
- PUT x#,y#,red$(2)
- teams
- ELSE
- redkick
- ENDIF
- RETURN
- PROCEDURE teams
- FOR t#=90 TO 210 STEP 40
- PUT t#,70,blue$(1)
- NEXT t#
- FOR t#=110 TO 190 STEP 40
- PUT t#,60,blue$(1)
- NEXT t#
- GET 90,55,230,95,bteam$
- FOR t#=70 TO 230 STEP 160
- PUT t#,40,blue$(1)
- NEXT t#
- FOR yes#=1 TO 16
- IF play#=yes#
- FOR tt#=1 TO 12
- FOR ttt#=1 TO 3
- pr#(1,tt#,ttt#)=p#(ppp#(play#,1),tt#,ttt#)
- pr#(2,tt#,ttt#)=p#(ppp#(play#,2),tt#,ttt#)
- pr#(3,tt#,ttt#)=p#(ppp#(play#,3),tt#,ttt#)
- pb#(1,tt#,ttt#)=p#(ppp#(play#,4),tt#,ttt#)
- pb#(2,tt#,ttt#)=p#(ppp#(play#,5),tt#,ttt#)
- pb#(3,tt#,ttt#)=p#(ppp#(play#,6),tt#,ttt#)
- NEXT ttt#
- NEXT tt#
- ENDIF
- NEXT yes#
- '
- SELECT play#
- CASE 2,3,4,5,6,9,10,11,13,14,15,16
- cx#=130
- cy#=30
- CASE 8,12
- cx#=170
- cy#=30
- CASE 1,7
- cx#=230
- cy#=40
- ENDSELECT
- SELECT play#
- CASE 2,3,4,5,6,8,10,11,12,13,14,16
- pass#=1
- DEFAULT
- ENDSELECT
- cx1#=cx#
- cy1#=cy#
- two$=blank$
- PUT cx#,cy#,blue$(1)
- FOR t#=90 TO 210 STEP 20
- PUT t#,100,red$(2)
- NEXT t#
- GET 90,100,105,127,red$(11)
- FOR t#=1 TO 3
- PUT pr#(t#,1,1),pr#(t#,1,2),red$(2)
- PUT pb#(t#,1,1),pb#(t#,1,2),blue$(1)
- NEXT t#
- REPEAT
- UNTIL STRIG(1)
- PUT 150,130,redhot$(2)
- FOR t#=1 TO 4
- PUT 90,55+t#*2,bteam$
- FOR tt#=90 TO 210 STEP 40
- PUT tt#,100-t#*3,red$(11)
- NEXT tt#
- FOR tt#=110 TO 190 STEP 40
- PUT tt#,100-t#*4,red$(11)
- NEXT tt#
- mover
- NEXT t#
- IF play#=6 OR play#=14
- PUT 210,64,blank$
- PUT 210,88,blank$
- PUT 260,74,blue$(1)
- PUT 260,88,red$(2)
- ELSE IF play#=7 OR play#=15
- PUT 110,64,blank$
- PUT 110,88,blank$
- PUT 130,64,blank$
- PUT 130,88,blank$
- PUT 140,44,blue$(1)
- PUT 140,54,red$(2)
- PUT 100,84,blue$(1)
- PUT 100,94,red$(2)
- ENDIF
- RETURN
- PROCEDURE players
- IF count#<12
- sp#=8
- PUT pb#(countt#,count#,1),pb#(countt#,count#,2),blank$
- PUT pb#(countt#,count#+1,1),pb#(countt#,count#+1,2),blue$(pb#(countt#,count#+1,3))
- PUT pr#(countt#,count#,1),pr#(countt#,count#,2),blank$
- PUT pr#(countt#,count#+1,1),pr#(countt#,count#+1,2),red$(pr#(countt#,count#+1,3))
- INC countt#
- IF countt#=4
- countt#=1
- count#=count#+1
- ENDIF
- IF count#>3 AND pass#=1 AND STRIG(1)
- pass
- ENDIF
- ELSE
- sp#=4
- ENDIF
- RETURN
- PROCEDURE pass
- '
- IF int#=2 AND (play#=4 OR play#=5 OR play#=8)
- q#=RANDOM(4)
- IF q#=1 AND qtr#>1
- int#=1
- ENDIF
- ENDIF
- '
- IF countt#=1
- count#=count#-1
- ENDIF
- IF count#>11
- count#=11
- ENDIF
- '
- IF play#=2 OR play#=3 OR play#=6
- mmm#=7
- ELSE
- mmm#=5
- ENDIF
- PUT x#,y#,blank$
- PUT x#,y#,red$(mmm#)
- rx#=pr#(1,count#+1,1)
- ry#=pr#(1,count#+1,2)
- rp#=pr#(1,count#+1,3)
- IF int#=1
- rx#=pb#(1,count#+1,1)
- ry#=pb#(1,count#+1,2)
- rp#=pb#(1,count#+1,3)
- ENDIF
- SGET screen$
- SELECT play#
- CASE 2,10,4,12,5,13,8,16
- q#=RANDOM(3)
- IF q#=1 AND int#<>1
- rx#=rx#+20
- ry#=ry#+20
- inc#=1
- tackle#=1
- count#=12
- ENDIF
- CASE 1,9,3,11,6,14,7,15
- q#=0
- ENDSELECT
- FOR mm#=1 TO 10
- IF inc#=0
- PUT 5+x#+mm#*((rx#-x#)/10),y#+mm#*((ry#-y#)/10),ball$(3)
- ELSE
- PUT (5-mm#/2)+x#+mm#*((rx#-x#)/10),y#+mm#*((ry#-y#)/10),ball$(3)
- ENDIF
- PUT x#+mm#*((rx#-x#)/10),y#+mm#*((ry#-y#)/10),ball$(1)
- PAUSE 2
- SPUT screen$
- NEXT mm#
- IF inc#=1
- PUT rx#,ry#,ball$(1)
- ELSE IF inc#=0 AND int#<>1
- FOR m#=count#+1 TO 12
- pr#(1,m#,1)=x#
- pr#(1,m#,2)=y#
- pr#(1,m#,3)=mmm#
- NEXT m#
- x#=rx#
- y#=ry#
- x1#=x#
- y1#=y#
- PUT x#,y#,blank$
- GET x#,y#,x#+15,y#+23,one$
- PUT x#,y#,red$(5)
- pass#=0
- IF play#<>2
- rx#=pb#(1,count#+1,1)
- ry#=pb#(1,count#+1,2)
- rp#=pb#(1,count#+1,3)
- FOR m#=count#+1 TO 12
- pb#(1,m#,1)=cx#
- pb#(1,m#,2)=cy#
- pb#(1,m#,3)=5
- NEXT m#
- cx#=rx#
- cy#=ry#
- cx1#=cx#
- cy1#=cy#
- PUT cx#,cy#,blank$
- GET cx#,cy#,cx#+15,cy#+23,two$
- PUT cx#,cy#,blue$(5)
- ENDIF
- ENDIF
- '
- IF int#=1
- interception
- ENDIF
- '
- RETURN
- PROCEDURE redkick
- FOR t#=70 TO 230 STEP 20
- PUT t#,70,blue$(1)
- NEXT t#
- PUT 150,0,blue$(1)
- GET 70,66,85,93,blue$(11)
- FOR t#=90 TO 210 STEP 20
- PUT t#,100,red$(2)
- NEXT t#
- FOR t#=70 TO 230 STEP 160
- PUT t#,120,red$(2)
- NEXT t#
- GET 70,120,85,147,red$(11)
- IF punt#=1
- PUT 150,175,red$(2)
- PUT 130,130,red$(2)
- ELSE IF fg#=1
- PUT 138,175,red$(2)
- PUT 158,165,kicker$(1)
- ENDIF
- REPEAT
- UNTIL STRIG(1)
- SGET screen$
- IF punt#=1
- FOR t#=0 TO 35 STEP 5
- PUT 154,130+t#,ball$(1)
- PAUSE 2
- SPUT screen$
- NEXT t#
- PUT 150,175,redhot$(2)
- ELSE IF fg#=1
- FOR t#=0 TO 45 STEP 5
- PUT 154,130+t#,ball$(1)
- PAUSE 2
- SPUT screen$
- NEXT t#
- PUT 154,178,ball$(1)
- ENDIF
- '
- FOR st#=0 TO 4
- FOR tt#=90 TO 210 STEP 20
- PUT tt#,70+st#*3,blue$(11)
- PUT tt#,100-st#*2,red$(11)
- NEXT tt#
- FOR tt#=70 TO 230 STEP 160
- PUT tt#,70+st#*4,blue$(11)
- PUT tt#,120-st#*2,red$(11)
- NEXT tt#
- NEXT st#
- '
- IF punt#=1
- PUT 150,175,kicker$(2)
- ELSE IF fg#=1
- PUT 138,175,kicker$(2)
- ENDIF
- IF fg#=1
- PUT 154,178,ball$(2)
- ENDIF
- SGET screen$
- FOR t#=0 TO 160 STEP 10
- PUT 154+t#/3,160-t#,ball$(3)
- PUT 154,160-t#,ball$(1)
- PAUSE 1
- SPUT screen$
- NEXT t#
- '
- IF fg#=1
- ' ============ field goal ========
- CLS
- q#=INT(RND(0)*40)+20
- IF q#>100-fp#
- good#=1
- ELSE
- good#=0
- ENDIF
- DEFTEXT 8,0,0,13
- TEXT 0,195,"G"
- TEXT 304,195,"G"
- COLOR 8
- DEFLINE 1,3,0,0
- LINE 115,20,130,5
- LINE 215,20,230,5
- LINE 150,35,165,20
- LINE 115,20,215,20
- DEFLINE 1,1,0,0
- SGET screen$
- '
- IF good#=1
- q#=INT(RND(0)*50)
- x1#=145+q#/2.5
- x2#=135+q#
- y1#=190
- y2#=0
- ELSE IF good#=0
- y1#=190
- q#=INT(RND(0)*4)+1
- SELECT q#
- CASE 1
- x1#=145
- x2#=100
- y2#=0
- CASE 2
- x1#=165
- x2#=235
- y2#=0
- CASE 3
- x1#=150
- x2#=130
- y2#=40
- CASE 4
- x1#=160
- x2#=180
- y2#=35
- ENDSELECT
- ENDIF
- FOR t#=1 TO 50
- PUT (50-t#)+x1#+t#*(x2#-x1#)/50,y1#-t#*(y1#-y2#)/50,ball$(3)
- PUT x1#+t#*(x2#-x1#)/50,y1#-t#*(y1#-y2#)/50,ball$(1)
- PAUSE 1
- IF t#<>50
- SPUT screen$
- ENDIF
- NEXT t#
- DEFTEXT 6,0,0,13
- IF good#=1
- TEXT 112,80,"Kick is Good"
- scr1#=scr1#+3
- ko#=1
- victory
- ELSE
- TEXT 100,80,"Kick is No Good"
- bad
- ENDIF
- offense#=0
- goal#=230
- ' PAUSE 100
- DEFFILL 0,2,8
- GET 0,0,319,199,screen$
- FOR t#=2 TO 40 STEP 2
- PBOX 0,t#-2,319,t#-1
- PUT 0,t#,screen$
- NEXT t#
- endplay
- ELSE IF punt#=1
- ' =========== runback ==========
- q#=RANDOM(30)
- fp#=fp#+20+q#
- IF fp#>100
- fp#=100
- ENDIF
- CLS
- field
- offense#=0
- goal#=210
- count#=12
- cx#=150
- cy#=10
- PUT cx#,cy#,blue$(1)
- cx1#=cx#
- cy1#=cy#
- two$=blank$
- x#=100+INT(RND(0)*100)
- y#=150+INT(RND(0)*20)
- x1#=x#
- y1#=y#
- PUT x#,y#,red$(2)
- one$=blank$
- SGET screen$
- FOR t#=20 TO 190 STEP 10
- PUT 215-t#/3,210-t#,ball$(3)
- PUT 154,210-t#,ball$(1)
- PAUSE 1
- SPUT screen$
- NEXT t#
- ENDIF
- RETURN
- PROCEDURE interception
- possession#=1
- cx#=rx#
- cy#=ry#
- cx1#=cx#
- cy1#=cy#
- count#=12
- SGET screen$
- COLOR 8
- ELLIPSE cx#+8,cy#+12,12,16
- DEFTEXT 2,0,0,32
- TEXT 64,180,"INTERCEPTION"
- FOR t#=1 TO 4
- FOR tt#=1 TO 12
- SOUND 1,10,13-tt#,6,1
- NEXT tt#
- NEXT t#
- SOUND 1,0
- SPUT screen$
- one$=blank$
- two$=blank$
- PUT x#,y#,one$
- offense#=0
- WHILE cx#<160 AND cx#>30 AND tackle#=0
- PUT cx#,cy#,two$
- cx#=cx#-6
- GET cx#,cy#,cx#+15,cy#+23,two$
- PUT cx#,cy#,bluehot$(10)
- mover
- IF a#=0
- PUT x#,y#,red$(2)
- ENDIF
- IF ABS(x#-cx#)<10 AND ABS(y#-cy#)<10
- tackle#=1
- ENDIF
- PAUSE 1
- WEND
- WHILE cx#>159 AND cx#<275 AND tackle#=0
- PUT cx#,cy#,two$
- cx#=cx#+6
- GET cx#,cy#,cx#+15,cy#+23,two$
- PUT cx#,cy#,bluehot$(8)
- mover
- IF a#=0
- PUT x#,y#,red$(2)
- ENDIF
- IF ABS(x#-cx#)<10 AND ABS(y#-cy#)<10
- tackle#=1
- ENDIF
- PAUSE 1
- WEND
- goal#=210
- PUT cx#,cy#,blank$
- two$=blank$
- bigplay#=0
- RETURN
- ' ====================
- PROCEDURE field
- DEFTEXT 8,0,0,13
- FOR t#=1 TO 10
- TEXT 0,-5+20*t#,field$(fp#+7-t#)
- ON ERROR GOSUB exit
- TEXT 304,-5+20*t#,field$(fp#+7-t#)
- ON ERROR GOSUB exit
- NEXT t#
- IF fp#>90 AND offense#=1
- goal#=100-(20*(100-fp#))
- ENDIF
- IF fp#<10 AND offense#=0
- goal#=100+20*fp#
- ENDIF
- RETURN
- PROCEDURE scroll
- CLS
- IF offense#=1
- ds#=1
- ELSE
- ds#=-1
- ENDIF
- one$=blank$
- two$=blank$
- fp#=fp#+10*ds#
- screen#=screen#+1
- field
- IF offense#=1
- players
- tt#=cy#/2
- IF tt#>50
- tt#=50
- ENDIF
- y#=175
- y1#=175
- frame#=1
- FOR t#=0 TO tt#
- red$=red$(frame#)
- mover
- PAUSE 1
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- NEXT t#
- off#=0
- cy#=175
- cy1#=175
- ELSE
- tt#=(180-y#)/4
- IF tt#>20
- tt#=20
- ENDIF
- cy#=0
- cy1#=0
- frame#=1
- FOR t#=0 TO tt#
- blue$=blue$(frame#)
- chaser
- PAUSE 1
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- NEXT t#
- off#=0
- y#=0
- y1#=0
- ENDIF
- RETURN
- PROCEDURE tackle
- q#=RANDOM(10)
- IF q#=1 AND inc#=0 AND qtr#>1
- IF (offense#=1 AND fum1#=2) OR (offense#=0 AND fum2#=2)
- DEFTEXT 2,0,0,13
- GRAPHMODE 1
- TEXT 146,183,"FUMBLE"
- PUT x#,y#,blank$
- PUT cx#,cy#,blank$
- IF x#>290 OR cx#>290
- cx#=290
- ENDIF
- IF offense#=0
- x#=cx#
- y#=cy#
- ENDIF
- FOR t#=1 TO 16
- PUT cx#,cy#,tackle$(t#)
- SOUND 1,12,t#*16
- PAUSE 2
- NEXT t#
- IF offense#=1
- TEXT 102,199,"OPPONENT RECOVERS"
- fum1#=1
- offense#=0
- goal#=230
- bad#=1
- ELSE
- TEXT 114,199,"YOUR TEAM RECOVERS"
- fum2#=1
- offense#=1
- goal#=-30
- charge#=1
- ENDIF
- ENDIF
- ENDIF
- IF inc#=1
- DEFTEXT 6,0,0,6
- TEXT 88,150,"PASS IS INCOMPLETE"
- SGET screen$
- ENDIF
- IF inc#=0
- PUT x#,y#,blank$
- PUT cx#,cy#,blank$
- IF offense#=1
- IF x#>=cx# AND y#>=cy#
- tkl#=4
- ELSE IF x#>=cx# AND y#<=cy#
- tkl#=2
- ELSE IF x#<=cx# AND y#>=cy#
- tkl#=3
- ELSE IF x#<=cx# AND y#<=cy#
- tkl#=1
- ENDIF
- ELSE IF offense#=0
- IF x#>=cx# AND y#>=cy#
- tkl#=9
- ELSE IF x#>=cx# AND y#<=cy#
- tkl#=11
- ELSE IF x#<=cx# AND y#>=cy#
- tkl#=10
- ELSE IF x#<=cx# AND y#<=cy#
- tkl#=12
- ENDIF
- ENDIF
- IF offense#=0
- x#=cx#
- y#=cy#
- ENDIF
- IF x#>290
- x#=290
- ENDIF
- PUT x#,y#,tackle$(tkl#)
- SGET screen$
- DEFTEXT 2,0,0,32
- TEXT 120,30,"TACKLE"
- ENDIF
- '
- IF x#>75 AND x#<160
- refx#=5
- refy#=y#
- dx#=5
- dy#=0
- z#=7
- ELSE IF x#>159 AND x#<240
- refx#=315
- refy#=y#
- dx#=-5
- dy#=0
- z#=9
- ELSE IF y#<95
- refx#=x#+5
- refy#=165
- dx#=0
- dy#=-5
- z#=5
- ELSE IF y#>94
- refx#=x#+5
- refy#=20
- dx#=0
- dy#=5
- z#=3
- ENDIF
- FOR t#=1 TO 5
- PUT refx#,refy#,ref$(z#)
- IF inc#=0
- PUT x#,y#,tackle$(tkl#+4)
- ENDIF
- SOUND 1,10,1,7,2
- PUT refx#,refy#,blank$
- PUT refx#+dx#,refy#+dy#,ref$(z#+1)
- IF inc#=0
- PUT x#,y#,tackle$(tkl#)
- ENDIF
- SOUND 1,0,0,0,1
- PUT refx#+dx#,refy#+dy#,blank$
- refx#=refx#+2*dx#
- refy#=refy#+2*dy#
- NEXT t#
- PUT refx#,refy#,ref$(z#)
- IF z#=3
- z#=1
- ELSE IF z#=5
- z#=2
- ENDIF
- SPUT screen$
- PUT refx#,refy#,ref$(z#)
- IF inc#=0
- fp#=INT(fp#-y#/20+5)
- ENDIF
- IF fp#<0 AND offense#=1
- safety
- ELSE IF fp#>100 AND offense#=0
- safety
- ENDIF
- tackle#=1
- IF int#=1
- int#=0
- ELSE IF int2#=1
- int2#=0
- ENDIF
- endplay
- RETURN
- PROCEDURE td
- SGET screen$
- FOR t#=1 TO 10
- PUT 150,t#*5-5,ref$(3)
- SOUND 1,12,1,7,2
- PUT 150,t#*5-5,blank$
- PUT 150,t#*5,ref$(4)
- SOUND 1,0,0,0,1
- PUT 150,t#*5,blank$
- NEXT t#
- SPUT screen$
- PUT 150,50,ref$(11)
- TEXT 125,100,"Touchdown"
- IF offense#=1
- scr1#=scr1#+7
- offense#=0
- goal#=210
- IF screen#>0
- shuffle
- ENDIF
- victory
- ELSE
- scr2#=scr2#+7
- offense#=1
- goal#=-30
- IF screen#>0
- spike
- ENDIF
- bad
- bad
- charge#=0
- ENDIF
- endplay
- REPEAT
- kwit$=INKEY$
- IF kwit$="q"
- endgame#=1
- ENDIF
- UNTIL STRIG(1) OR endgame#=1
- dissolve
- off#=0
- ko#=1
- RETURN
- PROCEDURE safety
- DEFTEXT 6,0,0,13
- TEXT 136,100,"SAFETY"
- IF offense#=1
- PUT refx#,refy#,ref$(14)
- bad
- scr2#=scr2#+2
- offense#=0
- ELSE
- PUT refx#,refy#,ref$(13)
- victory
- scr1#=scr1#+2
- offense#=1
- ENDIF
- ko#=1
- safety#=1
- RETURN
- PROCEDURE endplay
- IF screen#>1 AND offense#=1 AND tackle#=1
- charge#=1
- ENDIF
- IF offense#=1 AND y#<goal# AND safety#<>1
- td
- charge#=1
- ENDIF
- IF charge#=1
- charge
- charge#=0
- ELSE IF bad#=1
- bad
- bad#=0
- ENDIF
- IF ko#=2 OR punt#=2 OR fg#=1
- yardline#=fp#
- ENDIF
- IF inc#=0
- IF offense#=1
- ytg#=ytg#-(fp#-yardline#)
- ELSE
- ytg#=ytg#-(yardline#-fp#)
- ENDIF
- ENDIF
- dn#=dn#+1
- IF ytg#<1
- dn#=1
- ytg#=10
- ENDIF
- yardline#=fp#
- IF possession#=1
- possession#=0
- dn#=1
- ytg#=10
- ENDIF
- IF ko#=2 OR punt#=2 OR fum1#=1 OR fum2#=1
- punt#=0
- ko#=0
- dn#=1
- ytg#=10
- IF fum1#=1
- fum1#=0
- ELSE IF fum2#=1
- fum2#=0
- ENDIF
- ENDIF
- IF fg#=1
- dn#=1
- ytg#=10
- td#=0
- x#=100
- cx#=0
- ENDIF
- IF dn#=5 AND ytg#>0 AND offense#=1
- SGET screen$
- DEFFILL 6,2,8
- PBOX 80,70,240,115
- DEFTEXT 2,0,0,6
- GRAPHMODE 2
- TEXT 84,80," Play is Short"
- TEXT 84,90," Of a First Down"
- TEXT 84,110,"Opponent Takes Over"
- bad
- bad
- REPEAT
- kwit$=INKEY$
- IF kwit$="q"
- endgame#=1
- ENDIF
- UNTIL STRIG(1) OR endgame#=1
- SPUT screen$
- dn#=1
- ytg#=10
- offense#=0
- goal#=230
- ENDIF
- tm#=tm#-1
- stats
- IF tm#=0
- kwit$=INKEY$
- IF kwit$="q"
- endgame#=1
- ELSE
- quarter
- qtr#=qtr#+1
- tm#=15
- IF qtr#<5
- stats
- ENDIF
- ENDIF
- ENDIF
- IF endgame#=0
- REPEAT
- kwit$=INKEY$
- IF kwit$="q"
- endgame#=1
- ENDIF
- UNTIL STRIG(1) OR endgame#=1
- ENDIF
- inc#=0
- RETURN
- PROCEDURE quarter
- SGET screen$
- REPEAT
- UNTIL STRIG(1)
- DEFTEXT 8,0,0,13
- IF qtr#=1 OR qtr#=3
- CLS
- TEXT 136,150,"End of"
- IF qtr#=1
- TEXT 108,170,"First Quarter"
- ELSE
- TEXT 108,170,"Third Quarter"
- ENDIF
- DEFFILL 5,2,8
- PBOX 0,0,319,99
- ' ==============================
- ' the wave
- ' ==============================
- FOR t#=1 TO 20
- PUT (t#-1)*16,100,crowd$(t#*2)
- NEXT t#
- stats
- FOR wave#=1 TO 2
- PUT 0,100,crowd$(1)
- PAUSE 10
- FOR t#=1 TO 19
- PUT (t#)*16,100,crowd$((t#*2)+1)
- PAUSE 10
- PUT (t#-1)*16,100,crowd$(t#*2)
- NEXT t#
- PAUSE 10
- PUT 304,100,crowd$(40)
- NEXT wave#
- PAUSE 40
- SPUT screen$
- ELSE IF qtr#=2
- CLS
- halftime
- ko#=1
- offense#=0
- ELSE IF qtr#=4
- endgame#=1
- REPEAT
- DEFTEXT 6,0,0,13
- TEXT 124,100,"Game Over"
- PAUSE 10
- DEFTEXT 2,0,0,13
- TEXT 124,100,"Game Over"
- PAUSE 10
- UNTIL STRIG(1)
- dissolve
- ENDIF
- RETURN
- PROCEDURE stats
- ' put data in setup
- GRAPHMODE 2
- DEFFILL 1,2,8
- PBOX 20,0,300,18
- COLOR 3
- BOX 20,0,300,18
- DEFTEXT 5,0,0,4
- TEXT 25,7,"Quarter"
- TEXT 75,7,"Time"
- TEXT 130,7,name$
- TEXT 130,15,"Opponent"
- TEXT 220,7,"Down"
- TEXT 255,7," Yards"
- TEXT 260,15,"To Go"
- ' DEFTEXT 2,0,0,4
- TEXT 43,15,qtr#
- IF tm#<10
- TEXT 78,15,tm#
- ELSE
- TEXT 72,15,tm#
- ENDIF
- TEXT 84,15,":00"
- TEXT 184,7,scr1#
- TEXT 184,15,scr2#
- TEXT 230,15,dn#
- IF ytg#<10
- TEXT 256,7,ytg#
- ELSE
- TEXT 250,7,ytg#
- ENDIF
- GRAPHMODE 1
- RETURN
- PROCEDURE dissolve
- COLOR 0
- FOR t#=0 TO 196 STEP 4
- LINE 0,t#,319,t#
- NEXT t#
- FOR t#=0 TO 198 STEP 2
- LINE 0,t#,319,t#
- NEXT t#
- FOR t#=1 TO 199 STEP 2
- LINE 0,t#,319,t#
- NEXT t#
- RETURN
- PROCEDURE exit
- TEXT 0,t#," "
- RESUME NEXT
- RETURN
- ' ====================
- PROCEDURE setup
- ON BREAK GOSUB jesse
- DIM red$(11),blue$(11),ref$(14),tackle$(16)
- DIM ball$(4),diagram$(8),kicker$(4)
- DIM field$(101)
- DIM p#(20,12,3),pr#(3,12,3),pb#(3,12,3),pp#(17,12,3)
- DIM grid#(8,2)
- DIM rteam$(2),bteam$(2)
- DIM koblue$(2),kored$(2)
- DIM crowd$(40)
- DIM ppp#(16,6)
- DIM palette#(16,3)
- DIM reddef#(5,3)
- DIM blueoff#(10,3)
- DIM playbook#(5,5)
- DIM sitz#(20,1)
- DIM name$(8)
- DIM redhot$(10)
- DIM bluehot$(10)
- DIM spiker$(6)
- DIM band$(2)
- '
- ' check for necessities: low rez, data files in same folder
- path$=""
- IF XBIOS(4)<>0
- ALERT 3,"Crunch Time Football runs|in low resolution only.",1," Quit ",blob#
- EDIT
- ENDIF
- IF NOT EXIST(path$+"fb2.dat")
- ALERT 3,"File FB2.DAT must be in the|same folder as FOOTBALL.GFA.",1," Quit ",blob#
- EDIT
- ENDIF
- IF NOT EXIST(path$+"fb3.dat")
- ALERT 3,"File FB3.DAT must be in the|same folder as FOOTBALL.GFA.",1," Quit ",blob#
- EDIT
- ENDIF
- IF NOT EXIST(path$+"fb4.dat")
- ALERT 3,"File FB4.DAT must be in the|same folder as FOOTBALL.GFA.",1," Quit ",blob#
- EDIT
- ENDIF
- retain_pal !complements restore_pal called in main loop
- '
- FOR t#=1 TO 16
- FOR tt#=1 TO 3
- READ a#
- palette#(t#,tt#)=a#
- NEXT tt#
- NEXT t#
- DATA 0,4,0,0,0,0,7,0,0,0,7,0
- DATA 0,0,7,0,7,7,7,7,0,7,5,5
- DATA 7,7,7,4,4,4,6,6,7,5,0,5
- DATA 7,6,0,0,0,5,0,7,5,7,3,0
- '
- FOR t#=0 TO 15
- VSETCOLOR t#,palette#(t#+1,1),palette#(t#+1,2),palette#(t#+1,3)
- NEXT t#
- '
- title
- DEFTEXT 1,0,0,6
- TEXT 33,151,"Loading Graphics ... Please Wait"
- DEFTEXT 8,0,0,6
- TEXT 32,150,"Loading Graphics ... Please Wait"
- '
- FOR t#=1 TO 16
- FOR tt#=1 TO 6
- READ a#
- ppp#(t#,tt#)=a#
- NEXT tt#
- NEXT t#
- '
- DATA 1,4,7,11,15,16
- DATA 5,8,9,13,16,18
- DATA 5,3,8,12,17,18
- DATA 3,4,8,16,11,18
- DATA 10,8,1,18,12,17
- DATA 8,9,5,12,16,19
- DATA 1,9,4,13,15,16
- DATA 9,1,4,20,15,11
- '
- DATA 1,4,7,11,16,19
- DATA 5,8,9,18,13,16
- DATA 5,3,8,17,12,18
- DATA 3,4,8,15,11,18
- DATA 10,8,1,17,12,18
- DATA 8,9,5,18,12,16
- DATA 1,9,4,13,16,18
- DATA 9,1,4,16,11,20
- '
- FOR t#=1 TO 5
- FOR tt#=1 TO 3
- READ a#
- reddef#(t#,tt#)=a#
- NEXT tt#
- NEXT t#
- ' rem data for red defense
- DATA 10,12,16,10,12,14
- DATA 10,12,16,10,14,16
- DATA 10,12,16
- '
- FOR t#=1 TO 10
- FOR tt#=1 TO 3
- READ a#
- blueoff#(t#,tt#)=a#
- NEXT tt#
- NEXT t#
- ' rem data for blue offense
- DATA 2,4,6,6,4,9,5,6,9,1,7,4,1,4,8
- DATA 3,4,7,3,5,6,3,8,9,4,7,3,6,4,8
- '
- FOR t#=1 TO 5
- FOR tt#=1 TO 5
- READ a#
- playbook#(t#,tt#)=a#
- NEXT tt#
- NEXT t#
- ' rem data for playbook
- DATA 3,2,8,6,4,6,8,9,7,3
- DATA 1,6,7,5,10,1,2,3,4,8
- DATA 2,10,1,9,5
- '
- DIM victory#(32,1)
- FOR t#=1 TO 32
- READ a#
- victory#(t#,1)=a#
- NEXT t#
- DATA 1,3,5,6,8,10,12,13,15,15,13,13,12,12,10,10
- DATA 13,12,12,10,12,12,15,15
- DATA 13,13,13,13,13,13,13,13
- '
- DIM charge#(12,1)
- FOR t#=1 TO 10
- READ a#
- charge#(t#,1)=a#
- NEXT t#
- DATA 6,8,10,13,13,10,13,13,13,13
- '
- FOR t#=1 TO 20
- sitz#(t#,1)=1
- NEXT t#
- '
- FOR t#=1 TO 8
- READ a#,b#
- grid#(t#,1)=a#
- grid#(t#,2)=b#
- NEXT t#
- DATA 20,25,120,25,220,25,20,85,220,85,20,145,120,145,220,145
- picdataload
- '
- arrays
- arrays2
- GET 0,0,15,23,blank$
- GET 7,5,13,15,ball$(2)
- titleanimation
- RETURN
- '
- ' ------------- SAVE ORIGINAL COLOR PALETTE -----------------------
- PROCEDURE retain_pal
- '
- DIM spalette%(16,3)
- '
- FOR z%=0 TO 15
- DPOKE CONTRL,26
- DPOKE CONTRL+2,0
- DPOKE CONTRL+6,2
- DPOKE INTIN,z%
- DPOKE INTIN+2,0
- VDISYS
- spalette%(z%,0)=DPEEK(INTOUT+2)
- spalette%(z%,1)=DPEEK(INTOUT+4)
- spalette%(z%,2)=DPEEK(INTOUT+6)
- NEXT z%
- RETURN
- '
- PROCEDURE restore_pal
- ' --------------------- RESTORES PALETTE -------------------
- ' Dimensions: Spalette%(16,3)
- '
- FOR z%=0 TO 15
- DPOKE CONTRL,14
- DPOKE CONTRL+2,0
- DPOKE CONTRL+6,4
- DPOKE INTIN,z%
- DPOKE INTIN+2,spalette%(z%,0)
- DPOKE INTIN+4,spalette%(z%,1)
- DPOKE INTIN+6,spalette%(z%,2)
- VDISYS
- NEXT z%
- RETURN
- '
- PROCEDURE title
- VSETCOLOR 0,0,4,0
- CLS
- GRAPHMODE 2
- DEFTEXT 1,16,0,13
- TEXT 81,21,"Poppy and Jesse"
- DEFTEXT 5,16,0,13
- TEXT 80,20,"Poppy and Jesse"
- DEFTEXT 1,0,0,6
- TEXT 123,51,"present"
- DEFTEXT 3,0,0,6
- TEXT 122,50,"present"
- DEFTEXT 6,13,0,32
- TEXT 65,91,"Crunch Time"
- DEFTEXT 2,13,0,32
- TEXT 64,90,"Crunch Time"
- DEFTEXT 6,13,0,32
- TEXT 80,121,"Football"
- DEFTEXT 2,13,0,32
- TEXT 79,120,"Football"
- DEFTEXT 1,0,0,6
- TEXT 3,181,"Copyright 1990 by Antic Publishing, Inc."
- DEFTEXT 3,0,0,6
- TEXT 2,180,"Copyright 1990 by Antic Publishing, Inc."
- RETURN
- PROCEDURE titleanimation
- DEFFILL 0,2,8
- PBOX 32,140,288,152
- DEFTEXT 1,0,0,6
- TEXT 32,151,"Press Fire Button to Start Game"
- DEFTEXT 8,0,0,6
- TEXT 31,150,"Press Fire Button to Start Game"
- REPEAT
- DEFTEXT 6,13,0,32
- TEXT 65,91,"Crunch Time"
- DEFTEXT 2,13,0,32
- TEXT 64,90,"Crunch Time"
- DEFTEXT 6,13,0,32
- TEXT 79,121,"Football"
- DEFTEXT 2,13,0,32
- TEXT 80,120,"Football"
- UNTIL STRIG(1)
- RETURN
- PROCEDURE teamcolors
- FOR t#=0 TO 15
- VSETCOLOR t#,palette#(t#+1,1),palette#(t#+1,2),palette#(t#+1,3)
- NEXT t#
- FOR g#=0 TO 9
- PUT 15+g#*30,85,red$(1)
- NEXT g#
- DEFFILL 2,2,8
- FILL 23,86
- FILL 23,95
- DEFFILL 6,2,8
- FILL 23,101
- DEFFILL 4,2,8
- FILL 53,86
- FILL 53,95
- DEFFILL 8,2,8
- FILL 53,101
- DEFFILL 10,2,8
- FILL 83,86
- FILL 83,101
- DEFFILL 1,2,8
- FILL 83,95
- DEFFILL 11,2,8
- FILL 113,86
- FILL 113,95
- DEFFILL 6,2,8
- FILL 113,101
- DEFFILL 2,2,8
- FILL 143,86
- FILL 142,95
- DEFFILL 8,2,8
- FILL 143,101
- DEFFILL 6,2,8
- FILL 173,86
- FILL 173,101
- DEFFILL 3,2,8
- FILL 173,95
- DEFFILL 8,2,8
- FILL 203,86
- FILL 203,101
- DEFFILL 5,2,8
- FILL 203,95
- DEFFILL 12,2,8
- FILL 233,86
- FILL 233,101
- DEFFILL 2,2,8
- FILL 233,95
- DEFFILL 10,2,8
- FILL 263,86
- FILL 263,101
- DEFFILL 4,2,8
- FILL 263,95
- DEFFILL 1,2,8
- FILL 293,86
- FILL 293,95
- DEFFILL 6,2,8
- FILL 293,101
- '
- DEFTEXT 8,16,0,13
- TEXT 20,30,"1"
- DEFTEXT 8,0,0,6
- TEXT 54,50,"Select your team colors:"
- '
- g#=0
- COLOR 8
- BOX 10+g#*30,80,35+g#*30,110
- '
- REPEAT
- a#=STICK(1)
- IF a#<>0
- COLOR 0
- BOX 10+g#*30,80,35+g#*30,110
- SELECT a#
- CASE 4
- g#=g#-1
- CASE 8
- g#=g#+1
- ENDSELECT
- IF g#=-1
- g#=9
- ELSE IF g#=10
- g#=0
- ENDIF
- COLOR 8
- BOX 10+g#*30,80,35+g#*30,110
- ENDIF
- PAUSE 5
- UNTIL STRIG(1)
- SELECT g#
- CASE 0
- g1#=2
- g2#=2
- g3#=6
- CASE 1
- g1#=4
- g2#=4
- g3#=8
- CASE 2
- g1#=10
- g2#=1
- g3#=10
- CASE 3
- g1#=11
- g2#=11
- g3#=6
- CASE 4
- g1#=2
- g2#=2
- g3#=8
- CASE 5
- g1#=6
- g2#=3
- g3#=6
- CASE 6
- g1#=8
- g2#=5
- g3#=8
- CASE 7
- g1#=12
- g2#=2
- g3#=12
- CASE 8
- g1#=10
- g2#=4
- g3#=10
- CASE 9
- g1#=1
- g2#=1
- g3#=6
- ENDSELECT
- '
- g1#=g1#+1
- g2#=g2#+1
- g3#=g3#+1
- VSETCOLOR 10,palette#(g1#,1),palette#(g1#,2),palette#(g1#,3)
- ' human helmet
- VSETCOLOR 11,palette#(g2#,1),palette#(g2#,2),palette#(g2#,3)
- ' human shirt
- VSETCOLOR 14,palette#(g3#,1),palette#(g3#,2),palette#(g3#,3)
- ' human pants
- '
- q#=INT(RND(0)*3)
- IF q#=0
- VSETCOLOR 12,7,0,0
- VSETCOLOR 13,7,0,0
- ELSE IF q#=1
- VSETCOLOR 12,5,0,5
- VSETCOLOR 13,7,7,0
- ELSE IF q#=2
- VSETCOLOR 12,6,6,7
- VSETCOLOR 13,6,6,7
- ENDIF
- RETURN
- PROCEDURE teamname
- CLS
- DEFTEXT 8,16,0,13
- TEXT 20,30,"2"
- DEFTEXT 8,0,0,6
- TEXT 44,50,"Enter Your Name or Team Name:"
- TEXT 120,96,"________"
- VSETCOLOR 1,7,7,7
- LOCATE 16,12
- FORM INPUT 8,name$
- VSETCOLOR 1,0,0,0
- RETURN
- PROCEDURE level
- CLS
- '
- ' ========== choose difficulty ============
- DEFTEXT 8,16,0,13
- TEXT 20,30,"3"
- DEFTEXT 8,0,0,6
- TEXT 68,50,"Select Difficulty Level"
- DEFTEXT 3,0,0,6
- TEXT 100,100,"High School"
- TEXT 100,120,"Pro"
- TEXT 100,130,"Super Bowl"
- DEFTEXT 6,0,0,6
- TEXT 100,110,"College"
- '
- diff#=2
- diff1#=2
- REPEAT
- a#=STICK(1)
- PAUSE 2
- IF a#=1
- diff#=diff#-1
- ELSE IF a#=2
- diff#=diff#+1
- ENDIF
- IF diff#=0
- diff#=4
- ELSE IF diff#=5
- diff#=1
- ENDIF
- '
- IF a#=1 OR a#=2
- DEFTEXT 3,0,0,6
- SELECT diff1#
- CASE 1
- TEXT 100,100,"High School"
- CASE 2
- TEXT 100,110,"College"
- CASE 3
- TEXT 100,120,"Pro"
- CASE 4
- TEXT 100,130,"Super Bowl"
- ENDSELECT
- '
- DEFTEXT 6,0,0,6
- SELECT diff#
- CASE 1
- TEXT 100,100,"High School"
- diff#=1
- CASE 2
- TEXT 100,110,"College"
- diff#=2
- CASE 3
- TEXT 100,120,"Pro"
- diff#=3
- CASE 4
- TEXT 100,130,"Super Bowl"
- diff#=4
- ENDSELECT
- diff1#=diff#
- ENDIF
- UNTIL STRIG(1)
- '
- RETURN
- PROCEDURE newgame
- int#=2
- int2#=2
- fum1#=2
- fum2#=2
- endgame#=0
- playmore#=0
- tm#=15
- qtr#=1
- scr1#=0
- scr2#=0
- offense#=1
- goal#=-30
- ko#=1
- tackle#=0
- fg#=0
- punt#=0
- RETURN
- PROCEDURE picdataload
- '
- OPEN "I",#1,path$+"fb2.dat"
- '
- FOR t#=1 TO 10
- red$(t#)=SPACE$(198)
- BGET #1,VARPTR(red$(t#)),198
- NEXT t#
- '
- FOR t#=1 TO 10
- blue$(t#)=SPACE$(198)
- BGET #1,VARPTR(blue$(t#)),198
- NEXT t#
- '
- FOR t#=1 TO 10
- ref$(t#)=SPACE$(198)
- BGET #1,VARPTR(ref$(t#)),198
- NEXT t#
- '
- FOR t#=11 TO 14
- ref$(t#)=SPACE$(230)
- BGET #1,VARPTR(ref$(t#)),230
- NEXT t#
- '
- FOR t#=1 TO 16
- tackle$(t#)=SPACE$(518)
- BGET #1,VARPTR(tackle$(t#)),502
- NEXT t#
- '
- ball$(1)=SPACE$(94)
- BGET #1,VARPTR(ball$(1)),94
- ball$(3)=SPACE$(78)
- BGET #1,VARPTR(ball$(3)),78
- '
- FOR t#=1 TO 4
- kicker$(t#)=SPACE$(198)
- BGET #1,VARPTR(kicker$(t#)),198
- NEXT t#
- '
- FOR t#=1 TO 6
- spiker$(t#)=SPACE$(198)
- BGET #1,VARPTR(spiker$(t#)),198
- NEXT t#
- '
- FOR t#=1 TO 2
- band$(t#)=SPACE$(1574)
- BGET #1,VARPTR(band$(t#)),1574
- NEXT t#
- '
- FOR t#=1 TO 8
- diagram$(t#)=SPACE$(2454)
- BGET #1,VARPTR(diagram$(t#)),2454
- NEXT t#
- '
- CLOSE #1
- '
- OPEN "I",#1,path$+"fb3.dat"
- '
- FOR t#=1 TO 40
- crowd$(t#)=SPACE$(246)
- BGET #1,VARPTR(crowd$(t#)),246
- NEXT t#
- '
- CLOSE #1
- '
- OPEN "I",#1,path$+"fb4.dat"
- '
- FOR t#=1 TO 10
- redhot$(t#)=SPACE$(198)
- BGET #1,VARPTR(redhot$(t#)),198
- NEXT t#
- '
- FOR t#=1 TO 10
- bluehot$(t#)=SPACE$(198)
- BGET #1,VARPTR(bluehot$(t#)),198
- NEXT t#
- '
- CLOSE #1
- '
- RETURN
- PROCEDURE jesse
- STICK 0
- END
- RETURN
- PROCEDURE arrays
- '
- FOR t#=1 TO 101
- field$(t#)="-"
- SELECT t#
- CASE 1,101
- field$(t#)="G"
- CASE 6,96
- field$(t#)="5"
- CASE 11,91
- field$(t#)="10"
- CASE 16,86
- field$(t#)="15"
- CASE 21,81
- field$(t#)="20"
- CASE 26,76
- field$(t#)="25"
- CASE 31,71
- field$(t#)="30"
- CASE 36,66
- field$(t#)="35"
- CASE 41,61
- field$(t#)="40"
- CASE 46,56
- field$(t#)="45"
- CASE 51
- field$(t#)="50"
- ENDSELECT
- NEXT t#
- '
- FOR q#=1 TO 20
- FOR t#=1 TO 12
- READ a#,b#,c#
- p#(q#,t#,1)=a#
- p#(q#,t#,2)=b#
- p#(q#,t#,3)=c#
- NEXT t#
- NEXT q#
- '
- ' ================= Offense ===============
- ' rem l flanker fly
- DATA 60,120,2,60,110,5,60,100,6,60,90,5,60,80,6,60,70,5
- DATA 60,60,6,60,50,5,60,40,6,60,30,5,60,20,6,60,10,5
- ' rem l flanker reverse
- DATA 60,120,2,60,130,7,70,140,8,80,150,7,90,160,8,95,160,7
- DATA 100,160,8,105,160,7,110,160,8,115,160,7,120,160,8,125,160,7
- ' rem l flanker cross
- DATA 60,120,2,60,110,5,60,100,6,60,90,5,60,80,6,60,70,5
- DATA 70,60,6,80,50,7,90,40,8,100,30,7,110,20,8,120,20,7
- ' rem l half block left
- DATA 110,160,2,100,150,5,90,140,10,80,130,5,70,120,6,60,110,5
- DATA 50,100,6,40,90,5,40,80,6,40,70,5,40,70,6,40,70,5
- ' rem l half run right
- DATA 110,160,2,120,160,7,130,160,8,140,160,7,150,160,8,160,160,7
- DATA 170,160,8,180,160,7,190,160,8,200,160,7,210,160,8,220,160,7
- ' rem i-back run left
- DATA 150,160,2,150,170,10,140,180,9,130,180,10,120,180,9,110,180,10
- DATA 100,180,9,90,180,10,80,180,9,70,180,10,60,180,9,50,180,10
- ' rem rt half block right 1
- DATA 180,160,2,190,160,7,200,160,8,210,160,7,220,160,8,230,160,7
- DATA 240,150,6,240,140,5,240,130,6,240,120,5,240,110,6,240,100,5
- ' rem rt half block right 2
- DATA 190,160,2,200,150,6,210,140,5,220,130,6,230,120,5,240,110,6
- DATA 240,100,5,240,98,6,240,96,5,240,94,6,240,92,5,240,90,6
- ' rem rt flanker slant in
- DATA 240,120,2,240,110,5,240,100,6,240,90,5,240,80,6,230,70,5
- DATA 220,60,6,210,50,5,200,40,6,190,30,5,180,20,6,170,10,5
- ' rem rt flanker out
- DATA 240,120,2,240,110,5,240,100,6,240,90,5,240,80,6,230,70,5
- DATA 240,60,6,245,55,5,250,50,7,255,45,8,260,40,7,265,35,8
- '
- ' ============ Defense =============
- ' rem l corner wide out
- DATA 70,40,1,65,40,9,60,40,10,55,40,9,50,40,10,45,40,9
- DATA 40,40,10,40,50,3,40,50,4,40,55,3,40,60,4,40,65,3
- ' rem l corner rush
- DATA 70,40,1,70,50,3,70,60,4,70,70,3,70,80,4,70,90,3
- DATA 70,100,4,70,110,3,80,120,4,90,120,7,100,120,8,110,120,7
- ' rem l corner contain
- DATA 70,40,1,65,45,3,60,50,4,55,55,3,50,60,4,45,65,3
- DATA 40,70,4,35,70,3,30,80,4,25,85,3,20,90,4,15,95,3
- ' rem l safety rush
- DATA 130,30,1,120,35,3,110,40,4,100,45,3,90,50,4,80,55,3
- DATA 70,60,4,70,65,3,70,70,4,70,75,3,70,80,4,70,85,3
- ' rem l safety deep
- DATA 130,30,1,130,20,3,125,20,10,120,20,9,115,20,10,110,20,9
- DATA 105,20,10,100,20,9,95,20,10,90,20,5,80,20,6,75,10,5
- ' rem rt safety slant
- DATA 170,30,1,175,35,3,180,40,4,185,45,3,185,45,4,185,45,7
- DATA 180,40,6,175,35,5,170,30,6,165,25,5,160,20,6,155,15,5
- ' rem rt safety sideline
- DATA 170,30,1,175,35,3,180,40,4,185,45,3,190,45,4,190,45,7
- DATA 195,45,8,200,45,7,205,45,8,210,45,7,215,45,8,220,45,7
- ' rem rt corner pass/run
- DATA 230,40,1,230,35,3,230,30,4,230,25,3,230,20,4,230,30,3
- DATA 230,40,4,230,50,3,230,60,4,230,70,3,230,80,4,230,90,3
- ' rem rt corner contain
- DATA 230,40,1,240,40,7,250,40,8,260,40,7,270,45,4,280,50,3
- DATA 285,55,4,285,60,3,285,65,4,285,70,3,285,75,4,285,80,3
- ' rem rt corner slant
- DATA 230,40,1,230,35,3,230,30,4,230,25,3,230,20,4,230,20,9
- DATA 225,20,10,220,20,9,215,20,10,210,20,9,205,20,10,200,20,9
- '
- RETURN
- PROCEDURE arrays2
- FOR q#=1 TO 17
- FOR t#=1 TO 12
- READ a#,b#,c#
- pp#(q#,t#,1)=a#
- pp#(q#,t#,2)=b#
- pp#(q#,t#,3)=c#
- NEXT t#
- NEXT q#
- '
- ' ================= Offense ===============
- ' rem qb pass right
- DATA 150,40,1,150,40,9,150,40,5,145,35,6,140,30,5,135,25,6
- DATA 130,20,5,125,15,6,120,10,10,115,10,9,110,10,10,105,10,9
- ' rem qb run left
- DATA 150,40,1,160,35,5,170,30,6,180,30,7,190,30,8,200,30,7
- DATA 210,35,8,220,40,7,230,45,8,240,50,7,250,55,8,260,60,7
- ' rem qb pass left
- DATA 150,40,1,150,40,9,150,40,5,155,35,6,160,30,5,165,25,6
- DATA 170,20,5,175,15,6,180,10,8,185,10,7,190,10,8,195,10,7
- ' rem rt half run right
- DATA 120,10,1,115,15,9,110,20,10,100,25,9,90,30,10,80,35,9
- DATA 70,40,10,60,45,9,50,50,10,40,55,9,30,60,10,20,65,3
- ' rem rt half off tackle
- DATA 120,10,1,115,15,3,110,20,4,110,25,3,110,30,4,110,35,3
- DATA 110,40,4,110,45,3,110,50,4,110,55,3,110,60,4,110,65,3
- ' rem left half sweep right
- DATA 190,10,1,180,10,9,165,10,10,150,10,9,135,10,10,120,10,9
- DATA 105,10,10,90,14,9,80,18,10,70,22,9,60,26,10,50,30,3
- ' rem left half pass
- DATA 190,10,1,200,15,3,210,20,4,220,25,3,230,30,4,240,35,3
- DATA 250,40,4,260,45,3,260,55,4,260,65,3,260,75,4,260,85,3
- ' rem rt flanker fly
- DATA 60,60,1,60,70,3,60,80,4,60,90,3,60,100,4,60,110,3
- DATA 60,120,4,60,130,3,60,140,4,60,150,3,60,160,4,60,170,3
- ' rem l flanker out
- DATA 240,60,1,240,65,3,240,70,4,240,75,3,240,80,4,245,85,3
- DATA 250,90,4,255,95,3,260,100,4,270,100,7,280,100,8,290,100,7
- ' ===================== Defense ==================
- ' rem left corner rush
- DATA 60,140,2,60,135,5,60,130,6,60,125,5,60,120,6,60,115,5
- DATA 65,110,6,65,100,5,65,90,6,70,80,5,70,70,6,70,60,5
- ' rem left corner fly
- DATA 60,140,2,60,145,5,60,150,6,65,145,5,70,140,6,75,135,5
- DATA 80,130,6,80,130,7,80,130,3,80,140,4,80,150,3,80,160,4
- ' rem rt corner rush
- DATA 240,140,2,240,135,5,240,130,6,240,125,5,240,120,6,240,115,5
- DATA 235,110,6,235,100,5,235,90,6,230,80,5,230,70,6,230,60,5
- ' rem rt corner out
- DATA 240,140,2,240,145,5,240,150,6,240,155,5,240,160,6,240,155,5
- DATA 245,150,6,250,145,7,260,140,8,265,135,7,275,130,8,280,125,7
- ' rem rt half rush
- DATA 190,160,2,190,155,5,190,150,6,195,145,5,195,140,6,195,135,5
- DATA 200,130,6,200,125,5,200,120,6,205,115,5,205,110,6,205,105,5
- ' rem rt half out
- DATA 190,160,2,195,155,5,200,150,6,205,145,5,210,140,6,215,135,5
- DATA 225,130,7,235,125,8,245,125,7,255,125,8,265,125,7,275,125,8
- ' rem left half rush
- DATA 110,160,2,110,155,5,110,150,6,105,145,5,105,140,6,105,135,5
- DATA 100,130,6,100,125,5,100,120,6,95,115,5,95,110,6,95,105,5
- ' rem left half fly
- DATA 110,160,2,105,155,5,100,150,6,95,145,5,90,140,10,85,140,9
- DATA 80,145,4,80,150,3,80,155,4,80,160,3,80,165,4,80,170,3
- RETURN
- ' ====================
- PROCEDURE kickoff2
- CLS
- screen#=0
- fp#=37
- IF safety#=1
- fp#=22
- ENDIF
- field
- FOR t#=50 TO 250 STEP 20
- PUT t#,160,red$(2)
- IF t#=130
- t#=150
- ENDIF
- NEXT t#
- PUT 150,174,red$(5)
- FOR t#=60 TO 240 STEP 60
- PUT t#,20,blue$(1)
- NEXT t#
- PUT 155,140,ball$(1)
- PAUSE 10
- REPEAT
- UNTIL STRIG(1)
- frame#=1
- PUT 150,174,red$(5)
- GET 150,174,165,199,kored$(1)
- PUT 150,174,red$(6)
- GET 150,174,165,199,kored$(2)
- FOR t#=8 TO 20 STEP 2
- PUT 150,180-t#,kored$(frame#)
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- PAUSE 2
- NEXT t#
- FOR t#=22 TO 38 STEP 2
- FOR tt#=50 TO 250 STEP 20
- PUT tt#,180-t#,kored$(frame#)
- NEXT tt#
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- NEXT t#
- ty#=130
- PUT 155,140,ball$(2)
- FOR t#=40 TO 60 STEP 2
- PUT 155+2*(t#-40),ty#,ball$(3)
- PUT 155,ty#,ball$(1)
- FOR tt#=50 TO 250 STEP 20
- PUT tt#,180-t#,kored$(frame#)
- NEXT tt#
- INC frame#
- IF frame#=3
- frame#=1
- ENDIF
- ty#=ty#-10
- PUT 155+2*(t#-40),ty#+10,ball$(2)
- PUT 155,ty#+10,ball$(2)
- NEXT t#
- CLS
- fp#=90
- IF safety#=1
- fp#=70
- safety#=0
- ENDIF
- field
- sp#=4
- x#=100+RANDOM(100)
- y#=150+RANDOM(20)
- x1#=x#
- y1#=y#
- cx#=150
- cy#=20
- cx1#=cx#
- cy1#=cy#
- one$=blank$
- two$=blank$
- PUT cx#,cy#,blue$(3)
- PUT x#,y#,red$(2)
- SGET screen$
- FOR t#=10 TO 160 STEP 10
- PUT 210-t#/3,180-t#+5,ball$(3)
- PUT 155,180-t#+5,ball$(1)
- PAUSE 2
- SPUT screen$
- NEXT t#
- t#=tt#
- off#=0
- count#=12
- tackle#=0
- goal#=230
- RETURN
- PROCEDURE choose2
- WHILE STRIG(1)
- WEND
- IF tm#=1 AND (qtr#=2 OR qtr#=4) AND fp#<50
- fg#=1
- ENDIF
- IF dn#<>4 AND fg#=0
- '
- ' ========== choose defense ============
- DEFFILL 0,2,8
- PBOX 100,50,220,150
- COLOR 6
- BOX 100,50,220,150
- DEFTEXT 5,0,0,6
- TEXT 136,70,"SELECT"
- TEXT 132,80,"DEFENSE"
- DEFTEXT 6,0,0,6
- TEXT 110,100,"Basic 4-3"
- DEFTEXT 3,0,0,6
- TEXT 110,110,"Run Prevent"
- TEXT 110,120,"Pass Prevent"
- TEXT 110,130,"Blitz"
- TEXT 110,140,"Goal Line"
- '
- def#=1
- def1#=1
- REPEAT
- a#=STICK(1)
- PAUSE 2
- IF a#=1
- def#=def#-1
- ELSE IF a#=2
- def#=def#+1
- ENDIF
- IF def#=0
- def#=5
- ELSE IF def#=6
- def#=1
- ENDIF
- '
- IF a#=1 OR a#=2
- DEFTEXT 3,0,0,6
- SELECT def1#
- CASE 1
- TEXT 110,100,"Basic 4-3"
- CASE 2
- TEXT 110,110,"Run Prevent"
- CASE 3
- TEXT 110,120,"Pass Prevent"
- CASE 4
- TEXT 110,130,"Blitz"
- CASE 5
- TEXT 110,140,"Goal Line"
- ENDSELECT
- '
- DEFTEXT 6,0,0,6
- SELECT def#
- CASE 1
- TEXT 110,100,"Basic 4-3"
- CASE 2
- TEXT 110,110,"Run Prevent"
- CASE 3
- TEXT 110,120,"Pass Prevent"
- CASE 4
- TEXT 110,130,"Blitz"
- CASE 5
- TEXT 110,140,"Goal Line"
- ENDSELECT
- def1#=def#
- ENDIF
- UNTIL STRIG(1)
- '
- ' SELECT red defense
- a#=reddef#(def#,1)
- b#=reddef#(def#,2)
- c#=reddef#(def#,3)
- ' CASE 1
- FOR tt#=1 TO 12
- FOR ttt#=1 TO 3
- pr#(1,tt#,ttt#)=pp#(a#,tt#,ttt#)
- pr#(2,tt#,ttt#)=pp#(b#,tt#,ttt#)
- pr#(3,tt#,ttt#)=pp#(c#,tt#,ttt#)
- NEXT ttt#
- NEXT tt#
- '
- SELECT def#
- CASE 1
- x#=190
- y#=160
- CASE 2
- x#=110
- y#=160
- CASE 3
- x#=210
- y#=140
- CASE 4
- x#=240
- y#=100
- CASE 5
- x#=160
- y#=150
- ENDSELECT
- '
- q#=RANDOM(5)+1
- SELECT def#
- CASE 1
- play#=RANDOM(10)+1
- CASE 2,3,4
- play#=playbook#(def#-1,q#)
- CASE 5
- IF fp#<10
- play#=playbook#(4,q#)
- ELSE
- play#=playbook#(5,q#)
- ENDIF
- ENDSELECT
- '
- ' SELECT blue offense
- a#=blueoff#(play#,1)
- b#=blueoff#(play#,2)
- c#=blueoff#(play#,3)
- FOR tt#=1 TO 12
- FOR ttt#=1 TO 3
- pb#(1,tt#,ttt#)=pp#(a#,tt#,ttt#)
- pb#(2,tt#,ttt#)=pp#(b#,tt#,ttt#)
- pb#(3,tt#,ttt#)=pp#(c#,tt#,ttt#)
- NEXT ttt#
- NEXT tt#
- '
- SELECT play#
- CASE 1,2,3,9
- pass#=0
- CASE 4,5,6,7,8,10
- pass#=1
- ENDSELECT
- ELSE IF dn#=4
- IF fp#>50
- punt#=1
- ELSE
- fg#=1
- ENDIF
- ENDIF
- q#=RANDOM(2)
- IF q#=1 AND def#=3 AND (play#=6 OR play#=8) AND int2#=2
- int2#=1
- ENDIF
- RETURN
- PROCEDURE blueball
- field
- screen#=0
- off#=0
- count#=1
- countt#=1
- ko#=0
- x1#=x#
- y1#=y#
- SELECT play#
- CASE 4,5,7,9
- bx#=240
- by#=60
- CASE 2,3,10
- bx#=150
- by#=40
- CASE 1,6
- bx#=60
- by#=60
- CASE 8
- bx#=120
- by#=10
- ENDSELECT
- cx#=pb#(1,12,1)
- cy#=pb#(1,12,2)
- cx1#=cx#
- cy1#=cy#
- frame#=1
- sp#=4
- red$=red$(2)
- GET x#,y#,x#+15,y#+23,one$
- IF punt#=0 AND fg#=0
- teams2
- ELSE
- bluekick
- ENDIF
- RETURN
- PROCEDURE teams2
- PUT x#,y#,red$(2)
- GET x#,y#,x#+15,y#+27,red$(11)
- PUT bx#,by#,blue$(1)
- GET bx#,by#-4,bx#+15,by#+23,blue$(11)
- FOR t#=90 TO 210 STEP 20
- PUT t#,70,blue$(1)
- NEXT t#
- '
- FOR t#=1 TO 3
- PUT pb#(t#,1,1),pb#(t#,1,2),blue$(1)
- PUT pr#(t#,1,1),pr#(t#,1,2),red$(2)
- NEXT t#
- '
- blue$=blue$(1)
- two$=blank$
- FOR t#=90 TO 210 STEP 40
- PUT t#,100,red$(2)
- NEXT t#
- FOR t#=110 TO 190 STEP 40
- PUT t#,110,red$(2)
- NEXT t#
- REPEAT
- PUT x#,y#,blank$
- PAUSE 20
- PUT x#,y#,red$(2)
- PAUSE 20
- UNTIL STRIG(1)
- SGET screen$
- FOR t#=0 TO 15 STEP 5
- PUT 154,65-t#,ball$(1)
- PAUSE 1
- NEXT t#
- SPUT screen$
- PUT 150,40,bluehot$(1)
- FOR st#=1 TO 4
- FOR tt#=90 TO 210 STEP 40
- PUT tt#,65+st#*3,blue$(11)
- PUT tt#,100-st#*2,red$(11)
- NEXT tt#
- FOR tt#=110 TO 190 STEP 40
- PUT tt#,65+st#*4,blue$(11)
- PUT tt#,110-st#*2,red$(11)
- NEXT tt#
- NEXT st#
- IF play#=3
- PUT 150,40,blue$(9)
- SGET screen$
- FOR t#=0 TO 20 STEP 5
- PUT 150-t#,35-t#,ball$(3)
- PUT 145-t#,35-t#,ball$(1)
- PAUSE 1
- SPUT screen$
- NEXT t#
- PUT 110,81,blank$
- PUT 110,102,blank$
- PUT 135,70,blue$(3)
- PUT 135,110,red$(5)
- ELSE IF play#=2 OR play#=10
- PUT 150,40,blue$(7)
- SGET screen$
- FOR t#=0 TO 20 STEP 5
- PUT 175+t#,35-t#,ball$(3)
- PUT 170+t#,35-t#,ball$(1)
- PAUSE 1
- SPUT screen$
- NEXT t#
- ELSE IF play#=9
- PUT 150,40,blue$(9)
- SGET screen$
- FOR t#=0 TO 20 STEP 5
- PUT 150-t#,35-t#,ball$(3)
- PUT 145-t#,35-t#,ball$(1)
- PAUSE 1
- SPUT screen$
- NEXT t#
- ENDIF
- RETURN
- PROCEDURE players2
- IF count#<12
- sp#=8
- PUT pb#(countt#,count#,1),pb#(countt#,count#,2),blank$
- IF countt#=1
- PUT pb#(countt#,count#+1,1),pb#(countt#,count#+1,2),bluehot$(pb#(countt#,count#+1,3))
- ELSE
- PUT pb#(countt#,count#+1,1),pb#(countt#,count#+1,2),blue$(pb#(countt#,count#+1,3))
- ENDIF
- PUT pr#(countt#,count#,1),pr#(countt#,count#,2),blank$
- PUT pr#(countt#,count#+1,1),pr#(countt#,count#+1,2),red$(pr#(countt#,count#+1,3))
- INC countt#
- IF countt#=4
- countt#=1
- count#=count#+1
- ENDIF
- cx#=pb#(1,count#,1)
- cy#=pb#(1,count#,2)
- IF count#=11 AND pass#=1
- pass2
- ENDIF
- ELSE
- sp#=8
- chaser
- PAUSE 1
- ENDIF
- RETURN
- PROCEDURE pass2
- PUT pb#(1,11,1),pb#(1,11,2),blank$
- PUT pb#(1,12,1),pb#(1,12,2),blue$(3)
- rx#=pb#(3,11,1)
- ry#=pb#(3,11,2)
- rp#=pb#(3,11,3)
- q#=RANDOM(6)
- IF q#=1
- rx#=rx#-10
- ry#=ry#-10
- inc#=1
- tackle#=1
- count#=12
- ENDIF
- IF int2#=1
- rx#=x#
- ry#=y#
- inc#=0
- ENDIF
- SGET screen$
- FOR mm#=1 TO 10
- IF inc#=0
- PUT 5+cx#+mm#*((rx#-cx#)/10),cy#+mm#*((ry#-cy#)/10),ball$(3)
- ELSE
- PUT (5-mm#/2)+cx#+mm#*((rx#-cx#)/10),cy#+mm#*((ry#-cy#)/10),ball$(3)
- ENDIF
- PUT cx#+mm#*((rx#-cx#)/10),cy#+mm#*((ry#-cy#)/10),ball$(1)
- PAUSE 2
- SPUT screen$
- NEXT mm#
- IF inc#=1
- PUT rx#,ry#,ball$(1)
- ELSE IF int2#<>1
- cx#=rx#
- cy#=ry#
- cx1#=cx#
- cy1#=cy#
- ENDIF
- IF int2#=1
- interception2
- ENDIF
- pass#=0
- count#=12
- RETURN
- PROCEDURE interception2
- offense#=1
- tackle#=0
- goal#=-30
- possession#=1
- SGET screen$
- COLOR 8
- ELLIPSE x#+8,y#+12,12,16
- DEFTEXT 2,0,0,32
- TEXT 64,180,"INTERCEPTION"
- FOR t#=1 TO 4
- FOR tt#=1 TO 12
- SOUND 1,10,tt#,6,1
- NEXT tt#
- NEXT t#
- SOUND 1,0
- SPUT screen$
- RETURN
- PROCEDURE bluekick
- FOR t#=70 TO 230 STEP 20
- PUT t#,100,red$(2)
- NEXT t#
- PUT 150,175,red$(2)
- GET 70,100,85,127,red$(11)
- FOR t#=90 TO 210 STEP 20
- PUT t#,70,blue$(1)
- NEXT t#
- FOR t#=70 TO 230 STEP 160
- PUT t#,50,blue$(1)
- NEXT t#
- GET 70,46,85,73,blue$(11)
- IF punt#=1
- PUT 170,40,blue$(1)
- PUT 150,10,blue$(1)
- ELSE IF fg#=1
- PUT 138,10,kicker$(3)
- PUT 162,0,blue$(1)
- ENDIF
- REPEAT
- UNTIL STRIG(1)
- SGET screen$
- FOR t#=0 TO 35 STEP 5
- PUT 154,65-t#,ball$(1)
- PAUSE 2
- SPUT screen$
- NEXT t#
- IF fg#=1
- PUT 154,25,ball$(1)
- ELSE
- PUT 150,10,bluehot$(1)
- ENDIF
- '
- FOR st#=0 TO 4
- FOR tt#=90 TO 210 STEP 20
- PUT tt#,70+st#*2,blue$(11)
- PUT tt#,100-st#*3,red$(11)
- NEXT tt#
- FOR tt#=70 TO 230 STEP 160
- PUT tt#,50+st#*2,blue$(11)
- PUT tt#,100-st#*4,red$(11)
- NEXT tt#
- NEXT st#
- IF punt#=1
- PUT 150,10,kicker$(4)
- ELSE IF fg#=1
- PUT 154,25,ball$(2)
- PUT 162,0,kicker$(4)
- ENDIF
- SGET screen$
- FOR t#=20 TO 190 STEP 10
- PUT 154+t#/3,t#,ball$(3)
- PUT 154,t#,ball$(1)
- PAUSE 1
- SPUT screen$
- NEXT t#
- IF fg#=1
- ' ========= field goal ============
- CLS
- q#=INT(RND(0)*40)+20
- IF q#>fp#
- good#=1
- ELSE
- good#=0
- ENDIF
- DEFTEXT 8,0,0,13
- TEXT 0,15,"G"
- TEXT 304,15,"G"
- COLOR 8
- DEFLINE 1,3,0,0
- LINE 115,180,130,165
- LINE 215,180,230,165
- LINE 150,195,165,180
- LINE 115,180,215,180
- DEFLINE 1,1,0,0
- SGET screen$
- '
- IF good#=1
- q#=INT(RND(0)*50)
- x1#=145+q#/2.5
- x2#=135+q#
- y1#=0
- y2#=190
- ELSE IF good#=0
- y1#=0
- q#=INT(RND(0)*4)+1
- SELECT q#
- CASE 1
- x1#=145
- x2#=100
- y2#=190
- CASE 2
- x1#=165
- x2#=235
- y2#=190
- CASE 3
- x1#=150
- x2#=130
- y2#=160
- CASE 4
- x1#=160
- x2#=180
- y2#=155
- ENDSELECT
- ENDIF
- FOR t#=1 TO 50
- PUT (50-t#)+x1#+t#*(x2#-x1#)/50,y1#-t#*(y1#-y2#)/50,ball$(3)
- PUT x1#+t#*(x2#-x1#)/50,y1#-t#*(y1#-y2#)/50,ball$(1)
- PAUSE 1
- IF t#<>50
- SPUT screen$
- ENDIF
- NEXT t#
- DEFTEXT 6,0,0,13
- IF good#=1
- TEXT 112,80,"Kick is Good"
- bad
- bad
- scr2#=scr2#+3
- ko#=1
- ELSE
- TEXT 100,80,"Kick is No Good"
- ENDIF
- offense#=1
- goal#=-30
- endplay
- ELSE IF punt#=1
- ' =========== runback ==========
- q#=INT(RND(0)*30)
- fp#=fp#-20-q#
- IF fp#<0
- fp#=0
- ENDIF
- CLS
- field
- offense#=1
- goal#=-30
- count#=12
- x#=150
- y#=170
- PUT x#,y#,red$(2)
- x1#=x#
- y1#=y#
- one$=blank$
- cx#=100+INT(RND(0)*100)
- cy#=0+INT(RND(0)*20)
- cx1#=cx#
- cy1#=cy#
- PUT cx#,cy#,blue$(1)
- two$=blank$
- SGET screen$
- FOR t#=0 TO 170 STEP 10
- PUT 210-t#/3,t#,ball$(3)
- PUT 154,t#,ball$(1)
- PAUSE 1
- SPUT screen$
- NEXT t#
- screen#=0
- ENDIF
- RETURN
- ' ===================
- PROCEDURE victory
- PAUSE 4
- FOR t#=1 TO 24
- b#=victory#(t#,1)
- SOUND 1,10,b#,4,8
- NEXT t#
- FOR t#=25 TO 32
- b#=victory#(t#,1)
- c#=4
- IF b#>12
- b#=b#-12
- c#=5
- ENDIF
- SOUND 1,10,b#,c#,4
- NEXT t#
- PAUSE 2
- SOUND 1,0
- RETURN
- PROCEDURE bad
- FOR t#=0 TO 12
- SOUND 1,10,12-t#,4,1
- NEXT t#
- FOR t#=0 TO 12
- SOUND 1,10,12-t#,3,1
- NEXT t#
- FOR t#=0 TO 12
- SOUND 1,10,12-t#,2,1
- NEXT t#
- SOUND 1,0
- RETURN
- PROCEDURE charge
- PAUSE 4
- FOR t#=1 TO 9
- a#=charge#(t#,1)
- IF a#<13
- tt#=4
- ELSE
- tt#=5
- a#=a#-12
- ENDIF
- SOUND 1,10,a#,tt#,6
- NEXT t#
- DEFTEXT 6,0,0,32
- SOUND 1,0,0,0,8
- TEXT 104,100,"CHARGE!"
- SOUND 1,9,6,5,32
- SOUND 1,0
- PAUSE 8
- RETURN
- PROCEDURE halftime
- SETCOLOR 0,0,4,0
- DEFFILL 5,2,8
- PBOX 0,0,319,99
- stats
- DEFTEXT 2,0,0,13
- GRAPHMODE 2
- TEXT 128,70,"Halftime"
- GRAPHMODE 2
- FOR t#=1 TO 20
- PUT (t#-1)*16,100,crowd$(t#*2)
- NEXT t#
- DEFFILL 6,2,8
- PBOX 0,130,319,135
- DEFFILL 3,2,8
- PBOX 0,180,319,199
- jump
- FOR t#=0 TO 400 STEP 16
- PUT t#-8,156,blank$
- PUT t#,156,red$(8)
- jump
- PUT t#-28,156,blank$
- PUT t#-20,156,red$(7)
- jump
- PUT t#-68,156,blank$
- PUT t#-60,156,red$(8)
- jump
- PAUSE 8
- PUT t#,156,blank$
- PUT t#+8,156,red$(7)
- jump
- PUT t#-20,156,blank$
- PUT t#-12,156,red$(8)
- jump
- PUT t#-60,156,blank$
- PUT t#-52,156,red$(7)
- jump
- PAUSE 8
- NEXT t#
- FOR t#=1 TO 20
- PUT (t#-1)*16,100,crowd$(t#*2)
- NEXT t#
- band
- FOR t#=0 TO 400 STEP 16
- PUT 320-t#+8,156,blank$
- PUT 320-t#,156,red$(10)
- jump
- PUT 320-t#+28,156,blank$
- PUT 320-t#+20,156,red$(9)
- jump
- PUT 320-t#+68,156,blank$
- PUT 320-t#+60,156,red$(10)
- jump
- PAUSE 8
- PUT 320-t#,156,blank$
- PUT 320-t#-8,156,red$(9)
- jump
- PUT 320-t#+20,156,blank$
- PUT 320-t#+12,156,red$(10)
- jump
- PUT 320-t#+60,156,blank$
- PUT 320-t#+52,156,red$(9)
- jump
- PAUSE 8
- NEXT t#
- FOR t#=1 TO 20
- PUT (t#-1)*16,100,crowd$(t#*2)
- NEXT t#
- REPEAT
- UNTIL STRIG(1)
- dissolve
- RETURN
- PROCEDURE jump
- q#=1+RANDOM(20)
- a#=sitz#(q#,1)
- IF a#=1
- PUT (q#-1)*16,100,crowd$(q#*2-1)
- sitz#(q#,1)=2
- ELSE IF a#=2
- PUT (q#-1)*16,100,crowd$(q#*2)
- sitz#(q#,1)=1
- ENDIF
- RETURN
- PROCEDURE shuffle
- DEFFILL 15,2,8
- FOR t#=1 TO 4
- PUT x#,y#,spiker$(1)
- delay
- PUT x#,y#,spiker$(2)
- delay
- NEXT t#
- PUT x#,y#,spiker$(3)
- delay
- PUT x#,y#,spiker$(4)
- SGET screen$
- WHILE x#>0
- PELLIPSE x#-10,y#+16,3,4
- x#=x#-10
- PAUSE 2
- SPUT screen$
- PELLIPSE x#-10,y#+16,4,3
- x#=x#-10
- PAUSE 2
- SPUT screen$
- WEND
- RETURN
- PROCEDURE spike
- DEFFILL 15,2,8
- PUT cx#,cy#,spiker$(5)
- delay
- delay
- PUT cx#,cy#,spiker$(6)
- SGET screen$
- WHILE cx#>0
- PELLIPSE cx#-10,cy#+16,3,4
- cx#=cx#-10
- PAUSE 2
- SPUT screen$
- PELLIPSE cx#-10,cy#+16,4,3
- cx#=cx#-10
- PAUSE 2
- SPUT screen$
- WEND
- RETURN
- PROCEDURE delay
- PAUSE 10
- RETURN
- PROCEDURE band
- xyz#=1
- FOR t#=-140 TO 356 STEP 8
- FOR tt#=0 TO 2 STEP 2
- PUT t#+tt#,152,band$(1)
- PAUSE 2
- NEXT tt#
- b#=victory#(xyz#,1)
- xyz#=xyz#+1
- c#=4
- IF b#>12
- b#=b#-12
- c#=5
- ENDIF
- SOUND 1,10,b#,c#,4
- FOR tt#=4 TO 6 STEP 2
- PUT t#+tt#,152,band$(2)
- PAUSE 2
- NEXT tt#
- b#=victory#(xyz#,1)
- xyz#=xyz#+1
- c#=4
- IF b#>12
- b#=b#-12
- c#=5
- ENDIF
- SOUND 1,10,b#,c#,4
- IF xyz#>32
- xyz#=1
- ENDIF
- NEXT t#
- SOUND 1,0
- RETURN
-