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