mirror of
https://github.com/reactos/wine.git
synced 2024-11-26 05:00:30 +00:00
37 lines
721 B
C
37 lines
721 B
C
|
#include <stdio.h>
|
||
|
#include "msdos.h"
|
||
|
#include "wine.h"
|
||
|
|
||
|
static void Barf(struct sigcontext_struct *context)
|
||
|
{
|
||
|
fprintf(stderr, "int10: unknown/not implemented parameters:\n");
|
||
|
fprintf(stderr, "int10: AX %04x, BX %04x, CX %04x, DX %04x, "
|
||
|
"SI %04x, DI %04x, DS %04x, ES %04x\n",
|
||
|
AX, BX, CX, DX, SI, DI, DS, ES);
|
||
|
}
|
||
|
|
||
|
int do_int10(struct sigcontext_struct *context)
|
||
|
{
|
||
|
switch((context->sc_eax >> 8) & 0xff)
|
||
|
{
|
||
|
case 0x0f:
|
||
|
EAX = (EAX & 0xffffff00) | 0x5b;
|
||
|
break;
|
||
|
|
||
|
case 0x12:
|
||
|
if ((EBX & 0xff) == 0x10) {
|
||
|
EBX = (EBX & 0xffff0000) | 0x0003;
|
||
|
ECX = (ECX & 0xffff0000) | 0x0009;
|
||
|
}
|
||
|
break;
|
||
|
|
||
|
case 0x1a:
|
||
|
EBX = (EBX & 0xffff0000) | 0x0008;
|
||
|
break;
|
||
|
|
||
|
default:
|
||
|
Barf(context);
|
||
|
};
|
||
|
return 1;
|
||
|
}
|