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

Wie kommen die Programme in den KC ?

von Frank Dachselt

Die Zeiten ändern sich: Trotz - oder gerade wegen - der Aufrüstung des KC85 mit modernen Speichermedien (3,5"-Disketten und Festplatte; auf dem Clubtreffen wird es mit großer Wahrscheinlichkeit den nächsten Schritt zu sehen geben) liegt heute bereits ein großer Teil der KC-Software auf KC-fremden Datenträgern vor und wird über KC-fremde Übertragungsmedien ausgetauscht. Das ist sicherlich von User zu User unterschiedlich, aber der Trend ist deutlich zu erkennen: Während vor einigen Jahren noch zahllose Disketten per Brief umhergeschickt wurden, so ist es heute zumeist eine E-Mail, mit der eine Datei ihren Empfänger erreicht. Weiterhin steht heute auf der Homepage des KC-Clubs ein Großteil der KC-Software zum Download bereit. Und so mancher "Wiedereinsteiger", der sich von diesem Angebot inspirieren läßt, steht irgendwann einmal vor der in der Überschrift genannten Frage. Da ich schon oft auf derartige Anfragen geantwortet habe, möchte ich auch einmal für die KC-News die wichtigsten derzeit verfügbaren Möglichkeiten zum Datenaustausch zwischen KC und PC kurz zusammenfassen und gegenüberstellen.

KC-System mit D004

In jeder Hinsicht glücklich können sich diejenigen schätzen, die ein D004 ihr eigen nennen. Das Betriebssystem CP/M (ganz gleich ob als MicroDOS oder als MLDOS) mit dem dazugehörigen Dateisystem stellt verschiedene Möglichkeiten zum bequemen Datenaustausch zur Verfügung.

Übertragungsmedium Diskette: Verwendet man Disketten zum Datenaustausch zwischen KC und PC, dann muß auf einem der beiden Systeme das Dateisystem des jeweils anderen verarbeitet werden. Beide Varianten sind mit dem KC möglich:

Arbeitet man "KC-orientiert", dann benutzt man das Programm TRANSFER, mit dem auf dem KC Disketten im MS-DOS-Format gelesen und beschrieben werden können. "Physisch" kann der KC alle MS-DOS-Formate bis 720 K verarbeiten, auf 5,25"-Disketten als auch - falls ein kleines Disketten-Laufwerk nachgerüstet wurde - auf 3,5"-Disketten. Wenn es gelingen sollte, ein HD-Laufwerk am KC sicher zu betreiben (siehe dazu die Beiträge von Enrico Grämer in dieser und der letzten Ausgabe), dann kann natürlich auch das heute übliche HD-Format verarbeitet werden. Vor der Verwendung von TRANSFER müssen die zu verarbeitenden physischen Diskettenformate im BIOS als logische Laufwerke installiert sein. Das geschieht entweder bei der Generierung des Betriebssystems (mit MSYSG für MicroDOS bzw. bei der Assemblierung von MLDOS) oder zur Laufzeit des Systems mit dem Programm MODF (KC-News 1/99). Die aktuelle Version von TRANSFER ist 1.92 (KC-News 1/99), weitere Informationen findet man in den Ausgaben 2/96, 4/95 und 3/95.

Auf der PC-Seite steht z.B. das bekannte Programm 22DISK zur Verfügung, um Disketten mit CP/M-Formaten zu verarbeiten. Da dieses Programmpaket noch nie in den KC-News vorgestellt wurde, habe ich es heute in der letzten mir bekannten Version 1.44 mit auf die Beilagendiskette kopiert (22DSK144.ZIP). 22DISK ist eine sogenannte "user-supported" Software: Das Programm darf zum Kennenlernen und Testen frei verwendet werden, für eine dauerhafte Benutzung ist eine Registrierung notwendig. Die Weitergabe ist nur im Originalzustand erlaubt. Näheres dazu findet man in der sehr ausführlichen (englischen) Dokumentation. Da 22DISK das Standard-KC-Diskettenformat zunächst noch nicht kennt, muß dieses Format erst noch in die Datenbank aufgenommen werden. Die zusätzliche Datei CPMDISKS.DEF auf der Beilagendiskette ist die entsprechend ergänzte Datenbank, mit der man nach der Installation des Programms die originale Version ersetzt. Wer die Datenbank selbst erzeugen möchte, muß zunächst mittels STRIPIDX die Datei CPMDISKS.NOI (nur das ist eine Textdatei) erzeugen, um die entsprechende Format-Definition ergänzen und daraus mittels GENINDEX die Datenbank neu generieren. Der Eintrag in CPMDISKS.NOI für das Standard-KC-Diskettenformat mit dem Namen "KC85" sieht wie folgt aus:

    BEGIN KC85  KC85-MicroDOS-Systemdisk DSDD 96 tpi 5,25"
    DENSITY MFM,LOW
    CYLINDERS 80
    SIDES 2
    SECTORS 5,1024
    SKEW 2
    SIDE1 0 1,2,3,4,5
    SIDE2 1 1,2,3,4,5
    ORDER SIDES
    BSH 4  BLM 15  EXM 0  DSM 389  DRM 127  AL0 0C0H  AL1 00H  OFS 4
    END

Benutzt wird 22DISK von der DOS-Kommandozeile aus. Zum einen existiert eine Menü-gesteuerte Variante (CMENU), die alle Einstellungen und Funktionen interaktiv ausführt. Daneben können alle Diskettenoperationen auch separat per Kommandozeile aufgerufen werden. Günstigerweise setzt man vorher die DOS-Variable CPMDISK auf das normalerweise verwendete CP/M-Format (z.B. in der Datei AUTOEXEC.BAT), das erspart Schreibarbeit. Für die genannte KC- Definition geschieht das mit "SET CPMDISK=KC85". Neben den Standard-Funktionen wie z.B. der Anzeige des CP/M-Directories (CDIR) und dem Kopieren von Dateien zwischen der CP/M-Diskette und einem DOS-Laufwerk (CTOD bzw. DTOC) kann man mit 22DISK auch Disketten mit dem eingestellten CP/M-Format formatieren (CFMT).

Der Vorteil des Übertragungsmediums Diskette in den beiden genannten Varianten liegt darin, daß es derzeit (noch) das schnellste Übertragungsverfahren ist und zudem die höchste Datensicherheit bietet. Da die Diskette außerdem ein "bewegliches" Medium ist, können Quelle und Ziel der Übertragung sich räumlich weit entfernt befinden. Nachteilig ist dagegen - insbesondere bei größeren Datenmengen - die notwendige "Handarbeit" beim Diskettenwechseln. Das steht der Automatisierung des Verfahrens entgegen. Natürlich werden an beiden Seiten der Übertragung gleichartige Laufwerke benötigt. Das kann heutzutage schon zum Problem werden. 5,25"-Laufwerke sind im PC nicht mehr üblich und nur noch schwer gebraucht oder aus Restposten beschaffbar. Da bleibt als Ausweg nur das Nachrüsten des KC mit einem 3,5"-Laufwerk.

Übertragungsmedium Serielles Kabel: Der Trend zur drahtgebundenen Datenübertragung ist auch am KC nicht vorbeigegangen. Als universelles Interface zur Kopplung des KC mit anderen Rechnern hat sich insbesondere die serielle V.24-Schnittstelle bewährt. Softwareseitig ist sie im Betriebssystem CP/M leicht einzubinden; beim KC geschieht das durch die Installation entsprechender Koppeltreiber. Die Konvertierung der Dateien in das jeweils andere Dateisystem erfolgt parallel zur Übertragung im Zusammenspiel zwischen Sende- und Empfangssoftware der beteiligten Rechner. KC-seitig gibt es verschiedene Programme (als CP/M-Standardsoftware oder KC-spezifisch), die die Koppelschnittstelle bedienen und eine elementare Datenübertragung unabhängig von der angeschlossenen Gegenseite ermöglichen: z.B. PIP, KCSEND, KCEMPF. Manche dieser Programme können nur Textdateien verarbeiten, die Übertragung von Binärdateien erfordert dann eine vorherige Konvertierung auf dem Quellrechner und eine nachfolgende Rückkonvertierung auf dem Zielrechner, z.B. mit UUENCODE und UUDECODE.

Mit dem MTOOLS-Paket (aktuelle Version 1.4, siehe KC-News 1/2002) steht dagegen auch eine relativ komfortable Übertragungssoftware zur Verfügung, die neben der integrierten Kodierung und Fehlerprüfung die Möglichkeit bietet, ganze Verzeichnisse vollautomatisch auf den Zielrechner zu übertragen. Voraussetzung ist hier natürlich, daß die zusammengehörenden Programmkomponenten auf beiden Seiten der Übertragung (auf den KC und auf dem PC) bereitstehen.

Hardwareseitig wird für dieses Verfahren am KC eine serielle Schnittstelle benötigt. Standardmäßig wird diese durch das V.24-Modul (M003) zur Verfügung gestellt. Für die Verbindung zum PC ist die Übertragungsgeschwindigkeit allerdings auf 2400 Baud begrenzt, da die "krumme" Taktfrequenz des KC die Erzeugung höherer Baudraten mit der erforderlichen Genauigkeit nicht zuläßt. Einen Ausweg bietet hier die Verwendung des Scannermoduls M051, dessen integrierte serielle Schnittstelle Übertragungsraten bis 115.200 Baud ermöglicht.

Der Vorteil der kabelgebundenen Übertragungsvariante ist deren Automatisierbarkeit. So kann man ein mehrstündiges, mehrere MByte umfassendes Backup der KC-Festplatte auf den PC ohne weiteres manuelles Zutun durchführen. Nachteilig ist die mit der Standard-KC-Hardware (M003) erreichbare, geringe Übertragungsgeschwindigkeit.

KC-System ohne D004

In einem KC-System ohne D004 fehlt KC-seitig ein komfortables Dateisystem, es steht nur in sehr primitiver Form auf dem Magnetband als externen Massenspeicher zur Verfügung. Der unmittelbare Datenzugang zum KC erfolgt stets kabelgebunden. Dabei stehen wieder zwei Varianten zur Verfügung:

Übertragungsmedium Audiokabel: Unter Umgehung des Mediums Kassette zur Datenübertragung (als direkte Analogie zum oben beschriebenen Verfahren mit Disketten) bietet es sich an, den PC als komfortables Magnetbandgerät zu verwenden. Zur Datenübertragung erzeugt der PC über seine Soundkarte aus den abgespeicherten KC-Dateien das zugehörige Audiosignal, das am KC wie von einem Magnetband kommend eingelesen wird. Es existieren bereits mehrere PC-Programme, die diese Art der Datenübertragung ermöglichen. Als einen Vertreter möchte ich das Programm KCLOAD (als KCLOAD.ZIP auf der Beilagendiskette) von Henrik Haftmann vorstellen. Es gehört eigentlich zum Emulator KCEMU und ist für die Magnetbandarbeit mit dem PC vorgesehen, aber es läßt sich ebensogut in der beschriebenen Weise mit der originalen KC-Hardware verwenden. Das Programm läuft unter Windows, ist nahezu intuitiv bedienbar und bietet eine ausführliche deutsche Hilfe an. Zum Einlesen in den PC muß die Soundkarte eine Abtastrate von mindestens 22 kHz (Mono, 8 Bit) besitzen.

Diese Variante hat den Vorteil, daß das Dateiformat auf dem PC identisch mit dem der anderen Übertragungsverfahren ist. Es ist also ohne weiteres möglich, diesen Übertragungsweg mit den oben beschriebenen D004-basierten Varianten zu kombinieren und die Dateien auch auf der PC-Seite inhaltlich zu bearbeiten. Als Gegenstück sei an dieser Stelle auch auf ein anders Aufzeichnungsformat verwiesen: Es gibt inzwischen Softwaresammlungen für den KC, die die Audiosignale des Kassetteninterfaces direkt (z.B. als WAV-Datei) speichern. Neben der fehlenden Kompatibilität ist hier auch der höhere Speicherbedarf zu beachten. Andererseits kommt man auf diese Weise ohne KC-spezifische Software auf der PC-Seite aus. Beschränkt man sich auf das Einlesen der Software in den KC, dann lassen sich z.B. auf CD-ROM gebrannte (Audio-)Daten von jedem geeigneten CD-Player in den KC bringen.

Insgesamt lassen sich mit dem Audioformat natürlich keine Geschwindigkeitsrekorde aufstellen (man fühlt sich unmittelbar in die gute alte Kassettenzeit zurückversetzt). Als Vorteil kann man dagegen ansehen, daß jedes KC-Grundgerät ohne Zusatzmodule und Aufsätze verwendet werden kann.

Übertragungsmedium Serielles Kabel: Eine bisher weitgehend unbeachtete Möglichkeit der Datenübertragung ist die Verwendung der V.24-Schnittstelle des M003 unter CAOS. Wie man im Systemhandbuch (Abschnitt 3.11.2) nachlesen kann, wird der Kanal 2 des ersten M003 von einer interruptgesteuerten Empfangsroutine verwendet. Normalerweise wird hier eine KC-fremde Tastatur angeschlossen. Aber die Empfangsroutine bietet auch die Möglichkeit, die empfangenen Daten im Speicher abzulegen und sogar Programme zu starten, und das alles ferngesteuert, ohne eine Tastenbetätigung am empfangenden KC.

Diese Möglichkeiten haben mich zu einem kleinen Programm namens KCCLOAD (der Name sollte nicht mit dem eben vorgestellten KCLOAD verwechselt werden) inspiriert, das als KCCLOAD.ZIP auf der Beilagendiskette zu finden ist. KCCLOAD ist ein Programm für die DOS-Kommandozeile und sendet KCC-Dateien über die serielle Schnittstelle des PC an den KC. KCC-Dateien sind Dateien mit einem "normalen" CAOS-Vorblock, die auch mit LOAD im CAOS-Menu geladen werden können, also Maschinenprogramme, Speicherabzüge und z.B. auch selbststartende BASIC-Programme (Endung .KCB).

Zur Verbindung zwischen KC und PC kann das gleiche Kabel wie bei Verwendung der MTOOLS benutzt werden (sofern bei letzteren mit dem M003 gearbeitet wird). Die Beschaltung ist in Bild 1 noch einmal vollständig dargestellt.

 

Kabel

Bild 1: Beschaltung des seriellen Kabels zur Verbindung KC -- PC

Das Programm verwendet die gleichen DOS-Variablen wie die MTOOLS. Praktischerweise sollte man die gleichen Werte verwenden und die Definition in die Datei AUTOEXEC.BAT schreiben. Bei mir sieht das z.B. so aus:

   set expath=c:\home\bin\
   set kcpath=c:\home\bin\kcnet\
   set kctemp=c:\home\bin\kcnet\temp\
   set kcport=com1

Im Verzeichnis "expath" steht das Programm selbst, dorthin sollte auch die Path-Variable von DOS zeigen. Im Verzeichnis "kcpath" wird die Datei ESC.ESC benötigt, die nur das Byte 1Bh enthält (ähnlich wie EOF.EOF für die MTOOLS) und ebenfalls in KCCLOAD.ZIP auf der Beilagendiskette zu finden ist. "kctemp" dient zur Speicherung temporärer Dateien und "kcport" ist die Schnittstelle, über die gesendet werden soll.

Wenn KCCLOAD ohne Parameter aufgerufen wird, erscheint eine kleine Hilfe. Ansonsten gibt man einfach die zu übertragende KCC-Datei an. Die Endung .KCC muss dabei nicht mit angegeben werden. Fehlt eine Endung, wird automatisch .KCC angehangen. Soll eine Datei mit einer anderen Endung geladen werden (z.B. .KCB), muß der Dateiname vollständig angegeben werden.

Ist die KCC-Datei selbststartend, so wird sie normalerweise nach dem Laden auf dem KC auch gestartet. Durch die Angabe der Option -s kann der Selbststart unterdrückt werden. Mit der Option -o kann ein Offset (als Hexadezimalzahl mit optionalen Minuszeichen) angegeben werden, der bezüglich der Umrechnung von Lade- und Startadresse so behandelt wird, wie im Systemhandbuch, Abschnitt 3.8.2 beschreiben.

Normalerweise wird mit 1200 Baud gesendet, das ist die Übertragungsrate, auf die der Kanal 2 des M003 eingestellt wird. Das Umschalten der Baudrate auf 2400 Baud mit der Option -2 hat bis jetzt nur experimentellen Charakter.

Da das eigentliche Senden über die Schnittstelle vom DOS-Kommando COPY übernommen wird, läßt sich der Ablauf der Übertragung nur bruchstückhaft verfolgen, indem man die einzelnen Phasen des Ladens ("initialising...", "loading...", "starting...") am PC beobachtet. Wenn das Programm nach dem "initialising..." zum "loading..." voranschreitet, dann kann man davon ausgehen, daß das Laden PC-seitig funktioniert. Ob der KC die Bytes auch wirklich empfängt, läßt sich daran überprüfen, ob dieser noch auf Tastatureingaben (z.B. Cursortasten) reagiert. Reagiert der KC nicht mehr, dann ist er ganz offensichtlich in der Empfangsroutine.

Im Systemhandbuch steht zwar, daß die interruptgesteuerte Empfangsroutine zu einem beliebigen Zeitpunkt mit dem Empfang beginnen kann und dazu gegebenenfalls das gerade laufende Programm unterbricht, aber ganz so einfach ist es leider doch nicht. Beim Testen des Programms und einer genaueren Analyse des CAOS-Quelltextes ist uns, Mario Leuber und mir, die nicht ganz fehlerfreie Programmierung dieser Empfangsroutine aufgefallen. Mit Sicherheit funktioniert das Laden, wenn sich der KC im CAOS-Menu befindet (möglichst nach einem RESET) und der Cursor auf einer leeren Position steht (d.h. der Cursor blinkt nicht). Schon wenn der Cursor dagegen auf einen Zeichen blinkt, gibt es beim Start der Übertragung eine Fehlermeldung vom CAOS und die ganze Übertragung geht schief. Die Korrektur dieses Fehlers ist schon in Arbeit und wird wohl in absehbarer Zeit zu einem CAOS-Update führen.

Mit den 1200 Baud liegt die Übertragungsgeschwindigkeit in der gleichen Größenordnung wie über das Kassetteninterface, eher sogar noch etwas darunter. Eine Erhöhung auf 2400 Baud wäre technisch möglich, erfordert aber noch einige Überlegungen zur Realisierung. Der Vorteil der seriellen Übertragung besteht darin, daß auf der PC-Seite keine aufwendige Hardware (Soundkarte) benötigt wird. Ausserdem ist die serielle Übertragung auf Grund der höheren Signalpegel sicherer als die Verwendung von Audiosignalen.

Bis jetzt ist auf diese Weise nur die Übertragung von KCC-Dateien in eine Richtung möglich. Angedacht ist bereits, auch die Gegenrichtung zu realisieren. Man könnte dann mit den zwei CAOS-Kommandos VLOAD und VSAVE (LOAD und SAVE über die serielle V.24-Schnittstelle) Dateien vom PC laden und auf diesem speichern (ähnlich wie bei den MTOOLS unter CP/M). Denkt man etwas weiter in diese Richtung, wäre auf dem PC auch ein Programm in der Art von DEP (Diskettenerweiterungsprogramm für CAOS im D004) möglich, das den PC dann für den KC zu einem D004 umfunktioniert. Mit den entsprechenden LOAD- und SAVE-Routinen (ähnlich BASEX, DEVEX, usw.) könnte man dann auch in anderen Umgebungen (BASIC, EDAS, usw.) und Anwenderprogrammen Dateien laden und speichern.

Das ist aber alles noch entfernte Zukunftsmusik, deren Realisierung noch nicht absehbar ist - es sei denn, es findet sich ein begeisterter Programmierer, der das Projekt gleich in Angriff nimmt.

An dieser Stelle will ich meinen Überblick beenden, ohne den Anspruch auf Vollständigkeit zu erheben. Für viele der genannten Verfahren gibt es weitere Software-Varianten, ebenso wie es völlig andere Übertragungsverfahren gibt. Einiges davon war ja in der Vergangenheit bereits in den KC-News zu lesen. Zumindest aus meiner Sicht sind die genannten Verfahren aber die am weitesten verbreiteten bzw. die am einfachsten beherrschbaren.

Also dann viel Spaß beim Experimentieren!