From 7bcf341a64d465e3396f098eaa0f4903e6076342 Mon Sep 17 00:00:00 2001 From: Joseph Pranevich Date: Sat, 17 Oct 1998 11:55:07 +0000 Subject: [PATCH] Added int16 (Keyboard) support, mostly stubs. --- include/debug.h | 173 ++++++++++++++++++++++---------------------- include/debugdefs.h | 4 +- msdos/int16.c | 77 ++++++++++++++++++++ 3 files changed, 167 insertions(+), 87 deletions(-) create mode 100644 msdos/int16.c diff --git a/include/debug.h b/include/debug.h index 64b0815ef7a..2fb94479c44 100644 --- a/include/debug.h +++ b/include/debug.h @@ -63,92 +63,93 @@ #define dbch_imm 55 #define dbch_int 56 #define dbch_int10 57 -#define dbch_int21 58 -#define dbch_int31 59 -#define dbch_ipaddress 60 -#define dbch_key 61 -#define dbch_keyboard 62 -#define dbch_ldt 63 -#define dbch_listbox 64 -#define dbch_listview 65 -#define dbch_local 66 -#define dbch_mci 67 -#define dbch_mcianim 68 -#define dbch_mciwave 69 -#define dbch_mdi 70 -#define dbch_menu 71 -#define dbch_message 72 -#define dbch_metafile 73 -#define dbch_midi 74 -#define dbch_mmaux 75 -#define dbch_mmio 76 -#define dbch_mmsys 77 -#define dbch_mmtime 78 -#define dbch_module 79 -#define dbch_mpr 80 -#define dbch_msacm 81 -#define dbch_msg 82 -#define dbch_nativefont 83 -#define dbch_nonclient 84 -#define dbch_ntdll 85 -#define dbch_ole 86 -#define dbch_pager 87 -#define dbch_palette 88 -#define dbch_pidl 89 -#define dbch_print 90 -#define dbch_process 91 -#define dbch_profile 92 -#define dbch_progress 93 -#define dbch_prop 94 -#define dbch_psapi 95 -#define dbch_psdrv 96 -#define dbch_rebar 97 -#define dbch_reg 98 -#define dbch_region 99 -#define dbch_relay 100 -#define dbch_resource 101 -#define dbch_s 102 -#define dbch_scroll 103 -#define dbch_security 104 -#define dbch_segment 105 -#define dbch_selector 106 -#define dbch_sem 107 -#define dbch_sendmsg 108 -#define dbch_shell 109 -#define dbch_shm 110 -#define dbch_snoop 111 -#define dbch_sound 112 -#define dbch_static 113 -#define dbch_statusbar 114 -#define dbch_stress 115 -#define dbch_string 116 -#define dbch_syscolor 117 -#define dbch_system 118 -#define dbch_tab 119 -#define dbch_task 120 -#define dbch_text 121 -#define dbch_thread 122 -#define dbch_thunk 123 -#define dbch_timer 124 -#define dbch_toolbar 125 -#define dbch_toolhelp 126 -#define dbch_tooltips 127 -#define dbch_trackbar 128 -#define dbch_treeview 129 -#define dbch_tweak 130 -#define dbch_uitools 131 -#define dbch_updown 132 -#define dbch_ver 133 -#define dbch_virtual 134 -#define dbch_vxd 135 -#define dbch_win 136 -#define dbch_win16drv 137 -#define dbch_win32 138 -#define dbch_wing 139 -#define dbch_winsock 140 -#define dbch_wnet 141 -#define dbch_x11 142 -#define dbch_x11drv 143 +#define dbch_int16 58 +#define dbch_int21 59 +#define dbch_int31 60 +#define dbch_ipaddress 61 +#define dbch_key 62 +#define dbch_keyboard 63 +#define dbch_ldt 64 +#define dbch_listbox 65 +#define dbch_listview 66 +#define dbch_local 67 +#define dbch_mci 68 +#define dbch_mcianim 69 +#define dbch_mciwave 70 +#define dbch_mdi 71 +#define dbch_menu 72 +#define dbch_message 73 +#define dbch_metafile 74 +#define dbch_midi 75 +#define dbch_mmaux 76 +#define dbch_mmio 77 +#define dbch_mmsys 78 +#define dbch_mmtime 79 +#define dbch_module 80 +#define dbch_mpr 81 +#define dbch_msacm 82 +#define dbch_msg 83 +#define dbch_nativefont 84 +#define dbch_nonclient 85 +#define dbch_ntdll 86 +#define dbch_ole 87 +#define dbch_pager 88 +#define dbch_palette 89 +#define dbch_pidl 90 +#define dbch_print 91 +#define dbch_process 92 +#define dbch_profile 93 +#define dbch_progress 94 +#define dbch_prop 95 +#define dbch_psapi 96 +#define dbch_psdrv 97 +#define dbch_rebar 98 +#define dbch_reg 99 +#define dbch_region 100 +#define dbch_relay 101 +#define dbch_resource 102 +#define dbch_s 103 +#define dbch_scroll 104 +#define dbch_security 105 +#define dbch_segment 106 +#define dbch_selector 107 +#define dbch_sem 108 +#define dbch_sendmsg 109 +#define dbch_shell 110 +#define dbch_shm 111 +#define dbch_snoop 112 +#define dbch_sound 113 +#define dbch_static 114 +#define dbch_statusbar 115 +#define dbch_stress 116 +#define dbch_string 117 +#define dbch_syscolor 118 +#define dbch_system 119 +#define dbch_tab 120 +#define dbch_task 121 +#define dbch_text 122 +#define dbch_thread 123 +#define dbch_thunk 124 +#define dbch_timer 125 +#define dbch_toolbar 126 +#define dbch_toolhelp 127 +#define dbch_tooltips 128 +#define dbch_trackbar 129 +#define dbch_treeview 130 +#define dbch_tweak 131 +#define dbch_uitools 132 +#define dbch_updown 133 +#define dbch_ver 134 +#define dbch_virtual 135 +#define dbch_vxd 136 +#define dbch_win 137 +#define dbch_win16drv 138 +#define dbch_win32 139 +#define dbch_wing 140 +#define dbch_winsock 141 +#define dbch_wnet 142 +#define dbch_x11 143 +#define dbch_x11drv 144 /* Definitions for classes identifiers */ #define dbcl_fixme 0 #define dbcl_err 1 diff --git a/include/debugdefs.h b/include/debugdefs.h index 7c1d2554d94..74987bf5f78 100644 --- a/include/debugdefs.h +++ b/include/debugdefs.h @@ -4,7 +4,7 @@ #include "debugtools.h" #endif -#define DEBUG_CHANNEL_COUNT 144 +#define DEBUG_CHANNEL_COUNT 145 #ifdef DEBUG_RUNTIME short debug_msg_enabled[][DEBUG_CLASS_COUNT] = { {1, 1, 0, 0}, @@ -151,6 +151,7 @@ short debug_msg_enabled[][DEBUG_CLASS_COUNT] = { {1, 1, 0, 0}, {1, 1, 0, 0}, {1, 1, 0, 0}, +{1, 1, 0, 0}, }; const char* debug_ch_name[] = { "1", @@ -211,6 +212,7 @@ const char* debug_ch_name[] = { "imm", "int", "int10", +"int16", "int21", "int31", "ipaddress", diff --git a/msdos/int16.c b/msdos/int16.c new file mode 100644 index 00000000000..471c3f21617 --- /dev/null +++ b/msdos/int16.c @@ -0,0 +1,77 @@ +/* + * DOS interrupt 16h handler + */ + +#include +#include +#include + +#include "config.h" +#include "debug.h" + +#include "ldt.h" +#include "drive.h" +#include "msdos.h" +#include "miscemu.h" +#include "module.h" + +/********************************************************************** + * INT_Int16Handler + * + * Handler for int 16h (keyboard) + * + * NOTE: + * + * KEYB.COM (DOS >3.2) adds functions to this interrupt, they are + * not currently listed here. + */ + +void WINAPI INT_Int16Handler( CONTEXT *context ) +{ + switch AH_reg(context) { + + case 0x00: /* Get Keystroke */ + FIXME(int16, "Get Keystroke - Not Supported\n"); + break; + + case 0x01: /* Check for Keystroke */ + FIXME(int16, "Check for Keystroke - Not Supported\n"); + break; + + case 0x02: /* Get Shift Flags */ + FIXME(int16, "Get Shift Flags - Not Supported\n"); + break; + + case 0x03: /* Set Typematic Rate and Delay */ + FIXME(int16, "Set Typematic Rate and Delay - Not Supported\n"); + break; + + case 0x09: /* Get Keyboard Functionality */ + FIXME(int16, "Get Keyboard Functionality - Not Supported\n"); + /* As a temporary measure, say that "nothing" is supported... */ + AL_reg(context) = 0; + break; + + case 0x0a: /* Get Keyboard ID */ + FIXME(int16, "Get Keyboard ID - Not Supported\n"); + break; + + case 0x10: /* Get Enhanced Keystroke */ + FIXME(int16, "Get Enhanced Keystroke - Not Supported\n"); + break; + + case 0x11: /* Check for Enhanced Keystroke */ + FIXME(int16, "Check for Enhanced Keystroke - Not Supported\n"); + break; + + case 0x12: /* Get Extended Shift States */ + FIXME(int16, "Get Extended Shift States - Not Supported\n"); + break; + + default: + FIXME(int16, "Unknown INT 16 function - 0x%x\n", AH_reg(context)); + break; + + } +} +