Jump to content

GRAPHICS.CMD

From Alfawiki
Adapted from the English Wikipedia article GRAPHICS.CMD, available under CC BY-SA 4.0Updated 9 August 202515 sources
Digital Research
IndustrySoftware development
Founded1970
FounderGary Kildall
Headquarters
Pacific Grove, California
,
United States
ProductsGEM (Graphics Environment Manager), GSX, FlexOS, ViewMAX

GEM (short for Graphics Environment Manager) was an operating environment introduced by Digital Research in 1985, now discontinued. It gained recognition primarily as the built-in graphical user interface for the Atari ST lineup, featuring a WIMP-style desktop interface. Besides the Atari ST, GEM was made available for IBM PC compatible machines and was bundled with certain Amstrad systems, as well as the BBC Master equipped with an Intel 80186 co-processor. Serving as the foundation for commercial MS-DOS software such as Ventura Publisher, GEM was also adapted to other platforms lacking graphical environments, although it never saw extensive market penetration. The last retail edition was issued in 1988.

Subsequently, Digital Research created X/GEM tailored for their FlexOS real-time OS, modifying it to function with the OS/2 Presentation Manager and preparing it for compatibility with the X Window System.

GSX

Towards the end of 1984, GEM originated from GSX (Graphics System Extension), a graphics library developed by Digital Research starting in 1982 under the direction of Don Heiskell. A major contributor to its development was Lee Jay Lorenzen, formerly associated with Xerox PARC. GSX implemented the Graphical Kernel System (GKS) standard to allow Digital Research to create graphics applications compatible across multiple platforms such as CP/M-80, Concurrent CP/M, CP/M-86, and MS-DOS. This cross-platform strategy addressed the inconsistencies in graphics hardware and paradigms prevalent at that time.

GSX was divided into two parts: GDOS (Graphics Device Operating System), which managed general drawing functions based on GKS, and GIOS (Graphics Input/Output System), which handled output operations specific to each device. This structure paralleled CP/M’s design separating machine-independent BDOS from machine-dependent BIOS layers.

Documented 8-bit device drivers

  • DDMODE0: Screen mode 0 on Amstrad CPC
  • DDMODE1: Screen mode 1 on Amstrad CPC
  • DDMODE2: Screen mode 2 on Amstrad CPC
  • DDSCREEN: Display for Amstrad PCW
  • DDBBC0: Screen mode 0 on BBC Micro
  • DDBBC1: Screen mode 1 on BBC Micro
  • DDGDC, DDNCRDMV: Drivers for NEC μPD7220
  • DDVRET: Support for VT100 and Retro-Graphics GEN.II (4027/4010)
  • DDTS803: Display driver for TeleVideo screens
  • DDHP26XX: Terminals HP 2648 and 2627
  • DDQX10: Screen driver for QX-10
  • DDFXLR8: Epson low-resolution, 8-bit printers
  • DDFXHR8: Epson high-resolution, 8-bit printers
  • DDFXLR7: Epson and Epson-compatible printing devices
  • DDCITOLR: Low-resolution driver for C. Itoh 8510A
  • DDCITOH: Driver for C. Itoh 8510A
  • DD-DMP1: Printer driver for Amstrad DMP1 (Seikosha GP500M-2)
  • DDSHINWA: Printers utilizing Shinwa Industries mechanisms
  • DDHP7470, DD7470: Pen plotters HP 7470 and compatibles by Hewlett-Packard, supporting HP-GL/2
  • DD7220: Hewlett-Packard HP 7220 plotters with HP-GL
  • DDGEN2: Retro-Graphics GEN.II (Ratfor source)
  • DDHI3M, DDHI7M: Drivers for Houston Instrument HiPlot DMP devices
  • DDMX80: Support for Epson MX-80 printers plus Graftrax Plus
  • DDESP: Electric Studio Light Pen driver (Amstrad PCW)
  • DDOKI84: Driver for Oki Data Microline printers
  • DDMF: GEM metafile handler
  • DDPS: PostScript metafile support

Documented 16-bit device drivers

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

The DOS variant of GSX is capable of loading drivers in CP/M-86 CMD format, allowing the same driver executable to function under both CP/M-86 and DOS environments.

Intel-based Editions

The 16-bit GSX version 1.3 served as the foundation for GEM, a comprehensive graphical user interface built atop GSX technology. Originally called Crystal, referencing IBM's Glass initiative, it was eventually renamed GEM.

Within GEM, GSX was rebranded as GEM VDI (Virtual Device Interface), which managed fundamental graphics rendering and drawing operations. VDI enhanced functionality by incorporating support for multiple font types and adding raster graphic commands alongside the original vector-oriented GKS instructions. It also introduced multiple viewport support crucial for windowed environments.

The GEM AES (Application Environment Services) component handled window management and user interface elements. Together with VDI, the GEM Desktop provided a fully integrated GUI experience. The entire system for the 8086 processor was unveiled at COMDEX in November 1984, following an earlier demonstration on the 80286-based Acorn Business Computer in September 1984. GEM/1 was officially launched on 28 February 1985.

GEM/1 Versions

GEM Desktop 1.0 was released on 28 February 1985.[1] Shortly after, GEM Desktop 1.1 arrived on 10 April 1985, introducing compatibility with CGA and EGA display hardware.[2][3] For Apricot Computers F-Series machines, a version supporting 640×200 resolution with up to 8 colors was issued as GEM Desktop 1.2.[4]

Digital Research marketed GEM alongside Concurrent DOS 4.1 as a competitor to IBM's TopView.[5]

Initially, DRI restricted GEM for DOS to run solely on IBM hardware, excluding other PC compatible manufacturers such as Compaq, aiming to secure licensing fees from clone makers. This limitation provoked significant opposition from developers, prompting DRI to lift the restriction within the same month.[6] Among applications supporting GEM was Lifetree Software's GEM Write.[7]

Apple Computer filed a lawsuit against DRI over GEM/1’s user interface "look and feel," which bore strong resemblance to the Macintosh and earlier Lisa designs, resulting in mandated modifications to several features.[8][9][10][11][12] (See also: Apple v. Digital Research.) Apple pursued similar legal action against other companies including Microsoft and HP.

In addition to printer drivers, GEM supported specialized devices such as the Polaroid Palette.[13]

GEM/2

In reaction, DRI launched the "litigation-friendly" GEM Desktop 2.0 on 24 March 1986, incorporating support for VGA by 1987.[14] This version restricted the desktop environment to two fixed windows (although applications could override this limitation), revamped the trash can icon, and eliminated window animations. Despite these adjustments, it preserved much of the functionality from GEM/1, alongside various bug fixes and visual enhancements.

By 1988, industry expert Stewart Alsop II observed that GEM was among several graphical user interfaces effectively overtaken by rivals such as Apple and the IBM/Microsoft alliance.[15]

GEM XM

GEM XM accompanied by "GEM Desktop 3.0," was a refined iteration of GEM/2 released during 1986 and 1987 for DOS platforms (including DOS Plus). It introduced task-switching capabilities, allowing up to ten GEM and DOS applications to operate simultaneously by swapping memory to expanded memory (XM) through EMS/EEMS or disk-based solutions (including RAM disks), with extended memory support as well. Users could transfer data between programs via a clipboard featuring filter functions, a concept later adopted in TaskMAX for DR DOS 6.0. Digital Research intended to market GEM XM as an optional enhancement for GEM Draw Plus users and through OEM partnerships.

The source code for GEM XM is currently distributed under the GNU General Public License.

GEM/3

The final commercial release, GEM/3 Desktop, debuted on 3 November 1988, offering improved performance and bundled with essential applications. After GEM/3, commercial distribution ceased, with the source code made available to select DRI clients.

Unlike GEM/2—which supported both GSX and GEM APIs—GEM/3 discontinued support for the GSX API.

GEM/4 for CCP Artline

Around 1990, GEM/4 was introduced, bringing in support for Bézier curves—a capability rarely found outside the PostScript environment. Created specifically for Artline 2 by the German company CCP Development GmbH, it also enhanced font management but lost compatibility with programs such as Timeworks Publisher. Meanwhile, Artline 1 continued operating on GEM 3.1.

GEM/5 for GST Timeworks Publisher

GEM/5, developed by GST Software Products for Timeworks' Publisher 2.1, featured a refreshed user interface with three-dimensional buttons and dynamic font scaling. Constructed atop GEM 3.13 and incorporating Bézier curve handling from GEM/4, it maintained all standard tools from GEM 3.1.

ViewMAX for DR DOS

In 1990, GEM Desktop was separated into ViewMAX, a file management shell designed for DR DOS. It lacked the ability to run other GEM applications, resulting in multiple programs each containing their own statically linked GEM system; nonetheless, few native GEM applications were available. ViewMAX 2 was released in 1991. Development of GEM halted following DRI's acquisition by Novell in June 1991.

X/GEM

DRI created X/GEM based on GEM/1 to facilitate multitasking, initially targeting CP/M-based multitasking operating systems. Variants were also developed for the FlexOS real-time OS and adapted to work with both the OS/2 Presentation Manager and the emerging X Window System.

Ventura Publisher

Following the launch of GEM/1, Lee Lorenzen departed from DRI due to the company's limited focus on application development. He then partnered with Don Heiskell and John Meyer to establish Ventura Software. Together, they created Ventura Publisher, a prominent desktop publishing software later distributed by Xerox and Corel.

Atari adaptations

In September 1984, Atari initiated efforts to adapt GEM for the Motorola 68000 processor through "The Monterey Group." Their initial intention was to operate GEM on CP/M-68K, but this proved impractical. Consequently, in January 1985, Atari shifted to porting DRI's DOS-like GEMDOS operating system, which they rebranded as TOS. Atari led most of the development for this version and secured full rights without reverse-licensing obligations to DRI. This exemption from the Apple-DRI litigation enabled Atari to implement a user interface more closely resembling that of the Macintosh.

Between 1985 and 1992, TOS progressed in parallel with Atari ST hardware advancements, incorporating improved color capabilities and higher resolutions while preserving essential GKS functionalities. The introduction of TOS 4 (MultiTOS) in 1992 alongside the Falcon030 system brought true multitasking within GEM when paired with MiNT.

Ongoing evolution

After Caldera purchased the remaining Digital Research assets from Novell on 23 July 1996, there were initial intentions to resurrect GEM and ViewMAX technologies as a lightweight graphical interface for OpenDOS, targeting mobile devices under the name Caldera View. However, these plans were eventually dropped by Caldera UK in favor of projects like DR-WebSpyder and GROW. In April 1999, Caldera Thin Clients (later known as Lineo) released the source code for GEM and GEM XM under the terms of the GNU GPL-2.0-only. Development of GEM for personal computers continues through initiatives such as FreeGEM and OpenGEM.

On the Atari ST front, original DRI source code was adapted for use in the open source TOS replacement called EmuTOS. New AES implementations including XaAES and MyAES have been built from the ground up, providing full reentrancy and multitasking capabilities through the integration of the FreeMiNT extensions with TOS.

Description

The GEM environment consisted of three primary modules:

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

The VDI component functioned as the fundamental graphics subsystem, processing low-level vector-based drawing commands via a straightforward interface. It managed graphical context elements such as color settings, line widths, and output devices. These commands were dispatched by GDOS to suitable drivers responsible for rendering on displays or printers, facilitating device-independent graphics programming.

A significant benefit of VDI compared to Macintosh's QuickDraw was its capacity to handle multiple devices and contexts efficiently. Unlike QuickDraw—which stored graphical context within application memory complicating preemptive multitasking—VDI maintained context inside virtual devices managed by GDOS. This design allowed each window to possess its own device context.

The AES module provided window management, user interface styling, and GUI controls. To optimize performance, many widgets employed character-based graphics resulting in a simple visual style featuring a single monospaced font. Applications generally utilized AES for window creation while relying on VDI for rendering graphics inside those windows.

Desktop served as a file manager operating on top of various DOS derivatives (MS-DOS, DOS Plus, DR DOS, or GEMDOS/TOS). It delivered a desktop interface reminiscent of Macintosh but presented more technical details such as path names and wildcard characters. Although less refined than Mac OS, GEM offered advantages including proportional sliders and seamless integration with DOS environments.

Native PC applications built for GEM carry the .APP extension for executable files, whereas desktop accessories use .ACC. Numerous accessories and lightweight applications run unaltered under ViewMAX.

See also

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

  1. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named ANALOG_TCS_1
  2. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Lineback_GEM11
  3. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Seasip_GEM11
  4. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Seasip_Apricot
  5. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named CW_1985_CDOS
  6. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Markoff_1985
  7. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Kisor_1985
  8. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named NYT_1985_GEM
  9. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Watt_1985_Apple
  10. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Watt_1986_Reorg
  11. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named GUI_History
  12. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Dilger_2007
  13. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named DRI_1984_MicroNotes2
  14. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Lineback_GEM20
  15. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Alsop_1988