home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Merciful 3
/
Merciful_Release_3.bin
/
software
/
r
/
ricochetv2.dms
/
ricochetv2.adf
/
Ricochet_Source.Amos
/
Ricochet_Source.amosSourceCode
< prev
next >
Wrap
AMOS Source Code
|
1992-12-21
|
28KB
|
1,340 lines
Set Buffer 10
'Dir$="Work:Games/Ricochet"
Screen Open 0,640,256,16,Laced+Hires
Flash Off : Hide On : Cls 0
Load Iff "rico16.iff"
Palette $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Screen Open 1,320,256,16,Laced+Hires
Flash Off : Hide On
Load Iff "amos.iff",1
Palette $0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0,$0
Screen Display 1,130+150,170,320,256
Screen 0
Fade 3,$11,$222,$243,$433,$264,$454,$643,$285,$755,$576,$776,$797,$A87,$AA9,$CBA,$EDD
Wait 3*15
Screen 1
Load "any_one_for_tennis.abk"
Music 1
Mvolume 63
Tempo 28
Led Off
'
Global _PLAYER,NAME$,NAMEB$,F,_GAMES,FIVE,_NOVICE,TTIME,SEC,_MIN,GAMMY
_PLAYER=0 : GAMMY=4
Wait 100
_FINDFONTS
F=Param
Load "samples.abk"
Load "samples1.abk",6
Fade 3,$0,$99C,$124,$225,$336,$11D,$22D,$33D,$447,$558,$669,$66C,$88E,$113,$CCE,$EEF
_WAIT[501]
Screen 1 : Fade 3 : Wait 3*15
Screen 0 : Fade 3 : Wait 3*15
Screen Close 0
Screen Close 1
'
'
'
'error message NO FONTS FOUND
If F=0
Screen Open 0,320,200,8,Lowres
Curs Off : Cls 0 : Paper 0
Music Off
Locate 1,8 : Centre "FONT 'helvetica' WAS NOT FOUND"
Locate 1,9 : Centre "ON YOUR BOOT DISC!"
Locate 1,10 : Centre "Sorry, can not continue program."
_WAIT[501]
Stop
End If
'
'
For N=7 To 11
No Mask N
Next
'
'
Screen Open 1,320,56,8,Lowres
Screen Display 1,130,235,320,56
Curs Off : Hide On : Flash Off : Cls 0
Screen Open 2,320,56,8,Lowres
Load Iff "courtboard",2
Screen Display 2,130,311,320,56
_LOADBOARD
'
Channel 1 To Bob 1
Channel 2 To Bob 2
Channel 3 To Bob 3
For N=1 To 6
Hot Spot N,$11
Next
'
ESC:
Auto View Off
Load Iff "court",0
Screen Display 0,130,36,320,200
Flash Off : Hide On : Curs Off
Get Icon Palette
Get Block 1,80,32,160,9*16
Screen Clone 2
Screen To Front
For N=0 To 15
Colour N,0
Next
View : Auto View On
Fade 3 To 2
Wait 15
Screen Close 2
'
Double Buffer
_START: ACE=0 : ACEB=0 : GAME=0 : GAMEB=0 : FIVE=0 : _NOVICE=0
TTIME=0 : SEC=0 : _MIN=0
Screen 0
_OPTIONS
_PLAYERSELECT
HARDNESS=Param
'
'RANDOM SERVE AT START
R=Rnd(1)
If R=1
SERVER=0
Else
SERVER=1
End If
'
_NEWGAME:
'************** RESET VARIBLES HERE For Next GAME
SCORE=0 : SCOREB=0 : RALLY=-1 : RALREC=0 : TIE=0 : SERVERCNT=0
SRV=0
Screen Open 2,320,56,8,Lowres
Load Iff "courtboard",2
Screen Display 2,130,311,320,56
Set Font(F)
Ink 1,3
Gr Writing 1 : Text 266,36,Str$(ACE)
Text 44,36,Str$(ACEB)
Text 169,49,Str$(RALREC)
'
Text 20,23,NAMEB$ : Text 185,23,NAME$
Text 147,22,Str$(GAMEB)
Text 165,22,Str$(GAME)
_LOADBOARD
Screen 1
Set Font(F)
Ink 1,3
Screen 0
_MESSAGE
Ink 1
If SERVER=0
SERVER$=NAME$
Else
SERVER$=NAMEB$
End If
Text 104,93,SERVER$
Text 104,105,"TO SERVE, ..... GET READY!"
For N=63 To 1 Step -1
Wait 2
Mvolume N
Next
Music Off
CLAP
_WAIT[200]
_CLOSEMESS
'
SERVE: Screen 1
'this decides who serves
If SERVERCNT=5 and TIE=0
SERVERCNT=0
Inc SERVER
If SERVER>1
SERVER=0
End If
End If
Inc SERVERCNT
If TIE=1
Inc SERVER
If SERVER>1
SERVER=0
End If
End If
If RALLY=0
If XMOVE=1
Inc ACEB
Gr Writing 1 : Ink 1,3 : Text 44,36,Str$(ACEB)
Else
Inc ACE
Gr Writing 1 : Ink 1,3 : Text 266,36,Str$(ACE)
End If
End If
If RALLY>RALREC
RALREC=RALLY
Gr Writing 1 : Ink 1,3 : Text 169,49,Str$(RALREC)
End If
RALLY=0
Text 90,49,"0 "
Screen 0 : Gr Writing 0
If SCORE=20 xor SCOREB=20
Bob 4,112,80,10
End If
If TIE=1
If SCORE=SCOREB
Bob 4,128,80,8
'this shows sign DEUCE
Else
Bob 4,112,80,10
'this shows game point
End If
End If
'
Gr Writing 1
If SERVER=0
Screen 1 : Ink 2 : Bar 17,4 To 138,12
Ink 5 : Bar 182,4 To 303,12
Ink 3,5 : Text 230,10,"SERVE"
Screen 0
Gosub RIGHTSERVE
BOUNCE=1
Amal 2,"A 1,(6,4)(5,4)(4,4)(5,4)"
Bob 3,,,5
Sam Play 6,1,16000
Else
Screen 1 : Ink 5 : Bar 17,4 To 138,12
Ink 2 : Bar 182,4 To 303,12
Ink 3,5 : Text 65,10,"SERVE"
Screen 0
Gosub LEFTSERVE
BOUNCE=0
Amal 3,"A 1,(4,4)(5,4)(6,4)(5,4)"
Bob 2,,,5
Sam Play 9,1,18000
End If
'this gets rid of any message bobs
Bob Off 4
Amal On
Wait 4
Bob 1,X,Y,
Amal 1,"A 1,(1,4)(2,4)(3,4)(2,4)(1,8)"
Amal On
Do
I$=Inkey$
'this pauses game
If I$="p"
Amal Freeze
Bob 4,128,80,7
Repeat : I$=Inkey$ : Until I$=""
Repeat : I$=Inkey$ : Until I$="p"
Repeat : I$=Inkey$ : Until I$=""
Bob Off 4
Amal On
End If
If Key State(69)
Fade 3 : Wait 3*15
Music 1
Mvolume 63
Tempo 28
Goto ESC
End If
'this waits a mo before going to serve
If SRV<>0
Inc _WAITSERVE
If _WAITSERVE=100
_WAITSERVE=0 : SRV=0
Goto SERVE
End If
End If
Wait Vbl
Inc TTIME
If TTIME>=50
_TIMER
End If
If X<140 and BOUNCE=0
BOUNCE=1
Sam Play 9,2,32000
Amal 1,"A 1,(3,4)(2,4)(1,4)"
Amal On
End If
If X>180 and BOUNCE=1
BOUNCE=0
Sam Play 6,2,32000
Amal 1,"A 1,(3,4)(2,4)(1,4)"
Amal On
End If
Bob 1,X,Y,
Bob 2,,BY,
Bob 3,,BYB,
'Left bat coldection
CB=Bob Col(1,3 To 3)
If CB<>0 and XMOVE=0
Inc RALLY
Screen 1 : Gr Writing 1 : Ink 1,3 : Text 88,49,Str$(RALLY) : Screen 0
'what shot is the computer going to take?
If _PLAYER=0 and JB<>0
_WHATHIT
JB=Param
If _NOVICE=1
JB=0
End If
End If
'
XMOVE=1
If JB=1 or JB=2
BANGLE=2 : SPEED=5
End If
If JB=9
Amal 3,"A 1,(6,12)(5,4)"
YMOVE=0
BANGLE=4
End If
If JB=10
Amal 3,"A 1,(4,12)(5,4)"
YMOVE=1
BANGLE=4
End If
If JB=0 or JB=4 or JB=8
If JB=8
Amal 3,"A 1,(4,4)(5,4)(6,4)(5,4)"
SPEED=8 : BANGLE=4
Else
SPEED=4
BANGLE=1
End If
End If
Amal On
Sam Play 9,1,18000
End If
'right bat coldection
C=Bob Col(1,2 To 2)
If C<>0 and XMOVE=1
XMOVE=0
Inc RALLY
Screen 1 : Ink 1,3 : Text 88,49,Str$(RALLY) : Screen 0
If J=1 or J=2
BANGLE=2 : SPEED=5
End If
If J=5
Amal 2,"A 1,(6,12)(5,4)"
YMOVE=0
BANGLE=4
End If
If J=6
Amal 2,"A 1,(4,12)(5,4)"
YMOVE=1
BANGLE=4
End If
If J=0 or J=4 or J=8
If J=4
Amal 2,"A 1,(6,4)(5,4)(4,4)(5,4)"
SPEED=8 : BANGLE=4
Else
SPEED=4
BANGLE=1
End If
End If
Sam Play 6,1,16000
Amal On
End If
'If X<50
' XMOVE=1
'End If
If XMOVE=1
Add X,SPEED
If X>=330 and SRV=0
Bob Off(1)
Inc SCOREB : SRV=1 : Y=300
Screen 1
Gr Writing 1
Ink 1,3 : Text 145,36,Str$(SCOREB)
If RALLY=0 or RALLY>RALREC and RALLY>6
CLAP
End If
Screen 0
If SCORE=21 or SCOREB=21
If TIE=0
Gosub _WINNER
End If
End If
If SCORE=20 and SCOREB=20
Bob 4,112,80,11
TIE=1
End If
If TIE=1
Gosub _TIEBREAK
End If
End If
Else
X=X-SPEED
If X<=-10 and SRV=0
Bob Off(1)
Inc SCORE : SRV=1 : Y=300
Screen 1
Gr Writing 1
Ink 1,3 : Text 163,36,Str$(SCORE)
If RALLY=0 or RALLY>RALREC and RALLY>6
CLAP
End If
Screen 0
If SCORE=21 or SCOREB=21
If TIE=0
Gosub _WINNER
End If
End If
If SCORE=20 and SCOREB=20
Bob 4,112,80,11
TIE=1
End If
If TIE=1
Gosub _TIEBREAK
End If
End If
End If
'
' up down ball movement
If YMOVE=1
Add Y,BANGLE
If Y=>188 and SRV=0
If X<160
Sam Play 9,2,28000
Else
Sam Play 6,2,28000
End If
YMOVE=0
End If
Else
Y=Y-BANGLE
If Y=<10 and SRV=0
If X>160
Sam Play 9,2,28000
Else
Sam Play 6,2,28000
End If
YMOVE=1
End If
End If
'
' bat control
'left bat
If _PLAYER=1
JB=Joy(0)
Else
'computer control
If Y-16>BYB and X<HARDNESS
JB=2
End If
'down screen
If Y+16<BYB and X<HARDNESS
JB=1
End If
If X>HARDNESS
JB=0
End If
End If
If JB<>0
If JB=2 or JB=6 or JB=10
If BYB<188
Add BYB,4
End If
End If
If JB=1 or JB=5 or JB=9
If BYB>0
BYB=BYB-4
End If
End If
End If
'Right bat
J=Joy(1)
If J<>0
If J=2 or J=6 or J=10
If BY<188
Add BY,4
End If
End If
If J=1 or J=5 or J=9
If BY>0
BY=BY-4
End If
End If
End If
Loop
RIGHTSERVE:
'right to serve
Screen 0
BY=160 : BYB=30
X=298 : Y=153
Bob 1,X,Y,1
Bob 2,304,BY,6
Bob 3,29,BYB,6
Repeat
Wait 1
I$=Inkey$
'this pauses game
If I$="p"
Bob 4,128,80,7
Repeat : I$=Inkey$ : Until I$=""
Repeat : I$=Inkey$ : Until I$="p"
Repeat : I$=Inkey$ : Until I$=""
Bob Off 4
End If
If Key State(69)
Fade 3 : Wait 3*15
Music 1
Mvolume 63
Tempo 28
Goto ESC
End If
Inc TTIME
If TTIME=50
_TIMER
End If
J=Fire(1)
Until J<>0
XMOVE=0 : YMOVE=0
R=Rnd(3)+3
SPEED=R
R=Rnd(1)+1
BANGLE=R
J=Joy(1)
If J=20
SPEED=8
End If
If J=18
BANGLE=4 : SPEED=3
End If
If J=21
BANGLE=4
End If
If J=22
BANGLE=2+R : SPEED=6 : YMOVE=1
End If
Return
LEFTSERVE:
'right to serve
Screen 0
BY=30 : BYB=160
X=30 : Y=153
Bob 1,X,Y,1
Bob 2,304,BY,4
Bob 3,29,BYB,4
If _PLAYER=1
'Repeat : JB=Fire(0) : Until JB<>0
Repeat
Wait 1
I$=Inkey$
'this pauses game
If I$="p"
Bob 4,128,80,7
Repeat : I$=Inkey$ : Until I$=""
Repeat : I$=Inkey$ : Until I$="p"
Repeat : I$=Inkey$ : Until I$=""
Bob Off 4
End If
If Key State(69)
Fade 3 : Wait 3*15
Music 1
Mvolume 63
Tempo 28
Goto ESC
End If
Inc TTIME
If TTIME=50
_TIMER
End If
JB=Fire(0)
Until JB<>0
JB=Joy(0)
Else
'this decides computers serve
N=0
Do
Wait 1
Inc TTIME
If TTIME=50
_TIMER
End If
Inc N
Exit If N>=100
I$=Inkey$
'this pauses game
If I$="p"
Bob 4,128,80,7
Repeat : I$=Inkey$ : Until I$=""
Repeat : I$=Inkey$ : Until I$="p"
Repeat : I$=Inkey$ : Until I$=""
Bob Off 4
End If
If Key State(69)
Fade 3 : Wait 3*15
Music 1
Mvolume 63
Tempo 28
Goto ESC
End If
Loop
R=Rnd(3)+1
If R=1
JB=24
End If
If R=2
JB=17
End If
If R=3
JB=25
End If
If R=4
JB=26
End If
If _NOVICE=1
JB=0
End If
End If
XMOVE=1 : YMOVE=0
R=Rnd(3)+3
SPEED=R
R=Rnd(1)+1
BANGLE=R
If JB=24
SPEED=8
End If
If JB=17
BANGLE=4 : SPEED=3
End If
If JB=25
BANGLE=4
End If
If JB=26
BANGLE=2+R : SPEED=6 : YMOVE=1
End If
Return
_WINNER:
CLAP
Gr Writing 0
Bob 1,322,Y,1
_MESSAGE
Dec _GAMES
If SCOREB=21 and TIE=0
Text 104,93,NAMEB$
Inc GAMEB
SERVER=0
End If
If SCORE=21 and TIE=0
Text 104,93,NAME$
Inc GAME
SERVER=1
End If
If SCORE>SCOREB and TIE=1
Text 104,93,NAME$
Inc GAME
SERVER=1
End If
If SCOREB>SCORE and TIE=1
Text 104,93,NAMEB$
Inc GAMEB
SERVER=0
End If
If FIVE=1 and GAME=3 or FIVE=1 and GAMEB=3
_GAMES=0
End If
If FIVE=0 and GAME=2 or FIVE=0 and GAMEB=2
_GAMES=0
End If
If _GAMES>0
SENTENCE$="WINS THIS GAME!"
Else
SENTENCE$="WINS THE GAME & MATCH!"
End If
Text 104,105,SENTENCE$
Screen 1
Text 147,22,Str$(GAMEB)
Text 165,22,Str$(GAME)
Screen 0
'this is the start of no: of games bit
_WAIT[250]
'
If _GAMES=0
Music 1
Mvolume 63
Tempo 28
Fade 3
Load Iff "moet321",0
Screen Display 0,130,36,320,208
Set Font(F-3) : Ink 5,0
Text 85,160,"Ricochet's Ace Player;"
If GAMEB>GAME
Text 85,180,NAMEB$
Else
Text 85,180,NAME$
End If
_WAIT[501]
Fade 3 : Wait 3*15
Goto ESC
Else
SERVERCNT=0
_MESSAGE
If GAME>GAMEB
SENTENCE$="LEADS BY "+Str$(GAME)+" GAME(S) TO "+Str$(GAMEB)
Text 104,105,SENTENCE$
Text 104,93,NAME$
End If
If GAMEB>GAME
SENTENCE$="LEADS BY "+Str$(GAMEB)+" GAME(S) TO "+Str$(GAME)
Text 104,105,SENTENCE$
Text 104,93,NAMEB$
End If
If GAME=GAMEB
SENTENCE$=Str$(GAME)+" GAME(S) TO "+Str$(GAMEB)
Text 104,93,"SCORE ARE EQUAL"
Text 104,105,SENTENCE$
End If
_WAIT[200]
Goto _NEWGAME
End If
'Return
_TIEBREAK:
If SCORE=SCOREB+2 or SCOREB=SCORE+2
Gosub _WINNER
End If
Return
Procedure _GETBOBS
Load Iff "ball.iff",0
For N=1 To 3
Get Bob N,X,0 To X+12,12
Add X,12
Next
For N=4 To 6
Get Bob N,X,0 To X+19,32
Add X,19
Next
Y=48
For N=7 To 8
Get Bob N,80,Y To 144,Y+32
Add Y,32
Next
Y=48
For N=9 To 11
Get Bob N,144,Y To 240,Y+32
Add Y,32
Next
_GETICON
End Proc
Procedure _WHATHIT
Data 1,2,1,2,8,9,10,9,10
R=Rnd(8)+1
For N=1 To R
Read JB
Next
End Proc[JB]
Procedure _GETICON
X=0 : Y=48
For N=1 To 15
Get Icon N,X,Y To X+16,Y+16
Add X,16
If X>4*16
X=0
Add Y,16
End If
Next
End Proc
Procedure _WINDOW
Screen 1
Fade 3,$0,$555,$223,$122,$223,$640,$722,$457
Screen 0
Get Icon Palette
Autoback 1
Data 1,2,2,2,3,4,2,2,2,5
Data 6,7,7,7,8,9,7,7,7,10
Data 6,7,7,7,8,9,7,7,7,10
Data 6,7,7,7,8,9,7,7,7,10
Data 6,7,7,7,8,9,7,7,7,10
Data 6,7,7,7,8,9,7,7,7,10
Data 6,7,7,7,8,9,7,7,7,10
Data 6,7,7,7,8,9,7,7,7,10
Data 11,12,12,12,13,14,12,12,12,15
X=80 : Y=32
For N=1 To 90
Inc CNT
Read R
Paste Icon X,Y,R
Add X,16
If CNT=10
X=80 : CNT=0
Add Y,16
End If
Next
End Proc
Procedure _CLOSEWIND
Put Block 1
Screen Swap
Put Block 1
Screen 1
Fade 3,$0,$889,$334,$233,$445,$C80,$D33,$9AD
Screen 0
Autoback 2
End Proc
Procedure _BOX[BXX,BXY,BW,BD,HIGH,LOW,_BAR]
If _BAR>0
Ink _BAR : Bar BXX,BXY To BW,BD
End If
Ink HIGH : Polyline BXX,BD To BXX,BXY To BW,BXY
Ink LOW : Polyline BW,BXY+1 To BW,BD To BXX+1,BD
End Proc
Procedure _FINDFONTS
Get Disc Fonts
N=1
Do
A$=Font$(N)
ANSWER=Instr(A$,"helvetica")
Exit If ANSWER>0
Inc N
If N>10000
N=1
Exit
End If
Loop
Add N,5
End Proc[N]
Procedure _OPTIONS
Set Font(F)
If GAMMY=4 Then _GAMES=1
If GAMMY=5 Then _GAMES=3
If GAMMY=6 Then _GAME5=5
Data "ONE PLAYER","TWO PLAYER","PRACTICE","SINGLE GAME","BEST OF THREE","BEST OF FIVE","ABOUT RICOCHET","PLAY GAME","EXIT / QUIT",
Data "THIS PROGRAM WAS","WRITTEN IN AMOS.",""
Data "PROGRAMMING,","ARTWORK & MUSIC,","BY:","MARTIN LONGSTAFF.","","FEB-APRIL 1995."
_TOP: Restore : CNTR=0
_WINDOW
BX=94 : BY=54
For N=1 To 9
If N=1 and _PLAYER=0 or N=2 and _PLAYER=1 or N=GAMMY
_BOX[BX,BY,BX+115,BY+10,0,12,0]
Else
_BOX[BX,BY,BX+115,BY+10,12,0,0]
End If
_BOX[BX+116,BY,BX+130,BY+10,12,0,0]
Read R$
If N>3 and N<7
Ink 4,0
Else
Ink 5,0
End If
If N=8
Ink 1,0
End If
If N=3
Ink 6,0
End If
Gr Writing 0 : Text BX+8,BY+8,R$
Add BY,12
Next
Ink 4,0 : Text 141,48,"OPTIONS"
BY=138
OPCNT=8
Ink 3 : Bar 211,BY+1 To 223,BY+9
Do
Wait 1
Inc CNTR
If CNTR=1000
Gosub _CREDITS
End If
J=Joy(1)
If J=2 and OPCNT<9
CNTR=0
Ink 15 : Bar 211,BY+1 To 223,BY+9
Add BY,12
Ink 3 : Bar 211,BY+1 To 223,BY+9
Inc OPCNT
Repeat : J=Joy(1) : Until J=0
End If
If J=1 and OPCNT>1
CNTR=0
Ink 15 : Bar 211,BY+1 To 223,BY+9
Add BY,-12
Ink 3 : Bar 211,BY+1 To 223,BY+9
Dec OPCNT
Repeat : J=Joy(1) : Until J=0
End If
' IF FIRE is pressed
If J=16
CNTR=0
If OPCNT<3
BX=94 : B=54
For N=1 To 2
If N=OPCNT
_BOX[BX,B,BX+115,B+10,0,12,0]
Else
_BOX[BX,B,BX+115,B+10,12,0,0]
End If
Add B,12
Next
If OPCNT=2
_PLAYER=1
Else
_PLAYER=0
End If
End If
If OPCNT=3
BX=94 : B=78
_BOX[BX,B,BX+115,B+10,0,12,0]
_MESSAGE
Ink 1
Text 105,93,"OPTION NOT AVAILABLE"
Text 105,106,"ON THIS VERSION"
Wait 100
Goto _TOP
End If
If OPCNT>3 and OPCNT<7
BX=94 : B=90
For N=4 To 7
If N=OPCNT
_BOX[BX,B,BX+115,B+10,0,12,0]
Else
_BOX[BX,B,BX+115,B+10,12,0,0]
End If
Add B,12
If OPCNT=4
GAMMY=4
_GAMES=1
End If
If OPCNT=5
GAMMY=5
_GAMES=3
End If
If OPCNT=6
GAMMY=6
_GAMES=5 : FIVE=1
End If
Next
End If
If OPCNT=7
_BOX[94,126,94+115,126+10,0,12,0]
Repeat : J=Joy(1) : Until J=0
_README
Wait 10
Goto _TOP
End If
If OPCNT>7
BX=94 : B=138
For N=8 To 9
If N=OPCNT
_BOX[BX,B,BX+115,B+10,0,12,0]
Else
_BOX[BX,B,BX+115,B+10,12,0,0]
End If
Add B,12
Next
Repeat : J=Joy(1) : Until J=0
If OPCNT=8
Exit
Else
_MESSAGE
Ink 1
Text 105,93,"SURE YOU WANT TO QUIT?"
Text 149,106,"Y / N"
Clear Key
Do
I$=Inkey$
If I$<>""
If I$="y"
Music Off
Stop
Else
_CLOSEMESS
Goto _TOP
End If
End If
Loop
End If
End If
End If
Loop
_CLOSEWIND
Pop Proc
_CREDITS:
_WINDOW
BX=94 : BY=54
Ink 4,0 : Text 141,48,"RICOCHET"
For N=1 To 10
Read R$
Ink 1,0 : Text BX+8,BY+8,R$
Add BY,10
Next
CNTR=0
Do
Wait 1
Inc CNTR
J=Joy(1)
If J=16 or CNTR=1000
Goto _TOP
End If
Loop
End Proc
Procedure _MESSAGE
Data 1,2,2,3,4,2,2,5
Data 11,12,12,13,14,12,12,15
Autoback 1
X=96 : Y=80
For N=1 To 16
Inc CNT
Read R
Paste Icon X,Y,R
Add X,16
If CNT=8
X=96 : CNT=0
Add Y,16
End If
Next
End Proc
Procedure _CLOSEMESS
Put Block 1
Screen Swap
Put Block 1
End Proc
Procedure _EDITOR[CHAR,WY,WORD$]
Clear Key
L=Len(WORD$)
LETCNT=L
Text 98,WY,WORD$
Do
IN$=Inkey$
If IN$<>""
Exit If Key State(68)
LETCNT=0
Ink 2 : Bar 98,WY-7 To 223,WY+3 : Ink 4
WORD$=""
Exit
End If
J=Joy(1)
If J=16
Repeat : J=Joy(1) : Until J=0
Goto _JUMP
End If
Loop
Ink 4,2
Do
J=Joy(1)
If J=16
Repeat : J=Joy(1) : Until J=0
Exit
End If
If IN$<>""
Exit If Key State(68)
If Key State(65) and LETCNT>0
TEMP$=Left$(WORD$,LETCNT-1)
WORD$=TEMP$
Ink 2 : Bar 98,WY-7 To 223,WY+3 : Ink 4
Text 98,WY,WORD$
Dec LETCNT
Else
If Asc(IN$)>31
Inc LETCNT
WORD$=WORD$+Upper$(IN$)
Text 98,WY,WORD$
End If
End If
Exit If LETCNT=CHAR
End If
IN$=Inkey$
Loop
_JUMP:
End Proc[WORD$]
Procedure _PLAYERSELECT
Data "ANDRE AVERAGE","PAT FLASH","JIMMY SPANNERS","BJORN BOING","BORIS BONKERS","MARTINA NOCACATOVA"
_WINDOW
_BOX[92,43,227,76,12,0,0]
_BOX[94,62,225,74,0,12,2]
Ink 1 : Text 102,54,"PLAYER ONE, ENTER NAME:"
If NAME$=""
NAME$="PLAYER ONE"
End If
_EDITOR[16,70,NAME$]
NAME$=Param$
If NAME$=""
NAME$="PLAYER ONE"
End If
Wait 10
If _PLAYER=1
_BOX[92,77,227,110,12,0,0]
_BOX[94,96,225,108,0,12,2]
Ink 1 : Text 101,86,"PLAYER TWO, ENTER NAME:"
Text 101,126,"PLUG SECOND JOYSTICK"
Text 101,136,"INTO THE MOUSE PORT"
If NAMEB$=""
NAMEB$="PLAYER TWO"
End If
_EDITOR[16,104,NAMEB$]
NAMEB$=Param$
If NAMEB$=""
NAMEB$="PLAYER TWO"
End If
Else
Ink 1 : Text 101,86,"SELECT OPPONENT"
BY=90
For N=1 To 6
Read R$
Ink 1,0 : Gr Writing 0 : Text 94+8,BY+8,R$
_BOX[94,BY,94+115,BY+10,12,0,0]
_BOX[94+116,BY,94+130,BY+10,12,0,0]
Add BY,12
Next
BY=90
Ink 3 : Bar 211,BY+1 To 223,BY+9
BY=90 : OPCNT=1
Do
J=Joy(1)
If J=2 and OPCNT<6
Ink 15 : Bar 211,BY+1 To 223,BY+9
Add BY,12
Ink 3 : Bar 211,BY+1 To 223,BY+9
Inc OPCNT
Repeat : J=Joy(1) : Until J=0
End If
If J=1 and OPCNT>1
Ink 15 : Bar 211,BY+1 To 223,BY+9
Add BY,-12
Ink 3 : Bar 211,BY+1 To 223,BY+9
Dec OPCNT
Repeat : J=Joy(1) : Until J=0
End If
' IF FIRE is pressed
If J=16
BX=94 : B=90
For N=1 To 6
If N=OPCNT
_BOX[BX,B,BX+115,B+10,0,12,0]
Else
_BOX[BX,B,BX+115,B+10,12,0,0]
End If
Add B,12
Next
'this is where the opponents are detailed eg:
If OPCNT=1
HARDNESS=140
NAMEB$="ANDRE AVERAGE"
'set varibles
End If
If OPCNT=2
HARDNESS=230
NAMEB$="PAT FLASH"
'set varibles
End If
If OPCNT=3
_NOVICE=1
HARDNESS=90
NAMEB$="JIMMY SPANNERS"
End If
If OPCNT=4
_NOVICE=0
HARDNESS=180
NAMEB$="BJORN BOING"
End If
If OPCNT=5
_NOVICE=1
HARDNESS=280
NAMEB$="BORIS BONKERS"
'set varibles
End If
If OPCNT=6
_NOVICE=1
HARDNESS=200
NAMEB$="MARTINA NOCACATOVA"
'set varibles
End If
Repeat : J=Joy(1) : Until J=0
Exit
End If
Loop
End If
_CLOSEWIND
End Proc[HARDNESS]
Procedure CLAP
Bank Swap 5,6
Volume 25
R=Rnd(1)
If R=0
A=9 : B=6
Else
A=6 : B=9
End If
Sam Play A,3,13500
Wait 7
Sam Play B,3,13500
Volume 30
Bank Swap 5,6
End Proc
Procedure _WAIT[TIME]
N=0
Do
Wait 1
Inc TTIME
If TTIME=50 and TIME<>501
_TIMER
End If
Inc N
Exit If N=TIME
J=Fire(1)
JB=Fire(0)
If J<>0
Repeat
J=Fire(1)
Until J=0
Exit
End If
If JB<>0
Repeat
JB=Fire(0)
Until JB=0
Exit
End If
Loop
End Proc
Procedure _TIMER
TTIME=0
Inc SEC
If SEC=60
Inc _MIN
If _MIN=60
_MIN=0
End If
SEC=0
End If
Screen 1
Ink 4 : Bar 260,43 To 303,50
Gr Writing 0
Ink 3,4
If SEC>9
CLOCK$=Str$(_MIN)+" :"+Str$(SEC)
Else
CLOCK$=Str$(_MIN)+" :0"+Str$(SEC)
End If
Ink 0
Text 268,50,CLOCK$
Ink 1
Text 267,49,CLOCK$
Gr Writing 1 : Ink 1,3
Screen 0
End Proc
Procedure _README
Data "UP","DOWN","EXIT"
Dim _DOC$(150)
Screen Open 2,640,200,4,Hires
Screen Display 2,130,316,640,200
Flash Off : Curs Off : Cls 1 : Hide On
Palette $20,$50,$A0,$80
OPTCNT=2
_BOX[1,180,489,194,2,0,0]
Locate 3,23 : Print "Use FIRE button to scroll text up/down."
BXT=62 : BX=490
For N=1 To 3
If N=OPTCNT
_BOX[BX,180,BX+48,194,2,0,3]
Paper 3 : Pen 0
Else
_BOX[BX,180,BX+48,194,2,0,0]
Paper 1 : Pen 2
End If
Read R$
Locate BXT,23 : Print R$
Add BXT,6
Add BX,49
Next
Restore
Open In 1,"Readme_Rich"
Set Input 10,-1
_LEN=0
Do
_END=Eof(1)
Exit If _END=-1
Line Input #1,_LEN$
_DOC$(_LEN)=_LEN$
Inc _LEN
Loop
Pen 0
For N=1 To 20
Locate 2,N+1 : Print _DOC$(N)
Next
SCR=1
For N=316 To 36 Step -8
Screen Display 2,130,N,640,200
Wait Vbl
Next
Do
J=Joy(1)
If J<>0
If J=16
If OPTCNT=2 and SCR<125
_BOX[540,180,587,194,0,2,0]
Repeat
J=Joy(1)
Y=1 : B=0
Pen 0
For N=SCR To SCR+20
Locate 2,Y : Print " "
Locate 2,Y : Print _DOC$(N)
Inc Y
Next
Add SCR,2
Until J=0 or SCR>124
End If
If OPTCNT=1 and J=16 and SCR>0
_BOX[490,180,538,194,0,2,0]
Repeat
J=Joy(1)
Y=1 : B=0
Pen 0
For N=SCR To SCR+20
Locate 2,Y : Print " "
Locate 2,Y : Print _DOC$(N)
Inc Y
Next
SCR=SCR-2
If SCR<0
SCR=0
End If
Until J=0 or SCR=0
End If
If OPTCNT=3
_BOX[589,180,638,194,0,2,0]
Exit
End If
End If
If J=4 and OPTCNT>1
'left
Dec OPTCNT
End If
If J=8 and OPTCNT<3
'right
Inc OPTCNT
End If
BXT=62 : BX=490
For N=1 To 3
If N=OPTCNT
_BOX[BX,180,BX+48,194,2,0,3]
Paper 3 : Pen 0
Else
_BOX[BX,180,BX+48,194,2,0,1]
Paper 1 : Pen 2
End If
Read R$
Locate BXT,23 : Print R$
Add BXT,6
Add BX,49
Next
Restore
Repeat : J=Joy(1) : Until J=0
End If
Loop
'
For N=36 To 316 Step 8
Screen Display 2,130,N,640,200
Wait Vbl
Next
Screen Close 2
Close 1
End Proc
Procedure _LOADBOARD
For N=311 To 235 Step -2
Screen Display 2,130,N,320,56
Wait Vbl
Next
Screen Copy 2 To 1
Screen 1
Get Palette 2
Screen Close 2
End Proc