RAMDACs Brooktree: Bt476 6-bit DAC. Bt478 8-bit DAC. Sierra "Mark1": SC11481 15-bit. 6-bit DAC. Overlay. Only "Tseng" double edge mode. SC11486 15-bit. 6-bit DAC. Only "Tseng" double egde mode. SC11488 15 bit. 6/8 bit DAC. Overlay. Only "Tseng" double edge mode. Sierra "Mark2": SC11482 15-bit. 6-bit DAC. Overlay. SC11483 15-bit. 6-bit DAC. SC11484 15-bit. 6/8 bit DAC. Overlay. Sierra "Mark3": SC11485 15/16 bit. 6-bit DAC. Overlay. SC11487 15/16 bit. 6-bit DAC. SC11489 15/16 bit. 6/8 bit DAC. Overlay. SC15025 15/16/24 bit. SC15026 15/16/24 bit. AcuMos: ADAC1 15/16/24 bit. AT&T: ATT20C492 15/16/24 bit ATT20C491 15/16/24 bit. MUSIC: MU9C4870 15-bit Diamond: SS2410 15/24 bit. Might be the same as the MUSIC. A test program for Diamond Stealth ID's it as 'MUSIC', but then they probably got the test from Tseng in the first place. Avance Logic: ALG1101 16-bit. Appears to be different from the other HiColor DACs. ATI: ATI68830 15/16/24bit Up to 80 MHz ! ATI68875 15/16/24bit Up to 135 MHz ! Used in ATI Graphics Ultra + and Pro 15-bit modes have 5 bits of each basic color: bit 0- 4 blue. 5- 9 green. 10-14 red. The pixel is stored in two bytes in Intel style (little endian). 16-bit modes have 5 bits of red and blue, and 6 bits of green: bits 0- 4 blue. 5-10 green. 11-15 red. The pixel is stored in two bytes in Intel style (little endian). 24-bit modes have 8 bits of each basic color: bits 0- 7 blue. 8-15 green 16=23 red. The pixel is stored in three bytes in Intel style (little endian). HiColor DACs have a command register at 3C6h: bit 7 Set in HiColor modes. 6 Set in 16-bit modes. Clear in 15-bit modes. Appear to exist but have no effect in SC11483s. (ATT) Set in 16 and 24 bit modes, clear in 15 bit modes. 5 (Sierra "Mark 2/3") If set two pixel clocks are used to latch the two bytes needed for each pixel. Low byte is latched first. If clear the low byte is latched on the rising edge of the pixel clock and the high byte is latched on the falling edge. Only some VGA chips (Tseng 4000) can handle this. In SC11486 this bit has no effect. 5 (ATT) Set in 15 and 24 bit modes. clear in 16bit modes. Forcing HiColor DACs into command mode: procedure dactocomm; {switches DAC to command register} var x:word; begin x:=inp($3C8); {clear old state} x:=inp($3C6); x:=inp($3C6); x:=inp($3C6); {Read $3C6 4 times.} x:=inp($3C6); end; Now reads and writes to $3C6 will access the command register. Any access to $3C7-$3C9 will switch back to the PEL mask register. Forcing HiColor DACs into normal bode: procedure dactopel; {switches DAC back to normal mode} var x:word; begin x:=inp($3C8); end; function testdac:string; var x,y,z,v,oldcommreg,oldpelreg:word; begin IF chip=__al2101 then (* Special case -- weird DAC *) begin dactype:=_dac16; testdac:='AVL DAC 16'; exit; end; testdac:='Normal'; dactype:=_dac8; dactopel; x:=inp($3c6); repeat y:=x; x:=inp($3c6); until (x=y); z:=x; x:=inp($3c8); x:=inp($3c6); x:=inp($3c6); {Same as DacToComm, but keep last value read} x:=inp($3c6); x:=inp($3c6); y:=8; while (x<>$8E) and (y>0) do begin x:=inp($3c6); dec(y); end; if x=$8e then {Special tests for SS2410 DAC} begin dactype:=_dacss24; testdac:='SS24'; dactopel; {bavk to PE mode} end else begin dactocomm; oldcommreg:=inp($3c6); dactopel; oldpelreg:=inp($3c6); x:=oldcommreg xor 255; outp($3c6,x); dactocomm; v:=inp($3c6); if v<>x then begin dactocomm; x:=oldcommreg xor $60; outp($3c6,x); dactocomm; v:=inp($3c6); testdac:='Sierra SC11486'; dactype:=_dac15; if (x and $e0)=(v and $e0) then begin x:=inp($3c6); dactopel; testdac:='Sierra 32k/64k'; dactype:=_dac15; (* Can't tell the difference *) if x=inp($3c6) then begin testdac:='ATT 20c492'; {or ATT20c491} dactype:=_dacatt492; dactocomm; outp($3c6,255); dactocomm; if inp($3c6)<>255 then begin testdac:='AcuMos ADAC1'; {I this correct??} dactype:=_weirdDAC; end; end; end; dactocomm; outp($3c6,oldcommreg); {restore command register} end; dactopel; outp($3c6,oldpelreg); {restore PEL register} end; end; This rutine identifies: Sierra "Mark1" as Sierra 32K Sierra "Mark2" is misidentified as Sierra 64k (Mark3). Sierra "Mark3" as Sierra 64k. ATT20C491/492 as ATT SS2410 as SS24