LMS5@psuvm.psu.edu (03/19/90)
I was putting this together for a project I am working on and decided
to post it. It is a listing of all the VGA registers, what they are called and
their default values for mode 12. The book I am referencing is "Programmer's
Guide to the EGA and VGA Cards" by Richard F. Ferraro and published by
Addison-Wesley Publishing Company. Hopefully, it will be of use to someone
other than myself.
.
.
.
DEFAULT VALUES FOR MODE 12 ON A VGA CARD
(port addresses in parenthesis; r = read; w = write)
Display Mode 12:
Number of character columns = 80
Length of display buffer = A000h
CRTC address = 3D4
CRT_MODE_SET = 29h
CRT_PALETTE = 30h
number of character rows per screen = 30
Character height = 16
Number of Colors = 16
Number of display pages supported = 1
Miscellaneous state information = 11h
Index Default Value
General or External Registers:
(Each register has its own port address)
Miscellanious Output Register(w 3C2/r 3CC) E3
bit 7 Vertical Sync Polarity
6 Horizontal Sync Polarity
5 Page Bit for Odd/Even
4 Disable the Video Drivers (EGA only)
3,2 Clock Select
1 Enable RAM
0 Input/Output Address
Feature Control Register (w 3DA/r 3CA) 00
bit 3 Vertical Sync Select (VGA only)
1 Feature control bit 1 (EGA only)
0 Feature control bit 0 (EGA only)
Input Status #0 Register (r 3C2) 70
bit 7 Vertical Retrace Interrupt (EGA only)
6 Feature Status 1 (EGA only)
5 Feature Status 0 (EGA only)
4 Switch Sense
Input Status #1 Register (r 3DA) 04
5,4 Diagnostic (EGA only)
3 Vertical Retrace
2 Light Pen Switch (EGA only)
1 Light Pen Strobe (EGA only)
0 Display Enable
Sequence Registers:
Address (rw 3C4/3C5)
Reset Register 00 03
bit 1 Synchronous Reset
0 Synchronous Reset (No Asynchronous Reset on VGA)
Clocking Mode Register 01 01
bit 5 Screen Off (VGA only)
4 Shift Four (VGA only)
3 Dot Clock
2 Shift Load
1 Bandwidth (EGA only)
0 8/9 Dot Clocks
Map Mask Register 02 0F
bit 3 Mask Memory Plane 3
2 Mask Memory Plane 2
1 Mask Memory Plane 1
0 Mask Memory Plane 0
Character Map Select Register 03 00
bit 5 Select Character Generator A (High Order - VGA only)
4 Select Character Generator B (High Order - VGA only)
3,2 Select Character Generator A
1,0 Select Character Generator B
Memory Mode Register 04 06
bit 3 Chain Four (VGA only)
2 Odd/Even
1 Extended Memory
0 Alpha/Graphics Mode (EGA only)
CRTC Registers:
Address (rw 3D4/3D5)
Horizontal Total Register 00 5F
Horizontal Display End Register 01 4F
Start Horizontal Blanking Register 02 50
End Horizontal Blanking Register 03 82
bit 7 Compatible Read (VGA only)
6,5 Display Enable Skew
4-0 End Horizontal Blanking
Start Horizontal Retrace Register 04 54
End Horizontal Retrace Register 05 80
bit 7 End Horizontal Blanking (VGA only)
6,5 Horizontal Retrace Delay
4-0 End Horizontal Retrace
Vertical Total Register 06 0B
Overflow Register 07 3E
bit 7 Vertical Retrace Start Bit 9 (VGA only)
6 Vertical Display Enable End Bit 9 (VGA only)
5 Vertical Total Bit 9 (VGA only)
4 Line Compare Bit 8
3 Start Vertical Blanking Bit 8
2 Vertical Retrace Start Bit 8
1 Vertical Dispaly Enable End Bit 8
0 Vertical Total Bit 8
Preset Row Scan Register 08 00
6,5 Byte Panning (VGA only)
4-0 Preset Row Scan
Maximum Scan Line Register 09 40
bit 7 200 to 400 Line Conversion (VGA only)
6 Line Compare Bit 9 (VGA only)
5 Start Vertical Blanking Bit 9 (VGA only)
4-0 Maximum Scan Line
Cursor Start Register 0A 00
bit 5 Cursor On/Off (VGA only)
4-0 Cursor Start
Cursor End Register 0B 00
6,5 Cursor Skew
4-0 Cursor End
Start Address High Register 0C 00
Start Address Low Register 0D 00
Cursor Location High Register 0E 00
Cursor Location Low Register 0F 59
Vertical Retrace Start Register 10 EA
Vertical Retrace End 11 8C
bit 7 Protect Registers 0-7 (VGA only)
6 Bandwidth (VGA only)
5 Disable Vertical Interrupts (EGA only)
4 Clear Vertical Interrupts (EGA ony)
0-3 Vertical Retrace End
Vertical Display End Register 12 DF
Offset Register 13 28
Underline Location Register 14 00
bit 6 Double Word Mode (VGA only)
5 Count by Four (VGA only)
4-0 Underline Location
Start Vertical Blank Register 15 E7
End Vertical Blank Register 16 04
6-0 End Vertical Blanking (VGA only)
Mode Control Register 17 E3
bit 7 Hardware Reset
6 Word/Byte Mode
5 Address Wrap
4 Output Control (EGA only)
3 Count by Two
2 Horizontal Retrace Select
1 Select Row Scan Counter
0 Compatibility Mode Support
Line Compare Register 18 FF
Graphics Controller Registers:
Address (rw 3CE/3CF)
Set/Reset Register 00 00
Enable Set/Reset Register 01 00
Color Compare Register 02 00
Data Rotate Register 03 00
5,4 Function Select
3-0 Data Rotate
Read Map Select Register 04 00
Mode Register 05 00
6,5 Shift Register (VGA only)
4 Odd/Even
3 Read Mode
2 Test Condition (EGA only)
1,0 Write Mode
Miscellaneous Register 06 05
3,2 Memory Map
1 Chain Odd/Even
0 Graphics/Alphanumerics Mode
Color Don't Care Register 07 0F
Bit Mask Register 08 FF
Attribute Controller Registers:
Attribute Address Register (r 3C1/w 3C0) only one port dedicated
bit 5 Pallette Address Source 00
4-0 Attribute Address
Palette Registers:
{bit 5 Secondary Red 00 00
4 Secondary Green 00 01
3 Secondary Blue 01 02
2 Red 03 03
1 Green 04 04
0 Blue } 05 05
06 14
07 07
08 38
09 39
0A 3A
0B 3B
0C 3C
0D 3D
0E 3E
0F 3F
Mode Control Register 10 01
bit 7 Internal Palette Size (VGA only)
6 Pixel Clock Select (VGA only)
5 Pixel Panning Compatibility (VGA only)
3 Enable Blink or Intensity
2 Enable Line Graphics Character Codes
1 Display Type
0 Graphics/Alphanumeric
Overscan Color Register 11 00
bit 5 Secondary Red
4 Secondary Green
3 Secondary Blue
2 Red
1 Green
0 Blue
Color Plane Enable Register 12 0F
3-0 Color Planes Enable
Horizontal Pixel Panning Register 13 00
Color Select Register 14 00
3,2 Color Register Address Bits 6 and 7 (VGA only)
1,0 Color Register Address Bits 4 and 5 (VGA only)
Color Registers:
PEL Address Write Mode Register (r 3C8/ w 3C8)
PEL Address Read Mode Register (w 3C7)
PEL Data Register (r 3C9/ w 3C9)
DAC State Register (r 3C7)
PEL Mask Register (r 3C6/ w 3C6)
Laurie Salopek
Pennsylvania State University