xAsm ll: Chamäleon im GEM-Gewand

Für viele Aufgaben reichen 8-Bit-Computer völlig. Dabei entwickeln Programmierer meist auf einem komfortablen 16/32-Bit-Rechner und übersetzen den Code mit einem Cross-Assembler wie z.B. den »xAsmll«.

Assembler-Ausgabe mit Beispieldialog

Die Aachener Designgruppe Joachim Klein Hard& Software bietet mit dem tabellengesteuerten Cross-Assembler »xAsmll« ein komfortables Programmier-Tools im GEM-Gewand. Nach dem Start präsentiert sich Cross-Assembler auf dem Bildschirm mit Menüleiste und GEM-Fenster. Die Einträge sind übersichtlich in Funktionsgruppen untergliedert und verfügen über Tastenkürzel. Die Dialogboxen wirken in manchen Punkten ungewohnt und sollten schnell den nun allgemein zugänglichen Programmierrichtlinien angepaßt werden.

Die Menüeinträge sind sich kontextsensitiv, ändern sich also je nach Mode. Der Assembler beherrscht die übliche Arithmetik, also Grundrechenarten, Modulo, High- und Low-Byte eines Worts, Vergleichsoperationen und logische Operationen. Die üblichen Direktiven zum Ablegen von 8-, 16-und 32-Bit-Werten sind ebenso wie das obligatorische »ORG« für die Festlegung der Anfangsadresse des Objektcodes vorhanden.

Bedingte Assemblierung mit IF/ELSEIF/ELSE/ENDIF, mit bis zu 16fach verschachtelte Makros mit pseudolokalen Symbolen, sowie eine Include-Direktive runden das Bild ab. Im Anhang finden Sie die Beschreibung der Tabellensyntax — interessierten Programmierern steht somit die Implementation weiterer Prozessortypen frei.

Nach der Installation einer CPU-Tabelle und dem Laden der Quelldatei kann die Assemblierung beginnen. Enthält der Quelltext keine Fehler, wird im Meldefenster nach Abschluß der Assemblierung die Größe des Objektcodes gezeigt. Darüber hinaus gibt das Programm Auskunft über die Assemblierungsdauer. Treten Fehler auf, präsentiert das Programm die Warnbox ’Assemblierfehler’ mit dem Namen der betreffenden Datei und einer Zeilennummer. Sie können wählen, nach wie vielen Fehlern die Assemblierung abgebrochen werden soll. Dabei gibt es drei Alternativen:

  1. Der Assembliervorgang kann beendet werden.
  2. Sie rufen einen Editor auf, dem die aktuelle Sourcedatei übergeben wird. (Optional: Die aktuelle Nummer der Fehlerzeile kann übermittelt werden. Nach Beenden des Editierens entscheidet der Anwender per einer Alertbox, ob der Quelltext neu geladen wird.)
  3. Der Assembliervorgang wird fortgesetzt.

Fehlerprotokol

Während der Assemblierung steht am rechten oberen Bildschirmrand der Name der aktuellen Datei; die Zeilennumer wird in Zehnerschritten angegeben. Fehler lassen sich im Protokoll an-zeigen, zusätzlich mit den erzeugten Hexcodes und den Quelltextbefehlen. Auch eine Kombination der drei Möglichkeiten wäre denkbar.

Bei einer fehlerfreien Assemblierung hat der Programmierer weitere Wahlmöglichkeiten:

Durch die ORG-Direktive können leere Stellen im Objektcode entstehen, die sich wahlweise mit 0- oder 255-Codes füllen lassen.

Für 16- oder 32-Bit-CPUs kann der Objektcode auf mehrere EPROMs aufgeteilt werden.

Download

xAsm-II erlaubt die Ablage im Binärformat, als Moto-rola-S-Records, INTEL-Hex-sowie Tektronix-Format.

Ein automatischer Download nach der Assemblierung an einen EPROM-Emulator läßt sich unterdrücken oder über die serielle, parallele oder MIDI-Schnittstelle weiterleiten. Der Download kann jederzeit manuell ausgelöst werden. Bei einer Übertragung über die serielle Schnittstelle lassen sich alle relevanten Parameter einstellen.

Auch externe Programme können gestartet werden. Wie der Editor versteht auch die Kommandozeile Kürzel. Dem Editor wird so z.B. über die Kommandozeileneinstellung %S immer der aktuelle Source übergeben und mit %L das Protokoll. Wahlweise kann ein externes Programm sofort nach der Assemblierung automatisch gestartet werden — das ist besonders praktisch beim Nachstarten von EROMMER-Software.

Die Menüs von xAsm-II

Das größte Manko des Programms liegt in der Verarbeitungsgeschwindigkeit, die recht gemächlich ist. Auf einem 8-MHz-68000er werden auf einer RAM-Disk mit einem 1000-Zeilen-nop-Quelltext ca. 74 Zeilen pro Sekunde assembliert. Allerdings gibt es hier auch keine Vorwärtsreferenzen, so daß ein Paß II entfallt. Hier muß der Programmierer Optimierungen vornehmen. Ebenfalls unzureichend ist die Symbolverwaltung, die bei größeren Projekten zu einer weiteren Minderung der Geschwindigkeit führt.

Laufzeitstabil

Ein (schneller!) Linker würde diesem Notstand abhelfen. Nach Auskunft des Programmierers ist der bereits in Arbeit. Da xAsm-II in GFA-Basic entwickelt wurde, befinden sich leider die GFA-Internen LINE-A-Codes »Hide Mouse« und »Show Mouse« im Programm. Dies ist bedauerlich, kann dem Programmierer aber kaum angelastet werden. Abhilfe durch eine gecatchte Library steht in Aussicht.

Ansonsten läßt xAsm-II wenig Wünsche offen. Auf den ATARI-TOS-Rechner ist das Programm ohnehin der einzige tabellengesteuerte Cross-Assembler mit komfortabler GEM-Oberfläche. Insgesamt ist das Programm empfehlenswert. Seine vielfältigen Optionen, laufzeitstabiles Verhalten und ein günstiges Preis-Leistungsverhältnis rechtfertigen diese Kategorisierung. Der Programmierer zeigte sich gegenüber Verbesserungsvorschlägen aufgeschlossen und eliminiert bereitwillig und schnell Bugs.

Protokollanzeige

Das Programm nimmt auch Anweisungen über eine Kommandozeile entgegen. Falls eine Konfigurationsdatei existiert, führt dies zum automatischen Laden des Quelltextes. Diese Datei enthält alle wesentlichen Einstellungen des Programmes und wird automatisch geladen, so daß die lästige Neueinstellung von Defaultparametern entfallt.

Im Lieferumfang befindet sich ein 84seitiges DIN-A5-Ringbuch mit Kurzreferenz, die alle wesentlichen Direktiven und Makros beinhaltet, eine nicht kopiergeschützte Programmdiskette, zwei Text-Files und folgende CPU-Tabellen: Z80, 8048, 8051, 6502, 6805, 6809, HC 11. In Kürze erscheint eine 8086-Tabelle, die für Programmierer des Portfolio sicherlich von großem Interesse sein dürfte. Das Handbuch vermittelt einen übersichtlichen Eindruck. Leider verwendet der Autor eine Kapitelnumerierung (1., 1.1, 1.1.2 etc.), eine Seitennumerierung fehlt. Das Auffinden bestimmter Stellen wird dadurch erschwert. Das Programm umfaßt 150 KByte, zuzüglich einer Resource von 13 KByte, (mn)

Arbeitsoberfläche mit Dialogbox

WERTUNG

xAsm-II

Hersteller: xDesign Joachim Klein Hard&Software
Preis: 160 Mark

Stärken: intuitive GEM-Oberfläche, günstiges Preis-Leistungs-Verhältnis, Flexibilität

Schwächen: hält sich nicht an GEM Richtlinien, dürftige Assembliergeschwindigkeit

Fazit: Für 8-Bit-Programmierer sehr empfehlenswert

Vertrieb: xDesign Joachim Klein Hard& Software, Süsterfeldstr. 30, W-5100 Aachen


Christoph Conrad
Aus: ST-Magazin 12 / 1992, Seite 38

Links

Copyright-Bestimmungen: siehe Über diese Seite