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