void vga_ar_mask(unsigned char index, unsigned char value, unsigned char mask) { unsigned char tmp; tmp = vga_ar_read(index); tmp &= ~mask; tmp |= (value & mask); vga_ar_write(index, tmp); }
static void vga_palette_init(void) { unsigned int i; /* set up attribute registers */ for (i = 0; i < 0x10; i++) vga_ar_write(i, i); vga_ar_write(0x10, 0x0c); vga_ar_write(0x11, 0x00); vga_ar_write(0x12, 0x0F); vga_ar_write(0x13, 0x08); vga_ar_write(0x14, 0x00); vga_palette_disable(); /* load actual palette */ vga_dac_mask_write(0xFF); for (i = 0; i < 0x100; i++) { vga_dac_write_address(i); vga_dac_data_write(default_vga_palette[i].red); vga_dac_data_write(default_vga_palette[i].green); vga_dac_data_write(default_vga_palette[i].blue); } }