#include "farptr.h" // SET_FARVAR
#include "biosvar.h" // GET_GLOBAL
#include "util.h" // memcpy_far
+#include "vbe.h" // VBE_RETURN_STATUS_FAILED
#include "vgabios.h" // find_vga_entry
// TODO
clear_screen(struct vgamode_s *vmode_g)
{
switch (GET_GLOBAL(vmode_g->memmodel)) {
- case CTEXT:
- case MTEXT:
+ case MM_TEXT:
memset16_far(GET_GLOBAL(vmode_g->sstart), 0, 0x0720, 32*1024);
break;
- case CGA:
+ case MM_CGA:
memset16_far(GET_GLOBAL(vmode_g->sstart), 0, 0x0000, 32*1024);
break;
default:
}
}
-void
+int
stdvga_set_mode(int mode, int flags)
{
// find the entry in the video modes
struct vgamode_s *vmode_g = find_vga_entry(mode);
dprintf(1, "mode search %02x found %p\n", mode, vmode_g);
if (!vmode_g)
- return;
+ return VBE_RETURN_STATUS_FAILED;
// if palette loading (bit 3 of modeset ctl = 0)
if (!(flags & MF_NOPALETTE)) { // Set the PEL mask
// Write the fonts in memory
u8 memmodel = GET_GLOBAL(vmode_g->memmodel);
- if (memmodel & TEXT)
+ if (memmodel == MM_TEXT)
stdvga_load_font(get_global_seg(), vgafont16, 0x100, 0, 0, 16);
// Setup BDA variables
modeswitch_set_bda(mode, flags, vmode_g);
+
+ return 0;
}
outb(v | v2, VGAREG_WRITE_MISC_OUTPUT);
}
-void
+int
stdvga_init(void)
{
// switch to color mode and enable CPU access 480 lines
// more than 64k 3C4/04
outb(0x04, VGAREG_SEQU_ADDRESS);
outb(0x02, VGAREG_SEQU_DATA);
+
+ return 0;
}