GEM (Graphical Environment Manager) is a windowing system created by Digital Research, Inc. (DRI) for use with the CP/M operating system on the Intel 8088 and Motorola 68000 microprocessors. Later versions ran over DOS as well.

GEM is known primarily as the graphical user interface (GUI) for the Atari ST series of computers, and was also supplied with a series of IBM PC-compatible computers from Amstrad. It also was available for standard IBM PC, at the time when the 6MHz IBM PC AT was brand new. It was the core for a small number of DOS programs, the most notable being Ventura Publisher. It was ported to a number of other computers that previously lacked graphical interfaces, but never gained popularity on those platforms. DRI also produced FlexGem for their FlexOS real-time operating system.



GEM started life at DRI as a more general purpose graphics library known as GSX (Graphics System eXtension), written by a team led by Lee Jay Lorenzen who had recently left Xerox PARC (birthplace of the GUI). GSX was essentially a DRI-specific implementation of the GKS graphics standard proposed in the late 1970s. GSX was intended to allow DRI to write graphics programs (charting, etc.) for any of the platforms CP/M would run on, a task that would otherwise require considerable effort to port due to the large differences in graphics hardware (and concepts) between the various systems of that era.

GSX consisted of two parts: a selection of routines for common drawing operations, and the device drivers that are responsible for handling the actual output. The former was known as GDOS and the latter as GIOS, a play on the division of CP/M into machine-independent BDOS and machine-specific BIOS. GDOS was a selection of routines that handled the GKS drawing, while GIOS actually used the underlying hardware to produce the output.

Ad blocker interference detected!

Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.