diff --git a/msdos/int15.c b/msdos/int15.c index 32ee1146caf05fcc789a6faabeaad10d6a79cbda..6230fe1334351424546242528d14a20174cc9dbd 100644 --- a/msdos/int15.c +++ b/msdos/int15.c @@ -12,12 +12,36 @@ DEFAULT_DEBUG_CHANNEL(int) /********************************************************************** * INT_Int15Handler * - * Handler for int 15h (old cassette interrupt). + * Handler for int 15h */ void WINAPI INT_Int15Handler( CONTEXT86 *context ) { switch(AH_reg(context)) { + case 0x84: /* read joystick information */ + FIXME("Read joystick information not implemented\n"); + + /* FIXME: report status as if no game port exists */ + switch(DX_reg(context)) + { + case 0x0: /* read joystick switches */ + AL_reg(context) = 0x0; /* all switches open */ + break; + case 0x1: /* read joystick position */ + AX_reg(context) = 0x0; + BX_reg(context) = 0x0; + CX_reg(context) = 0x0; + DX_reg(context) = 0x0; + break; + default: + INT_BARF( context, 0x15 ); + break; + } + + RESET_CFLAG(context); + + break; + case 0x88: /* get size of memory above 1 M */ AX_reg(context) = 64; /* FIXME: are 64K ok? */ RESET_CFLAG(context);