backported fixes from rtxon
[dosdemo] / src / dos / vbe.h
index 17b2439..011cba3 100644 (file)
@@ -3,6 +3,12 @@
 
 #include "inttypes.h"
 
+#ifdef __GNUC__
+#define PACKED __attribute__((packed))
+#else
+#define PACKED
+#endif
+
 #define VBE_ATTR_LFB   (1 << 7)
 #define VBE_MODE_LFB   (1 << 14)
 
@@ -20,7 +26,7 @@ struct vbe_info {
        uint32_t oem_product_rev_ptr;
        uint8_t reserved[222];
        uint8_t oem_data[256];
-};
+} PACKED;
 
 struct vbe_mode_info {
        uint16_t mode_attr;
@@ -54,7 +60,7 @@ struct vbe_mode_info {
        uint16_t reserved3;
 
        uint8_t reserved4[206];
-};
+} PACKED;
 #pragma pack (pop)
 
 struct vbe_info *vbe_get_info(void);
@@ -65,6 +71,15 @@ int vbe_set_mode(int mode);
 int vbe_set_palette_bits(int bits);
 void vbe_set_palette(int idx, int *col, int count, int bits);
 
+#define VBE_SET_DISP_START_NOW         0
+#define VBE_SET_DISP_START_VBLANK      0x80
+int vbe_set_disp_start(int x, int y, int when);
+
+#define VBE_SCANLEN_PIXELS     0
+#define VBE_SCANLEN_BYTES      2
+int vbe_set_scanlen(int len, int mode);
+int vbe_get_scanlen(int mode);
+
 void print_mode_info(FILE *fp, struct vbe_mode_info *modei);
 
 #endif /* VBE_H_ */