windows-nt/Source/XPSP1/NT/drivers/video/matrox/mga/mini/mtxvga.h
2020-09-26 16:20:57 +08:00

74 lines
3.4 KiB
C

#ifndef WINDOWS_NT
#define VGA_ATTRIB_ADDR 0x3c0
#define VGA_ATTRIB_WRITE 0x3c0
#define VGA_ATTRIB_READ 0x3c1
#define VGA_MISC 0x3c2
#define VGA_SEQ_ADDR 0x3c4
#define VGA_SEQ_DATA 0x3c5
#define VGA_FEAT 0x3da
#define VGA_GRAPHIC_ADDR 0x3ce
#define VGA_GRAPHIC_DATA 0x3cf
#define VGA_CRT_ADDR 0x3d4
#define VGA_CRT_DATA 0x3d5
#define VGA_AUX_ADDR 0x3de
#define VGA_AUX_DATA 0x3df
#else
#define VGA_ATTRIB_ADDR (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[2]) + (0x3c0 - 0x3c0))
#define VGA_ATTRIB_WRITE (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[2]) + (0x3c0 - 0x3c0))
#define VGA_ATTRIB_READ (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[2]) + (0x3c1 - 0x3c0))
#define VGA_MISC (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[2]) + (0x3c2 - 0x3c0))
#define VGA_SEQ_ADDR (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[2]) + (0x3c4 - 0x3c0))
#define VGA_SEQ_DATA (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[2]) + (0x3c5 - 0x3c0))
#define VGA_FEAT (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[3]) + (0x3da - 0x3d4))
#define VGA_GRAPHIC_ADDR (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[2]) + (0x3ce - 0x3c0))
#define VGA_GRAPHIC_DATA (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[2]) + (0x3cf - 0x3c0))
#define VGA_CRT_ADDR (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[3]) + (0x3d4 - 0x3d4))
#define VGA_CRT_DATA (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[3]) + (0x3d5 - 0x3d4))
#define VGA_AUX_ADDR (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[4]) + (0x3de - 0x3de))
#define VGA_AUX_DATA (PVOID) ((ULONG)(((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[4]) + (0x3df - 0x3df))
#define ADDR_EQUIP_LO (PUCHAR) ((((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[6]))
#define ADDR_CRT_MODE (PUCHAR) ((((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[7]))
#define ADDR_MAX_ROW (PUCHAR) ((((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[8]))
#define VGA_RAM (PUCHAR) ((((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[10]))
#define VGA_MEM (PUCHAR) ((((PMGA_DEVICE_EXTENSION)pMgaDeviceExtension)->MappedAddress[11]))
#endif
typedef struct
{
byte featureCtl; /* 0x3da */
byte seqData[4]; /* 0x3c5 */
byte mor; /* 0x3c2 */
byte crtcData[0x19]; /* 0x3d4 */
byte attrData[0x14]; /* 0x3c0 */
byte graphicsCtl[9]; /* 0x3ce */
byte auxilaryReg[15]; /* 0x3de */
word crtcBasePort;
byte latchData[4];
} VideoHardware;
typedef struct
{
int addrEquipementLow;
byte EquipementLow;
int addrCRTMode;
byte CRTMode[0x1e];
int addrMaxRow;
byte MaxRow[7];
int addrSavePtr;
byte SavePtr[4];
} VideoData;
extern void setupVgaHw(void);
extern void setupVgaData(void);
extern void loadFont16(void);
extern void setupVga(void);