#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;
#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);
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;
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