{home}Li-Pro.Net{/home}
Das Familiennetzwerk
Home | Stephan Linz | Projekte | Hobby | Kontakt | Nutzerzugang

Inhalt

CP/M unter MS-DOS
MyZ80 von Simeon Cran
Z80MU von Joan Riff
SuperCopy (Kurzinfo)

22DISK zusammen mit 22NICE

CP/M Emulation mit Ansprüchen unter DOS

Mit den beiden Sharewareprodukten 22DISK und 22NICE von Sydex, Inc. kann man bequem auf CP/M Disketten zugreifen und CP/M Programme unter DOS ausführen. Der Zugriff auf CP/M Disketten erfolgt über verschiedene kleine Programme oder ein zentrales Menüprogramm. Der Emulator arbeitet als BDOS/BIOS Abstraktionsschicht ohne eigenem CCP, d.h. ein zu emulierendes Binary wird mit Hilfe des Emulators direkt aus der Kommandozeile von DOS aufgerufen. Besonderheit dieses Emulators ist dabei die vorherige Überführung eines CP/M Programms in ein DOS Programm. CP/M Binaries werden somit wie ein DOS Programm direkt ausführbar.

Inhalt


1 Installation
1.1 notwendige Dateien
1.2 Programme, Dokumentation und Zusätze installieren
1.3 Umgebungsvariable PATH anpassen
2 Diskettenzugriff
3 Emulation
3.1 Erzeugung einer ROM-Version
3.2 Erzeugung einer Diskettenversion
4 Systemdiskette generieren
5 Internetreferenzen

1 Installation

  • notwendige Dateien herunter laden
  • Programme, Dokumentation und Zusätze installieren / kopieren.
  • Für den globalen Zugriff auf die Werkzeuge CMENU und GENCOM die Umgebungsvariable PATH anpassen.

1.1 notwendige Dateien

22NCE142.ZIP

Integrierter CP/M 2.2 Emulator
zip, 51K, 12/03/05, 880 downloads

22DSK144.ZIP

CP/M-zu-DOS Diskettenaustausch
zip, 227K, 12/03/05, 826 downloads

PCMSYS.LBL

PC/M Systemspuren für 22DISK
lbl, 13K, 10/24/16, 926 downloads

PCM.DEF

PC/M Diskettenformate für 22DISK
def, 1,8K, 12/03/05, 873 downloads

22EDIT.BAT

PC/M Integration in 22DISK
bat, 0,03K, 12/03/05, 808 downloads

PCMSYS33.ZIP

PC/M Systemquellen 3.30
zip, 122,3K, 12/03/05, 1437 downloads

DAS IST KEINE FREIE SOFTWARE! Es handelt sich hier um Shareware, die in ihrer Funktion und Laufzeit nicht eingeschränkt ist, aber bei Nutzung über die Testphase hinaus eine Registrierung erfordert. Diese ist kostenpflichtig.

1.2 Programme, Dokumentation und Zusätze installieren

auf Kommandozeile

C:\> C:
C:\> CD C:\<downloadverzeichnis>
C:\> COPY 22DSK144.ZIP A:
        1 Datei(en) kopiert

C:\> A:
A:\> PKUNZIP 22DSK144.ZIP
PKUNZIP (R)    ...

  ...
  ...
  ...

A:\> MKDIR C:\<installationsverzeichnis>
A:\> 22DINST C:\<installationsverzeichnis>
Datei nicht gefunden - READ.ME!
Copying files...please wait

  ...

A:\> COPY 22DISK.DOC C:\<installationsverzeichnis>
        1 Datei(en) kopiert

A:\> COPY READ.ME C:\<installationsverzeichnis>
        1 Datei(en) kopiert

A:\> C:
C:\> CD C:\<downloadverzeichnis>
C:\> COPY 22EDIT.BAT C:\<installationsverzeichnis>
        1 Datei(en) kopiert

C:\> COPY PCM.DEF C:\<installationsverzeichnis>
        1 Datei(en) kopiert

C:\> COPY PCMSYS.LBL C:\<installationsverzeichnis>
        1 Datei(en) kopiert

C:\> CD C:\<installationsverzeichnis>
C:\> 22EDIT

  ...

C:\> PKUNZIP C:\<downloadverzeichnis>\22NCE140.ZIP
PKUNZIP (R)    ...

  ...
  ...
  ...

C:\> _
Mit dem Befehl 22EDIT im vorletzten Schritt wurde der Inhalt von PCM.DEF in eine für 22DISK verständliche Indexstruktur überführt. Sollte man in PCM.DEF Veränderungen vornehmen, so ist dieser Schritt zu wiederholen.

Die Datei PCMSYS.LBL ist für die Erzeugung einer PC/M Systemdiskette wichtig und beinhaltet die notwendige Systemspur. Da der Aufbau und somit auch das System des PC/M modular gestaltet ist, wird es für jeden einzelnen Aufbau notwendig sein, ein eigenes, angepasstes System zu generieren (dazu mehr in Abschnitt 3 und 4). Man sollte auf keinen Fall den Inhalt der originalen PCMSYS.LBL für einen anderen PC/M benutzen, wenn dieser vom Standardaufbau abweicht!

1.3 Umgebungsvariable PATH anpassen

in C:\AUTOEXEC.BAT

SET PATH=%PATH%;C:\<installationsverzeichnis>

2 Diskettenzugriff

22DISK besteht aus einer Programmsammlung und einem Menüprogramm, über das die einzelnen Programme aufgerufen werden. Eine ausführliche Beschreibung der einzelnen Programme kann man in der Dokumentation zu 22DISK finden. Um schnell und einfach auf eine CP/M Diskette zuzugreifen, bietet sich das zentrale Menüprogramm CMENU an. Ruft man es auf, erhält man ein Menü mit 9 Einträgen. Zu Beginn muss über die Menüpunkte 1 und 2 der gewünschte CP/M Diskettentyp und das zu benutzende Laufwerk am PC eingestellt werden.

Ein Beispiel: Mein PC/M hat als Standardtyp immer den SCP Typ mit 640 KByte Fassungsvermögen und 4 Systemspuren (16 KByte) benutzt. Dieser ist dem des PC1715 gleich. Ich wähle also Menüpunkt 1, lasse mir mit ENTER die Liste möglicher Typen anzeigen, wähle mit den Cursortasten den Typ R624 und bestätige mit ENTER. Mein großes Diskettenlaufwerk befindet sich als zweites Laufwerk B: im System. Ich wähle also Menüpunkt 2, gebe B: ein und bestätige mit ENTER. Jetzt sollte unter dem Menü von 22DISK folgendes stehen:
R624  PC1715 SCP   (80*2* 16,256 4 OFS 4k DIR)   5.25", drive B:
Nachdem der richtige Diskettentyp eingestellt ist, kann man jetzt alte CP/M Disketten auslesen. Das möchte ich am Beispiel der PC/M Systemdiskette fortsetzen. Um zunächst den Inhalt anzusehen, wählt man den Menüpunkt 6 und gibt mit einem ENTER an, dass man alle Dateien sehen will. Ansonsten hätte man hier noch die Möglichkeit, durch Wildcard Zeichen eine Einschränkung vorzunehmen. Danach sollte folgendes zu sehen sein:
PC1715 SCP   (80*2* 16,256 4 OFS 4k DIR)   5.25" format

B0:BAS.ERL      B0:BDOS.ERL     B0:BESTLPL.PCM  B0:BESTSOFT.PCM
B0:BIOS.ERL     B0:CCP.ERL      B0:INTERROR.PCM B0:LESEDAS.PCM
B0:LINKMT.COM   B0:M80.COM      B0:PCMBAS.MAC   B0:PCMBIOS.MAC
B0:PCMBOOT.MAC  B0:PCMCOM.MAC   B0:PCMDEF.MAC   B0:PCMDISK.COM
B0:PCMDISK.MAC  B0:PCMFORM.COM  B0:PCMIO.MAC    B0:PCMSVDB.MAC
B0:PCMSYS.SYP   B0:PCMURLAD.MAC B0:PCMVAR.MAC   B0:PCMVDB.COM
B0:PCMVTAPE.MAC B0:PCMVTC.COM   B0:SYSDISK.COM  B0:SYSINFO.PCM
B0:SYSROM.COM   B0:UMBA2732.PCM


390K free on drive B:
Press any key to continue..._
Um die gesamten Daten von der alten CP/M Diskette zu retten, sollten alle angezeigten Dateien nach DOS kopiert und anschließend auf ein geeignetes Backupmedium gebracht werden. Hierzu wählt man den Menüpunkt 3 und gibt mit einem ENTER an, dass man alle Dateien kopieren will. Danach wird das Zielverzeichnis unter DOS abgefragt. Man bestätige mit einem ENTER das aktuelle Verzeichnis oder gibt ein anderes an. Danach sollten folgende Ausschriften erscheinen:
PC1715 SCP   (80*2* 16,256 4 OFS 4k DIR)   5.25" format

Copying B0:BAS.ERL to BAS.ERL
Copying B0:BDOS.ERL to BDOS.ERL
Copying B0:BESTLPL.PCM to BESTLPL.PCM
Copying B0:BESTSOFT.PCM to BESTSOFT.PCM
Copying B0:BIOS.ERL to BIOS.ERL
Copying B0:CCP.ERL to CCP.ERL
Copying B0:INTERROR.PCM to INTERROR.PCM
Copying B0:LESEDAS.PCM to LESEDAS.PCM
Copying B0:LINKMT.COM to LINKMT.CPM
Copying B0:M80.COM to M80.CPM
Copying B0:PCMBAS.MAC to PCMBAS.MAC
Copying B0:PCMBIOS.MAC to PCMBIOS.MAC
Copying B0:PCMBOOT.MAC to PCMBOOT.MAC
Copying B0:PCMCOM.MAC to PCMCOM.MAC
Copying B0:PCMDEF.MAC to PCMDEF.MAC
Copying B0:PCMDISK.COM to PCMDISK.CPM
Copying B0:PCMDISK.MAC to PCMDISK.MAC
Copying B0:PCMFORM.COM to PCMFORM.CPM
Copying B0:PCMIO.MAC to PCMIO.MAC
Copying B0:PCMSVDB.MAC to PCMSVDB.MAC
Copying B0:PCMSYS.SYP to PCMSYS.SYP
Copying B0:PCMURLAD.MAC to PCMURLAD.MAC
Copying B0:PCMVAR.MAC to PCMVAR.MAC
Copying B0:PCMVDB.COM to PCMVDB.CPM
Copying B0:PCMVTAPE.MAC to PCMVTAPE.MAC
Copying B0:PCMVTC.COM to PCMVTC.CPM
Copying B0:SYSDISK.COM to SYSDISK.CPM
Copying B0:SYSINFO.PCM to SYSINFO.PCM
Copying B0:SYSROM.COM to SYSROM.CPM
Copying B0:UMBA2732.PCM to UMBA2732.PCM
30 file(s) copied
Copy complete

Press any key to continue -_
Beim Kopieren von CP/M Programmen (*.COM) durch 22DISK werden diese automatisch in *.CPM umbenannt, um ein versehentliches Ausführen unter DOS zu verhindern. In Abschnitt 3 wird gezeigt, wie diese Dateien unter DOS ausgeführt werden können.

So, wie Dateien von CP/M Disketten nach DOS kopiert werden können, kann man äquivalent mit dem Menüpunkt 4 Dateien von DOS auf eine CP/M Diskette kopieren. Über den Menüpunkt 5 kann eine Diskette für die Arbeit unter CP/M vorbereitet werden. Dabei wird die Disketten mit den aktuell benutzten Zylinder-/Kopf-/Spur-Dimensionen formatiert und anschließend das Inhaltsverzeichnis CP/M-konform angelegt. Die Menüpunkte 7 und 8 ergänzen den Funktionsumfang der Diskettenarbeit um die beiden Aktionen Datei anzeigen und Datei löschen. Diese entsprechen so den beiden bekannten CP/M Kommandos TYPE und ERA.

3 Emulation

Hier soll nun gezeigt werden, wie mit den zuvor gesicherten Daten und dem Emulator 22NICE ein neues System für den PC/M erstellt werden kann. Mindestens notwendig sind folgende Dateien:
  • BDOS.ERL
  • CCP.ERL
  • PCM*.MAC
  • M80.CPM
  • LINKMT.CPM
Diese und weitere Daten sind in der Datei PCMSYS33.ZIP enthalten. Mit folgender Anweisung wird das Archiv entpackt:
C:\> CD C:\<installationsverzeichnis>

C:\> PKUNZIP -d C:\<downloadverzeichnis>\PCMSYS33.ZIP
PKUNZIP (R)    ...

  ...
  ...
  ...

C:\> _
Jetzt sollte das Verzeichnis PCMSYS.330 vorhanden sein, in das gwechselt wird. Für die Übersetzung der Assemblerquellen müssen die beiden Programme M80.COM (alias M80.CPM) und LINKMT.COM (alias LINKMT.CPM) unter DOS ausführbar sein. Dazu überführet man mit Hilfe des Emulator 22NICE diese CP/M Programme zu einer DOS-COM-Datei. Das geschieht mit dem Werkzeug GENCOM unter Angabe des zu emulierenden Prozessors, hier Z80:
C:\> CD C:\<installationsverzeichnis>\PCMSYS.330
C:\> GENCOM M80 PRO=Z80
C:\> GENCOM LINKMT PRO=Z80
C:\> M80

*^C
C:\> LINKMT

Link/MT+ Release 5.5

Unable to create .SYP file

C:\> _
Die beiden Aufrufe am Ende zeigen, dass die alten CP/M Programme eingebettet in den Emulator 22NICE unter DOS funktionieren. Nun können die Quellen übersetzt werden. Je nach Inhalt der Variable sysver in der Quelldatei PCMDEF.MAC wird entweder eine ROM- oder eine Diskettenversion erzeugt. Die ROM-Version wird als PCMROM.COM (alias PCMROM.CPM) abgespeichert und stellt den Inhalt der EPROMs dar. Die Diskettenversion befindet sich in PCMSYS.COM (alias PCMSYS.CPM). Der Inhalt dieser Datei wird für die Systemspuren benutzt, um eine PC/M Systemdiskette zu erzeugen (siehe Abschnitt 4).

3.1 Erzeugung einer ROM-Version

auf Kommandozeile

C:\> CD C:\<installationsverzeichnis>\PCMSYS.330
C:\> M80 BIOS.ERL=PCMBIOS/M/Z

> Uebersetzung System PC/M * Version +++ AM90 +++
> Bildschirm PC/M-Original 64*16 (mit Zwischenzeilen)
> Original PC/M-Tastatur
> mit Tonausgabe
> mit Statuszeile
> Disketten-Urlader
> System-RAM-Floppy 118k Byte (Laufwerk A)
> Floppy-Laufwerke vorgesehen
> V-Tape Kassettensystem
> ROM-Version (auf Adresse 0d5b0h linken)
> Eingabe: linkmt pcmrom=bios/p:0d5b0

No Fatal error(s)

C:\> LINKMT PCMROM=BIOS/P:0D5B0

Link/MT+ Release 5.5

Processing file-   BIOS    .ERL

Undefined Symbols:


No Undefined Symbols



0060 (decimal) records written to .COM file


Total Data: 0000H bytes
Total Code: 1DD0H bytes
Remaining : A412H bytes

Link/MT+ Release 5.5 processing completed

C:\> _

3.2 Erzeugung einer Diskettenversion

auf Kommandozeile

C:\> CD C:\<installationsverzeichnis>\PCMSYS.330
C:\> M80 BAS.ERL=PCMBAS/M/Z


No Fatal error(s)

C:\> M80 BIOS.ERL=PCMBIOS/M/Z

> Uebersetzung System PC/M * Version +++ AM90 +++
> Bildschirm PC/M-Original 64*16 (mit Zwischenzeilen)
> Original PC/M-Tastatur
> mit Tonausgabe
> mit Statuszeile
> Disketten-Urlader
> System-RAM-Floppy 118k Byte (Laufwerk A)
> Floppy-Laufwerke vorgesehen
> V-Tape Kassettensystem
> Disketten-Version (auf Adresse 0bff0h linken)
> Eingabe: linkmt pcmsys=bas,ccp,bdos,bios/m/p:0bff0

No Fatal error(s)

C:\> LINKMT PCMSYS=BAS,CCP,BDOS,BIOS/M/P:0BFF0

Link/MT+ Release 5.5

Processing file-   BAS     .ERL
Processing file-   CCP     .ERL
Processing file-   BDOS    .ERL
Processing file-   BIOS    .ERL

Undefined Symbols:


No Undefined Symbols

External Symbol Map:

DISKIO   E1DF    BEGVT    E488    BDOS     C800    CCP      C000
BIOS     D600



0104 (decimal) records written to .COM file


Total Data: 0000H bytes
Total Code: 3390H bytes
Remaining : 8E1AH bytes

Link/MT+ Release 5.5 processing completed

C:\> _

4 Systemdiskette generieren

Nach der erfolgreichen Erzeugung einer Diskettenversion muss die Datei PCMSYS.CPM als sogenanntes LABEL für 22DISK (PCMSYS.LBL)  bereitgestellt und unter Verwendung von PCM.DEF und 22EDIT ein neuer 22DISK Index erstellt werden. Danach kann mit dem Kommando CFMT (CP/M FORMAT) eine neue CP/M Diskette initialisiert werden. Hierbei wird die Diskette zunächst wie eine SCP Diskette mit 624 KByte Fassungsvermögen formatiert, das Inhaltsverzeichnis geschrieben und zusätzlich der Inhalt der zuvor bekannt gegebenen LABEL-Datei PCMSYS.LBL in den Bereich der Systemspuren geschrieben. Benutzt wird dabei der spezielle CP/M Diskettentyp PCMS. Er ist dem Typ R624 gleich und nur um den LABEL Eintrag erweitert, um die Systemspuren mit Inhalt zu füllen. Wir geben folgendes ein:
C:\> CD C:\<installationsverzeichnis>\PCMSYS.330
C:\> COPY PCMSYS.CPM C:\<installationsverzeichnis>\PCMSYS.LBL
        1 Datei(en) kopiert

C:\> CD C:\<installationsverzeichnis>
C:\> 22EDIT

  ...

C:\> CFMT /PCMS B:
PC/M System   (80*2* 16,256 4 OFS 4k DIR)   5.25" format

Insert blank diskette into drive B: and enter "G" to begin;
Anything else will exit to DOS without formatting - G

Formatting track 79

Replace diskette in drive B: and type any key to return to DOS

C:\> _

5 Internetreferenzen

Auch andere CP/M Anwender berichten über ihre Erfahrungen mit diesem Emulator ...

C128 1581-Format unter 22DISK

CP/M Club Zeitung Nr. 1 -- Sep. 1999, Seite 17

Sydex, Inc.

Diskette Handling and Data Conversion

22NICE Version 1.42

22DISK Version 1.44


Autor:Stephan Linz
Revision:2011/01/04 - 17:41 - © Li-Pro.Net

stopsoftwarepatents.eu petition banner