vgabios: Unify page size calculations; remove page size from vgamode_s.
[seabios.git] / vgasrc / vgabios.h
index c973d5f106055340c83b9cec73e86b7ab9b039e6..8b806ff144b0aaca59ff40cca678fb7426dc0717 100644 (file)
@@ -4,9 +4,6 @@
 #include "types.h" // u8
 #include "farptr.h" // struct segoff_s
 
-#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))
-
 struct saveBDAstate {
     u8 video_mode;
     u16 video_cols;
@@ -33,6 +30,16 @@ struct saveBDAstate {
 #define MF_LINEARFB   0x4000
 #define MF_NOCLEARMEM 0x8000
 
+// Memory model types
+#define MM_TEXT            0x00
+#define MM_CGA             0x01
+#define MM_HERCULES        0x02
+#define MM_PLANAR          0x03
+#define MM_PACKED          0x04
+#define MM_NON_CHAIN_4_256 0x05
+#define MM_DIRECT          0x06
+#define MM_YUV             0x07
+
 // vgatables.c
 struct vgamode_s;
 struct vgamode_s *find_vga_entry(u8 mode);
@@ -48,6 +55,7 @@ extern u8 vgafont14alt[];
 extern u8 vgafont16alt[];
 
 // vgabios.c
+extern u16 VgaBDF;
 #define SET_VGA(var, val) SET_FARVAR(get_global_seg(), (var), (val))
 struct carattr {
     u8 car, attr, use_attr;
@@ -55,6 +63,7 @@ struct carattr {
 struct cursorpos {
     u8 x, y, page;
 };
+u16 calc_page_size(u8 memmodel, u16 width, u16 height);
 void modeswitch_set_bda(int mode, int flags, struct vgamode_s *vmode_g);
 
 // vgafb.c