File:  [WindowsNT SDKs] / ntddk / src / video / displays / s3 / s3mem.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Thu Aug 9 18:31:12 2018 UTC (7 years, 9 months ago) by root
Branches: msft, MAIN
CVS tags: ntddk-nov-1993, HEAD
Microsoft Windows NT Build 511 (DDK SDK) 11-01-1993


/******************************Module*Header*******************************\
* Module Name: s3mem.h
*
* contains definitions for S3's off-screen memory usage.
*
* Copyright (c) 1993 Microsoft Corporation
\**************************************************************************/

// Basic Memory definitions.

#define MEMORY_APERTURE_SIZE    0x10000

#define DRIVERS_MAX_CX          0x500

#define S3_MAX_RAM_WIDTH    ppdev->cxMaxRam
#define S3_MAX_RAM_HEIGHT   ppdev->cyMaxRam

#define S3BM_WIDTH          ppdev->cxScreen
#define S3BM_HEIGHT         ppdev->cyScreen

#define S3BM_WIDTH_HARD_VAL 1024

#define OFF_SCREEN_Y        S3BM_HEIGHT

//#define OFF_SCREEN_Y        512

#define OFF_SCREEN_CX       (S3BM_WIDTH)
#define OFF_SCREEN_CY       (S3_MAX_RAM_HEIGHT - S3BM_HEIGHT)

// Glyph cache memory definitions

#define GLYPH_CACHE_Y       OFF_SCREEN_Y
#define GLYPH_CACHE_CX      32
#define GLYPH_CACHE_CY      32

#define CACHED_GLYPHS_ROWS  2
#define GLYPHS_PER_ROW      ((S3BM_WIDTH_HARD_VAL/2) / GLYPH_CACHE_CX)

// Color pointer definitions.

#define COLOR_POINTER_Y     ((GLYPH_CACHE_CY * CACHED_GLYPHS_ROWS) + GLYPH_CACHE_Y)
#define COLOR_POINTER_CX    64
#define COLOR_POINTER_CY    64

#define COLOR_POINTER_AND_PLANE 0x01
#define COLOR_POINTER_XOR_PLANE 0x02

#define COLOR_POINTER_COLOR_DATA_X      (COLOR_POINTER_CX)
#define COLOR_POINTER_WORK_X            (COLOR_POINTER_CX * 2)
#define COLOR_POINTER_SAVE_X            (COLOR_POINTER_CX * 3)

// Double wide, double high pattern definitions.

#define OFF_SCREEN_EXPANSION_CX         512
#define OFF_SCREEN_EXPANSION_CY         176

#define MAX_DOUBLE_PATTERN_CX           16
#define MAX_DOUBLE_PATTERN_CY           16

#define COLOR_PATTERN_CACHE_X           0
#define COLOR_PATTERN_CACHE_Y           (COLOR_POINTER_Y + COLOR_POINTER_CY)
#define COLOR_PATTERN_CACHE_CX          480
#define COLOR_PATTERN_CACHE_CY          64

#define MAX_COLOR_PATTERNS              ((COLOR_PATTERN_CACHE_CX / 16) * (COLOR_PATTERN_CACHE_CY / 16))

#define MONO_PATTERN_CACHE_X            0
#define MONO_PATTERN_CACHE_Y            (COLOR_PATTERN_CACHE_Y + COLOR_PATTERN_CACHE_CY)
#define MONO_PATTERN_CACHE_CX           480
#define MONO_PATTERN_CACHE_CY           16

#define MAX_MONO_PATTERNS               ((MONO_PATTERN_CACHE_CX / 16) * (MONO_PATTERN_CACHE_CY / 16) * 8)

#define COLOR_HORZ_EXPANSION_CACHE_X    0
#define COLOR_HORZ_EXPANSION_CACHE_Y    (MONO_PATTERN_CACHE_Y + MONO_PATTERN_CACHE_CY)
#define COLOR_HORZ_EXPANSION_CACHE_CX   (OFF_SCREEN_EXPANSION_CX - MONO_VERT_EXPANSION_CACHE_CX)
#define COLOR_HORZ_EXPANSION_CACHE_CY   16

#define COLOR_VERT_EXPANSION_CACHE_X    480
#define COLOR_VERT_EXPANSION_CACHE_Y    COLOR_POINTER_Y
#define COLOR_VERT_EXPANSION_CACHE_CX   16
#define COLOR_VERT_EXPANSION_CACHE_CY   (OFF_SCREEN_EXPANSION_CY - MONO_HORZ_EXPANSION_CACHE_CY)

#define MONO_HORZ_EXPANSION_CACHE_X     0
#define MONO_HORZ_EXPANSION_CACHE_Y     (COLOR_HORZ_EXPANSION_CACHE_Y + COLOR_HORZ_EXPANSION_CACHE_CY)
#define MONO_HORZ_EXPANSION_CACHE_CX    OFF_SCREEN_EXPANSION_CX
#define MONO_HORZ_EXPANSION_CACHE_CY    16

#define MONO_VERT_EXPANSION_CACHE_X     496
#define MONO_VERT_EXPANSION_CACHE_Y     COLOR_POINTER_Y
#define MONO_VERT_EXPANSION_CACHE_CX    16
#define MONO_VERT_EXPANSION_CACHE_CY    OFF_SCREEN_EXPANSION_CY

// Offscreen bitmap cache

#define OFF_SCREEN_BITMAP_X             512
#define OFF_SCREEN_BITMAP_Y             OFF_SCREEN_Y
#define OFF_SCREEN_BITMAP_CX            512
#define OFF_SCREEN_BITMAP_CY            254

// Storage for HW monochrome pointer data
// Note that we ping-pong between two storage areas for the pointer, one on
// the bottom scan of memory and one on the second to bottom scan. However,
// we arrive at the two scans by subtracting either 0 or 1 from PTR_DATA_Y,
// so PTR_DATA_Y just points to the last scan of display memory.

#define PTR_DATA_X          0
#define PTR_DATA_Y          (S3_MAX_RAM_HEIGHT - 1)






unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.