|
|
1.1 ! root 1: /* CONFIDENTIAL ! 2: * Copyright (c) 1993 by NeXT Computer, Inc as an unpublished work. ! 3: * All rights reserved. ! 4: * ! 5: * vgaModes.h -- Definitions for the standard VGA. ! 6: * ! 7: * Author: Derek B Clegg 21 May 1993 ! 8: */ ! 9: ! 10: #ifndef VGADEFS_H__ ! 11: #define VGADEFS_H__ ! 12: ! 13: /* Miscellaneous output register. */ ! 14: ! 15: #define VGA_MISC_OUTPUT 0x3C2 ! 16: ! 17: /* Input status 1 register. */ ! 18: ! 19: #define VGA_INPUT_STATUS_1 0x3DA ! 20: ! 21: /* Feature control register. */ ! 22: ! 23: #define VGA_FEATURE_CTRL 0x3DA ! 24: ! 25: /* Sequencer. */ ! 26: ! 27: #define VGA_SEQ_INDEX 0x3C4 ! 28: #define VGA_SEQ_DATA 0x3C5 ! 29: #define VGA_SEQ_COUNT 5 ! 30: ! 31: /* Sequencer Indexes. */ ! 32: ! 33: #define VGA_RST_SYNC 0x00 /* Reset register. */ ! 34: #define VGA_CLK_MODE 0x01 /* Clocking mode register. */ ! 35: #define VGA_EN_WT_PL 0x02 /* Enable write plane register. */ ! 36: #define VGA_CH_FONT_SL 0x03 /* Change font select register. */ ! 37: #define VGA_MEM_MODE 0x04 /* Memory mode control register. */ ! 38: ! 39: /* CRT Controller. */ ! 40: ! 41: #define VGA_CRTC_INDEX 0x3D4 ! 42: #define VGA_CRTC_DATA 0x3D5 ! 43: #define VGA_CRTC_COUNT 25 ! 44: ! 45: /* CRT Controller Indexes */ ! 46: ! 47: #define VGA_H_TOTAL 0x00 /* Horizontal total register. */ ! 48: #define VGA_H_D_END 0x01 /* Horizontal display end register. */ ! 49: #define VGA_S_H_BLNK 0x02 /* Start horizontal blank register. */ ! 50: #define VGA_E_H_BLNK 0x03 /* End horizontal blank register. */ ! 51: #define VGA_S_H_SY_P 0x04 /* Start horizontal sync position ! 52: register. */ ! 53: #define VGA_E_H_SY_P 0x05 /* End horizontal sync position ! 54: register. */ ! 55: #define VGA_V_TOTAL 0x06 /* Vertical total register. */ ! 56: #define VGA_OVFL_REG 0x07 /* CRTC overflow register. */ ! 57: #define VGA_P_R_SCAN 0x08 /* Preset row scan register. */ ! 58: #define VGA_MAX_S_LN 0x09 /* Maximum scan line register. */ ! 59: #define VGA_CSSL 0x0A /* Cursor start scan line register. */ ! 60: #define VGA_CESL 0x0B /* Cursor end scan line register. */ ! 61: #define VGA_STAH 0x0C /* Start address high register. */ ! 62: #define VGA_STAL 0x0D /* Start address low register. */ ! 63: #define VGA_CLAH 0x0E /* Cursor location address high ! 64: register. */ ! 65: #define VGA_CLAL 0x0F /* Cursor location address low ! 66: register. */ ! 67: #define VGA_VRS 0x10 /* Vertical retrace start register. */ ! 68: #define VGA_VRE 0x11 /* Vertical retrace end register. */ ! 69: #define VGA_VDE 0x12 /* Vertical display end register. */ ! 70: #define VGA_SCREEN_OFFSET 0x13 /* Offset register. */ ! 71: #define VGA_ULL 0x14 /* Underline location register. */ ! 72: #define VGA_SVB 0x15 /* Start vertical blank register. */ ! 73: #define VGA_EVB 0x16 /* End vertical blank register. */ ! 74: #define VGA_CRT_MD 0x17 /* CRTC mode control register. */ ! 75: #define VGA_LCM 0x18 /* Line compare register. */ ! 76: ! 77: /* Attribute Controller. */ ! 78: ! 79: #define VGA_ATTR_INDEX 0x3C0 ! 80: #define VGA_ATTR_DATA 0x3C0 ! 81: #define VGA_ATTR_COUNT 20 ! 82: ! 83: /* Attribute Controller Indexes. */ ! 84: ! 85: #define VGA_PLT_REG 0x00 /* Palette registers (0x00-0x0F). */ ! 86: #define VGA_ATR_MODE 0x10 /* Attribute mode control register. */ ! 87: #define VGA_BDR_CLR 0x11 /* Border color register. */ ! 88: #define VGA_DISP_PLN 0x12 /* Color plane enable register. */ ! 89: #define VGA_H_PX_PAN 0x13 /* Horizontal pixel panning ! 90: register. */ ! 91: /* Graphics Controller. */ ! 92: ! 93: #define VGA_GRFX_INDEX 0x3CE ! 94: #define VGA_GRFX_DATA 0x3CF ! 95: #define VGA_GRFX_COUNT 9 ! 96: ! 97: struct VGAMode { ! 98: /* Miscellaneous output register values (3C2). */ ! 99: unsigned char miscOutput; ! 100: ! 101: /* Feature control register value (3DA). */ ! 102: unsigned char featureCtrl; ! 103: ! 104: /* Sequencer register values (3C5.00 - 3C5.04). */ ! 105: unsigned char seqx[VGA_SEQ_COUNT]; ! 106: ! 107: /* CRTC register values (3D5.00 - 3D5.18). */ ! 108: unsigned char crtc[VGA_CRTC_COUNT]; ! 109: ! 110: /* Attribute controller register values (3C0.00 - 3C0.13). */ ! 111: unsigned char attr[VGA_ATTR_COUNT]; ! 112: ! 113: /* Graphics controller register values (3CF.00 - 3CF.08). */ ! 114: unsigned char grfx[VGA_GRFX_COUNT]; ! 115: }; ! 116: typedef struct VGAMode VGAMode; ! 117: ! 118: extern int VGASetMode(unsigned int mode); ! 119: extern int VGASetModeData(const VGAMode *modeData); ! 120: ! 121: #endif /* VGADEFS_H__ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.