Jump to content

GEM (desktop environment)

From Alfawiki
Digital Research
IndustrySoftware development
Founded1970
FounderGary Kildall
Headquarters
United States
ProductsGEM (Graphics Environment Manager), GSX, GEM Desktop, ViewMAX

GEM (Graphics Environment Manager) was an operating environment introduced by Digital Research in 1985, now discontinued. It gained prominence 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 was bundled with certain Amstrad computers. Moreover, it operated on the BBC Master when paired with an Intel 80186 co-processor. The environment formed the basis for commercial MS-DOS software such as Ventura Publisher. Despite being adapted to various platforms without native GUIs, GEM did not secure widespread market penetration. The last commercial edition released was GEM/3 version 3.11 in 1988.

In January 2025, Digital Research created X/GEM tailored for their FlexOS real-time OS, integrating modifications for the OS/2 Presentation Manager and preparing compatibility with the X Window System.

GSX

Towards the end of 1984, GEM evolved from GSX (Graphics System Extension), a versatile graphics library developed by Digital Research beginning around 1982 under the direction of Don Heiskell.[1] Significant contributions to its development came from Lee Jay Lorenzen, formerly associated with Xerox PARC. GSX implemented the late-1970s graphics standard known as the GKS, aiming to streamline graphics programming across multiple 8-bit and 16-bit systems such as CP/M-80, Concurrent CP/M, CP/M-86, and MS-DOS (NEC APC-III), which otherwise required extensive adaptation due to hardware differences.

The GSX architecture consisted of two main parts: GDOS (Graphics Device Operating System), which provided standardized drawing functions, and GIOS (Graphics Input/Output System), responsible for managing hardware output operations. This structure paralleled CP/M’s design that separated the machine-independent BDOS from the machine-specific BIOS. GDOS executed GKS drawing commands while GIOS directly communicated with hardware to render output.

Documented 8-bit device drivers

  • DDMODE0 Amstrad CPC display mode 0
  • DDMODE1 Amstrad CPC display mode 1
  • DDMODE2 Amstrad CPC display mode 2
  • DDSCREEN Amstrad PCW display
  • DDBBC0 BBC Micro display mode 0
  • DDBBC1 BBC Micro display mode 1
  • DDGDC, DDNCRDMV NEC μPD7220 graphics chip
  • DDVRET VT100 terminal plus Retro-Graphics GEN.II (4027/4010)
  • DDTS803 TeleVideo display
  • DDHP26XX HP 2648 and 2627 terminals
  • DDQX10 QX-10 computer display
  • DDFXLR8 Epson low-resolution, 8-bit printers
  • DDFXHR8 Epson high-resolution, 8-bit printers
  • DDFXLR7 Epson and compatible printers
  • DDCITOLR C. Itoh 8510A low-resolution printers
  • DDCITOH C. Itoh 8510A printers
  • DD-DMP1 Amstrad DMP1 printer (also known as Seikosha GP500M-2)
  • DDSHINWA Printers using Shinwa Industries mechanisms
  • DDHP7470, DD7470 Hewlett-Packard HP 7470 and compatible pen plotters supporting HP-GL/2
  • DD7220 Hewlett-Packard HP 7220 plotters supporting HP-GL
  • DDGEN2 Retro-Graphics GEN.II (Ratfor source code available in Programmer's Guide)
  • DDHI3M, DDHI7M Houston Instrument HiPlot DMP devices
  • DDMX80 Epson MX-80 printer plus Graftrax Plus support
  • DDESP Electric Studio Light Pen (for Amstrad PCW)
  • DDOKI84 Oki Data Microline printers
  • DDMF GEM metafile format support
  • DDPS PostScript metafile format support

Recognized 16-bit Device Drivers

  • DDLA100, DDLA50 from DEC
  • DDNECAPC for NEC APC
  • NCRPC4 utilized by NCR DecisionMate V
  • IBMBLMP2, IBMBLMP3 for IBM CGA monochrome mode
  • IBMBLCP2, IBMBLCP3 supporting IBM CGA color mode
  • IBMCHMP6
  • IBMEHFP6, IBMEHMP6, IBMELFP6 for IBM Enhanced Graphics Adapter
  • HERMONP2, IBMHERP3, HERMONP6 compatible with Hercules Graphics Card (720×348 resolution)
  • UM85C408AF from UMC VGA
  • DDIDSM for IDS Monochrome displays
  • DDANADXM supporting Anadex DP-9501 and DP-9001A models
  • DDCITOLR designed for C. Itoh 8510A low-resolution devices
  • DDCNTXM compatible with Centronics models 351, 352, and 353
  • DDDS180 for Datasouth hardware
  • DDOKI84 targeting Oki Data Microline printers
  • DDPMVP used by Printronix MVP series
  • DD3EPSNL for IBM/Epson FX-80 low-resolution printers (refer to DDFXLR7 and DDFXLR8)
  • DD3EPSNH for IBM/Epson FX-80 high-resolution printers (see DDFXHR8)
  • DD75XHM1 supporting Regnecentralen RC759 Piccoline devices
  • DDGSXM Metafile driver
  • EPSMONH6
  • IBMHP743 compatible with Hewlett-Packard 7470A/7475A plotters (refer to DDHP7470 and DD7470)
  • METAFIL6 Metafile driver
  • PALETTE designed for Polaroid camera systems

The DOS iteration of GSX can load drivers in the CP/M-86 CMD format, allowing the same driver binaries to function under both CP/M-86 and DOS environments.

Intel Platform Versions

The 16-bit GSX version 1.3 was integrated into GEM, a graphical user interface built upon GSX technology. Originally dubbed Crystal as a reference to IBM’s Glass initiative, the name was eventually changed to GEM.

Within GEM, GSX was renamed GEM VDI (Virtual Device Interface), which managed fundamental graphics rendering and drawing operations. VDI enhanced functionality by incorporating support for various fonts and adding raster graphics commands alongside the original vector-based GKS commands. It also introduced multiple viewport handling essential for window management systems.

An additional component, GEM AES (Application Environment Services), was responsible for windowing and user interface controls. Together with GEM Desktop, these modules provided a comprehensive GUI solution. The full 8086-based system was first showcased at COMDEX in November 1984 and officially released as GEM/1 on February 28, 1985.

GEM/1 Versions

GEM Desktop 1.0 debuted on February 28, 1985.[2] Shortly after, GEM Desktop 1.1 was released on April 10, 1985, introducing compatibility with CGA and EGA hardware.[3][4] Additionally, a variant tailored for the Apricot Computers F-Series supporting resolutions of 640×200 with up to eight colors was issued as GEM Desktop 1.2.[5]

Digital Research marketed GEM alongside Concurrent DOS 4.1 as an alternative to IBM’s TopView.[6]

Initially, Digital Research restricted GEM on DOS to operate solely on IBM machines while excluding other PC compatibles, such as Compaq clones, aiming to collect licensing revenue from clone manufacturers. This limitation drew significant criticism from developers; at a seminar held in February 1985, more than half of the participants identified GEM’s incompatibility with Compaq systems as a major drawback.[7] This restriction was removed later that same month.[7] Among applications utilizing GEM was Lifetree Software’s GEM Write.[8]

Apple Inc. initiated legal action against Digital Research concerning GEM/1’s "look and feel," which bore strong similarities to the interfaces of the Macintosh and earlier Lisa, leading to an extended court battle that compelled Digital Research to modify key elements of the system.[9][10][11][12][13] (See also: Apple v. Digital Research.) Apple subsequently engaged in similar lawsuits against other companies including Microsoft and HP.

Beyond printer support, GEM also included drivers for specialized devices such as the Polaroid Palette.[14]

GEM/2

On 24 March 1986, DRI introduced GEM Desktop 2.0, designed to be more "lawsuit-friendly," and by 1987 it included support for VGA. This iteration restricted the desktop environment to two fixed windows by default, although applications could override this limitation. It also replaced the trash can icon and eliminated window animations. While it brought various bug fixes and visual enhancements, GEM/2 largely retained the look and feel of its predecessor, GEM/1.

By 1988, industry analyst Stewart Alsop II observed that GEM had been mostly overshadowed by GUIs from Apple, IBM/Microsoft, and other competitors.

GEM XM

The enhanced version known as GEM XM or "GEM Desktop 3.0" was released between 1986 and 1987 for DOS platforms, including DOS Plus. It introduced task-switching capabilities, allowing users to run up to ten GEM and DOS applications concurrently. This was achieved through the use of expanded memory via EMS or EEMS, as well as disk-based storage such as RAM disks, enabling access to extended memory. Users could transfer data between programs using a clipboard with filtering options—a feature later incorporated into TaskMAX in DR DOS 6.0. Digital Research planned to offer GEM XM as an optional upgrade for GEM Draw Plus users and through OEM distribution channels.

The source code for GEM XM is currently available under the terms of the GNU General Public License.

GEM/3

The final commercial version, GEM/3 Desktop, was launched on 3 November 1988, delivering faster performance alongside bundled essential applications. After this release, GEM ceased commercial sales; however, its source code was subsequently shared with selected DRI clients.

In contrast to GEM/2, which supported both GSX and GEM APIs, GEM/3 removed support for GSX entirely.

GEM/4 for CCP Artline

Around 1990, GEM/4 was introduced with added support for Bézier curves—a feature rarely found outside of the PostScript environment. This version was specifically tailored for Artline 2 by the German company CCP Development GmbH. It also brought changes to font handling that rendered it incompatible with certain software such as Timeworks Publisher. Meanwhile, Artline 1 continued operating on GEM 3.1.

GEM/5 for GST Timeworks Publisher

Developed by GST Software Products for Timeworks's Publisher 2.1, GEM/5 introduced a modernized interface featuring three-dimensional buttons and dynamic font scaling capabilities. It preserved the standard tools from GEM 3.1 while incorporating Bézier curve support carried over from GEM/4, basing its foundation on GEM version 3.13.

ViewMAX for DR DOS

In 1990, GEM Desktop evolved into ViewMAX, a file management shell designed specifically for DR DOS. Unlike previous versions, ViewMAX was unable to execute other GEM applications directly, resulting in many programs embedding their own statically linked copies of the GEM system—a unique situation given the scarcity of native GEM software at that time. The subsequent release, ViewMAX 2, arrived in 1991.

Following Digital Research's acquisition by Novell in June 1991, further development of GEM was discontinued.

X/GEM

Digital Research also pursued multitasking enhancements for GEM starting with X/GEM, which was built upon GEM/1 and required multitasking CP/M-based operating systems. They developed X/GEM versions for their real-time OS FlexOS, along with adaptations targeting the OS/2 Presentation Manager environment and the emerging X Window System.

Ventura Publisher

Following the launch of GEM/1, Lee Lorenzen departed from DRI due to its narrow concentration on application software. Together with former associates Don Heiskell and John Meyer, he established Ventura Software and developed Ventura Publisher. This desktop publishing program gained significant traction and was subsequently distributed by Xerox and Corel.

Atari adaptations

In September 1984, Atari initiated development of the 68000 iteration of GEM by assigning "The Monterey Group" to collaborate with Digital Research. Initially intended to operate on CP/M-68K (which DRI ported), these early versions proved unstable and required substantial refinement. Digital Research introduced GEMDOS (initially named "Project Jason"), a DOS-like operating system for both 8086 and 68000 CPUs, tailored for platforms such as the Apple Lisa 2/5 and Motorola VME/10.

By January 1985, Atari discontinued efforts with CP/M-68K and instead ported GEMDOS to their ST system as TOS. Given Atari’s leadership in the 68000 development, they retained full ownership rights without reverse licensing obligations to DRI. This legal separation meant that the Apple-DRI litigation did not impact Atari’s GEM versions, enabling them to maintain a user interface reminiscent of Macintosh.

Between 1985 and 1992, Atari issued successive TOS updates alongside new ST hardware models, improving color capabilities and display resolution while preserving stable GKS support. The release of TOS 4 (MultiTOS) in 1992 for the Falcon030 introduced comprehensive multitasking through integration with MiNT.

Ongoing advancements

After Caldera acquired the remaining Digital Research properties from Novell in July 1996, initial intentions focused on revitalizing GEM and ViewMAX as a compact user interface for OpenDOS targeting mobile devices under the Caldera View label. Nevertheless, Caldera UK redirected efforts toward DR-WebSpyder and GROW. In April 1999, Caldera Thin Clients (later known as Lineo) published the GEM and GEM XM source code under the terms of the GNU GPL-2.0-only. GEM development for PCs persists through initiatives such as FreeGEM and OpenGEM.

For the Atari ST platform, original Digital Research source code was adapted to the open-source TOS replacement EmuTOS. New AES implementations like XaAES and MyAES were created independently, providing full re-entrancy along with multitasking capabilities via the FreeMiNT extensions.

Description

The GEM environment consisted of three principal modules:

  1. GEM VDI (Virtual Device Interface)
  2. GEM AES (Application Environment Services)
  3. GEM Desktop (file management and application launcher)

Serving as the fundamental graphics engine, GEM VDI processed low-level vector drawing instructions that were resolution- and coordinate-independent. These commands were handled by GDOS, which directed them to suitable device drivers—whether for displays or printers—thereby simplifying application programming by abstracting device specifics. GDOS also facilitated loading fonts and drivers during startup.

A notable strength of VDI compared to Macintosh's QuickDraw was its device-focused context handling. While Mac applications maintained their drawing states internally—complicating preemptive multitasking—VDI kept state within devices themselves, with GDOS generating virtual devices per context (such as windows), enhancing multitasking support.

The AES component managed windows, user interface elements, and the window manager itself. To optimize performance, many interface widgets employed character graphics, resulting in a minimalist look featuring a single monospaced font. Applications commonly invoked AES to create windows before utilizing VDI for rendering content inside them.

The Desktop functioned as a graphical file manager and launcher operating atop DOS variants (MS-DOS, DOS Plus, DR DOS) on PCs or GEMDOS/TOS on Atari systems. Unlike the polished Macintosh interface, GEM Desktop presented DOS-style features such as path names and wildcard usage, catering more to technically oriented users. Nevertheless, GEM included unique elements like proportional sliders not found in Mac OS.

Native PC GEM programs use the .APP extension for executable files; desktop accessories carry the .ACC extension. Numerous accessories and simple applications run seamlessly under ViewMAX without modification.

See also

References

  1. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named DRI_1984_DD
  2. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named ANALOG_TCS_1
  3. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Lineback_GEM11
  4. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Seasip_GEM11
  5. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Seasip_Apricot
  6. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named CW_1985_CDOS
  7. ↑ 7.0 7.1 Cite error: Invalid <ref> tag; no text was provided for refs named Markoff_1985
  8. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Kisor_1985
  9. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named NYT_1985_GEM
  10. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Watt_1985_Apple
  11. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Watt_1986_Reorg
  12. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named GUI_History
  13. ↑ Daniel Eran Dilger, "Office Wars 3 – How Microsoft Got Its Office Monopoly", RoughlyDrafted Magazine, September 10, 2007, San Francisco, California, USA
  14. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named DRI_1984_MicroNotes2

Cite error: <ref> tag with name "Barney_1987" defined in <references> is not used in prior text.
Cite error: <ref> tag with name "Fitler_1989" defined in <references> is not used in prior text.
Cite error: <ref> tag with name "DRI_GEM_Announce_1984" defined in <references> is not used in prior text.
Cite error: <ref> tag with name "CW_1989" defined in <references> is not used in prior text.
Cite error: <ref> tag with name "Leon_1996_Caldera" defined in <references> is not used in prior text.
Cite error: <ref> tag with name "Caldera_1997_WebSpyder" defined in <references> is not used in prior text.
Cite error: <ref> tag with name "Jemmett_1999" defined in <references> is not used in prior text.
Cite error: <ref> tag with name "Scott_1991" defined in <references> is not used in prior text.

Cite error: <ref> tag with name "BW_1991" defined in <references> is not used in prior text.

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