|
|
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.