1. CP/M-80 KERMIT - Historisches

Die Basis für das hier vorliegende KERMIT ist die Version 3.9, die als Public Domain erhältlich ist. Der folgende Ausschnitt gibt einen kurzen Überblick über die an diesem KERMIT Mitwirkenden:
Program:Bill Catchings, Columbia University, with contributions from Bernie Eiben (DEC), Nick Bush (Stevens), John Bray (University of Tennessee), Bruce Tanner (Cerritos College), Greg Small (University of California at Berkeley), Kimmo Laaksonen (Helskini University of Technology), and many others.
Language:8080 Assembler or MAC80
Version:3.9
Date:April 1984
Documentation:Frank da Cruz, Columbia University

Die Originaldatei, so wie sie aus dem Public Domain Pool zu erhalten ist, hat einen Umfang von etwa 176kBytes und ist damit natürlich recht unübersichtlich. Deshalb wurde diese Datei in kleine Portionen zerlegt, die mit einem Editor weitaus leichter zu bearbeiten sind. Weiterhin wurden folgende Arbeiten an diesen Modulen vorgenommen:
  1. Alle im Quelltext aufgeführten Fremdmaschinen wurden aus den Modulen entfernt, da diese nur für die CP/M Version 2.2 ausgelegt waren.
  2. Es wurde das gesamte Paket ausgelegt auf die Basis von CP/M PLUS, also der Version 3. Das hat den Effekt, daß zunächst der freie Diskettenplatz richtig angezeigt wird, was bei der alten Version nicht möglich war. Zweitens kann jetzt eine Einstellung der Baud-Raten vorgenommen werden.
  3. Es sind spezielle Anpassungen an den PCW/JOYCE vorgesehen, was sich besonders in der Darstellung auf dem Bildschirm bemerkbar macht.
  4. Bei der Terminalverbindung mit einem Fremdrechner werden die Steuerzeichen des weit verbreiteten Terminals VT100 nachgebildet, allerdings ist diese Emulation nur eine Untermenge der wichtigsten Kontrollfunktionen.
KERMIT wurde ursprünglich geschrieben, um einen gesicherten Dateitransfer zwischen unterschiedlichen Rechnern zu ermöglichen. Dazu muß natürlich KERMIT an beiden Maschinen vorhanden sein. Die Maschinen jedoch können unterschiedlich sein, wichtig ist nur, daß das Protokoll der Datenübertragung übereinstimmt. Prinzipiell läßt sich KERMIT auch direkt zwischen zwei Rechnern betreiben, also z.B. zum Datenaustausch zwischen einem PCW und einer MS-DOS Maschine. Hierzu müssen die beiden Maschinen direkt verbunden werden. Über eine Telefonleitung ist die Verbindung nicht möglich, da KERMIT nicht aktiv auf Modem Calls reagiert. Einteilen läßt sich KERMIT funktionell in die folgenden Gruppen:
  1. Funktion als Übertragungseinheit. Auf beiden Rechnern wird das KERMIT gestartet, auf dem einen Rechner als Sender und auf dem anderen Rechner als Empfänger.
  2. Funktion als Übertragungseinheit, aber gesteuert vom anderen Rechner. Dies ist der sog. "Server"(Diener)-Modus, in dem der andere Rechner die Kontrolle über dieses KERMIT übernimmt.
  3. Funktion als Nachbildung eines Terminals. In diesem Modus wirkt der PCW/JOYCE wie ein Terminal, d.h. Tastatureingaben werden an die serielle Schnittstelle (Port) geschickt und Daten vom Port werden an den Bildschirm weitergegeben. Darüberhinaus lassen sich vom Port empfangene Daten protokollieren, nach Wunsch auf dem Drucker oder in eine Datei.
KERMIT-80 Möglichkeiten auf einen Blick:
Lokale Bearbeitung:Ja
Remote Bearbeitung:Nein
Übertragung von ASCII Dateien:Ja
Übertragung von Binärdateien:Ja
Wildcard senden:Ja
^X/^Y Unterbrechung:Ja
Warnung bei gleichen Dateinamen:Ja
Timeout ermöglicht:Ja
Voranstellung 8. Bit:Ja
Wiederholungszähler:Nein
Alternative Blocküberprüfung:Ja
Terminal Nachbildung:Ja, VT00
Übertragungskanal setzen:Ja, Duplex, Parität
BREAK übertragen:Ja
IBM Übertragung:Ja
Übertragungsprotokoll (auf Disk):Nein
Terminalprotokoll (auf Disk):Ja
Nach Diskprotokoll arbeiten:Ja
Funktion als Server:Nein
Kommunikation mit einem Server:Ja, SEND, GET, FIN, BYE
Erweiterte Serverbefehle:Nein
Lokale Kommandos:Ja; DIR, ERA, COPY, RENAME, PRINT, TYPE, SET default_disk und user_area
Bearbeitung von Dateiattributen:Nein
Unterstützung Kommandodatei:Ja
Drucker Kontrolle:Ja, begrenzt

Übersicht über CP/M

CP/M-80 (hier soll nur die Version 3.x beschrieben werden, die ja Grundlage für den PCW/JOYCE ist) verfügt über fünf sog. eingebaute Kommandos, die sich auf das Arbeiten mit Dateien beziehen. Weitere Kommandos stehen durch Aufruf von Dienstprogrammen zur Verfügung.

Die Dateispezifikation unter CP/M hat das Format DEV:XXXXXXXX.YYY, mit

DEV:der Name eines Diskettenlaufwerkes, normalerweise A: oder B: (beim PCW/JOYCE auch noch M: für die RAM-Floppy). Wenn DEV nicht angegeben wird, verwendet CP/M die aktuelle Anwahl.
XXXXXXXXstellt den Namen einer Datei dar, maximal acht Zeichen
YYYstellt den Typ (Extension) der Datei dar, maximal drei Zeichen

Dateinamen und -typen können Buchstaben, Ziffern und einige spezielle Zeichen beinhalten, z.B. '$', '_', aber keine Leerzeichen. Groß- und Kleinbuchstaben werden gleichbehandelt.

"Wildcard" Darstellung ist erlaubt im Namen und Typ (jedoch nicht im Laufwerknamen). Ein '*' bedeutet ein Mehrzeichenfeld und '?' ein beliebiges Zeichen. Beispiel: '*.F??' erfaßt alle Dateien, deren Typ mit einem 'F' beginnt und 1, 2 oder 3 Zeichen lang ist; 'F?.*' erfaßt alle Dateien, deren Name mit 'F' beginnt und nicht länger als zwei Zeichen ist.

Die fünf eingebauten CP/M Kommandos sind:

DIR file Listet die Namen aller spezifiezierten Dateien. Die Default (voreingestellte) Datei ist '*.*'. Beispiel: 'DIR B:*.FOR'
ERA file Löschen von spezifizierten Dateien. Wildcards sind erlaubt.
REN neu=alt Ändert den Namen einer Datei von "alt" nach "neu", z.B. 'REN NEU.FOR=ALT.FOR'.
TYPE file Gibt den Inhalt einer Datei auf dem Bildschirm aus, z.B. 'TYPE ALT.FOR'.
USER zahlAnwahle eines Benutzerbereiches 0 bis 15. Bekanntlich kann ein Laufwerk in 16 Bereiche geteilt werden, so daß eine Diskette in 16 logische Einheiten unterteilt werden kann.

Die wichtigsten Dienstprogramme sind:

SHOW gibt einen Überblick über Laufwerksbelegung.
PIP das universelle Kopierprogramm (PIP = Peripheral Interchange Program). Nach Aufruf von PIP und Ausgabe eines '*' auf dem Bildschirm können Kommandos eingegeben werden in der Form

disk:ausgabedatei=disk:eingabedatei

Wildcards ('*' für Felder und '?' für Zeichen) können benutzt werden. Beispiele: 'A:=B:*.*' kopiert eine komplette Diskette, 'A:=B:*.BAS' kopiert alle BASIC Programme von Laufwerk B auf Laufwerk A. Falls das Laufwerk weggelassen wird, so verwendet PIP das Default Laufwerk. Komplette Kommandozeilen sind bei PIP erlaubt, z.B. das Kommando 'PIP A:=B:*.*'

Für weitere Informationen über CP/M sei hier auf die Digital Research Handbücher oder aber einschlägige Literatur verwiesen.

KERMIT-80 Implementierung

Das Original KERMIT-80 Programm, das seit 1981 fortlaufend für CP/M Maschinen erweitert wurde, existiert für eine große Anzahl von Maschinen, z.B.:
DEC VT180 (Robin), DECmate II, den Intertec Superbrain, den Heath/Zenith 89 und Z100, den Apple II mit der Z80 SoftCard, dem Osborne 1, dem TRS-80 II mit CP/M, Telcon Zorba, dem Kaypro, dem Vector Graphics CP/M System, dem Morrow Decision I, dem Nokia MikroMikko, und anderen. An dieser Aufzählung teilweise unbekannter Maschinen mag man den Ursprung von KERMIT, die USA, erkennen.
Die hier vorliegende Version wurde aus der Version 3.9 weiterentwickelt. Die Funktionen der derzeit aktuellen Version 4.11 sind weitestgehend implementiert.
Da Kermit-80 auf einem Standalone Rechner läuft, hat es die Kontrolle über den Bildschirm. Auf dem Bildschirm wird bei der Übertragung der Dateiname ausgegeben sowie die Nummer des gerade übertragenen Paketes sowohl beim Senden als auch beim Empfangen.
Kermit-80 kann einen Timeout bei einer Datenanforderung bedienen und Totschleifen automatisch abbrechen. Meistens ist dies nicht wichtig, da das Kermit auf der Gegenseite den Timeout besser bedient.
Die Timeouts bei Kermit-80 unterliegen Schwankungen, da sie von der Z80 Prozessorgeschwindigkeit und weiteren Faktoren abhängen, also nicht auf eine feste Uhr zugreifen.
Trotz dieser Timeout Möglichkeit scheint der Bildschirm bei der Übertragung still zu stehen, durch das Betätigen der RETURN Taste wird aber der Rechner auf der Gegenseite veranlasst, das letzte Paket nochmal zu senden (oder falls der PCW/JOYCE Daten schickt, sendet dieser das letzte Paket nochmal)
Die Dateiübertragung kann auf unterschiedliche Weise unterbrochen werden:

Control-C Hierdurch wird sofort der Kermit-80 Befehlsmodus aufgerufen, so daß nun ein beliebiger Befehl eingegeben werden kann.
Control-X Wenn eine Datei gesendet wird, bricht hierdurch die Übertragung ab. Dem angeschlossenen Empfänger wird die Unterbrechung ebenfalls mitgeteilt, so daß dieser das bisher Empfangene löscht. Werden Dateigruppen übertragen, so wird jetzt die nächste aktuelle Datei gesendet. Wird eine Datei empfangen, schickt Kermit-80 an den angeschlossenen Sender ein Signal, die Übertragung einzustellen. Nicht alle KERMIT Versionen verstehen ein solches Signal, so daß u.U. die Übertragung weitergeht. Andernfalls wird die Übertragung eingestellt. Unabhängig von der Version wird die andere Seite eine weitere Datei senden, falls Gruppen übertragen werden sollen.
Control-Z Wie Control-X, jedoch wird die Übertragung total eingestellt, so daß bei Dateigruppen nicht die nächste Datei genommen wird. Bei Einzeldateien ist das Verhalten exakt wie bei Control-X.
RETURN Wenn diese Taste mehrfach betätigt wird, versucht Kermit-80 das aktuelle Paket erneut zu senden oder zu empfangen bis ein Limit (zwischen 5 und 16 mal) erreicht wird. Es erfolgt dann die Rückkehr in den Befehlsmodus.

KERMIT-80 Befehle

KERMIT-80 benutzt eine Befehlssprache, die dem DECSYSTEM-20 entspricht. Jedes Schlüsselwort kann abgekürzt werden auf eine vom Befehl abhängige Länge. An beliebiger Stelle innerhalb eines Befehls kann ein Fragezeichen "?" eingegeben werden, um eine Übersicht aller vorhandenen Befehle zu erhalten. Die PCW/JOYCE Taste EXIT (ESCAPE, Control-[) erlaubt das automatische Darstellen eines nicht komplett eingegebenen Befehls oder Dateinamens. Falls nicht genügend Zeichen getippt wurden, um den Befehl darzustellen, gibt Kermit-80 ein akustisches Signal und erwartet eine erneute Eingabe.

BREAK schickt ein etwa 300 ms langes BREAK Signal zum Modem. Hiermit wird an einigen Modems eine Unterbrechung durchgeführt.
BYE Bei einer Verbindung mit einem KERMIT Server wird die Verbindung zu dem Server abgeschlossen. Ebenfalls wird Kermit-80 beendet und es erfolgt die Rückkehr in den CP/M Befehlsmodus.
CLEAR Löscht den Bildschirm des PCW.
CONNECT Kurzform C
richtet einen "virtuellen Terminal" Anschluß für einen beliebigen Fremdrechner ein, der an die serielle Schnittstelle (Port) angeschlossen ist. Das bedeutet, daß alle Tastatureingaben an den Port weitergegeben und alle Daten vom Port auf dem Bildschirm dargestellt werden. Eine erweiterte Version bildet das DEC Terminal VT100 nach, so daß Cursor- und Bildschirmsteuerung entsprechend ausgeführt werden können.

Bei Eingabe des Befehls CONNECT gibt der PCW/JOYCE eine Meldung aus, wie man wieder in den Befehlsmodus gelangen kann. Dies geschieht mit einem Kontrollzeichen (ESCAPE genannt), das bei der normalen Arbeit nicht benötigt wird, z.B. Control-\ (das Zeichen kann vom Benutzer definiert werden und entspricht nicht dem im ASCII Zeichensatz gleichgenannten Zeichen), gefolgt von einem einzelnen Zeichen:
?Auflisten aller möglichen Befehlszeichen
CBeenden von CONNECT, Rückkehr zum Kermit-80 Befehlsmodus
0Senden eines Null Zeichens
BSenden eines BREAK Signales
DKurzzeitiges Abschalten des DTR Signals (für etwa 2,5s)
SDen Status der Verbindung und Paramter anzeigen, aber im CONNECT Modus bleiben
WLöschen des Bilschirms
PDrucker von EIN auf AUS oder AUS auf EIN
AUnterbinden der Protokollierung in eine Datei
QWiederaufnahme der Protokollierung in eine Datei
^\(Oder ähnliches, je nach eingestelltem ESCAPE) Senden dieses ESCAPE Zeichens
COPY von nach Kopieren einer Datei "von" in eine Datei "nach"
DIR Der Befehl erlaubt die Ausgabe des entprechenden Disketteninhaltes. Wird keine Datei angegeben, so wird der gesamte Inhalt ausgegeben. Die Dateigröße(n) in K wird ebenfalls angegeben, wenn SET DIRECTORY-FILE-SIZE AN ist. Die Ausgabe kann durch Betätigung einer beliebigen Taste abgebrochen werden. Am Ende wird, auch bei Unterbrechung, der freie Platz auf der Diskette angeführt.
DISCONNECT Beim Aufruf von KERMIT und beim Aufruf von CONNECT wird das Modemsignal DTR gesetzt. DISCONNECT setzt DTR zurück.
ERA Dieser Befehl entspricht dem eingebautet CP/M ERASE Befehl. Vorm Löschen wird eine Bestätigung verlangt, wenn SET ERASE EIN gesetzt wurde.
EXIT Beenden von KERMIT. DTR wird auf den Wert vor dem Aufruf von KERMIT gesetzt.
FINISH Wie LOGOUT, die Serververbindung wird abgeschlossen, die Rückkehr erfolgt in den Kermit-80 Befehlsmodus. Folgende CONNECT Befehle stellen die Verbindung zum angeschlossenen Rechner wieder her.
GET datei Wenn Kermit-80 mit einem KERMIT Server verbunden ist, sollte dieser Befehl verwendet werden, um Dateien zu empfangen. Einschränkung: Wenn eine andere Blocküberprüfung eingestellt werden soll (Befehl SET BLOCK), dann muß der entsprechende Befehl auf dem angeschlossenen KERMIT eingegeben sein, bevor dieser als Server eingestellt wird. Andernfalls wird es zu Übertragungsstörungen kommen.
HANGUP Setzt das DTR Signal für etwa 2,5 Sekunden zurück.
HELP Kurzform ?
Gibt auf dem Bildschirm die möglichen Befehle von KERMIT aus.
LOG datei Wenn eine Terminalverbindung eingestellt wird (Befehl CONNECT), dann können hiermit alle Daten vom Port in die gewünschte Datei aufgezeichnet werden. Dies setzt voraus, daß auf dem angeschlossenen KERMIT das XON/XOFF Protokoll vorhanden ist. Aufgrund der CP/M Port Handhabung ist allerdings nicht garantiert, daß alle Daten protokolliert werden, außerdem wird keine Überprüfung vorgenommen, wie es das KERMIT Protokoll tut. Die Protokolldatei wird geschlossen, wenn die Verbindung aufgehoben wird (siehe oben: ESCAPE C). Die Protokollierung kann mit dem Unterbefehl von CONNECT A angehalten und mit Q fortgeführt werden.
LOGOUT Wie BYE, jedoch erfolgt die Rückkehr in den Kermit-80 Befehlsmodus.
PRINT datei Ausgabe einer lokalen Datei auf den Drucker. Die Ausgabe kann mit Control-C angehalten werden.
QUIT Beenden von KERMIT. DTR wird auf dem aktuellen Wert gelassen.
RECEIVE Kurzform R
Empfangen von einer Datei oder Dateigruppe vom angeschlossenen KERMIT. Die Dateinamen werden festgelegt von der Gegenstelle. Falls die Namen ungültige Zeichen beinhalten, werden automatisch alle möglichen gültigen Zeichen gewählt (Siehe den Befehl SET FILE-WARNING). Falls eine Datei bereits vorhanden ist und die FILE-WARNING an ist, so wird der Benutzer informiert. Außerdem wird versucht, einen neuen Namen zu finden, indem das Zeichen "&" an den Namen gehängt wird.
REMOTE befehl Senden eines Kommandos zum entfernten Server. "befehl" kann sein:
DIRAusgabe der Dateien auf dem Server.
FINISHBeenden des Servers.
LOGOUTBeenden des Servers und Verbindung beenden.
RENAME alt neu Umbenennen der Datei "alt" in "neu".
SEND datei Kurzform S
Senden einer Datei oder Dateigruppe zum angeschlossenen KERMIT. "datei" darf Wildcards enthalten
SET Parameter [Wert] Setzt einen gewählten Parameter auf einen gewünschten Wert. Mögliche Parameter und deren Werte sind:
BLOCK-CHECK-TYPE Die Optionen sind:
1-Zeichen-Checksum
 Voreinstellung, Standard 6 Bit Checksum
2-Zeichen-Checksum
 Eine 12 Bit Checksum kodiert als zwei Zeichen
3-Zeichen-Checksum
 Ein 16 Bit CCITT Norm CRC (Cyclic Redundancy Check) kodiert als drei Zeichen
Die Option 2 und 3 sollten nur bei extrem störanfälligen Leitungen benutzt werden. Zu beachten ist auch, daß viele KERMIT Version nur Option 1 unterstützen.
DEBUG EIN (oder AUS) Beim Senden und Empfangen werden zusätzlich die Inhalte der Pakete auf dem Bildschirm ausgegeben. Ist der Drucker eingeschaltet, so werden auch hier die Pakete ausgegeben. Darüberhinaus wird im CONNECT Modus eine kurze Meldung ausgegeben, wenn ein XON/XOFF Zeichen gesendet wird.
DEFAULT-DISK disk Dieser Befehl erlaubt die Auswahl des aktuellen Laufwerkes. Die angewählte Disk wird auch im Kermit-80 Prompt dargestellt, z.B.:

Kermit-80 A0:>

Beim PCW/JOYCE wird darüberhinaus getestet, ob die gültigen Laufwerksbezeichnungen gewählt wurden, diese sind A:, B: oder M: (Bei vorhandener Harddisk entsprechend).
DELAY wert Bei der Übertragung einer Datei mit TRANSMIT kann es nötig sein, die Zeichen zu verzögern. Der einzustellende Wert darf liegen zwischen 10 und 2550 Millisekunden (In Schritten von 10). Ist der Wert 0, so erfolgt keine Verzögerung.
Voreinstellung: 0
DIRECTORY-FILE-SIZE EIN (oder AUS) Wahlweise Kurzform der Inhaltsangabe eines Laufwerkes ohne Angabe der Größe der Dateien oder mit Größenangabe.
Voreinstellung: EIN
ERASE EIN (oder AUS) Erfragt Bestätigung vor dem Löschen einer Datei.
Voreinstellung: EIN
ESCAPE Ändert das ESCAPE Zeichen. Kermit-80 fragt nach dem neuen Zeichen.
FILE-MODE Wählt den Dateityp aus, so daß Kermit-80 erkennt, wann das Ende einer Datei erreicht ist.
SET FILE BIN[R sendet alle 128 Byte Rekords einer Datei, einschließlich des kompletten letzten Rekords.
SET FILE ASCII wird normalerweise für Textdateien benutzt, wobei die Übertragung beim ersten Control-Z beendet wird (dies ist bei CP/M die übliche Kennzeichnung des Dateieendes).
Wird für die Textübertragung der binäre Modus gewählt, so tauchen am Ende der Datei eventuell nicht zum Text gehörige Zeichen auf, maximal 127.
Wird für binäre Übertragung der ASCII Modus gewählt, so kann es passieren, daß die Datei nicht komplett übertragen wird, sondern beim Auftauchen eines Control-Z geschlossen wird.
FLOW-CONTROL EIN (oder AUS) Schaltet das XON/XOFF Protokoll EIN oder AUS. Im Zustand EIN muß der angeschlossene Rechner antworten auf ein XON oder XOFF von KERMIT. Im anderen Fall wird XON und XOFF ignoriert.
Voreinstellung: EIN
IBM EIN (oder AUS) Unterstützt die Übertragung zu und von IBM Rechenanlagen. Dies führt dazu, daß Kermit-80 auf das XON Zeichen wartet, Parität bei der Eingabe vom Port ignoriert, Parität bei der Ausgabe zum Port setzt und das lokale Echo bei CONNECT einschaltet. Da das IBM CM/CMS keinen Timer besitzt, wird auch dieser aktiviert. Die gewählte Parität wird auf EINS gesetzt.
Voreinstellung: AUS.
INCOMPLETE-FILES L\SCHEN (oder SICHERN) Falls ein Abbruch der Übertragung (GET oder RECEIVE) des KERMIT Protokolls stattfindet, wird die Empfangsdatei normalerweise gelöscht. Im Zustand SICHERN werden die bis dahin empfangenen Daten abgespeichert. Dies ist allerdings nur dann sinnvoll, wenn Textdateien übertragen werden.
Voreinstellung: L\SCHEN.
LINE EIN (oder AUS) Im Zustand EIN wird eine TRANSMIT Datei zeilenweise übertragen. Im Zustand AUS erfolgt die Übertragung der kompletten Datei.
Voreinstellung: EIN
LOCAL-ECHO EIN (oder AUS) Als Vorbereitung für den Befehl CONNECT. Falls der angeschlossene Rechner halb-duplex arbeitet, muß LOCAL-ECHO EIN sein, bei voll-duplex AUS.
Voreinstellung: AUS
PARITY Setzt die Parität für Zeichen zum Port auf einen der folgenden Werte:
KEINE, NULL, EINS, GERADE oder UNGERADE.
Falls KEINE gewählt ist, wird das achte Bit als Datenbit bewertet, andernfalls wird es auf Null gesetzt. Die Einstellung gilt sowohl für die Dateiübertragung als auch für die Terminalverbindung.
Wenn eine andere Parität als KEINE eingestellt wird, versucht Kermit-80 das achte Bit für die Übertragung von reinen Binärdateien zu verwenden. Wenn das angeschlossenen KERMIT dies auch unterstützt, so kann eine Übertragung von Binärdateien erfolgreich durchgeführt werden. Andernfalls geht das achte Bit verloren und es erscheint eine entsprechende Meldung auf dem Bildschirm.
PRINTER EIN (oder AUS) Schaltet ein Protokoll auf dem Drucker ein oder aus. Hierbei wird allerdings nicht getestet, ob der Drucker bereit ist, Daten zu übernehmen Im schlimmsten Falle können Daten im Protokoll verloren gehen.
Voreinstellung: AUS
SPEED rate Änderung der Baudrate für die serielle Schnittstelle. Folgende Baudraten stehen zur Verfügung:

50, 75, 110, 134.5, 150, 300, 600, 1200, 1800, 2400, 3600, 4800, 7200, 9600, 19200
TIMER EIN (oder AUS) Schaltet den Timer ein oder aus. Die Voreinstellung ist AUS, da Kermit-80 unter normalen Bedingungen mit einem KERMIT eines Großrechners arbeiten wird, der einen eigenen Timer besitzt.
TIMER EIN sollte gesetzt werden, wenn das angeschlossene KERMIT keinen eigenen Timer besitzt.
TIMER AUS sollte immer dann gesetzt sein, wenn die Verbindung über ein Netzwerk mit großen Verzögerungszeiten hergestellt wird.
USER nummer Dieser Befehl erlaubt die Auswahl der aktuellen Nutzernummer. Diese Nummer muß im Bereich 0 bis 15 liegen. Sie wird auch im Kermit-80 Prompt dargestellt, z.B.:

Kermit-80 M7:>
VT100 EIN (oder AUS) Bei ausgeschalteter VT100 Emulation werden die Zeichen von der seriellen Schnittstelle direkt zum Bildschirm durchgereicht. Bei eingechalteter Emulation werden die Zeichen auf VT100 Kontrollsequenzen untersucht und in PCW/JOYCE Sequenzen geändert. Unbekannte Sequenzen werden ignoriert. Siehe Anhang A für unterstützte Sequenzen.
Voreinstellung: EIN
WARNING EIN (oder AUS) Warnt den Benutzer bei Konflikten beim Empfangen von Dateien und versucht neuen Dateinamen durch Anhängen eines "&" an den vorhandenen Namen zu erzeugen.
Voreinstellung: EIN
STATUS Ausgabe des Zustandes der Maschine und der gesetzten Parameter. Diese können mit dem Befehl SET geändert werden (siehe da).
TAKE datei Ausführen von KERMIT Befehlen aus einer Kommandodatei. Wenn beim Aufruf von KERMIT die Datei KERMIT.INI gefunden wird, so werden die Befehle aus dieser Datei abgearbeitet. Im Zustand CONNECT werden Befehle nicht aus der "datei" geladen, nach Ende CONNECT wird das Laden fortgesetzt.
TRANSMIT datei Zeilenweises oder komplettes Senden einer Datei zum angeschlossenen Rechner, wobei das KERMIT Protokoll nicht verwendet wird. D.h., daß der Benutzer für die fehlerfreie Übertragung sorgen muß. Der Befehl ist sinnvoll, wenn der angeschlossene Rechner nicht über KERMIT verfügt. Während der Übertragung kann das ESCAPE Zeichen eingegeben werden, gefolgt von:
CBeenden der Übertragung
RDie letzte Zeile nochmals übertragen
Mit SET LINE kann gewählt werden, ob die Datei komplette gesendet werden soll.

Ist SET LINE EIN gewählt, so musß wie folgt verfahren werden:
  1. Beliebige Zeichen eingeben zum Senden einer Zeile.
  2. Eingabe RETURN zum Beenden der Zeile und naächste Zeile eingeben. (Weiter bei 1.)

Es können weitere Zeichen vor dem RETURN geschickt werden.

Ist SET LINE AUS gewählt, so wird die komplette Datei gesendet.
TYPE datei Ausgabe einer lokalen Datei auf dem Bildschirm. Die Ausgabe kann mit Control-C angehalten werden.
VERSION Ausgabe der aktuellen Version von KERMIT.

ANHANG A : Unterstützte VT100 Sequenzen

ESC [ Pn A                   Cursor Pn-Zeilen aufwärts
ESC [ Pn B                   Cursor Pn-Zeilen abwärts
ESC [ Pn C                   Cursor Pn-Zeichen nach rechts
ESC [ Pn D                   Cursor Pn-Zeichen nach links
ESC [ Zeile;Spalte H         Cursor positionieren
ESC [ Pn J                   Vom Cursor bis Bildchirmende löschen
ESC [ Pn K                   Vom Cursor bis Zeilenende löschen
ESC [ P1P2..,Pn m            Bildschirmattribute setzen
	Pn = 0 : Alles Rücksetzen
	Pn = 4 : Unterstreichen einschalten
	Pn = 7 : Invers einschalten
	Pn =27 : Alles Rücksetzen
ESC [ Pn P                   Pn-Zeichen löschen
ESC [ Pn L                   Pn-Zeilen einfügen
ESC [ Pn M                   Pn-Zeilen löschen
Alle anderen ESCape Folgen werden ignoriert.

KERMIT-80 Ein- Ausgabe

CP/M ist bekanntlich ein "polling system", d.h. Daten von zeichenorientierten Peripheriegeräten werden sporadisch über Statusabfrage gelesen. Werden zwei Zeichen getippt und der Rechner ist beschäftigt, so kann es bei diesem Verfahren passieren, daß ein Zeichen verloren geht.
In PCW/JOYCE Praxis heißt das, daß
- die Tastatur einen Interrupt erzeugt. Dieses Zeichen wird gelesen und in eine Speicherzelle geschrieben. Da kein Puffer zur Verfügung steht, wird das aktuelle Zeichen bei jeder neuen Zeicheneingabe überschrieben.
- das SIO (Serial Input Output, also die serielle Schnittstelle) über einen kleinen Puffer verfügt, so daß hier begrenzt Zeichen gesammelt werden können.
CP/M unterstützt standardmäßig keine serielle Schnittstelle, jedoch ist beim PCW/JOYCE ein Treiber vorgesehen, der aktiviert wird, sobald eine Schnittstellenerweiterung eingebaut wird. Über das Dienstprogramm DEVICE.COM lassen sich physikalische Geräte logischen Geräten zuweisen.
Die Programmierung des SIO kann erfolgen über:
(1)Die Standardschnittstelle BDOS
(2)Die Systemschnittstelle BIOS
(3)Der direkte SIO-Port Zugriff
(1) und (2) obliegen der Verwaltung durch das Betriebssystem. Im krassen Fall kann, z.B. durch einen Timeout, das SIO vom Betriebssystem abgehängt werden. (3) erlaubt den Zugriff unter Umgehung des Betriebssystems, hier bestimmt nur die Z80 CPU die maximale Zugriffsrate auf den Port. Hieraus ergibt sich dann die höchste mögliche Baudrate.
Im Idealfall läßt sich die SIO Eingabe durchführen durch die PCW/JOYCE Interruptroutinen. Allerdings bedingt dies einen Zugriff auf Adressen des Betriebssystems, die mit unterschiedlicher Version variieren können.
Im praktischen Fall werden die BIOS Versionen 1.4 und 1.8 unterstützt. Letztere Version ist die Version mit der Harddisk Vortex System 2000.
Werner Cirsovius
Hohe Weide 44
2000 Hamburg 20
Tel. 040/4223247
März 1993