home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Club Amiga de Montreal - CAM
/
CAM_CD_1.iso
/
files
/
201.lha
/
telechess
(
.txt
)
< prev
next >
Wrap
AmigaBASIC Source Code
|
1988-12-27
|
17KB
|
820 lines
REM - TeleChess Amiga
REM - Beta Test version 0.95
REM - By
REM - Tom Conroy &
REM James Hastings-Trew
REM - Copyright 1987, Telegame Software
REM - This version of TeleChess is
REM - compatible with the TeleChess-64
REM - for the Commodore 64
MainLoop:
GOSUB DefineModeArray
GOSUB Initalize
GOSUB SetMenu
GOSUB GetOutlines
GOSUB LoadPieces
GOSUB PieceMemSetup
GOSUB PrintBoard
GOTO Chatout
WHILE 1
GOSUB MouseScan
WEND
ElectPawn:
IF InTransit = 1 THEN InTransit = 5
IF InTransit = 11 THEN InTransit = 15
RETURN
ModifyBoard:
'----------------------------------------
PieceMemSetup:
RESTORE
FOR n=1 TO 8
FOR m=1 TO 8
READ b(n,m)
NEXT m
NEXT n
IF flip=0 THEN
x=4
END IF
IF flip=0 THEN crosspiece
FOR n=1 TO 8:FOR I=1 TO 8
IF(b(n,I)<10 AND b(n,I)>0) THEN b(n,I)=b(n,I)+10:GOTO loop6
IF b(n,I)>10 THEN b(n,I)=b(n,I)-10
loop6:
NEXT I:NEXT n
b(1,4)=16:b(1,5)=15:b(8,4)=6:b(8,5)=5
crosspiece:
FOR n = 0 TO 6
READ cross(n)
NEXT
FOR n = 11 TO 16
READ cross(n)
NEXT
FOR n = 100 TO 106
READ cross(n)
NEXT
FOR n = 111 TO 116
READ cross(n)
NEXT
FOR z=1 TO 8:FOR I=1 TO 8
bb(z,I)=b(z,I)
NEXT I:NEXT z
RETURN
DATA 4,2,3,5,6,3,2,4
DATA 1,1,1,1,1,1,1,1
DATA 0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0
DATA 0,0,0,0,0,0,0,0
DATA 11,11,11,11,11,11,11,11
DATA 14,12,13,15,16,13,12,14
DATA 7,6,2,3,1,4,5
DATA 20,16,17,15,18,19
DATA 14,13,9,10,8,11,12
DATA 27,23,24,22,25,26
'------------------------------------
ChatLoop:
Chatout:
IF LOC(1)<>0 THEN ChatIn
a$=INKEY$
IF a$="" THEN GOSUB Colors
IF a$ = "" AND local = 1 THEN local = 0 : GOTO Chatout
IF a$ = "" AND local = 0 THEN local = 1 : GOTO Chatout
IF a$="" THEN ChatIn
IF a$=CHR$(13)THEN
a$="... "
GOTO PrintAndSend
END IF
IF a$=CHR$(8) AND LEN(t$)>0 THEN PrintAndSend
IF (ASC(a$)<32 OR ASC(a$)>64) AND (ASC(a$)<97 OR ASC(a$)>122)THEN ChatIn
IF ASC(a$)>64 THEN b=ASC(a$)-32:a$=CHR$(b)
PrintAndSend:
IF a$=CHR$(8) THEN a$=CHR$(20)
PRINT#1,a$;
IF a$=CHR$(20) THEN
a$=""
t$=LEFT$(t$,LEN(t$)-1)
END IF
t$=t$+a$
t$=RIGHT$(t$,18)
LOCATE 2,21:COLOR 30
PRINT t$
GOTO ChatIn
ChatIn:
IF LOC(1)=0 THEN MouseScan
a$=INPUT$(1,1)
IF a$=CHR$(254)THEN
GOSUB ReceiveMove
GOTO ChatIn
END IF
IF a$=CHR$(91)THEN
PRINT#1,CHR$(226);
GOTO ChatIn
END IF
IF a$=CHR$(20) AND LEN(y$)>0 THEN
a$="":y$=LEFT$(y$,LEN(y$)-1)
IF LEN(Speak$) > 0 THEN Speak$=LEFT$(Speak$,LEN(Speak$)-1)
LOCATE 2,2:COLOR 17
PRINT y$
END IF
IF ASC(a$+CHR$(0))>90 OR ASC(a$+CHR$(0))<32 THEN ChatIn
y$=y$+a$:y$=RIGHT$(y$,18)
IF LEN(Speak$) < 255 THEN Speak$=Speak$+a$
LOCATE 2,2:COLOR 17
PRINT y$
IF RIGHT$(Speak$,4)="... " THEN
talk$ = TRANSLATE$ (LEFT$(Speak$,LEN(Speak$)-4))
Speak$=""
IF SpeakFlag = 1 THEN SAY (talk$),Voice%
END IF
GOTO ChatIn
'--------------------------------------------
ReceiveMove:
Ok=0
Loop3:
re=1:PRINT#1,CHR$(91);
Loop2:
tl=TIMER+5
WHILE TIMER<tl
a$="":IF LOC(1)<>0 THEN a$=INPUT$(1,1)
IF a$<>""THEN tl=TIMER-1
WEND
IF a$=CHR$(254) THEN Loop3
IF a$=CHR$(226) THEN RETURN
cor(re)=ASC(a$+CHR$(0))
cor(re)=cor(re)-32
re=re+1
IF re<6 THEN Loop2
checksum=cor(1)+cor(2)+cor(3)+cor(4)
IF checksum<>cor(5) THEN RecmoveFail
PRINT#1,CHR$(96);
Ok=1
bb(f1,f2) = b(f1,f2)
bb(s1,s2) = b(s1,s2)
s1=cor(1):s2=cor(2):f1=cor(3):f2=cor(4)
GOSUB MovePiece
RETURN
RecmoveFail:
PRINT#1,CHR$(99);
tl=TIMER+5
WHILE TIMER<tl
a$="":IF LOC(1)=0 THEN a$=INPUT$(1,1)
IF a$<>""THEN tl=TIMER-1
WEND
IF a$=CHR$(254)THEN GOTO Loop3
RETURN
'--------------------------------------
SendMove:
IF local = 1 THEN Ok = 1:RETURN
Ok=0:IF s1 = f1 AND s2 = f2 THEN RETURN
sy=9-s1:sx=9-s2:fy=9-f1:fx=9-f2: REM translate co-ordinates
ck=(sy+sx+fy+fx):try=0: REM calculate checksum
Loop4:
tl=TIMER+5
PRINT#1,CHR$(254);: REM transmit send request
REM wait for acknowledge
WHILE tl>TIMER
a$="":IF LOC(1)<>0 THEN a$=INPUT$(1,1)
IF a$<>"" THEN tl=TIMER-1
WEND
IF a$<>"" THEN Loop5
try=try+1
IF try<10 THEN Loop4
IF try=10 THEN RETURN :REM give up after 10 attempts
Loop5:
IF a$<>CHR$(91)THEN Loop4
PRINT#1,CHR$(sy+32);
PRINT#1,CHR$(sx+32);
PRINT#1,CHR$(fy+32);
PRINT#1,CHR$(fx+32);
PRINT#1,CHR$(ck+32);
tl=TIMER+5
WHILE TIMER<tl
a$="":IF LOC(1)=0 THEN a$=INPUT$(1,1)
IF a$<>""THEN tl=TIMER-1
WEND
IF a$<>CHR$(96)THEN Loop4 : REM try again if not sent ok
Ok=1 : RETURN
'-----------------------------------------
CordToGrid: REM - XCORD= XPixel Cordinate
REM - YCORD= YPixel Cordinate
REM - Returns XGRID and YGRID
nongrid=0
IF Xcord < 6 OR Xcord > 199 THEN nongrid=1:RETURN
IF Ycord < 28 OR Ycord > 191 THEN nongrid=1:RETURN
Xcord = Xcord + 17
xgrid = INT (Xcord / 24)
Ycord = Ycord -28
ygrid = INT ((Ycord / 19)+1)
RETURN
'------------------------------------------
GridToCord:
Xcord = -19 + (xgrid * 24)
Ycord = 9 + (ygrid * 19)
RETURN
'------------------------------------------
PlacePiece:
REM N=YGRID
REM M=XGRID
ygrid=n:xgrid=m
GOSUB GridToCord
pn = b(n,m)
IF (xgrid+ygrid)/2 <> INT ((xgrid+ygrid)/2) THEN pn=pn+100
PUT (Xcord,Ycord), piece%(1,cross(pn)), PSET
RETURN
'------------------------------------------
PrintBoard:
FOR n=1 TO 8:
FOR m = 1 TO 8
GOSUB PlacePiece
Skip:
NEXT
NEXT
PUT (267,30),Button%(1,2),PSET
WINDOW CLOSE 4
RETURN
'------------------------------------------
MovePiece:
IF s1 = f1 AND s2 = f2 THEN RETURN
IF b(s1,s2)=0 THEN RETURN
InTransit = b(s1,s2)
n=s1:m=s2
Capture = 0 : IF b(f1,f2) <> 0 THEN Capture = 1
IF SoundFlag = 1 THEN GOSUB Tune1
FOR silly = 1 TO 4
b(s1,s2)=InTransit : GOSUB PlacePiece : GOSUB OneSecDelay
b(s1,s2)=0 : GOSUB PlacePiece : GOSUB OneSecDelay
NEXT
n=f1:m=f2
IF (InTransit = 1 OR InTransit = 11) AND (f1 = 8 OR f1 = 1) THEN GOSUB ElectPawn
FOR silly = 1 TO 3
b(f1,f2) = 0 : GOSUB PlacePiece : GOSUB OneSecDelay
b(f1,f2) = InTransit : GOSUB PlacePiece : GOSUB OneSecDelay
NEXT
IF Capture = 1 AND SoundFlag =1 THEN GOSUB Tune2
IF SoundFlag = 1 THEN GOSUB Tune3
RETURN
OneSecDelay:
Delay = TIMER
WHILE TIMER < Delay + 0.2
WEND
RETURN
'------------------------------------------
LoadPieces:
PieceLoop1:
p = 0
xgrid = 1 : ygrid = 1 : GOSUB PieceLoop2
xgrid = 7 : ygrid = 1 : GOSUB PieceLoop2
xgrid = 3 : ygrid = 1 : GOSUB PieceLoop2
xgrid = 4 : ygrid = 4 : GOSUB PieceLoop2
xgrid = 5 : ygrid = 1 : GOSUB PieceLoop2
xgrid = 2 : ygrid = 2 : GOSUB PieceLoop2
xgrid = 1 : ygrid = 3 : GOSUB PieceLoop2
xgrid = 8 : ygrid = 1 : GOSUB PieceLoop2
xgrid = 2 : ygrid = 1 : GOSUB PieceLoop2
xgrid = 6 : ygrid = 1 : GOSUB PieceLoop2
xgrid = 4 : ygrid = 1 : GOSUB PieceLoop2
xgrid = 5 : ygrid = 4 : GOSUB PieceLoop2
xgrid = 1 : ygrid = 2 : GOSUB PieceLoop2
xgrid = 2 : ygrid = 3 : GOSUB PieceLoop2
xgrid = 8 : ygrid = 8 : GOSUB PieceLoop2
xgrid = 2 : ygrid = 8 : GOSUB PieceLoop2
xgrid = 6 : ygrid = 8 : GOSUB PieceLoop2
xgrid = 4 : ygrid = 8 : GOSUB PieceLoop2
xgrid = 5 : ygrid = 5 : GOSUB PieceLoop2
xgrid = 1 : ygrid = 7 : GOSUB PieceLoop2
xgrid = 1 : ygrid = 3 : GOSUB PieceLoop2
xgrid = 1 : ygrid = 8 : GOSUB PieceLoop2
xgrid = 7 : ygrid = 8 : GOSUB PieceLoop2
xgrid = 3 : ygrid = 8 : GOSUB PieceLoop2
xgrid = 4 : ygrid = 5 : GOSUB PieceLoop2
xgrid = 5 : ygrid = 8 : GOSUB PieceLoop2
xgrid = 2 : ygrid = 7 : GOSUB PieceLoop2
xgrid = 1 : ygrid = 3 : GOSUB PieceLoop2
GET (267,30)-(280,37),Button%(1,1)
GET (267,47)-(280,54),Button%(1,2)
RETURN
PieceLoop2:
p = p + 1
GOSUB GridToCord
x1 = Xcord
y1 = Ycord
x2 = x1+22
y2 = y1+17
GET (x1,y1)-(x2,y2),piece%(1,p)
RETURN
'------------------------------------------
GetOutlines:
FOR n=1 TO 6
OPEN "Piece"+STR$(n) FOR INPUT AS 2
OBJECT.SHAPE n,INPUT$(LOF(2),2)
CLOSE 2
NEXT
RETURN
'------------------------------------------
MouseScan:
IF MoveToMake = 1 THEN MoveToMake = 0 : GOTO SendTheMove
a = MOUSE(0)
IF a < 0 THEN ButtonIsPressed
GOSUB CheckMenu
GOTO Chatout
'------------------------------------------
SetMenu:
MENU 1,0,1,"Project"
MENU 1,1,1,"Establish Connect"
MENU 1,2,1,"Load Game "
MENU 1,3,1,"Save Game "
MENU 1,4,1,"Quit "
MENU 2,0,1,"Options"
MENU 2,1,1,"Be Black "
MENU 2,2,1,"Be White "
MENU 2,3,1,"Reset Board "
MENU 2,4,0,"Modify Board"
MENU 2,5,1,"Sound Off "
MENU 2,6,1,"Speech Off "
MENU 3,0,1,"Info"
MENU 3,1,1,"Authors "
MENU 3,2,1,"More Info "
MENU 3,3,1,"Versions "
MENU 3,4,1,"TeleGames "
MENU 4,0,0," "
RETURN
'------------------------------------------
Initalize:
SoundFlag = 1
SpeakFlag = 1
DIM piece%(183,29)
DIM cross(117)
DIM cascii(90)
DIM Button%(58,2)
RETURN
'------------------------------------------
OpenWindow:
WINDOW 3," TeleChess",(21,50)-(250,165),0,2
RETURN
Closewindow:
WINDOW CLOSE 3
RETURN
'------------------------------------------
CoverScreen:
WINDOW 4,"TeleChess",,0,2
LOCATE 10,2:COLOR 2
PRINT "Please Wait... Working..."
WINDOW OUTPUT 2
RETURN
'------------------------------------------
Clicker:
a=0
WHILE a=0
a=MOUSE(0)
WEND
GOSUB Closewindow
RETURN
'----------------------------------
Tune1:
FOR vol = 255 TO 0 STEP -15
SOUND 90,1,vol,3
SOUND 130,1,vol,2
NEXT
RETURN
Tune2:
FOR vol=12 TO 1 STEP -1
SOUND vol*20,1,255,2
FOR silly = 1 TO 20 : NEXT
SOUND vol*20,1,255,3
NEXT
RETURN
Tune3:
SOUND 500,0.2,255,3
RETURN
'----------------------------------
OppsPressed:
FOR z=1 TO 8:FOR I=1 TO 8
b(z,I)=bb(z,I)
NEXT I:NEXT z
GOSUB CoverScreen
GOSUB PrintBoard
PRINT#1," SYSTEM MESSAGE: OTHER PLAYER HAS PRESSED UNDO... ";
RETURN
'----------------------------------
CheckMenu:
selecta = MENU(0)
IF selecta = 0 THEN RETURN
selectb = MENU(1)
ON selecta GOTO Project,Options,Info
RETURN
Project:
ON selectb GOTO EstablishConnect,LoadGame,SaveGame,Quit
RETURN
EstablishConnect:
IF SoundFlag = 1 THEN GOSUB Tune1
WINDOW 3," TeleChess",(13,68)-(187,148),0,2
COLOR 17,1
PRINT " Please Type In The "
PRINT " Proper Modem Command "
PRINT " To Connect You To "
PRINT " The Other Player "
PRINT " "
COLOR 3
PRINT " EXAMPLE: ATDT (PH#) "
PRINT " ATS0=1 "
PRINT " ATA "
PRINT " "
COLOR 1,17
PRINT " ";
LOCATE 10,1
INPUT "Command:";ModemCommand$
WINDOW CLOSE 3
PRINT#1,ModemCommand$
IF SoundFlag = 1 THEN GOSUB Tune1
RETURN
RETURN
LoadGame:
IF SoundFlag = 1 THEN GOSUB Tune1
WINDOW 3,"Load Game",(10,50)-(260,57),0,2
COLOR 17:PRINT "Path/Filename:";
COLOR 13 : INPUT filename$
IF filename$="" THEN WINDOW CLOSE 3:RETURN
OPEN filename$ FOR INPUT AS 2
INPUT #2,flip
FOR n = 1 TO 8
FOR m = 1 TO 8
INPUT #2,b(n,m)
NEXT
NEXT
CLOSE #2
WINDOW CLOSE 3
GOSUB CoverScreen
GOSUB PrintBoard
IF SoundFlag = 1 THEN GOSUB Tune1
RETURN
SaveGame:
IF SoundFlag = 1 THEN GOSUB Tune1
WINDOW 3,"Save Game",(10,50)-(250,57),0,2
COLOR 17:PRINT "Path/Filename:";
COLOR 13 : INPUT filename$
IF filename$="" THEN WINDOW CLOSE 3:RETURN
OPEN filename$ FOR OUTPUT AS 2
WRITE #2,flip
FOR n = 1 TO 8
FOR m = 1 TO 8
WRITE #2,b(n,m)
NEXT
NEXT
CLOSE #2
PRINT : COLOR 17,1 : LOCATE 1,1 : PRINT "Game Saved... ";
FOR n = 1 TO 2000 : NEXT
WINDOW CLOSE 3
IF SoundFlag = 1 THEN GOSUB Tune1
RETURN
Quit:
SCREEN CLOSE 2
IF SoundFlag = 1 THEN GOSUB Tune1
END
Options:
ON selectb GOTO BeBlack,BeWhite,ResetBoard,ModifyBoard,SoundToggle,TalkToggle
RETURN
BeBlack:
IF SoundFlag = 1 THEN GOSUB Tune1
IF flip = 1 THEN RETURN
flip = 1
GOSUB CoverScreen
GOSUB PieceMemSetup
GOSUB PrintBoard
RETURN
BeWhite:
IF SoundFlag = 1 THEN GOSUB Tune1
IF flip = 0 THEN RETURN
flip = 0
GOSUB CoverScreen
GOSUB PieceMemSetup
GOSUB PrintBoard
RETURN
ResetBoard:
IF SoundFlag = 1 THEN GOSUB Tune1
GOSUB CoverScreen
GOSUB PieceMemSetup
GOSUB PrintBoard
RETURN
ModifyBoard:
IF SoundFlag = 1 THEN GOSUB Tune1
RETURN
SoundToggle:
IF SoundFlag = 0 THEN SoundOn
SoundFlag = 0
MENU 2,5,1,"Sound On "
RETURN
SoundOn:
SoundFlag = 1
MENU 2,5,1,"Sound Off "
RETURN
TalkToggle:
IF SpeakFlag = 1 THEN TurnItOff
SpeakFlag = 1 : Speak$ = TRANSLATE$ ("Ok, I'm back") : SAY (Speak$)
MENU 2,6,1,"Speech Off "
RETURN
TurnItOff:
SpeakFlag = 0 : Speak$ = TRANSLATE$ ("My lips are sealed") : SAY (Speak$)
MENU 2,6,1,"Speech On "
RETURN
Info:
ON selectb GOTO Authors,MoreInfo,Versions,TeleGames
Authors:
IF SoundFlag = 1 THEN GOSUB Tune1
WINDOW 3,"TeleChess",(21,50)-(259,130),0,2
COLOR 25,13
PRINT " Programming: Tom Conroy "
PRINT " Artwork: James Hastings-Trew "
PRINT " "
COLOR 3,13
PRINT " Don't feel obligated to send "
PRINT " money if you use this "
PRINT " program. But, if you do, "
PRINT " we'll say nice things about "
PRINT " you for days! (Honest...) "
PRINT " "
COLOR 17,1
PRINT " [Click To Continue] ";
GOSUB Clicker
IF SoundFlag = 1 THEN GOSUB Tune1
RETURN
Colors:
GOSUB OpenWindow
WIDTH 14
FOR n = 0 TO 31
COLOR n
PRINT n;
NEXT
INPUT a$
GOSUB Closewindow
WIDTH 60
RETURN
MoreInfo:
IF SoundFlag = 1 THEN GOSUB Tune1
WINDOW 3,"TeleChess",(21,42)-(243,162),0,2
COLOR 25,13
PRINT " Please send freeware "
PRINT " donations (If Any) to "
COLOR 30,13
PRINT " "
PRINT " TeleGame Software "
PRINT " Sub PO 37 "
PRINT " Saskatoon, Sask. "
PRINT " S7H 0X0 "
COLOR 1
PRINT " Call At 306-373-0656 "
PRINT " "
COLOR 17,13
PRINT " Please Note: Your freeware "
PRINT " donations will go toward "
PRINT " supporting the authors "
PRINT " Fudrucker's Lunch Fund "
PRINT " "
COLOR 17,1
PRINT " [Click To Continue] ";
GOSUB Clicker
IF SoundFlag = 1 THEN GOSUB Tune1
RETURN
Versions:
IF SoundFlag = 1 THEN GOSUB Tune1
WINDOW 3,"TeleChess",(21,50)-(259,122),0,2
COLOR 25,13
PRINT " This TeleChess is Compatible "
PRINT " with the following versions. "
PRINT " "
COLOR 3,13
PRINT " Commodore 64 - TeleChess 1.5 "
COLOR 4,13
PRINT " Atari 520 ST - TeleChess 1.0 "
COLOR 5,13
PRINT " MS-DOS - TeleChess 1.0 "
COLOR 6,13
PRINT " Macintosh - TeleChess 1.0 "
PRINT " "
COLOR 17,1
PRINT " [Click To Continue] ";
GOSUB Clicker
IF SoundFlag = 1 THEN GOSUB Tune1
RETURN
TeleGames:
IF SoundFlag = 1 THEN GOSUB Tune1
WINDOW 3,"TeleChess",(21,50)-(259,130),0,2
COLOR 25,13
PRINT " Other TeleGames Being "
PRINT " Considered "
PRINT " "
COLOR 3,13
PRINT " TeleGammon - Backgammon "
PRINT " TeleCheckers - Checkers "
PRINT " TeleDeck - Any Card Game "
PRINT " "
PRINT " Feel Free To Suggest More! "
PRINT " "
COLOR 17,1
PRINT " [Click To Continue] ";
GOSUB Clicker
IF SoundFlag = 1 THEN GOSUB Tune1
RETURN
'----------------------------------
ButtonIsPressed:
Xcord = MOUSE(3)
Ycord = MOUSE(4)
GOSUB CordToGrid
IF nongrid <> 0 THEN ClickBox
bb(f1,f2) = b(f1,f2)
bb(s1,s2) = b(s1,s2)
s1 = ygrid
s2 = xgrid
IF b(s1,s2) = 0 THEN Chatout
InTransit = b(s1,s2)
b(s1,s2) = 0
n = s1 : m = s2
GOSUB PlacePiece
GOSUB GetNumber
WHILE MOUSE(0) <1
OBJECT.X Outline,MOUSE(5)-10
OBJECT.Y Outline,MOUSE(6)-7
OBJECT.ON Outline
WEND
Xcord = MOUSE(5)
Ycord = MOUSE(6)
GOSUB CordToGrid
f1 = ygrid
f2 = xgrid
MoveToMake = 1
GOTO ChatIn
SendTheMove:
GOSUB SendMove
OBJECT.OFF :IF Ok=0 THEN n=s1:m=s2:b(s1,s2)=InTransit:GOSUB PlacePiece:GOTO Chatout
IF b(f1,f2)<>0 AND SoundFlag = 1 THEN GOSUB Tune2
IF (InTransit = 1 OR InTransit = 11) AND (f1 = 8 OR f1 = 1) THEN GOSUB ElectPawn
b(f1,f2)=InTransit
n = f1 : m = f2
GOSUB PlacePiece
IF SoundFlag = 1 THEN GOSUB Tune3
GOTO Chatout
'----------------------------------
ClickBox:
IF Xcord < 270 OR Xcord > 277 THEN GOTO Chatout
IF Ycord > 31 AND Ycord < 36 THEN GOSUB Check
IF Ycord > 48 AND Ycord < 53 THEN GOSUB Opps1
IF Ycord > 65 AND Ycord < 70 THEN GOSUB Hurry
IF Ycord > 82 AND Ycord < 87 THEN GOSUB Mate
GOTO Chatout
Check:
PUT (267,30),Button%(1,1),PSET
PRINT#1," CHECK... ";
PUT (267,30),Button%(1,2),PSET
RETURN
Opps1:
PUT (267,47),Button%(1,1),PSET
GOSUB OppsPressed
PUT (267,47),Button%(1,2),PSET
RETURN
Hurry:
PUT (267,64),Button%(1,1),PSET
PRINT#1," ZZZZZ..ZZZZ..ZZZZZ... ";
PUT (267,64),Button%(1,2),PSET
RETURN
Mate:
PUT (267,81),Button%(1,1),PSET
PRINT#1," CHECKMATE... YOU LOSE... "
PUT (267,81),Button%(1,2),PSET
RETURN
'----------------------------------
GetNumber:
Outline = InTransit
IF Outline > 100 THEN Outline = Outline - 100
IF Outline > 10 THEN Outline = Outline - 10
RETURN
'----------------------------------
DefineModeArray:
Voice%(0) = 110
Voice%(1) = 0
Voice%(2) = 170
Voice%(3) = 1
Voice%(4) = 22200
Voice%(5) = 45
Voice%(6) = 10
Voice%(7) = 0
Voice%(8) = 0
RETURN