Real mode interrupt handler now handles interrupt 21 function 0C.
This commit is contained in:
parent
140e7222e0
commit
8a1ac6edf4
|
@ -76,6 +76,22 @@ void WINAPI DOSVM_Int21Handler( CONTEXT86 *context )
|
||||||
{
|
{
|
||||||
RESET_CFLAG(context); /* Not sure if this is a good idea */
|
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))
|
switch(AH_reg(context))
|
||||||
{
|
{
|
||||||
case 0x00: /* TERMINATE PROGRAM */
|
case 0x00: /* TERMINATE PROGRAM */
|
||||||
|
|
Loading…
Reference in New Issue