Das GEM (Graphics Environment Manager) ist der Teil des Betriebssystems, der die (grafische) Schnittstelle zum Benutzer realisiert. GEM wurde 1984 von der Firma Digital Research für PC's mit Intel Prozessoren entwickelt. Bekannt wurde dieses System jedoch vor allem durch die Markteinführung des Atari-ST, der eine leistungsfähige und preiswerte Alternative zu den (damals) teuren PC's und Macintosh Rechnern bot.
GEM wurde im Laufe der Zeit auf unterschiedliche Betriebssysteme bzw. Hardwareplattformen angepaßt, u.a:
GEM läßt sich in zwei Teilbereiche untergliedern:
Das AES übernimmt dabei die Organisation der Benutzerumgebung, wohingegen das VDI für eine einheitliche grafische Gestaltung der Benutzeroberfläche sorgt. Bei der Entwicklung von GEM-Programmen sollte man sich unbedingt an die geltenden Style-Guidelines halten, und keinesfalls versuchen, dem Benutzer eine eigene Oberfläche aufzuzwingen, die sich an keine Standards hält.
Als GEM-Versionsnummer wird normalerweise die bei appl_init im Globalfeld zurückgelieferte Kennung benutzt. Das VDI hingegen hat eigentlich keine eigene Versionsnummer, zumal das Verhalten der einzelnen VDI-Funktionen hauptsächlich von den benutzten Gerätetreibern bestimmt wird, die sich ja austauschen lassen.
Man kann grob zwischen den folgenden GEM-Versionen unterscheiden:
GEM 1.x: Diese erste AES-Version (1.x) hatte nicht von ungefähr sehr auffällige Ähnlichkeiten mit dem Betriebssystem des Apple Macintosh. Das äußerte sich nicht nur im Design der Fensterelemente, sondern auch in vielen Eigenschaften des Desktops und anderer Anwendungsprogramme. Damals wurde GEM meist im Zusammenhang mit Testversionen von GEM-Draw, GEM-Paint und GEM-Write gezeigt, die in vielen Details den bekannten Macintosh-Vorbildern MacDraw, MacPaint und MacWrite entsprachen.
Dies ist auch die Version, die schließlich von Atari übernommen und im ST ausgeliefert wurde; auf dieser Fassung beruhen auch alle neueren Versionen des Atari-GEM. Die Firma Atari hat nämlich damals alle Rechte an der bestehenden Version erworben, und die Entwicklung selbst fortgeführt. Damit lassen sich auch die immer weiter klaffenden Unterschiede zwischen PC-GEM und Atari-GEM erklären. Grösstes Manko der Atari-Version war sicherlich das Fehlen des Graphics Device Operating Systems (GDOS); dieses beinhaltet geräteunabhängige Grafikfunktionen, die auf dem Atari nur für den Bildschirm implementiert wurden, und für Drucker, Plotter, Kameras etc. nachgeladen werden müssen. So kam es, daß (vor allem in der Anfangszeit des Atari) jedes Programm eigene Treiber und Formate benutzte, und ein Datenaustausch zwischen den Applikationen fast unmöglich wurde.
GEM 2.x: Aufgrund einer juristischen Auseinandersetzung zwischen Apple und Digital Research (bei der es in erster Linie um das Outfit der Anwendungsprogramme und des Desktops ging), mußte die PC-Version des GEM verändert werden.
Die Einigung, die Ataris GEM-Version nicht betraf, sah folgendermaßen aus:
Doch es gab nicht nur Einschränkungen, sondern auch Verbesserungen. Als wichtigstes Beispiel sei erwähnt, daß Accessories eine eigene Menüleiste anmelden durften.
Diese Version erhielt die Versionsnummer 2.0 und wurde ab 1987 ausgeliefert; nur wenig später wurde sie von dem niederländischen Softwarehaus ABC zusammen mit GEM-Draw, GEM-Paint, GEM-Graph und natürlich GEM-Desktop auf den Atari portiert. Diese Version erlangte jedoch leider nie eine große Bedeutung, und ist heute nicht mehr erhältlich.
PC-GEM 3.x: In dieser Version sind nur noch geringfügige Verbesserungen vorgenommen worden. So läßt sich z.B. das Menüverhalten von Drop-Down auf Pull-Down umschalten.
Ab GEM/3 Version 3.11 existieren weitere VDI-Funktionen, die sich mit Bezier-Funktionen und Postscript-Drucker beschäftigen. Das Programm ARTLINE macht mit seinen Vektorfonts Gebrauch von diesen neuen Funktionen.
Aufgrund der Dominanz von MS-Windows ist diese Version praktisch vom PC-Markt verschwunden.
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, 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: Diese GEM-Version wurde von Digital Research auf einem Multiuser Multitasking Betriebssystem (FlexOS) entwickelt, und erlaubt die gleichzeitige Bearbeitung von mehreren Applikationen im Vordergrund.
Atari-GEM 1.4: Wichtige Änderungen hat Atari erst im GEM 1.4 des TOS 1.04 vorgenommen; bekannteste Auswirkung ist der stark verbesserte Fileselektor.
Atari-GEM 3.x: noch nicht geschrieben.
Atari-GEM 4.x: noch nicht geschrieben.
Querverweis: GEM Style-Guidelines