Retro Review: Tseng Labs ET3000 Part 1
29th February 2024
The ET3000AX arrived in September 1987, two years before what would be Tseng Labs' most popular chipset, ET4000AX. It marked the consolidation of earlier chips into a single ASIC for faster performance and reliability.
Compared to the later ET4000, the ET3000 lacks the ET4000's 16-bit host interface controller, onboard cache, and variable-width memory interface. It also maxes out at 512 KB of video memory, meaning its highest resolution is 1024 x 768.
A Sigma Designs VGA/H16 16-bit ISA ET3000 card (ca. 1989)
There were two variants of the ET3000AX, with code numbers 11038F-0005 and 11038AF-0005. Mine has the earlier 11038F. I'm not sure what differences exist between these two.
My card from Sigma Designs is the VGA/H16. The "H" tells you the card has 100% register-level compatibility to all IBM video standards in addition to Hercules. It is the successor to their earlier 8-bit ET3000 card, VGA/H, which had a price tag of $399 in mid-1988.
Sigma Designs Inc. was headquartered at 46501 Landing Pkwy, Fremont, CA.
The Flypast
Lets take a look at the component parts that make up this 16-bit ISA graphics card:
- A Tseng Labs ET3000AX ASIC, revision 11038F-0005
- A VGA BIOS chip
- A Sync ROM chip
- An AVASEM AV3676 RAMDAC
- Two crystal oscillators with space for two others
- A 15-pin D-SUB for analogue video out
- VGA feature connector
- One bank of Micron-branded DRAM chips totalling 256 KB
- A 4-switch DIP block
Video Controller
The Tseng Labs ET3000 was their 5th graphics chip, succeeding among others, ET1000 and ET2000. It was fabricated in both 144-pin and 160-pin PQFP (Plastic Quad Flat Package) forms, created using a 1.0 micron manufacturing process. The ET3000 provided register-level compatibility with all the PC graphics standards of the day, including MDA, CGA, EGA, VGA, Hercules (HGC), and even AT&T/Olivetti! It supported interlaced and non-interlaced V-Sync and H-Sync signals with polarity control output to your monitor, so was very much at home with a multisync analogue monitor. With 512 KB of video memory onboard, an ET3000 could display resolutions up to 1024 x 768 in 16 colours or 800 x 600 in 256 colours.
As mentioned, the ET3000 was their first chip to combine several external ICs into one ASIC. This meant that internally the ET3000 comprised a graphics data controller, Memory Control Unit (MCU), a CRT (Cathode Ray Tube) controller, a display address controller and attribute controller.
The list of display modes it could handle include:
- VGA 640 x 480 in 16 colours
- VGA 320 x 200 in 256 colours (or 64 shades of grey)
- EGA 640 x 350 in 16 colours
- EGA 640 x 200 in 16 colours
- EGA 320 x 200 in 16 colours
- CGA 640 x 200 in 2 colours
- CGA 320 x 200 in 4 colours
- Hercules 720 x 348 in monochrome
- Extended graphics mode of 1024 x 768 in 16 colours (interlaced and non-interlaced)
- Extended graphics mode of 800 x 600 in 256 colours
- Extended graphics mode of 640 x 480 in 256 colours
- Extended graphics mode of 640 x 350 in 256 colours
- Text modes of 80 x 50, 80 x 60
- Text modes of 132 x 25, 132 x 28 and 132 x 44
- Text mode of 100 x 40
The ET3000 could work with both analogue and TTL digital monitors, usually with a jumper and/or DIP switch setting to select the attached monitor type. The list of monitor types and their frequencies is shown in this table:
Monochrome | Colour | Enhanced Colour | Multi-Frequency | |
---|---|---|---|---|
Horizontal Freq. | 18.432 kHz | 15.750 kHz | 21.850 kHz | 15 kHz - 36 kHz |
Vertical Freq. | 50 Hz | 60 Hz | 60 Hz | 45 Hz - 90 Hz |
Bandwidth | 16.257 MHz | 14.318 MHz | 16.257 MHz | 30 MHz or higher |
Resolution | 720 x 350 | 640 x 200 | 640 x 350 | 1024 x 768 |
It was also able to load custom fonts and came with a font editor.
The ET3000 supported hardware zoom, pan and window (scroll) features. These typically required a TSR to be loaded (provided by your card's manufacturer on the Utility & Driver disk) which some programs could detect to make use of the feature, and with a hotkey you could activate the zoom mode.
VGA BIOS and Sync ROM
The Super VGA BIOS (the left chip in the pic to the right) is a 28-pin 27256 EPROM chip (256-kbit), which means it's 32 KB in capacity. It contains all the usual display modes for EGA and VGA (for MDA and CGA there was no need for a separate video BIOS, as the main PC BIOS contained all the necessary BIOS calls for accessing the video). There are numerous versions of the ET3000's VGA BIOS available to download on the web, so I won't post any here. Mine appears to have a Sigma part #444-798-1 with firmware revision V2.72AZ.
I'm not 100% sure what the VGA Sync ROM (right-hand chip in the pic above) is for; my guess is that it's an EPROM that contains mappings of all the video modes supported by the ET3000 along with the various frequency timings and polarities. In theory this information could have been baked into the VGA BIOS chip though. In our case, the Sync ROM is also a 28-pin 27256 EPROM chips (32 KB in capacity), with part #444-837 and firmware revision V2.62.
RAMDAC
When VGA arrived on the scene, RAMDACs became necessary because our PC graphics cards up until this point all output digital signals (MDA, Hercules, CGA and EGA), but VGA instead output analogue signals. The RAMDAC is exactly as you might expect, it's a Random Access Memory (RAM) chip used to convert digital signals to analogue (a DAC) for output to the monitor. The digital image that's stored in the frame buffer (the video card's memory) is sent to the RAMDAC, where three internal digital-to-analogue converters convert each of the red, green and blue digital values to an analogue signal using a colour table, aka colour map or LUT (lookup table) that is stored in static RAM embedded within the RAMDAC chip to tell it what each colour should look like. Each red, green and blue value is then converted to a voltage that's sent to the monitor.
RAMDACs were later embedded into the graphics chip in order to reduce manufacturing costs as well as latency in retrieving data from another chip, but on these boards they're not only separate, but are interchangeable (being socketed)!
The RAMDAC on my board is an AVASEM AV3676 which is in a 28-pin DIP. Other ET3000 cards I've referenced further up use a MUSIC Semiconductor TR9C1710-50, Brooktree BT476KP50, Analog Devices ADV476KN66E , Syvantek SYC176-50 or a Samsung KDA0476CN-66. All of these are 100% interchangeable with one another. The fact our card here runs at the lowly speed of 40 MHz while other ET3000 cards use 50 and even 66 MHz RAMDACs means there might be room to improve performance a little bit, though the card will no doubt have other bottlenecks that might reduce the effectiveness of this.
Video Memory
The ET3000 chipset can support memory sizes of 256 KB or 512 KB. This SVGA card has eight Micron Technology MT4067-10 DRAM chips which are 256 Kbit x 4, resulting in a total memory capacity of 256 KB (16 KB per chip). These are the fastest this Micron chip came in, at 100ns access time, which is typical of most ET3000 cards.
The two 22-pin headers on either side of the fixed memory are presumably for a memory expansion daughterboard you could buy at the time to expand the card up to the full 512 KB. This would likely be interpreted as a second 'bank' of memory by the ET3000.
Sadly, the memory on the card is soldered in, making an upgrade more tricky - at least one other ET3000 card appears to have socketed 80ns memory chips installed, though just like the RAMDAC, I'm not sure if there's any performance gain to be had running faster DRAMs. It's likely other aspects of the card or the ISA bus itself would be a bottleneck to much, if any, improvement.
Crystal Oscillators
There are two crystal oscillators on the card, one that runs at 25.175 MHz and a second at 28.322. The card has solder pads for a 35.000 MHz one and a 32.000 MHz one.
This tells us that the ET3000 doesn't have a clock generator like the ET4000 had, making the ET3000 closer to EGA and early VGA cards that often had multiple crystal oscillators that ran at different pixel clocks (dot clocks) to handle all the frequencies of the many different display modes the card needed to support.
The 25.175 MHz crystal is the one used for standard VGA modes in 320 x 200, 640 x 350, and 640 x 480, CGA mode 320 x 200, double-scanned 640 x 400, and EGA 640 x 350. These can all run at a vertical frequency of 70 Hz apart from the 640 x 480 that runs at 60 Hz.
The 28.322 MHz one is for other text modes including the standard text mode of 80 x 25 (which equates to a graphical resolution of 720 x 400 and runs at 70 Hz vertical frequency), and extended text modes of 132 x 25 (1056 x 352 resolution), 132 x 28 (1056 x 364) and 132 x 44 (1056 x 352). The latter all run at 60 Hz vertical frequency.
The missing 32 MHz oscillator would allow the card to also run in EGA mode 640 x 350 as well as in Hercules monochrome mode 720 x 348 (with the frequency divided by 2 by the ET3000). Some cards might have a 64 MHz oscillator in here to also support 1024 x 768 in non-interlaced mode.
The missing 35 MHz oscillator is for other custom "Extended" modes, including 800 x 600 in 256 colours.
It is likely my Sigma Designs card here is not designed to support 1024 x 768, as this would typically require a 44.900 MHz oscillator for interlaced mode.
DIP Switches and Jumpers
The configuration of the DIP switches may be different depending on your specific card, but in the absence of a user manual, try these:
SW1 | SW2 | SW3 | SW4 | Notes |
---|---|---|---|---|
1 | 0 | 0 | 0 | Colour 80 x 25 IBM 8512/8513/8514 display (Analogue monitor) |
0 | 0 | 0 | 0 | Colour 80 x 25 variable frequency display (Analogue monitor) |
1 | 0 | 0 | 1 | Colour 40 x 25 display (IBM 5153 or compatible Digital TTL monitor) |
0 | 0 | 0 | 1 | Colour 80 x 25 display (IBM 5153 or compatible Digital TTL monitor) |
1 | 1 | 1 | 0 | Enhanced colour display (IBM 5154 or compatible Digital TTL monitor) |
0 | 1 | 1 | 0 | Variable frequency or Enhanced colour display |
1 | 0 | 1 | 0 | Monochrome display (IBM 5151 or compatible Digital TTL monitor) |
0 | 0 | 1 | 0 | Monochrome display (IBM 5151 or compatible Digital TTL monitor) |
These assume you are connecting the ET3000 card to your primary display (the one the system will use at initial startup). In these days it was entirely feasible to connect two monitors to your PC, with a colour display card like this and a secondary monochrome or CGA card. The settings above are for when your ET3000 card is connected as the primary display. Other missing settings for these DIP switches would cater for times when your primary display is the monochrome one and the ET3000 is the secondary.
Switching between display modes is done after startup using a utility such as DMODE.EXE.
Summary Part 1
So that's my ET3000 card. It's definitely a non-premium variant given its 256 KB of memory, lack of all the crystals needed to operate at the highest frequency of 1024 x 768, and it's missing digital TTL output option.
In Part 2, I will test the card is fully functional and run some benchmarks to see what we can get out of it. I'm expecting pretty lowly performance from this one, but decent compatibility. The card pre-dates the most common VGA ISA cards you might be using today, so we'll be gentle ;-)