// ID_VL.H // wolf compatability #define MS_Quit Quit void Quit (char *error); //=========================================================================== #define SC_INDEX 0x3C4 #define SC_RESET 0 #define SC_CLOCK 1 #define SC_MAPMASK 2 #define SC_CHARMAP 3 #define SC_MEMMODE 4 #define CRTC_INDEX 0x3D4 #define CRTC_H_TOTAL 0 #define CRTC_H_DISPEND 1 #define CRTC_H_BLANK 2 #define CRTC_H_ENDBLANK 3 #define CRTC_H_RETRACE 4 #define CRTC_H_ENDRETRACE 5 #define CRTC_V_TOTAL 6 #define CRTC_OVERFLOW 7 #define CRTC_ROWSCAN 8 #define CRTC_MAXSCANLINE 9 #define CRTC_CURSORSTART 10 #define CRTC_CURSOREND 11 #define CRTC_STARTHIGH 12 #define CRTC_STARTLOW 13 #define CRTC_CURSORHIGH 14 #define CRTC_CURSORLOW 15 #define CRTC_V_RETRACE 16 #define CRTC_V_ENDRETRACE 17 #define CRTC_V_DISPEND 18 #define CRTC_OFFSET 19 #define CRTC_UNDERLINE 20 #define CRTC_V_BLANK 21 #define CRTC_V_ENDBLANK 22 #define CRTC_MODE 23 #define CRTC_LINECOMPARE 24 #define GC_INDEX 0x3CE #define GC_SETRESET 0 #define GC_ENABLESETRESET 1 #define GC_COLORCOMPARE 2 #define GC_DATAROTATE 3 #define GC_READMAP 4 #define GC_MODE 5 #define GC_MISCELLANEOUS 6 #define GC_COLORDONTCARE 7 #define GC_BITMASK 8 #define ATR_INDEX 0x3c0 #define ATR_MODE 16 #define ATR_OVERSCAN 17 #define ATR_COLORPLANEENABLE 18 #define ATR_PELPAN 19 #define ATR_COLORSELECT 20 #define STATUS_REGISTER_1 0x3da #define PEL_WRITE_ADR 0x3c8 #define PEL_READ_ADR 0x3c7 #define PEL_DATA 0x3c9 //=========================================================================== #define SCREENSEG 0xa000 #define SCREENWIDTH 80 // default screen width in bytes #define MAXSCANLINES 200 // size of ylookup table #define CHARWIDTH 2 #define TILEWIDTH 4 //=========================================================================== extern unsigned bufferofs; // all drawing is reletive to this extern unsigned displayofs,pelpan; // last setscreen coordinates extern unsigned screenseg; // set to 0xa000 for asm convenience extern unsigned linewidth; extern unsigned ylookup[MAXSCANLINES]; extern boolean screenfaded; extern unsigned bordercolor; //=========================================================================== // // VGA hardware routines // #define VGAWRITEMODE(x) asm{\ cli;\ mov dx,GC_INDEX;\ mov al,GC_MODE;\ out dx,al;\ inc dx;\ in al,dx;\ and al,252;\ or al,x;\ out dx,al;\ sti;} #define VGAMAPMASK(x) asm{cli;mov dx,SC_INDEX;mov al,SC_MAPMASK;mov ah,x;out dx,ax;sti;} #define VGAREADMAP(x) asm{cli;mov dx,GC_INDEX;mov al,GC_READMAP;mov ah,x;out dx,ax;sti;} void VL_Startup (void); void VL_Shutdown (void); void VL_SetVGAPlane (void); void VL_SetTextMode (void); void VL_DePlaneVGA (void); void VL_SetVGAPlaneMode (void); void VL_ClearVideo (byte color); void VL_SetLineWidth (unsigned width); void VL_SetSplitScreen (int linenum); void VL_WaitVBL (int vbls); void VL_CrtcStart (int crtc); void VL_SetScreen (int crtc, int pelpan); void VL_FillPalette (int red, int green, int blue); void VL_SetColor (int color, int red, int green, int blue); void VL_GetColor (int color, int *red, int *green, int *blue); void VL_SetPalette (byte far *palette); void VL_GetPalette (byte far *palette); void VL_FadeOut (int start, int end, int red, int green, int blue, int steps); void VL_FadeIn (int start, int end, byte far *palette, int steps); void VL_ColorBorder (int color); void VL_Plot (int x, int y, int color); void VL_Hlin (unsigned x, unsigned y, unsigned width, unsigned color); void VL_Vlin (int x, int y, int height, int color); void VL_Bar (int x, int y, int width, int height, int color); void VL_MungePic (byte far *source, unsigned width, unsigned height); void VL_DrawPicBare (int x, int y, byte far *pic, int width, int height); void VL_MemToLatch (byte far *source, int width, int height, unsigned dest); void VL_ScreenToScreen (unsigned source, unsigned dest,int width, int height); void VL_MemToScreen (byte far *source, int width, int height, int x, int y); void VL_MaskedToScreen (byte far *source, int width, int height, int x, int y); void VL_DrawTile8String (char *str, char far *tile8ptr, int printx, int printy); void VL_DrawLatch8String (char *str, unsigned tile8ptr, int printx, int printy); void VL_SizeTile8String (char *str, int *width, int *height); void VL_DrawPropString (char *str, unsigned tile8ptr, int printx, int printy); void VL_SizePropString (char *str, int *width, int *height, char far *font); void VL_TestPaletteSet (void);