From cf064190a5e36aa419ff6758d86ccb112cacdf9e Mon Sep 17 00:00:00 2001 From: Bradley Bell Date: Mon, 22 Jan 2001 13:04:45 +0000 Subject: [PATCH] svgalib support --- input/Makefile.am | 17 +-- input/svgalib/include/event.h | 9 ++ input/svgalib/include/key.h | 275 ++++++++++++++++++++++++++++++++++ input/svgalib/include/mouse.h | 130 ++++++++++++++++ 4 files changed, 421 insertions(+), 10 deletions(-) create mode 100644 input/svgalib/include/event.h create mode 100644 input/svgalib/include/key.h create mode 100644 input/svgalib/include/mouse.h diff --git a/input/Makefile.am b/input/Makefile.am index 3fa3e94c..79ac2f00 100644 --- a/input/Makefile.am +++ b/input/Makefile.am @@ -3,17 +3,14 @@ INCLUDES = -I $(top_srcdir)/includes -I $(top_srcdir)/main libinput_a_SOURCES = sdl_event.c sdl_key.c sdl_mouse.c \ ggi_event.c ggi_key.c ggi_mouse.c \ -dos_key.c dos_joyc.c dos_joydefs.c dos_mouse.c\ -linux_joydefs.c linux_joystick.c +dos_key.c dos_joyc.c dos_joydefs.c dos_mouse.c \ +linux_joydefs.c linux_joystick.c \ +svgalib_event.c svgalib_key.c svgalib_mouse.c -if ENV_DJGPP - SUFFIXES = .asm - %.o: %.asm +SUFFIXES = .asm +%.o: %.asm $(NASM) $(NASMFLAGS) $< -o $@ - - - libinput_a_SOURCES += dos_joy2.asm - libinput_a_LIBADD += dos_joy2.o - dos_joyc.c: dos_joy2.o +if ENV_DJGPP +libinput_a_LIBADD += dos_joy2.o endif diff --git a/input/svgalib/include/event.h b/input/svgalib/include/event.h new file mode 100644 index 00000000..1aeaedbd --- /dev/null +++ b/input/svgalib/include/event.h @@ -0,0 +1,9 @@ +// Event header file + +#ifndef _EVENT_H +#define _EVENT_H + +int event_init(); +void event_poll(); + +#endif diff --git a/input/svgalib/include/key.h b/input/svgalib/include/key.h new file mode 100644 index 00000000..b89c94cc --- /dev/null +++ b/input/svgalib/include/key.h @@ -0,0 +1,275 @@ +/* +THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX +SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO +END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A +ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS +IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS +SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE +FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE +CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS +AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. +COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. +*/ +/* + * $Source: /cvs/cvsroot/d2x/input/svgalib/include/key.h,v $ + * $Revision: 1.1 $ + * $Author: bradleyb $ + * $Date: 2001-01-22 13:00:22 $ + * + * Header for keyboard functions + * + * $Log: not supported by cvs2svn $ + * Revision 1.1.1.1 2001/01/19 03:30:15 bradleyb + * Import of d2x-0.0.8 + * + * Revision 1.1.1.1 1999/06/14 22:01:46 donut + * Import of d1x 1.37 source. + * + * Revision 1.19 1994/10/24 13:58:12 john + * Hacked in support for pause key onto code 0x61. + * + * Revision 1.18 1994/10/21 15:17:10 john + * Added KEY_PRINT_SCREEN + * + * Revision 1.17 1994/08/31 12:22:13 john + * Added KEY_DEBUGGED + * + * Revision 1.16 1994/08/24 18:53:50 john + * Made Cyberman read like normal mouse; added dpmi module; moved + * mouse from assembly to c. Made mouse buttons return time_down. + * + * Revision 1.15 1994/08/18 14:56:16 john + * *** empty log message *** + * + * Revision 1.14 1994/08/08 10:43:24 john + * Recorded when a key was pressed for key_inkey_time. + * + * Revision 1.13 1994/06/17 17:17:28 john + * Added keyd_time_last_key_was_pressed or something like that. + * + * Revision 1.12 1994/04/29 12:14:19 john + * Locked all memory used during interrupts so that program + * won't hang when using virtual memory. + * + * Revision 1.11 1994/02/17 15:57:14 john + * Changed key libary to C. + * + * Revision 1.10 1994/01/31 08:34:09 john + * Fixed reversed lshift/rshift keys. + * + * Revision 1.9 1994/01/18 10:58:17 john + * *** empty log message *** + * + * Revision 1.8 1993/10/16 19:24:43 matt + * Added new function key_clear_times() & key_clear_counts() + * + * Revision 1.7 1993/10/15 10:17:09 john + * added keyd_last_key_pressed and released for use with recorder. + * + * Revision 1.6 1993/10/06 16:20:37 john + * fixed down arrow bug + * + * Revision 1.5 1993/10/04 13:26:42 john + * changed the #defines for scan codes. + * + * Revision 1.4 1993/09/28 11:35:20 john + * added key_peekkey + * + * Revision 1.3 1993/09/20 18:36:43 john + * *** empty log message *** + * + * Revision 1.1 1993/07/10 13:10:39 matt + * Initial revision + * + * + */ + +#ifndef _KEY_H +#define _KEY_H + +#include "fix.h" +#include "pstypes.h" +#include // For 'toupper' + +//========================================================================== +// This installs the int9 vector and initializes the keyboard in buffered +// ASCII mode. key_close simply undoes that. +extern void key_init(); +extern void key_close(); + +//========================================================================== +// These are configuration parameters to setup how the buffer works. +// set keyd_buffer_type to 0 for no key buffering. +// set it to 1 and it will buffer scancodes. +extern unsigned char keyd_buffer_type; +extern unsigned char keyd_repeat; // 1=allow repeating, 0=dont allow repeat + +// keyd_editor_mode... 0=game mode, 1=editor mode. +// Editor mode makes key_down_time always return 0 if modifiers are down. +extern unsigned char keyd_editor_mode; + +// Time in seconds when last key was pressed... +extern volatile int keyd_time_when_last_pressed; + +//========================================================================== +// These are the "buffered" keypress routines. Use them by setting the +// "keyd_buffer_type" variable. + +extern void key_putkey (unsigned short); // simulates a keystroke +extern void key_flush(); // Clears the 256 char buffer +extern int key_checkch(); // Returns 1 if a char is waiting +extern int key_getch(); // Gets key if one waiting other waits for one. +extern int key_inkey(); // Gets key if one, other returns 0. +extern int key_inkey_time(fix *time); // Same as inkey, but returns the time the key was pressed down. +extern int key_peekkey(); // Same as inkey, but doesn't remove key from buffer. + +extern unsigned char key_to_ascii(int keycode ); +extern char *key_name(int keycode); // Convert keycode to the name of the key + +extern void key_debug(); // Does an INT3 + +//========================================================================== +// These are the unbuffered routines. Index by the keyboard scancode. + +// Set to 1 if the key is currently down, else 0 +extern volatile unsigned char keyd_pressed[]; +extern volatile unsigned char keyd_last_pressed; +extern volatile unsigned char keyd_last_released; + +// Returns the seconds this key has been down since last call. +extern fix key_down_time(int scancode); + +// Returns number of times key has went from up to down since last call. +extern unsigned int key_down_count(int scancode); + +// Returns number of times key has went from down to up since last call. +extern unsigned int key_up_count(int scancode); + +// Clears the times & counts used by the above functions +// Took out... use key_flush(); +//void key_clear_times(); +//void key_clear_counts(); + +extern char * key_text[256]; + +#define KEY_SHIFTED 0x100 +#define KEY_ALTED 0x200 +#define KEY_CTRLED 0x400 +#define KEY_DEBUGGED 0x800 + +#define KEY_0 11 +#define KEY_1 2 +#define KEY_2 3 +#define KEY_3 4 +#define KEY_4 5 +#define KEY_5 6 +#define KEY_6 7 +#define KEY_7 8 +#define KEY_8 9 +#define KEY_9 10 + +#define KEY_A 30 +#define KEY_B 48 +#define KEY_C 46 +#define KEY_D 32 +#define KEY_E 18 +#define KEY_F 33 +#define KEY_G 34 +#define KEY_H 35 +#define KEY_I 23 +#define KEY_J 36 +#define KEY_K 37 +#define KEY_L 38 +#define KEY_M 50 +#define KEY_N 49 +#define KEY_O 24 +#define KEY_P 25 +#define KEY_Q 16 +#define KEY_R 19 +#define KEY_S 31 +#define KEY_T 20 +#define KEY_U 22 +#define KEY_V 47 +#define KEY_W 17 +#define KEY_X 45 +#define KEY_Y 21 +#define KEY_Z 44 + +#define KEY_MINUS 12 +#define KEY_EQUAL 13 +#define KEY_DIVIDE 43 +#define KEY_SLASH 28 +#define KEY_COMMA 51 +#define KEY_PERIOD 52 +#define KEY_SEMICOL 39 + +#define KEY_LBRACKET 26 +#define KEY_RBRACKET 27 + +#define KEY_RAPOSTRO 40 +#define KEY_LAPOSTRO 41 + +#define KEY_ESC 1 +#define KEY_ENTER 28 +#define KEY_BACKSP 14 +#define KEY_TAB 15 +#define KEY_SPACEBAR 57 + +#define KEY_NUMLOCK 69 +#define KEY_SCROLLOCK 70 +#define KEY_CAPSLOCK 58 + +#define KEY_LSHIFT 42 +#define KEY_RSHIFT 54 + +#define KEY_LALT 56 +#define KEY_RALT 100 + +#define KEY_LCTRL 29 +#define KEY_RCTRL 97 + +#define KEY_F1 59 +#define KEY_F2 60 +#define KEY_F3 61 +#define KEY_F4 62 +#define KEY_F5 63 +#define KEY_F6 64 +#define KEY_F7 65 +#define KEY_F8 66 +#define KEY_F9 67 +#define KEY_F10 68 +#define KEY_F11 87 +#define KEY_F12 88 + +#define KEY_PAD0 82 +#define KEY_PAD1 79 +#define KEY_PAD2 80 +#define KEY_PAD3 81 +#define KEY_PAD4 75 +#define KEY_PAD5 76 +#define KEY_PAD6 77 +#define KEY_PAD7 71 +#define KEY_PAD8 72 +#define KEY_PAD9 73 +#define KEY_PADMINUS 74 +#define KEY_PADPLUS 78 +#define KEY_PADPERIOD 83 +#define KEY_PADDIVIDE 98 +#define KEY_PADMULTIPLY 55 +#define KEY_PADENTER 96 + +#define KEY_INSERT 110 +#define KEY_HOME 102 +#define KEY_PAGEUP 104 +#define KEY_DELETE 111 +#define KEY_END 107 +#define KEY_PAGEDOWN 109 +#define KEY_UP 103 +#define KEY_DOWN 108 +#define KEY_LEFT 105 +#define KEY_RIGHT 106 + +#define KEY_PRINT_SCREEN 99 +#define KEY_PAUSE 119 + +#endif diff --git a/input/svgalib/include/mouse.h b/input/svgalib/include/mouse.h new file mode 100644 index 00000000..2fa94a63 --- /dev/null +++ b/input/svgalib/include/mouse.h @@ -0,0 +1,130 @@ +/* +THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX +SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO +END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A +ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS +IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS +SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE +FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE +CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS +AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE. +COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED. +*/ +/* + * $Source: /cvs/cvsroot/d2x/input/svgalib/include/mouse.h,v $ + * $Revision: 1.1 $ + * $Author: bradleyb $ + * $Date: 2001-01-22 13:00:22 $ + * + * Header for mouse functions + * + * $Log: not supported by cvs2svn $ + * Revision 1.1.1.1 2001/01/19 03:30:15 bradleyb + * Import of d2x-0.0.8 + * + * Revision 1.1.1.1 1999/06/14 22:01:46 donut + * Import of d1x 1.37 source. + * + * Revision 1.10 1995/02/02 10:22:29 john + * Added cyberman init parameter. + * + * Revision 1.9 1994/11/18 23:18:09 john + * Changed some shorts to ints. + * + * Revision 1.8 1994/09/13 12:33:49 john + * Added functions to get down count and state. + * + * Revision 1.7 1994/08/29 20:52:20 john + * Added better cyberman support; also, joystick calibration + * value return funcctiionn, + * + * Revision 1.6 1994/08/24 17:54:35 john + * *** empty log message *** + * + * Revision 1.5 1994/08/24 17:51:43 john + * Added transparent cyberman support + * + * Revision 1.4 1993/07/27 09:32:22 john + * *** empty log message *** + * + * Revision 1.3 1993/07/26 10:46:44 john + * added definition for mouse_set_pos + * + * Revision 1.2 1993/07/22 13:07:59 john + * added header for mousesetlimts + * + * Revision 1.1 1993/07/10 13:10:40 matt + * Initial revision + * + * + */ + +#ifndef MOUSE_H +#define MOUSE_H + +#include "pstypes.h" +#include "fix.h" + +#define MOUSE_MAX_BUTTONS 8 + +#define MB_LEFT 0 +#define MB_RIGHT 1 +#define MB_MIDDLE 2 +#define MB_Z_UP 3 +#define MB_Z_DOWN 4 +#define MB_PITCH_BACKWARD 5 +#define MB_PITCH_FORWARD 6 +#define MB_BANK_LEFT 7 +#define MB_BANK_RIGHT 8 +#define MB_HEAD_LEFT 9 +#define MB_HEAD_RIGHT 10 + +#define MOUSE_LBTN 1 +#define MOUSE_RBTN 2 +#define MOUSE_MBTN 4 + +#undef NOMOUSE +#ifndef NOMOUSE + +//======================================================================== +// Check for mouse driver, reset driver if installed. returns number of +// buttons if driver is present. + +extern int mouse_set_limits( int x1, int y1, int x2, int y2 ); +extern void mouse_flush(); // clears all mice events... + +//======================================================================== +extern void mouse_get_pos( int *x, int *y); +extern void mouse_get_delta( int *dx, int *dy ); +extern int mouse_get_btns(); +extern void mouse_set_pos( int x, int y); +extern void mouse_get_cyberman_pos( int *x, int *y ); + +// Returns how long this button has been down since last call. +extern fix mouse_button_down_time(int button); + +// Returns how many times this button has went down since last call. +extern int mouse_button_down_count(int button); + +// Returns 1 if this button is currently down +extern int mouse_button_state(int button); + +#else +// 'Neutered' functions... :-) +#define mouse_init(a) -1 +#define mouse_set_limits(a,b,c,d) -1 +#define mouse_flush() +#define mouse_close() +#define mouse_get_pos(a,b) +#define mouse_get_delta(a,b) +#define mouse_get_btns() 0 +#define mouse_set_pos(a,b) +#define mouse_get_cyberman_pos(a,b) +#define mouse_button_down_time(a) 0 +#define mouse_button_down_count(a) 0 +#define mouse_button_state(a) 0 + +#endif + +#endif + -- 2.39.2