X/GEM
| Company type | Software |
|---|---|
| Industry | Computer software |
| Founded | 1985 |
| Founder | Digital Research |
| Defunct | 1988 |
| Products | Operating environment / graphical user interface |
GEM (Graphics Environment Manager) was an operating environment introduced by Digital Research in 1985 but has since been discontinued. It gained recognition primarily as the built-in graphical user interface for the Atari ST line, featuring a WIMP style desktop interface. GEM was also accessible on IBM PC compatible machines and came pre-installed on certain Amstrad models. Additionally, it operated on the BBC Master equipped with an Intel 80186 co-processor and formed the foundation for commercial MS-DOS applications such as Ventura Publisher. Despite being adapted for various platforms without native graphical interfaces, GEM did not achieve broad market penetration. Its last commercial release occurred in 1988.
Subsequently, Digital Research created X/GEM tailored for their FlexOS real-time OS, modifying it for use with the OS/2 Presentation Manager and preparing a version compatible with the X Window System.
GSX
Towards the end of 1984, GEM was developed from GSX (Graphics System Extension), a graphics library initiated in 1982 under the direction of Don Heiskell. Significant contributions to its development came from Lee Jay Lorenzen, formerly associated with Xerox PARC. GSX implemented the GKS standard and aimed to allow Digital Research to produce graphics applications compatible across multiple operating systems (CP/M-80, Concurrent CP/M, CP/M-86, and MS-DOS) despite diverse hardware environments.
GSX consisted of two primary parts: GDOS (Graphics Device Operating System), which provided standardized drawing functions, and GIOS (Graphics Input/Output System), responsible for managing hardware-level output. This design paralleled CP/M's architecture dividing machine-independent BDOS from machine-specific BIOS components. While GDOS handled GKS drawing operations, GIOS interfaced directly with hardware to deliver graphical output.
Recognized 8-bit device drivers
- DDMODE0 for Amstrad CPC screen mode 0
- DDMODE1 supporting Amstrad CPC screen mode 1
- DDMODE2 catering to Amstrad CPC screen mode 2
- DDSCREEN designed for Amstrad PCW display
- DDBBC0 targeting BBC Micro screen mode 0
- DDBBC1 for BBC Micro screen mode 1
- DDGDC and DDNCRDMV supporting the NEC μPD7220
- DDVRET compatible with VT100 and Retro-Graphics GEN.II (4027/4010)
- DDTS803 for the TeleVideo display
- DDHP26XX supporting HP 2648 and 2627 terminals
- DDQX10 designed for the QX-10 screen
- DDFXLR8 Epson low-resolution, 8-bit printers
- DDFXHR8 Epson high-resolution, 8-bit printers
- DDFXLR7 Epson and similar printer models
- DDCITOLR for C. Itoh 8510A low-resolution devices
- DDCITOH supporting C. Itoh 8510A devices
- DD-DMP1 for Amstrad DMP1 printer (Seikosha GP500M-2)
- DDSHINWA drivers for printers utilizing Shinwa Industries mechanisms
- DDHP7470 and DD7470 compatible with Hewlett-Packard HP 7470 pen plotters, using HP-GL/2
- DD7220 supporting HP 7220 plotters with HP-GL
- DDGEN2 Retro-Graphics GEN.II (Ratfor source)
- DDHI3M and DDHI7M designed for Houston Instrument HiPlot DMP devices
- DDMX80 supporting Epson MX-80 plus Graftrax Plus
- DDESP Electric Studio Light Pen driver (Amstrad PCW)
- DDOKI84 designed for Oki Data Microline printers
- DDMF handling GEM metafiles
- DDPS supporting PostScript metafiles
Recognized 16-bit device drivers
- DDLA100 and DDLA50 compatible with DEC
- DDNECAPC designed for NEC APC
- NCRPC4 supporting NCR DecisionMate V systems
- IBMBLMP2 and IBMBLMP3 for IBM CGA monochrome modes
- IBMBLCP2 and IBMBLCP3 targeting IBM CGA color modes
- IBMCHMP6; IBMEHFP6, IBMEHMP6, IBMELFP6 drivers for IBM Enhanced Graphics Adapter
- HERMONP2, IBMHERP3, HERMONP6 supporting the Hercules Graphics Card (720×348 resolution)
- UM85C408AF driver for UMC VGA
- DDIDSM compatible with IDS Monochrome displays
- DDANADXM designed for Anadex DP-9501 and DP-9001A devices
- DDCITOLR supporting low-resolution C. Itoh 8510A devices
- DDCNTXM drivers for various Centronics printers (models 351–353)
- DDDS180 compatible with Datasouth hardware
- DDOKI84 driver for Oki Data Microline printers
- DDPMVP supporting Printronix MVP printers
- DD3EPSNL and DD3EPSNH designed for IBM/Epson FX-80 low- and high-resolution printers
- DD75XHM1 driver for the Regnecentralen RC759 Piccoline
- DDGSXM and METAFIL6 handling metafile formats
- EPSMONH6 monitor driver
- IBMHP743 supporting HP 7470A/7475A plotters
- PALETTE interface driver for Polaroid cameras
The DOS variant of GSX allows loading device drivers formatted as CP/M-86 CMD files, enabling cross-functionality of drivers between CP/M-86 and DOS environments.
Intel Variants
The 16-bit GSX version 1.3 developed into a comprehensive GUI system called GEM, which was built upon the foundational GSX technology. Originally referred to as Crystal—a subtle reference to IBM's Glass—the project was eventually renamed GEM.
Within GEM, GSX transformed into GEM VDI (Virtual Device Interface), responsible for fundamental graphics rendering and drawing operations. VDI enhanced functionality by supporting multiple fonts and raster graphics alongside vector-oriented GKS commands, while also introducing multiple viewports necessary for windowed environments.
A complementary component, GEM AES (Application Environment Services), was introduced to handle window management and user interface controls. Together with VDI, these modules constituted the GEM Desktop, delivering a fully integrated graphical user interface. The complete 8086-based system was unveiled at COMDEX in November 1984, following an earlier showcase on the 80286-powered Acorn Business Computer in September of that year. The official launch of GEM/1 occurred on 28 February 1985.
GEM/1
The initial release, GEM Desktop 1.0, appeared on 28 February 1985.[1] Shortly after, GEM Desktop 1.1 was introduced on 10 April 1985, incorporating support for CGA and EGA video modes.[2][3] A specialized edition for Apricot Computers F-Series systems, enabling 640×200 resolution with up to eight colors, was issued as GEM Desktop 1.2.[4]
Digital Research positioned GEM alongside Concurrent DOS 4.1 as an alternative to IBM TopView.[5]
Initially, DRI restricted GEM for DOS to run exclusively on IBM hardware, deliberately excluding PC compatibles such as Compaq machines to enforce licensing fees from clone manufacturers. This limitation generated considerable discontent among developers; at a DRI seminar in February 1985, more than half the participants identified this restriction as a critical issue. The company rescinded this limitation later that same month.[6] Software supporting GEM included Lifetree Software's GEM Write.[7]
Apple Computer initiated legal action against DRI over GEM/1's "look and feel," which bore strong similarities to the interfaces of the Macintosh and earlier Lisa systems. This lawsuit compelled Digital Research to modify significant elements of GEM.[8][9][10][11][12] (Refer also to Apple v. Digital Research.) Subsequently, Apple pursued comparable litigation against other companies including Microsoft and HP.
In addition to printer drivers, GEM supported unique peripherals such as the Polaroid Palette.[13]
GEM/2
On 24 March 1986, DRI launched GEM Desktop 2.0, designed with legal considerations in mind, which added VGA compatibility by 1987.[14] This version limited the desktop environment to two fixed windows by default (though applications could override this), replaced the trash can icon with a different symbol, and eliminated window animation effects. Apart from these modifications, it remained largely similar to GEM/1 but incorporated various bug fixes and visual refinements.
By 1988, industry analyst Stewart Alsop II observed that GEM was one among several graphical user interfaces that had been supplanted by offerings from Apple, IBM/Microsoft, and others.[15]
GEM XM
GEM XM, introduced alongside "GEM Desktop 3.0" in 1986/1987 for DOS (including DOS Plus), represented an advancement of GEM/2 by supporting task-switching and allowing up to ten GEM and DOS applications to run concurrently. This was achieved by swapping to expanded memory (XM) through EMS/EEMS or disk-based storage (such as RAM disks), while also enabling access to extended memory. Users could transfer data between programs via a clipboard equipped with filter capabilities, a feature later incorporated into TaskMAX on DR DOS 6.0. Digital Research planned to offer GEM XM both as an add-on for GEM Draw Plus customers and through OEM partnerships.
The GEM XM source code has since been released under the GNU General Public License, making it freely accessible.
GEM/3
The last commercially available version, GEM/3 Desktop, was launched on November 3, 1988, delivering enhanced performance and bundling several fundamental applications. After GEM/3, commercial distribution ceased; however, its source code was subsequently shared with select DRI clients.
In contrast to GEM/2, which supported both GSX and GEM APIs, GEM/3 discontinued support for the GSX API entirely.
GEM/4 for CCP Artline
Released in 1990, GEM/4 introduced functionality for handling Bézier curves—an uncommon feature outside of the PostScript environment—specifically designed for Artline 2, a drawing application developed by German company CCP Development GmbH. This release also overhauled font management, resulting in compatibility issues with software such as Timeworks Publisher. Notably, Artline 1 remained compatible with GEM version 3.1.
GEM/5 for GST Timeworks Publisher
GEM/5, created by GST Software Products for the Timeworks Publisher 2.1 package, introduced a refreshed user interface featuring three-dimensional buttons and dynamic font scaling. Built upon GEM 3.13, it retained all standard tools from GEM 3.1 and integrated the Bézier curve support first seen in GEM/4.
ViewMAX for DR DOS
In 1990, the GEM Desktop environment was separated into ViewMAX, a file management shell designed for DR DOS. Unlike its predecessor, ViewMAX did not support running other GEM applications, which resulted in multiple programs each containing their own statically linked GEM subsystem—a situation uncommon due to the scarcity of native GEM software. The follow-up version, ViewMAX 2, appeared in 1991. Development of GEM ceased after Digital Research was acquired by Novell in June 1991.
X/GEM
Digital Research also pursued multitasking variants of GEM, beginning with X/GEM, which was based on GEM/1 and required multitasking CP/M-based operating systems. They further developed X/GEM versions tailored for their real-time OS FlexOS, with additional adaptations made for the OS/2 Presentation Manager and the nascent X Window System.
Ventura Publisher
Following the release of GEM/1, Lee Lorenzen departed Digital Research to co-found Ventura Software alongside Don Heiskell and John Meyer. This team developed Ventura Publisher, a prominent desktop publishing application later marketed by both Xerox and Corel.
Atari versions
Atari initiated development of the 68000-based version of GEM in 1984, originally intending to deploy it on CP/M-68K. However, due to problematic CP/M-68K ports, Atari instead adopted Digital Research's DOS-like GEMDOS operating system, porting it as TOS in 1985. Atari assumed primary responsibility for ongoing development and obtained full rights to continue independently without reverse licensing obligations to DRI. This arrangement helped Atari avoid legal issues similar to those involving Apple and DRI while preserving a Macintosh-style user interface.
Between 1985 and 1992, TOS evolved alongside each new ST model generation, incorporating color capabilities and higher screen resolutions while maintaining core support for GKS graphics standards. In 1992, Atari introduced TOS 4 (known as MultiTOS) alongside the Falcon030 computer, enabling true multitasking within the GEM environment when used together with the MiNT operating system extension.
Ongoing Development
Following Caldera's acquisition of the remaining Digital Research properties from Novell on July 23, 1996, the initial objective was to rejuvenate GEM and ViewMAX technologies, positioning them as a lightweight graphical interface for OpenDOS tailored to mobile devices under the name Caldera View. Nonetheless, Caldera UK redirected its efforts toward projects like DR-WebSpyder and GROW (Graphical ROMable Object Windows). In April 1999, Caldera Thin Clients—later known as Lineo—made the GEM and GEM XM source code available under the GNU GPL-2.0-only license. Development of GEM persists through community-driven initiatives such as FreeGEM and OpenGEM.
On the Atari ST platform, the original Digital Research source code was adapted to the open-source TOS alternative EmuTOS. Additionally, modern AES implementations including XaAES and MyAES provide fully re-entrant, multitasking capabilities by leveraging FreeMiNT extensions.
Overview
The GEM environment consists of three primary elements:
- GEM VDI (Virtual Device Interface)
- GEM AES (Application Environment Services)
- GEM Desktop (file management utility)
At the heart of GEM lies VDI, the graphics subsystem responsible for executing fundamental vector drawing operations. It functions independently of resolution and hardware specifics, managing environmental parameters such as color and line width. Commands are routed through GDOS, which directs them to suitable device drivers for display or printing purposes. This architecture streamlines printing processes and minimizes programming complexity by loading drivers and fonts during system initialization.
In contrast to Macintosh’s QuickDraw—which embeds device context within applications and thus complicates multitasking—GEM VDI maintains context within device drivers themselves. GDOS generates virtual devices for each context (for example, individual windows), thereby enhancing multitasking support.
AES governs the windowing system, user interface components, and overall graphical style. To optimize performance, many interface elements utilize character-based graphics, resulting in a more functional and less polished aesthetic than that seen on Macintosh systems. While AES invokes VDI for rendering tasks, applications typically handle AES and VDI functions separately: AES is used for window management, whereas VDI handles drawing operations.
The Desktop component operates as a file manager and program launcher based on AES, running atop DOS variants such as MS-DOS, DOS Plus, or DR DOS on PCs, or GEMDOS/Atari TOS on Atari machines. Unlike the more streamlined Macintosh desktop, GEM’s interface exposes technical details like path names and wildcard characters, catering to a more technically inclined user base. Despite this complexity, GEM introduced features such as proportional sliders that offered usability benefits.
On PCs, native GEM applications carry the .APP file extension; desktop accessories use .ACC. Numerous accessories and simple programs function seamlessly within ViewMAX without requiring modifications.
See also
- Atari TOS
- EmuTOS
- FreeGEM
- OpenGEM
- GEM character set
- Atari ST character set
- Resource construction set (RCS)
- Pantone Color Computer Graphics
Further reading
- Apricot Portable - Technical Reference Manual, Section 3: Software, ACT (International) Limited, 1984 (228 pages) [1]
- GSX Graphics Extension - Programmer's Guide, 2nd edition, Digital Research Inc., September 1983 [2]
External links
- GEM – information on history, documentation, and links to open-source GEM initiatives
- Afros – distribution of Atari OS components (including EmuTOS), designed for ARAnyM
- Aranym – open-source emulator and virtual machine enabling Atari GEM applications to run
- GEM: THE PROJECT
- Creating of TOS (part 1) Landon Dyer, founding member of "The Monterey Group"
- Creating of TOS (part 2) Landon Dyer, founding member of "The Monterey Group"
- GEM demo 1985 – a demonstration centered on the MAC
- Intel GEM main page maintained by John C. Elliott
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedANALOG_TCS_1 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedLineback_GEM11 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedSeasip_GEM11 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedSeasip_Apricot - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedCW_1985_CDOS - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedMarkoff_1985 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedKisor_1985 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedNYT_1985_GEM - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedWatt_1985_Apple - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedWatt_1986_Reorg - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedGUI_History - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedDilger_2007 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedDRI_1984_MicroNotes2 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedLineback_GEM20 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedAlsop_1988