Vintage PC pages
Home -> Vintage PCs -> Miscellaneous Video Cards

Miscellaneous Video Cards

Notes on various vintage video cards, where I don't have enough information for a full writeup (perhaps because I don't have the card, or I don't have the right monitor).

Orchid Graphics Adapter

A very early monochrome graphics card for the PC. This information is derived from the GSX-86 1.1 driver for the card.

Sigma Designs Color 400

This is a full-length ISA card with an onboard BIOS. According to advertisements at the time, it appears to be a CGA superset (that is, with 8×16 characters in text mode, and automatic line-doubling in graphics modes).

In addition, it supplies a graphics mode at its native resolution: 640×400 in 16 colours. There are two Windows 1.x drivers for this mode; one uses the standard colour model (1-bit truecolour with dithering) while the other is only a 4-colour mode.

Unlike the EGA / VGA in their high-resolution modes, the Sigma Designs card has its framebuffer in the 0B800h segment, size 16000 bytes. The memory layout of the framebuffer is the same as that used by the Hercules video cards in graphics mode; the first line is at offset 0, the next three at 2000h / 4000h / 6000h, and the fifth line follows the first.

Port 02DEh is used to select the plane to read/write, 0-3.

Note that the description in Total Hardware 99 appears to show details for a later, half-length card with a VGA connector.

Tecmar Graphics Master

The Graphics Master is a card that attempts to combine CGA and MDA functionality. It can either be installed as the only card in a system, or alongside an existing CGA or MDA card (or both).

DIP switch settings are:

Configuration JP7JP1/AJP1/BJP1/CJP1/D JP1/EJP1/FSW1
Graphics Master is primary / only display, CGA monitor OpenClosedClosedClosedOpen OpenOpenDown
Graphics Master is primary / only display, MDA monitor ClosedClosedClosedClosedOpen OpenOpenUp
CGA is primary display, Graphics Master uses MDA monitor ClosedOpenClosedClosedOpen OpenOpenUp
MDA is primary display, Graphics Master uses CGA monitor OpenClosedOpenClosedOpen OpenOpenDown
Graphics Master (using CGA monitor) installed alongside CGA and MDA ClosedOpenOpenClosedOpen OpenOpenDown
Graphics Master (using MDA monitor) installed alongside CGA and MDA ClosedOpenOpenClosedOpen OpenOpenUp

Writing to port 03DAh controls the card's extra features:

Bit 7: Reverse the meaning of the 'bright' bit (in text & graphics modes)
Bit 6: Unknown
Bit 5: Set for 400-scanline modes?
Bit 4: Moves screen left (used for modes that are 720 rather than 640 pixels
       wide?)
Bit 3: Enable 128k framebuffer, 4-way interleave
         (eg: With framebuffer at 0xA000, first line comes from 0xA000, 
              second from 0xA800, third from 0xB000, fourth from 0xB800). 
         Done in text mode, this gets you something resembling the 160x100x16
         mode, except it's 160x200.

Bits 2-0: Framebuffer base address. In text modes bit 0 appears to be ignored.
            111 => 0xA4000            
            110 => 0xA0000
            101 => 0xAC000
            100 => 0xA8000
            011 => 0xB4000
            010 => 0xB0000
            001 => 0xBC000
            000 => 0xB8000

The file tecmar.cfg at ftp://ftp.ucl.ac.uk/pub/users/ucklddc/dcprogs/hgraph/ gives the register values to write to the card for a 16-colour 640×400 video mode.

Vermont Microsystems IM-1024

The IM-1024 operates in the same way as the IBM PGC, but with a 1024×800 resolution and an extended command set. What makes it, as far as I know, almost unique is that there is a Windows 1.0x driver for it that supports 256 colours — see V1DSK.ZIP.

The Windows driver appears to use only a few standard PGC commands (such as MOVE, COLOR and DRAW) but also sends numerous commands not in the PGC's repertoire. These include:

4Eh
Sent at initialisation. Followed by 6 bytes.
55h
Reads the pixel at the current location. Returns a single byte.
84h
Set cursor shape. Followed by 0 for AND mask, 0FFh for XOR mask; then two words giving the width and height, and ((width+7)/8)*height bytes giving the bitmap.
8Bh
Paint cursor. Followed by 1, then 0 to draw the AND mask or 0FFh to draw the XOR mask.
0B7h
Sent at initialisation. Followed by 3 bytes.
0E4h
Followed by a 1. Sent at initialisation; possibly selects 1024×800 mode rather than 640×480.
0EBh
This is the PGC function LINFUN (set drawing mode) but supports other modes than 0 (paint) or 1 (XOR). Mode 2 appears to be OR and mode 3 to be AND.

John Elliott 19 January 2018