X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;ds=sidebyside;f=16%2Fmodex16%2FMODEX16.H;fp=16%2Fmodex16%2FMODEX16.H;h=81960dd8ab4cb979e6685b29e4f00aa5ab503298;hb=42b3ed060a69fb588c7b933748400f2a052add0c;hp=7bd92bc1dcb5101cfe14e45a97009e2012ccbb00;hpb=e39146d878b2182cf44e648f55a3253dc5b8e98d;p=16.git diff --git a/16/modex16/MODEX16.H b/16/modex16/MODEX16.H index 7bd92bc1..81960dd8 100644 --- a/16/modex16/MODEX16.H +++ b/16/modex16/MODEX16.H @@ -9,7 +9,6 @@ /* -========================== Types & Macros ==========================- */ #define PAGE_OFFSET(x,y) (((y)<<6)+((y)<<4)+((x)>>2)) #define PLANE(x) (1<< (x&3)) -typedef byte far* page_t; #define SELECT_ALL_PLANES() outpw(0x03c4, 0xff02) typedef struct { byte *data; @@ -18,15 +17,28 @@ typedef struct { byte *palette; } bitmap_t; +typedef struct { + byte far* data; /* the data for the page */ + word dx; /* col we are viewing on the virtual screen */ + word dy; /* row we are viewing on the virtual screen */ + word width; /* virtual width of the page */ + word height; /* virtual height of the page */ +} page_t; + /* -============================ Functions =============================- */ /* mode switching, page, and plane functions */ void modexEnter(); void modexLeave(); -void modexShowPage(page_t page); +page_t modexDefaultPage(); +page_t modexNextPage(page_t *p); +void modexShowPage(page_t *page); void modexPanPage(page_t *page, int dx, int dy); void modexSelectPlane(byte plane); -void modexClearRegion(page_t page, int x, int y, int w, int h, byte color); -void modexDrawBmp(page_t page, int x, int y, bitmap_t *bmp, byte sprite); +void modexClearRegion(page_t *page, int x, int y, int w, int h, byte color); +void modexDrawBmp(page_t *page, int x, int y, bitmap_t *bmp); +void modexDrawBmpRegion(page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp); +void modexDrawSprite(page_t *page, int x, int y, bitmap_t *bmp); +void modexDrawSpriteRegion(page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp); /* Palette fade and flash effects */ void modexFadeOn(word fade, byte *palette); @@ -53,6 +65,7 @@ bitmap_t modexLoadPcx(char *filename); /* -======================= Constants & Vars ==========================- */ extern byte far* VGA; /* The VGA Memory */ +#define SCREEN_SEG 0xa000 #define VIDEO_INT 0x10 #define SET_MODE 0x00 #define VGA_256_COLOR_MODE 0x13 @@ -61,6 +74,7 @@ extern byte far* VGA; /* The VGA Memory */ #define SCREEN_HEIGHT 240 #define PAGE_SIZE (word)(SCREEN_WIDTH/4 * SCREEN_HEIGHT) +#define AC_INDEX 0x03c0 #define SC_INDEX 0x03c4 #define SC_DATA 0x03c5 #define CRTC_INDEX 0x03d4