Trapper - in die Falle gegangen

Vorsichtig schlich sich XBIOS(32) durch die Systemvektoren. Entgegen der ersten Planung nahm es nicht den üblichen Weg, sondern einen aufwendigen Umweg. Ein Jäger war in der Gegend. Nicht irgendein Jäger. Für seine Feinde war er der Schrecken aller Systemaufrufe. Freunden und Feinden sagte er nur: "Nennt mich Trapper".

Systemerweiterungen sind so alt wie der ST selbst. Programmierer kamen immer auf die Idee, die Systemaufrufe abzufangen und auf eigene Funktionen umzulenken. Die Anforderungen an den Programmierer sind hoch, denn neben dem Schreiben der eigenen Routine, die möglichst auch soviel leisten sollte wie die alte, muss der entsprechende Systemvektor umgebogen werden. Dazu sind meistens detaillierte Assemblerkenntnisse notwendig. Noch schwieriger wird es, wenn sich die Routine hinter eine Systemfunktion hängen möchte.

Hier setzt Trapper von Manfred Lippert ("Jinnee") ein, das die Einbindung von eigenen Routinen in Systemaufrufe erheblich erleichtert. Ab sofort können eigene Systemroutinen bequem in C programmiert werden, von der Konzeption her wären auch andere Sprachen vorstellbar. Mit Trapper kann sich die Routine in verschiedene Schichten des Betriebssystems (BIOS, XBIOS, GEMDOS, VDI und AES) einklinken. Die Routine kann vor oder nach dem Systemaufruf durchlaufen werden oder diesen sogar komplett ersetzen. Es gibt z.B. ein kleines Programm, das die Rückgabewerte für Getrez() ändert, um ein paar alte ST-Programme zu täuschen.

Wenn sich mehrere Erweiterungen dieser Art in das System hängen, kann der Computer langsamer werden. Setzen die Erweiterungen stattdessen auf Trapper aus, hängt nur noch ein Programm in den Vektoren, wodurch sich der Geschwindigkeitsverlust in Grenzen hält. Auch das Ausklinken von Systemerweiterungen ist über Trapper problemlos möglich.

Voraussetzungen/Installation

Ein weit verbreitetes Vorurteil gegenüber Trapper ist, das es angeblich nur unter MagiC lauffähig ist. Dies stimmt aber nur zum Teil. Trapper selber ist nicht speziell für MagiC programmiert worden, aber einige Erweiterungen, die auf Trapper aufsetzen, benötigen MagiC. Ein Großteil der erhältlichen Erweiterungen ist in den "Mani-Tuuls" zusammengefaßt. Trapper ist ein Auto-Ordner-Programm und sollte in der Bootreihenfolge vor den auf Trapper aufsetzenden Systemerweiterungen stehen. Die Bootreihenfolge kann z.B. im Desktop über "unsortiert" angezeigt werden. Besitzer von MagiC haben es da einfacher: sie müssen einfach nur die "autoexec.bat" editieren. Nicht jede Erweiterung findet im Auto-Ordner ihren Platz. Einige werden auch im Start-Ordner plaziert. Für den reinen Anwender ist es am interessantesten, was es bereits alles für Trapper gibt:

Ratsch

Ratsch! reißt ab: Menüinflation auf dem Desktop

Ratsch stellt den Mechanismus zum Abreißen von Menüs auch in MagiC zur Verfügung. Beim Abreißen "packt" man mit dem Mauszeiger ein Menü und zieht es auf die Arbeitsfläche. Anschließend liegt der Inhalt des Menüs als Kopie in einem normalen GEM-Fenster auf der Arbeitsfläche und kann verschoben, ausgewählt, verkleinert etc. werden. Obwohl dies gerade bei größeren Arbeitsflächen sehr praktisch ist, kennen nur wenige Betriebssysteme von Haus aus dieses Feature. Windows erlaubt z.B. nur das Abreißen von ganzen Toolbars oder Menüzeilen, wobei letzteres oft wenig sinnvoll ist. MacOSX muss mit einem Zusatzprogramm erst nachgerüstet werden - im Gegensatz zu seinem indirektem Vorgänger NeXTStep, bei dem die Menüs immer an der Mausposition erscheinen.

Geneva für den Atari bot von Anfang an Menüs zum Abreißen, auch wenn dies das einzige herausragende Feature des etwas glücklosen Multitaskingbetriebssystems war.

Ratsch benötigt zwingend MagiC und A-Man oder die ebenfalls unter Trapper laufende Systemerweiterung Menubar. Menubar erlaubt es Anwendungen, den aktuellen Menübaum abzufragen.

Das Programm besteht aus zwei Dateien, Ratsch.prg und Ratsch.raw. Die RAW-Datei ist ein Soundsample, der bei Falcon-kompatiblen XBIOS-Routinen abgespielt wird. Der Sample kann gegen eine andere Datei ausgetauscht werden, sofern sie im Format 8 Bit/Mono/25 kHz vorliegt.

Das Abreißen funktioniert mit der linken oder rechten Maustaste. Die Programmfunktionalität wird davon nicht beeinträchtigt, da nur beim Menütitel "zugepackt" werden kann. Natürlich sollte sich das Programm halbwegs an GEM-Standards halten. Ratsch merkt sich die abgerissenen Menüs und speichert sie in einer Info-Datei. Tastendrücke werden an die Anwendung geleitet, der das erste Fenster unter den Ratsch-Fenstern gehört.
Nicht unterstützt werden Submenüs, die aber ohnehin nicht allzu verbreitet sind.

KeyWatch

KeyWatch überwacht - nomen est omen - Tastatureingaben. Was auf den ersten Blick nach einem Fall besonders heimtückischer Bespitzelung aussieht, ist gerade im Zusammenspiel mit jinnee sehr nützlich. Es werden nur die Tastatureingaben überwacht, die mit der Control- und Alternate-Taste zusammen ausgeführt werden. Diese Kombination wird in gewöhnlichen Anwenderprogrammen selten verwendet - zumindest nicht, wenn sich der Programmierer an die Standard-Shortcuts gehalten hat.

Programme können sich nach der Installation von KeyWatch in bestimmte Tastendrücke einklinken, um programmübergreifende Shortcuts zu ermöglichen. Die Shortcuts von in jinnee angemeldeten Programmen sind dank KeyWatch auch möglich, wenn jinnee nicht gerade das oberste Fenster besitzt. Sehr nützlich ist dies z.B. im Resource Master. Die Zeichensatzauswahl Smak wird auf eine Control-Alternate-Kombination gelegt und somit kann leicht während der Arbeit im Objekteditor von RSM Smak aufgerufen werden um ein é oder ô einzugeben.
KeyWatch gehört in den Autoordner und ist nach Trapper aber vor jinnee einzuordnen. Wenn die Installation geklappt, richtet KeyWatch den Cookie "KyWt" ein.

MKey

Eine weitere Erweiterung für Freunde des gepflegten Tastenanschlags ist MKey. Das Programm macht Menüs tasturbedienbar und wird zu einem beliebigen Zeitpunkt gestartet. Nach dem Start klappt gleich das erste Menü auf. Nun kann mit den Cursortasten im Menü herumgeblättert werden. <Pfeil-Links> und <Pfeil-rechts> wechseln auf den nächsten Menütitel, der auch direkt mit den F-Tasten ausgewählt werden kann.

Da MKey nach dem Verlassen der Menüs wieder inaktiv ist, empfiehlt es sich, das Programm mit KeyWatch und jinnee auf eine Tastenkombination zu legen.

Ein Problem hat MKey mit der Erweiterung Stewart: es kommt zu grafisch interessanten, aber ärgerlichen Redraw-Fehlern beim Aufklappen der Menüs. Da heißt es für MagiC-Besitzer, die Wahl zwischen Funktionalität und Aussehen zu treffen.

MWheel

Neben dem Trapper-Autor selber, hat sich Ardisoft (Resource Master) inzwischen als fleißigster Produzent neuer Erweiterungen erwiesen. Die erste Erweiterung löst gleich eine der dringendsten Fragen auf dem Atari.

Neben der Frage, ob es denn einen aktuellen Browser oder DVD-Player für den Atari gäbe, hat sich die Unterstützung für die sogenannten Wheel-Mäuse zu einem Dauerbrenner entwickelt. Wheel-Mäuse haben an ihrer Oberseite zwischen den Maustasten ein kleines Rad. Mit diesem Rad kann z.B. der Fensterinhalt verschoben oder - bei Ego-Shootern - eine andere Waffe gewählt werden. Diese Mäuse sind sogar so beliebt, das es schon welche mit zwei Rädern, LCD und ganzen Tastaturen gibt - Glück hat, wer Informatik studiert und die komplexen Biester noch bedienen kann...

PC-Mäuse werden natürlich nicht an den Joystick-Port, sondern an die serielle Schnittstelle angeschlossen, die auch an Clones vorhanden ist. Der Atari benötigt - genauso wie der PC - eine Treibersoftware. Eine solche stellt MWheel in Verbindung mit Trapper dar.

MWheel erweitert über Trapper zwei wichtige Betriebssystemfunktionen (evnt_button, evnt_multi), die damit Befähigt werden, auf Mausrad-Drehungen zu warten. Dazu wird ein Cookie installiert, an dem Programme erkennen können, ob die erweiterten Funktionen zur Verfügung stehen. Das heißt aber nicht, das ein Programm explizit MWheel unterstützen muss, damit sich beim Drehen überhaupt etwas tut. Wer sich außerhalb des Ataris umschaut, wird feststellen, das kaum ein PC-Programm Wheelmäuse "richtig" unterstützt - das Verschieben des Fensterinhalts läuft über den Maustreiber. Spricht ein Programm MWheel nicht direkt an, wird eine WM_ARROWED-Meldung verschickt, was einem Klick auf die Pfeile zum Bewegen des Fensterinhalts entspricht.
Programme, die MWheel direkt unterstützen, bekommen die Drehweite geliefert.

Der serielle Treiber im MWheel-Paket unterstützt Mäuse, die an Modem 1/2 und Seriell 1/2 hängen. Es werden bis zu vier Maustasten und zwei Scrollräder erkannt. Die mittlere Maustaste, die ohnehin kaum unterstützt wird, kann mit dem Doppelklick belegt werden. Linkshänder werden sich freuen, das sich die Maustasten vertauschen lassen. Die "geliebte" Atari-Maus kann parallel weiter genutzt werden.
Neben dem Mausrad können über den Cookie auch die zusätzlichen Maustasten abgefragt werden.
MWheel ist wirklich ein umfassendes Treiberpaket. Dies zeigt sich auch an vielen Kleinigkeiten. Denn selbst wer keine Wheel-Maus besitzt, kann den mitgelieferten Joystick-Treiber benutzen, der Joystick-Bewegungen als Raddrehung meldet. Für MagiCPC gibt es einen Extra-Treiber.

Dick

Jeder kennt inzwischen die Tools zum Verändern des Fensteraussehens. Davon ausgenommen war bisher der Hintergrund von Dialogen. Es gibt zwar einige GEM-Libraries, die dies unterstützen (ACSpro), aber in Programmen findet sich meist nur das bekannte Hellgrau.

Dick, der Desktop Backgrounder, ändert dies. Alle Dialoge, die als Hintergrund eine G_BOX mit der Musterfarbe weiß und keinem Muster verwenden, bekommen ein wählbares Hintergrundmuster verpasst. Nur wenn diese Voraussetzungen erfüllt sind, erscheint auch das Hintergrundbild. Das Hintergrundbild ist einer RSC-Datei untergebracht und kann mit RSM oder Interface geändert werden.

Beim Starten einiger Programme fällt schnell auf, das in nahezu jedem Dialog das neue Muster angezeigt wird. Das gilt für moderne Programme wie qed und RSM ebenso wie für "Oldies" wie PureC.

Ein großer Nachteil von Dick ist jedoch die Geschwindigkeit. Durch das Hintergrundbild erhöht sich der Aufwand beim Neuzeichnen der Fenster enorm. Auf dem Testrechner (MagiCPC, 400 MHz) ließ sich erst nach dem Anschalten der MPC-"Kompilierung" wieder flüssig arbeiten. Es wäre ohnehin schöner, wenn ein solches Feature direkt in das Betriebssystem wandern würde - vielleicht in einer der nächsten Versionen von XaAES?

Fazit

Von Dick einmal abgesehen, ist von Trapper und seinen Erweiterungen beim Arbeiten nicht viel zu spüren. Das System läuft subjektiv mit der gleichen Geschwindigkeit.
In der Anleitung von Trapper befindet sich eine genaue Erklärung für den Programmierer, wie System-Erweiterungen programmiert werden können.

Trapper: www.mani.de
Dick, MWheel: http://www.ardisoft.de/


Mia Jaap
Aus: ST-Computer 09 / 2002, Seite 48

Links

Copyright-Bestimmungen: siehe Über diese Seite