Während man in den ersten Monaten nach dem Erscheinen des CPC Assembler/Disassembler noch mit der Lupe suchen mußte, werden diese jetzt von vielen Softwarehäusern angeboten. So auch das englische Softwarehaus KUMA, das den ZEN Assembler und Disassembler jetzt auf dem deutschen Markt anbietet. Auch hier handelt es sich um ein Programm, in dem Assembler und Disassembler fest miteinander verbunden sind. Auch andere Hersteller haben dièses Prinzip gewählt, z. B. ZAPP von HEWSON CONSULTANTS und DEVPAC von SCHNEIDER. 
Beim DEVPAC bestehen Assembler und Disassembler allerdings aus separaten Programmen, welche man an eine beüebige (!) Stelle in den Speicher laden kann und sich so beide Programme gleichzeitig im Speicher befinden. Natürlich kann man dann von einem Programmteil durch Tastendruck in den anderen springen. Dieses Prinzip ist sehr benutzerfreundlich, da man sich seine Kombination selbst aussuchen kann. ZEN bietet diese Möglichkeit jedoch nicht. Ansonsten hat ZEN eigentlich all die Features, Funktionen und Optionen, die man von anderen Assemblern ebenfalls kennt, ist aber im Gegensatz dazu extrem anwenderfreundlich. Dem Programm liegt eine lOOseitige Anleitung in Englisch bei, wobei die eigentliche Anleitung nur aus 10 Seiten besteht, der Rest ist ein Assemblerli-sting von ZEN. Zudem ist die Druckqualität äußerst schlecht. Ohne gute Englischkenntnisse kann man mit diesem Programm praktisch nichts anfangen. Auch das Laden ist so eine Sache. Das Programm wird nicht mir RUN"" geladen, sondern mit : MEMORY 16383 LOAD "ZEN", 16384 CALL 16384Ein kleines Vorprogramm hätte hier Abhilfe geschaffen.Leider steht in der Anleitung nichts darüber, wie man das Programm auf Diskette konvertiert, deshalb hier für Diskbesitzer eine Anleitung: TAPE.IN MEMORY 16383 LOAD "ZEN", 16384 SAVE "ZEN", b, 16384, 6461Ansonsten ist das Programm vollständig diskkompatibel, d.h., alle Bereiche wirken auf das Diskettenlaufwerk in der gleichen Form, wie sie das mit dem Kassettenlaufwerk tun würden.Nach dem Start meldet sich das Programm mit ZEN>. Insgesamt kann man dann 28. Funktionen anwählen. Leider existiert keine Helppage, so daß die Anleitung immer neben dem Computer liegen muß. Der Disassembler ist ein Minimaldisassembler. Hier wurde nur das Notwendigste programmiert. Zudem ist er nicht allzu schnell. Auch der Assembler ist ziemlich langsam. Die Eingabe und Editierung eines Textes ist hier so ziemlich das Umständlichste, was mir je unter die Augen gekommen ist. Auch das Listen und Löschen von Zeilen ist nicht so einfach und problemlos, wie es eigentlich sein sollte. Allerdings beherrschte der Assembler immerhin die Grundrechenarten und hat alle üblichen Pseudo befehle: ORG, END, DEFS, DEFB, EQU. Der Befehl DEFW fehlt allerdings. ZEN ist ein Programm zum Arbeiten, allerdings sollte man eine sicher nicht zu kurze Einarbeitungszeit einplanen. Im Prinzip ist der Assembler jedoch recht gut, nur beim Disassembler müßten noch zusätzliche Funktionen eingebaut werden. Der Assembler ist allerdings alles andere als komfortabel. Notwendig wäre noch ein vernünftiger Editor, ein Vorprogramm, eine Helppage und einige andere Punkte. Es schadet absolut nichts, wenn das Programm dadurch ein paar Kilobyte länger wird. | Die einzelnen Funktionen von ZEN | | ASSEMBLE | Das Textfile wird in ein MC-Programm übersetzt. | | BYE | Rückkehr zum Basic. | | COPY | Kopiert einen Speicherblock an eine andere Stelle. | | DOWN | Der Zeiger des Textfiles wird um eine angegebene Zahl nach un ten verlagert. | | ENTER | Hier kann man das Textfile eingeben, welches assembliert wer den soll. | | FILL | Füllen eines Speicherbereichs mit einer Zahl. | | GOTO | Aufruf eines Maschinenprogrammes. | | HOWBIG | Start und Endadresse des Textfües wird ausgegeben. | | IN | Dieses Kommando zeigt eingelesene Daten {von einem angegebenen I/O Port) auf dem Bildschirm an. | | KILL | Das Textfile wird gelöscht. | | LOCATE | Im Textfile wird nach einem angegebenen String gesucht. | | MODIFY | Speicherbereiche können verändert werden. | | NEW | Damit können Zeüen des Textfiles editiert werden. | | OUT | Dieses Kommando sendet Daten an einen I/O Port. | | PRINT | Damit können Teile des Textfiles gelistet werden. | | QUERY | Speicherbereiche werden in HEX und in ASCII ausgegeben. | | READ | Liest ein Textfile von Kassette. | | SORT | Die Symboltabelle wird sortiert und ausgegebeh. | | TARGET | Setzt den Zeiger des Textfües auf den angegebenen Wert. | | UP | Der Zeiger des Textfiles wird um die angegebene Zahl nach oben verlagert. | | WRITE | Das Textfile oder ein Teil des Speichers wird auf Kassette geschrieben. | | EXAMINE | Die Werte der Register werden ausgegeben. | | ZAP | Teilbereiche des Textfiles können gelöscht werden. | | CATALOG | Das Band kann inspiziert werden. | | DISASSEMBLE | Ein Speicherbereich wird disassembliert. | | UNSCRAMBLE | Acht Bytes werden disassembliert. ZEN bemüht sich herauszufinden, ob es sich um Daten oder Programmbytes handelt. |
Andreas Zallmann, CPC Magazin |