aboutsummaryrefslogtreecommitdiffstats
path: root/vgasrc/stdvga.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2012-01-27 20:37:45 -0500
committerKevin O'Connor <kevin@koconnor.net>2012-02-01 20:39:03 -0500
commitd61fc53a6037125183bec6ca4f3976d2396486be (patch)
tree5907196c7464d9c003e66e0e692a597adcaa203a /vgasrc/stdvga.c
parent3876b531222c53124b0eb154fb331c0c662f5e09 (diff)
downloadseabios-d61fc53a6037125183bec6ca4f3976d2396486be.tar.gz
vgabios: Add support for VBE get/set display start function.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'vgasrc/stdvga.c')
-rw-r--r--vgasrc/stdvga.c27
1 files changed, 19 insertions, 8 deletions
diff --git a/vgasrc/stdvga.c b/vgasrc/stdvga.c
index a310167a..13334ed4 100644
--- a/vgasrc/stdvga.c
+++ b/vgasrc/stdvga.c
@@ -254,14 +254,6 @@ stdvga_set_cursor_shape(u8 start, u8 end)
}
void
-stdvga_set_active_page(u16 address)
-{
- u16 crtc_addr = stdvga_get_crtc();
- stdvga_crtc_write(crtc_addr, 0x0c, address >> 8);
- stdvga_crtc_write(crtc_addr, 0x0d, address);
-}
-
-void
stdvga_set_cursor_pos(u16 address)
{
u16 crtc_addr = stdvga_get_crtc();
@@ -313,6 +305,25 @@ stdvga_set_linelength(struct vgamode_s *vmode_g, int val)
return 0;
}
+int
+stdvga_get_displaystart(struct vgamode_s *vmode_g)
+{
+ u16 crtc_addr = stdvga_get_crtc();
+ int addr = (stdvga_crtc_read(crtc_addr, 0x0c) << 8
+ | stdvga_crtc_read(crtc_addr, 0x0d));
+ return addr * stdvga_bpp_factor(vmode_g);
+}
+
+int
+stdvga_set_displaystart(struct vgamode_s *vmode_g, int val)
+{
+ u16 crtc_addr = stdvga_get_crtc();
+ val /= stdvga_bpp_factor(vmode_g);
+ stdvga_crtc_write(crtc_addr, 0x0c, val >> 8);
+ stdvga_crtc_write(crtc_addr, 0x0d, val);
+ return 0;
+}
+
/****************************************************************
* Save/Restore/Set state