GEM (Graphics Environment Manager) is a part of the operating system that represents the (graphical) interface between the computer and the user. GEM was developed by the firm Digital Research in 1984 for PCs with Intel processors. The system became well-known, however, mainly when the Atari ST was marketed, offering a powerful and well- priced alternative to the (at the time) expensive PC and Macintosh machines.
In the course of time, GEM was adapted to various operating systems and hardware platforms, including:
GEM may be divided into two sub-areas:
The AES takes charge of organising the user environment, whereas the VDI looks after a uniform graphical rendition of the user interface. During development of GEM programs it is imperative to keep to the valid style guidelines and never attempt to force on the user one's own interface 'surface' that doesn't keep to any standards.
For the GEM version number one normally uses the ID returned in the global field by the appl_init call. The VDI, on the other hand, has actually no version number of its own, the more so as the behaviour of the individual VDI-functions is determined principally by the device drivers used which are, after all, replacable.
One can differentiate roughly between the following GEM-versions:
GEM 1.x: This first AES version (1.x) had, not accidently, very great similarities with the operating system of the Apple Macintosh. This manifested itself not only in the design of the window elements, but also in many features of the desktop and other application programs. At the time, GEM was exhibited mostly in connection with test versions of GEM-Draw, GEM-Paint and GEM-Write, which corresponded in many details with the known Macintosh prototypes MacDraw, MacPaint and MacWrite.
This is also the version that was finally adopted by Atari and delivered in the ST; all newer versions of Atari-GEM are also based on this version. This is because the Atari company then acquired all the rights for the existing version, and itself continued to develop it. This also explains the ever-yawning differences between PC-GEM and Atari-GEM. The greatest defect of the Atari version was surely the absence of the Graphics Device Operating Systems (GDOS); this contains device-independent graphical functions, which were implemented on the Atari only for the screen, and so had to be post- loaded separately for printers, plotters, cameras etc. As a result (particularly in the early days of the Atari), each program used their own drivers and formats, so that data exchange between applications became almost impossible.
GEM 2.x: Due to a legal dispute between Apple and Digital Research (which mainly concerned the look of application programs and the desktop), the PC-version of the GEM had to be altered.
The settlement, which did not affect Atari's GEM-version, looked like this:
However there were not just restrictions, but also improvements. The most important example one should mention is that accessories could install their own menu bar.
This version received the version number 2.0 and was supplied from 1987 onwards; only a little later it was ported by the Dutch software house ABC together with GEM-Draw, GEM-Paint, GEM-Graph and of course the GEM desktop to the Atari. However this version never attained much importance, unfortunately, and is today no longer available.
PC-GEM 3.x: This version contained some minor improvements. Thus the menu behaviour can be switched from drop-down to pull-down, for instance.
From GEM/3 version 3.11 on further VDI-functions exist, which are concerned with Bezier functions and Postscript printers. The program ARTLINE makes use of these new functions with its vector fonts.
Due to the dominance of MS-Windows this version has practically vanished from the PC market.
GEM Desktop 3.13 : The last standard retail version shipped. Part of the GEM PTK/SDK 3.13 which finally was rewritten to support ANSI C compilers.
GEM/4: Only made it to the market as runtime support for Artline/2, PresTeam/2, Publish it/3 etc. The VDI will use EMS, if available.
The GEM/3 desktop will not run properly, and a com shell provided to launch gem/4 apps from the GEM/3 desktop may crash after repeated use.
GEM/5: Only made it to the market as runtime support for Timeworks Publisher 2.1. It had scalable font support using XMS memory, and adds 3D look and feel to AES objects.
Both GEM/4 and GEM/5 added new VDI and AES calls but their bindings are unknown. This proprietary AES 4.0 has support for a new MU_HELP message and some calls take an additional parameter for context-sensitive help. What these features really do is not known.
GEM/XM: Probably the model for DRI's X/GEM for FlexOS (a 32bit protected mode multitasking system). GEM/XM planned to bring support for multitasking under DOS but remained unfinished. Latest release is FreeGEM/XM 3.0beta5-je1.
ViewMAX: ViewMAX/1 (DR-DOS 5.0) is a 'crippled' GEM/4 kernel and can only be used as a shell to call GEM Applications. Although designed for DR DOS, it will run under MS-DOS 3.x and later (minus passwords). To use it with GEM apps you must have a GEM/3 installation as well as a ViewMAX installation. This version was written in Lattice C 3.x
ViewMAX/2 (DR-DOS 6.0) was an improved version of the above, but with the same kernel limitations as the above. This version was rewritten in Turbo C2.0 and and allows configuration via *.ini file.
ViewMAX/3 (DR-DOS 7.0) was never released but beta code is available.
X/GEM: This GEM version was developed by Digital Research on a multi-user multitasking operating system (FlexOS), and permits the simultaneous handling of several applications in the foreground.
Atari-GEM 1.4: Major changes were made by Atari only in GEM 1.4 of TOS 1.04; best known feature is the greatly improved file selector.
Atari-GEM 3.x: Not yet written.
Atari-GEM 4.x: Not yet written.
See Also: GEM Style guidelines