Gut ausgestattet in die unterste Ebene: Neuer Makro-Assembler »Easyrider« — nur einer von vielen?

Programmiersprachen für den Atari ST gibt es wie Sand am Meer. Es ist schwer, mit einem neuen Produkt die auf dem Markt befindliche Software zu übertrumpfen. Nicht immer gibt es einen Knaller, wie etwa Turbo-C von Borland. Besonders der Assembler-Markt, den die etablierten Softwarehäuser GFA und Omikron bestens bedienen, scheint kaum noch Platz für neue Produkte zu lassen. Um so bemerkenswerter ist das Erscheinen des »Easyrider«-Assemblers von Andreas Borchard: Dieser Assembler besticht nicht nur durch seine sagenhafte Geschwindigkeit, sondern auch durch eine Menge interessanter und bequemer Befehle. Er ist das Gegenstück zum Reassembler des gleichen Herstellers. Wir stellten ihn in der letzten Ausgabe vor.

Zum Lieferumfang gehört neben der Diskette ein ca. 50seitiges Handbuch. Es bezieht sich allerdings noch auf die Version 1.04, während der Assembler mittlerweile in der Version 2.03 vorliegt. Neuerungen entnehmen Sie einer README-Datei auf der Diskette Die Dokumentation ist ausreichend und geht auf alle Funktionen von Easyrider ein. Auch ein Anhang mit allen 68000-Mnemonics fehlt nicht.

Auf der Diskette befinden sich neben dem Assembler noch Bibliotheken für das AES und das VDI, mehrere vordefinierte Makros und einige Hilfsprogramme. Außerdem ist der Texteditor »Tempus 1.11« im Lieferumfang enthalten. Beide Programme, der Assembler und der Texteditor, arbeiten sowohl in der hohen als auch in der mittleren Bildschirmauflösung. Der Assembler gehört mit einer Länge von 48 KByte zu den Winzlingen in diesem Genre. Und es versteht sich von selbst, daß er vollständig in Assembler geschrieben ist.

Bei Easyrider handelt es sich um einen Makro-Assembler mit einer Reihe verblüffender Leistungsmerkmale. So übersetzt er nahezu 225000 Zeilen pro Minute. Dies ist zwar die Obergrenze; aber auch im Normalbetrieb unterschreitet er fast niemals 100000 Zeilen pro Minute. Einen schnelleren Makro-Assembler gibt es für den ST derzeit nicht.

Starten Sie den Assembler, können Sie sich getrost von der Maus und GEM verabschieden. Denn Easyrider hat eine TOS-Oberfläche, die Sie mit der Tastatur bedienen. Nachdem Sie Easyrider geladen haben, verlangt er zunächst den Namen des Quelltextes. Da es auf Dauer lästig ist, häufig benötigte Befehle immer wieder einzutippen, erlaubt Ihnen Easyrider die freie Belegung der zehn Funktionstasten. In der voreingestellten Belegung starten Sie zum Beispiel mit der Taste F1 den Texteditor »Tempus« und übergeben dabei den Namen des aktuellen Quelltextes.

Um eingefleischten GEM-Freaks nicht den Komfort einer Dateiauswahlbox zu nehmen, hat der Autor ein kleines Programm namens »FSEL« beigelegt. Tippen Sie etwa bei Eingaben statt dem Dateinamen den Befehl »run fsel« ein, so startet Easyrider die Dateiauswahlbox und übernimmt als Dateinamen den von der Auswahlbox zurückgegebenen Pfad und Namen.

Easyrider besteht aus drei Programmen: Außer dem Assembler sind ein Linker und eine Bibliotheks-Verwaltung im Paket enthalten. Der Linker entpuppte sich im Betrieb als wahres Universalgenie. So ist er in der Lage, Objektmodule sowohl im DRI-Format als auch im GST-Format in einem Durchlauf zu verarbeiten. Damit ist endlich eine Brücke zwischen den Welten geschlagen, die es beim Objektformat leider gibt. Während in den USA und in Deutschland nach wie vor das von Atari favorisierte DR1-Format verwendet wird, benutzen Programmiersprachen aus Großbritannien das ursprünglich für den Sinclair QL entwickelte Format der Firma GST. Aber auch für das DRI-Format hat Easyrider eine Besonderheit parat: Er unterstützt auch das erweiterte Format mit bis zu 22 Zeichen pro Label.

Mit der in Easyrider befindlichen Bibliotheks-Verwaltung (Bild 3) legen Sie neue Bibliotheken an, löschen und fügen Sie Module hinzu oder lassen sich Informationen über ein Modul ausgeben.

Easyrider verrichtet seine Arbeit mit sagenhafter Geschwindigkeit. Selbst Dateien mit vielen Makros übersetzt er sehr schnell. Tritt während des Assemblierens ein Fehler auf, so bricht Easyrider den Vorgang ab. Sie können nun den Fehler mit einem Zeileneditor korrigieren (Bild 2) und anschließend mit der Assemblierung fort fahren. Komplizierte Fehler lassen sich auch alternativ mit dem normalen Texteditor bearbeiten. Hat der Assembler seine Schuldigkeit getan, liefert er auf Wunsch ein Listing. Dieses gibt er wahlweise auf Diskette, Drucker oder Bildschirm (Bild 4) aus.

Und damit keine Langeweile aufkommt, besitzt Easyrider eine Menge Pseudo-Opcodes. Die Makroverwaltung geschieht nach Motorola-Empfehlung mit den Kommandos MACRO und ENDM. Doch statt den empfohlenen neun läßt Easyrider sogar 99 Parameter zu. Nur das Befehlswort EXITM, mit dem Sie ein Makro vorzeitig verlassen, kennt Easyrider nicht. Unter Easyrider verwenden Sie dazu den Befehl END.

Bild 1. Easyrider informiert den Programmierer nach dem Assemblieren über alle Ergebnisse und listet alle wichtigen Angaben auf

Easyrider beherrscht neben den Kommandos für bedingte Assemblierung (IF-ELSE-ENDIF) und Schleifenprogrammierung (REPEAT-UNTIL) noch einige weitere interessante Anweisungen. Da sind zunächst die Befehle INCLUDE und INLINE, mit denen Sie Dateien einbinden. Der INCLUDE-Befehl bindet sowohl Quelltexte als auch Binärdateien im Objekt- oder Bibliotheks-Format ein.

Dazu ein Beispiel:

Start:
GLOBL strlen 
INCLUDE tcstdlib.lib 
lea my_string,a0 
jsr strlen

Mit diesen wenigen Zeilen bindet Easyrider aus der Turbo-C-Standard-Bibliothek die Routine »strlen« ein und ruft sie auf. Der INLINE-Befehl übernimmt Binärdateien, wie etwa Bilder, unverändert in ein Programm.

Eine weitere Besonderheit ist die Modulverwaltung. Denn es lassen sich in einem Quelltext mehrere Module zusammenfassen. Der Assembler erzeugt auf Wunsch dennoch getrennte Module. So erzeugen Sie beispielsweise aus einem Quelltext mit mehreren Modulen in einem Rutsch eine vollständige Bibliothek.

Sehr nützlich ist die Definition von lokalen Segmenten. Innerhalb dieser Segmente dürfen Sie Labels definieren, die außerhalb des Segments nicht sichtbar sind. Diese Art lokale Labels anzulegen, ist zwar nicht kompatibel mit dem MADMAC- oder dem GFA-Assembler, dafür aber wesentlich flexibler. Ein wahres Füllhorn sind die Funktionen zur Code-Optimierung. Easyrider bietet derzeit elf verschiedene Methoden an. So wandelt er z.B. auf Wunsch Branches (»Bxx Label«) in Shortbranches (»Bxx.s Label«) und normale Quelladressen (z.B. »Move.l Label,d0«) in PC-relative (z.B. »Move.l Label(PC),d0«). Doch auch das kompliziertere Vorwärtsoptimieren stellt für Easyrider kein Problem dar. Aus den Befehlen »Add«, »Sub« und »Move« erzeugt der Assembler die entsprechenden Quick-Varianten, falls das die Größe der Konstanten zuläßt. Einen »Move #0,ea« wandelt Easyrider etwa auf Wunsch in »Clr ea« und aus »Move #constant,An« macht er »Lea constant,An«.

Easyrider erlaubt Ihnen, die Optimierungen und Steueranweisungen innerhalb des Quelltextes an- und wieder auszuschalten. Dadurch behalten Sie jederzeit die Kontrolle über Ihr Programm. Die von Easyrider verarbeiteten Operatoren sind sehr vielfältig. Neben den vier Grundrechenarten und der Modulo-Operation beherrscht er auch bitweises AND, OR, XOR, NOT und Verschieben.

Der Assembler besticht durch Geschwindigkeit und Komfort. Der eingebaute Linker ist ein wahrer Geniestreich. Lediglich die Arbeitsoberfläche entspricht trotz ihrer Benutzerfreundlichkeit nicht den Vorstellungen eines GEM-gewohnten Anwenders. Dies läßt sich allerdings leicht beheben, wenn Sie Easyrider nur über die Kommandozeile aufrufen und ansonsten in einer anderen Umgebung arbeiten. Mit einer Shell, wie etwa der Shareware-Shell GEMINI, verfügen Sie dann über eine echte GEM-Umgebung.

Wer bei soviel Leistung schon anfängt, die blauen Scheine in seiner Geldbörse zu zählen, wird sich freuen: Denn der Easyrider-Assembler kostet nicht mal einen Blauen, sondern nur 99 Mark, (ba)

Bezugsadresse: Andre» Borchard, Wincnbachstr. 2a, 4500 Osnabrück

Wertung

Name: Easyrider Assembler
Preis: 99 Mark
Hersteller: Andreas Borchard

Stärken: □ sehr schnell □ sehr gute Optimierungsfunktionen □ Linker verarbeitet GST- und DRI-Format □ sehr viele Funktionen □ niedriger Preis □ Tempus im Preis enthalten

Schwächen: □ keine GEM-Oberfläche

Fazit: sehr komfortabler und schnellster Makro-Assembler für den ST

Bild 2 (links). Trifft Easyrider beim Assemblieren auf eine fehlerhafte Anweisung, so können Sie die Zelle direkt mit dem Zelleneditor korrigieren
Bild 3 (rechts). Die Bibliotheks-Verwaltung erlaubt ein unkompliziertes Bearbeiten von Bibliotheken. Die Übersicht bleibt dabei Immer gewahrt.
Bild 4 (unten). Der Listengenerator erzeugt eine übersichtliche Listing-Ausgabe

Michael Bernhards
Aus: ST-Magazin 03 / 1990, Seite 58

Links

Copyright-Bestimmungen: siehe Über diese Seite