diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2012-01-27 20:37:45 -0500 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2012-02-01 20:39:03 -0500 |
commit | d61fc53a6037125183bec6ca4f3976d2396486be (patch) | |
tree | 5907196c7464d9c003e66e0e692a597adcaa203a /vgasrc/stdvga.c | |
parent | 3876b531222c53124b0eb154fb331c0c662f5e09 (diff) | |
download | seabios-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.c | 27 |
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 |