# VGA/SVGA Video Programming--VGA Functional Index
Pure VGA/SVGA hardware programming (registers, identification, and otherlow-level stuff.)
Author: Joshua Neal
Keywords: VGA SVGA hardware video programming

Home Register Memory Sequencing Cursor Attribute DAC Display Misc Back

Hardware Level VGA and SVGA Video Programming Information Page
VGA Functional Index

Register Access Functions
These fields control the acessability/inaccessability of the VGA registers. These registers are used for compatibiltiy with older programs that may attempt to program the VGA in a fashion suited only to an EGA, CGA, or monochrome card.

- CRTC Registers Protect Enable -- Vertical Retrace End Register
- Enable Vertical Retrace Access -- End Horizontal Blanking Register
- Input/Output Address Select -- Miscellaneous Output Register

Display Memory Access Functions
These fields control the way the video RAM is mapped into the host CPU's address space and how memory reads/writes affect the display memory.

- Bit Mask -- Bit Mask Register
- Chain 4 Enable -- Sequencer Memory Mode Register
- Chain Odd/Even Enable -- Miscellaneous Graphics Register
- Color Compare -- Color Compare Register
- Color Don't Care -- Color Don't Care Register
- Enable Set/Reset -- Enable Set/Reset Register
- Extended Memory -- Sequencer Memory Mode Register
- Host Odd/Even Memory Read Addressing Enable -- Graphics Mode Register
- Host Odd/Even Memory Write Addressing Enable -- Sequencer Memory Mode Register
- Logical Operation -- Data Rotate Register
- Memory Map Select -- Miscellaneous Graphics Register
- Memory Plane Write Enable -- Map Mask Register
- Odd/Even Page Select -- Miscellaneous Output Register
- RAM Enable -- Miscellaneous Output Register
- Read Map Select -- Read Map Select Register
- Read Mode - Graphics Mode Register
- Rotate Count -- Data Rotate Register
- Set/Reset -- Set/Reset Register
- Write Mode -- Graphics Mode Register

Display Sequencing Functions
These fields affect the way the video memory is serialized for display.

- 256-Color Shift Mode -- Graphics Mode Register
- 9/8 Dot Mode -- Clocking Mode Register
- Address Wrap Select -- CRTC Mode Control Register
- Alphanumeric Mode Disable -- Miscellaneous Graphics Register
- Asynchronous Reset -- Reset Register
- Byte Panning -- Preset Row Scan Register
- Character Set A Select -- Character Map Select Register
- Character Set B Select -- Character Map Select Register
- Divide Memory Address Clock by 4 -- Underline Location Register
- Double-Word Addressing -- Underline Location Register
- Pixel Shift Count -- Horizontal Pixel Panning Register
- Line Compare -- bit 9: Maximum Scan Line Register, bit 8: Overflow Register, bits 7-0: Line Compare Register
- Line Graphics Enable -- Attribute Mode Control Register
- Map Display Address 13 -- CRTC Mode Control Register
- Map Display Address 14 -- CRTC Mode Control Register
- Maximum Scan Line -- Maximum Scan Line Register
- Offset -- Offset Register
- Pixel Panning Mode -- Attribute Mode Control Register
- Preset Row Scan -- Preset Row Scan Register
- Scan Doubling -- Maximum Scan Line Register
- Screen Disable -- Clocking Mode Register
- Shift Four Enable -- Clocking Mode Register
- Shift/Load Rate -- Clocking Mode Register
- Shift Register Interleave Mode -- Graphics Mode Register
- Start Address -- bits 15-8: Start Address High Register, bits 7-0: Start Address Low Register
- Sycnchronous Reset -- Reset Register
- Word/Byte Mode Select -- CRTC Mode Control Register

Cursor Functions
These fields affect the operation of the cursor displayed while the VGA hardware is in text mode.

- Cursor Disable -- Cursor Start Reguster
- Cursor Location -- bits 15-8: Cursor Location High Register, bits 7-0: Cursor Location Low Register
- Cursor Scan Line End -- Cursor End Register
- Cursor Scan Line Start -- Cursor Start Reguster
- Cursor Skew -- Cursor End Register

Attribute Functions
These fields control the way the video data is submitted to the RAMDAC, providing color/blinking capability in text mode and facilitating the mapping of colors in graphics mode.

- 8-bit Color Enable -- Attribute Mode Control Register
- Attribute Address -- Attribute Address Register
- Attribute Controller Graphics Enable -- Attribute Mode Control Register
- Blink Enable -- Attribute Mode Control Register
- Color Plane Enable -- Color Plane Enable Register
- Color Select 5-4 -- Color Select Register
- Color Select 7-6 -- Color Select Register
- Internal Palette Index -- Palette Registers
- Monochrome Emulation -- Attribute Mode Control Register
- Overscan Palette Index -- Overscan Color Register
- Underline Location -- Underline Location Register
- Palette Address Source -- Attribute Address Register
- Palette Bits 5-4 Select -- Attribute Mode Control Register

DAC Functions
These fields allow control of the VGA's 256-color palette that is part of the RAMDAC.

- DAC Write Address -- DAC Address Write Mode Register
- DAC Read Address -- DAC Address Read Mode Register
- DAC Data -- DAC Data Register
- DAC State -- DAC State Register

Display Generation Functions
These fields control the formatting and timing of the VGA's video signal output.

- Clock Select -- Miscellaneous Output Register
- Display Disabled -- Input Status #1 Register
- Display Enable Skew -- End Horizontal Blanking Register
- Divide Scan Line Clock by 2 -- CRTC Mode Control Register
- Dot Clock Rate -- Clocking Mode Register
- End Horizontal Display -- End Horizontal Display Register
- End Horizontal Blanking -- bit 5: End Horizontal Retrace Register, bits 4-0: End Horizontal Blanking Register,
- End Horizontal Retrace -- End Horizontal Retrace Register
- End Vertical Blanking -- End Vertical Blanking Register
- Horizontal Retrace Skew -- End Horizontal Retrace Register
- Horizontal Sync Polarity -- Miscellaneous Output Register
- Horizontal Total -- Horizontal Total Register
- Memory Refresh Bandwidth -- Vertical Retrace End Register
- Start Horizontal Blanking -- Start Horizontal Blanking Register
- Start Horizontal Retrace -- Start Horizontal Retrace Register
- Start Vertical Blanking -- bit 9: Maximum Scan Line Register, bit 8: Overflow Register, bits 7-0: Start Vertical Blanking Register
- Sync Enable -- CRTC Mode Control Register
- Vertical Display End -- bits 9-8: Overflow Register, bits 7-0: Vertical Display End Register
- Vertical Retrace End -- Vertical Retrace End Register
- Vertical Retrace -- Input Status #1 Register
- Vertical Retrace Start -- bits 9-8: Overflow Register, bits 7-0: Vertical Retrace Start Register
- Vertical Sync Polarity -- Miscellaneous Output Register
- Vertical Total -- bits 9-8: Overflow Register, bits 7-0: Vertical Total Register

Miscellaneous Functions
These fields are used to detect the state of possible VGA hardware such as configuration switches/jumpers and feature connector inputs.

- Feature Control Bit 0 -- Feature Control Register
- Feature Control Bit 1 -- Feature Control Register
- Switch Sense -- Input Status #0 Register

Notice: All trademarks used or referred to on this page are the property of their respective owners.
All pages are Copyright © 1997, 1998, J. D. Neal, except where noted. Permission for utilization and distribution is subject to the terms of the FreeVGA Project Copyright License.