210 lines
11 KiB
C
210 lines
11 KiB
C
/*-----------------------------------------------------------------------------
|
|
; Extern lib_svga 386
|
|
;-----------------------------------------------------------------------------*/
|
|
|
|
#ifdef WATCOM9
|
|
#pragma library ( "f:\projet\lib386\lib_svga\lb9_svga.lib" );
|
|
#else
|
|
#pragma library ( "f:\projet\lib386\lib_svga\lib_svga.lib" );
|
|
#endif
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
|
|
#define SVGA_VESA 0 /* VESA compliant board at Adress 0xA0000 */
|
|
#define SVGA_TRIDENT 1 /* Trident 8800 & 8900 */
|
|
#define SVGA_ATI 2 /* ATI Chipset */
|
|
#define SVGA_S3 3 /* S3 Boards (expect init with VESA mode 102) */
|
|
#define SVGA_CIRRUS 4 /* Cirrus (some Genoa) (expect init with VESA mode 102) */
|
|
#define SVGA_TSENG 5 /* Tseng ET3000 & ET4000 */
|
|
#define SVGA_WESTERN 6 /* Western Digital / Paradise */
|
|
#define SVGA_GENOA 7 /* REAL Genoa (not Cirrus or ET3000) */
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
extern WORD ClipXmin ;
|
|
extern WORD ClipYmin ;
|
|
extern WORD ClipXmax ;
|
|
extern WORD ClipYmax ;
|
|
|
|
extern ULONG TabOffLine ;
|
|
extern UBYTE *Phys ;
|
|
extern UBYTE *Log ;
|
|
extern UBYTE *MemoLog ;
|
|
extern WORD Screen_X ;
|
|
extern WORD Screen_Y ;
|
|
extern UBYTE Text_Ink ;
|
|
extern UBYTE Text_Paper ;
|
|
extern UBYTE OldVideo ;
|
|
extern WORD SizeCar ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
extern WORD Svga_Card ;
|
|
extern void *BankChange ;
|
|
extern LONG BankCurrent ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
|
|
extern WORD TypePoly ;
|
|
|
|
extern WORD NbPolyPoints ;
|
|
|
|
extern WORD TabPoly[] ;
|
|
extern WORD TabText[] ;
|
|
|
|
extern WORD TabVerticG[] ;
|
|
extern WORD TabVerticD[] ;
|
|
extern WORD Ymin ;
|
|
extern WORD Ymax ;
|
|
|
|
extern WORD TabCoulG[] ;
|
|
extern WORD TabCoulD[] ;
|
|
|
|
/*──────────────────────────────────────────────────────────────────────────*/
|
|
/* MOUSE.C */
|
|
extern volatile LONG Click ;
|
|
extern volatile LONG Mouse_X ;
|
|
extern volatile LONG Mouse_Y ;
|
|
extern LONG Mouse_X_Dep ;
|
|
extern LONG Mouse_Y_Dep ;
|
|
extern UBYTE *GphMouse ;
|
|
|
|
extern void __loadds __far click_handler(int ,int ,int );
|
|
extern void SetMouseBox(long ,long ,long ,long );
|
|
extern void SetMouseSpeed(long ,long );
|
|
extern void SetMousePos(long ,long );
|
|
extern void GetMouseDep(void);
|
|
extern void ShowMouse(long );
|
|
extern void AffMouse(void);
|
|
extern void SetMouse(short );
|
|
extern void InitMouse(void);
|
|
extern void ClearMouse(void);
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* S_PAL.asm */
|
|
void PalOne( UBYTE coul, UBYTE r, UBYTE v, UBYTE b ) ;
|
|
void PalMulti( WORD startcoul, WORD nbcoul, UBYTE *pal ) ;
|
|
void Palette( void *pal ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* FONT.ASM */
|
|
void CoulFont( LONG couleur ) ;
|
|
void SetFont( void *font, LONG interleave, LONG interspace ) ;
|
|
LONG SizeFont( void *chaine ) ;
|
|
LONG CarFont( LONG xcar, LONG ycar, LONG car ) ;
|
|
void Font( LONG xchaine, LONG ychaine, void *chaine ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* GRAPH_A.ASM */
|
|
void AffGraph( LONG num, LONG x, LONG y, void *bank ) ;
|
|
void GetDxDyGraph( LONG num, LONG *dx, LONG *dy, void *bank ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* MASK_A.ASM */
|
|
void AffMask( LONG num, LONG x, LONG y, void *bank ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* InitSvga.asm */
|
|
void SetClip( LONG x0, LONG y0, LONG x1, LONG y1 ) ;
|
|
void UnSetClip( void ) ;
|
|
void MemoClip( void ) ;
|
|
void RestoreClip( void ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* Box.asm */
|
|
void Box( LONG x0, LONG y0, LONG x1, LONG y1, LONG couleur ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* Line.asm */
|
|
void Line( LONG x0, LONG y0, LONG x1, LONG y1, LONG couleur ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* Zoom.asm */
|
|
void ScaleLine( LONG xa0, LONG xa1, void *src, LONG xb0, LONG xb1, void *dst ) ;
|
|
void ScaleBox( LONG xa0, LONG ya0, LONG xa1, LONG ya1, void *src,
|
|
LONG xb0, LONG yb0, LONG xb1, LONG yb1, void *dst ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* CopyMask.asm */
|
|
void CopyMask( LONG num, LONG x, LONG y, void *bank, void* screen ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* Mask_A.asm */
|
|
void CoulMask( LONG coulmask ) ;
|
|
void AffMask( LONG num, LONG x, LONG y, void *bank ) ;
|
|
void GetDxDyMask( LONG num, LONG *dx, LONG *dy, void *bank ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* S_PLOT.asm.asm */
|
|
void Plot( LONG x, LONG y, LONG couleur ) ;
|
|
LONG GetPlot( LONG x, LONG y ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* S_SCREEN.asm */
|
|
void Cls( void ) ;
|
|
void CopyScreen( void *src, void *dst ) ;
|
|
void Vsync( void ) ;
|
|
void Flip( void ) ;
|
|
void FlipComp( void ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* S_STRING.asm */
|
|
void AffString( LONG x, LONG y, void *text ) ;
|
|
void CoulText( LONG coul0, LONG coul1 ) ;
|
|
extern UBYTE Font8X8 ;
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* S_BLOCK2.asm */
|
|
void CopyBlockOnBlack( LONG x0, LONG y0, LONG x1, LONG y1, void *src, void *dst ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* GRAPHMSK.asm */
|
|
LONG CalcGraphMsk( LONG num, void *bank, void *mask ) ;
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* S_BLOCK.asm */
|
|
void CopyBlock( LONG x0, LONG y0, LONG x1, LONG y1, void *src,
|
|
LONG xd, LONG yd, void *dst ) ;
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* S_BLOCK3.asm */
|
|
void CopyBlockIncrust( LONG x0, LONG y0, LONG x1, LONG y1, void *src,
|
|
LONG xd, LONG yd, void *dst ) ;
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* S_PHYS.asm */
|
|
// void CopyBlockIncrust( LONG x0, LONG y0, LONG x1, LONG y1 ) ;
|
|
void CopyBlockPhysClip( LONG x0, LONG y0, LONG x1, LONG y1 ) ;
|
|
void CopyBlockPhys( LONG x0, LONG y0, LONG x1, LONG y1 ) ;
|
|
void SaveBlock( void *screen, void *buffer, LONG x, LONG y, LONG dx, LONG dy ) ;
|
|
void RestoreBlock( void *screen, void *buffer, LONG x, LONG y, LONG dx, LONG dy ) ;
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* LBM.c 320*200 */
|
|
|
|
extern WORD Lbm_Width ; // 640 or 320 (for source format)
|
|
|
|
extern unsigned char ReadIff(void);
|
|
extern void WriteIff(void *,unsigned long );
|
|
extern void WriteIffLong(unsigned long );
|
|
extern void itoml(void *);
|
|
extern void lit_bmhd(void);
|
|
extern void lit_bloc(void);
|
|
extern void lit_ligne(unsigned char *,short );
|
|
extern void ConvertMCGA(unsigned char *,unsigned char *,unsigned short ,short );
|
|
extern void lit_bodyILBM(unsigned char *);
|
|
extern void lit_bodyPBM(unsigned char *);
|
|
extern long Load_Lbm(char *,unsigned char *,unsigned char *);
|
|
extern long Save_Lbm(char *,unsigned char *,unsigned char *);
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* PCX.c 640*480 */
|
|
|
|
extern void line_out(unsigned char *);
|
|
extern unsigned char next_char(unsigned long ,unsigned char *);
|
|
extern void Load_Pcx(char *,unsigned char *,unsigned char *);
|
|
extern void Save_Pcx(char *,unsigned char *,unsigned char *);
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* s_dll.c */
|
|
|
|
extern long SvgaInitDLL(char *);
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* s_text.c */
|
|
extern void Text(short ,short ,char * ,... );
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* s_rect.c */
|
|
|
|
extern void Rect(long ,long ,long ,long ,long );
|
|
|
|
/*-----------------------------------------------------------------------------*/
|
|
/* initmode.c */
|
|
|
|
extern void InitGraphSvga(void);
|
|
extern void ClearGraphSvga(void);
|
|
extern void InitGraphMcga(void);
|
|
extern void ClearGraphMcga(void);
|