ATOS - Around The Operating System Das ATOS-Magazin 2/96

# Die Changed-Messages

Die Changed-Messages und ihre Bedeutungen

Inhalt:

        SC_CHANGED (Scrap changed, Klemmbrett)
        PRN_CHANGED (Printer changed, Gerätetreiber)
        FNT_CHANGED (Fonts changed, GDOS-Fonts)

Das ursprüngliche, "echte" Atari-GEM ist in die Jahre gekommen, doch die Zeit ging nicht spurlos vorüber. Fast alle Teile des Betriebssystems lassen sich ersetzen, wenn man nicht sogar ein komplett neues (kompatibles) Betriebssystem einsetzt. Dem Programmierer werden viele neue Möglichkeiten geboten, und auch die alten Betriebssysteme leisten bei entsprechender Programmierung Erstaunliches. Multitasking, unmodale Dialoge, Vektorfonts etc. sind heutzutage Standard.

Die Problematik

Durch diese Erweiterungen - vor allem durch konsequenten Verzicht auf modale Dialoge - treten jedoch Probleme auf, die man auf den ersten Blick eventuell übersieht. Da der Benutzer nun die Möglichkeit hat, das zu machen und einzustellen, was ihm gerade in den Sinn kommt, kann es leicht zu Inkonsistenzen der dem Benutzer präsentierten Daten kommen. Im CPX kann z.B. ein ganz anderer Drucker eingestellt sein, als ihn eine Applikation beim Start vorgefunden hat, der Benutzer kann zur Laufzeit neue Fonts angemeldet haben etc.

Die Lösung

Für die wichtigsten Fälle gibt es mittlerweile GEM-Messages, die es dem Programmierer ermöglichen, solche Inkonsistenzen zu vermeiden, indem die Applikationen von Änderungen am System unterrichtet werden. Man kann sich im Moment zwar noch nicht hunderprozentig darauf verlassen, daß Änderungen gemeldet werden - schließlich sind die folgenden Messages erst recht spät definiert worden - aber sie finden in modernen Applikationen zunehmend Verwendung und werden von ebensolchen Betriebssystemen und Erweiterungen unterstützt.

> Wichtig: Wer sich mit Bezeichnungen wie Message, appl_write(), evnt_multi() etc. nicht auskennt, sollte sich erst einmal in anderen Quellen schlau lesen (Profibuch, Atari Compendium, TOS Hypertext). Diese Grundlagen werden in diesem Artikel nicht erklärt, sondern vorausgesetzt.

Hier geht es weiter.