GetKey

Returns the ascii code of the first key in the keyboard buffer

Syntax
	KeyPgDeclareDeclare KeyPgFunctionFunction GetKey ( ) KeyPgAsAs KeyPgLongLong

Usage
	result = GetKey

Return Value
	The value of the ascii code returned.

Description
	It returns the ascii code of the first key in the keyboard buffer. The 
	key is removed from the buffer. If no key is present, GetKey waits for 
	it.

	For extended keys (returning two characters), the extended code is 
	returned in the first byte (255), and the scancode for keyboard is 
	returned in the second byte (the third and fourth bytes always being 
	null at least in console mode).

	For FB's built-in functionality of getting keyboard input, see 
	DevRtlInkeyKeyboard Input (Basics).

	WARNING: In graphics mode and depending on the key pressed,   Getkey   
	may not always return the exact same value as in console mode (for a 
	non-extended key, the most significant bit of the ascii code byte may be 
	propagated to the higher 3 bytes of the return value, such as a sign 
	bit).
	For a compatible code of the 2 screen modes, see the example below.

	The key read is not echoed to the screen.

	For a keyword not stopping the program if no key is at the buffer see 
	KeyPgInkeyInkey or KeyPgMultikeyMultiKey.

Example
	Dim As Long foo
	Do
	   foo = GetKey
	   Print "total return: " & foo
	   
	   If( foo > 255 ) Then
	      Print "extended code: " & (foo And &hff)
	      Print "regular code: " & (foo Shr 8)
	   Else
	      Print "regular code: " & (foo And &hff)
	   End If
	   Print 
	Loop Until foo = 27

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Getkey.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgGetmouseGetMouse
	* KeyPgInkeyInkey
	* KeyPgInputnumInput()
	* KeyPgMultikeyMultiKey
	* GfxScancodesKeyboard scancodes
	* DevRtlInkeyKeyboard Input

