diff --git a/dlls/winedos/int21.c b/dlls/winedos/int21.c index b4ea1c0e8d4..ae76337a4c8 100644 --- a/dlls/winedos/int21.c +++ b/dlls/winedos/int21.c @@ -76,6 +76,22 @@ void WINAPI DOSVM_Int21Handler( CONTEXT86 *context ) { RESET_CFLAG(context); /* Not sure if this is a good idea */ + if(AH_reg(context) == 0x0c) /* FLUSH BUFFER AND READ STANDARD INPUT */ + { + BYTE al = AL_reg(context); /* Input function to execute after flush. */ + + /* FIXME: buffers are not flushed */ + + /* + * If AL is not one of 0x01, 0x06, 0x07, 0x08, or 0x0a, + * the buffer is flushed but no input is attempted. + */ + if(al != 0x01 && al != 0x06 && al != 0x07 && al != 0x08 && al != 0x0a) + return; + + AH_reg(context) = al; + } + switch(AH_reg(context)) { case 0x00: /* TERMINATE PROGRAM */