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

Kopplung KC-PC

von Dirk Walther

In diesem Artikel möchte ich über die gelungene Kopplung meines KC 85/4 mit meinem 486er Notebook berichten.

Die Kopplung erfolgt der Einfachheit halber über die serielle Schnittstelle. Das dafür benötigte Nullmodemkahel ist nach folgender Tabelle schnell zusammengelötet.

Nullmodemkabel

Bild 1: Nullmodemkabel

 

Das Mausadapterkabel nach Hendrik Haftmann kann nicht eingesetzt werden, weil es sich dabei um ein Geräteanschlußkabel handelt, das die Datenleitungen nicht kreuzt.

Als Sende- und Empfangssoftware am PC dient das zum Lieferumfang von Windows gehörende Programm Terminal. Für die Arbeit mit dem KC werden zwei verschiedene Einstellungsdateien für Terminal benötigt, die in der folgenden Tabelle beschrieben sind. Eine der Dateien kann zusätzlich unter dem Namen TERMINAL.TRM abgespeichert werden und wird dann automatisch beim Start von Terminal geöffnet. Welcher COM-Anschluß genutzt wird, richtet sich natürlich nach der individuellen Konfiguration. Ich hatte an meinem Notebook nur COM1 zu Verfügung. Bei den meisten Desktop-PCs wird dieser Anschluß sicher von der Maus belegt sein.

Terminal Einstellungen

Bild 2: Terminal Einstellungen

 

Der PC als Komforttastatur

Die Datei KC-KEYB.TRM dient dazu, den PC als Komforttastatur für den KC zu benutzen. Das hat neben der bequemeren Tastatur noch viele weitere Vorteile. So kann nebenbei noch der Windows-Taschenrechner benutzt werden, es können mit dem Editor Notizen gemacht und sogar gleich mit Terminal so an den KC gesendet werden, als würden sie eingetippt.

Als Treiber für diesen Tastaturmodus unter CAOS dient PC-KEYB.KCC. Das Programm ist selbststartend und voll relocatibel. Lade- und Startadresse ist 0000H, so daß als Ladeoffset gleich die Zieladresse angegeben werden kann. Es wird Kanal 2 des ersten gefundenen M003 initialisiert. Es ist mir leider nicht wie Hendrik Haftmann gelungen, mit einem „Softwaretrick" auch Kanal 1 im Interruptmode zu betreiben. Das Programm trägt sich mit dem unsichtbaren Menüwort „k" ein. Nach einem RESET am KC ist also am PC nur die Eingabetaste, [K] und nochmals die Eingabetaste zu drücken, dann funktioniert alles wieder.

Für MicroDOS habe ich PC-KEYB.COM geschrieben. Das Turbo-Pascal-Programm (Quelltext in PC-KEYB.PAS und PC-KEYB.UPS) überträgt eine Interruptserviceroutine (EDAS-Quelltext in KEYB1SR.ASM) in den RAM des Grundgerätes und initialisiert ebenfalls Kanal 2 des ersten gefundenen M003. Die genaue Syntax der Eingabezeile entnehmt Ihr bitte dem Aufruf: PC-KEYB /H !

Die Treiber haben folgende Besonderheiten:

Das Grad-Zeichen (°) wird als spezielles Shift-Lock interpretiert. Da der PC normalerweise kleine Buchstaben sendet, mit CAPS aber auch die Zahlentasten auf die zweite Ebene umgeschaltet werden, setzt diese Funktion nur die Buchstaben um (groß <-> klein). Als Merkbit dient 7,(IX+7).

Die Cursortasten werden ebenso in KC-Code umgewandelt wie die DEL- und die Entf-Taste. Die Funktionstasten am PC werden von Terminal selbst genutzt. Zur Funktionstastensteuerung des KC muß deshalb die ESC-Taste und anschließend die Nummer der Funktionstaste (1-C) gedrückt werden, also z.B. für F8: [ESC] [8]. Um an den KC das eigentliche ESC zu senden, muß die ESC-Taste zweimal gedrückt werden. Um z.B. zu Bild 2 zu wechseln, muß demnach gedrückt werden: [ESC] [ESC] [2].

Viele Sonderfunktionen lassen sich über Strg+Buchstabentaste erreichen, z.B. BRK mit Strg+C, STOP mit Strg+S, CLS mit Strg+L, INS mit Strg+Z usw. Unter MicroDOS gelten natürlich die dort üblichen Codes.

Mit dem seriellen Maustreiber von Hendrik Haftmann gibt es in der KC-Betriebsart keine Probleme, wenn folgende Punkte beachtet werden:

  • Mausanschluß und PC-Kopplung müssen am selben Modul erfolgen, dabei muß die Maus an Kanal 1, das Nullmodemkabel an Kanal 2 gesteckt werden
  • zuerst muß PC-KEYB.KCC geladen und gestartet werden, danach erst MOUSELKCC
  • dabei dürfen sich logischerweise die Programme im Speicher nicht überschneiden

Für die MicroDOS-Betriebsart gibt es leider noch keinen Maustreiber, der Kanal 1 unterstützt. Es ist mir wirklich ein Rätsel, wie Hendrik das hingekriegt hat.

Datenübertragung KC<->PC

Zur Datenübertragung zwischen KC und PC wird die Datei TXTSD.TRM benötigt. In MicroDOS ist der Koppeltreiber V24H12.KOP mit 2400 Baud einzubinden. Für die Realisierung des Datenaustausches auf der KC-Seite habe ich drei Programme geschrieben. Sicher sind noch ausgefeiltere Versionen denkbar, doch die drei tun ihren Dienst vorerst.

TXTEMPF datei.typ     (Quelltext in TXTEMPF.PAS und JANEIN.BOX)

Dieses Programm empfängt Texte, die vom PC mit Übertragung - Textdatei senden gesendet werden und schreibt sie in eine Datei. Ist die Übertragung beendet, muß vom PC aus manuell durch Drücken von Strg+Z ein Dateiendezeichen (1AH) gesendet werden. Irgendwie habe ich das DTR-Protokoll der seriellen Schnittstelle noch nicht richtig zum Funktionieren gebracht. Dadurch kommt es zum Datenverlust, während der KC auf Diskette schreibt. Deshalb müssen Dateien größer als 1KB erstmal in das RAM-Floppy geladen und dann erst auf die Diskette kopiert werden.

TXTSEND datei.typ [/P]     (Quelltext in TXTSEND.PAS)

Das Programm sendet Texte an den PC. Dabei werden alle Steuerzeichen des Textprozessors entfernt, sowie alle „weichen" Leer-, Zeilenende- und sonstige Zeichen (Bit 7 ist gesetzt) zu „harten" Zeichen (Bit 7 ist rückgesetzt) gemacht. Vor dem Senden ist der PC mit Übertragung - Textdatei empfangen auf den Datenempfang vorzubereiten. Das Ende der Übertragung muß dem PC durch Anklicken des Abbrechen-Knopfes mitgeteilt werden.

Die Option /P leitet die Ausgabeoperationen auf der Druckerkanal um. Wenn man das Nullmodemkabel an Kanal 1 steckt, kann man dem PC somit Daten mit 9600 statt 2400 Band senden. Dazu muß natürlich ein entsprechender Druckertreiber (z.B. K6313.LST) installiert sein. Außerdem darf nicht vergessen werden, in den Terminal-Einstellungen die Datenübertragungsrate auf 9600 Baud zu stellen.

TXTESEND [/P]     (Quelltext in TXTESEND.PAS, JANEIN.BOX und DIRUPS.BOX)

Dieses Programm bietet schließlich die Möglichkeit, viele Texte nacheinander, quasi als Archiv, an den PC zu senden. Die zu sendenden Dateien können aus dem Directory in der auch bei anderen Programmen üblichen Weise ausgewählt werden, z.B.: 1-3 5 9 13-. Nach bis zu fünf selbst definierten Zeilen sendet das Programm ein alphabetisch geordnetes Inhaltsverzeichnis sowie vor jeder Datei „###" und den Dateinamen. Ein solches Archiv ist ganz nützlich, wenn man auf dem KC schon eine umfangreiche Textesammlung hat und diese jederzeit auch am PC zur Verfügung haben möchte. Eine bestimmte KC-Datei läßt sich in der jeweiligen Archivdatei schnell mit der Suchen-Funktion finden (Suchtext: ###name.typ). Außerdem spart diese Vorgehensweise eine Menge Zeit bei der Übertragung mehrerer Texte. Man muß nicht an den Computern sitzen bleiben, um jeden Sendevorgang einzeln auszulösen. Die Option /P funktioniert analog zu TXTSEND.

Achtung! Ist der Treiber PC-KEYB.COM gestartet worden, funktioniert der Datenaustausch nur mit 1200 statt 2400 Baud, weil PC-KEYB die V.24 neu initialisiert. Das betrifft allerdings nicht die Übertragung mit 9600 Baud mittels der Option /P.

Das Programm TXTESEND nutzt die Turbo-Pascal-Box DIRUPS.BOX, die einige nützliche Prozeduren und Funktionen zum Umgang mit dem Directory enthält. Sie kann selbstverständlich ebenso wie alle anderen Quelltexte frei genutzt werden. Die Ein- und Ausgangsparameter der einzelnen Routinen sind in der Datei kurz erklärt.

Schwachstellen

Die von mir dargestellte Hard- und Software zur Kopplung des KC mit einem PC hat im Wesentlichen noch folgende Schwachstellen:

  • die fehlende Protokollfunktion (DTR oder Xon/Xoff). Ich weiß nicht genau, ob sich dabei um einen Mangel an der Hard- oder Software handelt
  • Übertragung mit 9600 Baud nur vom KC zum PC und auch das nur über den Umweg über die Druckerstelle möglich - ich fürchte, da muß ein neuer Koppeltreiber her
  • Nutzung des PC als Komforttastatur sowie Datenübertragung vom PC zum KC nur über V.24-Kanal 2 möglich. (Wie, verdammt noch mal, funktioniert Hendrik Haftmanns ,,Softwaretrick"?)
  • der Bedienkomfort der Datenübertragungssoftware könnte natürlich noch verbessert werden, meine Programme stellen sozusagen nur eine Minimallösung dar
  • die von mir vorgestellten Programme realisieren ausschließlich die Übertragung von Textdateien. In Terminal ist aber auch das Senden und Empfangen von Binärdateien vorgesehen (z.B. Bitmaps,REDABAS-Datenbanken müßten auch auf dBase laufen etc.).

Vielleicht erwarten uns in Zukunft ja noch verbesserte Versionen. Von mir ist für die nächsten Jahre nicht mehr viel zu erwarten, weil nun bald meinMedizinstudium beginnt. Da bleibt leider keine Zeit mehr für den KC. Trotzdem bleibe ich im Klub und werde das Geschehen aufmerksam verfolgen.

Tschüüüüs!