]> 4ch.mooo.com Git - 16.git/blobdiff - 16/lib/MODEX16.H
ok!! wwww i did some fuckings and it looks like the fack is fucked www
[16.git] / 16 / lib / MODEX16.H
index 880f2c8bd4654fbf5916bf71e08f9b6c1695064d..2adc5c433fe5ed1b6b3f153650d5b447d3cd400d 100644 (file)
@@ -4,12 +4,11 @@
 #ifndef MODEX16_H\r
 #define MODEX16_H\r
 #include <conio.h>\r
-#include "lib\types.h"\r
-\r
+#include "lib\types.h"
+
 /* -========================== Types & Macros ==========================- */\r
 #define PAGE_OFFSET(x,y) (((y)<<6)+((y)<<4)+((x)>>2))\r
 #define PLANE(x) (1<< (x&3))\r
-typedef byte far* page_t;\r
 #define SELECT_ALL_PLANES() outpw(0x03c4, 0xff02)\r
 typedef struct {\r
     byte *data;\r
@@ -18,15 +17,28 @@ typedef struct {
     byte *palette;\r
 } bitmap_t;\r
 \r
+typedef struct {\r
+    byte far* data;    /* the data for the page */\r
+    word dx;           /* col we are viewing on the virtual screen */\r
+    word dy;           /* row we are viewing on the virtual screen */\r
+    word width;                /* virtual width of the page */\r
+    word height;       /* virtual height of the page */\r
+} page_t;\r
+\r
 /* -============================ Functions =============================- */\r
 /* mode switching, page, and plane functions */\r
-void modexEnter();\r
-void modexLeave();\r
-void modexShowPage(page_t page);\r
+void modexEnter();
+void setvideo(/*byte mode, */short vq);\r
+page_t modexDefaultPage();\r
+page_t modexNextPage(page_t *p);\r
+void modexShowPage(page_t *page);\r
 void modexPanPage(page_t *page, int dx, int dy);\r
 void modexSelectPlane(byte plane);\r
-void modexClearRegion(page_t page, int x, int y, int w, int h, byte color);\r
-void modexDrawBmp(page_t page, int x, int y, bitmap_t *bmp, byte sprite);\r
+void modexClearRegion(page_t *page, int x, int y, int w, int h, byte color);\r
+void modexDrawBmp(page_t *page, int x, int y, bitmap_t *bmp);\r
+void modexDrawBmpRegion(page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp);\r
+void modexDrawSprite(page_t *page, int x, int y, bitmap_t *bmp);\r
+void modexDrawSpriteRegion(page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp);\r
 \r
 /* Palette fade and flash effects */\r
 void modexFadeOn(word fade, byte *palette);\r
@@ -49,10 +61,11 @@ void modexPalUpdate(byte *p);
 void modexWaitBorder();\r
 \r
 /* bitmap functions */\r
-bitmap_t modexLoadPcx(char *filename);\r
+bitmap_t modexLoadPcx(char *filename);
 \r
 /* -======================= Constants & Vars ==========================- */\r
 extern byte far*  VGA;  /* The VGA Memory */\r
+#define SCREEN_SEG             0xa000\r
 #define VIDEO_INT              0x10\r
 #define SET_MODE               0x00\r
 #define VGA_256_COLOR_MODE     0x13\r
@@ -61,6 +74,7 @@ extern byte far*  VGA;  /* The VGA Memory */
 #define SCREEN_HEIGHT          240\r
 #define PAGE_SIZE              (word)(SCREEN_WIDTH/4 * SCREEN_HEIGHT)\r
 \r
+#define AC_INDEX               0x03c0\r
 #define SC_INDEX               0x03c4\r
 #define SC_DATA                        0x03c5\r
 #define CRTC_INDEX             0x03d4\r
@@ -75,5 +89,14 @@ extern byte far*  VGA;  /* The VGA Memory */
 #define PAL_READ_REG            0x03C7   /* Color register, read address */\r
 #define PAL_WRITE_REG           0x03C8   /* Color register, write address */\r
 #define PAL_DATA_REG            0x03C9   /* Color register, data port */\r
-#define PAL_SIZE                (256 * 3)\r
+#define PAL_SIZE                (256 * 3)
+
+#define NUM_COLORS     256 // number of colors in vga mode\r
+#define BONK       400\r
+#define LGQ         32\r
+#define HGQ         55\r
+#define TILEWH                 16
+#define QUADWH                 TILEWH/2
+#define VW     (SCREEN_WIDTH+32)\r
+#define VH     (SCREEN_HEIGHT+32)\r
 #endif\r