aboutsummaryrefslogtreecommitdiff
path: root/vgasrc/stdvgamodes.c
diff options
context:
space:
mode:
authorChristian Gmeiner <christian.gmeiner@gmail.com>2012-09-01 17:12:55 +0200
committerKevin O'Connor <kevin@koconnor.net>2012-09-10 20:30:57 -0400
commita1a32838257368a26b3a74c4c8acf4c6d7b616e2 (patch)
tree2820512d2b2ec884f185ad488b6ab3cc9989cd17 /vgasrc/stdvgamodes.c
parent58dd0518100b2ddb112982c71db9c908f83b118a (diff)
downloadseabios-a1a32838257368a26b3a74c4c8acf4c6d7b616e2.zip
seabios-a1a32838257368a26b3a74c4c8acf4c6d7b616e2.tar.gz
seabios-a1a32838257368a26b3a74c4c8acf4c6d7b616e2.tar.bz2
Report stdvga modes in VBE via int10 (AX = 4F00h)
As all supported graphic adapters are supporting VGA we should list them in int10 (AX = 4F00h). Also clext.c and bochsvga.c are haveing a function named like is_XXX_mode() which checks if its a default VGA mode or a VESA mode. If its a normal VGA mode stdvga_set_mode() gets called. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com>
Diffstat (limited to 'vgasrc/stdvgamodes.c')
-rw-r--r--vgasrc/stdvgamodes.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/vgasrc/stdvgamodes.c b/vgasrc/stdvgamodes.c
index 5497da8..1756ade 100644
--- a/vgasrc/stdvgamodes.c
+++ b/vgasrc/stdvgamodes.c
@@ -334,6 +334,16 @@ stdvga_find_mode(int mode)
void
stdvga_list_modes(u16 seg, u16 *dest, u16 *last)
{
+ int i;
+ for (i = 0; i < ARRAY_SIZE(vga_modes); i++) {
+ struct stdvga_mode_s *stdmode_g = &vga_modes[i];
+ u16 mode = GET_GLOBAL(stdmode_g->mode);
+ if (mode == 0xffff)
+ continue;
+ SET_FARVAR(seg, *dest, mode);
+ dest++;
+ }
+
SET_FARVAR(seg, *dest, 0xffff);
}