Für professionelle Grafikprogrammierung ist es unerläßlich, die Register des VGA zu kennen. Niemand wird diese allerdings auswendig lernen, was auch sinnlos wäre. Wir wollen an dieser Stelle aus Platzgründen deshalb gar nicht näher auf dieses Thema eingehen und verweisen auf die vielfältige Sekundärliteratur (siehe Textende). Vorsicht ist allerdings bei Änderungen des VGA-Timings geboten. Extreme Werte können die Grafikhardware irreparabel beschädigen !!! Naiven Anfängern muß gesagt werden, daß Profis aus einer Standard(!)-VGA-Karte (allerdings ohne Bilddarstellung) Frequenzen von weit über 100 Hz herausholen können! Dieses Gebiet ist also für Experimente offensichtlich zu gefährlich und deshalb hoffentlich tabu! Aus eben diesen Gründen sind die entsprechenden Register auch extra geschützt (Protection-Bit 7 des CRTC-Registers 11), und wer dieses Bit löscht, sollte besser wissen, was er tut (!!!) !
Um aber trotzdem einen kleinen Einblick in das Innenleben einer VGA-Karte zu gewähren, hier nun eine kurze Vorstellung der einzelnen Register:
Einzelregister: Lesen Schreiben
Miscellaneous Output Register 3CCh 3C2h
Input Status Register 0 3C2h
Input Status Register 1 3DAh
Indizierte Register: Index-Register Daten-Register
Cathod Ray Tube Controller (CRTC) 3D4h 3D5h
CRTC-Register 0: Horizontal Total
CRTC-Register 1: Horizontal Display End
CRTC-Register 2: Horizontal Blank Start
CRTC-Register 3: Horizontal Blank End
CRTC-Register 4: Horizontal Sync Start
CRTC-Register 5: Horizontal Sync End
CRTC-Register 6: Vertical Total
CRTC-Register 7: Overflow
CRTC-Register 8: Initial Row Address
CRTC-Register 9: Maximum Row Address
CRTC-Register 0Ah: Cursor Start-Zeile
CRTC-Register 0Bh: Cursor End-Zeile
CRTC-Register 0Ch: Linear Starting Address High
CRTC-Register 0Dh: Linear Starting Address Low
CRTC-Register 0Eh: Cursor Address High
CRTC-Register 0Fh: Cursor Address Low
CRTC-Register 10h: Vertical Sync Start
CRTC-Register 11h: Vertical Sync End
CRTC-Register 12h: Vertical Display End
CRTC-Register 13h: Row Offset
CRTC-Register 14h: Underline Location
CRTC-Register 15h: Vertical Blank Start
CRTC-Register 16h: Vertical Blank End
CRTC-Register 17h: CRTC Mode
CRTC-Register 18h: Line Compare (Split Screen)
Timing Sequencer (TS) 3C4h 3C5h
TS-Register 0: Synchroner Reset
TS-Register 1: TS Mode
TS-Register 2: Write Plane Mask
TS-Register 3: Font Select
TS-Register 4: Memory Mode
Graphics Data Controller (GDC) 3CEh 3CFh
GDC-Register 0: Set/Reset
GDC-Register 1: Enable Set/Reset
GDC-Register 2: Color Compare
GDC-Register 3: Function Select
GDC-Register 4: Read Plane Select
GDC-Register 5: GDC Mode
GDC-Register 6: Miscellaneous
GDC-Register 7: Color Care
GDC-Register 8: Bit Mask
Attribute Controller (ATC)
Schreibzugriffe: 3C0h Index/Data-Flip-Flop
Lesezugriff auf Input Status Register 1 Index-Mode
Schreibzugriff: Index auf 3C0h, anschließend Daten-Byte auf gleichen Port
Lesezugriff: Index geschrieben, 3C1h Daten-Byte (3C0h Index)
ATC-Register: Index/Data
ATC-Register 0 - F: Palette Ram
ATC-Register 10h: Mode Control
ATC-Register 11h: Overscan Color
ATC-Register 12h: Color Plane Enable
ATC-Register 13h: Horizontal Pixel Panning
ATC-Register 14h: Color Select
Digital to Analog Converter (DAC)
Pixel Mask 3C6h
Pixel Write Address 3C8h
Pixel Read Address 3C7h
Pixel Color Value 3C9h
DAC State 3C7h
|