PATCH: implement SET INDIVIDUAL/BLOCK DAC REGISTER (int 10h)
Christian COSTA
titan.costa at wanadoo.fr
Tue Apr 16 13:35:51 CDT 2002
Changelog :
dlls/winedos/int10.c
Implement SET INDIVIDUAL DAC REGISTER
and SET BLOCK OF DAC REGISTERS
Christian COSTA titan.costa at wanadoo.fr
-------------- next part --------------
Index: int10.c
===================================================================
RCS file: /home/wine/wine/dlls/winedos/int10.c,v
retrieving revision 1.7
diff -u -r1.7 int10.c
--- int10.c 11 Apr 2002 21:50:16 -0000 1.7
+++ int10.c 16 Apr 2002 18:21:30 -0000
@@ -543,10 +543,34 @@
" - Not Supported\n");
break;
case 0x10: /* SET INDIVIDUAL DAC REGISTER */
- FIXME("Set Individual DAC register - Not Supported\n");
+ {
+ PALETTEENTRY paldat;
+
+ TRACE("Set Individual DAC register\n");
+ paldat.peRed = DH_reg(context);
+ paldat.peGreen = CH_reg(context);
+ paldat.peBlue = CL_reg(context);
+ paldat.peFlags = 0;
+ VGA_SetPalette(&paldat,BX_reg(context)&0xFF,1);
+ }
break;
case 0x12: /* SET BLOCK OF DAC REGISTERS */
- FIXME("Set Block of DAC registers - Not Supported\n");
+ {
+ int i;
+ PALETTEENTRY paldat;
+ BYTE *pt;
+
+ TRACE("Set Block of DAC registers\n");
+ pt = (BYTE*)CTX_SEG_OFF_TO_LIN(context,context->SegEs,context->Edx);
+ for (i=0;i<CX_reg(context);i++)
+ {
+ paldat.peRed = (*(pt+i*3+0)) << 2;
+ paldat.peGreen = (*(pt+i*3+1)) << 2;
+ paldat.peBlue = (*(pt+i*3+2)) << 2;
+ paldat.peFlags = 0;
+ VGA_SetPalette(&paldat,(BX_reg(context)+i)&0xFF,1);
+ }
+ }
break;
case 0x13: /* SELECT VIDEO DAC COLOR PAGE */
FIXME("Select video DAC color page - Not Supported\n");
More information about the wine-patches
mailing list