#include "biosvar.h" // GET_GLOBAL
#include "util.h" // memcpy_far
#include "vbe.h" // VBE_RETURN_STATUS_FAILED
#include "biosvar.h" // GET_GLOBAL
#include "util.h" // memcpy_far
#include "vbe.h" // VBE_RETURN_STATUS_FAILED
memset16_far(GET_GLOBAL(vmode_g->sstart), 0, 0x0720, 32*1024);
break;
memset16_far(GET_GLOBAL(vmode_g->sstart), 0, 0x0720, 32*1024);
break;
memset16_far(GET_GLOBAL(vmode_g->sstart), 0, 0x0000, 32*1024);
break;
default:
memset16_far(GET_GLOBAL(vmode_g->sstart), 0, 0x0000, 32*1024);
break;
default:
stdvga_set_mode(int mode, int flags)
{
// find the entry in the video modes
stdvga_set_mode(int mode, int flags)
{
// find the entry in the video modes
dprintf(1, "mode search %02x found %p\n", mode, vmode_g);
if (!vmode_g)
return VBE_RETURN_STATUS_FAILED;
dprintf(1, "mode search %02x found %p\n", mode, vmode_g);
if (!vmode_g)
return VBE_RETURN_STATUS_FAILED;
// Always 256*3 values
stdvga_set_dac_regs(get_global_seg(), palette_g, 0, palsize);
// Always 256*3 values
stdvga_set_dac_regs(get_global_seg(), palette_g, 0, palsize);
u16 i;
for (i = 0; i <= 0x13; i++) {
outb(i, VGAREG_ACTL_ADDRESS);
u16 i;
for (i = 0; i <= 0x13; i++) {
outb(i, VGAREG_ACTL_ADDRESS);
// Set Sequencer Ctl
outb(0, VGAREG_SEQU_ADDRESS);
outb(0x03, VGAREG_SEQU_DATA);
// Set Sequencer Ctl
outb(0, VGAREG_SEQU_ADDRESS);
outb(0x03, VGAREG_SEQU_DATA);
for (i = 1; i <= 4; i++) {
outb(i, VGAREG_SEQU_ADDRESS);
outb(GET_GLOBAL(regs[i - 1]), VGAREG_SEQU_DATA);
}
// Set Grafx Ctl
for (i = 1; i <= 4; i++) {
outb(i, VGAREG_SEQU_ADDRESS);
outb(GET_GLOBAL(regs[i - 1]), VGAREG_SEQU_DATA);
}
// Set Grafx Ctl
for (i = 0; i <= 8; i++) {
outb(i, VGAREG_GRDC_ADDRESS);
outb(GET_GLOBAL(regs[i]), VGAREG_GRDC_DATA);
}
// Set CRTC address VGA or MDA
for (i = 0; i <= 8; i++) {
outb(i, VGAREG_GRDC_ADDRESS);
outb(GET_GLOBAL(regs[i]), VGAREG_GRDC_DATA);
}
// Set CRTC address VGA or MDA
for (i = 0; i <= 0x18; i++) {
outb(i, crtc_addr);
outb(GET_GLOBAL(regs[i]), crtc_addr + 1);
for (i = 0; i <= 0x18; i++) {
outb(i, crtc_addr);
outb(GET_GLOBAL(regs[i]), crtc_addr + 1);
stdvga_load_font(get_global_seg(), vgafont16, 0x100, 0, 0, 16);
// Setup BDA variables
stdvga_load_font(get_global_seg(), vgafont16, 0x100, 0, 0, 16);
// Setup BDA variables
// more than 64k 3C4/04
outb(0x04, VGAREG_SEQU_ADDRESS);
outb(0x02, VGAREG_SEQU_DATA);
// more than 64k 3C4/04
outb(0x04, VGAREG_SEQU_ADDRESS);
outb(0x02, VGAREG_SEQU_DATA);