Added Get DAC Colour page
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2111
This commit is contained in:
parent
4641faa5ca
commit
506400755d
3 changed files with 19 additions and 5 deletions
|
@ -177,6 +177,9 @@ static Bitu INT10_Handler(void) {
|
|||
case 0x19: /* undocumented - GET PEL MASK */
|
||||
INT10_GetPelMask(reg_bl);
|
||||
break;
|
||||
case 0x1A: /* GET VIDEO DAC COLOR PAGE */
|
||||
INT10_GetDACPage(®_bl,®_bh);
|
||||
break;
|
||||
default:
|
||||
LOG(LOG_INT10,LOG_ERROR)("Function 10:Unhandled EGA/VGA Palette Function %2X",reg_al);
|
||||
}
|
||||
|
@ -475,5 +478,3 @@ void INT10_Init(Section* sec) {
|
|||
INT10_SetupVESA();
|
||||
INT10_SetVideoMode(machine==MCH_HERC ? 0x7 : 0x3);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -173,6 +173,7 @@ void INT10_GetSingleDacRegister(Bit8u index,Bit8u * red,Bit8u * green,Bit8u * bl
|
|||
void INT10_SetDACBlock(Bit16u index,Bit16u count,PhysPt data);
|
||||
void INT10_GetDACBlock(Bit16u index,Bit16u count,PhysPt data);
|
||||
void INT10_SelectDACPage(Bit8u function,Bit8u mode);
|
||||
void INT10_GetDACPage(Bit8u* mode,Bit8u* page);
|
||||
void INT10_SetPelMask(Bit8u mask);
|
||||
void INT10_GetPelMask(Bit8u & mask);
|
||||
|
||||
|
@ -194,5 +195,3 @@ Bit8u VESA_GetPalette(PhysPt data,Bitu index,Bitu count);
|
|||
/* Sup Groups */
|
||||
void INT10_SetupRomMemory(void);
|
||||
void INT10_SetupVESA(void);
|
||||
|
||||
|
||||
|
|
|
@ -147,6 +147,21 @@ void INT10_SelectDACPage(Bit8u function,Bit8u mode) {
|
|||
IO_Write(VGAREG_ACTL_ADDRESS,32); //Enable output and protect palette
|
||||
}
|
||||
|
||||
void INT10_GetDACPage(Bit8u* mode,Bit8u* page) {
|
||||
IO_Read(VGAREG_ACTL_RESET);
|
||||
IO_Write(VGAREG_ACTL_ADDRESS,0x10);
|
||||
Bit8u reg10=IO_Read(VGAREG_ACTL_READ_DATA);
|
||||
*mode=(reg10&0x80)?0x01:0x00;
|
||||
IO_Write(VGAREG_ACTL_ADDRESS,0x14);
|
||||
*page=IO_Read(VGAREG_ACTL_READ_DATA);
|
||||
if(*mode) {
|
||||
*page&=0xf;
|
||||
} else {
|
||||
*page&=0xc;
|
||||
*page>>=2;
|
||||
}
|
||||
}
|
||||
|
||||
void INT10_SetPelMask(Bit8u mask) {
|
||||
IO_Write(VGAREG_PEL_MASK,mask);
|
||||
}
|
||||
|
@ -168,4 +183,3 @@ void INT10_SetColorSelect(Bit8u val) {
|
|||
real_writeb(BIOSMEM_SEG,BIOSMEM_CURRENT_PAL,temp);
|
||||
IO_Write(0x3d9,temp);
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue