Public Domain-Software erfreut sich mittlerweile auch in Deutschland wachsender Beliebtheit. Das ist verständlich, erhält man doch zu einem sehr niedrigen Preis hochwertige Programme, die oft besser sind, als manch professionelles Produkt. Den großen Durchbruch könnte Public Domain jetzt bei uns erreichen, da sie erstmals mit deutscher Dokumentation verfügbar ist.
Niedrige Preise und die Freiheit zum beliebigen Kopieren und Weitergeben kennzeichnen Programme, die allgemein unter dem Begriff »Public Domain« bekannt sind. Neben diesen eindeutigen Vorteilen wohnt ihnen aber auch eine ganze Reihe von Nachteilen inne. Auf den Disketten, die man zu Preisen zwischen zirka 15 und 30 Mark ersteht, finden sich neben »Leckerbissen« leider auch manche Programme, die man eigentlich gar nicht benötigt. Viele der sinnvollen Programme sind bar der geringsten Dokumentation, so daß man — wenn überhaupt — erst nach langem Probieren deren Handhabung oder gar Funktion errät. Allen gemein ist jedoch die ausschließlich englischsprachige Benutzerführung und — sofern vorhanden — Bedienungsanleitung auf Diskette.
Daß es auch anders geht, beweist Martin Kotulla aus Nürnberg — vielen Lesern sicher durch seine Fachbeiträge und Bücher bekannt. Er hat unter CP/M 2.2 oder CP/M Plus lauffähige Public Domain-Vorlagen komplett für Computer der Schneider CPC-Serie und Joyce angepaßt. Die Anpassung beinhaltet nicht nur Änderungen der Programmlogik, sondern auch die Übersetzung der Benutzerführung und der Anleitungen in die deutsche Sprache. Mit der sauber gedruckten Dokumentation kosten die Disketten jeweils 30 Mark. Die Programmpakete sind sinnvoll aus vorliegenden Public Domain-Disketten zusammengestellt. Sie haben folgenden Inhalt:
Diskette 1: JRT-Pascal (Compiler)
Diskette 2: Z80-Assemblerpaket (Z80*Assembler, Disassembler)
Diskette 3: Lisp und Prolog (Künstliche Intelligenz)
Diskette 4: Small-C (C-Compiler mit Fließkomma-Arithmetik)
Diskette 5: Forth-83 Diskette 6: CP/M-Hilfsprogramme (Diskmonitor, Dateikompressor, Dateiretter, etc.)
Die Programme der Disketten 1 und 4 sowie das Programm XLisp von der Diskette 3 laufen nur unter CP/M Plus oder mit der größeren TPA einer Speichererweiterung. Jede Diskette enthält einen Editor, der sich zum Schreiben von Programmtexten hervorragend eignet.
Das JRT-Pascal auf der ersten Diskette ist ein Pascal-Compiler, der dem Standard des Informatikprofessors Niklaus Wirth voll entspricht. Darüber hinaus bietet er aber einen wesentlich erweiterten Befehlsumfang, der die Programmierung erheblich erleichtert. Zu diesen Erweiterungen gehört zum Beispiel eine komfortable Stringverwaltung. So dürfen Zeichenketten eine Länge von bis 65535 Byte erhalten. Sie lassen sich mit Hilfe von Funktionen wie COPY, INSERT, DELETE oder CONCAT gezielt verändern. Die Stärke des JRT-Pascal liegt eindeutig in dem — simplen Overlay-Strukturen überlegenen — EXTERN-System. Mit Hilfe des EX-TERN-Systems sind Programmumfänge erlaubt, die weit über die Speicherkapazität des Computers hinausgehen. Lediglich die Kapazität der angeschlossenen Datenspeicher begrenzt die Länge des Pascal-Programms. Diese externen Prozeduren sind eine Spezialität von JRT-Pascal. Sie erleichtern den Umgang mit großen Programmen ungemein. Ruft das Hauptprogramm eine externe Funktion beziehungsweise ein externes Programm auf, lädt später das Compilat die betreffende Datei von Diskette und führt sie aus. Im Gegensatz zum bisher von Pascal-Compilern vorwiegend benutzten Overlay-System bleiben diese Dateien aber im Speicher und werden erst dann wieder gelöscht, wenn der von ihnen belegte Speicherplatz für andere Aufgaben genutzt werden soll. Dabei löscht JRT-Pascal nicht willkürlich irgendein Unterprogramm. sondern ignoriert zuerst die Prozedur, die am längsten nicht mehr aufgerufen wurde.
Sinnvollerweise befinden sich auf der Programmdiskette schon einige vordefinierte Funktionen, die für umfangreiche mathematische Berechnungen und Diskettenoperationen unerläßlich sind:
Sollte Ihnen die Geschwindigkeit der externen Funktionen nicht ausreichen, schreiben Sie mit Hilfe des mitgelieferten Assemblers Maschinencode-Routinen, die genauso behandelt werden wie die externen Pascal-Funktionen.
Die zweite Diskette der Public Domain-Reihe beschäftigt sich mit der Programmierung des Z80-Mikroprozessors auf Maschinenebene. Beachtenswert ist, daß das Assemblerpaket nicht die üblicherweise auf CP/M-Ebene benutzten 8080-Mnemonics verarbeitet, sondern die wesentlich leistungsfähigeren Z80-Befehle. Neben dem Assembler beinhaltet das Programmpaket einen Linker, mit dessen Hilfe sich mehrere Programm-Module miteinander verbinden lassen. Ebenfalls vorhanden ist ein Monitorprogramm, das unter anderem einen Einzelschrittmodus beherrscht. Zusätzlich zu diesen Programmen befindet sich auf der Diskette ein hervorragender Disassembler. Zu den Besonderheiten des Assemblers gehört, daß er einen Objectcode erzeugt, der mit vorassemblierten Programm-Modulen zusammenzubinden ist. Diese Fähigkeit bietet sich besonders zur Entwicklung großer Programme an.
Durch sie ist es nämlich möglich, einige komplizierte und langwierige Vorgänge bei der Programmierung zu sparen. So braucht man beispielsweise bei der Assemblierung nicht alle Programmteile wiederholt übersetzen zu lassen. Auftretende Fehler sind dadurch außerdem wesentlich einfacher zu lokalisieren. Es besteht sogar die Wahl, Daten zwischen Modulen auszutauschen. Dazu dient auch die Deklaration von Sprungmarken (Labels) als global.
Auch der Disassembler hebt sich deutlich von allgemein üblichen Disassemblern ab, die Maschinencode einfach in die dazugehörigen Assemblerbefehle umwandeln. Im Gegensatz zu diesen Programmen, die in fast jedem Monitor zu finden sind, erzeugt er in Zusammenarbeit mit dem Benutzer ein vollständiges Quellcode-Listing, das sich zur weiteren Bearbeitung an den Assembler übergeben läßt. Der Disassembler erreicht diese Perfektion dadurch, daß er Textbereiche von mindestens acht Byte Länge automatisch erkennt. Außerdem setzt er selbständig Sprungmarken.
Ebenso komfortabel arbeitet der Maschinesprache-Monitor, mit dem sich fertige Maschinencode-Programme umfassend austesten lassen. Der Monitor beinhaltet einen vollständigen Z80-Assembler mit Labelverarbeitung, Symbolen, arithmetischen Ausdrücken und Assembler-Direktiven wie ORG, DEFW und DEFB. Er verwaltet bis zu 16 Breakpoints (Unterbrechungsstellen) gleichzeitig. Das interessanteste Merkmal des Monitors ist die Einzelschritt-Bearbeitung von Assemblerprogrammen, die den dis-assemblierten Maschinencode und alle Registerinhalte anzeigt. Auch ein »Slow-Motion«-Modus mit variabler Ablaufgeschwindigkeit ist verfügbar.
Wollen Sie sich näher mit dem Thema »Künstliche Intelligenz« auseinandersetzen, ist die vierte Diskette das Richtige für Sie. Sie enthält die Programmiersprachen Lisp und Prolog. Man muß aber anmerken, daß diese Versionen der Interpreter nur einen Grundwortschatz enthalten und vor allem aus diesem Grund — aber auch wegen des geringen verfügbaren Speicherplatzes — vorwiegend für kleinere Programme zum Kennenlernen geeignet sind. Das Lisp verbindet den Grundwortschatz der Programmiersprache mit zusätzlichen Fähigkeiten zur objektorientierten Programmierung und benötigt aus diesem Grund mindestens 128 KByte Speicherplatz. Der Prolog-Interpreter hingegen belegt nur 6 KByte und erlaubt dadurch auch umfangreichere Projekte auf den Schneider-Computern.
Das Small-C beinhaltet einen C-Compiler, der eine Untermenge des C-Standardbefehlssatzes implementiert. Der Wortschatz ist so gewählt, daß es nur geringe Einschränkungen gibt. Die Anleitung zu dem Programmpaket enthält — wie auch bei den anderen Programmen — keine ausführliche Einführung in die Programmiersprache. Das kann man zu diesem Preis auch nicht erwarten. Sie stellt lediglich die Merkmale der Programmteile dar und verweist auf Unterschiede beziehungsweise Ergänzungen zum Standard. Wollen Sie sich näher mit dem Thema beschäftigen, hilft Ihnen der Literaturverweis in jeder Anleitung. Erste Eindrücke erhalten Sie aber auch durch die Beispiel-und Demonstrationsprogramme, die das Prinzip jeder einzelnen Sprache deutlich herausstellen.
Das Forth-83 auf der vierten Diskette ist eine der umfangreichsten und komfortabelsten Forth-Imple-mentationen, die derzeit auf dem Markt erhältlich sind. Es gibt kaum eine Programmiersprache, die so kontrovers diskutiert wird wie Forth. Durch die äußerst maschinennahe Programmierung erscheinen die Programme zunächst sehr unübersichtlich und schwer verständlich. Sie sind aber in der Ausführung fast ebenso schnell wie Programme in reinem Maschinencode. Forth-83 besitzt einen sehr umfangreichen Befehls-Wortschatz und dazu nützliche Erweiterungen, wie einen Decompiler, Assembler und einen bildschirmorientierten Editor. Der Compiler hält sich an den, im Buch »Starting Forth« erstmals festgelegten, Standard. Zusätzlich zu diesen Merkmalen, die sogar viele kommerzielle Programme in den Schatten stellen, ist Forth-83 sogar multitaskingfähig. Eigene Änderungen oder Anpassungen des Compilers und die dadurch neu entstandene Forth-Version lassen sich mit dem SAVE SYSTEM-Befehl speichern.
Die letzte Diskette enthält verschiedene CP/M-Hilfsprogramme, um die Arbeit unter diesem Betriebssystem wesentlich zu erleichtern. So läßt sich zum Beispiel der Umfang einer Datei mit Hilfe des Uti-litys »Squeeze« durch Komprimierung auf durchschnittlich die Hälfte verringern. Das Programm »Find« erlaubt dem Anwender, Dateien nach Zeichenketten durchsuchen zu lassen. Sehr hilfreich ist auch der CP/M-Emulator, der unter CP/M-Plus die CP/M 2.2-Programmierumgebung simuliert und somit viele unter CP/M-Plus nicht lauffähige Programme aktiviert. Des weiteren findet der CP/M-Programmierer auf dieser Diskette Programme, die den freien Speicherplatz anzeigen, gelöschte Dateien wieder zugänglich machen und ein sortiertes Inhaltsverzeichnis ausgeben. Das umfangreichste Programm ist ein Disketten-Monitor, der den Disketteninhalt anzeigt und Änderungen erlaubt. Außergewöhnlich und wichtig ist, daß der Editor eine kleine »Programmiersprache« enthält, die sogar Programmschleifen unterstützt und sich sehr sinnvoll einsetzen läßt, um komplexe Diskettenoperationen zu vereinfachen.
Auf jeder Diskette, die eine Programmiersprache enthält, befindet sich entweder ein speziell zugeschnittener Editor oder der in Turbo-Pascal geschriebene ED.
ED ist in der Bedienung weitgehend Wordstar-kompatibel und bietet darüber hinaus weitere Funktionen. So unterstützt ED zum Beispiel die Cursor-Tasten der CPCs und nutzt gar die Copy-Taste sinnvoll.
Abschließend ist zu sagen, daß Schneider CPC- und Joyce-Benutzern mit den Programmen dieser Public Domain-Reihe hervorragende Anwendungen zur Verfügung stehen, die in keiner Programmsammlung fehlen sollten. Wichtig für CPC-Anwender ist, daß die Programme auch auf 514-Zoll-Diskette erhältlich sind. Dadurch sind sie auch für Besitzer von Vortex-Laufwerken interessant. Die Disketten sind mit den Handbüchern zu einem Preis von 30 Mark fast konkurrenzlos preiswert. Vor allem für Programmierer, die sich außer mit Basic auch mit anderen Programmiersprachen beschäftigen wollen, ist dieses Angebot interessant.
(Markus Zietlow/ja)