|
|
CP/M for Linux (CPM4L)
Werkzeugsammlung rund um CP/M unter Linux
"CP/M for Linux", alias CPM4L, ist eine angehende Sammlung von freien Werkzeugen rund um das Thema CP/M. Die hier zusammengefassten Werkzeuge sind allesamt frei im Sinne von Open Source und speziell für das Betriebssystem Linux zusammengestellt. Der Komfort der hier für Linux vorgestellten Werkzeuge ist oft mit denen unter DOS nicht vergleichbar, immerhin handelt es sich dabei um ausschließlich freie Programme. Da der Einarbeitungsaufwand doch beträchtlich sein kann und sich die Erzeugung der Programme aus den Quellen heraus diffizil gestalten kann, habe ich eine Tool Chain auf Basis von RPM Paketen aufgesetzt. Unter dem Namen "CP/M for Linux" werden sich so nach und nach alle von mir verwendeten und ausgetesteten Werkzeuge zum Thema CP/M unter Linux wiederfinden.
Inhalt
1 Paketübersicht
2 Installation
3 Neuerstellung aus den Quellen 4 Aussichten
1 Paketübersicht
Basispacket (Laufzeitumgebung)
rpm, 8.1K, 12/24/24, 1767 downloads
Besispaket (Laufzeitumgebung)
(Quellpaket)
rpm, 133.6K, 12/04/05, 1345 downloads
Quellen: Besispaket (Laufzeitumgebung)
Floppy Disk Werkzeug
rpm, 84.9K, 12/04/05, 1572 downloads
Floppy Disk Werkzeug
(Dokumentationspaket)
rpm, 664.4K, 12/04/05, 1047 downloads
Dokumentation: Floppy Disk Werkzeug
(Quellpaket)
rpm, 183.6K, 12/04/05, 1645 downloads
Quellen: Floppy Disk Werkzeug
CP/M Dateisystem Werkzeug
rpm, 68.2K, 12/04/05, 1875 downloads
CP/M Dateisystem Werkzeug
(Dokumentationspaket)
rpm, 18.9K, 12/04/05, 1493 downloads
Dokumentation: CP/M Dateisystem Werkzeug
(Quellpaket)
rpm, 136K, 12/04/05, 2222 downloads
Quellen: CP/M Dateisystem Werkzeug
Yet Another Z80 Emulator
rpm, 100.7K, 12/04/05, 1422 downloads
Yet Another Z80 Emulator
(Dokumentationspaket)
rpm, 21.8K, 12/04/05, 1863 downloads
Dokumentation: Yet Another Z80 Emulator
(Quellpaket)
rpm, 131.8K, 12/04/05, 1989 downloads
Quellen: Yet Another Z80 Emulator
PC/M Werkzeuge
rpm, 158.2K, 12/04/05, 1449 downloads
PC/M Werkzeuge
(Dokumentationspaket)
rpm, 165.1K, 12/04/05, 1938 downloads
Quellen: PC/M Werkzeuge
Diskettenbibliothek ( E X P E R I M E N T A L )
rpm, 51.5K, 12/04/05, 1339 downloads
Diskettenbibliothek
(Werkzeugpaket)
rpm, 14.2K, 12/04/05, 2248 downloads
Werkzeuge: Diskettenbibliothek
(Dokumentationspaket)
rpm, 249.3K, 12/04/05, 1277 downloads
Dokumentation: Diskettenbibliothek
(Entwicklungspaket)
rpm, 58.9K, 12/04/05, 2049 downloads
Entwicklung: Diskettenbibliothek
(Quellpaket)
rpm, 702.4K, 12/04/05, 1035 downloads
Quellen: Diskettenbibliothek
CP/M Dateisystem Werkzeug mit LIBDSK ( E X P E R I M E N T A L )
rpm, 67.6K, 12/04/05, 1761 downloads
CP/M Dateisystem Werkzeug mit LibDsk Benutzung
(Dokumentationspaket)
rpm, 18.9K, 12/04/05, 1841 downloads
Dokumentation: CP/M Dateisystem Werkzeug mit LibDsk Benutzung
(Quellpaket)
rpm, 136.2K, 12/04/05, 1906 downloads
Quellen: CP/M Dateisystem Werkzeug mit LibDsk Benutzung
Yet Another Z80 Emulator AG Version ( E X P E R I M E N T A L )
rpm, 1.4M, 12/04/05, 921 downloads
Yet Another Z80 Emulator (Andreas Gerlich Version)
(Dokumentationspaket)
rpm, 78.7K, 12/04/05, 1309 downloads
Dokumentation: Yet Another Z80 Emulator (Andreas Gerlich Version)
(Quellpaket)
rpm, 1.3M, 12/04/05, 927 downloads
Quellen: Yet Another Z80 Emulator (Andreas Gerlich Version)

2 Installation
Je nach Wunsch werden die notwendigen RPM Pakete aus der Paketübersicht aus Abschnitt 1 herunter geladen. Für eine minimale und von mir bisher auch halbwegs getestete Umgebung sind mindestens folgende Pakete notwendig:

Hierbei sind die Dokumentationspakete nur zur Vollständigkeit wichtig. Die Quellpakete werden nur für die Kurzanleitung in Abschnitt 3 benötigt. Alternativ können zu einigen Paketen auch die experimentellen Weiterentwicklungen installiert werden. Oft benötigen diese noch andere von mir bisher kaum untersuchte/geprüfte Programmteile, wie z.B. die Diskettenbibliothek LIBDSK für die CPMTOOLS. Alle hier genannten experimentellen Pakete sind ebenfalls in der Paketübersicht in Abschnitt 1 enthalten.
Die RPM Pakete werden nach dem herunter laden mit Rootrechten installiert. Dabei muss die Reihenfolge eingehalten werden, da die Pakete teilweise aufeinander aufbauen. In vielen Linux Distributionen kann man hierzu spezielle grafische Werkzeuge benutzen, wie z.B. YAST(2) unter SuSE Linux. Da ich die RPM Pakete von CPM4L so weit wie möglich unabhängig von einer speziellen Linux Distribution halten will, werde ich hier nur kurz eine Anleitung für die Kommandozeile angeben. Diese funktioniert dann in aller Regel immer, vorausgesetzt, das Verwaltungswerkzeug rpm ist vorhanden und voll funktionsfähig.
Alle RPM Pakete sind ausführbar auf Pentium Systemen und wurden erstellt und getestet unter Mandrake Linux 10.0. Die Installation erfolgt durch:
[user@host downloads]$ su -
Password:
[root@host downloads]# rpm -hiv cpm4l-base-0.2-yyyymmdd.i586.rpm
Preparing... ########################################### [100%]
1:cpm4l-base ########################################### [100%]
[root@host downloads]# rpm -hiv cpm4l-fdutils-5.4-yyyymmdd.i586.rpm
Preparing... ########################################### [100%]
1:cpm4l-fdutils ########################################### [100%]
[root@host downloads]# rpm -hiv cpm4l-cpmtools-2.1-yyyymmdd.i586.rpm
Preparing... ########################################### [100%]
1:cpm4l-cpmtools ########################################### [100%]
[root@host downloads]# rpm -hiv cpm4l-yaze-1.14-yyyymmdd.i586.rpm
Preparing... ########################################### [100%]
1:cpm4l-yaze ########################################### [100%]
[root@host downloads]# rpm -hiv cpm4l-pcmtools-yyyymmdd-yyyymmdd.i586.rpm
Preparing... ########################################### [100%]
1:cpm4l-pcmtools ########################################### [100%]
[root@host downloads]# rpm -hiv cpm4l-*-doc-*.rpm
Preparing... ########################################### [100%]
1:cpm4l-cpmtools-doc ########################################### [ 33%]
2:cpm4l-fdutils-doc ########################################### [ 66%]
3:cpm4l-yaze-doc ########################################### [100%]
[root@host downloads]# exit
[user@host downloads]$ _

Durch das Basispaket cpm4l-base werden einige systemnahe Setupscripte installiert, die bei jedem Login abgearbeitet werden. Um sicherzustellen, dass alle hier gemachten Beschreibungen funktionieren, sollte man sich jetzt als Root abmelden und gleich wieder als normaler Benutzer anmelden und mit diesen Rechten alle weiteren Operationen durchführen. Dieser muss natürlich lesende und schreibende Erlaubnis auf Diskettenlaufwerke /dev/fd0 und/oder /dev/fd1 besitzen. Das lässt sich am Besten über Gruppenrechte erreichen. Viele Linux Distributionen sind dafür schon vorbereitet.
Die Pakete cpm4l-fdutils und cpm4l-cpmtools sind bereits mit Konfigurationen für Robotron CP/M Diskettenformate, speziell die vom PC/M, ausgestattet und voreingestellt. Mit der Benutzung und dem Umgang mit diesen Werkzeugen beschäftigt sich ein witerer Artikel von mir: "CPMTOOLS und FDUTILS zusammen mit YAZE".
3 Neuerstellung aus den Quellen
Sollten aus Gründen fehlender Binär- oder Systemkompatibilität die vorgefertigten Pakete nicht verwendbar sein, kann man mit folgenden Angaben aus den Quellpaketen eigene Binär- und Dokumentationspakete erzeugen. In aller Regel kann dieser Schritt als unproblematisch angesehen werden, da in den Quellpaketen bereits alle notwendigen Schritte und eventuell notwendige Fehlerkorrekturen enthaltet sind. Die Quellpakete werden in Abschnitt 1 in der Paketübersicht mit aufgelistet und müssen zuvor von dort herunter geladen werden. Danach werden die Pakete mit Hilfe des Verwaltungswerkzeuges rpm neu übersetzt, wobei man die Reihenfolge für die aufeinander aufbauenden Pakete berücksichtigen muss; z.B. ist das experimentelle Paket cpm4l-cpmtools-2.4-yyyymmdd_libdsk von der zuvor übersetzten (und installierten) Diskettenbibliothek cpm4l-libdsk abhängig!
In vielen neueren Linux Distributionen muss für die Verarbeitung von RPM Quellpaketen (*.src.rpm) das Kommandowerkzeug rpmbuild anstatt rpm benutzt werden. Daher werde ich hier nur noch mit rpmbuild arbeiten. Die Argumente sind aber identisch zum ehemaligen Aufruf über das Kommando rpm selbst. Die Neuübersetzung muss nicht zwangsläufig mit Rootrechten ausgeführt werden, insofern man sich das Verwaltungswerkzeug rpm (bzw. rpmbuild) über die persönliche Konfigurationsdatei ~/.rpmmacros im Heimatverzeichnis entsprechend eingerichtet hat. Hier ein abstraktes Beispiel zum Adaptieren:
~/.rpmmacros
%_topdir <users_home>/RPM
%_tmppath %{_topdir}/tmp
%_signature gpg
%_gpg_path <users_home>/.gnupg
%_gpg_name <users_gpg_key_string>
%_unpackaged_files_terminate_build 1
%debug_package %{nil}

Wie bereits erwähnt, werden dei RPM Quellpakete mit dem Kommando rpmbuild übersetzt. Für das Besispaket (Laufzeitumgebung) sehe die Kommandozeile folgendermaßen aus:
[user@host downloads]$ rpmbuild --rebuild cpm4l-base-0.2-yyyymmdd.src.rpm
... ... ...
Nach erfolgreicher Neuübersetzung, kann das am Ende der Übersetzung angezeigte RPM Binärpaket mit Rootrechten installiert werden. Äquivalent wird mit allen anderen Quellpaketen umgegangen. Die Installation des(der) neuen Binärpaket(e) kann bei vielen Paketen entfallen, insofern nicht Teile davon zur Übersetzung anderer CPM4L Quellpakete benötigt werden. Entsprechende Fehlermeldungen über Konflikte zu benötigten Paketen sollten also ernst genommen und entsprechend aufgelöst werden! Hat man vor, die selbst erzeugten RPM Pakete sowieso zu installieren, dann kann man das nach jeder Neuübersetzung immer sofort machen und geht damit Problemen aus dem Weg.

4 Aussichten
Je nach meinem Zeitrahmen werde ich mich in Zukunft verstärkt der Bereitstellung von Hochsprachen wie Pascal, C und Modula-2 witmen. Diese Compiler liegen heute nur noch als lauffähige CP/M Programme vor, müssen also auf einem Fremdsystem wie Linux innerhalb eines Emulators ausgeführt werden. Das Ziel ist somit die transparente Kapselung solcher Programme innerhalb eines CP/M Emulators, damit die Programmaufrufe wie gewöhnliche Linux Programme aussehen und innerhalb von GNU Makefiles oder Shellscripten benutzt werden können. Ob hierfür der bereits untersuchte Emulator YAZE bzw. AZE-AG geeignet ist, wird sich zeigen. Eventuell werden auf diesem weg auch noch andere Emulatoren Einzug in CPM4L halten.
Ferner wird die Thematik PC/M ebenso mit nachdruck behandelt. Zusätzlich zu den bereits integrierten PC/M Tools, welche auch weiter ausgebaut werden, sollen in naher Zukunft alle PC/M Systemquellen zusammen mit einem geeigneten Z80 Assembler und Linker für Linux bereitgestellt werden.
Autor: | Stephan Linz |
Revision: | 2021/01/14 - 00:04 - © Li-Pro.Net |
|
|
|