Cast the unsigned int to signed, or NEAR_MATCH will not work.
[wine.git] / msdos / int15.c
blob32ee1146caf05fcc789a6faabeaad10d6a79cbda
1 /*
2 * BIOS interrupt 15h handler
3 */
5 #include <stdlib.h>
6 #include "miscemu.h"
7 #include "debugtools.h"
9 DEFAULT_DEBUG_CHANNEL(int)
12 /**********************************************************************
13 * INT_Int15Handler
15 * Handler for int 15h (old cassette interrupt).
17 void WINAPI INT_Int15Handler( CONTEXT86 *context )
19 switch(AH_reg(context))
21 case 0x88: /* get size of memory above 1 M */
22 AX_reg(context) = 64; /* FIXME: are 64K ok? */
23 RESET_CFLAG(context);
24 break;
26 case 0xc0: /* GET CONFIGURATION */
27 if (ISV86(context)) /* real */
28 ES_reg(context) = 0xf000;
29 else
30 ES_reg(context) = DOSMEM_BiosSysSeg;
31 BX_reg(context) = 0xe6f5;
32 AH_reg(context) = 0x0;
33 RESET_CFLAG(context);
34 break;
35 case 0xc2:
36 switch(AL_reg(context))
38 case 0x00: /* Enable-Disable Pointing Device (mouse) */
39 /* BH = newstate, 00h = disabled 01h = enabled */
40 switch(BH_reg(context))
42 case 0x00:
43 FIXME("Disable Pointing Device - not implemented\n");
44 break;
45 case 0x01:
46 FIXME("Enable Pointing Device - not implemented\n");
47 break;
48 default:
49 INT_BARF( context, 0x15 );
50 break;
52 AH_reg(context) = 0x00; /* successful */
53 break;
54 case 0x02: /* Set Sampling Rate */
55 /* BH = sampling rate */
56 FIXME("Set Sampling Rate - not implemented\n");
57 AH_reg(context) = 0x00; /* successful */
58 break;
59 case 0x04: /* Get Pointing Device Type */
60 FIXME("Get Pointing Device Type - not implemented\n");
61 BH_reg(context) = 0x01;/*Device id FIXME what is it suposed to be?*/
62 break;
63 default:
64 INT_BARF( context, 0x15 );
66 break;
68 default:
69 INT_BARF( context, 0x15 );