|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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.
Inhalt1 Paketübersicht
2 Installation
3 Neuerstellung aus den Quellen
4 Aussichten 1 Paketübersichtcpm4l-base-0.2-20050323.i586.rpm
Basispacket (Laufzeitumgebung) Besispaket (Laufzeitumgebung) cpm4l-base-0.2-20050323.src.rpm
(Quellpaket) Quellen: Besispaket (Laufzeitumgebung) cpm4l-fdutils-5.5-20050323.i586.rpm
Floppy Disk Werkzeug Floppy Disk Werkzeug cpm4l-fdutils-doc-5.5-20050323.i586.rpm
(Dokumentationspaket) Dokumentation: Floppy Disk Werkzeug cpm4l-fdutils-5.5-20050323.src.rpm
(Quellpaket) Quellen: Floppy Disk Werkzeug cpm4l-cpmtools-2.4-20050323.i586.rpm
CP/M Dateisystem Werkzeug CP/M Dateisystem Werkzeug cpm4l-cpmtools-doc-2.4-20050323.i586.rpm
(Dokumentationspaket) Dokumentation: CP/M Dateisystem Werkzeug cpm4l-cpmtools-2.4-20050323.src.rpm
(Quellpaket) Quellen: CP/M Dateisystem Werkzeug cpm4l-yaze-1.14-20050324.i586.rpm
Yet Another Z80 Emulator Yet Another Z80 Emulator cpm4l-yaze-doc-1.14-20050324.i586.rpm
(Dokumentationspaket) Dokumentation: Yet Another Z80 Emulator cpm4l-yaze-1.14-20050324.src.rpm
(Quellpaket) Quellen: Yet Another Z80 Emulator cpm4l-pcmtools-20050419-20050424.i586.rpm
PC/M Werkzeuge PC/M Werkzeuge cpm4l-pcmtools-20050419-20050424.src.rpm
(Dokumentationspaket) Quellen: PC/M Werkzeuge cpm4l-libdsk-1.1.4-20050323.i586.rpm
Diskettenbibliothek ( E X P E R I M E N T A L ) Diskettenbibliothek cpm4l-libdsk-tools-1.1.4-20050323.i586.rpm
(Werkzeugpaket) Werkzeuge: Diskettenbibliothek cpm4l-libdsk-doc-1.1.4-20050323.i586.rpm
(Dokumentationspaket) Dokumentation: Diskettenbibliothek cpm4l-libdsk-devel-1.1.4-20050323.i586.rpm
(Entwicklungspaket) Entwicklung: Diskettenbibliothek cpm4l-libdsk-1.1.4-20050323.src.rpm
(Quellpaket) Quellen: Diskettenbibliothek cpm4l-cpmtools-2.4-20050323_libdsk.i586.rpm
CP/M Dateisystem Werkzeug mit LIBDSK ( E X P E R I M E N T A L ) CP/M Dateisystem Werkzeug mit LibDsk Benutzung cpm4l-cpmtools-doc-2.4-20050323_libdsk.i586.rpm
(Dokumentationspaket) Dokumentation: CP/M Dateisystem Werkzeug mit LibDsk Benutzung cpm4l-cpmtools-2.4-20050323_libdsk.src.rpm
(Quellpaket) Quellen: CP/M Dateisystem Werkzeug mit LibDsk Benutzung cpm4l-yaze-ag-2.01-20050325.i586.rpm
Yet Another Z80 Emulator AG Version ( E X P E R I M E N T A L ) Yet Another Z80 Emulator (Andreas Gerlich Version) cpm4l-yaze-ag-doc-2.01-20050325.i586.rpm
(Dokumentationspaket) Dokumentation: Yet Another Z80 Emulator (Andreas Gerlich Version) cpm4l-yaze-ag-2.01-20050325.src.rpm
(Quellpaket) Quellen: Yet Another Z80 Emulator (Andreas Gerlich Version) 2 InstallationJe 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 QuellenSollten 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 AussichtenJe 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.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright © 2000-2021 by Li-Pro.Net · info (at) li-pro (dot) net · Tel.: +49 (0) 3641 / 21 23 02 · cms: phpwcms | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||