| #ifndef __VGA_H |
| #define __VGA_H |
| // Standard structure definitions for vgabios video tables |
| |
| #include "types.h" // u8 |
| |
| // standard BIOS Video Parameter Table |
| struct video_param_s { |
| u8 twidth; |
| u8 theightm1; |
| u8 cheight; |
| u16 slength; |
| u8 sequ_regs[4]; |
| u8 miscreg; |
| u8 crtc_regs[25]; |
| u8 actl_regs[20]; |
| u8 grdc_regs[9]; |
| } PACKED; |
| |
| // Standard Video Save Pointer Table |
| struct video_save_pointer_s { |
| struct segoff_s videoparam; |
| struct segoff_s paramdynamicsave; |
| struct segoff_s textcharset; |
| struct segoff_s graphcharset; |
| struct segoff_s secsavepointer; |
| u8 reserved[8]; |
| } PACKED; |
| |
| // Data returned by int101B |
| struct video_func_static { |
| u32 modes; |
| u8 reserved_0x04[3]; |
| u8 scanlines; |
| u8 cblocks; |
| u8 active_cblocks; |
| u16 misc_flags; |
| u8 reserved_0x0c[2]; |
| u8 save_flags; |
| u8 reserved_0x0f; |
| } PACKED; |
| |
| struct video_func_info { |
| struct segoff_s static_functionality; |
| u8 bda_0x49[30]; |
| u8 bda_0x84[3]; |
| u8 dcc_index; |
| u8 dcc_alt; |
| u16 colors; |
| u8 pages; |
| u8 scan_lines; |
| u8 primary_char; |
| u8 secondar_char; |
| u8 misc; |
| u8 non_vga_mode; |
| u8 reserved_2f[2]; |
| u8 video_mem; |
| u8 save_flags; |
| u8 disp_info; |
| u8 reserved_34[12]; |
| } PACKED; |
| |
| #endif // vga.h |