Driver:PGC: Difference between revisions

From MAMEDEV Wiki
 
(2 intermediate revisions by the same user not shown)
Line 40: Line 40:
A number of cards based on the IBM PGC were made by Matrox for PC-compatible computers and other platforms. The PG-640 and -1280 used National Semiconductor NS32016 microprocessor instead of an Intel-compatible architecture so they are not 100% compatible with a PGC due to the possibility of executing native code with undocumented commands on the PGC. Other variants include QG- (DEC MicroVAX Q-Bus), MG- (Multibus), VG- (VME).
A number of cards based on the IBM PGC were made by Matrox for PC-compatible computers and other platforms. The PG-640 and -1280 used National Semiconductor NS32016 microprocessor instead of an Intel-compatible architecture so they are not 100% compatible with a PGC due to the possibility of executing native code with undocumented commands on the PGC. Other variants include QG- (DEC MicroVAX Q-Bus), MG- (Multibus), VG- (VME).


Programming manual: https://archive.org/details/matrox-pg-640a-users-manual
*Programming manual: https://archive.org/details/matrox-pg-640a-users-manual


====Series 1====
====Series 1====
Later models sometimes called "Series 1" have similar model numbers such as PG-641, PG-1281, PG2-1281 (Micro-Channel) but they changed to a different design with the TI TMS34010 graphics accelerator as well as other support chips. These boards are not PGC compatible and use the LibShell interface for programming. These are also not "TIGA" compatible boards despite having the right kind of processor.
Later models sometimes called "Series 1" have similar model numbers such as PG-641, PG-1281, PG2-1281 (Micro-Channel) but they changed to a different design with the TI TMS34010 graphics accelerator as well as other support chips. These boards are not PGC compatible and use the LibShell interface for programming. These are also not "TIGA" compatible boards despite having the right kind of processor.


PG Series 1 Drivers and utilities: https://archive.org/details/matrox-pg-series
*PG Series 1 Drivers and utilities: https://archive.org/details/matrox-pg-series
LibShell manual: https://archive.org/details/matrox-lib-shell-manual
*LibShell manual: https://archive.org/details/matrox-lib-shell-manual


===Other cards===
===Other cards===
Other manufacturers made cards inspired by the PGC design.
* Dell NEC MVA-1024 card
* Dell NEC MVA-1024 card
* Everex EV-660 EPGA
* Everex EV-660 EPGA

Latest revision as of 03:59, 4 September 2026

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 (CShow) image viewer and its successor 2show are reported to work.

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. Also available on github, PGCTALK and PGCBMP.

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 series

A number of cards based on the IBM PGC were made by Matrox for PC-compatible computers and other platforms. The PG-640 and -1280 used National Semiconductor NS32016 microprocessor instead of an Intel-compatible architecture so they are not 100% compatible with a PGC due to the possibility of executing native code with undocumented commands on the PGC. Other variants include QG- (DEC MicroVAX Q-Bus), MG- (Multibus), VG- (VME).

Series 1

Later models sometimes called "Series 1" have similar model numbers such as PG-641, PG-1281, PG2-1281 (Micro-Channel) but they changed to a different design with the TI TMS34010 graphics accelerator as well as other support chips. These boards are not PGC compatible and use the LibShell interface for programming. These are also not "TIGA" compatible boards despite having the right kind of processor.

Other cards

Other manufacturers made cards inspired by the PGC design.

  • Dell NEC MVA-1024 card
  • Everex EV-660 EPGA
  • Orchid Technology TurboPGA
  • Vermont Microsystems IM-640, IM-1024
  • Verticom H-16, -16B, -256, M-256E are believed to be in some way PGC compatible or derivative, with the model number indicating number of colors on screen. They use Motorola 68000 series processors and several custom ASICs.

See also