K. Schlenzig


Sie sind aus unserem Leben nicht mehr wegzudenken, erfüllen ihre Aufgaben in Industrie, Landwirtschaft, bei der Ausbildung und in vielen anderen Bereichen. Manches ist aber mit einem elektronischen Einzelhirn nicht mehr lösbar. Oft arbeiten schon mehrere zusammen, doch dazu müssen sie ihre Informationen austauschen können.
Die Beitragsmanuskripte des "technikus" werden beispielsweise auf einem DSG 2069 - einem speziellen Gerät für die Manuskriptverarbeitung - für den Satz aufbereitet. Das Ergebnis wird in der Druckerei mit einer rechnergekoppelten Satzmaschine bearbeitet. Nun wäre es ein hoher Aufwand, den Manuskripttext durch den Verlagscomputer auf einem Drucker zu Papier zu bringen, um ihn dann wieder durch einen Setzer in den Druckereicomputer eingeben zu lassen. So können auch neue Fehler in den Beitrag geraten. Ist es nicht sinnvoller, beide Rechner miteinander ins Gespräch zu bringen, um so einen schnellen und fehlerfreien Satz für den "technikus" zu gewährleisten? Es sei vorab verraten, bei uns sind sie durch Disketten "verheiratet". Welche Möglichkeiten existieren eigentlich, um zwei oder mehrere der PC, BC oder KC miteinander zu verbinden?
 

on-line oder off-line - das ist hier die Frage

Grob gesehen kann man die Möglichkeiten der Kopplung von Computern in zwei Gruppen einteilen - in die on-line- und die off-line-Verbindungen. Von on-line-Verbindungen spricht man dann, wenn beide Partner direkt über einen "heißen Draht" Daten austauschen können. Dabei müssen sie aber nicht in einem Raum nebeneinander, ja dürfen sogar weit voneinander entfernt stehen. Dazu existieren unterschiedliche Verfahren, wobei man sich hauptsächlich serieller Kopplungen bedient. Bei seriellen Verbindungen gehen die einzelnen Bytes, die Gerät 1 senden möchte, in ihre Bits zerlegt und nacheinander auf die Reise. Gerät 2 "sammelt" die ankommenden Nullen und Einsen und setzt sie wieder zu Bytes zusammen. Eine international besonders oft angewandte Methode der Verbindung stellt die Benutzung des Telefons als Datenleitung dar. Sie beruht ebenfalls auf dem Prinzip der seriellen Übertragungen. Dabei verwandeln sich die vom ersten Computer zu sendenden Bits mit Hilfe eines Modems (MOdulator/DEModulator) in Tonfolgen, die über den Fernsprecher beim Empfänger ankommen und von diesem wiederum mit einem Modem in Bits umgewandelt werden.

Off-Iine-Verbindungen erfordern, im Gegensatz zu ersteren nicht, daß beide Teilnehmer zum gleichen Zeitpunkt in Betrieb und an die Datenleitung angeschlossen sind. Bei ihnen genügen Datenträger zum Austausch, die die Informationen beliebig lange zu speichern vermögen. Das setzt aber zwingend voraus, daß beide Typen das Format des Datenträgers kennen, also die Art und Weise, wie die Bits und Bytes auf ihm verschlüsselt sind und ihn auch lesen können. Als Datenträger wollen wir dabei z. B. EPROMS, Disketten, Lochbänder oder -karten, oder einfach nur Magnetbandkassetten, z. B. bei den Kleincomputertypen wie KC 85/3 oder KC 87 verstehen.
In unserem Beispiel mit Verlag und Zeitschrift bietet sich die Datenübertragung mittels Diskette an, da das DSG 2069 oder der PC 1715 seine Daten ohnehin schon auf ihnen speichert. Es bleibt ein "winziges" Problem: Dem Satzcomputer muß das Format der Diskette des Verlagscomputers verständlich gemacht werden. In der Praxis bemüht man sich daher um die Verwendung standardisierter Formate, die mit entsprechenden Zusatzprogrammen auf verschiedenen Rechnern gelesen werden können.
 

Kleincomputer im Dialog

Die KC 85/3 und KC 87 sowie ihre Vorgänger (KC 85/2 bzw. KC 85/1) werden in großen Stückzahlen genutzt, sowohl in Schulen und Arbeitsgemeinschaften wie auch zu Hause. Um Datenaustausch zwischen den beiden, in vielen Eigenschaften doch so unterschiedlichen Computern, zu gewährleisten, hat man für sie ein einheitliches Aufzeichnungsverfahren auf Kassette gewählt. So ist es dank dieser Maßnahme möglich, Basic-Programme auf dem einen der beiden Typen zu schreiben, dort auf Kassette zu speichern und ohne Schwierigkeiten in den anderen hineinzuladen. Wenn man nicht gerade besondere, von der Hardware des Gerätes abhängige Befehle verwendet hat, so sollte das Programm dann auch dort einwandfrei ablaufen können.
Doch der Teufel steckt im Detail. Möchte man zwischen beiden Computern Maschinenprogramme austauschen, so kann man zwar die Programme des KC 87 mit einem kleinen Trick in den KC 85/3 einlesen. Dazu darf das Programm auf dem KC 87 nicht selbststartend, d. h., es muß mit Startadresse FFFFh auf Kassette gespeichert worden sein (siehe Programmierhandbuch zum KC 87, Abschnitt "Betriebssystem"). Diese Startadresse wird jedoch nach wie vor beim Laden des Programms auf dem KC 85/3 angesprungen. Bei den zum Test verfügbaren KC 85/3 bzw. /2 stand auf dieser Adresse der Wert FFh, der vom Computer als Maschinenbefehl RST 38h (Sprung zu Zelle 38h) interpretiert wird. Hat man nun vor Laden des Programms mit Modify auf Zelle 38h den Wert C9h (Befehl Ret) eingetragen, so kehrt das Programm in das Betriebssystem zurück. In der anderen Richtung jedoch weigert sich der KC 85/1 beharrlich mit der Meldung "record not found". Das dürfte also auch auf den KC 87 zutreffen, was allerdings nicht getestet werden konnte.

Der Wunsch, Maschinenprogramme auszutauschen, wird dann verständlich, wenn man sich mit der Programmierung der beiden Computer in Maschinensprache beschäftigt und nur für einen ein entsprechendes Arbeitshilfsmittel, den Assembler, zur Verfügung hat. So war es im vorliegenden Fall. Ein hübsches Spielprogramm sollte für den KC 87 entwickelt werden, ein vernünftiger Assembler stand aber lediglich für den KC 85/3 zur Verfügung.

Zur näheren Untersuchung des genannten Problems wurden die Beschreibungen der Betriebssysteme des an Stelle des KC 87 vorhandenen KC 85/1 (Vorläufer des KC 87 ohne eingebautes Basic) und des KC 85/3 zu Rate gezogen. Dabei zeigte sich folgender Unterschied bei den Kassettenspeicher- und Leseroutinen: Bei beiden Geräten werden die Daten in Blöcken mit fortlaufender Numerierung auf Band geschrieben oder von dort wieder gelesen. Der KC 85/3 verwendet als erste Blocknummer 1, der KC 85/1 (also sicherlich auch der KC 87) aber die 0! Beim Einlesen werden die Blocknummern der gefundenen Blöcke mit den erwarteten verglichen. Bei Nichtübereinstimmung wird eine Fehlermeldung ausgegeben. Da der KC 85/1 als erste Blocknummer eine 0 erwartet, beim KC 85/3 aber eine 1 verwendet wird, bricht der KC 85/1 den Ladevorgang mit der genannten Meldung ab. 

Warum aber liest der KC 85/3 dann die Dateien des KC 85/1 einwandfrei ein? Das liegt offensichtlich daran, daß es dem KC 85/3 gleichgültig ist, welche Blocknummer als erste eingelesen wird, ob 0 oder 1, er sich dann aber in der weiteren Numerierung nach der ersten Blocknummer richtet.
 

Format-Dolmetscher

Mit der im folgenden ausgedruckten Routine wird das angesprochene Problem umgangen. 

Listing 1: "Dolmetscher"- Programm in hexadezimaler Darstellung (Maschinenprogramm)

Sie stellt für den KC 85/3 eine Save-(Speicher-) Routine bereit, die einen Speicherbereich im Format des KC 85/1 auf Magnetband schreibt, also den ersten Block mit der Nummer 0. Ihr Hexdump wird am besten mit einem der gängigen Hexmonitoren für KC 85/3, wie etwa HEXI, eingegeben. Man benutzt sie aus dem CAOS des KC 85/3 durch Eingabe des Befehls und seiner Parameter. Nach Enter fragt das Programm nach einem Namen für das Kassettenfile. Die Syntax des Befehls lautet:

SAVE1 Anfangsadresse Endadresse Startadresse 

Der dritte Parameter ist optional und wird standardgemäß mit FFFFh angenommen. Durch diese Routine kann man nun z. B. bequem Maschinenprogramme auf dem KC 85/3 eingeben, editieren und assemblieren, dann im KC87-Format auf Kassette speichern und im KC 87 (bzw. KC 85/1) schließlich ausprobieren, ohne daß bei einem Programmabsturz Assembler und Quelltext verlorengehen.
Achtung: Mit der SAVE-1-Routine gespeicherte Programme lassen sich nur noch auf KC 85/1 laden! Außerdem gibt es Maschinenprogramme für KC 85/1, bei denen im Vorblock ein Byte nicht so gesetzt ist, wie es der KC 85/3 erwartet. Auch sie kann man nicht ohne weiteres einladen.