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>
This commit is contained in:
parent
22c9141260
commit
c5a361c09a
|
@ -275,13 +275,7 @@ bochsvga_set_mode(struct vgamode_s *vmode_g, int flags)
|
|||
stdvga_crtc_write(crtc_addr, 0x11, 0x00);
|
||||
stdvga_crtc_write(crtc_addr, 0x01, width / 8 - 1);
|
||||
stdvga_set_linelength(vmode_g, width);
|
||||
stdvga_crtc_write(crtc_addr, 0x12, height - 1);
|
||||
u8 v = 0;
|
||||
if ((height - 1) & 0x0100)
|
||||
v |= 0x02;
|
||||
if ((height - 1) & 0x0200)
|
||||
v |= 0x40;
|
||||
stdvga_crtc_mask(crtc_addr, 0x07, 0x42, v);
|
||||
stdvga_set_vertical_size(height);
|
||||
|
||||
stdvga_crtc_write(crtc_addr, 0x09, 0x00);
|
||||
stdvga_crtc_mask(crtc_addr, 0x17, 0x00, 0x03);
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -67,6 +67,7 @@ void stdvga_set_cursor_shape(u16 cursor_type);
|
|||
void stdvga_set_cursor_pos(int address);
|
||||
void stdvga_set_character_height(u8 lines);
|
||||
u16 stdvga_get_vertical_size(void);
|
||||
void stdvga_set_vertical_size(int lines);
|
||||
int stdvga_get_window(struct vgamode_s *curmode_g, int window);
|
||||
int stdvga_set_window(struct vgamode_s *curmode_g, int window, int val);
|
||||
int stdvga_minimum_linelength(struct vgamode_s *vmode_g);
|
||||
|
|
Loading…
Reference in New Issue