/*
*    DivaPC ARM C source
*
*    VID.H.MODES  - Video Mode-related things
*
*
*         08-01-92 INH  Original
*                       Many revisions later...
*         16-03-93      TEXT_FONT_SIZE replaced by TBL_FontPosition
* 2.00    17-01-96      Fixed text mode deleted, 256CLR generic mode
* 2.01    20-06-96      VESA bits added
* 2.15  1997.10.14 RW   Accelerated VESA
*/

#define  VGA_RAM_SIZE (256*1024)


extern int   VID_PCYtotal;
extern int   VID_PCXtotal;
extern int   VID_PCbpp;
extern int   VID_ScanLineLen; /* Only used if something sets it explicitly */
extern int   VID_DispStart32;
extern bool  VID_FullScreenActive;
extern bool  VID_256ClrNeedsTranslate;

extern bool VID_Init(void);

extern int   VID_GetVESAModeCaps ( void );
extern void  VID_ModesInit( void );

extern void  VID_UpdateModeVars    ( void );
extern void  VID_UpdateX           ( int );
extern void  VID_RedrawBuffer      ( void );
extern bool VID_FindModeSel ( int X, int Y, int bpp,
                         bool pal, bool inexact,
                         int *pY_out, ModeSpec *pModeOut );

extern void  VID_RedrawRequest ( int timer );
  /* 'Ticks' should be a typical time before the redraw should be done */
extern void  VID_AreaChanged ( int, int, int, int, int );
extern void VID_DoChangedRegion ( int PCmin, int PCmax );

extern void  VID_SetSpriteBase ( int offset );

extern int   VID_SetupWinMode ( char *modestring );
extern bool  VID_AllocVidMem ( int size );

extern int   VID_WatchBytesPerLine;
extern int   VID_MemorySize;
extern int   VID_SpriteHeight;
extern int   VID_ImageSize;
extern int   VID_TextModeRows;
extern int   VID_TextModeCols;
extern BYTE *VID_RealScreenBase;

/* VID_ModeType & related variables ******************************* */

#define  MODE_NONE    0
#define  MODE_TEXT    1
#define  MODE_CGA45   2
#define  MODE_CGA6    4
#define  MODE_VGA     8
#define  MODE_256CLR  16
#define  MODE_WINDOWS 32
#define  MODE_VESA    64

extern int   VID_ModeType;

/* General purpose routines ******************** */

extern int max  ( int, int );
extern int min  ( int, int );
extern int clip ( int, int, int );

/*extern bool AccelerateVESA;
extern int  AcceleratedVESAModeSize;*/

