###   Projekte und Informationen rund um den KC85   ### 

Betriebssystem-News -- SUBMIT.COM

von Mario Leubner

Auch für CP/M oder besser gesagt unser ML-DOS gibt es ein aktualisiertes Programm. Die Idee dazu kam mir beim Backup vom KC zum PC mittels der MTOOLS. Ich wollte ich das ganze etwas automatisieren und stand vor dem Problem, am PC immer das richtige Verzeichnis einzustellen. Ich lege die Daten vom KC-Laufwerk C00 am PC im Verzeichnis C:\KCNET\BACKUP\C00 ab, für die anderen KC-Laufwerke entsprechend. Das Verzeichnis im PC heißt also ab dem Pfadnamen C:\KCNET\BACKUP\ genau so wie Laufwerk + Userbereich am KC. Die Übertragung einschließlich der Anfertigung eines Protokolls erledigt eine SUBMIT-Datei. Doch wie stelle ich das Laufwerk ein? Dazu mußte ich für jedes CP/M-Laufwerk eine eigene SUBMIT-Datei (BACKUP.SUB) schreiben, diese sieht etwa so aus:

   c10:                                      Laufwerk anwählen
   record con on c0:backup.tmp /o            Protokoll starten
   mcd c:\kcnet\backup\c10                   Pfad am PC einstellen
   mput -b *.*                               Dateien übertragen
   record con off                            Protokoll beenden
   copy c0:backup.tmp c10:backup.log /om     Kopie in aktuelles Laufwerk
   mput backup.log                           Protokoll übertragen
   mexit                                     fertig

Aufgerufen wird das Kommando: SUBMIT BACKUP

Für alle anderen KC-Laufwerke benutze ich die gleichen Kommandos, muß nur statt c10 das jeweils aktuelle Laufwerk eintragen. Bei 3 Festplattenpartitionen und jeweils 15 benutzten USER-Bereichen sind das immerhin 45 SUB-Dateien die zu erstellen sind! Einfacher wäre es doch, beim Verarbeiten der SUB-Datei die erforderlichen Stellen automatisch zu ersetzen. Dazu gibt es ja die Kommandozeilenparameter. Die geänderte Datei sieht dann so aus:

   $1:
   record con on c0:backup.tmp /o
   mcd c:\kcnet\backup\$1
   mput -b *.*
   record con off
   copy c0:backup.tmp $1:backup.log /om
   mput backup.log
   mexit

Aufgerufen wird jetzt das Kommando: SUBMIT BACKUP C10

Aber das ist immer noch zu viel Schreiberei, und wenn man sich beim Laufwerk vertippt, geht es auch schief. Eine Erweiterung des Programmes SUBMIT.COM ermöglicht jetzt die Angabe weiterer symbolischer Parameter. Bisher konnte man nur $1 bis $10 für die in der Kommandozeile übergebenen Parameter angeben. Mit der Version 1.1 gibt es außerdem noch:

  • $0 ... entspricht dem Namen der SUB-Datei (so wie in Kommandozeile)
  • $d ... wird ersetzt durch das aktuelle Laufwerk (ein Buchstabe)
  • $u ... wird ersetzt durch den aktuellen USER-Bereich (immer zweistellig als Dezimalzahl, also 00 bis 31)

Damit kann man die SUB.Datei jetzt wie folgt vereinfachen:

   record con on c0:backup.tmp /o
   mcd c:\kcnet\backup\$d$u
   mput -b *.*
   record con off
   copy c0:backup.tmp $d$u:backup.log /om
   mput backup.log
   mexit

Aufgerufen wird das Kommando: SUBMIT BACKUP

Natürlich lassen sich mit den Parametern $d und $u auch andere Konstruktionen von Laufwerksnamen zusammensetzen. Die Trennung von Laufwerk und USER-Bereich habe ich bewußt gewählt, bei Bedarf kann man beide ja direkt hintereinander schreiben. SUBMIT.COM wurde im Programmcode noch etwas optimiert, so daß auch die Version 1.1 noch mit 2048 Byte Programmcode auskommt.

Anmerkung zu ZCPR (NZCOM):

Wer das Z-System benutzt, hat noch eine weitere Möglichkeit zur Lösung des obigen Problems: Hier gibt es noch andere Kommandos, die ohne SUBMIT auskommen - ALIAS.COM oder SALIAS.COM. Sie erzeugen direkt COM-Dateien, die aber wie SUB-Dateien editiert werden können. Und auch dort kann man Parameter der Form $1 oder $d angeben. Durch das Z-System sind es sogar noch weitere spezielle Parameter, z.B. Shell-Variablen und Systemfilenamen. Und zur Kompatibilität bedeutet $0, $d und $u das gleiche wie bei meinem SUBMIT.COM V1.1 mit einem Unterschied: Der USER-Bereich ist bei meinem SUBMIT immer zweistellig, also mit führenden Nullen und bei ALIAS/SALIAS ohne führende Nullen.