diff options
author | Kevin O'Connor <kevin@koconnor.net> | 2024-04-02 13:07:58 -0400 |
---|---|---|
committer | Kevin O'Connor <kevin@koconnor.net> | 2024-04-05 17:59:49 -0400 |
commit | c5a361c09a19e3b1a83557b01f11f04b27181a11 (patch) | |
tree | a63b9a6f2f755ae233e9092615e43b122937fdf2 /vgasrc/stdvga.c | |
parent | 22c91412600b7fabd75ef68d2d4d3e63e9e27f9f (diff) | |
download | seabios-c5a361c09a19e3b1a83557b01f11f04b27181a11.tar.gz |
stdvga: Add stdvga_set_vertical_size() helper function
Add helper function and update the bochsvga.c code to use it. This
emphasizes the relationship between stdvga_get_vertical_size() and
stdvga_set_vertical_size() code.
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'vgasrc/stdvga.c')
-rw-r--r-- | vgasrc/stdvga.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/vgasrc/stdvga.c b/vgasrc/stdvga.c index 4bfa101a..afe26dbd 100644 --- a/vgasrc/stdvga.c +++ b/vgasrc/stdvga.c @@ -286,6 +286,17 @@ stdvga_get_vertical_size(void) return vde + 1; } +// Set vertical screen size (number of horizontal lines in the display) +void +stdvga_set_vertical_size(int lines) +{ + u16 crtc_addr = stdvga_get_crtc(); + u16 vde = lines - 1; + stdvga_crtc_write(crtc_addr, 0x12, vde); + u8 ovl = ((vde >> 7) & 0x02) + ((vde >> 3) & 0x40); + stdvga_crtc_mask(crtc_addr, 0x07, 0x42, ovl); +} + // Get offset into framebuffer accessible from real-mode 64K segment int stdvga_get_window(struct vgamode_s *curmode_g, int window) |