Devpac ST — und Programmieren macht Spaß

Programmieren soll nicht nur Arbeit sein, sondern auch ein Hobby, das Spaß macht. Mit »Devpac ST« sind diese Voraussetzungen auch für Assembler-Einsteiger gegeben.

Die meisten Programmiersprachen für den ST zeichnen sich bislang durch eine gewisse Unhandlichkeit aus.

Von Turbo-Pascal verwöhnte Programmierer wurden enttäuscht: Nach einem Testlauf bekam man nur eine kurze englische Fehlermeldung. Das bedeutete: Editor neu aufrufen und suchen, wo im Programmtext der Fehler versteckt ist. Anschließend raus aus dem Editor, wieder starten und das Spiel beginnt von neuem. Gerade für Anfänger, die nach der Schreiben-und-Testen-Methode Vorgehen, ist das frustrierend.

Zwar gibt es Assembler, die mit einer Shell arbeiten, aus der man Editor, Assembler und Linker aufrufen kann, aber eine wirkliche Einheit bilden diese Programmteile dann noch lange nicht.

»Devpac ST« ist alles in einem: Editor, Assembler und Linker. Bei einem Computer, der mit einem leistungsfähigen Betriebssystem wie TOS arbeitet, lernt man schnell Vorzüge gegenüber der Programmentwicklung auf 8-Bit-Systemen kennen: die hohe Speicherkapazität erlaubt Compiler, bei denen endlich mal nicht die eine oder andere wichtige Eigenschaft fehlt. Linker vereinfachen eine echte modulare Programmierung sogar auf Maschinensprachebene; über Programmlänge und Speicherbelegung braucht man sich gar nicht mehr den Kopf zu zerbrechen. Aber irgendwann beginnt man doch, sich mit Wehmut an die Zeiten zu erinnern, da man innerhalb einer knappen Minute eine 60 KByte lange Quelldatei assembliert hatte, und zwar ohne Hilfe einer RAM-Disk. Warum gibt es keinen schnellen Assembler mit integriertem Editor auf dem Rennpferd unter den Heimcomputern? Das hat man sich auch beim englischen Softwarehaus Hi-Soft gedacht. HiSoft hat mit ausgezeichneten Produkten für Schneider- und Sinclair-Computer die Leistungsfähigkeit ihrer Programmierer bewiesen.

Das neueste Produkt ist »Devpac«. Eine knapp 30000 Byte lange vollständige GEM-Applikation, die nicht nur einen Bildschirmeditor, Makro-Assembler mit »automatischem« Linker enthält, sondern auch einen Debugger und Disassembler. Weiterhin findet man auf der Diskette ein Beispiel für ein TOS-Programm mit BIOS-Aufrufen und eines für eine GEM-Anwendung, die weitestgehend dem Programm »SAMPLE. PRG« von der TOS-Diskette gleicht. Dabei ist das lauffähige Programm mit rund 2000 Bytes um zirka 50 Prozent kürzer als das vergleichbare C-Programm. Dazu gehören fertige Include-Dateien, die Vereinbarungen für Nummern von Betriebssystemroutinen und Systemvariablen (langjährige Freaks sprechen hier gerne von »Equates«) sowie fertige Makros enthalten. Eine normale »Programmiersitzung« läuft folgendermaßen ab: zunächst wird man sich, sofern man im Besitz von 1 Megabyte RAM oder/und den Betriebssystem-ROMs ist, die ganze Diskette in die RAM-Disk kopieren.


Auch ein Debugger ist integriert

Editor für Profis

Nach Anklicken von »GENST.PRG« hat man dann in Sekundenbruchteilen das Editor-Fenster von »Devpac« vor sich. Der Editor ist zwar nicht der Weisheit letzter Schluß und kann auch nicht unbedingt mit dem GST-Editor oder gar mit lST_Word mithalten. Zur Eingabe von Assemblerprogrammen ist er jedoch hervorragend geeignet. Zunächst fällt auf, daß er nicht besonders schnell ist. Bemerkbar macht sich das besonders beim Scrollen und der Repeat-Funktion einer Taste. Gerade beim Löschen von Zeilen ist daher eine Portion Fingerspitzengefühl angesagt. Ebenbürtig ist er dem GST-Editor hingegen bei der Positionierung des Cursors. Sie kann sowohl mit der Maus, als auch mit den Cursortasten erfolgen. Leider lassen sich nicht mehrere Fenster zur Bearbeitung verschiedener Dateien öffnen.

Aber dafür hat man bei der Eingabe sich etwas einfallen lassen. Beim Entwickeln eines Assemblerprogrammes arbeitet man spaltenorientiert. In der ersten Spalte stehen die Labels, in der zweiten die Befehle und in der dritten ein Kommentar.

Fügt man bei einem Standard-Editor ein Label ein, so wird der Befehl nach rechts verschoben. Man kann auch in den Überschreibmodus schalten, aber für das Einfügen in einer Befehls- oder Kommentarspalte muß man wieder in den Einfügemodus zurück.

Der Editor von »Devpac« macht das automatisch. Hier merkt man, daß die Programmierer gezielt auf die Assemblerprogrammierung eingehen.

Weiterhin macht es sich auf die Dauer bezahlt, daß fast alle Funktionen, wie Laden, Speichern, Drucken, alternativ über Tastenkombinationen aufrufbar sind. Der eingebaute Editor verfügt auch über Blockbefehle und erfüllt seine Aufgabe in der vorliegenden Version tadellos.

Nachdem der Eingabevorgang beendet ist, kann die Assemblierung beginnen. Bei einem »normalen« Entwicklungssystem hieße das, den Editor zu verlassen und den Assembler aufzurufen. Nicht so bei »Devpac«. Statt dessen wählt man aus dem Menü »Options« das Kommando »Assemble« oder drückt »Altemate« und »Help«. Liegen alle Dateien auf RAM-Disk vor, ist das fertige Programm innerhalb weniger Sekunden übersetzt. Sollte jedoch ein Fehler aufgetreten sein, geht man ohne Zeitverlust zurück in den Editor. Der Cursor springt durch drücken von Alt-J zur nächsten fehlerhaften Zeile und in der Statuszeile erscheint die Fehlermeldung. Nach dem Ausmerzen des Fehlers kann man, wiederum ohne einzigen Zugriff auf Diskette, einen erneuten Assemblierungslauf starten.

Oft entscheiden gerade gewisse Detaillösungen darüber, wie sich ein Programm im laufenden Einsatz bewährt. Viele Programme fragen, ob man speichern möchte, obwohl man es gerade getan hat. Bei »Devpac ST« wurde glücklicherweise auf diese überflüssige Sicherheitsabfrage verzichtet. Das heißt man befindet sich nach dem Assemblieren tatsächlich mit einem Druck auf die Maustaste wieder im Desktop, von dem aus man das erzeugte Programm starten kann. Wurde »GENST.PRG« sinnvollerweise zuvor als Standardanwendung für »*.S«-Dateien angemeldet, kommt man vom Desktop mit einem einzelnen Doppelklick auf die Quelldatei in Windeseile in den Editor zurück und kann Weiterarbeiten.

GEM mit einer Zeile

Der Assembler selbst bietet im Vergleich zu anderen Assemblern auf dem ST wenig Überraschungen.

Mit »Devpac« kann man auch Makros programmieren. Die Leistungsfähigkeit reicht aber nicht an teurere Programmpakete, wie den Makroassembler von GST, heran. Dennoch ist sie eine große Arbeitserleichterung, da dadurch auch bedingte Assemblierung erlaubt ist. Auf der Diskette findet man zwei Dateien mit Makros für Systemaufrufe (BIOS, BDOS, XBIOS, VDI und AES). Bis auf die etwas umständliche Übergabe der Parameter kann man mit Hilfe dieser vordefinierten Makros genauso bequem GEM-Funktionen aufrufen, wie aus C. Ein praktisches Beispiel wäre folgende Makrodefinition:

mg_alert macro 
move.w #l,int_in(a6) 
lea #2(pc),a0 
move.l a0,addr_in(a6) 
gen FORM_ALERT *bereits vordefiniert 
endn

Der Assembler ist »eingebaut«

Ein GEM-Alarmfenster läßt sich dann mit einer einzigen Programmzeile erzeugen (»mg____alert #1, gruss«). Eine große Zeitersparnis bringt auch die Tatsache, daß kein separater Link-Vorgang ausgeführt werden muß. Bei kurzen Applikationen ist es im Normalfall völlig ausreichend, einige Systemdateien mit Include bereits beim Assemblieren einzubinden. Eine Version, die auch linkbaren Code erzeugen kann, soll allerdings in Kürze erscheinen, so daß auch größeren Programmprojekten nichts im Wege steht. Die Tatsache, daß der »Devpac«-Linker im Gegensatz zu anderen Linkern den gesamten Code in den Programmtext-Abschnitt der Datei legt, sollte im Normalfall nicht zu Problemen führen. In der vorliegenden Version wurde bei der Assemblierung eine Datei erzeugt, die sich nicht als Programm laden ließ. Hierbei bleibt unklar, ob der Fehler beim Assembler, Linker oder im Quelltext lag, da zu keinem Zeitpunkt ein Fehler gemeldet wurde. Mängel wie dieser sollten allerdings in der endgültigen Version ausgebügelt sein.

Das letzte Glied in der Kette der benötigten Programme ist der Moni-tor/Debugger. Im Gegensatz zu anderen Softwarehäusern hat sich Hi-Soft nicht vor dieser Pflicht gedrückt, sondern dem Programmierer gleich zwei verschiedene Versionen auf den Weg gegeben: eine zur Fehlerbehebung von TOS-Applikationen (»MONST.TOS«) und eine für GEM-Applikationen (»MONST. PRG«). Der Debugger versteht ähnliche Kommandos, wie man sie von solchen Utilities auf anderen Computern kennt, wie Einzelschrittmodus und Breakpoints. Glücklicherweise hat man auch daran gedacht, für die Bildschirmausgabe des Programms einen eigenen Bildspeicher zu reservieren. So kann man mit »MONST« auch grafikorientierte Programme bearbeiten.

Ausprobieren und Korrigieren

Die mitgelieferte Anleitung beschreibt auf nur vierzig Seiten alle Teile des Programmpakets und beschränkt sich auf das Allernötigste. Um programmieren zu können, braucht man zusätzlich mindestens ein gutes Lehrbuch über die Programmierung des 68000-Prozessors. Empfehlenswert ist auch eine Beschreibung der TOS- und GEM-Routinen.

Mit dem »Devpac« von HiSoft kann man endlich wieder programmieren, wie man es von einem guten und ausgereiften Assembler gewohnt ist. Nach dem Motto: Ausprobieren und Korrigieren. Gerade für kurze Programme ist das noch immer eine vernünftige Vorgehensweise.

Damit ist »Devpac ST« eine gute Alternative zum preiswerten SEKA-Assembler von Kuma. Preislich liegt er in derselben Kategorie. 49 Pfund kostet »Devpac« in England. In Deutschland kann man also mit zirka 200 Mark rechnen. Aber auch gegenüber teureren Programmpaketen, wie dem GST- oder Metacomco-Makroassembler, sollte man »Devpac ST« unbedingt in Betracht ziehen. (Julian Reschke/hb)



Aus: Happy Computer 08 / 1986, Seite 112

Links

Copyright-Bestimmungen: siehe Über diese Seite