1 // FIXME: Make these variables so we can also use modes like 800x600
5 #define SCREEN_STRIDE 80
12 //This is in mingw standard headers
13 //typedef struct { int quot, rem; } div_t;
15 extern int maskbit[640];
17 extern int xconv[640];
19 extern int startmasks[8];
20 extern int endmasks[8];
22 extern UCHAR PreCalcReverseByte[256];
29 #define GRAPHICS 0x3ce
34 typedef struct _VideoMode {
35 unsigned short VidSeg;
37 unsigned char Feature;
39 unsigned char Crtc[25];
41 unsigned char Attrib[21];
45 VOID vgaPutPixel(INT x, INT y, UCHAR c);
46 VOID vgaPutByte(INT x, INT y, UCHAR c);
47 VOID vgaGetByte(ULONG offset,
50 INT vgaGetPixel(INT x, INT y);
51 BOOL vgaHLine(INT x, INT y, INT len, UCHAR c);
52 BOOL vgaVLine(INT x, INT y, INT len, UCHAR c);
54 BOOL VGADDIIntersectRect(PRECTL prcDst, PRECTL prcSrc1, PRECTL prcSrc2);
56 #define SEQ_I 0x3C4 /* Sequencer Index */
57 #define SEQ_D 0x3C5 /* Sequencer Data Register */
59 #define GRA_I 0x3CE /* Graphics Controller Index */
60 #define GRA_D 0x3CF /* Graphics Controller Data Register */
62 #define LowByte(w) (*((unsigned char *)&(w) + 0))
63 #define HighByte(w) (*((unsigned char *)&(w) + 1))
65 #define ASSIGNVP4(x, y, vp) vp = vidmem /* VBUF */ + (((x) + (y)*SCREEN_X) >> 3);
66 #define ASSIGNMK4(x, y, mask) mask = 0x80 >> ((x) & 7);
68 void get_masks(int x, int w);
70 #define mod8(n) ((n)&7)
71 #define mod2(n) ((n)&1)