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
);
53 INT __cdecl
abs(INT nm
);
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)
72 void DIB_BltFromVGA(int x
, int y
, int w
, int h
, void *b
, int Dest_lDelta
);
73 void DIB_BltToVGA(int x
, int y
, int w
, int h
, void *b
, int Source_lDelta
, int StartMod
);
74 void DIB_BltToVGAWithXlate(int x
, int y
, int w
, int h
, void *b
, int Source_lDelta
, XLATEOBJ
* Xlate
);
75 void DIB_TransparentBltToVGA(int x
, int y
, int w
, int h
, void *b
, int Source_lDelta
, ULONG trans
);