文書番号: 401923
最終更新日: 2004/04/27
/* * ファンクションコール INT10H を使用したサンプルプログラム * この関数の機能は_remappalette 関数とほぼ同様で、使い方も同じですが、ビデオ * モードなどをチェックしていないため、エラーの戻り値は返しません。また、他の * グラフィックス関数および標準関数などに対する影響を考慮していないため、なんら * かの異常が発生する可能性があります。従って、ご利用頂く際には十分なテストが * 必要となります。 */ #include <dos.h> long __far _remappalette_new ( short index, long color ) { union _REGS inregs, outregs; int ramdacreg; long retcol; inregs.x.ax = 0x1007; /*パレットレジスタ読出し RAMDAC レジスタ番号の取得*/ inregs.h.bl = index; /* パレットレジスタの番号 */ _int86(0x10,&inregs,&outregs); ramdacreg=outregs.h.bh; inregs.x.ax = 0x1015; /* RAMDAC レジスタの読みだし */ inregs.h.bl = ramdacreg; /* RAMDAC レジスタ番号 */ _int86(0x10,&inregs,&outregs); retcol=(long)outregs.h.cl<<16|(long)outregs.h.ch<<8|(long)outregs.h.dh; inregs.x.ax = 0x1010; /* RAMDAC レジスタの設定 */ inregs.x.bx = ramdacreg; /* RAMDAC レジスタ番号 */ inregs.h.dh = color & 0xffL; /* 赤の設定 */ inregs.h.ch = (color & 0xff00L )>>8; /* 緑の設定 */ inregs.h.cl = (color & 0xff0000L)>>16; /* 青の設定 */ _int86(0x10,&inregs,&outregs); return(retcol); }
Keywords: KBBUG KB401923
Technology: kbAudDeveloper kbvc150 kbVCsearch kbZNotKeyword3 kbZNotKeyword8