|  | /* | 
|  | * DOS interrupt 16h handler | 
|  | */ | 
|  |  | 
|  | #include <stdlib.h> | 
|  | #include <string.h> | 
|  | #include <unistd.h> | 
|  |  | 
|  | #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; | 
|  |  | 
|  | } | 
|  | } | 
|  |  |