X-Git-Url: https://git.artsoft.org/?p=rocksndiamonds.git;a=blobdiff_plain;f=src%2Fmsdos.h;h=508bb84463a5970dbbea345bc2aa392da7f1cd79;hp=c3357a65ca16c02a21f9d46621e22a4c247dcf20;hb=3ae3dff29ac1a6022b1e5af414ba2c99391148c8;hpb=4dcd7afc3645fa20c7868263eb09764e68240acd diff --git a/src/msdos.h b/src/msdos.h index c3357a65..508bb844 100644 --- a/src/msdos.h +++ b/src/msdos.h @@ -12,239 +12,438 @@ * msdos.h * ***********************************************************/ -#ifndef XPM_INCLUDE_FILE -#define XPM_INCLUDE_FILE +#include +#include + +/* allegro defines TRUE as -1 */ +#ifdef TRUE +#undef TRUE +#undef FALSE #endif -#define XRES 800 -#define YRES 600 +#define TRUE 1 +#define FALSE 0 -#define TRUE 1 -#define FALSE 0 +#define XRES 800 +#define YRES 600 -#include -#include +/* additional Allegro keyboard mapping */ -// Allegro keyboard mapping - -#define OSD_KEY_ESC 1 /* keyboard scan codes */ -#define OSD_KEY_1 2 /* (courtesy of allegro.h) */ -#define OSD_KEY_2 3 -#define OSD_KEY_3 4 -#define OSD_KEY_4 5 -#define OSD_KEY_5 6 -#define OSD_KEY_6 7 -#define OSD_KEY_7 8 -#define OSD_KEY_8 9 -#define OSD_KEY_9 10 -#define OSD_KEY_0 11 -#define OSD_KEY_MINUS 12 -#define OSD_KEY_EQUALS 13 -#define OSD_KEY_BACKSPACE 14 -#define OSD_KEY_TAB 15 -#define OSD_KEY_Q 16 -#define OSD_KEY_W 17 -#define OSD_KEY_E 18 -#define OSD_KEY_R 19 -#define OSD_KEY_T 20 -#define OSD_KEY_Y 21 -#define OSD_KEY_U 22 -#define OSD_KEY_I 23 -#define OSD_KEY_O 24 -#define OSD_KEY_P 25 -#define OSD_KEY_OPENBRACE 26 -#define OSD_KEY_CLOSEBRACE 27 -#define OSD_KEY_ENTER 28 -#define OSD_KEY_LCONTROL 29 -#define OSD_KEY_A 30 -#define OSD_KEY_S 31 -#define OSD_KEY_D 32 -#define OSD_KEY_F 33 -#define OSD_KEY_G 34 -#define OSD_KEY_H 35 -#define OSD_KEY_J 36 -#define OSD_KEY_K 37 -#define OSD_KEY_L 38 -#define OSD_KEY_COLON 39 -#define OSD_KEY_QUOTE 40 -#define OSD_KEY_TILDE 41 -#define OSD_KEY_LSHIFT 42 -/* 43 */ -#define OSD_KEY_Z 44 -#define OSD_KEY_X 45 -#define OSD_KEY_C 46 -#define OSD_KEY_V 47 -#define OSD_KEY_B 48 -#define OSD_KEY_N 49 -#define OSD_KEY_M 50 -#define OSD_KEY_COMMA 51 -#define OSD_KEY_STOP 52 -#define OSD_KEY_SLASH 53 -#define OSD_KEY_RSHIFT 54 -#define OSD_KEY_ASTERISK 55 -#define OSD_KEY_ALT 56 -#define OSD_KEY_SPACE 57 -#define OSD_KEY_CAPSLOCK 58 -#define OSD_KEY_F1 59 -#define OSD_KEY_F2 60 -#define OSD_KEY_F3 61 -#define OSD_KEY_F4 62 -#define OSD_KEY_F5 63 -#define OSD_KEY_F6 64 -#define OSD_KEY_F7 65 -#define OSD_KEY_F8 66 -#define OSD_KEY_F9 67 -#define OSD_KEY_F10 68 -#define OSD_KEY_NUMLOCK 69 -#define OSD_KEY_SCRLOCK 70 -#define OSD_KEY_HOME 71 -#define OSD_KEY_UP 72 -#define OSD_KEY_PGUP 73 -#define OSD_KEY_MINUS_PAD 74 -#define OSD_KEY_LEFT 75 -#define OSD_KEY_5_PAD 76 -#define OSD_KEY_RIGHT 77 -#define OSD_KEY_PLUS_PAD 78 -#define OSD_KEY_END 79 -#define OSD_KEY_DOWN 80 -#define OSD_KEY_PGDN 81 -#define OSD_KEY_INSERT 82 -#define OSD_KEY_DEL 83 -#define OSD_KEY_RCONTROL 84 /* different from Allegro */ -#define OSD_KEY_ALTGR 85 /* different from Allegro */ -/* 86 */ -#define OSD_KEY_F11 87 -#define OSD_KEY_F12 88 -#define OSD_KEY_COMMAND 89 -#define OSD_KEY_OPTION 90 -/* 91 - 100 */ /* The following are all undefined in Allegro */ -#define OSD_KEY_1_PAD 101 -#define OSD_KEY_2_PAD 102 -#define OSD_KEY_3_PAD 103 -#define OSD_KEY_4_PAD 104 -/* 105 */ -#define OSD_KEY_6_PAD 106 -#define OSD_KEY_7_PAD 107 -#define OSD_KEY_8_PAD 108 -#define OSD_KEY_9_PAD 109 -#define OSD_KEY_0_PAD 110 -#define OSD_KEY_STOP_PAD 111 -#define OSD_KEY_EQUALS_PAD 112 -#define OSD_KEY_SLASH_PAD 113 -#define OSD_KEY_ASTER_PAD 114 -#define OSD_KEY_ENTER_PAD 115 - -#define OSD_MAX_KEY 115 - -// X11 keyboard mapping - -#define XK_KP_Enter OSD_KEY_ENTER_PAD -#define XK_KP_0 OSD_KEY_0_PAD -#define XK_KP_1 OSD_KEY_1_PAD -#define XK_KP_2 OSD_KEY_2_PAD -#define XK_KP_3 OSD_KEY_3_PAD -#define XK_KP_4 OSD_KEY_4_PAD -#define XK_KP_6 OSD_KEY_6_PAD -#define XK_KP_7 OSD_KEY_7_PAD -#define XK_KP_8 OSD_KEY_8_PAD -#define XK_KP_9 OSD_KEY_9_PAD +#define NEW_KEY_BACKSLASH 86 +#define NEW_KEY_1_PAD 101 +#define NEW_KEY_2_PAD 102 +#define NEW_KEY_3_PAD 103 +#define NEW_KEY_4_PAD 104 +#define NEW_KEY_5_PAD 105 +#define NEW_KEY_6_PAD 106 +#define NEW_KEY_7_PAD 107 +#define NEW_KEY_8_PAD 108 +#define NEW_KEY_9_PAD 109 +#define NEW_KEY_0_PAD 110 +#define NEW_KEY_STOP_PAD 111 +#define NEW_KEY_EQUALS_PAD 112 +#define NEW_KEY_SLASH_PAD 113 +#define NEW_KEY_ASTERISK_PAD 114 +#define NEW_KEY_ENTER_PAD 115 + +/* X11 keyboard mapping (from 'keysymdef.h') */ + +#define XK_VoidSymbol 0xFFFFFF /* void symbol */ + +/* + * TTY Functions, cleverly chosen to map to ascii, for convenience of + * programming, but could have been arbitrary (at the cost of lookup + * tables in client code. + */ + +#define XK_BackSpace 0xFF08 /* back space, back char */ +#define XK_Tab 0xFF09 +#define XK_Linefeed 0xFF0A /* Linefeed, LF */ +#define XK_Clear 0xFF0B +#define XK_Return 0xFF0D /* Return, enter */ +#define XK_Pause 0xFF13 /* Pause, hold */ +#define XK_Scroll_Lock 0xFF14 +#define XK_Sys_Req 0xFF15 +#define XK_Escape 0xFF1B +#define XK_Delete 0xFFFF /* Delete, rubout */ + +/* International & multi-key character composition */ + +#define XK_Multi_key 0xFF20 /* Multi-key character compose */ +#define XK_SingleCandidate 0xFF3C +#define XK_MultipleCandidate 0xFF3D +#define XK_PreviousCandidate 0xFF3E + +/* Cursor control & motion */ + +#define XK_Home 0xFF50 +#define XK_Left 0xFF51 /* Move left, left arrow */ +#define XK_Up 0xFF52 /* Move up, up arrow */ +#define XK_Right 0xFF53 /* Move right, right arrow */ +#define XK_Down 0xFF54 /* Move down, down arrow */ +#define XK_Prior 0xFF55 /* Prior, previous */ +#define XK_Page_Up 0xFF55 +#define XK_Next 0xFF56 /* Next */ +#define XK_Page_Down 0xFF56 +#define XK_End 0xFF57 /* EOL */ +#define XK_Begin 0xFF58 /* BOL */ + +/* Misc Functions */ + +#define XK_Select 0xFF60 /* Select, mark */ +#define XK_Print 0xFF61 +#define XK_Execute 0xFF62 /* Execute, run, do */ +#define XK_Insert 0xFF63 /* Insert, insert here */ +#define XK_Undo 0xFF65 /* Undo, oops */ +#define XK_Redo 0xFF66 /* redo, again */ +#define XK_Menu 0xFF67 +#define XK_Find 0xFF68 /* Find, search */ +#define XK_Cancel 0xFF69 /* Cancel, stop, abort, exit */ +#define XK_Help 0xFF6A /* Help */ +#define XK_Break 0xFF6B +#define XK_Mode_switch 0xFF7E /* Character set switch */ +#define XK_script_switch 0xFF7E /* Alias for mode_switch */ +#define XK_Num_Lock 0xFF7F + +/* Keypad Functions, keypad numbers cleverly chosen to map to ascii */ + +#define XK_KP_Space 0xFF80 /* space */ +#define XK_KP_Tab 0xFF89 +#define XK_KP_Enter 0xFF8D /* enter */ +#define XK_KP_F1 0xFF91 /* PF1, KP_A, ... */ +#define XK_KP_F2 0xFF92 +#define XK_KP_F3 0xFF93 +#define XK_KP_F4 0xFF94 +#define XK_KP_Home 0xFF95 +#define XK_KP_Left 0xFF96 +#define XK_KP_Up 0xFF97 +#define XK_KP_Right 0xFF98 +#define XK_KP_Down 0xFF99 +#define XK_KP_Prior 0xFF9A +#define XK_KP_Page_Up 0xFF9A +#define XK_KP_Next 0xFF9B +#define XK_KP_Page_Down 0xFF9B +#define XK_KP_End 0xFF9C +#define XK_KP_Begin 0xFF9D +#define XK_KP_Insert 0xFF9E +#define XK_KP_Delete 0xFF9F +#define XK_KP_Equal 0xFFBD /* equals */ +#define XK_KP_Multiply 0xFFAA +#define XK_KP_Add 0xFFAB +#define XK_KP_Separator 0xFFAC /* separator, often comma */ +#define XK_KP_Subtract 0xFFAD +#define XK_KP_Decimal 0xFFAE +#define XK_KP_Divide 0xFFAF + +#define XK_KP_0 0xFFB0 +#define XK_KP_1 0xFFB1 +#define XK_KP_2 0xFFB2 +#define XK_KP_3 0xFFB3 +#define XK_KP_4 0xFFB4 +#define XK_KP_5 0xFFB5 +#define XK_KP_6 0xFFB6 +#define XK_KP_7 0xFFB7 +#define XK_KP_8 0xFFB8 +#define XK_KP_9 0xFFB9 + /* -#define XK_KP_Home OSD_KEY_7_PAD -#define XK_KP_Page_Up OSD_KEY_9_PAD -#define XK_KP_Page_Down OSD_KEY_3_PAD -#define XK_KP_End OSD_KEY_1_PAD -#define XK_KP_Left OSD_KEY_4_PAD -#define XK_KP_Up OSD_KEY_8_PAD -#define XK_KP_Right OSD_KEY_6_PAD -#define XK_KP_Down OSD_KEY_2_PAD -*/ -#define XK_0 OSD_KEY_1 -#define XK_1 OSD_KEY_2 -#define XK_2 OSD_KEY_3 -#define XK_3 OSD_KEY_4 -#define XK_4 OSD_KEY_5 -#define XK_5 OSD_KEY_6 -#define XK_6 OSD_KEY_7 -#define XK_7 OSD_KEY_8 -#define XK_8 OSD_KEY_9 -#define XK_9 OSD_KEY_0 -#define XK_A OSD_KEY_A -#define XK_B OSD_KEY_B -#define XK_C OSD_KEY_C -#define XK_D OSD_KEY_D -#define XK_E OSD_KEY_E -#define XK_F OSD_KEY_F -#define XK_G OSD_KEY_G -#define XK_H OSD_KEY_H -#define XK_I OSD_KEY_I -#define XK_J OSD_KEY_J -#define XK_K OSD_KEY_K -#define XK_L OSD_KEY_L -#define XK_M OSD_KEY_M -#define XK_N OSD_KEY_N -#define XK_O OSD_KEY_O -#define XK_P OSD_KEY_P -#define XK_Q OSD_KEY_Q -#define XK_R OSD_KEY_R -#define XK_S OSD_KEY_S -#define XK_T OSD_KEY_T -#define XK_U OSD_KEY_U -#define XK_V OSD_KEY_V -#define XK_W OSD_KEY_W -#define XK_X OSD_KEY_X -#define XK_Y OSD_KEY_Y -#define XK_Z OSD_KEY_Z -#define XK_a OSD_KEY_A -#define XK_b OSD_KEY_B -#define XK_c OSD_KEY_C -#define XK_d OSD_KEY_D -#define XK_e OSD_KEY_E -#define XK_f OSD_KEY_F -#define XK_g OSD_KEY_G -#define XK_h OSD_KEY_H -#define XK_i OSD_KEY_I -#define XK_j OSD_KEY_J -#define XK_k OSD_KEY_K -#define XK_l OSD_KEY_L -#define XK_m OSD_KEY_M -#define XK_n OSD_KEY_N -#define XK_o OSD_KEY_O -#define XK_p OSD_KEY_P -#define XK_q OSD_KEY_Q -#define XK_r OSD_KEY_R -#define XK_s OSD_KEY_S -#define XK_t OSD_KEY_T -#define XK_u OSD_KEY_U -#define XK_v OSD_KEY_V -#define XK_w OSD_KEY_W -#define XK_x OSD_KEY_X -#define XK_y OSD_KEY_Y -#define XK_z OSD_KEY_Z -#define XK_Return OSD_KEY_ENTER -#define XK_Escape OSD_KEY_ESC -#define XK_Shift_L OSD_KEY_LSHIFT -#define XK_Shift_R OSD_KEY_RSHIFT -#define XK_Left OSD_KEY_LEFT -#define XK_Up OSD_KEY_UP -#define XK_Right OSD_KEY_RIGHT -#define XK_Down OSD_KEY_DOWN -#define XK_BackSpace OSD_KEY_BACKSPACE -#define XK_Delete OSD_KEY_DEL -#define XK_Space OSD_KEY_SPACE -#define XK_F12 OSD_KEY_F12 -#define XK_F11 OSD_KEY_F11 -#define XK_F10 OSD_KEY_F10 - -#define MOUSE_FILENAME "graphics\\mouse.gif" + * Auxilliary Functions; note the duplicate definitions for left and right + * function keys; Sun keyboards and a few other manufactures have such + * function key groups on the left and/or right sides of the keyboard. + * We've not found a keyboard with more than 35 function keys total. + */ + +#define XK_F1 0xFFBE +#define XK_F2 0xFFBF +#define XK_F3 0xFFC0 +#define XK_F4 0xFFC1 +#define XK_F5 0xFFC2 +#define XK_F6 0xFFC3 +#define XK_F7 0xFFC4 +#define XK_F8 0xFFC5 +#define XK_F9 0xFFC6 +#define XK_F10 0xFFC7 +#define XK_F11 0xFFC8 +#define XK_L1 0xFFC8 +#define XK_F12 0xFFC9 +#define XK_L2 0xFFC9 +#define XK_F13 0xFFCA +#define XK_L3 0xFFCA +#define XK_F14 0xFFCB +#define XK_L4 0xFFCB +#define XK_F15 0xFFCC +#define XK_L5 0xFFCC +#define XK_F16 0xFFCD +#define XK_L6 0xFFCD +#define XK_F17 0xFFCE +#define XK_L7 0xFFCE +#define XK_F18 0xFFCF +#define XK_L8 0xFFCF +#define XK_F19 0xFFD0 +#define XK_L9 0xFFD0 +#define XK_F20 0xFFD1 +#define XK_L10 0xFFD1 +#define XK_F21 0xFFD2 +#define XK_R1 0xFFD2 +#define XK_F22 0xFFD3 +#define XK_R2 0xFFD3 +#define XK_F23 0xFFD4 +#define XK_R3 0xFFD4 +#define XK_F24 0xFFD5 +#define XK_R4 0xFFD5 +#define XK_F25 0xFFD6 +#define XK_R5 0xFFD6 +#define XK_F26 0xFFD7 +#define XK_R6 0xFFD7 +#define XK_F27 0xFFD8 +#define XK_R7 0xFFD8 +#define XK_F28 0xFFD9 +#define XK_R8 0xFFD9 +#define XK_F29 0xFFDA +#define XK_R9 0xFFDA +#define XK_F30 0xFFDB +#define XK_R10 0xFFDB +#define XK_F31 0xFFDC +#define XK_R11 0xFFDC +#define XK_F32 0xFFDD +#define XK_R12 0xFFDD +#define XK_F33 0xFFDE +#define XK_R13 0xFFDE +#define XK_F34 0xFFDF +#define XK_R14 0xFFDF +#define XK_F35 0xFFE0 +#define XK_R15 0xFFE0 + +/* Modifiers */ + +#define XK_Shift_L 0xFFE1 /* Left shift */ +#define XK_Shift_R 0xFFE2 /* Right shift */ +#define XK_Control_L 0xFFE3 /* Left control */ +#define XK_Control_R 0xFFE4 /* Right control */ +#define XK_Caps_Lock 0xFFE5 /* Caps lock */ +#define XK_Shift_Lock 0xFFE6 /* Shift lock */ + +#define XK_Meta_L 0xFFE7 /* Left meta */ +#define XK_Meta_R 0xFFE8 /* Right meta */ +#define XK_Alt_L 0xFFE9 /* Left alt */ +#define XK_Alt_R 0xFFEA /* Right alt */ +#define XK_Super_L 0xFFEB /* Left super */ +#define XK_Super_R 0xFFEC /* Right super */ +#define XK_Hyper_L 0xFFED /* Left hyper */ +#define XK_Hyper_R 0xFFEE /* Right hyper */ + +/* + * Latin 1 + * Byte 3 = 0 + */ + +#define XK_space 0x020 +#define XK_exclam 0x021 +#define XK_quotedbl 0x022 +#define XK_numbersign 0x023 +#define XK_dollar 0x024 +#define XK_percent 0x025 +#define XK_ampersand 0x026 +#define XK_apostrophe 0x027 +#define XK_quoteright 0x027 /* deprecated */ +#define XK_parenleft 0x028 +#define XK_parenright 0x029 +#define XK_asterisk 0x02a +#define XK_plus 0x02b +#define XK_comma 0x02c +#define XK_minus 0x02d +#define XK_period 0x02e +#define XK_slash 0x02f +#define XK_0 0x030 +#define XK_1 0x031 +#define XK_2 0x032 +#define XK_3 0x033 +#define XK_4 0x034 +#define XK_5 0x035 +#define XK_6 0x036 +#define XK_7 0x037 +#define XK_8 0x038 +#define XK_9 0x039 +#define XK_colon 0x03a +#define XK_semicolon 0x03b +#define XK_less 0x03c +#define XK_equal 0x03d +#define XK_greater 0x03e +#define XK_question 0x03f +#define XK_at 0x040 +#define XK_A 0x041 +#define XK_B 0x042 +#define XK_C 0x043 +#define XK_D 0x044 +#define XK_E 0x045 +#define XK_F 0x046 +#define XK_G 0x047 +#define XK_H 0x048 +#define XK_I 0x049 +#define XK_J 0x04a +#define XK_K 0x04b +#define XK_L 0x04c +#define XK_M 0x04d +#define XK_N 0x04e +#define XK_O 0x04f +#define XK_P 0x050 +#define XK_Q 0x051 +#define XK_R 0x052 +#define XK_S 0x053 +#define XK_T 0x054 +#define XK_U 0x055 +#define XK_V 0x056 +#define XK_W 0x057 +#define XK_X 0x058 +#define XK_Y 0x059 +#define XK_Z 0x05a +#define XK_bracketleft 0x05b +#define XK_backslash 0x05c +#define XK_bracketright 0x05d +#define XK_asciicircum 0x05e +#define XK_underscore 0x05f +#define XK_grave 0x060 +#define XK_quoteleft 0x060 /* deprecated */ +#define XK_a 0x061 +#define XK_b 0x062 +#define XK_c 0x063 +#define XK_d 0x064 +#define XK_e 0x065 +#define XK_f 0x066 +#define XK_g 0x067 +#define XK_h 0x068 +#define XK_i 0x069 +#define XK_j 0x06a +#define XK_k 0x06b +#define XK_l 0x06c +#define XK_m 0x06d +#define XK_n 0x06e +#define XK_o 0x06f +#define XK_p 0x070 +#define XK_q 0x071 +#define XK_r 0x072 +#define XK_s 0x073 +#define XK_t 0x074 +#define XK_u 0x075 +#define XK_v 0x076 +#define XK_w 0x077 +#define XK_x 0x078 +#define XK_y 0x079 +#define XK_z 0x07a +#define XK_braceleft 0x07b +#define XK_bar 0x07c +#define XK_braceright 0x07d +#define XK_asciitilde 0x07e + +#define XK_nobreakspace 0x0a0 +#define XK_exclamdown 0x0a1 +#define XK_cent 0x0a2 +#define XK_sterling 0x0a3 +#define XK_currency 0x0a4 +#define XK_yen 0x0a5 +#define XK_brokenbar 0x0a6 +#define XK_section 0x0a7 +#define XK_diaeresis 0x0a8 +#define XK_copyright 0x0a9 +#define XK_ordfeminine 0x0aa +#define XK_guillemotleft 0x0ab /* left angle quotation mark */ +#define XK_notsign 0x0ac +#define XK_hyphen 0x0ad +#define XK_registered 0x0ae +#define XK_macron 0x0af +#define XK_degree 0x0b0 +#define XK_plusminus 0x0b1 +#define XK_twosuperior 0x0b2 +#define XK_threesuperior 0x0b3 +#define XK_acute 0x0b4 +#define XK_mu 0x0b5 +#define XK_paragraph 0x0b6 +#define XK_periodcentered 0x0b7 +#define XK_cedilla 0x0b8 +#define XK_onesuperior 0x0b9 +#define XK_masculine 0x0ba +#define XK_guillemotright 0x0bb /* right angle quotation mark */ +#define XK_onequarter 0x0bc +#define XK_onehalf 0x0bd +#define XK_threequarters 0x0be +#define XK_questiondown 0x0bf +#define XK_Agrave 0x0c0 +#define XK_Aacute 0x0c1 +#define XK_Acircumflex 0x0c2 +#define XK_Atilde 0x0c3 +#define XK_Adiaeresis 0x0c4 +#define XK_Aring 0x0c5 +#define XK_AE 0x0c6 +#define XK_Ccedilla 0x0c7 +#define XK_Egrave 0x0c8 +#define XK_Eacute 0x0c9 +#define XK_Ecircumflex 0x0ca +#define XK_Ediaeresis 0x0cb +#define XK_Igrave 0x0cc +#define XK_Iacute 0x0cd +#define XK_Icircumflex 0x0ce +#define XK_Idiaeresis 0x0cf +#define XK_ETH 0x0d0 +#define XK_Eth 0x0d0 /* deprecated */ +#define XK_Ntilde 0x0d1 +#define XK_Ograve 0x0d2 +#define XK_Oacute 0x0d3 +#define XK_Ocircumflex 0x0d4 +#define XK_Otilde 0x0d5 +#define XK_Odiaeresis 0x0d6 +#define XK_multiply 0x0d7 +#define XK_Ooblique 0x0d8 +#define XK_Ugrave 0x0d9 +#define XK_Uacute 0x0da +#define XK_Ucircumflex 0x0db +#define XK_Udiaeresis 0x0dc +#define XK_Yacute 0x0dd +#define XK_THORN 0x0de +#define XK_Thorn 0x0de /* deprecated */ +#define XK_ssharp 0x0df +#define XK_agrave 0x0e0 +#define XK_aacute 0x0e1 +#define XK_acircumflex 0x0e2 +#define XK_atilde 0x0e3 +#define XK_adiaeresis 0x0e4 +#define XK_aring 0x0e5 +#define XK_ae 0x0e6 +#define XK_ccedilla 0x0e7 +#define XK_egrave 0x0e8 +#define XK_eacute 0x0e9 +#define XK_ecircumflex 0x0ea +#define XK_ediaeresis 0x0eb +#define XK_igrave 0x0ec +#define XK_iacute 0x0ed +#define XK_icircumflex 0x0ee +#define XK_idiaeresis 0x0ef +#define XK_eth 0x0f0 +#define XK_ntilde 0x0f1 +#define XK_ograve 0x0f2 +#define XK_oacute 0x0f3 +#define XK_ocircumflex 0x0f4 +#define XK_otilde 0x0f5 +#define XK_odiaeresis 0x0f6 +#define XK_division 0x0f7 +#define XK_oslash 0x0f8 +#define XK_ugrave 0x0f9 +#define XK_uacute 0x0fa +#define XK_ucircumflex 0x0fb +#define XK_udiaeresis 0x0fc +#define XK_yacute 0x0fd +#define XK_thorn 0x0fe +#define XK_ydiaeresis 0x0ff + +/* end of X11 keyboard mapping */ + +#define MOUSE_FILENAME "mouse.pcx" +#define JOYSTICK_FILENAME "joystick.cnf" + #define screen myscreen #define XFlush(a) -#define XSync(a,b) -#define XSetClipOrigin(a,b,c,d) #define XGetImage(a,b,c,d,e,f,g,h) ((XImage *) NULL) -#define XAutoRepeatOn(a) -#define XAutoRepeatOff(a) #define XDisplayName(a) ((char *) NULL) #define XFreeColors(a,b,c,d,e) #define XpmFreeAttributes(a) @@ -252,24 +451,24 @@ #define XDefaultDepth(a,b) (8) #define XSetWMProperties(a,b,c,d,e,f,g,h,i) -#define MAX_EVENT_BUFFER 256 +#define MAX_EVENT_BUFFER 256 +#define MAX_SCANCODES 128 -#define Status int -#define Bool int -#define True 1 -#define False 0 +#define True 1 +#define False 0 +#define None 0L -#define DUMMY_FILE (void*) -1 -#define DUMMY_MASK -1 +#define DUMMY_FILE ((void *) -1) +#define DUMMY_MASK (-1) -#define KeyPressMask (1L<<0) -#define KeyReleaseMask (1L<<1) -#define ButtonPressMask (1L<<2) -#define ButtonReleaseMask (1L<<3) -#define ButtonMotionMask (1L<<13) -#define ExposureMask (1L<<15) -#define StructureNotifyMask (1L<<17) -#define FocusChangeMask (1L<<21) +#define KeyPressMask (1L << 0) +#define KeyReleaseMask (1L << 1) +#define ButtonPressMask (1L << 2) +#define ButtonReleaseMask (1L << 3) +#define ButtonMotionMask (1L << 13) +#define ExposureMask (1L << 15) +#define StructureNotifyMask (1L << 17) +#define FocusChangeMask (1L << 21) #define KeyPress 2 #define KeyRelease 3 @@ -281,27 +480,36 @@ #define Expose 12 #define UnmapNotify 18 #define MapNotify 19 +#define ClientMessage 33 -#define GCForeground (1L<<2) -#define GCBackground (1L<<3) -#define GCGraphicsExposures (1L<<16) -#define GCClipMask (1L<<19) +#define GCForeground (1L << 2) +#define GCBackground (1L << 3) +#define GCGraphicsExposures (1L << 16) +#define GCClipMask (1L << 19) -#define NormalState 1 /* most applications want to start this way */ +#define NormalState 1 /* most applications want to start this way */ #define InputHint (1L << 0) #define StateHint (1L << 1) #define IconPixmapHint (1L << 2) #define IconMaskHint (1L << 5) -#define PSize (1L << 3) /* program specified size */ -#define PMinSize (1L << 4) /* program specified minimum size */ -#define PMaxSize (1L << 5) /* program specified maximum size */ +#define PSize (1L << 3) /* program specified size */ +#define PMinSize (1L << 4) /* program specified minimum size */ +#define PMaxSize (1L << 5) /* program specified maximum size */ + +#define XpmSuccess 0 +#define XpmOpenFailed -1 +#define XpmFileInvalid -2 +#define XpmNoMemory -3 +#define XpmColorFailed -4 -#define XpmSuccess 0 -#define XpmOpenFailed -1 -#define XpmFileInvalid -2 -#define XpmNoMemory -3 -#define XpmColorFailed -4 -#define XpmCloseness (1L<<12) +#define XpmCloseness (1L << 12) + +#define PCX_Success 0 +#define PCX_OpenFailed -1 +#define PCX_ReadFailed -2 +#define PCX_FileInvalid -3 +#define PCX_NoMemory -4 +#define PCX_ColorFailed -5 #define BitmapSuccess 0 #define BitmapOpenFailed 1 @@ -310,16 +518,21 @@ #define ZPixmap 2 /* depth == drawable depth */ -#define DefaultScreen(dpy) (((_XPrivDisplay)dpy)->default_screen) -#define DefaultColormap(dpy, scr)(ScreenOfDisplay(dpy,scr)->cmap) -#define ScreenOfDisplay(dpy, scr)(&((_XPrivDisplay)dpy)->screens[scr]) -#define BlackPixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->black_pixel) -#define WhitePixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->white_pixel) -#define RootWindow(dpy, scr) (ScreenOfDisplay(dpy,scr)->root) -#define AllPlanes ((unsigned long)~0L) +#define DefaultScreen(dpy) (((_XPrivDisplay)dpy)->default_screen) +#define DefaultColormap(dpy, scr) (ScreenOfDisplay(dpy,scr)->cmap) +#define ScreenOfDisplay(dpy, scr) (&((_XPrivDisplay)dpy)->screens[scr]) +#define BlackPixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->black_pixel) +#define WhitePixel(dpy, scr) (ScreenOfDisplay(dpy,scr)->white_pixel) +#define RootWindow(dpy, scr) (ScreenOfDisplay(dpy,scr)->root) +#define AllPlanes ((unsigned long)~0L) + +#define DefaultVisual(dpy, scr) (NULL) +#define DefaultDepth(dpy, scr) (NULL) +#define XDisplayWidth(dpy, scr) (XRES) +#define XDisplayHeight(dpy, scr) (YRES) #define XGetPixel(ximage, x, y) \ - ((*((ximage)->f.get_pixel))((ximage), (x), (y))) + ((*((ximage)->f.get_pixel))((ximage), (x), (y))) typedef unsigned long Pixel; /* Index into colormap */ typedef unsigned long XID; @@ -330,143 +543,174 @@ typedef XID Colormap; typedef XID KeySym; typedef XID GContext; typedef struct _XDisplay Display; +typedef long Visual; +typedef long XVisualInfo; +typedef long Atom; +typedef int Status; +typedef int Bool; +typedef int XComposeStatus; /* we don't need the real type */ typedef struct _XGC { - GContext gid; /* protocol ID for graphics context */ + GContext gid; /* protocol ID for graphics context */ } *GC; -typedef struct { - Colormap cmap; /* default color map */ - Window root; /* Root window id. */ - unsigned long white_pixel; - unsigned long black_pixel; /* White and Black pixel values */ - int x; - int y; - unsigned int width; - unsigned int height; - BITMAP *video_bitmap; +typedef struct +{ + Colormap cmap; /* default color map */ + Window root; /* root window id */ + unsigned long white_pixel; /* white pixel value */ + unsigned long black_pixel; /* black pixel value */ + int x; + int y; + unsigned int width; + unsigned int height; + BITMAP *video_bitmap; } Screen; typedef struct _XDisplay { - int default_screen; /* default screen for operations */ - Screen *screens; /* pointer to list of screens */ - BITMAP *mouse_ptr; + int default_screen; /* default screen for operations */ + Screen *screens; /* pointer to list of screens */ + BITMAP *mouse_ptr; } *_XPrivDisplay; -typedef struct _XImage { - struct funcs { - unsigned long (*get_pixel) (struct _XImage *, int, int); - } f; +typedef struct _XImage +{ + struct funcs + { + unsigned long (*get_pixel) (struct _XImage *, int, int); + } f; } XImage; -typedef struct { - long flags; /* marks which fields in this structure are defined */ - int width, height; /* should set so old wm's don't mess up */ - int min_width, min_height; - int max_width, max_height; +typedef struct +{ + long flags; /* marks which fields in this structure are defined */ + int width, height; /* should set so old wm's don't mess up */ + int min_width, min_height; + int max_width, max_height; } XSizeHints; -typedef struct { - long flags; /* marks which fields in this structure are defined */ - Bool input; /* does this application rely on the window manager to - get keyboard input? */ - int initial_state; /* see below */ - Pixmap icon_pixmap; /* pixmap to be used as icon */ - Pixmap icon_mask; /* icon mask bitmap */ +typedef struct +{ + long flags; /* marks which fields in this structure are defined */ + Bool input; /* does this application rely on the window manager to + get keyboard input? */ + int initial_state; /* see below */ + Pixmap icon_pixmap; /* pixmap to be used as icon */ + Pixmap icon_mask; /* icon mask bitmap */ } XWMHints; -typedef struct { - char *res_name; - char *res_class; +typedef struct +{ + char *res_name; + char *res_class; } XClassHint; -typedef struct { - unsigned char *value; /* same as Property routines */ +typedef struct +{ + unsigned char *value; /* same as Property routines */ } XTextProperty; -typedef struct { - unsigned long foreground;/* foreground pixel */ - unsigned long background;/* background pixel */ - Bool graphics_exposures;/* boolean, should exposures be generated */ - Pixmap clip_mask; /* bitmap clipping; other calls for rects */ - int clip_x_origin; /* origin for clipping */ - int clip_y_origin; - unsigned long value_mask; +typedef struct +{ + unsigned long foreground; /* foreground pixel */ + unsigned long background; /* background pixel */ + Bool graphics_exposures; /* boolean, should exposures be generated */ + Pixmap clip_mask; /* bitmap clipping; other calls for rects */ + int clip_x_origin; /* x origin for clipping */ + int clip_y_origin; /* y origin for clipping */ + unsigned long value_mask; } XGCValues; -typedef struct { - unsigned long valuemask; /* Specifies which attributes are */ - unsigned int closeness; /* Allowable RGB deviation */ - Pixel *pixels; /* List of used color pixels */ - unsigned int npixels; /* Number of used pixels */ +typedef struct +{ + unsigned long valuemask; /* specifies which attributes are */ + unsigned int closeness; /* allowable RGB deviation */ + Pixel *pixels; /* list of used color pixels */ + unsigned int npixels; /* number of used pixels */ } XpmAttributes; -typedef struct { - int type; - int x, y; - int width, height; +typedef struct +{ + int type; + int x, y; + int width, height; } XExposeEvent; -typedef struct { - int type; /* of event */ - int x, y; /* pointer x, y coordinates in event window */ - unsigned int button; /* detail */ +typedef struct +{ + int type; /* of event */ + int x, y; /* pointer x, y coordinates in event window */ + unsigned int button; /* detail */ } XButtonEvent; -typedef struct { - int type; - int x, y; /* pointer x, y coordinates in event window */ +typedef struct +{ + int type; + int x, y; /* pointer x, y coordinates in event window */ } XMotionEvent; -typedef struct { - int type; /* of event */ - unsigned int state; /* key or button mask */ +typedef struct +{ + int type; /* of event */ + unsigned int state; /* key or button mask */ } XKeyEvent; -typedef struct { - int type; /* FocusIn or FocusOut */ +typedef struct +{ + int type; /* FocusIn or FocusOut */ } XFocusChangeEvent; +typedef struct +{ + int type; /* ClientMessage */ +} XClientMessageEvent; -typedef union _XEvent { - int type; /* must not be changed; first element */ - XExposeEvent xexpose; - XButtonEvent xbutton; - XMotionEvent xmotion; - XKeyEvent xkey; +typedef union _XEvent +{ + int type; /* must not be changed; first element */ + XExposeEvent xexpose; + XButtonEvent xbutton; + XMotionEvent xmotion; + XKeyEvent xkey; } XEvent; - -extern void XMapWindow(Display*, Window); -//extern void XFlush(Display*); -extern Display *XOpenDisplay(char*); -//extern char *XDisplayName(char*); -extern Window XCreateSimpleWindow(Display*, Window, int, int, unsigned int, unsigned int, unsigned int, unsigned long, unsigned long); -extern int XReadBitmapFile(Display*, Drawable, char*, unsigned int*, unsigned int*, Pixmap*, int*, int*); -extern Status XStringListToTextProperty(char**, int, XTextProperty*); -//extern void XSetWMProperties(Display*, Window, XTextProperty*, XTextProperty*, char**, int, XSizeHints*, XWMHints*, XClassHint*); -extern void XFree(void*); -//extern void XSelectInput(Display*, Window, long); -extern GC XCreateGC(Display*, Drawable, unsigned long, XGCValues*); -extern void XFillRectangle(Display*, Drawable, GC, int, int, unsigned int, unsigned int); -extern Pixmap XCreatePixmap(Display*, Drawable, unsigned int, unsigned int, unsigned int); -//extern int XDefaultDepth(Display*, int); -extern inline void XCopyArea(Display*, Drawable, Drawable, GC, int, int, unsigned int, unsigned int, int, int); -extern int XpmReadFileToPixmap(Display*, Drawable, char*, Pixmap*, Pixmap*, XpmAttributes*); -//extern void XFreeColors(Display*, Colormap, unsigned long*, int, unsigned long); -//extern void XpmFreeAttributes(XpmAttributes*); -extern void XFreePixmap(Display*, Pixmap); -extern void XFreeGC(Display*, GC); -extern void XCloseDisplay(Display*); -extern int XPending(Display*); -extern void XNextEvent(Display*, XEvent*); -//extern void XSync(Display*, Bool); -//extern void XAutoRepeatOn(Display*); -//extern void XAutoRepeatOff(Display*); -extern KeySym XLookupKeysym(XKeyEvent*, int); -//extern void XSetClipOrigin(Display*, GC, int, int); -//extern XImage *XGetImage(Display*, Drawable, int, int, unsigned int, unsigned int, unsigned long, int); - -BITMAP *load_gif(char *filename, RGB *pal); \ No newline at end of file +unsigned char get_ascii(KeySym); +void XMapWindow(Display *, Window); +Display *XOpenDisplay(char *); +Window XCreateSimpleWindow(Display *, Window, int, int, + unsigned int, unsigned int, unsigned int, + unsigned long, unsigned long); +Status XStringListToTextProperty(char **, int, XTextProperty *); +void XFree(void *); +GC XCreateGC(Display *, Drawable, unsigned long, XGCValues *); +void XSetClipMask(Display *, GC, Pixmap); +void XSetClipOrigin(Display *, GC, int, int); +void XFillRectangle(Display *, Drawable, GC, int, int, + unsigned int, unsigned int); +Pixmap XCreatePixmap(Display *, Drawable, unsigned int, unsigned int, + unsigned int); +void XSync(Display *, Bool); +inline void XCopyArea(Display *, Drawable, Drawable, GC, int, int, + unsigned int, unsigned int, int, int); +int Read_PCX_to_Pixmap(Display *, Window, GC, char *, Pixmap *, Pixmap *); +int XpmReadFileToPixmap(Display *, Drawable, char *, Pixmap *, Pixmap *, + XpmAttributes *); +int XReadBitmapFile(Display *, Drawable, char *, + unsigned int *, unsigned int *, Pixmap *, int *, int *); +void XFreePixmap(Display *, Pixmap); +void XFreeGC(Display *, GC); +void XCloseDisplay(Display *); +void XNextEvent(Display *, XEvent *); +int XPending(Display *); +KeySym XLookupKeysym(XKeyEvent *, int); +int XLookupString(XKeyEvent *, char *, int, KeySym *, XComposeStatus *); +void XSetForeground(Display *, GC, unsigned long); +void XDrawLine(Display *, Drawable, GC, int, int, int, int); +void XDestroyImage(XImage *); +Bool XQueryPointer(Display *, Window, Window *, Window *, int *, int *, + int *, int *, unsigned int *); +void XAutoRepeatOn(Display *); +void XAutoRepeatOff(Display *); +void NetworkServer(int, int);