|
|
/************************************************************************/ /* */ /* VDPDATA.H */ /* */ /* Copyright (c) 1993, ATI Technologies Incorporated. */ /************************************************************************/
/********************** PolyTron RCS Utilities
$Revision: 1.1 $ $Date: 20 Jul 1995 18:02:24 $ $Author: mgrubac $ $Log: S:/source/wnt/ms11/miniport/vcs/vdpdata.h $ * * Rev 1.1 20 Jul 1995 18:02:24 mgrubac * Added support for VDIF files. * * Rev 1.0 31 Jan 1994 11:50:04 RWOLFF * Initial revision. Rev 1.1 05 Nov 1993 13:33:58 RWOLFF Fixed clock frequency table. Rev 1.0 16 Aug 1993 13:32:32 Robert_Wolff Initial revision. Rev 1.1 04 May 1993 16:51:10 RWOLFF Switched from floating point to long integers due to lack of floating point support in Windows NT kernel-mode code. Rev 1.0 30 Apr 1993 16:47:18 RWOLFF Initial revision.
End of PolyTron RCS section *****************/
#ifdef DOC
VDPDATA.H - Definitions and structures used internally by VDPTOCRT.C.
#endif
/*
* Sync polarities. INTERNAL_ERROR is an error code for functions * which have 0 as a legitimate return (e.g. GetPolarity). Functions * which do not have zero as a legitimate return value should follow * the "Zero = failure, Nonzero = success" convention. */ #define POSITIVE 0
#define NEGATIVE 1
#define INTERNAL_ERROR -1
// GENERAL CONSTANTS
#define NONINTERLACED 0
#define INTERLACED 1
/*
* Constants used in pseudo-floating point calculations */ #define THOUSAND 1000L
#define HALF_MILLION 500000L
#define MILLION 1000000L
/*
* Data structure used for horz and vert information from the vddp file */ typedef struct _HALFDATA { long Resolution; // pixels
unsigned long ScanFrequency; // horz - Hz, vert - mHz
char Polarity; // positive or negative
unsigned long SyncWidth, // horz - ns, vert - us
FrontPorch, // horz - ns, vert - us
BackPorch, // horz - ns, vert - us
ActiveTime, // horz - ns, vert - us
BlankTime; // horz - ns, vert - us
} HALFDATA, *P_HALFDATA;
/*
* Data structure used for complete preadjusted timing data set */ typedef struct _TIMINGDATA { char ModeName[33]; // name of the video mode
char Interlaced; // interlaced or non-interlaced mode
HALFDATA HorzData; // horizontal data
HALFDATA VertData; // vertical data
} TIMINGDATA, *P_TIMINGDATA;
/*
* Data structure used to hold number of timings sections and pointers to * timings buffer for each limits section */ typedef struct _LIMITSDATA { unsigned long DotClock; // maximum pixel clock -- for all assoc. timings
long TimingsCount; // number of timings section for this limits sec.
P_TIMINGDATA TimingsPtr; // pointer to buffer holding timings data
}LIMITSDATA, *P_LIMITSDATA;
typedef struct { char video_mode[33]; unsigned char h_total, h_disp, h_sync_strt, h_sync_wid; unsigned long v_total, v_disp, v_sync_strt; unsigned char v_sync_wid, disp_cntl, crt_pitch, clk_sel; unsigned long pixel_clk;
// ***** the values below this comment were added for instvddp.exe *****
unsigned char lock,fifo_depth,vga_refresh_rate_code; unsigned long control,hi_color_ctl,hi_color_vfifo; } crtT;
#if 0
typedef enum { clk_43MHz = 0, clk_49MHz = 1, clk_93MHz = 2, clk_36MHz = 3, clk_50MHz = 4, clk_57MHz = 5, clk_extrn1 = 6, clk_45MHz = 7, clk_30MHz = 8, clk_32MHz = 9, clk_110MHz = 10, clk_80MHz = 11, clk_40MHz = 12, clk_75MHz = 14, clk_65MHz = 15 } clockT; #endif
#if 1
typedef enum { clk_100MHz = 0, clk_126MHz = 1, clk_93MHz = 2, clk_36MHz = 3, clk_50MHz = 4, clk_57MHz = 5, clk_extrn1 = 6, clk_45MHz = 7, clk_135MHz = 8, clk_32MHz = 9, clk_110MHz = 10, clk_80MHz = 11, clk_40MHz = 12, clk_75MHz = 14, clk_65MHz = 15 } clockT; #endif
typedef struct { long clock_selector; long clock_freq; } clk_infoT;
#ifdef INCLUDE_VDPDATA
#if 0
/* These are the pixel clocks for the 18810 Clock Chip */ clk_infoT clock_info[16] = { { clk_43MHz , 42.95E+6 }, { clk_49MHz , 48.77E+6 }, { clk_93MHz , 92.40E+6 }, { clk_36MHz , 36.00E+6 }, { clk_50MHz , 50.35E+6 }, { clk_57MHz , 56.64E+6 }, { clk_extrn1 , 0.000000 }, { clk_45MHz , 44.90E+6 }, { clk_30MHz , 30.24E+6 }, { clk_32MHz , 32.00E+6 }, { clk_110MHz , 110.0E+6 }, { clk_80MHz , 80.00E+6 }, { clk_40MHz , 40.00E+6 }, { clk_75MHz , 75.00E+6 }, { clk_65MHz , 65.00E+6 }, { -1 , 0.000000 } }; #endif
#if 1
/* These are the pixel clocks for the 18811-1 Clock Chip */ clk_infoT clock_info[16] = { { clk_100MHz , 100000000L }, { clk_126MHz , 126000000L }, { clk_93MHz , 92400000L }, { clk_36MHz , 36000000L }, { clk_50MHz , 50350000L }, { clk_57MHz , 56640000L }, { clk_extrn1 , 0L }, { clk_45MHz , 44900000L }, { clk_135MHz , 135000000L }, { clk_32MHz , 32000000L }, { clk_110MHz , 110000000L }, { clk_80MHz , 80000000L }, { clk_40MHz , 40000000L }, { clk_75MHz , 75000000L }, { clk_65MHz , 65000000L }, { -1 , 0L } }; #endif
#else
extern clk_infoT clock_info[16]; #endif
|