windows-nt/Source/XPSP1/NT/drivers/video/ms/s3/mini/s3ddc.h
2020-09-26 16:20:57 +08:00

96 lines
3.6 KiB
C

//
// LOCAL PERIPHERAL BUS REGISTERS
//
// These values are used as offsets to the memory mapped IO base stored in
// the HW device extension.
//
#define LPB_MODE_MM 0x0FF00 // LPB mode
#define SERIAL_PORT_MM 0x0FF20 // Serial Communications Port
#define UNLOCK_SEQREG 0x08 // Unlock Extended Sequencer
#define UNLOCK_SEQ 0x06 // unlock accessing to all S3 extensions to
// the standard VGA sequencer register set
#define SR9_SEQREG 0x09 // Extended Sequencer 9 register
#define SRA_SEQREG 0x0A // Extended Sequencer A register
#define SRD_SEQREG 0x0D // Extended Sequencer D register
#define LPB_ENAB_BIT 0x01 // bit 0 of SRD is LPB enable (pin control)
// on some chips (M65).
#define DISAB_FEATURE_BITS 0xFC // AND mask to turn off LPB/Feature Connector
// on ViRGE (NOT ViRGE GX).
#define SYS_CONFIG_S3EXTREG 0x40 // System Configuration
//
// Bit masks for System Configuration register (CR40)
//
#define ENABLE_ENH_REG_ACCESS 0x01 // bit 0 set = enhanced reg access enabled
#define EXT_MEM_CTRL1_S3EXTREG 0x53 // Extended Memory Control 1
//
// Bit masks for the Extended Memory Control 1 register (CR53)
//
#define ENABLE_OLDMMIO 0x10 // bit 4 set = enable Trio64-type MMIO
#define ENABLE_NEWMMIO 0x08 // bit 3 set = New MMIO (relocatable) enabled
#define GENERAL_OUT_S3EXTREG 0x5C // General Out Port
#define EXT_DAC_S3EXTREG 0x55 // Extended DAC Control
#define ENABLE_GEN_INPORT_READ 0x04 // On the 764, CR55 bit 2 set enables
// General Input Port read
//
// defines for return information for CheckDDCType & Configure_Chip_DDC_Caps
//
#define NO_DDC 0
#define DDC1 1
#define DDC2 2
//
// Bit mask for Backward Compatibility Register 2 (CR33, BWD_COMPAT2_S3EXTREG)
//
#define DISPLAY_MODE_INACTIVE 0x01 // bit 1 set = controller is not in
// active display area. (M3, M5, GX2)
#define VSYNC_ACTIVE_BIT 0x04 // bit 2 set = controller is in vertical
// retrace area (M3, M5, GX2). Paired
// with 3?Ah bit 3 for IGA1.
//
// Bit masks for SYSTEM_CONTROL_REGISTER (3?A)
//
#define VSSL_BIT 0x08 // Bit 3 of Feature Control Register (3?A,
// write-only 3CA) is Vertical Sync Type Select
#define VSYNC_ACTIVE 0x08 // Bit 3 of Input Status 1 Register (3CA in
// read-only) is Vertical Sync Active. If set,
// then display is in the vertical retrace mode;
// if clear, then display is in display mode.
#define CLEAR_VSYNC 0x3F // AND mask to clear VSYNC Control bits
// (setting normal operation).
#define SET_VSYNC0 0x40 // OR mask to set VSYNC Control to VSYNC = 0
#define SET_VSYNC1 0x80 // OR mask to set VSYNC Control to VSYNC = 1
#define CLK_MODE_SEQREG 0x01 // Clocking Mode Register
//
// Bit mask for Clocking Mode Register (SR1)
//
#define SCREEN_OFF_BIT 0x20 // bit 5 set turns the screen off.
#define SEL_POS_VSYNC 0x7F // AND mask to clear bit 7 of 3C2, selecting
// positive vertical retrace sync pulse
//
// Macro to access the serial port
//
#define MMFF20 (PVOID) ((ULONG_PTR)(HwDeviceExtension->MmIoBase) + SERIAL_PORT_MM)