X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=vgasrc%2Fvgatables.h;h=5a901743bba13e6751c9c641dff0e31de2270ce3;hb=f3760375e093aca79b618f2098d20ba0c46181f4;hp=1e76b3aafe7117ea25c6a7a876b1c7c02efbf0db;hpb=1ca05b0f393c0201c0e8efe87831edddb6a53532;p=seabios.git diff --git a/vgasrc/vgatables.h b/vgasrc/vgatables.h index 1e76b3a..5a90174 100644 --- a/vgasrc/vgatables.h +++ b/vgasrc/vgatables.h @@ -70,28 +70,24 @@ #define SCREEN_IO_START(x,y,p) (((((x)*(y)) | 0x00ff) + 1) * (p)) #define SCREEN_MEM_START(x,y,p) SCREEN_IO_START(((x)*2),(y),(p)) -/* standard BIOS Video Parameter Table */ -struct VideoParam_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; - struct vgamode_s { u8 svgamode; - struct VideoParam_s *vparam; u8 memmodel; /* CTEXT,MTEXT,CGA,PL1,PL2,PL4,P8,P15,P16,P24,P32 */ + u8 twidth; + u8 theight; + u8 cheight; u8 pixbits; u16 sstart; + u16 slength; + u8 pelmask; u8 *dac; u16 dacsize; + u8 *sequ_regs; + u8 miscreg; + u8 *crtc_regs; + u8 *actl_regs; + u8 *grdc_regs; }; struct saveVideoHardware { @@ -138,8 +134,8 @@ struct saveDACcolors { // vgatables.c struct vgamode_s *find_vga_entry(u8 mode); -extern u16 video_save_pointer_table[]; -extern struct VideoParam_s video_param_table[]; +void build_video_param(void); +extern struct VideoSavePointer_s video_save_pointer_table; extern u8 static_functionality[]; // vgafonts.c @@ -150,12 +146,14 @@ extern u8 vgafont14alt[]; extern u8 vgafont16alt[]; // vga.c +#define SET_VGA(var, val) SET_FARVAR(get_global_seg(), (var), (val)) struct carattr { u8 car, attr, use_attr; }; struct cursorpos { u8 x, y, page; }; +void vga_set_mode(u8 mode, u8 noclearmem); // vgafb.c void clear_screen(struct vgamode_s *vmode_g); @@ -200,18 +198,38 @@ void vgahw_set_scan_lines(u8 lines); u16 vgahw_get_vde(void); void vgahw_save_state(u16 seg, struct saveVideoHardware *info); void vgahw_restore_state(u16 seg, struct saveVideoHardware *info); -void vgahw_set_mode(struct VideoParam_s *vparam_g); +void vgahw_set_mode(struct vgamode_s *vmode_g); void vgahw_enable_video_addressing(u8 disable); void vgahw_init(void); // clext.c -void cirrus_set_video_mode(u8 mode); +int cirrus_set_video_mode(u8 mode, u8 noclearmem); void cirrus_init(void); -// vbe.c -- not implemented yet. -#define VBE_DISPI_DISABLED 0x00 -void dispi_set_enable(int enable); -void vbe_init(void); -int vbe_has_vbe_display(void); +// vbe.c +#define VBE_OEM_STRING "SeaBIOS VBE(C) 2011" +#define VBE_VENDOR_STRING "SeaBIOS Developers" +#define VBE_PRODUCT_STRING "SeaBIOS VBE Adapter" +#define VBE_REVISION_STRING "Rev. 1" + +struct vbe_modeinfo +{ + u16 width; + u16 height; + u8 depth; + u16 linesize; + u32 phys_base; + u32 vram_size; +}; +int vbe_init(u8 bus, u8 devfn); +int vbe_enabled(void); +u16 vbe_total_mem(void); +int vbe_list_modes(u16 seg, u16 ptr); +int vbe_mode_info(u16 mode, struct vbe_modeinfo *info); +void vbe_hires_enable(int enable); +void vbe_set_mode(u16 mode, struct vbe_modeinfo *info); +void vbe_clear_scr(void); +int vbe_hires_enabled(void); +u16 vbe_curr_mode(void); #endif // vgatables.h