2 * BIOS interrupt 15h handler
7 #include "debugtools.h"
9 DEFAULT_DEBUG_CHANNEL(int);
12 /**********************************************************************
17 void WINAPI
INT_Int15Handler( CONTEXT86
*context
)
19 switch(AH_reg(context
))
21 case 0x84: /* read joystick information */
22 FIXME("Read joystick information not implemented\n");
24 /* FIXME: report status as if no game port exists */
25 switch(DX_reg(context
))
27 case 0x0: /* read joystick switches */
28 AL_reg(context
) = 0x0; /* all switches open */
30 case 0x1: /* read joystick position */
31 AX_reg(context
) = 0x0;
32 BX_reg(context
) = 0x0;
33 CX_reg(context
) = 0x0;
34 DX_reg(context
) = 0x0;
37 INT_BARF( context
, 0x15 );
45 case 0x88: /* get size of memory above 1 M */
46 AX_reg(context
) = 64; /* FIXME: are 64K ok? */
50 case 0xc0: /* GET CONFIGURATION */
51 if (ISV86(context
)) /* real */
52 context
->SegEs
= 0xf000;
54 context
->SegEs
= DOSMEM_BiosSysSeg
;
55 BX_reg(context
) = 0xe6f5;
56 AH_reg(context
) = 0x0;
60 switch(AL_reg(context
))
62 case 0x00: /* Enable-Disable Pointing Device (mouse) */
63 /* BH = newstate, 00h = disabled 01h = enabled */
64 switch(BH_reg(context
))
67 FIXME("Disable Pointing Device - not implemented\n");
70 FIXME("Enable Pointing Device - not implemented\n");
73 INT_BARF( context
, 0x15 );
76 AH_reg(context
) = 0x00; /* successful */
78 case 0x02: /* Set Sampling Rate */
79 /* BH = sampling rate */
80 FIXME("Set Sampling Rate - not implemented\n");
81 AH_reg(context
) = 0x00; /* successful */
83 case 0x04: /* Get Pointing Device Type */
84 FIXME("Get Pointing Device Type - not implemented\n");
85 BH_reg(context
) = 0x01;/*Device id FIXME what is it supposed to be?*/
88 INT_BARF( context
, 0x15 );
93 INT_BARF( context
, 0x15 );