2603 lines
114 KiB
Plaintext
2603 lines
114 KiB
Plaintext
Cirrus Logic
|
|
|
|
CL-GD 410/420 (Also known as Video7 OEM)
|
|
CL-GD 510/520 Flat Panel/LCD
|
|
CL-GD 610/620 Flat Panel/LCD
|
|
|
|
CL-GD 5320
|
|
|
|
The 64xx Flat Panel family:
|
|
|
|
CL-GD 5410
|
|
CL-GD 6410 160pin Flat Panel/LCD controller. 256k no banks.
|
|
Supports 512 color TFT and 64 shades on mono STN
|
|
CL-GD 6412 160pin As 6410 but mixed 3.3V and 5V
|
|
CL-GD 6420 160pin As 6410 but 1MB. Supports 185000 colors on TFT
|
|
and 64 shades on mono STN, color TFT
|
|
CL-GD 6416
|
|
CL-GD 6440 208pin As 6420 but mixed 3.3V and 5V. Supports 8 and 16bit
|
|
single- and dual-scan color STN, 9,12,15 and 18bit
|
|
color TFT panels.
|
|
CL-GD 6450
|
|
|
|
The 54xx Super VGA family:
|
|
|
|
CL-GD 5401 AVGA 1. No banks
|
|
CL-GD 5402 AVGA 2.
|
|
Note: the 5401 and 5402 are sometimes sold as the Acumos AVGA1 and 2.
|
|
CL-GD 6205 160pin Flat Panel/LCD. Mixed 3.3 and 5V. always 512KB
|
|
64 shades on mono STN. Color TFT support
|
|
CL-GD 6215 160pin As 6205 with Local bus and PI support
|
|
CL-GD 6225 160pin As 6215 with single-scan color STN support
|
|
CL-GD 6235 160pin As 6235 with dual-scan color STN support
|
|
CL-GD 6245
|
|
|
|
CL-GD 5420 160pin 1MB 15/16 bit DAC.
|
|
CL-GD 5422 160pin 1MB 15/16/24bit DAC
|
|
CL-GD 5424 160pin As 5422 with Local bus support
|
|
CL-GD 5426 160pin As 5424 with 2MB and BitBLT
|
|
CL-GD 5428 160pin As 5426 with faster BitBLT
|
|
CL-GD 5429 160pin As 5428 with Memory Mapped I/O
|
|
CL-GD 5430 208pin 2MB "Alpine" 64bit memory and 32bit BitBLT engine
|
|
accelerates 8/16 it pixels
|
|
CL-GD 5432 "Alpine" 32bit version
|
|
CL-GD 5434 208pin 4MB "Alpine" 64bit memory and BitBLT engine.
|
|
accelerates 8/16/24/32 bit pixels
|
|
CL-GD 5452/3 208pin 4MB 64bit Highres truecolor controller
|
|
Linedraw. 2 chip set (5453 is the DAC).
|
|
CL-GD 547x future 3d accelerator chip
|
|
|
|
CL-GD 7541 Nordic Lite. 2Mb LCD controller
|
|
CL-GD 7542 Nordic 2Mb LCD controller
|
|
CL-GD 7543 Viking 2Mb LCD controller?
|
|
|
|
Not too sure that the CL-GD5432, CL-GD6416 really exist
|
|
|
|
The 54xx and 64xx series have a built in RAMDAC. 8 bit for the 5401/5402 and
|
|
6410/12/20, 15/16bit for the 5420 and 6440 and 15/16/24 bit for the 5422-3x.
|
|
The 54xx, 62xx and 6440 have built-in clock generator
|
|
|
|
|
|
Support Chips:
|
|
CL-GD 6340 100pin (Peacock) Color LCD Panel Driver. Supports 8, 512
|
|
and 4K color panels. Onboard RAMDAC
|
|
CL-GD 5453 208pin Palette DAC for the CL-GD5452
|
|
|
|
|
|
|
|
The 5xx/6xx Flat Panel family:
|
|
This family strongly resembles the early Video 7 chips. Apparently Cirrus
|
|
supplied at least one of the early Video 7 chips (Video7 OEM).
|
|
|
|
3C4h index 6 (W):
|
|
bit 0-7 Writing ("Eagle ID" rol 4) will disable extensions.
|
|
Writing "Eagle ID" will enable.
|
|
Reading will return 0 if extensions are disabled, 1 if enabled
|
|
The "Eagle ID" is read from 3d4h index 1Fh
|
|
|
|
3C4h index 80h (R/W): Miscellaneous Control 1
|
|
|
|
3C4h index 81h (R/W): Graphics Position 1
|
|
|
|
3C4h index 82h (R/W): Graphics Position 2
|
|
|
|
3C4h index 83h (R/W): Attribute Controller Index
|
|
|
|
3C4h index 84h (R/W): Write Control
|
|
|
|
3C4h index 85h (R/W): Timing Control
|
|
|
|
3C4h index 86h (R/W): Bandwidth Control
|
|
|
|
3C4h index 87h (R/W): Miscellaneous Control 2
|
|
|
|
3C4h index 88h (R/W): Horizontal Sync skew
|
|
|
|
3C4h index 89h (R/W): CGA, HGC Font Control
|
|
|
|
3C4h index 8Ah (R/W): Reserved
|
|
|
|
3C4h index 8Bh (R/W): Screen B preset row scan
|
|
|
|
3C4h index 8Ch (R/W): Screen B start address high
|
|
|
|
3C4h index 8Dh (R/W): Screen B start address low
|
|
|
|
3C4h index 8Eh (R): Version Code
|
|
|
|
3C4h index 8Fh (R): Version Code
|
|
|
|
3C4h index 90h (R/W): Vertical Retrace Start
|
|
|
|
3C4h index 91h (R/W): Vertical Retrace End
|
|
|
|
3C4h index 92h (R/W): Lightpen High
|
|
|
|
3C4h index 93h (R/W): Lightpen Low
|
|
|
|
3C4h index 94h (R/W): Pointer Pattern Address High
|
|
bit 0-7 Start address of the hardware cursor map in units of 256 bytes
|
|
within the last 64K of video memory
|
|
|
|
3C4h index 95h (R/W): Cursor Height Adjust
|
|
|
|
3C4h index 96h (R/W): Caret Width
|
|
|
|
3C4h index 97h (R/W): Caret Height
|
|
|
|
3C4h index 98h (R/W): Caret Horizontal Position High
|
|
|
|
3C4h index 99h (R/W): Caret Horizontal Position Low
|
|
|
|
3C4h index 9Ah (R/W): Caret Vertical Position High
|
|
|
|
3C4h index 9Bh (R/W): Caret Vertical Position Low
|
|
|
|
3C4h index 9Ch M(R/W): Pointer Horizontal Position
|
|
bit 0-10 Cursor X position from left
|
|
|
|
3C4h index 9Eh M(R/W): Pointer Vertical Position High
|
|
bit 0-9 Cursor Y position from top
|
|
|
|
3C4h index A0h (R/W): Graphics Controller Memory Latch 0
|
|
|
|
3C4h index A1h (R/W): Graphics Controller Memory Latch 1
|
|
|
|
3C4h index A2h (R/W): Graphics Controller Memory Latch 2
|
|
|
|
3C4h index A3h (R/W): Graphics Controller Memory Latch 3
|
|
|
|
3C4h index A4h (R/W): Clock Select
|
|
|
|
3C4h index A5h (R/W): Cursor (Caret and pointer) Attribute
|
|
bit 7 Set to enable hardware cursor
|
|
|
|
3C4h index A6h (R/W): Internal Switch Source
|
|
|
|
3C4h index A7h (R/W): Status Switch Control
|
|
|
|
3C4h index A8h (R/W): NMI Mask 1
|
|
|
|
3C4h index A9h (R/W): NMI Mask 2
|
|
|
|
3C4h index AAh (R/W): Reserved
|
|
|
|
3C4h index ABh (R): NMI Status 1
|
|
|
|
3C4h index ACh (R): NMI Status 2
|
|
|
|
3C4h index ADh (R/W): 256 Color mode Page Control
|
|
|
|
3C4h index AEh (R): NMI data cache (Four 24 bit words)
|
|
|
|
3C4h index AFh (R/W): Active Adapter State
|
|
|
|
3C4h index B0h..BFh (R/W): Scratch Registers
|
|
|
|
3C4h index C0h..FFh (R/W): Reserved
|
|
|
|
3d4h index 0Ch (R/W): Screen A start address Hi
|
|
Must be cleared before the Eagle ID Register (3d4h index 1Fh) can be read.
|
|
|
|
3d4h index 1Fh (R): Eagle ID register
|
|
bit 0-7 Eagle ID. Used for test of 3C4h index 6.
|
|
Reading this register will return the content of 3d4h index 0Ch XORed
|
|
with the Eagle ID value.
|
|
ECh for CL-GD 510/520, CAh for 610/620. EAh for Video7 boards.
|
|
|
|
Memory locations:
|
|
|
|
$C000:$6 2 bytes 'CL' if Cirrus Bios
|
|
|
|
Modes for the CL-GD510/520:
|
|
|
|
40h T 100 30
|
|
41h T 100 50
|
|
42h T 100 60
|
|
50h T 132 30
|
|
51h T 132 50
|
|
52h T 132 60
|
|
53h T 80 60
|
|
62h G 640 450 16
|
|
63h G 720 540 16
|
|
64h G 800 600 16
|
|
|
|
|
|
Other sources claim:
|
|
|
|
15h T 132 25 2 (8x14)
|
|
16h T 132 44 2 (8x8)
|
|
18h T 132 30 2 (8x)
|
|
1Eh T 132 25 16 (8x8)
|
|
1Fh T 132 25 16 (8x14)
|
|
20h T 132 44 16 (8x8)
|
|
22h T 132 30 16 (8x)
|
|
31h T 100 37 2
|
|
40h G 720 540 16 PL4
|
|
50h G 640 400 256 packed
|
|
51h G 512 480 256 packed Note: not supported in all BIOS'es
|
|
63h G 720 540 16 PL4
|
|
64h G 800 600 16 PL4
|
|
6Ah G 800 600 16 PL4
|
|
|
|
Mode 50h and 51h use a special system where four pixels are stored at the
|
|
same byte address in plane 0,1,2 and 3 respectively.
|
|
|
|
|
|
|
|
|
|
GD6349 (Peacock) Color LCD controller:
|
|
|
|
3C4h index E0h (R/W): Enable Readback Register
|
|
bit 0-7 0: Turn Readback off, F0h: Enable Readback (ALLSET)
|
|
|
|
3C4h index E9h (R): Identification Register
|
|
bit 4-7 Reads alternatingly as 7 and 8.
|
|
|
|
|
|
|
|
GD5410, 64xx series:
|
|
|
|
100h (R/W): CL-GD6440 Power Up Configuration (6440 only ?)
|
|
bit 0 Local Bus width. Set for 32bit, clear for 16 bit (386SX)
|
|
1-2 CPU Bus Type.
|
|
3 Sleep address. Set for 46E8h, clear for 3C3h
|
|
7 Local Bus Clock. Set for x2 clock, clear for x1 clock.
|
|
Note: This register can be accessed even when the CL-GD6440 is in sleep mode.
|
|
|
|
3CEh index 0Ah (R/W): Extension Control
|
|
bit 0-7 Write ECh to enable extensions, CEh to disable.
|
|
Reads as 1 if enabled, 0 if not.
|
|
|
|
3CEh index 0Bh (R/W): Attribute Controller Index (ARX) r/w with toggle
|
|
bit 0-4 Attribute Register Index
|
|
5 (not 6440 ?) Enable Video
|
|
7 Toggle ARX to Data. If set the Attribute register is in Data mode,
|
|
if clear in Index mode
|
|
|
|
3CEh index 0Ch (R/W): CR11 bit 7 at Extension
|
|
bit 7 Write Protect 3d4h index 0-7 if set
|
|
Can be used to break the deadlock between 3d4h index 3 bit 7 and
|
|
3d4h index 11h bit 7 as this it can always be changed.
|
|
|
|
3CEh index 0Dh (R/W): CPU Base Address Control (not 6410)
|
|
bit 0 Enable Page Remapping if set
|
|
1 Enable 64K Remapping page size if set, 32K if clear
|
|
2 If set use both 3CEh index 0Eh and 0Fh, if set use only index 0Eh:
|
|
Bit 2 Bit 1 Index 0Eh Index 0Fh
|
|
0 0 A0000h-A7FFFh Not used
|
|
0 1 A0000h-AFFFFh Not used
|
|
1 0 A0000h-A7FFFh A8000h-AFFFFh
|
|
1 1 A0000h-AFFFFh B0000h-BFFFFh
|
|
Note: for bit 1&2 both set (dual 64k maps) 3CEh index 6 bits 2-3
|
|
should be set to 0 to allow 128k video buffer.
|
|
4 (6440) Enable Linear Addressing if set. See index B1h for details
|
|
7 (not 6440) Enable I/O Ext Addr Remapping
|
|
Note: this register can be locked by 3CEh index A7h bit 4.
|
|
|
|
3CEh index 0Eh (R/W): CPU Base Address Mapping Register A (not 6410)
|
|
bit 0-7 Bank number in 4K units for accesses to the A0000h-A7FFFh (index Dh
|
|
bit 1 clear) or A0000h-AFFFFh (index Dh bit 1 set) range.
|
|
|
|
3CEh index 0Fh (R/W): CPU Base Address Mapping Register B (not 6410)
|
|
bit 0-7 Bank number in 4K units. If 3CEh index 0Dh bit 2 is set this
|
|
register is used for accesses to the A8000h-AFFFFh (index Dh
|
|
bit 1 clear) or B0000h-BFFFFh (index Dh bit 1 set) range.
|
|
|
|
3CEh index 30h (R/W): Cell High Extension (6410 only ?)
|
|
bit 0-4 Cell High Status
|
|
5 Vertical Blank Start bit 9 Status
|
|
6 Line Compare bit 9 Status
|
|
7 Scan Double Status
|
|
Note: This register resembles 3d4h index 9 ??
|
|
|
|
3CEh index 31h (R/W): Cursor Start Extension (6410 only ?)
|
|
bit 0-4 Cursor Start Status
|
|
5 Disable Cursor Status
|
|
Note: This register resembles 3d4h index 0Ah
|
|
|
|
3CEh index 32h (R/W): Cursor End Extension (6410 only ?)
|
|
bit 0-4 Cursor End Status
|
|
5-6 Cursor Skew Status
|
|
Note: This register resembles 3d4h index 0Ah
|
|
|
|
3CEh index 33h (R/W): Underline Location Extension (6410 only ?)
|
|
bit 0-4 Underline Status
|
|
5 Count by 4 Status
|
|
6 Double Word Status
|
|
|
|
3CEh index 34h (R/W): Cursor Location Extension (5410 only)
|
|
bit 0-3 Cursor Location Address bit 16-19
|
|
|
|
3CEh index 60h (R/W): Horizontal Total Extension
|
|
bit 0-7 Horizontal Total in character clocks (-5).
|
|
Bit 8 is in 3CEh index 64h bit 5.
|
|
Note: The indexes 60h-64h are the actual horizontal CRTC timing controls.
|
|
Index 83h bit 1 determines whether writes to the corresponding fields
|
|
in the 3d4h indexes should be reflected here.
|
|
|
|
3CEh index 61h (R/W): Horizontal Blank Start Extension
|
|
bit 0-7 Horizontal Blank Start in character clocks.
|
|
Bit 8 is in 3CEh index 62h bit 7.
|
|
|
|
3CEh index 62h (R/W): Horizontal Blank End Extension
|
|
bit 0-4 Horizontal Blank End Extension in character clocks
|
|
7 Horizontal Blank Start Extension bit 8. Bits 0-7 are in index 61h.
|
|
|
|
3CEh index 63h (R/W): Horizontal Retrace Start Extension
|
|
bit 0-7 Horizontal Retrace Start in character clocks.
|
|
Bit 8 is in 3CEh index 64h bit 6.
|
|
|
|
3CEh index 64h (R/W): Horizontal Retrace End Extension
|
|
bit 0-4 Horizontal Retrace End Extension in character clocks.
|
|
5 Horizontal Total Extension bit 8. Bits 0-7 are in index 60h.
|
|
6 Horizontal Retrace Start Extension bit 8. Bits 0-7 are in index 63h.
|
|
7 Horizontal Blank End bit 8. Bits 0-7 are in index 62h.
|
|
|
|
3CEh index 70h (R/W): Vertical Total Extension
|
|
bit 0-7 Vertical Total in scanlines for a frame. This is the equivalent of
|
|
3d4h index 6. Bits 8-10 are in index 78h and 79h
|
|
Note: The indexes 70h-75h, 78h and 79h are the actual vertical CRTC timing
|
|
controls. Index 83h bit 0 determines whether writes to the corresponding
|
|
fields in the 3d4h indexes should be reflected here.
|
|
|
|
3CEh index 71h (R/W): Vertical Display Enable Extension
|
|
bit 0-7 Vertical Display Enable End. This is the equivalent of 3d4h index
|
|
12h. Bits 8-10 are in index 78h and 79h
|
|
|
|
3CEh index 72h (R/W): Vertical Blank Start Extension
|
|
bit 0-7 Vertical Blank Start. This is the equivalent of 3d4h index 15h
|
|
Bits 8-10 are in index 78h and 79h.
|
|
|
|
3CEh index 73h (R/W): Vertical Blank End Extensions
|
|
bit 0-7 Vertical Blank End. This is the equivalent of 3d4h index 16h
|
|
Bit 8 is in index 78h
|
|
|
|
3CEh index 74h (R/W): Vertical Retrace Start Extension
|
|
bit 0-7 Vertical Retrace Start. This is the equivalent of 3d4h index 10h
|
|
Bits 8-10 are in index 78h and 79h.
|
|
|
|
3CEh index 75h (R/W): Vertical Retrace End Extension
|
|
bit 0-3 Vertical Retrace End. This is the equivalent of 3d4h index 11h
|
|
|
|
3CEh index 78h (R/W): CR07 Extension
|
|
bit 0 Vertical Total bit 8. Bits 0-7 are in index 70h
|
|
1 Vertical Display Enable bit 8. Bits 0-7 are in index 71h
|
|
2 Vertical Retrace Start bit 8. Bits 0-7 are in index 74h
|
|
3 Vertical Blank Start bit 8. Bits 0-7 are in index 72h
|
|
4 Line Compare bit 8.
|
|
5 Vertical Total bit 9
|
|
6 Vertical Display Enable bit 9.
|
|
7 Vertical Retrace Start bit 9
|
|
|
|
3CEh index 79h (R/W): Vertical Overflow beyond CR07
|
|
bit 0 Vertical Total bit 10
|
|
1 Vertical Display Enable bit 10
|
|
2-3 Vertical Blank Start bit 9-10.
|
|
4 Vertical Retrace Start bit 10
|
|
|
|
3CEh index 7Ah (R/W): Coarse Vertical Retrace Skew for Interlaced
|
|
bit 0-7 Coarse Vertical Retrace Skew for Interlaced Odd Fields in
|
|
Character Clock Periods.
|
|
|
|
3CEh index 7Bh (R/W): Fine Vertical Retrace Skew (not 6440 ?)
|
|
bit 0-1 Fine Vertical Retrace Skew for Interlaced Odd Fields in Dot Clock
|
|
Periods
|
|
|
|
3CEh index 7Ch (R/W): Screen A Start Address Extension
|
|
bit 0-3 Screen A Start Address Extension bits 16-19.
|
|
Bits 0-15 are in 3d4h index Ch and Dh
|
|
|
|
3CEh index 80h (R/W): H/V Retrace Polarity Control (not 5410)
|
|
bit 1 (6440) Interlaced Mode Enable if set
|
|
2 (6440) Double Character Clock for Horizontal Parameters.
|
|
If set the Horizontal parameters will work as if they were twice
|
|
their actual value. This bit is used in extended 256 color modes.
|
|
4 Enable Expanded Graphics. If set a predetermined ratio (16 to 19) of
|
|
scanlines will be replicated in graphics modes.
|
|
5 H/V Polarity Source Control. If set bits 6-7 controls the Polarity
|
|
signals, if clear they are controlled by 3C2h bits 6-7.
|
|
6 Horizontal Retrace Polarity. Negative if set
|
|
7 Vertical Retrace Polarity. Negative if set.
|
|
|
|
3CEh index 81h (R/W): Display Mode (not 6440)
|
|
bit 0 (not 5410) Select LCD Display if set, CRT if clear
|
|
2 (6420,5410) Interlaced Mode Enable
|
|
3 (not 5410) Enable CL-GD6340 Mode
|
|
4 (not 5410) Select Single Scan Panel
|
|
5 (not 5410) Enable AutoMAP
|
|
7 (not 5410) Enable Simulscan
|
|
|
|
3CEh index 82h (R/W): Character Clock Selection
|
|
bit 0-2 Character Clock Width. 1: 8pixels, 2:4pixels
|
|
3 Disable SR1[0] functionality. If set the Character Clock Width will
|
|
be determined by bits 0-2, if clear by 3C4h index 1 bit 0.
|
|
5-6 (5410) 0: 2 CRT-clkin, 1: 1, 2: 4
|
|
7 (6440) Enable Internal Divided by 2 if set (for Pixel Doubling)
|
|
This divides the CRT Master clock by 2. The Flat Panel clock is not
|
|
affected.
|
|
|
|
3CEh index 83h (R/W): Write Control
|
|
bit 0 CRTC Vertical Parameters Write Protect. If set updates to the
|
|
standard CRTC vertical registers (3d4h index 6,7 (bit 0,2,3,5,7),
|
|
9 bit 5, 10h, 11h bit 0-3, 15h, 16h) will not be reflected in the
|
|
Vertical Working Set registers (index 70h-75h,78h,79h)
|
|
1 (6440) Horizontal Parameters Write Protect. If set updates to the
|
|
standard CRTC horizontal registers (3d4h index 0-5) will not be
|
|
reflected in the Horizontal Working Set registers (index 60h-64h)
|
|
(not 6440) CRTC Display Timing Effect Write Protect
|
|
3d4h index 7 (bit 1,6), 9, 0Ah, 0Bh, 12h, 14h
|
|
2 (not 6440) CRTC Vertical Display End Effect Protect
|
|
3d4h index 12h, 7 (bits 1,6)
|
|
3 (not 6440) CRTC Blank Effect Protect
|
|
3d4h index 2, 3 bits 0-3, 5 bit 7, 7 bit 3, 9 bit 5,
|
|
15h, 16h
|
|
4 (not 6440) CRTC Total/Retrace Effect Protect
|
|
6 (not 6440) Attribute Registers Write Protect (3C0h index 0-0Fh).
|
|
|
|
3CEh index 84h (R/W): Clock Select (not 6440)
|
|
bit 1 (not 5410) Clock In Divide by 2 if set.
|
|
2-5 Clock Select bits 0-3. If bit 7 is clear 3C3h bits 2-3 are used
|
|
for the two low clock bits.
|
|
7 Select bit 2-3 as clock bit 0-1 rather than 3C2h bit 2-3 if set.
|
|
|
|
3CEh index 85h (R/W): Virtual Switch Source (5410 only)
|
|
0-3 VGA Internal Switches for Analog Monitor
|
|
4 Enable Virtual Switches
|
|
|
|
3CEh index 86h (R/W): CRTC Test
|
|
bit 1-3 (5410) CRTC Test Bits
|
|
4 CRTC Outputs Three-State Control. If set the HSYNMC and VSYNC
|
|
outputs will be three-stated.
|
|
5 (6412,40) HSYNC, VSYNC Disable. If set the HSYNC and VSYNC outputs
|
|
are disabled and driven to 0. Used in Flat Panel mode.
|
|
Note: This register is intended for factory testing only.
|
|
|
|
3CEh index 87h (R/W): CRTC Spare Extension (Rev B only)
|
|
bit 1 (6412) PVSYNC Configuration
|
|
Pin 82: bit 4: bit 1: index 8Fh bit 4:
|
|
LFS 0 0 0
|
|
FPVDE 0 0 1
|
|
VDE* 1 0 x
|
|
PVSYNC 0 1 x
|
|
3 (6412) Enable Short VSYNC Total
|
|
4 (NOT 5410) VDE*/LFS Configuration on pin 99.
|
|
If set pin 99 is VDE*, if clear pin 99 is LFS
|
|
6 (6412) Enable short HTOT (HDE+7)
|
|
7 (6412) Enable short VTOT (VDE+4)
|
|
(6410,20) Invert VDE* Polarity on pin 99
|
|
6-7 (5410) Interlace Test 0-1
|
|
|
|
3CEh index 89h (R/W): CRTC Spare 1
|
|
|
|
3CEh index 8Ah (R/W): CRTC Spare 2
|
|
|
|
3CEh index 8Fh (R/W): CRTC BIOS Configuration (not 6440)
|
|
bit 0-1 Clock Select Pin-out Configuration
|
|
2 (6412) If set SUSPEND* input, if clear FRA8 input
|
|
3 (6412) If set VDCLK I/O output, if clear FPVDCLK
|
|
4 (6412) If set FPVDE output, if clear LFS output
|
|
5 (6412) SUSPEND* pin Configuration. SUSPEND* if set, FRA8 if clear
|
|
6 (6412) Frame Accelerator Control bit. Set if the system power down
|
|
the Frame Accelerator DRAM
|
|
7 (6412,20) Enable Retrace Line Clocks
|
|
|
|
3CEh index 90h (R/W): Display Memory Control
|
|
bit 0 Scan Line Double Control. If set each scanline will be displayed
|
|
twice (typically 200 line modes).
|
|
1 RAS* Precharge. Extended (4 SQCLK cycles) if clear, normal (3 SQCLK
|
|
cycles) if set
|
|
2 (5410) DMC2
|
|
3 Display Memory Refresh Control Extension
|
|
5-6 (5410) DMC5-6
|
|
6 (6410 rev B,6420) Power Sequencing Status Bit.
|
|
Note: The undefined bits should be set to 0 when writing this register.
|
|
|
|
3CEh index 91h (R/W): CRT Circular Buffer Policy Selection
|
|
bit 5 Reset FIFO ?
|
|
6-7 (R) Reserved
|
|
Note: The undefined bits should be set to 0 when writing this register.
|
|
|
|
3CEh index 92h (R/W): Font Control
|
|
bit 0-1 Font Control Address Extension bits 16-17. Also used for Bold font
|
|
selection ?
|
|
3 (6410,20) Enable Software Expanded Text
|
|
5 (not 5410) Enable Full Height Cursor. If set a full height cursor is
|
|
displayed regardless of the Cursor Start and Cursor End (3d4h index
|
|
Ah,Bh).
|
|
6 (not 5410) Text Expansion Method Select. If set scanlines 0,8 and 15
|
|
are duplicated, if clear scanline 0 is repeated twice and scanline
|
|
15 once. This is only active if bit 7 is set.
|
|
7 (not 5410) Enable Hardware Expanded Text. If set 16line text is
|
|
expanded to 19 line text by the method selected by bit 6.
|
|
This is only active in text modes.
|
|
|
|
3CEh index 93h (R/W): Full Frame-Accelerator Bottom-half Start (6440)
|
|
bit 0-7 Bottom Half Start Address
|
|
Note: this register should not be modified by applications.
|
|
|
|
3CEh index 93h (R/W): CPU Interface Test Register (5410)
|
|
bit 6-7 CTR6-7
|
|
|
|
3CEh index 94h (R/W): Full Frame-Accelerator Misc. Control 1 (6440)
|
|
bit 0 Frame Accelerator Selection. Full if set, Half if clear
|
|
1-7 Should be set to 0
|
|
Note: The undefined bits should be set to 0 when writing this register.
|
|
|
|
3CEh index 95h (R/W): CRTC Circular Buffer Delta and Burst
|
|
bit 0-3 Delta number. Should be set to 0
|
|
4-7 Burst number. Should be set to 0
|
|
|
|
3CEh index 96h (R/W): Display Memory Control Test Register
|
|
bit 0 Latch Monitor ID. If the screen is forced blank, and this bit is
|
|
set and then reset the monitor ID will be latched as it is on reset.
|
|
After one frame time without screen refresh the ID can be read from
|
|
index 9Ch
|
|
1 (6420) Frame Accelerator Three-State control
|
|
(6440,5410) Video Memory Data M1D, M3D Three-State Control.
|
|
If set the M0D and M2D busses will be three-stated
|
|
2 Video Memory Data M0D, M2D Three-State control. If set the M0D and
|
|
M2D busses will be three-stated
|
|
3 Video Memory & Address Three-State control. If set the Address and
|
|
Control pins of the Memory Sequencer (AA[0:8], AB[0:8], OE*, WE*,
|
|
RAS* and CAS*) will be three-stated.
|
|
4 (5410) Disable Fast-Page Mode
|
|
Note: The undefined bits should be set to 0 when writing this register.
|
|
|
|
3CEh index 97h (R): Monitor Switches Read Back
|
|
bit 0 (6440) 14MHz Clock Source. If set a 14MHz crystal is connected
|
|
across the XTAL1 and XTAL2 pins, if clear a 14MHz crystal is
|
|
connected to XTAL1.
|
|
3-7 (6440) Reserved for BIOS
|
|
4-7 (not 6440,5410) Panel Type Switches
|
|
7 (5410) Interlace
|
|
|
|
3CEh index 98h (R/W): Scratch
|
|
bit 0-7 Reserved for BIOS use
|
|
|
|
3CEh index 99h (R): Configuration Register 0
|
|
bit 0 BIOS address. If bits 1-2 are 0 (Local Bus) this is the data bus
|
|
width (set for 32bit, clear for 16) if bits 1-2 are 2 (ISA bus) this
|
|
is the BIOS support (C000h on adapter with BIOS support if clear,
|
|
C0000h or E0000h on motherboard with no BIOS support if set).
|
|
1 (5410) CPU Bus Type. 0: ISA, 1: MCA
|
|
1-2 (6440) CPU Bus Type. 0: Local Bus, 1: PI bus, 2: ISA bus
|
|
2 (not 6440) Disable VGA address space
|
|
3 Sleep at 46E8h if set, 3C3h if clear
|
|
4 BIOS is 16bit if set, 8bit if clear
|
|
5 (6440) VGA Address space. If set the VGA I/O addresses are decoded
|
|
at xxx instead of 3xx and yxxx instead of Axxx or Bxxx for video
|
|
memory
|
|
6 (6440) Disable ST100 Effect if set
|
|
7 (6440) CPU clock select/ISA I/O select. If bits 1-2 are 0 (Local
|
|
Bus) this is the CPU Clock Select (set x2 clock and CPURESET pin
|
|
activated, clear for x1 clock and CPURESET pin deactivated) if bits
|
|
1-2 are 1 (PI bus) this is the I/O select (I/O through the PI bus if
|
|
clear, I/O through ISA bus if set).
|
|
|
|
3CEh index 9Ah (R/W): Video Memory Configuration
|
|
bit 0-7 (not 6440,5410) Reserved. should be programmed to 0.
|
|
0-2 (6440) Memory Width.
|
|
0: 32bit Memory bus with 4 CAS (8 256kx4 or 2 256kx16)
|
|
6-7 (5410) RAMDAC Select 0-1
|
|
|
|
3CEh index 9Bh (R/W): Miscellaneous Pin Configuration
|
|
bit 0 Enable Sequencer Clock (SQCLK) inversion if set
|
|
1 On Chip Monitor Sense Enable if clear, disable if set ?
|
|
3-4 (not 6440,5410) INTERNAL/MOD Pin Configuration.
|
|
0: INTERNAL, 1: MODULATION
|
|
5-6 (not 6440,5410) LLCLK/DE Configuration.
|
|
0: LLCLK, 1: DE (for GD6340),
|
|
3: Pins 98/99=PHSYNC/PVSYNC
|
|
7 (6412) Paged BIOS Disable.
|
|
If set pins 62-64 are TIMER*, PO1 and SSCLK
|
|
if clear pins 62-64 are BIOS address bit 13-15
|
|
Note: The undefined bits should be set to 0 when writing this register.
|
|
|
|
3CEh index 9Ch (R): PS/2 Monitor ID Read-back
|
|
bit 5-7 Monitor ID. 2: 8514, 5: 8503, 6: 8512/8513, 7: no monitor
|
|
|
|
3CEh index 9Dh (R/W): Miscellaneous Configuration 2 (6412 only)
|
|
bit 0 FPVDCLK Delay. If set delay FPVDCLK by 1/2 Video Clock (VDCLK)
|
|
1 Select OE* Delay. If set OE* is delayed by one Memory Clock (SQCLK)
|
|
6 5v/3v Monitor Sense Select. 5V if set, 3.3V if clear
|
|
7 Select OSC as SQCLK.
|
|
If set SQCLK is derived from OSC, if clear from an input
|
|
|
|
3CEh index 9Dh (R/W): Configuration 1 Register (5410 only)
|
|
bit 0-1 Bus Type
|
|
6 Use External SQCLK Synthesizer
|
|
7 Use External VDCLK Synthesizer
|
|
|
|
3CEh index 9Eh (R/W): Frame-Accelerator Even Frame Start Addr (6440)
|
|
bit 0-7 Frame-Accelerator Even Frame Start Address bits 12-19
|
|
Note: should not be modified by applications.
|
|
|
|
3CEh index 9Eh (R/W): Display Memory Configuration High (5410)
|
|
bit 0-2 SQCLK Frequency
|
|
3-4 DRAM Width
|
|
5-7 DRAM Depth
|
|
|
|
3CEh index 9Fh (R/W): Frame-Accelerator Odd Frame Start Addr (6440)
|
|
bit 0-7 Frame-Accelerator Odd Frame Start Address bits 12-19
|
|
Note: should not be modified by applications.
|
|
|
|
3CEh index 9Fh (R/W): Display Memory Configuration Low (5410)
|
|
bit 0 DMCR0
|
|
1-3 Display Memory Bus Width
|
|
4-6 Display Memory Bus Depth
|
|
|
|
3CEh index A0h (R/W): Bus Interface Unit Control
|
|
bit 0 Disable BIOS ROM (ignore accesses to C0000h-C7FFFh) if set
|
|
1 Disable Sleep Mechanism if set
|
|
2 (not 5410) Enable Write Protect RAMDAC if set
|
|
3 MEMCS16* Mode Select. If set A0000h-C7FFFh is decoded as 16bit, if
|
|
clear only the range used for the current mode is decoded as 16bit.
|
|
4 Enable 16bit Memory if set
|
|
5 (6440) Enable 16bit I/O if set
|
|
6 (5410) Enable 16bit I/O
|
|
(not 5410) Disable CPU Address Scramble (3C4h index 3 bits 1,3)
|
|
if set
|
|
7 (5410) Enable 16bit Interface in Planar Modes
|
|
|
|
3CEh index A1h (R/W): Three-State & Test Control
|
|
bit 3 All other Output & I/O pins Three-State Control. If set all output
|
|
and I/O pins are three-stated
|
|
5 If set the CRTC Offset (3d4h index 13h) and Display Start Address
|
|
(3d4h index 0Ch,0Dh).are multiplied with 4.
|
|
Set in extended 256color modes.
|
|
7 (not 5410) Disable I/O Read if set. Must be set to access the
|
|
CL-GD6340.
|
|
Note: The undefined bits should be set to 0 when writing this register.
|
|
|
|
3CEh index A2h (R/W): BIOS Page Selection (not 5410)
|
|
bit 0-2 Select ROM BIOS Page
|
|
|
|
3CEh index A6h (R/W): Wait State Controls
|
|
bit 0 Disable Memory Write Wait State Control. If set the READY* is forced
|
|
to synchronize with the CPU clock which adds one clock period.
|
|
1 Disable I/O Read Wait State if set, if clear one SQCLK period is
|
|
added.
|
|
2 Enable 0 Wait State for Memory Write if set
|
|
3 (not 6440) Disable RAMDAC I/O Wait State
|
|
4 Disable I/O Write Wait State if set, if clear one SQCLK period is
|
|
added for I/O writes.
|
|
6 (not 5410) BIOS Wait-State Control. 0 Wait States if set
|
|
7 (R) Bus width Status Bit. 16bit if set, 8bit if clear
|
|
|
|
3CEh index A7h (R/W): General Programmable I/O Port Control (not 5410)
|
|
bit 0 (6440) Output pin PO0 (pin 103) Control
|
|
1 Output pin PO1 (pin 104) control
|
|
2 (6410,20,40) Output pin PO2 (pin 105) Control
|
|
3 (6440) Output pin PO3 (pin 106) Control
|
|
4 (6440) Write Protect 3CEh index 0Dh if set
|
|
6 (6440) Enable PO[3:0]. If set pins 103-106 is configured as outputs
|
|
|
|
3CEh index A9h (R/W): Bus Interface Unit Cache Control
|
|
bit 0 (5410) Enable Read from Write FIFO
|
|
1 Enable Cache Read if set
|
|
2 (6440,5410) Enable Write Plane-Select Compaction in Write Mode 0 if
|
|
set
|
|
3 (6410,12,5410) Enable Write-Overwrite Compaction in modes 2,3
|
|
4 (5410) Enable 16bit Peripheral in Planar Modes
|
|
5-6 Internal BIU Timing to control delays
|
|
|
|
3CEh index AAh (R): Design Revision
|
|
bit 0-3 Design Revision
|
|
4-7 Design ID (Major version):
|
|
4: CL-GD6440
|
|
5: CL-GD6412
|
|
6: CL-GD5410
|
|
7: CL-GD6420
|
|
8: CL-GD6410
|
|
|
|
3CEh index ABh (R/W): Mask Revision (not 5410)
|
|
bit 0-7
|
|
|
|
3CEh index AEh (R/W): Alternate Extension Decode High (5410,6412 only)
|
|
bit 0-7 Bits 8-15 of the value. Bits 0-7 are in index AFh
|
|
|
|
3CEh index AEh (R/W): Color Expansion Pixel Mask (6440 only)
|
|
bit 0-7
|
|
|
|
3CEh index AFh (R/W): Alternate Extension Decode Low (5410,6412 only)
|
|
bit 0-7 Bits 0-7 of the value. Bits 8-15 are in index AEh
|
|
|
|
3CEh index B0h (R/W): Color Expansion Control (6440 only)
|
|
bit 0 Enable Color Expansion if set (enables bit 2 ??)
|
|
1 Enable by 8 Address Mode if set. The CPU addresses are shifted left
|
|
by 8
|
|
2 Write Mode 4/5 Control. If set write mode 4 is selected where the
|
|
foreground color is written to each pixel where the corresponding
|
|
bit of the CPU data is set, if clear write mode 5 is selected where
|
|
each pixel is written with the foreground or background color
|
|
depending on the corresponding bit in the CPU data byte.
|
|
4 Enable Enhanced Writes for 16bit pixels if set. The CPU addresses
|
|
are shifted left 4 bits so that each bit corresponds to one pixel.
|
|
16 bytes can be copied by one CPU byte.
|
|
|
|
3CEh index B1h (R/W): Linear Address Map (6440 only)
|
|
bit 0-3 Linear Address Map. Selects the address of the 1MB linear video
|
|
buffer. 0=no linear map, 1-15 map on corresponding MB boundary.
|
|
|
|
3CEh index B2h W(R/W): Foreground Color for Color Expansion (6440 only)
|
|
bit 0-15 Foreground color for color expansion in Write mode 4 and 5
|
|
|
|
3CEh index B4h W(R/W): Background Color for Color Expansion (6440 only)
|
|
bit 0-15 Foreground color for color expansion in Write mode 5
|
|
|
|
3CEh index BAh (R/W): Scratch Pad 0
|
|
bit 0-7
|
|
|
|
3CEh index BBh (R/W): Scratch Pad 1
|
|
bit 6-7 Video Memory: 0: 256K, 1: 512K, 2: 768K, 3: 1024K
|
|
|
|
3CEh index BCh (R/W): Scratch Pad 2
|
|
bit 0-7
|
|
|
|
3CEh index BDh (R/W): Scratch Pad 3
|
|
bit 0-7
|
|
|
|
3CEh index BEh (R/W): Scratch Pad 4
|
|
bit 0-7
|
|
|
|
3CEh index BFh (R/W): Scratch Pad 5
|
|
bit 0-7
|
|
|
|
3CEh index C0h (R/W): Attribute and Graphics Control
|
|
bit 0 (not 5410) Enable Foreground Enhancement if set. The intensity bit
|
|
of the foreground color is XOR, except if the color is 0 or 8.
|
|
1 Bypass Internal Palette if set.
|
|
2 (6412) Enable 4bit Single-Scan Monochrome Panel Support
|
|
(6440) Attribute Emulation. If set the text mode attributes will be
|
|
changes as follows:
|
|
ForeGround shade > BackGround shade
|
|
ForeGround = White and BackGround = Black
|
|
ForeGround shade < BackGround shade
|
|
ForeGround = Black and BackGround = White
|
|
(5410) Disable 3C0h index 14h
|
|
3 Enable Background Color Enhancement if set.
|
|
|
|
3CEh index C1h (R/W): Cursor Attributes
|
|
bit 0 Enable Cursor Blinking if clear
|
|
1-2 Cursor Blinking Rate
|
|
3 Cursor Mode. Invert if set, replace if clear
|
|
4 Invert Border Color if set
|
|
5 (not 5410) Cursor Color Control. If set the cursor is forced to
|
|
black and white
|
|
|
|
3CEh index C2h (R/W): Graphics Controller Memory Latch 0
|
|
bit 0-7
|
|
|
|
3CEh index C3h (R/W): Graphics Controller Memory Latch 1
|
|
bit 0-7
|
|
|
|
3CEh index C4h (R/W): Graphics Controller Memory Latch 2
|
|
bit 0-7
|
|
|
|
3CEh index C5h (R/W): Graphics Controller Memory Latch 3
|
|
bit 0-7
|
|
|
|
3CEh index C8h (R/W): RAMDAC Control
|
|
bit 1 (6410,12,40) Select 16color Extended mode (Packed-pixel) if set
|
|
2 (6440) Enable 256 Color Modes if set (not 320x200 ?)
|
|
5 Enable Force Blank to RAMDAC if set
|
|
6 (6440) Grey Scale Data from Attribute registers if set
|
|
Note: The undefined bits should be set to 0 when writing this register.
|
|
|
|
3CEh index C9h (R/W): Graphics and Attribute Test
|
|
bit 0-2 (5410) GAT bits 0-2
|
|
3 (6410,12,40,5410) Enable 9dot Font if set. The ninth bit is taken
|
|
from plane 3 bit 7.
|
|
4 (not 6440) Three-State Pixel data & VDCLK
|
|
5 (6440) LSB value of Red and Blue and Green for HiColor modes.
|
|
In HiColor modes (bit 7 set) this bit is used as the LSB of the red,
|
|
blue and green (if bit 6 is clear) .
|
|
(5410) Red/Blue LSB
|
|
6 (6440) Select 15/16bit color. If set 16bit, if clear 15bit.
|
|
This bit is cleared when bit 7 is set
|
|
(5410) Green LSB
|
|
7 (6440,5410) Enable Direct (15/16bit) Color if set
|
|
|
|
3CEh index D0h (R/W): Flat Panel Column Offset (not 6440)
|
|
bit 0-7 Bit 8 is in index D4 bit 0.
|
|
|
|
3CEh index D1h (R/W): Flat Panel Horizontal Displayed (not 6440)
|
|
bit 0-7 Bit 8 is in 3CEh index D4h bit 1
|
|
|
|
3CEh index D2h (R/W): Flat Panel Row Offset (not 6440)
|
|
bit 0-7 Bits 8-9 are in 3CEh index D4 bits 2-3
|
|
|
|
3CEh index D3h (R/W): Flat Panel Vertical Size (not 6440)
|
|
bit 0-7 Bits 8-10 are in 3CEh index D4h bit 4-6
|
|
|
|
3CEh index D4h (R/W): Flat Panel Overflow (not 6440)
|
|
bit 0 Column Offset bit 8. Bits 0-7 are in index 60h
|
|
1 Panel Horizontal Displayed bit 8. Bits 0-7 are in index D1h
|
|
2-3 Row Offset Overflow bits 8-9. Bits 0-7 are in index D2h
|
|
4-6 Panel Vertical Size Overflow bits 8-10. Bits 0-7 are in index D3h.
|
|
|
|
3CEh index D5h (R/W): Flat Panel Attribute LCD Control (not 6440)
|
|
bit 0-1 9 Dots Text Reduction
|
|
2 (R) Stand-by Mode Status bit
|
|
3 Enable Attribute Emulation
|
|
4 Enable Extra Line Clk
|
|
5 Enable Reverse Video in Graphics Mode
|
|
6 Enable Reverse Video in Text Mode
|
|
7 Enable AutoMAP
|
|
|
|
3CEh index D6h (R/W): Flat Panel Grey Scale Offset (not 6440)
|
|
bit 0 Select Grey Scale offset 4 (default=13)
|
|
1 Power Sequencing Control
|
|
2 Power Sequencing Time Control
|
|
4 (6420 & 6410 rev B) Enable 8bit Plasma Interface
|
|
5 (6420 & 6410 rev B) Enable Intermodulation
|
|
6 Enable Horizontal Stipling
|
|
7 Enable Vertical Stipling
|
|
|
|
3CEh index D7h (R/W): Flat Panel Retrace LLCLK Control (not 6440)
|
|
bit 0-4 Retrace LLCLK counter
|
|
|
|
3CEh index D8h (R/W): Flat Panel Frame Color (not 6440)
|
|
bit 0-3 Frame Color
|
|
4 Enable Frame Color
|
|
6 (6410 rev B,12,20) Enable EPSON FPLCLK
|
|
|
|
3CEh index D9h (R/W): Flat Panel AC Modulation (not 6440)
|
|
bit 0-7
|
|
|
|
3CEh index DAh (R/W): Flat Panel Display Control (not 6440)
|
|
bit 0 (6420, 6410 rev B) Force 32 Grey Shades
|
|
1-2 Panel Vertical Alignment Control
|
|
3-4 Panel Size Selection
|
|
5-7 RGB Weight Control
|
|
|
|
3CEh index DBh (R/W): Standby Timer Control (not 6440)
|
|
bit 0-5 Standby Mode Time Interval in minutes
|
|
6-7 Standby Mode. 0: disable, 1: screen save, 2: video memory
|
|
|
|
3CEh index DCh (R/W): Flat Panel Color Configuration (not 6440)
|
|
bit 0 9bit Color Panel Select
|
|
1 MOD/FPHDE/P8 pin function control. If set P8 is output,
|
|
if clear MOD is output if bit 0 is clear, FPHDE if set
|
|
|
|
3CEh index E0h (R/W): Flat Panel Column Offset (6440 only)
|
|
bit 0-7 Bit 8 is in 3CEh index E4h bit 0.
|
|
0Ah will display the first pixel at the left edge of the display
|
|
|
|
3CEh index E1h (R/W): Flat Panel Horizontal Displayed Size (6440 only)
|
|
bit 0-7 The panel width in nibbles (4 pixels) (-1). 159 for 640 pixel.
|
|
Bit 8 is in index E4h bit 1.
|
|
|
|
3CEh index E2h (R/W): Flat Panel Row Offset (6440 only)
|
|
bit 0-7 Starting row from the top. Bits 8-9 are in index E4h bit 2-3
|
|
|
|
3CEh index E3h (R/W): Flat Panel Vertical Size (6440 only)
|
|
bit 0-7 Number of lines (-1) in the panel.
|
|
Bits 8-10 are in index E4h bit 4-6
|
|
|
|
3CEh index E4h (R/W): Flat Panel Overflow (6440 only)
|
|
bit 0 Column Offset bit 8. Bits 0-7 are in index E0h
|
|
1 Panel Horizontal Displayed bit 8. Bits 0-7 are in index E1h
|
|
2-3 Row Offset Overflow bits 8-9. Bits 0-7 are in index E2h
|
|
4-6 Panel Vertical Size Overflow bits 8-10. Bits 0-7 are in index E3h
|
|
|
|
3CEh index E5h (R/W): Flat Panel Horizontal Centering Offset (6440 only)
|
|
bit 0-7 Number of nibbles (4pixels) between the end of line and the start of
|
|
the panel in 8dot video modes. Bit 8 is in index E7h bit 0
|
|
|
|
3CEh index E6h (R/W): Flat Panel Horizontal Centering Offset-9Dot (6440 only)
|
|
bit 0-7 Number of nibbles (4pixels) between the end of line and the start of
|
|
the panel in 9dot video modes. Bit 8 is in index E7h bit 1
|
|
|
|
3CEh index E7h (R/W): Flat Panel Horizontal Centering Overflow (6440 only)
|
|
bit 0 Flat Panel Horizontal Centering bit 8. Bits 0-7 are in index E5h
|
|
1 Flat Panel Horizontal Centering (9Dot) bit 8. Bits 0-7 are in
|
|
index E6h
|
|
2 Flat Panel Horizontal Size Adjust. Set if the panel width is less
|
|
than that of the CRT, clear if panel width greater or equal to the
|
|
CRT width.
|
|
|
|
3CEh index E8h (R/W): Flat Panel Pin Configuration (6440 only)
|
|
bit 0 Standby/Suspend Pin Status. If set Standby Timer Status is output on
|
|
pin 152, if clear Suspend Mode Status is output on pin 152.
|
|
1 Enable FPHDE Control. If set the FPHDE signal will be active during
|
|
horizontal display and vertical retrace time, if clear it is active
|
|
during horizontal and vertical display time.
|
|
2 Flat Panel Drive. If set 100%, if clear 60%
|
|
3 GD6440 Core at 3 Volts. If set 5V, if clear 3.3V
|
|
|
|
3CEh index E9h (R/W): Flat Panel Type Control (6440 only)
|
|
bit 0-2 Flat Panel Size Selection. 0: 640x480, 1: 640x400,
|
|
2: 1280x1024/1280x960
|
|
3 Flat Panel Scan Type. Set for single scan, clear for dual-scan.
|
|
5-6 Extra Line Clock Enable. 0,1: None, 2: 1 extra, 3: 2 extra line
|
|
clocks
|
|
|
|
3CEh index EAh (R/W): Flat Panel Power Control (6440 only)
|
|
bit 0 (R) Power Sequence Status. Indicates if we are in the middle of a
|
|
flat panel power on/off sequence.
|
|
1 (R) Standby on Status
|
|
2 Sequencer Flat Panel Power. Set to sequence the flat panel on, clear
|
|
to sequence the panel off. The sequence takes app. 0.5 seconds.
|
|
3-5 Standby Mode Selection
|
|
6 Enable External Suspend Pin if set
|
|
|
|
3CEh index EBh (R/W): Flat Panel Standby Timer (6440 only)
|
|
bit 0-7 Standby Timer interval in 15 second units.
|
|
|
|
3CEh index ECh (R/W): Flat Panel Misc 1 Control (6440 only)
|
|
bit 0-1 Vertical Alignment Control. 0: Top, 1: Bottom, 2,3:Center
|
|
2 Enable Horizontal Centering if set
|
|
3 Grayscale Offset Value. set for 4, clear for 13
|
|
Set if a CL-GD6340 is present ??
|
|
4-5 Display Type Select. 0: CRT, 1: Flat Panel, 2,3: SimulSCAN
|
|
6 Grayscale Offset Pattern Select. Set for monochrome grayscale offset
|
|
values are used, if clear green grayscale offset values are used.
|
|
7 Invert FPVDE (Flat Panel Vertical Display Enable) if set
|
|
|
|
3CEh index EDh (R/W): Flat Panel Retrace FPCLK (6440 only)
|
|
bit 0-4 Programmed Burst of Line Clocks. The number of line clocks during
|
|
retrace. The frequency is selected by bits 5-6
|
|
5-6 Retrace Line Clock Control
|
|
7 Fast Line Clock. If bit 5-6 are 3 this selects a fast line clock:
|
|
If set use a period of 64 MCLKs with a 16 MCLK pulse, if clear use a
|
|
period of 32 MCLKs with a pulse of 8 MCLKs.
|
|
|
|
3CEh index EEh (R/W): Flat Panel Test Control (6440 only)
|
|
bit 0-7 Reserved
|
|
Note: this register is used for testing and should not be used.
|
|
|
|
3CEh index F0h (R/W): Flat Panel Clock Control (6440 only)
|
|
bit 0-3 FPVDCLK Control selects the clock for the display from MCLK
|
|
4-5 FPVDCLK Enable Control
|
|
6 Invert FPVDCLK (Flat Panel Video Clock Signal) if set
|
|
7 Invert FPHDE (Flat Panel Horizontal Display Enable) if set
|
|
|
|
3CEh index F1h (R/W): Flat Panel Data Control (6440 only)
|
|
bit 0-4 Flat Panel Video Data Output Format Control
|
|
5 FPHSYNC/FPVSYNC Polarity Source Control. If set the sync polarity is
|
|
controlled by bits 6-7, if clear by 3C2h bits 6-7.
|
|
6 FPHSYNC Polarity Control. If set inverts the FPHSYNC (Flat Panel
|
|
Horizontal Sync)
|
|
7 FPVSYNC Polarity Control. If set inverts the FPVSYNC (Flat Panel
|
|
Vertical Sync)
|
|
|
|
3CEh index F2h (R/W): Flat Panel AC Modulation (6440 only)
|
|
bit 0-7 The half period of the square wave output to the MOD pin in line
|
|
clocks. Usually does not divide evenly into the panel size.
|
|
|
|
3CEh index F3h (R/W): Flat Panel FPHSYNC Skew (6440 only)
|
|
bit 0-6 FPHSYNC Skew in internal master clocks. Allows adjustment for
|
|
specific panels.
|
|
|
|
3CEh index F4h (R/W): Flat Panel FPVSYNC Skew (6440 only)
|
|
bit 0-4 FPVSYNC Skew. Allows the end of FPVSYNC to be delayed 0..31
|
|
5 FPVSYNC Width. If set FPVSYNC is two line clocks, if clear one.
|
|
6-7 FPHSYNC Width. Adjust the width of FPHSYNC.
|
|
|
|
3CEh index F5h (R/W): Memory Clock Select Factor (6440 only)
|
|
bit 0-4 Memory Clock Numerator "N"
|
|
5-7 Memory Clock Denominator "D"
|
|
The Memory Clock = 14.31818MHz * (N+)/(D+)
|
|
|
|
3CEh index F6h (R/W): CRT Clock Select "N" Factor (6440 only)
|
|
bit 0-6 CRT Clock Numerator "N"
|
|
7 Clock Source Control. If set the CRT clock is determined by the
|
|
"N/D" formula, if clear by 3C2h bits 2-3.
|
|
Note: The Video Clock = 14.31818MHz * (N+1)/((D+1) * (divide factor))
|
|
|
|
3CEh index F7h (R/W): CRT Clock Select "D" Factor (6440 only)
|
|
bit 0-3 CRT Clock Denominator "D"
|
|
4-5 CRT Clock Divide
|
|
6 Memory Clock Inverted if set
|
|
7 CRT Clock Inverted if set
|
|
|
|
3CEh index F8h (R/W): Flat Panel Mapping RAM Pointer (6440 only)
|
|
bit 0-5 Pointer to the Mapping RAM for I/O Read/Write. Index into Mapping
|
|
RAM. Read and write via index F9h.
|
|
7 Enable I/O Access of Mapping RAM if set
|
|
|
|
3CEh index F9h (R/W): Flat Panel Mapping RAM Data (6440 only)
|
|
bit 0-7 Mapping RAM Data. Reads and writes to this register go to the byte
|
|
in Mapping RAM selected by index F8h.
|
|
|
|
3CEh index FAh (R/W): Flat Panel Stippling Control (6440 only)
|
|
bit 0 Enable 32 Shades in All Stippling Cases if set
|
|
1-2 Stippling Select
|
|
3-5 Stippling Bit Select
|
|
6 Enable Inter-modulation if set. Should only be set on TFT color
|
|
panels and if the stippling output is less than 4 bits.
|
|
|
|
3CEh index FBh (R/W): Flat Panel Color Control (6440 only)
|
|
bit 0 Blue Color Weighting. If set the weighting is (BLUE *2)/16.
|
|
Used for sum2gray on monochrome panels.
|
|
1 Green Color Weighting. If set the weighting is (GREEN*9)/16
|
|
2-3 Red Color Weighting
|
|
4 Green Data from LUT. If set only green data is output from the LUTs
|
|
(Look Up Tables). Monochrome STN panels only
|
|
5 Enable Reverse Video in Graphics Modes if set. Panels only
|
|
6 Enable Reverse Video in Text Mode if set. Panels only.
|
|
|
|
3CEh index FCh (R/W): Flat Panel Frame Color 1 (6440 only)
|
|
bit 0-3 Frame Color Bits for Red The Red component of the color for the
|
|
non-displayed part of the panel (Border).
|
|
4 Enable Frame Color if set
|
|
|
|
3CEh index FDh (R/W): Flat Panel Frame Color 2 (6440 only)
|
|
bit 0-3 Frame Color Bits for Blue. The blue component of the color for the
|
|
non-displayed part of the panel (Border).
|
|
4-7 Frame Color Bits for Green. The Green component of the color for the
|
|
non-displayed part of the panel (Border).
|
|
|
|
|
|
3CEh index FEh (R/W): Flat Panel Miscellaneous Spare 2 (6440 only ?)
|
|
bit 0-7 Reserved
|
|
|
|
Video Modes:
|
|
|
|
002Dh G 640 400 256 P8
|
|
002Eh G 640 480 256 P8
|
|
002Fh G 648 480 256 P8 ;Weird resolution
|
|
0030h G 800 600 256 P8
|
|
0037h G 1024 768 16 PL4
|
|
0041h T 100 50 16 TXT
|
|
0042h T 100 60 16 TXT
|
|
0044h T 100 25 16 TXT
|
|
0051h T 132 50 16 TXT
|
|
0052h T 132 60 16 TXT
|
|
0053h T 80 60 16 TXT
|
|
0054h T 132 25 16 TXT
|
|
0064h G 800 600 16 PL4
|
|
006Ah G 800 600 16 PL4
|
|
|
|
|
|
|
|
|
|
GD62xx series:
|
|
The 62xx series is very similar to the early 54xx.
|
|
The 62xx series can display simultaneously on CRT and LCD (SimulSCAN).
|
|
The 62xx series always has 512KB. Mixed 3.3V and 5V. Pixel clock up to 65MHz
|
|
(5V) or 40MHz (3.3V).
|
|
There are two extra register banks (CX and RX) at 3d4h. How to select ?
|
|
|
|
3C4h index 2 (R/W): Map Mask
|
|
bit 0-7 Enable writing pixel bits 0-7 ?????
|
|
Note: See the VGA section for the normal use of this register
|
|
|
|
3C4h index 6 (R/W): Unlock ALL Extensions
|
|
bit 0-2,4 Writing 12h to this register enables extensions.
|
|
Read back 0Fh if locked.
|
|
Bits 3,5-7 are ignored on write.
|
|
|
|
3C4h index 7 (R/W): Extended Sequencer Mode
|
|
bit 0 Enable High-Resolution 256 Color modes if set
|
|
4-6 (R) Configuration switch 0-2 (MD[14:12])
|
|
|
|
3C4h index 8 (R/W): Miscellaneous Control
|
|
bit 0-2 Switch 1-3 Readback (Panel type, Monitor type, Local bus config).
|
|
3 Select active polarity of input SUSPEND for suspend mode.
|
|
.If set low is true, if clear high is true (default at reset).
|
|
4 Enable IO(60h) read detect to reset backlight timer
|
|
5 Enable IO(60h) read detect to reset standby timer
|
|
6 Disable MSC16* for Display Memory
|
|
7 Select symmetrical DRAM addressing for paged-mode on CRT
|
|
Set when using DRAM 9-bit addressing at 132 col CRT
|
|
|
|
3C4h index 9 (R/W): Scratch Register 0
|
|
bit 0 Set to center
|
|
2-4 Monitor type.
|
|
0: 31,5kHz Std VGA. IBM 8512,8503
|
|
1: 31.5, 35.5 kHz IBM 8514
|
|
2: 31.5, 35.1 kHz NEC 2A
|
|
3: 31.5 - 35.5 kHz NEC II
|
|
4: 31.5 - 38 kHz Multi Freq. NEC 3D
|
|
5: 31.5 - 48 kHz Sony CPD-1304, NEC 3FG, Nanao 9065S, 9070U
|
|
6: 31.5 - 56.5 kHz NEC 4D,4FG, Nanao T240i
|
|
7: 31.5 - 64 kHz NEC 5D,5FG/6FG, Nanao T560i,T660i
|
|
7 Panel frequency
|
|
|
|
3C4h index 0Ah (R/W): Scratch Register 1
|
|
bit 0 Display mode
|
|
1 Disable expand
|
|
2 Enable 16bit mode.
|
|
4 Attribute emulation
|
|
5 Disable bold font
|
|
6 High refresh
|
|
7 Voltage
|
|
|
|
3C4h index 0Bh (R/W): VCLK 0 Numerator Register
|
|
bit 0-6 VCLK 0 Numerator bits 0-6
|
|
|
|
3C4h index 0Ch (R/W): VCLK 1 Numerator Register
|
|
bit 0-6 VCLK 1 Numerator bits 0-6
|
|
|
|
3C4h index 0Dh (R/W): VCLK 2 Numerator Register
|
|
bit 0-6 VCLK 2 Numerator bits 0-6
|
|
|
|
3C4h index 0Eh (R/W): VCLK 3 Numerator Register
|
|
bit 0-6 VCLK 3 Numerator bits 0-6
|
|
|
|
3C4h index 0Fh (R/W): DRAM Control
|
|
bit 0-1 MCLK Select: 0: 50.1 MHz, 1: 44.7 MHz, 2: 25.0 MHz, 3: 37.5 MHz
|
|
Select 25MHz if VCLK is <= 18MHz
|
|
2 RAS* Timing.
|
|
0: Extended (PD on MD[27], RAS* high for 3MCLK, low for 4)
|
|
1: Standard (RAS* high for 2.5MCLK, low for 3.5)
|
|
5 CRT Write Buffer Depth Control
|
|
If set there are 4 16bit levels, if clear one 16bit level.
|
|
7 CRT Refresh disabled if set (LCD mode)
|
|
(5434)
|
|
|
|
3C4h index 10h (R/W): HW Cursor X-position
|
|
bit 0-7 When this value is written to the register, the upper 3 bits of the
|
|
index register are taken as the low order bits of an 11 bit
|
|
register. This is the horizontal position of the hardware cursor in
|
|
pixels.
|
|
|
|
3C4h index 11h (R/W): HW Cursor Y-position7
|
|
bit 0-7 When this value is written to the register, the upper 3 bits of the
|
|
index register are taken as the low order bits of an 11 bit
|
|
register. This is the vertical position of the hardware cursor in
|
|
pixels.
|
|
|
|
3C4h index 12h (R/W): HW Cursor control
|
|
bit 0 Enable the hardware cursor if set
|
|
1 Enable Access to RAMDAC Extended Colors.
|
|
Set to load special color values via 3C8h and 3C9h.
|
|
When this bit is set palette entry 0 accesses the cursor background
|
|
color and entry FFh accesses the cursor foreground color.
|
|
|
|
3C4h index 13h (R/W): HW Cursor bitmap address
|
|
bit 0-1 Select 1 of 4 32x32 cursors
|
|
The offset in 256 byte units within the last 16KB of video memory
|
|
where the cursor mask and shape bitmaps are stored.
|
|
There are two 128 byte (32x32 bits) bitmaps stored in video memory.
|
|
The appearance of the cursor at each pixel is determined by a
|
|
combination of the corresponding pixels from the first and second
|
|
bitmap:
|
|
1st: 2nd:
|
|
0 0 The original screen pixel is shown (invisible cursor)
|
|
0 1 The pixel is shown in the cursor background color.
|
|
1 0 The pixel is shown as the inverse of the original
|
|
screen pixel (XOR cursor)
|
|
1 1 The pixel is shown in the cursor foreground color.
|
|
|
|
3C4h index 14h (R/W): Scratch-Pad 2
|
|
bit 0-7 Reserved
|
|
|
|
3C4h index 15h (R/W): Scratch-Pad 3
|
|
bit 0-7 Reserved
|
|
|
|
3C4h index 16h (R/W): Miscellaneous
|
|
bit 0-7 Reserved
|
|
|
|
3C4h index 19h (R/W): Scratch-Pad 4
|
|
bit 0-7 Reserved
|
|
|
|
3C4h index 1Ah (R/W): Miscellaneous
|
|
bit 4 Enable 64x64 H/W cursor
|
|
5 Enable Improved cycle latency
|
|
6 Select dual-scan color panel
|
|
7 Select one DRAM refresh per line
|
|
|
|
3C4h index 1Bh (R/W): VCLK 0 Denominator & Post
|
|
bit 0 VCLK 0 Post Scalar bit. Divide clock by 2 if set
|
|
1-5 VCLK 0 Denominator Data
|
|
Note: The clock is (14.31818MHz * numerator (index 0Bh))/Denominator.
|
|
Divide by 2 if the Post Scalar bit is set.
|
|
3C2h bits 2-3 selects between VCLK0, 1, 2 and 3
|
|
The 5420 can not handle frequencies above 75.2 MHz
|
|
|
|
3C4h index 1Ch (R/W): VCLK 1 Denominator & Post
|
|
bit 0 VCLK 1 Post Scalar bit. Divide clock by 2 if set
|
|
1-5 VCLK 1 Denominator Data
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 1Dh (R/W): VCLK 2 Denominator & Post
|
|
bit 0 VCLK 2 Post Scalar bit. Divide clock by 2 if set
|
|
1-5 VCLK 2 Denominator Data
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 1Eh (R/W): VCLK 3 Denominator & Post
|
|
bit 0 VCLK 3 Post Scalar bit. Divide clock by 2 if set
|
|
1-5 VCLK 3 Denominator Data
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 1Fh (R/W): BIOS Write Enable and MCLK select
|
|
bit 0-5 MCLK frequency bit 0-5
|
|
|
|
3CEh index 0 (R/W): Set/Reset
|
|
bit 0-3 Write Mode 5 background color bits 0-3
|
|
4-7 Write Mode 5 background color bits 4-7
|
|
Note: See the VGA section for the use of this register in write mode 0-3
|
|
|
|
3CEh index 1 (R/W): Enable Set/Reset
|
|
bit 0-3 Write Mode 4/5 foreground color bits 0-3
|
|
4-7 Enable SR plane 0-3 or Write Mode 4/5 foreground color bits 0-3
|
|
Note: See the VGA section for the use of this register in write mode 0-3
|
|
|
|
3CEh index 5 (R/W): Mode
|
|
bit 0-1 Write mode: See the VGA section for modes 0-3.
|
|
2 Write mode bit 2 if 3CEh index 0Bh bit 2 is set
|
|
mode 4: Foreground write ?
|
|
mode 5: Fore and background write
|
|
3 Enable Read Color Compare
|
|
4 Enable odd/even (3C4h index 4 bit 2).
|
|
5 Shift 2 bits per byte
|
|
6 256 Color Mode
|
|
|
|
3CEh index 09h (R/W): Offset Register 0
|
|
bit 0-6 4k Primary/Low bank number
|
|
If 3CEh index 0Bh bit 0 is set references to A000h-A7FFh use this
|
|
bank register. If clear references to A000h-AFFFh use this bank
|
|
register.
|
|
|
|
3CEh index 0Ah (R/W): Offset Register 1
|
|
bit 0-6 4k High bank number
|
|
If 3CEh index 0Bh bit 0 is set references to A800h-AFFFh use this
|
|
bank register.
|
|
|
|
3CEh index 0Bh (R/W): Extension Control
|
|
bit 0 If set references to A000h-A7FFh use 3CEh index 9 as bank register,
|
|
and references to A800h-AFFFh use 3CEh index 0Ah as bank register.
|
|
If clear all references to A000h-AFFFh use 3CEh index 9 as bank
|
|
register.
|
|
1 Enable BY8 Addressing for 256 color modes
|
|
2 Enable Extended Write Modes if set (mode 4 and 5)
|
|
|
|
3d4h index 00h (R/W): Horizontal Total (CX00)
|
|
bit 0-7 Horizontal Total (-5)
|
|
Note: This register is used in 80 column and mode 13h (3C4h index 1 bit 3
|
|
clear or 3CEh index 5 bit 6 set)
|
|
|
|
3d4h index 01h (R/W): Horizontal Total (CX01)
|
|
bit 0-7 Horizontal Total (-5)
|
|
Note: This register is used in 50 column modes (3D4h index 1 bit 3 set or 3CEh
|
|
index 5 bit 6 clear)
|
|
|
|
3d4h index 02h (R/W): LFS Signal Vertical Counter Value Compare (CX02)
|
|
bit 0-7 Used if autocentering is not selected.
|
|
Note: This register selected for 3C2h bits 2-3 = 3 ??
|
|
|
|
3d4h index 03h (R/W): LFS Signal Vertical Counter Value Compare (CX03)
|
|
bit 0-7 Used if autocentering is not selected.
|
|
Note: This register selected for 3C2h bits 2-3 = 2 ??
|
|
|
|
3d4h index 04h (R/W): LFS Signal Vertical Counter Value Compare (CX04)
|
|
bit 0-7 Used if autocentering is not selected.
|
|
Note: This register selected for 3C2h bits 2-3 = 1 ??
|
|
|
|
3d4h index 05h (R/W): LFS Signal Vertical Counter Value Compare (CX05)
|
|
bit 0-7 Used if autocentering is not selected.
|
|
Note: This register selected for 3C2h bits 2-3 = 0 ??
|
|
|
|
3d4h index 06h (R/W): LFS Overflow (CX06)
|
|
bit 0-1 Bits 8-9 of the LFS compare for 3C2h bits 2-3 = 3
|
|
2-3 Bits 8-9 of the LFS compare for 3C2h bits 2-3 = 2
|
|
4-5 Bits 8-9 of the LFS compare for 3C2h bits 2-3 = 1
|
|
6-7 Bits 8-9 of the LFS compare for 3C2h bits 2-3 = 0
|
|
|
|
3d4h index 06h (R/W): Vertical Total (RX06)
|
|
bit 0-7 Vertical Total (-2)
|
|
|
|
3d4h index 07h (R/W): Color TFT Panel Control Signal (CX07)
|
|
bit 0 If set FPVDCLK is always active, if clear FPVDCLK is gated by
|
|
display enable
|
|
1 FPVDCLK is inverted if set
|
|
2 If set use LLCLK as HSYNC
|
|
3 If set use LFS as VSYNC
|
|
|
|
3d4h index 07h (R/W): Vertical Overflow (RX07)
|
|
bit 0 Vertical Total bit 8
|
|
1 Vertical Displayed bit 8
|
|
2 Vertical Sync Start bit 8
|
|
3 Vertical Blank Start bit 8
|
|
4 Line Compare bit 8
|
|
5 Vertical Total bit 9
|
|
6 Vertical Displayed bit 9
|
|
7 Vertical Sync Start bit 9
|
|
|
|
3d4h index 08h (R/W): STN Color Panel Data Format (CX08)
|
|
bit 0 If set 8bit data, if clear 16bit
|
|
1 Set for Dual shift clk STN, clear for single
|
|
2 Set for testing purposes only
|
|
3 Set to Shorten LP width, clear to Lengthen LP width
|
|
4 Set to enable foreground text enhancement
|
|
5 Set for Single Scan Mono Panels, clear for Dual Scan
|
|
6 Set for testing purposes only
|
|
7 Set to boost contrast for Mono Panels
|
|
|
|
3d4h index 09h (R/W): TFT Panel Data Format (CX09)
|
|
bit 0-1 Data format. 0: 9bit(333), 2: 12bit(444), 1,3: 18bit direct
|
|
2-4 Shiftclock delay from internal character clock to TFT hsync(LLCLK)
|
|
signal
|
|
|
|
3d4h index 0Ah (R/W): TFT Panel HSYNC Position Control (CX0A)
|
|
bit 0-7 Horizontal counter to generate TFT panel VSYNC signal.
|
|
Set in multiples of 8 VCLKs (80 column character clocks)
|
|
|
|
3d4h index 0Bh (R/W): Panel Adjustment Control (CX0B) (6235 only)
|
|
bit 0-4 Number of LLCLKs between upper and lower panel halfs
|
|
5-6 Offset adjustment for gray-scale shading
|
|
|
|
3d4h index 10h (R/W): Vertical Sync Start (RX10)
|
|
bit 0-7 VSYNC Start
|
|
|
|
3d4h index 11h (R/W): Vertical Sync End (RX11)
|
|
bit 0-3 VSYNC End.
|
|
4 Clear Vertical Sync Interrupt
|
|
5 Enable Vertical Sync Interrupt
|
|
6 Select 5 refresh cycles
|
|
7 Write protect index 0-7.
|
|
|
|
3d4h index 15h (R/W): Vertical Blank Start (RX15)
|
|
bit 0-7 Vertical Blank Start
|
|
|
|
3d4h index 16h (R/W): Vertical Blank End
|
|
bit 0-7 Vertical Blank End
|
|
|
|
3d4h index 19h (R/W): Interlace End
|
|
bit 0-7 Ending Horizontal Character Count for Odd field VSYNC.
|
|
Typically half the horizontal total
|
|
|
|
3d4h index 1Ah (R/W): Miscellaneous Control
|
|
bit 0 Enable Interlace sync/video data in Graphics mode or interlace only
|
|
in Text mode. Set if an interlaced mode.
|
|
1 Enable Double-Buffered Display Start Address
|
|
|
|
3d4h index 1Bh (R/W): Extended Display Control
|
|
bit 0 Display Start Address bit 16. Bit 0-15 are in 3d4h index Ch-Dh.
|
|
1 Enable Extended Address Wrap. Set to enable access to video memory
|
|
beyond 128K (16bit memory) or 256K (32bit memory)
|
|
5 Set RAMDAC blanking=display enable signal (no border)
|
|
6 Select Text mode Fast-Page (132 color text)
|
|
7 Disable Cursor blink in Text Mode
|
|
|
|
3d4h index 1Ch (R/W): Flat-Panel Interface
|
|
bit 0 Invert LFS signal
|
|
1 Invert LLCLK signal
|
|
2 Enable MCLK power-down during suspend mode
|
|
3 Protect CRTC for LCD timing:
|
|
3d4h index 0,1,6,7(bits 0,2,5,7), 10h and 11h
|
|
5 Enable extra LLCLK. Used for adjusting 242 line dual panel
|
|
6-7 Flat-Panel type. 0: Dual Mono, 1: Plasma/EL, 2: STN color,
|
|
3: TFT color
|
|
|
|
3d4h index 1Dh (R/W): Flat Panel Display Control
|
|
bit 0 Enable Auto Center
|
|
1 Enable Auto Expand: 3C2h bit 6-7: 1: 400/200 lines, 2: 350, 3: 480.
|
|
2 Enable VGA access to reset Backlight Timer
|
|
3 Enable input ACTi to reset Backlight Timer
|
|
4 Suspend mode Clock source. If set use OSC, if clear use pin 32KHz.
|
|
5 Enable VGA access to reset Standby Timer
|
|
6 Enable input ACTi to reset Standby Timer
|
|
7 Enable access to LCD timing register at CRTC alternate index if set
|
|
|
|
3d4h index 1Eh (R/W): Flat Panel Shading
|
|
bit 0 Enable Planar Graphics Mode Dithering
|
|
1 Enable Text mode Contrast Enhancement
|
|
2-3 # of shades for Flat Pane:
|
|
Mono: 0: 16, 1: 64, 2: 128, 3:256
|
|
Color: 0: 4K, 1-3: 256K
|
|
4 Reverse Video Graphics Modes
|
|
5 Reverse Video Text Modes
|
|
6-7 Shade Mapping.
|
|
0: 18bit LUT output to 64 shades with NTSC weighting
|
|
1: green LUT output (6 bit to 64 shades).
|
|
2: Display data before Attribute Controller to 64 shades
|
|
3: Attribute Controller output, 6bitrs to 64 shades
|
|
|
|
3d4h index 1Fh (R/W): Flat Panel MOD control
|
|
bit 0-6 If bit 7 is set LLCLK = (this value) + 180h
|
|
if clear this is the number of scan lines after which the MOD pin
|
|
will change polarity.
|
|
7 Modulation select. Set for internal Modulation, clear for external
|
|
|
|
3d4h index 20h (R/W): Power Management
|
|
bit 0 Text Mode Shading Control. If set the text shades are derived the
|
|
same way as the graphics, if clear the text shades are derived
|
|
directly from the FG/BG data.
|
|
1-2 Select Refresh Rate. 0: 8ms, 2: 64ms, 2: self refresh, 3: no refresh
|
|
3 Activate Suspend Mode (timer override)
|
|
4 Activate Standby Mode (timer override)
|
|
5 Enable LCD mode if set
|
|
6 Enable CRT mode if set
|
|
7 set pin STANDBY to 'activate' output
|
|
|
|
3d4h index 21h (R/W): Power Down Timer Control
|
|
bit 0-3 Standby Mode Timer Control. 0: disable timer, 1-15: minutes
|
|
4-7 Backlight Timer Control (FPBack)
|
|
|
|
3d4h index 23h (R/W): Suspend Mode Input Switch Debounce Timer
|
|
bit 0 FPVcc output state (if bit1 set)
|
|
1 FPVcc control override
|
|
2 FPBack output state (if bit3 set)
|
|
3 FPBack control override
|
|
4-7 Time for input SUSPEND to remain active before entering suspend
|
|
mode. 0: disable timer checking, 1-15: seconds
|
|
|
|
3d4h index 25h (R/W): Part Status Register
|
|
bit 0-7 Part Status. Used for factory testing only.
|
|
|
|
3d4h index 27h (R): Part ID register
|
|
bit 0-1 Revision Level
|
|
3 Set to 1 ???
|
|
6-7 Device Identifier.
|
|
0: CL-GD6205 (C9h rev -BL)
|
|
1: CL-GD6235 (89h rev -BK)
|
|
2: CL-GD6215 (48h)
|
|
3: CL-GD6225 (09h rev -BK)
|
|
|
|
3d4h index 29h (R/W): Configuration Read Back
|
|
bit 0 Bus Type Select. 0: Local Bus, 1: ISA bus
|
|
1-2 Local Bus Type
|
|
3 DRAM Type Select. 0: Dual CAS DRAM, 1: Dual write enable DRAM
|
|
4 Active NPD (no power down) input
|
|
5 Power up/down cycling activity
|
|
|
|
|
|
|
|
GD5402, 542x and 543x series:
|
|
Also CL-GD754x Nordic/Viking LCD controllers
|
|
|
|
94h (W): 102 Access Control Register
|
|
bit 5 POS 102 Access. If clear register 102h is accessible, if set 102h is
|
|
not accessible.
|
|
Note: This register only accessible if the chip is configured for 3C3h sleep
|
|
(CF[3]=0) and for ISA or local bus.
|
|
|
|
102h (R/W): POS102 Register
|
|
bit 7 Video Subsystem Enable. If set (and bit 4 of 3C3h or 46E8h is also
|
|
set) the chip is enabled, if clear the chip is disabled and only
|
|
responds to accesses to this register (5420 and 5422), the 5424-29
|
|
also responds to accesses to 3C3h.
|
|
Note: For MicroChannel systems this register is only accessible when the
|
|
-CD_SETUP pin is low, for other systems it is accessible if bit 4 of
|
|
3C3h/46E8h is set.
|
|
|
|
3C3h (R/W): MicroChannel Sleep Address Register (5424-29)
|
|
bit 7 Video Subsystem Enable. If set the chip is enable, if clear the chip
|
|
is disabled and only responds to accesses to this register
|
|
Note: This register only available in MicroChannel systems.
|
|
|
|
3C3h (R/W): Motherboard Sleep Address Register (5424-29)
|
|
bit 3 Video Subsystem Enable. If set the chip is enabled, if clear the
|
|
chip is disabled and only responds to this register, 102h and the
|
|
BIOS, all other registers and the video memory will not respond.
|
|
4 Setup. If set the chip is in setup mode and only this register and
|
|
102h can be accessed, other registers and display memory does not
|
|
respond, if this bit clear the chip is in normal mode.
|
|
Note: This is the same registers as 46E8h. The register is mapped at 3C3h,
|
|
46E8h or disabled depending on bus and chiptype. The 5420 and 5422
|
|
always maps it at 46E8h. The 5424-29 maps it at 3C3h (Motherboard
|
|
systems CF[3]=0) or 46E8h (CF[3]=1) depending on bit 3 of the
|
|
Configuration Register, which is sampled at power-on from MD[16-31].
|
|
MicroChannel systems disables this register
|
|
|
|
3C4h index 2 (R/W): Map Mask
|
|
bit 0-7 Enable writing pixel bits 0-7 in Extended Write mode 4 and 5, and in
|
|
write mode 1 if BY8 addressing is enabled (3CEh index 0Bh bit 1
|
|
set), otherwise use only bits 0-3 as normal VGA.
|
|
Note: See the VGA section for the normal use of this register
|
|
|
|
3C4h index 4 (R/W): Memory Mode Register
|
|
bit 0 Reserved, indicates text/graphics mode in standard VGA
|
|
Note: See the VGA section for the normal use of this register
|
|
|
|
3C4h index 6 (R/W): Unlock ALL Extensions (not 5429)
|
|
bit 0-2,4 Writing 12h to this register enables extensions.
|
|
Read back 0Fh if locked.
|
|
Bits 3,5-7 are ignored on write.
|
|
Note: on the 5429 the extensions are always enabled.
|
|
|
|
3C4h index 7 (R/W): Extended Sequencer Mode
|
|
bit 0 Enable High-Resolution 256 Color modes if set.
|
|
For the 5429 this disables the Set/Reset logic (3CEh index 0 and 1)
|
|
1-2 (542x,02) or
|
|
1-3 (543x) Select CRTC Character Clock Divider.
|
|
0: Normal operation
|
|
1: Clock/2 for 16bit pixels. In this mode the video clock is
|
|
programmed for twice the number of pixels (= the number of
|
|
bytes) and the horizontal timing in units of 8 pixels as in
|
|
standard VGA modes.
|
|
2: Clock/3 for 24bit pixels. In this mode the video clock is
|
|
programmed for 3 times the number of pixels (= the number of
|
|
bytes) and the horizontal timing in units of 8 pixels as in
|
|
standard VGA modes.
|
|
3: (5426-3x only) 16bit pixel data at Pixel Rate. In this mode
|
|
the video clock is programmed for the number of pixels (= the
|
|
number of bytes) and the horizontal timing in units of 8
|
|
pixels as in standard VGA modes.
|
|
4: (543x only) 32bit pixel data at Pixel Rate. In this mode the
|
|
video clock is programmed for the number of pixels (= the
|
|
number of bytes) and the horizontal timing in units of 8
|
|
pixels as in standard VGA modes. This works as a 4bytes per
|
|
pixel mode, with the 4th byte being ignored.
|
|
4-7 (5422-3x) Select 1M Video Memory Mapping.
|
|
The address in 1MB units the Video Memory is mapped at (0=no
|
|
mapping). On the 5426-3x if 3CEh index 0Bh is set bit 4 is ignored
|
|
and the 2MB buffer is mapped at an even MB block.
|
|
When in planar modes or using x8 or x16 addressing (3CEh index 0Bh
|
|
bit 1 set) or if less than the max amount of memory is installed
|
|
the memory block will wrap so that there are 2,4,8... instances
|
|
|
|
3C4h index 8 (R/W): EEPROM Control
|
|
bit 0 "CS" out to EEPROM. Sets the EECS pin to this value
|
|
1 Enable EEPROM data input (bit 7) if set
|
|
2 "SK" to EEPROM thru ESYNC. If bit 4 is set, the ESYNC pin is set to
|
|
this value.
|
|
3 "DI" to EEPROM thru EVIDEO. If bit 4 is set, the EVIDEO pin is set
|
|
to this value.
|
|
4 Enable EEPROM Data and Sk. If set ESYNC and EVIDEO* are outputs,
|
|
if clear inputs
|
|
5 Latch ESYNC/EVIDEO*. If clear ESYNC and EVIDEO* control the HSYNC,
|
|
VSYNC, BLANK* and P[0-7] drivers, if set ESYNC and EVIDEO* are
|
|
latched internally, and the latched values control the HSYNC, VSYNC,
|
|
BLANK* and P[0-7] drivers, which frees the ESYNC and EVIDEO* pins
|
|
for EEPROM operations. This bit should be set prior to setting bit 4
|
|
and cleared after clearing bit 4
|
|
6 Disable MEMCS16* for display memory. If set video memory accesses
|
|
will not assert the MCS16* signal. This only works for ISA bus
|
|
systems, for all other configurations (and when using BITBLTs to or
|
|
from system memory) this bit must be set to 0.
|
|
7 (R) EEPROM Input Data. If bit 1 is set this reflects the EEDI pin.
|
|
|
|
3C4h index 9 (R/W): Scratch Register 0
|
|
bit 0-3 (754x) Video memory. 0: 256K, 1: 512K, 2: 1MB, 3: 2MB, 4: 4MB
|
|
2-4 (54xx) Monitor type.
|
|
0: 31,5kHz Std VGA. IBM 8512,8503
|
|
1: 31.5, 35.5 kHz IBM 8514
|
|
2: 31.5, 35.1 kHz NEC 2A
|
|
3: 31.5 - 35.5 kHz NEC II
|
|
4: 31.5 - 38 kHz Multi Freq. NEC 3D
|
|
5: 31.5 - 48 kHz Sony CPD-1304, NEC 3FG, Nanao 9065S, 9070U
|
|
6: 31.5 - 56.5 kHz NEC 4D,4FG, Nanao T240i
|
|
7: 31.5 - 64 kHz NEC 5D,5FG/6FG, Nanao T560i,T660i
|
|
Note: This register is set by the BIOS and may differ in some versions.
|
|
|
|
3C4h index 0Ah (R/W): Scratch Register 1
|
|
bit 0-1 (5402) Display Memory. 0: 256K, 1: 512K, 2: 1M
|
|
0 (542x)
|
|
3-4 (542x) Video memory. 0=256K, 1=512K, 2=1024K, 3=2048K
|
|
Note: Video memory should be determined from this register rather than
|
|
index 0Fh
|
|
Note: This register is set by the BIOS and may differ in some versions.
|
|
|
|
3C4h index 0Bh (R/W): VCLK 0 Numerator Register
|
|
bit 0-6 VCLK 0 Numerator bits 0-6
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 0Ch (R/W): VCLK 1 Numerator Register
|
|
bit 0-6 VCLK 1 Numerator bits 0-6
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 0Dh (R/W): VCLK 2 Numerator Register
|
|
bit 0-6 VCLK 2 Numerator bits 0-6
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 0Eh (R/W): VCLK 3 Numerator Register
|
|
bit 0-6 VCLK 3 Numerator bits 0-6
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 0Fh (R/W): DRAM Control Register
|
|
bit 0-1 (542x) (R) MCLK Select: 0: 50.11363 MHz, 1: 44.74431 MHz,
|
|
2: 41.16477 MHz, 3: 37.58523 MHz
|
|
0 (543x) (R) Disable DAC
|
|
1 (543x) MCLK Timing. 0: 50.11363MHz, 1: 41.16477MHz
|
|
2 RAS* Timing.
|
|
0: Extended (RAS* high for 3MCLK, low for 4)
|
|
1: Standard (RAS* high for 2.5MCLK, low for 3.5)
|
|
3-4 (54xx) DRAM Data Bus Width.
|
|
(542x) 0: 8bit (256K), 1: 16bit (512K), 2: 32bit (1M/2M)
|
|
(543x) 2: 32bit, 3:64 bit
|
|
5 (5422-3x) CRT FIFO Depth Control. If clear the CRT FIFO is 8 pixels
|
|
deep, if set it is 16 (20 for 5429) levels deep.
|
|
Typically clear for standard VGA and 16color modes and set for
|
|
extended 256color modes and Hi/Truecolor modes
|
|
6 (542x) Disable CRTC FIFO Fast-Page Mode. If set writes to display
|
|
memory will happen as random writes, if clear as Fast-page writes
|
|
if possible. Should be set when loading font data and for multiple
|
|
color-expansion writes in 16bit pixel modes (5422 & 5424 only).
|
|
(543x) CPU Write Buffer Control
|
|
7 (5426-28) DRAM Bank Select. 0: 4 512Kx8, 1: 4 256Kx16 or 16 256Kx4
|
|
Set to enable access to memory beyond 1MB ??
|
|
(543x) DRAM Bank Switch Control. If set there are two RAM banks
|
|
|
|
3C4h index 10h (R/W): Graphics Cursor X Position Register
|
|
bit 0-7 When this value is written to the register, the upper 3 bits of the
|
|
index register are taken as the low order bits of an 11 bit
|
|
register. This is the horizontal position of the hardware cursor in
|
|
pixels.
|
|
|
|
3C4h index 11h (R/W): Graphics Cursor Y Position Register
|
|
bit 0-7 When this value is written to the register, the upper 3 bits of the
|
|
index register are taken as the low order bits of an 11 bit
|
|
register. This is the vertical position of the hardware cursor in
|
|
pixels.
|
|
|
|
3C4h index 12h (R/W): Graphics Cursor Attribute Register
|
|
bit 0 Enable the hardware cursor if set
|
|
1 Enable Access to RAMDAC Extended Colors registers.
|
|
When set the DAC registers 3C7h/3C8h and 3C9h accesses a
|
|
separate palette with 16 entries, if clear the normal 256 entry
|
|
palette is accessed. Special palette entry 0 is the cursor
|
|
background color and entry Fh is the cursor foreground color.
|
|
Entry 2 is the overscan color (See bit 7).
|
|
2 (5422-3x) If set select 64x64 cursor, if clear 32x32.
|
|
7 (5424-3x) Overscan Color Protect. If set the screen border is
|
|
displayed using the special palette entry 2 (accessed with bit 1
|
|
set), if clear using the normal border color (3C0h index 11h).
|
|
|
|
3C4h index 13h (R/W): Graphics Cursor Pattern Address Offset Register
|
|
bit 0-5 Select 1 of 64 32x32 cursors
|
|
2-5 (5422-3x) Select 1 of 16 64x64 cursors (if index 12h bit 2 is set)
|
|
The offset in 256 byte units within the last 16KB of video memory
|
|
where the cursor mask and shape bitmaps are stored.
|
|
There are two 128 byte (32x32 bits) bitmaps stored in video memory.
|
|
The appearance of the cursor at each pixel is determined by a
|
|
combination of the corresponding pixels from the first and second
|
|
bitmap:
|
|
1st: 2nd:
|
|
0 0 The original screen pixel is shown (invisible cursor)
|
|
0 1 The pixel is shown in the cursor background color.
|
|
1 0 The pixel is shown as the inverse of the original
|
|
screen pixel (XOR cursor)
|
|
1 1 The pixel is shown in the cursor foreground color.
|
|
|
|
3C4h index 14h (R/W): Scratch-Pad Register 2 (5426 + only)
|
|
bit 0-7
|
|
|
|
3C4h index 15h (R/W): Scratch-Pad Register 3 (5426 + only)
|
|
bit 0-7 ??
|
|
0-3 (543x) Video memory. 0: 256K, 1: 512K, 2: 1MB, 3: 2MB, 4: 4MB
|
|
|
|
3C4h index 16h (R/W): Performance Tuning Register (5424 + only)
|
|
bit 0-3 FIFO Demand Threshold. Selects the level where the Sequencer begins
|
|
to refill the CRT FIFO (and thus hold off CPU cycles or pre-empt
|
|
fast page mode bitblt cycles).
|
|
4-5 (5424-28) RDY# delay for memory write. Defines the number of CPU
|
|
clock cycles from ADS# to RDY# for memory write cycles.
|
|
(5424-28) 0: 1, 1: 2 ,2: 3, 3: 4 (5429) 0: 2, 1: 3, 2: 4, 3: 5
|
|
Only used for local bus systems. Also the following must be true:
|
|
Number * (CPU clock period) > 3*MCLK period +2ns.
|
|
4 (543x) LRDY# Delay for Memory Cycles
|
|
5 (543x) Readback of CF6
|
|
6-7 (5424-28) RDY# delay for I/O. Defines the number of CPU clock cycles
|
|
from ADS# to RDY# for I/O cycles: 0,1: 1 2,3: 2.
|
|
Only used for local bus systems.
|
|
(543x) LRDY# Delay for I/O Cycles
|
|
|
|
3C4h index 17h (R/W): Configuration Readback and Extended Control (5422 +)
|
|
bit 0 Shadow DAC Writes on Local Bus. If set writes to registers 3C6h-3C9h
|
|
will be passed to external circuitry, if clear they will be handled
|
|
internally.
|
|
1 (5429) Power Down Palette Memory. If set the palette RAM for the
|
|
palette lookup table is not clocked, reducing power consumption.
|
|
If clear the palette RAM functions normally.
|
|
2 (5429 +) Enable Memory-Mapped I/O. If set the BitBLT registers can
|
|
be accessed via either memory operations or I/O operations, if
|
|
clear only via I/O operations. 3CEh index 6 bits 2-3 must be set
|
|
to 1. Bit 6 selects where the 256bytes of Memory Mapped registers
|
|
are located in system address space.
|
|
Offset: 3CEh index: Description:
|
|
00h 00h Background Color low byte
|
|
01h 10h Background Color high byte
|
|
02h 12h (543x +) Background Color byte 2
|
|
03h 14h (543x +) Background Color byte 3
|
|
04h 01h Foreground Color low byte
|
|
05h 11h Foreground Color high byte
|
|
06h 13h (543x +) Foreground Color byte 2
|
|
07h 15h (543x +) Foreground Color byte 3
|
|
08h-09h 20h-21h BLT Width
|
|
0Ah-0Bh 22h-23h BLT Height
|
|
0Ch-0Dh 24h-25h BLT Destination Pitch
|
|
0Eh-0Fh 26h-27h BLT Source Pitch
|
|
10h-12h 28h-2Ah BLT Destination Address
|
|
14h-16h 2Ch-2Eh BLT Source Address
|
|
17h 2Fh BLT Destination Write Mask
|
|
18h 30h BLT Mode
|
|
1Ah 32h BLT Raster Op
|
|
24h-25h 40h-41h (545x) Linedraw Start X
|
|
26h-27h 42h-43h (545x) Linedraw Start Y
|
|
28h-29h 44h-45h (545x) Linedraw End X
|
|
2Ah-2Bh 46h-47h (545x) Linedraw End Y
|
|
2Ch 50h (545x) Linedraw Line Style Increment
|
|
2Dh 51h (545x) Linedraw Line Style Rollover
|
|
2Eh 52h (545x) Linedraw Line Style Mask
|
|
2Fh 53h (545x) Linedraw Line Style Accumulator
|
|
30h-31h 54h-55h (545x) Bresenham K1
|
|
32h-33h 56h-57h (545x) Bresenham K3
|
|
34h-35h 58h-59h (545x) Bresenham Error
|
|
36h-37h 5Ah-5Bh (545x) Bresenham Delta Major
|
|
38h 5Ch (545x) Bresenham Direction
|
|
39h 5Dh (545x) Linedraw Mode
|
|
40h 31h BLT Start/Status
|
|
The BLT Start/Status register (Offset 40h/3CEh index 31h) is the
|
|
only read/write memory mapped register, all others are write only.
|
|
3-5 (R) System Bus Select. Configuration bits CF14,7 and 5. Latched from
|
|
MD[50:48] on power-up. Identifies the system bus type:
|
|
1: 386DX local bus
|
|
2: 386SX local bus
|
|
4: VESA VL-bus (> 33MHz)
|
|
5: VESA VL-bus (<= 33MHz)
|
|
6: MicroChannel bus
|
|
7: ISA bus
|
|
6 (5429) If set (and linear memory is enabled) the memory mapped
|
|
registers enabled by bit 2 are in the last 256 bytes of the 2MB
|
|
linear memory block, if clear at B800h:0.
|
|
7 (?) Disable DRAM Refresh ?
|
|
|
|
3C4h index 18h (R/W): Signature Generator Control Register (5422 +)
|
|
bit 0 Enable/Status Signal Generator. If set the Signature Generator will
|
|
start on the next VSYNC, and will generate a signature from the
|
|
pixel bit selected by bits 2-4 for one frame and then stop forcing
|
|
this bit to 0.
|
|
1 Reset Signature Generator. Set to reset to an initial, defined
|
|
condition. Clear to allow the Signal Generator to run.
|
|
2-4 Select Pixel Bus. The bit to input to the Signal Generator.
|
|
0: bit 0 (P0) ... 7: bit 7 (P7)
|
|
5 (5428 +) Enable Data Generator. If set pseudo-random data will be
|
|
placed on the memory data bus. ** For testing only **
|
|
6 (5424 +) Disable DCLK/Pixel Bus Drivers. If set the dotclock and
|
|
pixel bus drivers are disabled. ** For testing only **
|
|
7 (5424 +) Disable MCLK Driver. If set the memory clock is stopped.
|
|
** For Testing only **
|
|
|
|
3C4h index 19h W(R/W): Signature Generator Result Register (5422 +)
|
|
bit 0-15 Signal Generator Result
|
|
|
|
3C4h index 1Bh (R/W): VCLK 0 Denominator & Post
|
|
bit 0 VCLK 0 Post Scalar bit. Divide clock by 2 if set
|
|
1-5 VCLK 0 Denominator Data
|
|
Note: The clock is (14.31818MHz * numerator (index 0Bh))/Denominator.
|
|
Divide by 2 if the Post Scalar bit is set.
|
|
3C2h bits 2-3 selects between VCLK0, 1, 2 and 3
|
|
Max frequency supported:
|
|
42MHz: 5401
|
|
65MHz: 5402 and 5420 (original versions)
|
|
75MHz 5402 rev 1 and 5420 rev 1 (and probably later revs)
|
|
80MHz 5422-5428
|
|
86MHz: 5429
|
|
Programming a higher clock frequency may work, give an unstable image
|
|
or fail totally.
|
|
|
|
3C4h index 1Ch (R/W): VCLK 1 Denominator & Post
|
|
bit 0 VCLK 1 Post Scalar bit. Divide clock by 2 if set
|
|
1-5 VCLK 1 Denominator Data
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 1Dh (R/W): VCLK 2 Denominator & Post
|
|
bit 0 VCLK 2 Post Scalar bit. Divide clock by 2 if set
|
|
1-5 VCLK 2 Denominator Data
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 1Eh (R/W): VCLK 3 Denominator & Post
|
|
bit 0 VCLK 3 Post Scalar bit. Divide clock by 2 if set
|
|
1-5 VCLK 3 Denominator Data
|
|
Note: See index 1Bh for the frequency calculation
|
|
|
|
3C4h index 1Fh (R/W): BIOS Write Enable and MCLK select (5424-5x only)
|
|
bit 0-5 MCLK frequency bit 0-5. The MCLK frequency is: (RefClk/8)*value,
|
|
where the reference clock (RefClk) is the same as used for VCLK
|
|
generation, typically 14.318MHz
|
|
The 5424-5428 handles MCLKs up to 50MHz, the 5429 up to 60MHz
|
|
6 (5428-3x) Use MCLK as VCLK. If clear the video clock (VCLK) is
|
|
derived as described under index 1Bh, if set it is derived from
|
|
MCLK as follows: If index 1Eh bit 0 is set VCLK = MCLK/2, if it is
|
|
clear VCLK = MCLK
|
|
7 Enable BIOS write. If set writes to C000h:0-C7FFh:Fh will activate
|
|
the EROM* signal enabling FLASH ROM writing
|
|
|
|
3C6h (R/W): Hidden DAC Register
|
|
bit 0-3 Extended Mode Select. If bit 6 and 7 are both set this field
|
|
selects the DAC mode:
|
|
0: 5-5-5 15bit Sierra HiColor
|
|
1: 5-6-5 16bit "XGA" HiColor
|
|
5: (5422+) 8-8-8 24bit TrueColor. This mode also exists on the
|
|
5420 rev1, but is not documented.
|
|
6/7: (5428+) DAC Power-down
|
|
8: (5428+) 8bit Greyscale.
|
|
9: (5428+) 3-3-2 8bit RGB
|
|
4 32K Color Control. If set bit 15 (MSB) of a 15bit pixel selects
|
|
whether the pixel is HiColor(bit 15 = 0) or palette data(bit 15 = 1,
|
|
bit 0-7 is the palette index). This bit only has effect in 5-5-5
|
|
15bit modes.
|
|
5 Clocking Mode. If set Clocking Mode 2 will be selected and data will
|
|
only be latched on the rising edge of DCLK, if clear Clocking Mode 1
|
|
will be selected and data will be latched on both the rising edge
|
|
(low byte) and falling edge (high byte) of DCLK. This bit only has
|
|
effect in 15/16 bit modes as all other modes will use Clocking Mode
|
|
2. Clocking Mode 1 should only be used for externally supplied DCLK
|
|
and pixel data.
|
|
6 Enable ALL Extended Modes. If bit 7 is set and this bit is clear the
|
|
DAC is in 5-5-5 15bit Sierra HiColor mode, if both bit 7 and this
|
|
bit are set bits 0-3 determines the DAC mode.
|
|
7 Enable 5-5-5 Mode. If set the DAC is in an advanced mode, depending
|
|
on the other bits in this register, if clear the DAC is in VGA
|
|
compatible palette mode.
|
|
Note: This register is accessed by reading 3C6h four times to unlock this
|
|
register, then the next read or write of 3C6h will access this register.
|
|
After reading or writing this register the register is locked and this
|
|
register can only be accessed be redoing the 4 reads of 3C6h etc. Any
|
|
access to 3C7h-3C9h will also lock this register. The 5428 is the
|
|
exception where reads of this register will NOT lock it.
|
|
Note: This register does not exist on the 5401/5402 and the 5420 rev A.
|
|
|
|
3CEh index 0 (R/W): Set/Reset Register
|
|
bit 0-3 Set/Reset plane bits 0-3, except in Extended Write mode 5:
|
|
0-7 Background color bits in Extended Write mode 5.
|
|
Note: See the VGA section for the use of this register in write mode 0-3
|
|
|
|
3CEh index 1 (R/W): Enable Set/Reset Register
|
|
bit 0-3 Enable SR plane 0-3, except in Extended Write mode 4/5:
|
|
0-7 Foreground color bits in Extended Write mode 4 and 5.
|
|
Note: See the VGA section for the use of this register in write mode 0-3
|
|
|
|
3CEh index 5 (R/W): Mode
|
|
bit 0-1 (index 0Bh bit 2 clear) Write mode bits 0-1
|
|
0-2 (index 0Bh bit 2 set) Write mode bit 0-2
|
|
See the VGA section for modes 0-3.
|
|
mode 4: Foreground write. Writes to 8 256color pixels. Each
|
|
bit of the CPU data controls writing to one pixel.
|
|
Each 1 bit in the CPU data causes the color in 3CEh index
|
|
to be written to the corresponding pixel. 0 bits cause the
|
|
pixel to be left unchanged. Used to blit patterns with
|
|
transparent background.
|
|
For the 5422-3x this can be used in 16bit modes if 3CEh
|
|
index 0Bh bit 4 is set. 3CEh index 10h has the upper 8bits
|
|
of the foreground color
|
|
mode 5: Fore and background write. As mode 4, but 0 bits of the
|
|
CPU data cause the color in 3CEh index 0 to be written to
|
|
the corresponding pixels.
|
|
3 Enable Read Color Compare
|
|
4 Enable odd/even (3C4h index 4 bit 2).
|
|
5 Shift 2 bits per byte (CGA compatibility)
|
|
6 256 Color Mode if set. Overrides bit 5.
|
|
Note: This is a change from the original VGA
|
|
|
|
3CEh index 09h (R/W): Offset Register 0
|
|
bit 0-7 4K Primary/Low bank number.
|
|
If 3CEh index 0Bh bit 0 is set references to A000h-A7FFh use this
|
|
bank register. If clear references to A000h-AFFFh use this bank
|
|
register. (5426-3x) If index 0Bh bit 5 is set this register is in
|
|
units of 16KB, rather than 4KB
|
|
|
|
3CEh index 0Ah (R/W): Offset Register 1
|
|
bit 0-7 4K High bank number.
|
|
If 3CEh index 0Bh bit 0 is set references to A800h-AFFFh use this
|
|
bank register. (5426-3x) If index 0Bh bit 5 is set this register is
|
|
in units of 16KB, rather than 4KB
|
|
|
|
3CEh index 0Bh (R/W): Graphics Controller Mode Extensions Register
|
|
bit 0 Enable Offset Register 1. If set references to A000h-A7FFh use 3CEh
|
|
index 9 as bank register, and references to A800h-AFFFh use 3CEh
|
|
index 0Ah as bank register. If clear all references to A000h-AFFFh
|
|
use 3CEh index 9 as bank register.
|
|
(5422 +) Should be set to 0 if linear addressing (3C4h index 7 bits
|
|
4-7 not 0) is used.
|
|
1 Enable BY8 Addressing. If set video memory addresses are shifted 3
|
|
bits right, so that each CPU byte corresponds to an 8 byte block (in
|
|
256 color mode). Intended for use with bit 2. If bit 4 is set, it
|
|
will override this bit.
|
|
2 Enable Extended Write Modes. If set enables Write Modes 4 and 5 and
|
|
extends 3C4h index 2 and 3CEh index 0 & 1 from 4 to 8 bits and
|
|
enables 3CEh index 0Bh bit 4. The extended write modes are intended
|
|
for 256color modes and allows each CPU byte written to update 8
|
|
pixels in one operation.
|
|
3 Enable Eight Byte memory read Data Latch. If set the display memory
|
|
data latches are 8bits wide, rather than 4bits.
|
|
4 Enable Enhanced Writes for 16bit pixels. If set (and bit 2 is set)
|
|
enables the 16bit version of the extended write modes: in 3C4h index
|
|
2 each bit controls two bytes (= 1 pixel), 3CEh index 10h & 11h are
|
|
enabled as the upper half of the fore- and background colors (3CEh
|
|
index 0 and 1) and addresses are shifted 4 bits right.
|
|
5 (5426-3x) Offset Granularity.
|
|
If set the bank registers are in 16K rather than 4K units.
|
|
|
|
3CEh index 0Ch (R/W): Color Key Compare (5424 +)
|
|
bit 0-7 Color Key Compare bits 0-7. If Color Key Comparison is enabled (3d4h
|
|
index 1Ah bit 3 set) the pixel data from video ram is compared to
|
|
this value, and if they are equal (considering the mask in index
|
|
0Dh) the pixel from video ram is replaced by the pixel from the
|
|
Feature Connector.
|
|
|
|
3CEh index 0Dh (R/W): Color Key Compare Mask (5424 +)
|
|
bit 0-7 Color Key Compare Key Mask 0-7. When Color Key Comparison is used
|
|
this byte selects the bits in the pixel data to compare. A 1 enables
|
|
the corresponding bit for comparison.
|
|
|
|
3CEh index 0Eh (R/W): Miscellaneous Control (5428 +)
|
|
bit 0 DCLK Output Divide by 2. If set the DAC takes one byte (low) on the
|
|
rising edge of DCLK and another (high) on the falling edge, this is
|
|
similar to the Sierra "Mark1" (SC11481/6/8) HiColor mode.
|
|
1 (5429 +) Static HSYNC. If set DAC is powered down and the HSYNC
|
|
output will static at the level programmed in 3C2h bit 6.
|
|
2 (5429 +) Static VSYNC. If set DAC is powered down and the VSYNC
|
|
output will static at the level programmed in 3C2h bit 7.
|
|
3 (5429 +) Static Clock. If set the VCLK and MCLK are disabled and the
|
|
DAC is powered down. DRAM refresh continues.
|
|
|
|
3CEh index 0Fh (R/W: Display Compression Control (543x)
|
|
bit 0 Enable Compression
|
|
1 Horizontal Compression
|
|
2-4 Vertical Compression
|
|
|
|
3CEh index 10h (R/W): 16bit Pixel Background Color High Byte (5422 +)
|
|
bit 0-7 Extended BackGround color bits 8-15 in write mode 5.
|
|
This data sent to planes 1/3, data from 3CEh index 0 sent to 2/4
|
|
|
|
3CEh index 11h (R/W): 16bit Pixel Foreground Color High Byte (5422 +)
|
|
bit 0-7 Extended ForeGround color bits 8-15 in write mode 4/5.
|
|
This data sent to planes 1/3, data from 3CEh index 1 sent to 2/4
|
|
|
|
3CEh index 12h (R/W): Background Color Byte 2 (543x +)
|
|
bit 0-7 Extended BackGround color bits 16-23 in write mode 5.
|
|
|
|
3CEh index 13h (R/W): Foreground Color Byte 2 (543x +)
|
|
bit 0-7 Extended ForeGround color bits 16-23 in write mode 4/5.
|
|
|
|
3CEh index 14h (R/W): Background Color Byte 3 (543x +)
|
|
bit 0-7 Extended BackGround color bits 24-31 in write mode 5.
|
|
|
|
3CEh index 15h (R/W): Foreground Color Byte 3 (543x +)
|
|
bit 0-7 Extended ForeGround color bits 24-31 in write mode 4/5.
|
|
|
|
3CEh index 19h (R/W): CL-GD5453 Mode (545x only)
|
|
|
|
3CEh index 20h W(R/W): BLT Width (5426 +)
|
|
bit 0-10 (5426-28) Number of pixels across in the BLIT area.
|
|
0-12 (543x) do
|
|
|
|
3CEh index 22h W(R/W): BLT Height (5426 +)
|
|
bit 0-9 (5426-28) Number of lines in the BLIT area.
|
|
0-10 (543x) do
|
|
|
|
3CEh index 24h W(R/W): BLT Destination Pitch (5426 +)
|
|
bit 0-11 (5426-28) Number of bytes in a scanline at the destination.
|
|
0-12 (5429 +) do
|
|
|
|
3CEh index 26h W(R/W): BLT Source Pitch (5426 +)
|
|
bit 0-11 (5426-28) Number of bytes in a scanline at the source.
|
|
0-12 (5429 +) do
|
|
|
|
3CEh index 28h 3(R/W): BLT Destination Start (5426 +)
|
|
bit 0-20 (5426-29) Destination address of the BLIT.
|
|
0-21 (543x) do
|
|
|
|
3CEh index 2Ch 3(R/W): BLT Source Start (5426 +)
|
|
bit 0-20 (5426-29) Source address of the BLIT.
|
|
0-21 (543x) do
|
|
|
|
3CEh index 2Fh (R/W): Write Mask Destination (5429 +)
|
|
bit 0-2 Write Mask. The number of pixels to skip on the left edge of a color
|
|
expanded BLT operation.
|
|
7 (543x) Disable X-Y Offset Indexing
|
|
|
|
3CEh index 30h (R/W): BLT Mode (5426 +)
|
|
bit 0 BLT Direction. Set to decrement addresses during BitBLT operations,
|
|
clear to increment.
|
|
1 BLT Destination Display/System Memory. Set if the destination of the
|
|
BLT is system memory, clear if it is in display memory.
|
|
2 BLT Source Display/System Memory. Set if the source of the BLT is in
|
|
system memory, clear if it is in display memory.
|
|
3 (5426-28) Enable Transparency Compare. If set the result of the ROP
|
|
is compared with the Transparency Color Register (index 34h/35h).
|
|
Bit 4 determines if the compare is 8 or 16 bit. If the ROP result
|
|
matches the register(s) the data is NOT written.
|
|
(5429) Enable Color Expand with Transparency. If set 0's in the
|
|
monochrome image being expanded will prevent the pixel from being
|
|
written. If clear 0's are expanded to the background color.
|
|
1's are always expanded to the foreground color.
|
|
4 (5426-29) Color Expand/Transparency Width. If set (and bit 7 set)
|
|
Color expansion writes 16bit pixels, if clear only 8 bit pixels.
|
|
Not 5429: If bit 3 set this bit determines the width of the
|
|
comparison for the Transparency test: Set for 16bit compares, clear
|
|
for 8bit compares.
|
|
4-5 (543x) Color Expand/Transparency Width. 0: 8bit, 1: 16bit, 3: 32bit
|
|
6 Enable 8x8 Pattern Copy. If set the source is an 8x8 pattern which
|
|
is copied repeatably to the destination. If Color Expansion is
|
|
enabled (bit 7 set) the source is an 8 byte monochrome 8x8 bitmap
|
|
aligned on an 8byte boundary, if not it is an 8x8 color bitmap
|
|
aligned on a 4 byte boundary, using either 64 or 128 bytes
|
|
depending on the current number of bits per pixel (8 or 16).
|
|
7 Enable Color Expand. If set the input to the ROP (Raster OPeration)
|
|
will be the source bitmap after it is color expanded.
|
|
The destination must be screen memory (bit 1 clear) and the
|
|
direction increment (bit 0 clear). The Color Registers 3CEh index
|
|
0,1,10h and 11h are used to expand the source bitmap.
|
|
The source bitmap starts with the MSB of the first byte. A line in
|
|
always starts with the MSB of a byte. This may cause extra bits at
|
|
the end of each line if the pattern width is not a multipla of 8
|
|
pixels. When the BLT is screen-to-screen the source map must start
|
|
at a 4byte boundary and will be addressed linearly (source pitch is
|
|
ignored).
|
|
Note: Either the destination or the source (but not both) of a BLT operation
|
|
can be in system memory. If so the source data is written to (or the
|
|
destination data read from) a random address in video memory. The VGA
|
|
chip will catch these accesses and direct them to the BLT engine.
|
|
The data read/written must be as DWORDs, i.e. 4 bytes at a time aligned
|
|
on a 4byte boundary, even if the BLT has less than 4 bytes remaining.
|
|
|
|
3CEh index 31h (R/W): BLT Start/Status (5426 +)
|
|
bit 0 (R) BLT Status. Set if the BLT engine is busy, clear if it is free
|
|
1 BLT Start/Suspend. Set to start BLT operation. This bit will clear
|
|
when the BLT terminates. Clear this bit to suspend the BLT.
|
|
2 BLT Reset. If set the BLT engine will reset and terminate any
|
|
operation in progress.
|
|
3 (R) BLT Progress Status. Set when the BLT starts. Clears when it
|
|
ends. Remains set if the BLT is suspended (bit 1), but clears if the
|
|
BLT is reset (bit 2).
|
|
|
|
3CEh index 32h (R/W): BLT Raster Operation (ROP) (5426 +)
|
|
bit 0-7 BLT 2-operand Raster Operation.
|
|
Code: Description: MS-Windows ROP:
|
|
00h 0 00000042h BLACKNESS
|
|
05h And 008800C6h SRCAND
|
|
06h Destination 00AA0029h
|
|
09h Source And Not Destination 00440328h SRCERASE
|
|
0Bh Not Destination 00550009h DSTINVERT
|
|
0Dh Copy from source 00CC0020h SRCCOPY
|
|
0Eh 1 00FF0062h WHITENESS
|
|
50h Not Source And Destination 00220326h
|
|
59h Xor 00660046h SRCINVERT
|
|
6Dh Or 00EE0086h SRCPAINT
|
|
90h Nor 001100A6h NOTSRCERASE
|
|
95h XNor 00990066h
|
|
ADh Source Or Not Destination 00DD0228h
|
|
D0h Not Source 00330008h NOTSRCCOPY
|
|
D6h Not Source Or Destination 00BB0226h MERGEPAINT
|
|
DAh NAnd 007700E6h
|
|
|
|
3CEh index 33h (R/W): BLT Reserved (543x + only)
|
|
|
|
3CEh index 34h W(R/W): BLT Transparent Color (5426-28)
|
|
bit 0-15 BLT Transparency Color
|
|
|
|
3CEh index 38h W(R/W): BLT Transparent Mask (5426-28)
|
|
bit 0-15 BLT Transparency Color Mask
|
|
|
|
3CEh index 40h W(R/W): Linedraw Start X (545x only)
|
|
|
|
3CEh index 42h W(R/W): Linedraw Start Y (545x only)
|
|
|
|
3CEh index 44h W(R/W): Linedraw End X (545x only)
|
|
|
|
3CEh index 46h W(R/W): Linedraw End Y (545x only)
|
|
|
|
3CEh index 50h (R/W): Linedraw Line Style Numerator (545x only)
|
|
|
|
3CEh index 51h (R/W): Linedraw Line Style Denominator (545x only)
|
|
|
|
3CEh index 52h (R/W): Linedraw Line Style Mask (545x only)
|
|
|
|
3CEh index 53h (R/W): Linedraw Line Style Accumulator (545x only)
|
|
|
|
3CEh index 54h W(R/W): Linedraw Bresenham K1 (545x only)
|
|
|
|
3CEh index 56h W(R/W): Linedraw Bresenham K2 (545x only)
|
|
|
|
3CEh index 58h W(R/W): Linedraw Bresenham Error (545x only)
|
|
|
|
3CEh index 5Ah W(R/W): Linedraw Bresenham Delta Major (545x only)
|
|
|
|
3CEh index 5Ch (R/W): Linedraw Direction (545x only)
|
|
|
|
3CEh index 5Dh (R/W): Linedraw Modes (545x only)
|
|
bit 0-2 Line Style. Index to the bit in the Line Style Mask to use for first
|
|
pixel drawn.
|
|
3 Direct Specification Mode. 0: Bresenham, 1: End-point
|
|
4 Draw End Point if set
|
|
5 Draw Start Point if set
|
|
|
|
3d4h index 09h (R/W): R9X (754x)
|
|
bit 2-3 Panel type. 1: 800x600
|
|
|
|
3d4h index 19h (R/W): Interlace End
|
|
bit 0-7 Ending Horizontal Character Count for Odd field VSYNC.
|
|
Typically half the horizontal total
|
|
|
|
3d4h index 1Ah (R/W): Miscellaneous Control
|
|
bit 0 Enable Interlace sync/video data in Graphics mode or interlace only
|
|
in Text mode. Set if an interlaced mode.
|
|
1 Enable Double-Buffered Display Start Address. If set changes to the
|
|
Display Start Address (index 0Ch,0Dh plus extensions) will not take
|
|
effect until VSYNC occours, thus preventing the need to check VSYNC
|
|
before updating the DSA.
|
|
2-3 Overlay/DAC Mode Switching Control
|
|
0: Normal Operation
|
|
1: with EVIDEO* (or OVWR* for the 5429 only)
|
|
2: with EVIDEO* and Color Key (5424-3x only)
|
|
3: with Color Key
|
|
4-5 Horizontal Blank End Overflow bits 6-7. Only enabled if index 1Bh
|
|
bit 5 (and/or bit 7 for the 5424 +) is set
|
|
6-7 Vertical Blank End Overflow bits 8-9. Only enabled if index 1Bh bit
|
|
5 (and/or bit 7 for the 5424 +) is set
|
|
|
|
3d4h index 1Bh (R/W): Extended Display Control
|
|
bit 0 Display Start Address bit 16. Bits 0-15 are in 3d4h index Ch-Dh.
|
|
Bits 17, 18 and 19 are in this register and index 1Dh.
|
|
1 Enable Extended Address Wrap. If clear the CRTC Character Address
|
|
Counter is 16bit wide, providing VGA compatibility but limiting
|
|
display memory to 256K. If set the counter is 18 bits wide (19 for
|
|
the 5426 +) allowing for 1 (or 2) Mbytes of display memory.
|
|
2 (5420 +) Display Start Address bit 17. Bits 0-15 are in 3d4h index
|
|
Ch-Dh. Bits 16, 18 and 19 are in this register and index 1Dh.
|
|
3 (5426 +) Display Start Address bit 18. Bits 0-15 are in 3d4h index
|
|
Ch-Dh. Bits 16, 17 and 19 are in this register and index 1Dh.
|
|
4 Bit 8 of the CRTC Offset register (3d4h index 13h).
|
|
5 Blanking Control. If clear the DAC blanking is controlled by the
|
|
CRTC blanking signal and the border can be used. If set the DAC
|
|
blanking is controlled by the Display Enable, thus blanking the
|
|
border area, the CRTC blanking signal will be output on the OVRW
|
|
pin. Also the Horizontal and Vertical Blank End bits (bit 4-7) in
|
|
3d4h index 1A are enabled.
|
|
6 Select Text mode Fast-Page. If set font data will be fetched using
|
|
fast Page Mode read cycles allowing text modes with a VCLK greater
|
|
than 30 MHz. This will not work with VGA double fonts, I.e. the two
|
|
Character Maps in 3C4h index 3 must be equal. If this bit is clear
|
|
all font fetches use random reads.
|
|
7 (5424-3x) Enable Blank End Extensions. If set (or if bit 5 is set)
|
|
the Horizontal and Vertical Blank End bits (bit 4-7) in 3d4h index
|
|
1A are enabled.
|
|
|
|
3d4h index 1Ch (R/W): Sync Adjust and Genlock (543x +)
|
|
bit 0-2 Horizontal Sync Start Adjust
|
|
3-5 Horizontal Total Adjust
|
|
6 Enable HSYNC GENLOCK
|
|
7 Enable VSYNC GENLOCK
|
|
|
|
3d4h index 1Dh (R/W): Overlay Extended Control (5429 +)
|
|
bit 0 (543x +) Enable Alpha Overlay
|
|
1-2 DAC Mode Switching Control. This controls the DAC mode switching,
|
|
the pixel data is still selected from 3d4h index 1Ah bit 2-3.
|
|
0: Switch True selects Extended DAC mode
|
|
1: Switch False selects Extended DAC mode
|
|
2,3: Extended DAC mode disabled.
|
|
3 (543x +) Overlay Video Clocking Mode
|
|
4-5 (543x +) Color Key Compare type
|
|
6 Overlay Timing Signal Source. If clear the timing signal for Overlay
|
|
modes 1 and 2 (See 3d4h index 1Ah bits 2-3) comes from the EVIDEO*
|
|
input. If set from the internal OVRW* signal.
|
|
7 (543x +) Extended Display Start Address bit 19. Lower bits are in
|
|
3d4h index 1Bh and 3d4h index 0Ch/0Dh
|
|
|
|
3d4h index 1Eh (R/W): Timing Overflow (545x only)
|
|
|
|
3d4h index 1Fh (R/W): Overflow (545x only)
|
|
|
|
3d4h index 20h (R/W): (754x)
|
|
bit 5 Set for LCD panel
|
|
|
|
3d4h index 22h (R): Graphics Data Latches Readback Register
|
|
bit 0-7 Reading this register returns the current content of the Graphics
|
|
Controller Data Latch selected by 3CEh index 4 bits 0-1.
|
|
|
|
3d4h index 24h (R): Attribute Controller Toggle Readback Register
|
|
bit 7 If set the Attribute Controller will next access a data register, if
|
|
clear it'll access the index register
|
|
|
|
3d4h index 25h (R/W): Part Status Register (not 5402)
|
|
bit 0-7 Part Status. Used for factory testing and internal tracking only.
|
|
(5429) >=67h for 5429 rev B, which fixes a BLT problem ?
|
|
(5434) 28h: 5434 rev AH (.6u), B0h: 5434 rev EP (.6u)
|
|
|
|
3d4h index 26h (R): Attribute Controller Index Readback Register
|
|
bit 0-4 The last value written to bits 0-4 of the index register at 3C0h.
|
|
5 The last value written to bit 5 of the index register at 3C0h.
|
|
|
|
3d4h index 27h (R): Part ID register
|
|
bit 0-1 Revision Level
|
|
2-7 (54xx) Device Identifier:
|
|
06h: Acumos AVGA2 & 5402 ??
|
|
0Bh: CL-GD7542 (Nordic)
|
|
0Ch: CL-GD7543 (Viking) - guess
|
|
0Dh: CL-GD7541 (Nordic Lite)
|
|
22h: Depends on revision Level:
|
|
CL-GD5402 Rev=0 (88h)
|
|
CL-GD5402 rev 1 Rev=1 (89h)
|
|
CL-GD5420 Rev=2 (8Ah)
|
|
CL-GD5420 rev 1 Rev=3 (8Bh)
|
|
23h: CL-GD5422 (8Ch-8Fh)
|
|
24h: CL-GD5426 (90h-93h)
|
|
25h: CL-GD5424 (94h-97h)
|
|
26h: CL-GD5428 (98h-9Bh)
|
|
27h: CL-GD5429 (9Ch-9Fh)
|
|
28h: CL-GD5430 (A0h-A3h)
|
|
29h: CL-GD5434 - Originally assigned to 5434, never used ?
|
|
2Ah: CL-GD5434 (A8h-ABh)
|
|
2Bh: CL-GD5436 ??
|
|
Note: I've seen two chips marked as 5422-80, returning 94h i.e. a 5424.
|
|
|
|
3d4h index 2Ch (R/W): LCD Interface Register (754x)
|
|
bit 3 Clear to access the shadowed Vertical registers at 3d4h index
|
|
6,7,10h,11h,15h and 16h
|
|
4-5 Set to 0 (and set 3d4h index 2Dh bit 7) to enable the X shadow
|
|
registers (R2X-REX: 3d4h index 2-9,Bh-Eh), 2 to enable the Y shadow
|
|
registers (3d4h index 0,2-5), 3 to enable the Z shadow registers
|
|
(3d4h index 0,2-5)
|
|
|
|
3d4h index 2Dh (R/W): LCD Display Control (754x)
|
|
bit 7 Set to access the LCD timing registers (R2X-REX) at 3d4h index
|
|
19h - 30h and 40h - 4Fh ?
|
|
|
|
46E8h (R/W): Adapter Sleep Address Register (5424-29)
|
|
bit 3 Video Subsystem Enable. If set the chip is enabled, if clear the
|
|
chip is disabled and only responds to this register, 102h and the
|
|
BIOS, all other registers and the video memory will not respond.
|
|
4 Setup. If set the chip is in setup mode and only this register and
|
|
102h can be accessed, other registers and display memory does not
|
|
respond, if this bit clear the chip is in normal mode.
|
|
Note: This is the same registers as 3C3h. The register is mapped at 3C3h,
|
|
46E8h or disabled depending on bus and chiptype. The 5420 and 5422
|
|
always maps it at 46E8h. The 5424-29 maps it at 3C3h (Motherboard
|
|
systems CF[3]=0) or 46E8h (CF[3]=1) depending on bit 3 of the
|
|
Configuration Register, which is sampled at power-on from MD[16-31].
|
|
MicroChannel systems disables this register
|
|
|
|
|
|
Memory locations:
|
|
|
|
$C000:$8 1 byte Offset of Model string in BIOS.
|
|
|
|
|
|
|
|
|
|
|
|
ID Cirrus VGA:
|
|
|
|
|
|
(* First test for Cirrus 54xx *)
|
|
|
|
old:=rdinx($3C4,6);
|
|
wrinx($3C4,6,0);
|
|
if rdinx($3C4,6)=$F then
|
|
begin
|
|
wrinx($3c4,6,$12);
|
|
if (rdinx($3C4,6)=$12) and testinx2($3C4,$1E,$3F) then
|
|
begin
|
|
SubVers:=rdinx($3d4,$27);
|
|
if testinx($3CE,9) then
|
|
case SubVers of
|
|
$88:name:='Cirrus CL-GD5402';
|
|
$89:name:='Cirrus CL-GD5402 r1';
|
|
$8A:name:='Cirrus CL-GD5420';
|
|
$8B:name:='Cirrus CL-GD5420 r1';
|
|
$8C..$8F:name:='Cirrus CL-GD5422';
|
|
$90..$93:name:='Cirrus CL-GD5426';
|
|
$94..$97:name:='Cirrus CL-GD5424';
|
|
$98..$9B:name:='Cirrus CL-GD5428';
|
|
$A0..$A3:name:='Cirrus CL-GD5430';
|
|
$A8..$AB:name:='Cirrus CL-GD5434';
|
|
else UNK('Cirrus54',x);
|
|
end
|
|
else if testinx($3C4,$19) then
|
|
case SubVers shr 6 of
|
|
0:name:='Cirrus CL-GD6205';
|
|
1:name:='Cirrus CL-GD6235';
|
|
2:name:='Cirrus CL-GD6215';
|
|
3:name:='Cirrus CL-GD6225';
|
|
end
|
|
else name:='Cirrus AVGA2 (5402)';
|
|
end;
|
|
end
|
|
else wrinx($3C4,6,old);
|
|
|
|
|
|
(* Now test for 64xx *)
|
|
|
|
old:=rdinx($3CE,$A);
|
|
wrinx($3CE,$A,$CE);
|
|
if rdinx($3CE,$A)=0 then
|
|
begin
|
|
wrinx($3CE,$A,$EC);
|
|
if rdinx($3CE,$A)=1 then
|
|
begin
|
|
SubVers:=rdinx($3CE,$AA);
|
|
case SubVers shr 4 of
|
|
4:name:='Cirrus CL-GD6440';
|
|
5:name:='Cirrus CL-GD6412';
|
|
6:name:='Cirrus CL-GD5410';
|
|
7:name:='Cirrus CL-GD6420';
|
|
8:name:='Cirrus CL-GD6410';
|
|
else UNK('Cirrus64')
|
|
end;
|
|
end;
|
|
end;
|
|
wrinx($3CE,$A,old);
|
|
|
|
(* Now test for 5/600 *)
|
|
|
|
old6:=rdinx($3C4,6);
|
|
old:=rdinx(base,$C);
|
|
outp(base+1,0);
|
|
SubVers:=rdinx($3d4,$1F);
|
|
wrinx($3C4,6,(eagle shl 4)+(eagle shr 4));
|
|
if inp($3C5)=0 then
|
|
begin
|
|
outp($3C5,SubVers);
|
|
if inp($3C5)=1 then
|
|
case SubVers of
|
|
$EC:Cirrus 510/520;
|
|
$CA:Cirrus 610/620;
|
|
$EA:Cirrus Video7 OEM;
|
|
else UNK(Cirrus)
|
|
end;
|
|
end;
|
|
wrinx(base,$C,old);
|
|
wrinx($3C4,6,old6);
|
|
|
|
|
|
|
|
Modes for the GD 5320:
|
|
|
|
18h T 132 25 2
|
|
19h T 132 34 2
|
|
1Ah T 132 44 2
|
|
1Ch T 132 25 16
|
|
1Dh T 132 43 16
|
|
1Eh T 132 44 16
|
|
23h T 132 25 16
|
|
24h T 132 28 16
|
|
25h G 640 480 16 PL4
|
|
29h G 800 600 16 PL4
|
|
2Dh G 640 350 256 P8
|
|
60h T 132 25
|
|
61h G 640 400 16 PL4
|
|
61h T 132 50 HUH ??
|
|
62h G 640 450 16 PL4
|
|
70h G 360 480 256 P8
|
|
71h G 528 400 256 P8
|
|
72h G 528 480 256 P8
|
|
74h G 320 240 256 P8
|
|
75h G 640 400 256 P8
|
|
|
|
|
|
Modes for the GD 54xx:
|
|
|
|
14h T 132 25 16 (8x16)
|
|
54h T 132 43 16 (8x8)
|
|
55h T 132 25 16 (8x14)
|
|
56h T 132 43 2 (5402 only)
|
|
57h T 132 25 2 (5402 only)
|
|
58h G 800 600 16 PL4
|
|
59h G 800 600 2 (5402 only)
|
|
5Ch G 800 600 256 P8
|
|
5Dh G 1024 768 16 PL4
|
|
5Eh G 640 400 256 P8 (5402 only)
|
|
5Fh G 640 480 256 P8
|
|
60h G 1024 768 256 P8
|
|
64h G 640 480 64K P16
|
|
65h G 800 600 64K P16
|
|
66h G 640 480 32K P15
|
|
67h G 800 600 32K P15
|
|
68h G 1024 768 32K P15 5452 only ?
|
|
69h G 1280 1024 32K P15 5452 only ?
|
|
6Ah G 800 600 16 PL4
|
|
6Ch G 1280 1024 16 PL4
|
|
6Dh G 1280 1024 256 P8
|
|
6Fh G 320 200 64K P16
|
|
70h G 320 200 16M P24
|
|
71h G 640 480 16M P24
|
|
72h G 800 600 16M P32 543x/52 only
|
|
73h G 1024 768 16M P32 543x/52 only
|
|
74h G 1024 768 64K P16
|
|
75h G 1280 1024 64K P16
|
|
76h G 640 480 16M P32 543x/52 only
|
|
77h G 1280 1024 16M P24 543x/52 only
|
|
78h G 1600 1200 256 P8 543x/52 only
|
|
79h G 1152 870 16M P32 543x/52 only
|
|
|
|
|
|
-- BIOS extensions --
|
|
----------1012-80----------------------------------
|
|
INT 10 - VIDEO Cirrus Logic - Inquire VGA Type
|
|
AH = 12h
|
|
BL = 80h
|
|
Return: AL = Chip ID:
|
|
2 CL-GD 510/520
|
|
3 CL-GD 610/620
|
|
4 CL-GD 5320
|
|
5 CL-GD 6410
|
|
6 CL-GD 5410
|
|
7 CL-GD 6420
|
|
8 CL-GD 6412
|
|
9 CL-GD 6416
|
|
10h CL-GD 5401
|
|
11h CL-GD 5402
|
|
12h CL-GD 5420
|
|
13h CL-GD 5422
|
|
14h CL-GD 5424
|
|
15h CL-GD 5426
|
|
16h CL-GD 5420 rev 1
|
|
17h CL-GD 5402 rev 1
|
|
18h CL-GD 5428
|
|
19h CL-GD 5429
|
|
20h CL-GD 6205
|
|
21h CL-GD 6215
|
|
22h CL-GD 6225
|
|
23h CL-GD 6235
|
|
24h CL-GD 6245
|
|
30h CL-GD 5432
|
|
31h CL-GD 5434
|
|
32h CL-GD 5430
|
|
33h CL-GD 5434 (.6 micron)
|
|
40h CL-GD 6440
|
|
41h CL-GD 7542 (Nordic)
|
|
42h CL-GD 7543 (Viking)
|
|
43h CL-GD 7541 (Nordic Lite)
|
|
52h CL-GD 5452 (Northstar)
|
|
BL = Silicon Revision number (bit 7 set if not available)
|
|
BH = bit 2 set if using CL-GD 6340 LCD interface
|
|
----------1012-81---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Inquire BIOS Version Number
|
|
AH = 12h
|
|
BL = 81h
|
|
Return: AH = Major Version
|
|
AL = Minor Version
|
|
----------1012-82---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Inquire Cirrus Logic Design Revision Code
|
|
AH = 12h
|
|
BL = 82h
|
|
Return: AL = Chip Revision
|
|
AH = ??
|
|
----------1012--BL84-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - Inquire Options
|
|
AH = 12h
|
|
BL = 84h
|
|
Return: AX = user options word (see #0029)
|
|
bit 0-1 centering. 00 vertical centered, 01 from bottom,
|
|
10 from top, 11 reserved
|
|
2-3 720-dot fix-up options
|
|
00 OR every 8th and 9th pixel
|
|
01 display MGA mode from left
|
|
10 display MGA mode from right
|
|
11 skip every 9th pixel
|
|
5-7 video mode (001 CGA, 010 MGA, 011 EGA, 100 VGA)
|
|
8 external monitor enabled instead of LCD panel
|
|
9 vertical expand mode enabled
|
|
10 8-bit mode instead of 16-bit mode
|
|
11 normal video rather than reverse video (for LCD)
|
|
12 attribute automap rather than attribute emulation
|
|
13 bold mode disabled (default)
|
|
14 fast bandwidth
|
|
----------1012-85---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Return Installed Memory
|
|
AH = 12h
|
|
BL = 85h
|
|
Return: AL = Video Memory in 64K units
|
|
----------1012--BL89-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - En/Disable Reverse Video Mode
|
|
AH = 12h
|
|
BL = 89h
|
|
AL = new state (00h enabled, 01h disabled)
|
|
----------1012--BL8A-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - Set Frame Color
|
|
AH = 12h
|
|
BL = 8Ah
|
|
AL = new grey-scale color (00h = black to 0Fh = white)
|
|
----------1012--BL8B-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - Enable/Disable Bold Mode
|
|
AH = 12h
|
|
BL = 8Bh
|
|
AL = new state (00h enabled, 01h disabled)
|
|
----------1012--BL8C-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - Set Automap/Emulate Attributes
|
|
AH = 12h
|
|
BL = 8Ch
|
|
AL = new state
|
|
00h enable automap
|
|
01h disable automap and emulate attributes
|
|
----------1012--BL8F-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - Enable/Disable Expand Mode
|
|
AH = 12h
|
|
BL = 8Fh
|
|
AL = new state (00h enabled, 01h disabled)
|
|
Note: when expand mode is enabled, the vertical dimension is enlarged to
|
|
full screen
|
|
----------1012--BL90-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - Set Centering Mode
|
|
AH = 12h
|
|
BL = 90h
|
|
AL = new position
|
|
00h centered
|
|
01h from top
|
|
02h from bottom
|
|
03h from top
|
|
----------1012--BL91-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - Set 720-Dot Fixup Mode
|
|
AH = 12h
|
|
BL = 91h
|
|
AL = new mode
|
|
00h display MGA mode from left of screen (default)
|
|
01h display MGA from right
|
|
02h skip every ninth pixel
|
|
03h OR every 8th and 9th pixel
|
|
----------1012--BL92-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - LCD panel - Switch Display
|
|
AH = 12h
|
|
BL = 92h
|
|
AL = new display (00h LCD, 01h external monitor)
|
|
Note: the deselected display is disabled
|
|
----------1012-93---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Force 8bit OR 16bit Operation
|
|
AH = 12h
|
|
BL = 93h
|
|
AL = New I/O width (00h = 16bits, 01h = 8bits).
|
|
----------1012--BL94-------------------------
|
|
INT 10 - Cirrus Logic BIOS v3.02 - Power Conservation
|
|
AH = 12h
|
|
BL = 94h
|
|
AL = new state (00h wake up monitor, 01h shut down display)
|
|
Note: AL=01h is reported not to work properly on the LCD panel
|
|
----------1012-9A---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - GET USER OPTIONS
|
|
AH = 12h
|
|
BL = 9Ah
|
|
Return: AX = Options Word 1:
|
|
Bit 2-4 Monitor type
|
|
5-6 Maximum Vertical Resolution
|
|
10 Force 8bit operation (0=16bit, 1=8bit))
|
|
14 Vertical Refresh Frequency at 640x480
|
|
CX = Options Word 2:
|
|
Bit 4-5 Vertical Refresh Frequency at 1280x1024
|
|
11-12 Vertical Refresh Frequency at 800x600
|
|
13-15 Vertical Refresh Frequency at 1024x768
|
|
----------1012-A0---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Get Video Mode Availability
|
|
AH = 12h
|
|
AL = Video mode number
|
|
BL = A0h
|
|
Return: AH = Bit 0: Video mode supported if set
|
|
BX = Offset of BIOS subrutine to fixup standard video parameters.
|
|
(Call subrutine with DS:SI and ES:DI as returned by this call)
|
|
DS:SI -> Standard Video Parameters or FFFFh:FFFFh
|
|
ES:DI -> Supplemental Video Parameters or FFFFh:FFFFh
|
|
----------1012-A1---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Read Monitor Type Ana ID From 15Pin Connector
|
|
AH = 12h
|
|
BL = A1h
|
|
Return: BH = Monitor ID:
|
|
00h-08h Reserved
|
|
09h IBM 8604/8507
|
|
0Ah IBM 8514
|
|
0Bh IBM 8515
|
|
0Dh IBM 8503
|
|
0Eh IBM 8512/8513
|
|
0Fh no monitor
|
|
BL = Monitor Type. 00h: Color, 01h: Grayscale, 02h: No Display
|
|
----------1012-A2---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Set Monitor Horizontal Retrace Frequency
|
|
AH = 12h
|
|
BL = A2h
|
|
AL = Monitor Type
|
|
00h Standard VGA
|
|
01h 8514-compatible (31.5 + 35.5 kHz)
|
|
02h SuperVGA (31.5 - 35.1 kHz)
|
|
03h Extended SuperVGA (31.5 - 35.5 kHz)
|
|
04h multi-frequency (31.5 - 37.8 kHz)
|
|
05h extended multi-frequency (31.5 - 48.0 kHz)
|
|
06h super multi-frequency (31.5 - 56.0 kHz)
|
|
07h extended super multi-frequency (31.5 - 64.0 kHz)
|
|
----------1012-A3---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Set VGA Refresh
|
|
AH = 12h
|
|
BL = A3h
|
|
AL = refresh rate for 640x480 (00h normal, 01h high)
|
|
----------1012-A4---------------------------------------
|
|
INT 10 - VIDEO - Cirrus Logic - Set Monitor Type
|
|
AH = 12h
|
|
BL = A4h
|
|
AL = Bits 0-3 Maximum Vertical Resolution
|
|
0: 480, 1: 600, 2: 768, 3: 1024
|
|
4-7 Vertical Refresh at 640x480:
|
|
0: 60Hz, 1: 72Hz
|
|
BH = Bits 0-3 Vertical Refresh at 800x600:
|
|
0: 56Hz, 1: 60Hz, 2: 72Hz
|
|
4-7 Vertical Refresh at 1024x768:
|
|
0: 87Hz interlaced, 1: 60Hz, 2: 70Hz, 3: 72Hz, 4: 76Hz
|
|
CH = Bits 4-7 Vertical Refresh at 1280x1024:
|
|
0: 87Hz interlaced, 1: 60Hz, 2: 70Hz
|
|
|
|
Many other functions exist in the range BL = 80h - A3h
|