DOS Days

Retro Review: Octek EVGA-16

16th November 2023

Here's a new acquisition I made last month: an Octek EVGA-16 card from 1991. This is the second Octek graphics card in my collection (the first being the Octek MicroEGA, reviewed here). As I mentioned in that article, Octek are more commonly known for their XT and 286 motherboards based on the decent Headland chipsets, but they also produced graphics cards for about a 13-year period from 1985 through to around 1998. A lot of these were based on Trident and Paradise/Western Digital chipsets, but later ones used an ARK Logic ARK2000PV - one of the fastest PCI graphics chipsets around.

 

Octek EVGA-16 Super VGA Card (1991)
Bought in October 2023 for £30

 

The Flypast

So let's swing around the card and see what we have:

  • A Chips & Technologies F82C451 chipset
  • A Chips & Technologies VGA video BIOS chip (no version marked on the sticker)
  • A RAMDAC chip from IMP, an IMP41C176D
  • 256 KB of video memory in eight 64k x 4 100ns DRAM chips (soldered-in)
  • Three crystal oscillators
  • A few jumpers dotted around
  • A 15-pin D-SUB for analogue video out

 

Board Revisions

For Octek-branded cards, there are several known board revisions including 1.0, 2.0, 2.1, and 2.3, that I have seen.
Rev 1.0 (Jan 1990) - has the LM339 just below the crystal closest to the backplate.
Rev 2.0 (from ~Aug 1990) - boards have a very different layout in the top-right of the board.
Rev 2.1 -(from late 1990) - added a new 'OR' gate IC (74F32) at U14.
Rev 2.3 (from late March 1991) - relocated capacitor C21 and resistor R3.

Card Serial # Memory RAMDAC Board Revision VGA BIOS Version
(Unknown) Goldstar GM71C464-10 Samsung KDA0476CK-50 1.0 ?
965222 Hyundai HY53C464LS-80 Avasem AV3676-50A 2.0 ?
1415349 OKI M41464-10 IMP41C276D-50 2.1 2.2.0.O.J
1460187 OKI M41464-10 IMP41C276D-50 2.3 ?
1502202 OKI M41464-10 IMP41C276D-50 2.3 2.2.0.O.J
981449* Hyundai HY53C464LS-80 IMP41C276D-50 2.3 ?
1509439 Hyundai HY53C464LS-80 IMP41C276D-50 2.3 ?

*This card is branded Ocean Office Automation (with the card's FCC ID I3XHK45V1120) - Ocean I believe acquired Octek around 1996, but the dates on the chips pre-date this, showing it's a 1991 card - odd. Maybe Ocean started off with a partnership to sell Octek's cards and bought them out later?

Note that my card has two bodge wires that run from the jumper above the missing LM339 chip location (this buffer IC is not required if an IMP RAMDAC or pin-compatible variant is used) connecting a pin on the RAMDAC to one of the DE-15 connector pins, with this jumper/header at the mid-point. It's present on other Rev 2.3 cards (sometimes on the underside of the board), so it's highly probable this was a manufacturing bodge due to an error in the board's traces and fixed before packaging up. They are not present on the earlier revision boards.

There are a few other cards that were also based on the same VGA chipset, but ultimately they all have very similar specs.

Video Controller

The EVGA-16 is based on the F82C451 video controller chip made by Chips & Technologies, released in 1990. You can find more detailed information over in my Datasheets Index, but essentially it's an integrated graphics chip (attribute controller, sequencer, etc. ) that's 100% compatible with IBM's VGA standard and provides emulation/compatibility back to EGA, CGA, Hercules and MDA graphics standards.

The F82C451 supports both the 8-bit and 16-bit ISA bus, so this chip can also be found on 8-bit cards suitable for the IBM PC, PC/XT and compatibles. In fact, Octek themselves created a sister card called the EVGA-8 specifically for XT machines, though I'm pretty sure this 16-bit card will also work in an 8-bit slot - I will test that theory and report back.

With a maximum resolution of 800 x 600 in 16 colours, it's a pretty early SVGA chipset that sits at the lower end of their 45x family. To get 256 colours on-screen the limited 256 KB of memory only allows for this at resolutions up to 320 x 200 or if it's supported, 640 x 400 (which a lot of later DOS games used).

Did You Know?
At the same time as the F82C451, C&T also developed others in the range:
F82C452 - a higher-specced chipset, pin-compatible with the 451. This offered support for up to 1 MB of display memory. With this amount, cards based on it could drive a display up to 1024 x 768 at an 8-bit colour depth (256 colours) or with 512 KB of display memory 800 x 600 in 256 colours.
F82C455 - designed for flat panels as well as colour/mono CRTs, this came with what C&T called SMARTMAP - a technology that converted colours into 16 greyscales, Vertical Compensation (helps to fill a higher-resolution display with a lower-resolution signal), power-saving modes. It supported up to 256 KB of video memory.

 

VGA BIOS

The F82C451 supports either a single 8-bit BIOS chip (27512 EPROM) or two 16-bit BIOS chips (27256 EPROMs). Either way, this results in a BIOS that is 64 KB in capacity. I will be sure to dump its contents for future reference/safe-keeping.

There are numerous cards based on the F82C451, including STB Systems VGA/640, Boca Research VGA(?), Foundation Logic BM-201, Jovian Logic RUBY 451, and GW-VGA HQ/non HQ. Not all of these manufacturers cards' BIOS support the emulation mode for MDA, Hercules, CGA and EGA, but the Octek card fully support these and some of the utilities provided for the EVGA-8 and EVGA-16 cards do exactly this - software-switching of the emulation mode. So if you want to be able to use these graphics modes you may need to change the BIOS chip on your card for a different one (or reprogram over the original) that is known to support the INT 10h emulation mode function.

 

Video Memory

As I've mentioned, this VGA card has a pretty lowly 256 KB of video memory - the maximum for the original IBM VGA standard, and allows the card to achieve up to 16 colours on-screen simultaneously at its highest resolution of 800 x 600.

The eight soldered-in memory chips are OKI-branded M41464, and are rated for 100ns access time. Some board revisions appear to come with 80ns-rated memory from Hynix (Hyundai). On cards of this era you won't notice any real-world performance differences in upgrading this to faster RAM, so it's not too much of a negative if you have soldered-in ones.

 

Crystal Oscillators

The three crystals on this card are 40 MHz, 28.322 MHz, and 25.175 MHz. Different crystal oscillators are present in order for the card to run at different pixel clocks (a.k.a. dot clocks). The higher the resolution, the higher the frequency the screen redraw (refresh rate) needs to be.

The 40 MHz crystal is the one that supports the highest resolution of VGA 800x600 in 16 colours, and the 132-column text mode. This is possibly also used for the Hercules mode.
The 28.322 MHz and 25.175 MHz crystals are used for the standard VGA modes including the 320x200 and 640x480 modes.

The C&T chipset can operate in the following display modes:

  • MDA: Monochrome mode with a resolution of 720 x 350 with a dot clock of 16.257 MHz (or 16.000?) and a scanning frequency of 50 Hz
  • Hercules: 25 lines of text of 80 characters or 720×348 pixels in graphics mode
  • CGA: The usual 4-colour mode at 320x200, with either colour set 0 (Green/Red/Brown) or colour set 1 (Cyan/Magenta/White), 2-colour mode at 640x200 , plus 40-column or 80-column text mode.
  • EGA: 16 colours at 640×350 resolution (mode 10h) with 16.257 MHz dot clock
  • Text modes: 132 x 44, 132 x 25, 80 x 60, 80 x 44, 80 x 43, 80 x 25, and 40 x 25

 

Configuring the Card

I don't have the original user manual for this Octek card, and with little to go on from other internet sites there's really nothing known on how to set it up. There are only two jumpers, JP2 and JP3, situated in the middle-top of the card. JP2 appears to be connected to the IRQ and TRAP/GPIO pins on the VGA controller. I'm not so sure on the latter but the IRQ line in the 82C451 datasheet is described as "Frame Interrupt Output. Interrupt polarity is programmable. Set when interrupt on VSYNC is enabled.".

The GW-VGA card that also uses this same controller has a better silkscreen and has two jumpers just like the Octek. One of them is PARITY Enable/Disable (referring to the type of DRAMs installed) and the other is marked 'IRQ 9 Enable/Disable'. Two other jumpers on their own on that GW-VGA card are marked 'Auto/8-BITS BUS' (which our Octek card doesn't have) and '36/40 MHz' (which switches out what crystal oscillator the card will use - a 36 MHz one or a 40 MHz one - as it has a fourth crystal).

If I were to guess without testing at this point I would say JP2 is used to enable/disable IRQ 2/9.

Basically, 8-bit ISA cards have only interrupt request lines from 0 through 7. Starting with the 286, a second 8259A controller chip was added to open up more interrupt request lines (8 through 15) for more devices. In order for the system to gain access to these 'extended' IRQs provided by the second interrupt controller, IRQ2 was commandeered to allow software to communicate on these higher IRQs. This is a much deeper subject for which there's an excellent write-up here.

So in our case, this GW-VGA card's jumper exists to enable or disable IRQ 2 (or 9). Most graphics cards of this era had no support (or need to) to use an interrupt line, but some did (like the original IBM EGA card and this one!). It is used to interrupt the CPU on IRQ2 (or 9) at the start of the vertical retrace / when the vertical blank interval occurs, which allows the card to get the correct timings for proper display of the entire frame.

So why does it need to use an IRQ? Well, back in the days of CGA cards there used to be an artifact commonly known as "snow" which was caused by writing directly to the frame buffer at the wrong time (which would then get pushed immediately out to the screen). This would manifest as faint white dots appearing all over the screen, hence the term "snow". Later CGA cards and EGA/VGA cards running in CGA emulation mode had the ability to eliminate this snow by writing to the display only when the vertical retrace was happening (so the artifacts wouldn't be able to appear until after the retrace had completed). It did this by firing an interrupt request on IRQ 2/9 to the CPU to know when the vertical retrace was happening. So this jumper can be thought of as "snow control" on/off.

 

In Part 2 I will install the card and begin exploring the Octek EVGA utilities!