Windows NT 4.0 source code leak
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.
 
 
 
 
 
 

210 lines
5.3 KiB

/*++ BUILD Version: 0001 // Increment this if a change has global effects
Copyright (c) 1991 Microsoft Corporation
Module Name:
videoxl.h
Abstract:
This header file defines the Jazz Video XL accelorator board control
registers.
Author:
Mark Enstrom (marke) 8-2-91
Revision History:
--*/
#ifndef _VIDEOXL_
#define _VIDEOXL_
//
// Video XL Display Controller Chip Definitions.
//
//
// define the amount of memory to map for video xl.
//
#define VIDEOXL_VRAM_SIZE 0x00200000
#define VIDEOXL_CONTROL_SIZE 0x00200000
//
// Define video controller parameters.
//
#define DISPLAY_BITS_PER_PIXEL 8 // display bits per pixel
#define HORIZONTAL_RESOLUTION 1024 // horizontal resolution
#define VERTICAL_RESOLUTION 704 // verticle resolution
#define NUMBER_OF_COLORS 256 // number of colors
#define CURSOR_WIDTH 64 // width of hardware cursor
#define CURSOR_HEIGHT 64 // height of hardware cursor
#define CURSOR_BITS_PER_PIXEL 2 // hardware cursor bits per pixel
#define CURSOR_MAXIMUM ((CURSOR_WIDTH * CURSOR_HEIGHT * \
CURSOR_BITS_PER_PIXEL) / \
(sizeof(UCHAR) * 8)) // maximum hardware cursor pixels
#define FRAME_SIZE (HORIZONTAL_RESOLUTION * VERTICAL_RESOLUTION) //
//
// Define register format.
//
typedef UCHAR VIDEOXL_REGISTER , *PVIDEOXL_REGISTER;
//
// define the Bt468 register addresses as offsets to the
// Base video control address
//
#define VIDEOXL_AddressLow (ULONG)0x00000000
#define VIDEOXL_AddressHigh (ULONG)0x00001000
#define VIDEOXL_AddressRegisterData (ULONG)0x00002000
#define VIDEOXL_AddressColorMapData (ULONG)0x00003000
//
// Define the Vdieo XL board control registers as offsets from the
// Base video control address
//
#define VIDEOXL_ID (ULONG)0x00010000
#define VIDEOXL_GCPReset (ULONG)0x00011000
#define VIDEOXL_GCPInterrupt (ULONG)0x00012000
#define VIDEOXL_HostInterrupt (ULONG)0x00013000
#define VIDEOXL_SetGCPInterrupt (ULONG)0x00016000
#define VIDEOXL_SetHostInterrupt (ULONG)0x00017000
//
// define values for Bt468 control register addresses
//
#define BT_CONTROL_BASE_LOW 0x01
#define BT_CONTROL_BASE_HIGH 0x02
#define CURSOR_COLOR_ADDRESS_HIGH 0x01
#define CURSOR_COLOR_ADDRESS_LOW 0x81
#define CURSOR_CONTROL_ADDRESS_HIGH 0x03
#define CURSOR_CONTROL_ADDRESS_LOW 0x00
#define CURSOR_POSITION_ADDRESS_HIGH 0x03
#define CURSOR_POSITION_ADDRESS_LOW 0x01
#define CURSOR_RAM_HIGH 0x04
#define CURSOR_RAM_LOW 0x00
#define BT_PALETTE_ADDRESS_LOW 0x00
#define BT_PALETTE_ADDRESS_HIGH 0x00
#define BT_OV_PALETTE_ADDRESS_LOW 0x00
#define BT_OV_PALETTE_ADDRESS_HIGH 0x01
#define BT_CUR_PALETTE_ADDRESS_LOW 0x81
#define BT_CUR_PALETTE_ADDRESS_HIGH 0x01
//
// define bt468 control register values
//
#define Bt468_ENABLE_CURSOR 0xc0
#define Bt468_DISABLE_CURSOR 0x00
// Overlay enable set to use color palette RAM. sincce we don't use overlay
// this is really a don't care. Cursor blink rate selection is 16 on, 48 off
//
#define Bt468_Command_0 0x40
//
// command_1 specifies the number of pixels to be panned. Set to 0.
//
#define Bt468_Command_1 0x00
//
// bit 7 is sync enable for sync on green: 1
// bit 6 is pedestal enable for 7.5 IRE: 1
// bit 5,4 are paleete mode, normal: 00
// bit 3 is PLL select, use sync: 0
// bit 2 is reserved: 0
// bit 1 is X window mode,use normal mode: 0
// bit 0 is test mode, don;t care: 0
//
#define Bt468_Command_2 0xc0
//
// Each bit in the pixel read mask register is 1 to enable.
//
#define Bt468_PixelReadMask 0xff
//
// Pixel blinking is not used so just clear the pixel blink mask
//
#define Bt468_PixelBlinkMask 0x00
//
// overlay is not used so just clear theoverlay read mask
//
#define Bt468_OverlayReadMask 0x00
//
// overlay blinking is not used so just clear the overlay blink mask
//
#define Bt468_OverlayBlinkMask 0x00
//
// Cursor command register:
//
// bit 7 is the enable for 64x64 cursor plane 1, init disabled : 0
// bit 6 is the enable for 64x64 cursor plane 0, init disabled : 0
// bit 5 is the crosshair cursor plane 1 enable, init disabled : 0
// bit 4 is the crosshair cursor plane 0 enable, init disabled : 0
// bit 3 is the dual cursor format. 0 = xor, 1 = or. : 0
// bit 2,1 is the crosshair thickness, 00 = 1 pixel : 00
// bit 0 is the cursor blink enable disable blinking : 0
//
#define Bt468_CursorCommand 0x00
//
// values for the GCPReset register:
//
#define GCPReset_Bt468 0x02
#define GCPReset_i860 0x01
#define GCPReset_clear 0x00
//
// Define BT468 configuration data structure.
//
typedef struct _JAZZ_BT468_CONFIGURATION_DATA {
USHORT Version;
USHORT Revision;
USHORT Irql;
USHORT Vector;
ULONG ControlBase;
ULONG ControlSize;
ULONG CursorBase;
ULONG CursorSize;
ULONG FrameBase;
ULONG FrameSize;
} JAZZ_BT468_CONFIGURATION_DATA, *PJAZZ_BT468_CONFIGURATION_DATA;
#define VIDEOXL_RB_BASE 0x00140000
#define VIDEOXL_TEMP_DATA 0x00150000
#define VIDEOXL_VRAM_BASE 0x00200000
#define VIDEOXL_RB_INIT_STATUS 0x00140800
#endif // _VIDEOXL_