Driver:PGC

From MAMEDEV Wiki

IBM Professional Graphics Controller

The PGC is an intelligent, accelerated 2D and 3D video card for the early PCs, marketed by IBM from 1984 to 1987. Screen resolution is 640x480, 256 colors (8-bit) from palette of 4096 (12-bit). The board has an optional CGA emulation mode which is not currently implemented in MAME as of 0.275.

Firmware running on the onboard CPU (an Intel 8088) exchanges commands and results with the host via a shared memory region; there is no direct framebuffer access. Bitmap support is rather simple -- a single write to frame buffer may change up to 20 adjacent pixels in one scan line. The primary purpose of the board is to draw 3D wireframe graphics (or 2D geometric shapes) and offload this from the main CPU. In other words, this is the first commercially sold personal computer GPU.

MAME supports it as slot device "pgc" for ISA bus in the ibm5150 (IBM PC) driver. As there is no CGA emulation, this needs to be used along side a CGA board, for example in slot 5 on a ibm5150, with the other boards left as default. The two 4:3 monitors will be displayed side by side, which works well on a 16:9 display. In theory this should work in the ibm5160 (IBM PC XT) and ibm5170 (IBM PC AT) and some other ISA bus PC compatibles. The real PGC is reported to have trouble with faster computers.

Documentation

Software

Advanced Diagnostics

The IBM PC Advanced Diagnostics 2.25 (and perhaps other versions) do support the PGC, however the MAME emulation is currently failing the test.

AutoCAD

The card was supported by CAD software (AutoCAD 2.6j is known to work).

CompuShow

CompuShow image viewer claims support, but fails to display anything (apparently, it was tested on a 3rd-party compatible card, with extended command set).

Lawrence Berkeley National Laboratory demo

Public domain "IEA/ORAU Long-Term Global Energy-CO2 Model" software (DOI: 10.3334/CDIAC/ess.cmp002, https://web.archive.org/web/20230604083458/https://cdiac.ess-dive.lbl.gov/ftp/cmp002/), using the VDI driver for PGC to display its simulation results:

PGCBMP and PGCTALK

Open source utilities written in C (https://www.seasip.info/VintagePC/pgcbmp.zip) that speak directly to the card and provide examples of how to use it.

VDI

PGC is supported by the IBM Personal Computer Graphics Development Toolkit via the VDI (virtual device interface) driver.

Compatible boards

Several boards with varying degrees of compatibility were made by other manufacturers.

  • Matrox PG-640, PG-1280 and QG-640 (for the DEC MicroVAX)
  • Dell NEC MVA-1024 card
  • Everex EPGA
  • Orchid Technology TurboPGA
  • Vermont Microsystems IM-640, IM-1024

See also