Release 940405
[wine/gsoc-2012-control.git] / miscemu / int10.c
blob0f932bd4c2f2e8d8d68a3f3e097d1c6d7391f988
1 #include <stdio.h>
2 #include "msdos.h"
3 #include "wine.h"
5 static void Barf(struct sigcontext_struct *context)
7 fprintf(stderr, "int10: unknown/not implemented parameters:\n");
8 fprintf(stderr, "int10: AX %04x, BX %04x, CX %04x, DX %04x, "
9 "SI %04x, DI %04x, DS %04x, ES %04x\n",
10 AX, BX, CX, DX, SI, DI, DS, ES);
13 int do_int10(struct sigcontext_struct *context)
15 switch((context->sc_eax >> 8) & 0xff)
17 case 0x0f:
18 EAX = (EAX & 0xffffff00) | 0x5b;
19 break;
21 case 0x12:
22 if ((EBX & 0xff) == 0x10) {
23 EBX = (EBX & 0xffff0000) | 0x0003;
24 ECX = (ECX & 0xffff0000) | 0x0009;
26 break;
28 case 0x1a:
29 EBX = (EBX & 0xffff0000) | 0x0008;
30 break;
32 default:
33 Barf(context);
35 return 1;