X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=vgasrc%2Fvgatables.h;h=f31595ee0a9f3284b507d3ee8b75d5c4c125f75d;hb=87233e9ddac7f833d14031be5d7afc705aed5f25;hp=5c0f3bff843d0f40a43d4123d3bce10715e53fae;hpb=87879e256ffdece5781127fb3b0a9b393bf75afc;p=seabios.git diff --git a/vgasrc/vgatables.h b/vgasrc/vgatables.h index 5c0f3bf..f31595e 100644 --- a/vgasrc/vgatables.h +++ b/vgasrc/vgatables.h @@ -70,6 +70,16 @@ #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 Video Save Pointer Table +struct VideoSavePointer_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; + /* standard BIOS Video Parameter Table */ struct VideoParam_s { u8 twidth; @@ -85,13 +95,22 @@ struct VideoParam_s { 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,7 +157,7 @@ struct saveDACcolors { // vgatables.c struct vgamode_s *find_vga_entry(u8 mode); -extern u16 video_save_pointer_table[]; +extern struct VideoSavePointer_s video_save_pointer_table; extern struct VideoParam_s video_param_table[]; extern u8 static_functionality[]; @@ -201,12 +220,12 @@ 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