home *** CD-ROM | disk | FTP | other *** search
Wrap
{ lowlevel.library interface structures and definitions. } {$I "Include:Utility/TagItem.i"} Type { structure for use with QueryKeys() } KeyQuery = Record kq_KeyCode : WORD; kq_Pressed : Boolean; end; KeyQueryPtr = ^KeyQuery; {***************************************************************************} Const { bits in the return value of GetKey() } LLKB_LSHIFT = 16; LLKB_RSHIFT = 17; LLKB_CAPSLOCK = 18; LLKB_CONTROL = 19; LLKB_LALT = 20; LLKB_RALT = 21; LLKB_LAMIGA = 22; LLKB_RAMIGA = 23; LLKF_LSHIFT = 65536; LLKF_RSHIFT = 131072; LLKF_CAPSLOCK = 262144; LLKF_CONTROL = 524288; LLKF_LALT = 1048576; LLKF_RALT = 2097152; LLKF_LAMIGA = 4194304; LLKF_RAMIGA = 8388608; {***************************************************************************} { Tags for SetJoyPortAttrs() } SJA_Dummy = (TAG_USER+$c00100); SJA_Type = (SJA_Dummy+1); { force type to mouse, joy, game cntrlr } SJA_Reinitialize = (SJA_Dummy+2); { free potgo bits, reset to autosense } { Controller types for SJA_Type tag } SJA_TYPE_AUTOSENSE = 0; SJA_TYPE_GAMECTLR = 1; SJA_TYPE_MOUSE = 2; SJA_TYPE_JOYSTK = 3; {***************************************************************************} { ReadJoyPort() return value definitions } { Port types } JP_TYPE_NOTAVAIL = 0; { port data unavailable } JP_TYPE_GAMECTLR = 268435456; { port has game controller } JP_TYPE_MOUSE = 536870912; { port has mouse } JP_TYPE_JOYSTK = 805306368; { port has joystick } JP_TYPE_UNKNOWN = 1073741824; { port has unknown device } JP_TYPE_MASK = -268435456; { controller type } { Button types, valid for all types except JP_TYPE_NOTAVAIL } JPB_BUTTON_BLUE = 23; { Blue - Stop; Right Mouse } JPB_BUTTON_RED = 22; { Red - Select; Left Mouse; Joystick Fire } JPB_BUTTON_YELLOW = 21; { Yellow - Repeat } JPB_BUTTON_GREEN = 20; { Green - Shuffle } JPB_BUTTON_FORWARD = 19; { Charcoal - Forward } JPB_BUTTON_REVERSE = 18; { Charcoal - Reverse } JPB_BUTTON_PLAY = 17; { Grey - Play/Pause; Middle Mouse } JPF_BUTTON_BLUE = 8388608; JPF_BUTTON_RED = 4194304; JPF_BUTTON_YELLOW = 2097152; JPF_BUTTON_GREEN = 1048576; JPF_BUTTON_FORWARD = 524288; JPF_BUTTON_REVERSE = 262144; JPF_BUTTON_PLAY = 131072; JP_BUTTON_MASK = JPF_BUTTON_BLUE OR JPF_BUTTON_RED OR JPF_BUTTON_YELLOW OR JPF_BUTTON_GREEN OR JPF_BUTTON_FORWARD OR JPF_BUTTON_REVERSE OR JPF_BUTTON_PLAY; { Direction types, valid for JP_TYPE_GAMECTLR and JP_TYPE_JOYSTK } JPB_JOY_UP = 3; JPB_JOY_DOWN = 2; JPB_JOY_LEFT = 1; JPB_JOY_RIGHT = 0; JPF_JOY_UP = 8; JPF_JOY_DOWN = 4; JPF_JOY_LEFT = 2; JPF_JOY_RIGHT = 1; JP_DIRECTION_MASK = JPF_JOY_UP OR JPF_JOY_DOWN OR JPF_JOY_LEFT OR JPF_JOY_RIGHT; { Mouse position reports, valid for JP_TYPE_MOUSE } JP_MHORZ_MASK = 255; { horzizontal position } JP_MVERT_MASK = 65280; { vertical position } JP_MOUSE_MASK = JP_MHORZ_MASK OR JP_MVERT_MASK; { Obsolete ReadJoyPort() definitions, here for source code compatibility only. * Please do NOT use in new code. } JPB_BTN1 = JPB_BUTTON_BLUE ; JPF_BTN1 = JPF_BUTTON_BLUE ; JPB_BTN2 = JPB_BUTTON_RED ; JPF_BTN2 = JPF_BUTTON_RED ; JPB_BTN3 = JPB_BUTTON_YELLOW ; JPF_BTN3 = JPF_BUTTON_YELLOW ; JPB_BTN4 = JPB_BUTTON_GREEN ; JPF_BTN4 = JPF_BUTTON_GREEN ; JPB_BTN5 = JPB_BUTTON_FORWARD; JPF_BTN5 = JPF_BUTTON_FORWARD; JPB_BTN6 = JPB_BUTTON_REVERSE; JPF_BTN6 = JPF_BUTTON_REVERSE; JPB_BTN7 = JPB_BUTTON_PLAY ; JPF_BTN7 = JPF_BUTTON_PLAY ; JPB_UP = JPB_JOY_UP ; JPF_UP = JPF_JOY_UP ; JPB_DOWN = JPB_JOY_DOWN ; JPF_DOWN = JPF_JOY_DOWN ; JPB_LEFT = JPB_JOY_LEFT ; JPF_LEFT = JPF_JOY_LEFT ; JPB_RIGHT = JPB_JOY_RIGHT ; JPF_RIGHT = JPF_JOY_RIGHT ; {***************************************************************************} { Tags for SystemControl() } SCON_Dummy = (TAG_USER+$00C00000); SCON_TakeOverSys = (SCON_Dummy+0); SCON_KillReq = (SCON_Dummy+1); SCON_CDReboot = (SCON_Dummy+2); SCON_StopInput = (SCON_Dummy+3); SCON_AddCreateKeys = (SCON_Dummy+4); SCON_RemCreateKeys = (SCON_Dummy+5); { Reboot control values for use with SCON_CDReboot tag } CDReboot_On = 1; CDReboot_Off = 0; CDReboot_Default = 2; {***************************************************************************} { Rawkey codes returned when using SCON_AddCreateKeys with SystemControl() } RAWKEY_PORT0_BUTTON_BLUE = $72; RAWKEY_PORT0_BUTTON_RED = $78; RAWKEY_PORT0_BUTTON_YELLOW = $77; RAWKEY_PORT0_BUTTON_GREEN = $76; RAWKEY_PORT0_BUTTON_FORWARD = $75; RAWKEY_PORT0_BUTTON_REVERSE = $74; RAWKEY_PORT0_BUTTON_PLAY = $73; RAWKEY_PORT0_JOY_UP = $79; RAWKEY_PORT0_JOY_DOWN = $7A; RAWKEY_PORT0_JOY_LEFT = $7C; RAWKEY_PORT0_JOY_RIGHT = $7B; RAWKEY_PORT1_BUTTON_BLUE = $172; RAWKEY_PORT1_BUTTON_RED = $178; RAWKEY_PORT1_BUTTON_YELLOW = $177; RAWKEY_PORT1_BUTTON_GREEN = $176; RAWKEY_PORT1_BUTTON_FORWARD = $175; RAWKEY_PORT1_BUTTON_REVERSE = $174; RAWKEY_PORT1_BUTTON_PLAY = $173; RAWKEY_PORT1_JOY_UP = $179; RAWKEY_PORT1_JOY_DOWN = $17A; RAWKEY_PORT1_JOY_LEFT = $17C; RAWKEY_PORT1_JOY_RIGHT = $17B; RAWKEY_PORT2_BUTTON_BLUE = $272; RAWKEY_PORT2_BUTTON_RED = $278; RAWKEY_PORT2_BUTTON_YELLOW = $277; RAWKEY_PORT2_BUTTON_GREEN = $276; RAWKEY_PORT2_BUTTON_FORWARD = $275; RAWKEY_PORT2_BUTTON_REVERSE = $274; RAWKEY_PORT2_BUTTON_PLAY = $273; RAWKEY_PORT2_JOY_UP = $279; RAWKEY_PORT2_JOY_DOWN = $27A; RAWKEY_PORT2_JOY_LEFT = $27C; RAWKEY_PORT2_JOY_RIGHT = $27B; RAWKEY_PORT3_BUTTON_BLUE = $372; RAWKEY_PORT3_BUTTON_RED = $378; RAWKEY_PORT3_BUTTON_YELLOW = $377; RAWKEY_PORT3_BUTTON_GREEN = $376; RAWKEY_PORT3_BUTTON_FORWARD = $375; RAWKEY_PORT3_BUTTON_REVERSE = $374; RAWKEY_PORT3_BUTTON_PLAY = $373; RAWKEY_PORT3_JOY_UP = $379; RAWKEY_PORT3_JOY_DOWN = $37A; RAWKEY_PORT3_JOY_LEFT = $37C; RAWKEY_PORT3_JOY_RIGHT = $37B; {***************************************************************************} { Return values for GetLanguageSelection() } LANG_UNKNOWN = 0 ; LANG_AMERICAN = 1 ; { American English } LANG_ENGLISH = 2 ; { British English } LANG_GERMAN = 3 ; LANG_FRENCH = 4 ; LANG_SPANISH = 5 ; LANG_ITALIAN = 6 ; LANG_PORTUGUESE = 7 ; LANG_DANISH = 8 ; LANG_DUTCH = 9 ; LANG_NORWEGIAN = 10; LANG_FINNISH = 11; LANG_SWEDISH = 12; LANG_JAPANESE = 13; LANG_CHINESE = 14; LANG_ARABIC = 15; LANG_GREEK = 16; LANG_HEBREW = 17; LANG_KOREAN = 18; {***************************************************************************} { --- functions in V40 or higher (Release 3.1) --- } { CONTROLLER HANDLING } FUNCTION ReadJoyPort(Port : Integer) : Integer; External; { LANGUAGE HANDLING } FUNCTION GetLanguageSelection : Byte; External; { KEYBOARD HANDLING } FUNCTION GetKey : Integer; External; PROCEDURE QueryKeys(QueryArray : KeyQueryPtr; arraysize : Integer); External; FUNCTION AddKBInt(intRoutine, intData : Address) : Address; External; PROCEDURE RemKBInt(intHandle : Address); External; { SYSTEM HANDLING } FUNCTION SystemControlA(TagList : Address) : Integer; External; { TIMER HANDLING } FUNCTION AddTimerInt(intRoutine, intData : Address) : Address; External; PROCEDURE RemTimerInt(intHandle : Address); External; PROCEDURE StopTimerInt(intHandle : Address); External; PROCEDURE StartTimerInt(intHandle : Address; timeInterval, continuous : Integer); External; FUNCTION ElapsedTime(context : Address) : Integer; External; { VBLANK HANDLING } FUNCTION AddVBlankInt(intRoutine, intData : Address) : Address; External; PROCEDURE RemVBlankInt(intHandle : Address); External; { MORE CONROLLER HANDLING } FUNCTION SetJoyPortAttrsA(PortNumber : Integer; TagList : Address) : Boolean; External;