export waitmouse
export waitkey
export waitjoy

SUB waitkey
' routine waits for any key to be pressed in a Window program
int i,k,key[5]

DO:UNTIL GETKEYSTATE(0x20) = 0 
DO:UNTIL INKEY$ = ""

k = 0
key[1] = 0x20	:'space
key[2] = 0x0D	:'enter
key[3] = 0x08	:'backspace
key[4] = 0x10	:'shift

DO
	for i = 1 to 4
		k = GETKEYSTATE(key[i])
		if (k <> 0) then return
	next i
	WAIT 1
UNTIL inkey$ <> ""

RETURN
ENDSUB


SUB waitmouse
' routine waits for any mouse button to be pressed
DO:UNTIL GETKEYSTATE(1)=0
DO:UNTIL GETKEYSTATE(2)=0
DO:UNTIL GETKEYSTATE(4)=0
DO
WAIT 1
UNTIL GETKEYSTATE(1) or GETKEYSTATE(2) or GETKEYSTATE(4)
RETURN
ENDSUB


SUB waitjoy
' routine waits for a joystick button to be pressed
' UDT for joystick ..
type joyinfo 
  def Xpos:int 
  def Ypos:int 
  def Zpos:int 
  def Button:int 
endtype 
def joy:joyinfo 

declare "winmm",joyGetPos(id:int,n:joyinfo),int 

do
r = joyGetPos(0,joy)
wait 1
until (joy.Button > 0)

RETURN
ENDSUB