Annotation of ntddk/src/video/displays/s3/s3mem.h, revision 1.1.1.1

1.1       root        1: 
                      2: /******************************Module*Header*******************************\
                      3: * Module Name: s3mem.h
                      4: *
                      5: * contains definitions for S3's off-screen memory usage.
                      6: *
                      7: * Copyright (c) 1993 Microsoft Corporation
                      8: \**************************************************************************/
                      9: 
                     10: // Basic Memory definitions.
                     11: 
                     12: #define MEMORY_APERTURE_SIZE    0x10000
                     13: 
                     14: #define DRIVERS_MAX_CX          0x500
                     15: 
                     16: #define S3_MAX_RAM_WIDTH    ppdev->cxMaxRam
                     17: #define S3_MAX_RAM_HEIGHT   ppdev->cyMaxRam
                     18: 
                     19: #define S3BM_WIDTH          ppdev->cxScreen
                     20: #define S3BM_HEIGHT         ppdev->cyScreen
                     21: 
                     22: #define S3BM_WIDTH_HARD_VAL 1024
                     23: 
                     24: #define OFF_SCREEN_Y        S3BM_HEIGHT
                     25: 
                     26: //#define OFF_SCREEN_Y        512
                     27: 
                     28: #define OFF_SCREEN_CX       (S3BM_WIDTH)
                     29: #define OFF_SCREEN_CY       (S3_MAX_RAM_HEIGHT - S3BM_HEIGHT)
                     30: 
                     31: // Glyph cache memory definitions
                     32: 
                     33: #define GLYPH_CACHE_Y       OFF_SCREEN_Y
                     34: #define GLYPH_CACHE_CX      32
                     35: #define GLYPH_CACHE_CY      32
                     36: 
                     37: #define CACHED_GLYPHS_ROWS  2
                     38: #define GLYPHS_PER_ROW      ((S3BM_WIDTH_HARD_VAL/2) / GLYPH_CACHE_CX)
                     39: 
                     40: // Color pointer definitions.
                     41: 
                     42: #define COLOR_POINTER_Y     ((GLYPH_CACHE_CY * CACHED_GLYPHS_ROWS) + GLYPH_CACHE_Y)
                     43: #define COLOR_POINTER_CX    64
                     44: #define COLOR_POINTER_CY    64
                     45: 
                     46: #define COLOR_POINTER_AND_PLANE 0x01
                     47: #define COLOR_POINTER_XOR_PLANE 0x02
                     48: 
                     49: #define COLOR_POINTER_COLOR_DATA_X      (COLOR_POINTER_CX)
                     50: #define COLOR_POINTER_WORK_X            (COLOR_POINTER_CX * 2)
                     51: #define COLOR_POINTER_SAVE_X            (COLOR_POINTER_CX * 3)
                     52: 
                     53: // Double wide, double high pattern definitions.
                     54: 
                     55: #define OFF_SCREEN_EXPANSION_CX         512
                     56: #define OFF_SCREEN_EXPANSION_CY         176
                     57: 
                     58: #define MAX_DOUBLE_PATTERN_CX           16
                     59: #define MAX_DOUBLE_PATTERN_CY           16
                     60: 
                     61: #define COLOR_PATTERN_CACHE_X           0
                     62: #define COLOR_PATTERN_CACHE_Y           (COLOR_POINTER_Y + COLOR_POINTER_CY)
                     63: #define COLOR_PATTERN_CACHE_CX          480
                     64: #define COLOR_PATTERN_CACHE_CY          64
                     65: 
                     66: #define MAX_COLOR_PATTERNS              ((COLOR_PATTERN_CACHE_CX / 16) * (COLOR_PATTERN_CACHE_CY / 16))
                     67: 
                     68: #define MONO_PATTERN_CACHE_X            0
                     69: #define MONO_PATTERN_CACHE_Y            (COLOR_PATTERN_CACHE_Y + COLOR_PATTERN_CACHE_CY)
                     70: #define MONO_PATTERN_CACHE_CX           480
                     71: #define MONO_PATTERN_CACHE_CY           16
                     72: 
                     73: #define MAX_MONO_PATTERNS               ((MONO_PATTERN_CACHE_CX / 16) * (MONO_PATTERN_CACHE_CY / 16) * 8)
                     74: 
                     75: #define COLOR_HORZ_EXPANSION_CACHE_X    0
                     76: #define COLOR_HORZ_EXPANSION_CACHE_Y    (MONO_PATTERN_CACHE_Y + MONO_PATTERN_CACHE_CY)
                     77: #define COLOR_HORZ_EXPANSION_CACHE_CX   (OFF_SCREEN_EXPANSION_CX - MONO_VERT_EXPANSION_CACHE_CX)
                     78: #define COLOR_HORZ_EXPANSION_CACHE_CY   16
                     79: 
                     80: #define COLOR_VERT_EXPANSION_CACHE_X    480
                     81: #define COLOR_VERT_EXPANSION_CACHE_Y    COLOR_POINTER_Y
                     82: #define COLOR_VERT_EXPANSION_CACHE_CX   16
                     83: #define COLOR_VERT_EXPANSION_CACHE_CY   (OFF_SCREEN_EXPANSION_CY - MONO_HORZ_EXPANSION_CACHE_CY)
                     84: 
                     85: #define MONO_HORZ_EXPANSION_CACHE_X     0
                     86: #define MONO_HORZ_EXPANSION_CACHE_Y     (COLOR_HORZ_EXPANSION_CACHE_Y + COLOR_HORZ_EXPANSION_CACHE_CY)
                     87: #define MONO_HORZ_EXPANSION_CACHE_CX    OFF_SCREEN_EXPANSION_CX
                     88: #define MONO_HORZ_EXPANSION_CACHE_CY    16
                     89: 
                     90: #define MONO_VERT_EXPANSION_CACHE_X     496
                     91: #define MONO_VERT_EXPANSION_CACHE_Y     COLOR_POINTER_Y
                     92: #define MONO_VERT_EXPANSION_CACHE_CX    16
                     93: #define MONO_VERT_EXPANSION_CACHE_CY    OFF_SCREEN_EXPANSION_CY
                     94: 
                     95: // Offscreen bitmap cache
                     96: 
                     97: #define OFF_SCREEN_BITMAP_X             512
                     98: #define OFF_SCREEN_BITMAP_Y             OFF_SCREEN_Y
                     99: #define OFF_SCREEN_BITMAP_CX            512
                    100: #define OFF_SCREEN_BITMAP_CY            254
                    101: 
                    102: // Storage for HW monochrome pointer data
                    103: // Note that we ping-pong between two storage areas for the pointer, one on
                    104: // the bottom scan of memory and one on the second to bottom scan. However,
                    105: // we arrive at the two scans by subtracting either 0 or 1 from PTR_DATA_Y,
                    106: // so PTR_DATA_Y just points to the last scan of display memory.
                    107: 
                    108: #define PTR_DATA_X          0
                    109: #define PTR_DATA_Y          (S3_MAX_RAM_HEIGHT - 1)
                    110: 
                    111: 
                    112: 
                    113: 
                    114: 

unix.superglobalmegacorp.com

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