home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Hack-Phreak Scene Programs
/
cleanhpvac.zip
/
cleanhpvac
/
FAQSYS18.ZIP
/
FAQS.DAT
/
CIRRUS.TXT
< prev
next >
Wrap
Text File
|
1996-01-04
|
120KB
|
2,603 lines
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