mirror of https://github.com/lianthony/NT4.0
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
3.8 KiB
156 lines
3.8 KiB
/**************************************************************************\
|
|
|
|
$Header: o:\src/RCS/EDID.H 1.2 95/07/07 06:15:17 jyharbec Exp $
|
|
|
|
$Log: EDID.H $
|
|
* Revision 1.2 95/07/07 06:15:17 jyharbec
|
|
* *** empty log message ***
|
|
*
|
|
* Revision 1.1 95/05/02 05:16:15 jyharbec
|
|
* Initial revision
|
|
*
|
|
|
|
\**************************************************************************/
|
|
|
|
/****** EDID.H ******/
|
|
typedef struct
|
|
{
|
|
word DispWidth;
|
|
word DispHeight;
|
|
word RefreshRate;
|
|
bool Support;
|
|
Vidset VideoSet[3];
|
|
} VesaSet;
|
|
|
|
typedef struct
|
|
{
|
|
VesaSet VesaParam[20];
|
|
} *VBoardVesaSet;
|
|
|
|
typedef struct
|
|
{
|
|
word pixel_clock;
|
|
byte h_active;
|
|
byte h_blanking;
|
|
byte ratio_hor;
|
|
byte v_active;
|
|
byte v_blanking;
|
|
byte ratio_vert;
|
|
byte h_sync_offset;
|
|
byte h_sync_pulse_width;
|
|
byte ratio_sync;
|
|
byte mix;
|
|
byte h_image_size;
|
|
byte v_image_size;
|
|
byte ratio_image_size;
|
|
byte h_border;
|
|
byte v_border;
|
|
byte flags;
|
|
|
|
} DET_TIM;
|
|
|
|
#ifdef WINDOWS_NT
|
|
#pragma pack(1)
|
|
#endif
|
|
|
|
typedef struct
|
|
{
|
|
byte header[8];
|
|
struct
|
|
{
|
|
word id_manufacture_name;
|
|
word id_product_code;
|
|
dword id_serial_number;
|
|
byte week_of_manufacture;
|
|
byte year_of_manufacture;
|
|
} product_id;
|
|
struct
|
|
{
|
|
byte version;
|
|
byte revision;
|
|
} edid_ver_rev;
|
|
struct
|
|
{
|
|
byte video_input_definition;
|
|
byte max_h_image_size;
|
|
byte max_v_image_size;
|
|
byte display_transfer_charac;
|
|
byte feature_support_dpms;
|
|
} features;
|
|
struct
|
|
{
|
|
byte red_green_low_bits;
|
|
byte blue_white_low_bits;
|
|
byte redx;
|
|
byte redy;
|
|
byte greenx;
|
|
byte greeny;
|
|
byte bluex;
|
|
byte bluey;
|
|
byte whitex;
|
|
byte whitey;
|
|
} color_char;
|
|
struct
|
|
{
|
|
byte est_timings_I;
|
|
byte est_timings_II;
|
|
byte man_res_timings;
|
|
} established_timings;
|
|
word standard_timing_id[8];
|
|
|
|
DET_TIM detailed_timing[4];
|
|
|
|
byte extension_flag;
|
|
byte checksum;
|
|
|
|
} EDID;
|
|
|
|
#ifdef WINDOWS_NT
|
|
#pragma pack( )
|
|
#endif
|
|
|
|
typedef struct
|
|
{
|
|
byte index;
|
|
byte data;
|
|
} CRTCTable;
|
|
|
|
extern byte SupportDDC[NB_BOARD_MAX];
|
|
extern byte iBoard;
|
|
extern char DefaultVidset[];
|
|
extern char *mgainf;
|
|
extern volatile byte _FAR *pMGA;
|
|
extern void ScreenOff(void);
|
|
extern void ScreenOn(void);
|
|
extern VBoardVesaSet VBoardVesaParam;
|
|
|
|
extern void CheckDDC(HwData * HwDataPtr);
|
|
extern byte InDDCTable(dword DispWidth);
|
|
extern Vidset* FindDDCFreq(dword DispWidth);
|
|
extern void Add1152Timings(void);
|
|
|
|
#ifdef WINDOWS_NT
|
|
extern VOID ScanSDA(volatile byte _FAR *pMGA, word *Buffer, word *Dummy);
|
|
extern BOOLEAN DetectSDA(volatile byte _FAR *pMGA);
|
|
|
|
ULONG SetCounter(volatile byte _FAR *pBoardRegs);
|
|
VOID PullDwClock(volatile byte _FAR *pBoardRegs, ULONG ulCounter);
|
|
UCHAR SendStart(volatile byte _FAR *pBoardRegs, ULONG ulCounter);
|
|
VOID SendStop(volatile byte _FAR *pBoardRegs, ULONG ulCounter);
|
|
UCHAR WaitAck(volatile byte _FAR *pBoardRegs, ULONG ulCounter);
|
|
VOID SendAck(volatile byte _FAR *pBoardRegs, ULONG ulCounter);
|
|
VOID WriteByte(volatile byte _FAR *pBoardRegs, ULONG ulCounter, UCHAR ucData);
|
|
UCHAR ReadByte(volatile byte _FAR *pBoardRegs, ULONG ulCounter);
|
|
#else
|
|
extern void ScanSDA(word sel,word EdidBufferSel,dword EdidBufferOff);
|
|
extern byte DetectSDA(word sel);
|
|
|
|
extern dword SetCounter(word sel);
|
|
extern void PullDwClock (word sel,dword DelayTime);
|
|
extern byte SendStart(word sel,dword DelayTime);
|
|
extern void SendStop(word sel,dword DelayTime);
|
|
extern byte WaitAck(word sel,dword DelayTime);
|
|
extern void SendAck(word sel,dword DelayTime);
|
|
extern void WriteByte(word sel,dword DelayTime,byte SendByte);
|
|
extern byte ReadByte(word sel,dword DelayTime);
|
|
#endif
|