434 lines
9.8 KiB
C
434 lines
9.8 KiB
C
/*****************************************************************************
|
||
*
|
||
* file name: defbind.h
|
||
*
|
||
******************************************************************************/
|
||
|
||
#ifdef __HC303__
|
||
|
||
#ifdef __ANSI_C__
|
||
#define _REGS REGS
|
||
|
||
/*** Configuration for compatibility with ASM ***/
|
||
#pragma Off(Args_in_regs_for_locals);
|
||
#else
|
||
/*** Configuration for compatibility with ASM ***/
|
||
pragma Off(Args_in_regs_for_locals);
|
||
#endif /* __ANSI_C__ */
|
||
|
||
#endif /* __HC303__ */
|
||
|
||
#ifdef __HC173__
|
||
|
||
#ifdef __ANSI_C__
|
||
#define _REGS REGS
|
||
|
||
/*** Optimizations turned off ***/
|
||
#pragma Off(Optimize_xjmp);
|
||
#pragma Off(Optimize_fp);
|
||
#pragma Off(Auto_reg_alloc);
|
||
#pragma Off(Postpone_arg_pops);
|
||
#else
|
||
/*** Optimizations turned off ***/
|
||
pragma Off(Optimize_xjmp);
|
||
pragma Off(Optimize_fp);
|
||
pragma Off(Auto_reg_alloc);
|
||
pragma Off(Postpone_arg_pops);
|
||
#endif /* __ANSI_C__ */
|
||
|
||
#endif /* __HC173__ */
|
||
|
||
|
||
|
||
#ifdef HIGHC162
|
||
#define _itoa itoa
|
||
#define _strnicmp strnicmp
|
||
#define _REGS REGS
|
||
#define _int86 int86
|
||
#define _inp inp
|
||
#define _outp outp
|
||
#define _stat stat
|
||
|
||
#ifdef SCRAP
|
||
struct WORDREGS {
|
||
unsigned int ax;
|
||
unsigned int bx;
|
||
unsigned int cx;
|
||
unsigned int dx;
|
||
unsigned int si;
|
||
unsigned int di;
|
||
unsigned int cflag;
|
||
};
|
||
|
||
|
||
struct BYTEREGS {
|
||
unsigned char al, ah, xax[sizeof(int)-2];
|
||
unsigned char bl, bh, xbx[sizeof(int)-2];
|
||
unsigned char cl, ch, xcx[sizeof(int)-2];
|
||
unsigned char dl, dh, xdx[sizeof(int)-2];
|
||
};
|
||
|
||
union REGS {
|
||
struct WORDREGS x;
|
||
struct BYTEREGS h;
|
||
struct BYTEREGS l;
|
||
};
|
||
|
||
struct SREGS {
|
||
unsigned short int es;
|
||
unsigned short int cs;
|
||
unsigned short int ss;
|
||
unsigned short int ds;
|
||
};
|
||
#endif
|
||
|
||
|
||
typedef unsigned int size_t;
|
||
extern char * itoa(int, char *, int);
|
||
extern int strnicmp(const char *__s1, const char *__s2, size_t __n);
|
||
/* extern int int86(int ,union REGS *, union REGS *); */
|
||
extern int inp(unsigned int);
|
||
extern int outp(unsigned int ,int );
|
||
extern stat(char *, struct stat *);
|
||
|
||
#endif
|
||
|
||
|
||
|
||
#ifdef __WATCOMC__
|
||
#define _itoa itoa
|
||
#define _strnicmp strnicmp
|
||
#define _REGS REGS
|
||
#define _int86 int386
|
||
#define _inp inp
|
||
#define _outp outp
|
||
#define _stat stat
|
||
#define _Far _far
|
||
#endif
|
||
|
||
#ifdef __MICROSOFTC600__
|
||
#define _itoa itoa
|
||
#define _strnicmp strnicmp
|
||
#define _REGS REGS
|
||
#define _int86 int86
|
||
#define _inp inp
|
||
#define _outp outp
|
||
#define _stat stat
|
||
#define _Far far
|
||
#endif
|
||
|
||
|
||
#ifdef WINDOWS
|
||
#define _itoa itoa
|
||
#define _strnicmp strnicmp
|
||
#define _int86 int86
|
||
#define _inp inp
|
||
#define _outp outp
|
||
#define _stat stat
|
||
#define _REGS REGS
|
||
#define HANDLE word
|
||
#define WORD word
|
||
typedef char _Far *LPSTR;
|
||
|
||
#endif
|
||
|
||
#ifdef OS2
|
||
|
||
#define _itoa itoa
|
||
#define _strnicmp strnicmp
|
||
#define HANDLE word
|
||
#define WORD word
|
||
|
||
#endif
|
||
|
||
|
||
#ifdef WINDOWS_NT
|
||
|
||
#define _REGS REGS
|
||
|
||
struct EXTDREGS {
|
||
unsigned long reax;
|
||
unsigned long rebx;
|
||
unsigned long recx;
|
||
unsigned long redx;
|
||
unsigned long resi;
|
||
unsigned long redi;
|
||
unsigned long recflag;
|
||
};
|
||
|
||
struct WORDREGS {
|
||
unsigned short ax;
|
||
unsigned short axh;
|
||
unsigned short bx;
|
||
unsigned short bxh;
|
||
unsigned short cx;
|
||
unsigned short cxh;
|
||
unsigned short dx;
|
||
unsigned short dxh;
|
||
unsigned short si;
|
||
unsigned short sih;
|
||
unsigned short di;
|
||
unsigned short dih;
|
||
unsigned short cflag;
|
||
unsigned short cflagh;
|
||
};
|
||
|
||
|
||
struct BYTEREGS {
|
||
unsigned char al, ah, xax[sizeof(long)-2];
|
||
unsigned char bl, bh, xbx[sizeof(long)-2];
|
||
unsigned char cl, ch, xcx[sizeof(long)-2];
|
||
unsigned char dl, dh, xdx[sizeof(long)-2];
|
||
};
|
||
|
||
union REGS {
|
||
struct EXTDREGS e;
|
||
struct WORDREGS x;
|
||
struct BYTEREGS h;
|
||
};
|
||
|
||
#endif /* #ifdef WINDOWS_NT */
|
||
|
||
|
||
/* RAMDAC type definition */
|
||
/*** BEN a revoir ***/
|
||
#define BT482 0
|
||
#define BT484 90
|
||
#define BT485 2
|
||
#define SIERRA 92
|
||
#define CHAMELEON 93
|
||
#define VIEWPOINT 1
|
||
#define TVP3026 9
|
||
#define PX2085 7
|
||
|
||
#define TITAN_ID 0xA2681700
|
||
#define NB_BOARD_MAX 7
|
||
#define NB_CRTC_PARAM 34
|
||
#define BINDING_REV 1
|
||
|
||
#define TITAN_CHIP 0
|
||
#define ATLAS_CHIP 1
|
||
#define ATHENA_CHIP 2
|
||
|
||
/* Buffer between the binding and CADDI (400 dword) */
|
||
#define BUF_BIND_SIZE 400
|
||
|
||
#define BLOCK_SIZE 262144 /* 1M of memory (value in dword) */
|
||
#define MOUSE_PORT 1
|
||
|
||
|
||
// also in caddi.h
|
||
#define CHAR_S 1
|
||
#define SHORT_S 2
|
||
#define LONG_S 4
|
||
#define FLOAT_S 4
|
||
#define UINTPTR_S (sizeof(UINT_PTR))
|
||
|
||
|
||
|
||
/*** MGA PRODUCT ID ***/
|
||
|
||
#define MGA_ULT_1M 1
|
||
#define MGA_ULT_2M 2
|
||
#define MGA_IMP_3M 3
|
||
#define MGA_IMP_3M_Z 4
|
||
#define MGA_PRO_4M5 5
|
||
#define MGA_PRO_4M5_Z 6
|
||
#define MGA_PCI_2M 7
|
||
#define MGA_PCI_4M 8
|
||
|
||
|
||
|
||
|
||
/*******************************************************/
|
||
/*** DEFINITIONS FOR MGA.INF ***/
|
||
|
||
#define VERSION_NUMBER 102
|
||
|
||
#define BIT8 0
|
||
#define BIT16 1
|
||
#define BITNARROW16 2
|
||
|
||
#define MONITOR_NA -1
|
||
#define MONITOR_NI 0
|
||
#define MONITOR_I 1
|
||
|
||
#define NUMBER_BOARD_MAX 7
|
||
#define NUMBER_OF_RES 8
|
||
#define NUMBER_OF_ZOOM 3
|
||
#define RES640 0
|
||
#define RES800 1
|
||
#define RES1024 2
|
||
#define RES1152 3
|
||
#define RES1280 4
|
||
#define RES1600 5
|
||
#define RESNTSC 6
|
||
#define RESPAL 7
|
||
|
||
/* DISPLAY SUPPORT */
|
||
# define DISP_SUPPORT_I 0x01 /* interlace */
|
||
# define DISP_SUPPORT_NA 0xa0 /* monitor limited */
|
||
# define DISP_SUPPORT_HWL 0xc0 /* hardware limited */
|
||
# define DISP_NOT_SUPPORT 0x80
|
||
|
||
|
||
|
||
|
||
|
||
typedef struct
|
||
{
|
||
word FbPitch;
|
||
byte DispType;
|
||
byte NumOffScr;
|
||
OffScrData *pOffScr; /* pointer to off screen area information */
|
||
}HwModeInterlace;
|
||
|
||
|
||
|
||
#ifdef __HIGHC__
|
||
|
||
/** USE packed (i.e. non aligned struct members)
|
||
*** because in mvtovid.c we access the struct
|
||
*** as an array. Highc1.73 do not aligned members
|
||
*** by default but Highc3.03 DO !!!!!!
|
||
**/
|
||
|
||
typedef _packed struct{
|
||
char name[26];
|
||
unsigned long valeur;
|
||
}vid;
|
||
|
||
#else
|
||
|
||
typedef struct{
|
||
char name[26];
|
||
unsigned long valeur;
|
||
}vid;
|
||
|
||
#endif
|
||
|
||
|
||
|
||
/*******************************************************/
|
||
|
||
|
||
/* VGA REGISTERS */
|
||
|
||
#define VGA_SEQ_CLOCKING_MODE 0x1
|
||
|
||
#define VGA_CRTC_INDEX 0x3d4
|
||
#define VGA_CRTC_DATA 0x3d5
|
||
|
||
#define VGA_HORIZONTAL_DISPLAY_ENABLE_END 0x01
|
||
#define VGA_START_ADDRESS_LOW 0x0d
|
||
#define VGA_START_ADDRESS_HIGH 0x0c
|
||
|
||
#define VGA_AUXILIARY_INDEX 0x3de
|
||
#define VGA_AUXILIARY_DATA 0x3df
|
||
|
||
#define VGA_VERTICAL_RETRACE_END 0x11
|
||
#define VGA_CPU_PAGE_SELECT 0x09
|
||
#define VGA_CRTC_EXTENDED_ADDRESS 0x0a
|
||
#define VGA_32K_VIDEO_RAM_PAGE_SELECT 0x0c
|
||
#define VGA_INTERLACE_SUPPORT_REGISTER 0x0d
|
||
|
||
|
||
typedef struct
|
||
{
|
||
char IdString[32]; /* "Matrox MGA Setup file" */
|
||
short Revision; /* .inf file revision */
|
||
|
||
short BoardPtr[NUMBER_BOARD_MAX]; /* offset of board wrt start of file */
|
||
/* -1 = board not there */
|
||
}header;
|
||
|
||
typedef struct
|
||
{
|
||
dword MapAddress; /* board address */
|
||
short BitOperation8_16; /* BIT8, BIT16, BITNARROW16 */
|
||
char DmaEnable; /* 0 = enable ; 1 = disable */
|
||
char DmaChannel; /* channel number. 0 = disabled */
|
||
char DmaType; /* 0 = ISA, 1 = B, 2 = C */
|
||
char DmaXferWidth; /* 0 = 16, 1 = 32 */
|
||
char MonitorName[64]; /* as in MONITORM.DAT file */
|
||
short MonitorSupport[NUMBER_OF_RES]; /* NA, NI, I */
|
||
short NumVidparm; /* up to 24 vidparm structures */
|
||
}general_info;
|
||
|
||
/* vidparm VideoParam[]; */
|
||
|
||
|
||
typedef struct
|
||
{
|
||
long PixClock;
|
||
short HDisp;
|
||
short HFPorch;
|
||
short HSync;
|
||
short HBPorch;
|
||
short HOvscan;
|
||
short VDisp;
|
||
short VFPorch;
|
||
short VSync;
|
||
short VBPorch;
|
||
short VOvscan;
|
||
short OvscanEnable;
|
||
short InterlaceEnable;
|
||
short HsyncPol; /* 0 : Negative 1 : Positive */
|
||
short VsyncPol; /* 0 : Negative 1 : Positive */
|
||
}Vidset;
|
||
|
||
|
||
typedef struct
|
||
{
|
||
short Resolution; /* RES640, RES800 ... RESPAL */
|
||
short PixWidth; /* 8, 16, 32 */
|
||
Vidset VidsetPar[NUMBER_OF_ZOOM]; /* for zoom X1, X2, X4 */
|
||
}Vidparm;
|
||
|
||
|
||
|
||
|
||
|
||
typedef struct {
|
||
dword length;
|
||
dword hw_diagnostic_result;
|
||
dword sw_diagnostic_result;
|
||
dword shell_id;
|
||
dword shell_id_extension;
|
||
dword shell_version;
|
||
dword shell_version_extension;
|
||
dword shell_start_address;
|
||
dword shell_end_address;
|
||
dword comm_req_type;
|
||
dword comm_req_base_addr_offset;
|
||
dword comm_req_length;
|
||
dword comm_req_wrptr_addr_offset;
|
||
dword comm_req_rdptr_addr_offset;
|
||
dword comm_inq_type;
|
||
dword comm_inq_base_addr_offset;
|
||
dword comm_inq_length;
|
||
dword comm_inq_wrptr_addr_offset;
|
||
dword comm_inq_rdptr_addr_offset;
|
||
dword size_rc;
|
||
dword size_light_type_0;
|
||
dword size_light_type_1;
|
||
dword size_light_type_2;
|
||
dword size_light_type_3;
|
||
dword size_light_type_4;
|
||
dword high_resolution_visible_width;
|
||
dword high_resolution_visible_height;
|
||
dword ntsc_underscan_visible_width;
|
||
dword ntsc_underscan_visible_height;
|
||
dword pal_underscan_visible_width;
|
||
dword pal_underscan_visible_height;
|
||
dword ntsc_overscan_visible_width;
|
||
dword ntsc_overscan_visible_height;
|
||
dword pal_overscan_visible_width;
|
||
dword pal_overscan_visible_height;
|
||
byte *end_string;
|
||
} SYSPARMS;
|
||
|
||
|
||
|
||
|