Eine Einfuehrung in Kermit

                     Gisbert W. Selke (RECK@DBNUAMA1.BITNET)
                 Wissenschaftliches Institut der Ortskrankenkassen
                 Kortrijker Strasse 1, D-5300 Bonn 1, West Germany
                                 Oktober 1987


1.   Allgemeines

Kermit ist ein eingetragenes Warenzeichen der Henson Associates, der Muppet-
Erfinder, und ausserdem ein urheberrechtlich geschuetztes Protokoll der
Columbia-Universitaet, New York, fuer sicheren Datentransfer zwischen
Computern. Programme, die auf diesem Protokoll beruhem werden kostenlos
abgegeben (bis auf eine Gebuehr, um die Kopierkosten zu decken); es gibt
solche Programme mittlerweile fuer eine sehr grosse, staendig wachsende Zahl
von Rechnern, so dass ein relativ problemloser Austausch von Daten zwischen
verschiedensten Systemen moeglich ist.

Ein solcher Transfer benutzt eine serielle Datenleitung; z.B. koennen zwei PCs
ueber Modems miteinander verbunden sein, oder ein Rechner - der sog. "lokale
Rechner" - kann an die Terminal-Leitung eines anderen Rechners - des
"entfernten Rechners" oder "Wirtsrechners" - angeschlossen sein. (Wir werden
es im weiteren nur mit dem zweiten Fall zu tun haben.) In diesem Fall gaukelt
der Kermit auf dem lokalen Rechner, z.B. einem PC, dem Wirtsrechner, z.B.
einer Modcomp oder einer VAX, vor, er habe es mit einem ganz normalen
Terminal zu tun.

Das Arbeiten mit Kermit beginnt also damit, lokal ein Kermit-Programm zu
starten - wir benutzen im folgenden den MS-Kermit als Beispiel - und dann
diesem den Befehl zu geben, die Verbindung zum Wirtsrechner herzustellen und
sich im weiteren wie ein Terminal zu verhalten. Kermit wird dadurch fast
voellig transparent - durch einen speziellen Tastendruck ist es aber jederzeit
moeglich, zur PC-Seite zurueckzukehren und dem lokalen Kermit Befehle zu geben;
man kann auch das Programm beenden und auf die Betriebssystem-Ebene zurueck-
kehren. (Dann sollten allerdings keine Daten mehr vom Wirtsrechner an sein
- vermeintliches - Terminal abgeschickt werden...)

Fuer die eigentliche Aufgabe des Kermit-Protokolls, den sicheren Datentransfer,
ist es aber noetig, dass sich zwei Kermits miteinander unterhalten. Dazu stellt
man die Verbindung zum Wirtsrechner her und startet den dortigen Kermit. Dann
gibt man diesem Kermit - dem Wirtsrechner-Kermit also - den Befehl, eine Datei
zu senden (bzw. zu empfangen), geht schnell zurueck auf die PC-Seite, und
fordert den lokalen Kermit auf, eine Datei zu empfangen (bzw. zu senden).

Jetzt kann man sich bequem zuruecklehnen, denn alles weitere geht automatisch:
Die beiden Kermits unterhalten sich miteinander, wobei sie sicherstellen, dass
sie sich nicht gegenseitig missverstehen; im Laufe dieser Unterhaltung werden
die gewuenschten Daten uebertragen. Der Fortschritt der Unterhaltung wird auf
dem Bildschirm angezeigt.

Nach Beendigung verbindet man sich wieder mit dem Wirtsrechner und gibt
dem dortigen Kermit neue Kommandos oder beendet das Programm auf ordentliche
Weise. Danach kann im Terminalbetrieb weitergearbeitet werden.

Die Benutzeroberflaechen verschiedener Kermits sind sich mehr oder weniger
aehnlich; jeder bietet zusaetzlich zu den noetigsten Kommandos noch einige
weitere, z.B. zum Setzen von Uebertragungsparametern (Baud rate, parity, ...),
oder eine Betriebssystem-Schnittstelle. Jeder Kermit sollte das Kommando "HELP"
verstehen; darueber hinaus kann es weitere Hilfsmittel zur Benutzerfuehrung
geben. Wie man vom Wirtsrechner zum PC zurueckkehrt, wird i.a. auch jederzeit
angezeigt.

Wir werden in den Beispielen davon ausgehen, dass der Wirtsrechner eine Mod-
comp ist und KERMIV (von Setpoint Inc.) als Kermit-Programm zur Verfuegung
steht. - Wenngleich das gesamte Kermit-Protokoll auf der ASCII-Repraesentation
von Zeichen beruht, ist es uebrigens auch moeglich, mit EBCDIC-Wirtsrechnern zu
kommunizieren. Der Wirtsrechner-Kermit besorgt in diesem Fall die Konversion.

- Zusammengefasst heisst das also, dass Kermit zwei verschiedene Aufgaben
beherrscht, die Terminal-Emulation und den Dateitransfer. Waehrend des Datei-
transfers stellt das Kermit-Protokoll durch den Dialog zweier Kermit-Programme
sicher, dass die Daten korrekt uebertragen werden. Der Emulationsbetrieb ist
hingegen nicht durch das Protokoll abgedeckt; der Betrieb ist nicht sicherer
als der eines normalen Terminals. Der einzige Vorteil ist, dass auf Knopfdruck
wahlweise andere Dienste des lokalen Rechners zur Verfuegung stehen.

2.   Der Ablauf einer Kermit-Sitzung (PC-Wirtsrechner-Verbindung)

(Fuer Kermit-Befehle koennen Gross- und Kleinschreibung beliebig gemischt wer-
den; Befehle koennen abgekuerzt werden, sofern sie eindeutig bleiben. Im fol-
genden ist die Minimalform der Befehle durch grosse Buchstaben gekennzeichnet.
Woerter in spitzen Klammern < ... > beschreiben, was der Benutzer hier eingeben
soll. Ein Semikolon markiert den Anfang eines Kommentars.)

2.1  Terminalbetrieb

1.   <Starte den PC.>
2.   <Waehle das Directory an, das KERMIT.EXE enthaelt.>
3.   KERMIT
4.   Connect
5.   Shift-Alt-F1       ; guten Morgen, Modcomp
     .
     .
     .

1000. Shift-Alt-F2      ; tschues, Modcomp
1001. Alt-C             ; Zurueck zum PC
1002. Quit
1003. <Schalte den PC aus.>

Die Schritte 5 bzw. 1000 sehen bei anderen Wirtsrechnern natuerlich anders
aus - sie muessen durch die jeweiligen Logon- bzw. Logoff-Schritte ersetzt
werden.


2.2  Textdatei-Transfer

Bei vielen Wirtsrechnern wird der Ablauf einfacher sein als hier gezeigt; das
liegt hauptsaechlich daran, dass auf der Modcomp keine allgemein verbindliche
File-Manager-Schnittstelle vorliegt.

 1.  <Verbinde Dich mit der Modcomp wie in 2.1.1 ... 2.1.5.>
 2.  <Attache alle USLs, aus denen bzw. in die Du Daten transferieren willst;
     waehle als logical file name nicht USL!>
 3.  KERMIT                            ; jetzt laeuft KERMIV
 4.  SET Usl <logical file name>       ; USL zeigt dann auf eine Deiner USLs
 5.a SENd <member name>   oder    5.b RECeive  ; vom Wirtsrechner aus gesehen
 6.  Alt-C                             ; zurueck zum PC
 7.a Receive              oder    7.b Send <dateiname> ; vom PC aus gesehen
     .                                 ; warten!
     .
     .
 8.  Connect                           ; zurueck zur Modcomp
     <Wiederhole Schritte  4 ... 8 so oft wie noetig.>
 9.  Quit                              ; Ende KERMIV
10.  <Beantworte ggf. alle Fragen, die KERMIV Dir stellt.>
11.  JOB
     <Ab hier normaler Terminalbetrieb.>


KERMIV arbeitet nur mit USL-Eintraegen; empfangene Dateien werden normalerweise
unter einem Namen eintragen, der dem PC-Dateinamen aehnlich ist. Modcomp-
Dateien werden auf dem PC normalerweise unter dem Originalnamen abgelegt (mit
leerer Extension).


2.3  Transfer binaerer Dateien

Bei vielen Wirtsrechnern wird sich diese Art von Dateitransfer nicht vom
Text-Transfer unterscheiden; bei richtigen Parametersetzungen (hauptsaechlich
Paritaet) stellen die Kermits auch die Uebertragung von 8-Bit-Daten sicher. Ob
Daten in der binaeren Darstellung des einen Rechners fuer den anderen Rechner
ueberhaupt einen Sinn ergeben, ist i.a. natuerlich nicht klar. Die Modcomp-
spezifische Art der Dateiverwaltung, die KERMIV benutzt, bereitet auch hier
Probleme. Deswegen muessen solche Dateien vor- und nachbehandelt werden. Eine
Moeglichkeit ist die einfache Hex-Codierung, die jedes Byte durch zwei Text-
zeichen darstellt; in den Beispielen unten wird eine kompaktere Form benutzt
- die BOO-Codierung -, die im wesentlichen je 3 Bytes durch 4 ASCII-Zeichen
darstellt.

Fuer den Transfer vom PC zur Modcomp:

 1.  <Bereite den Dateitransfer vor wie in 2.2.1 ... 2.2.4.>
 2.  Alt-P                             ; rufe den DOS-Kommando-Prozessor
                                         des PC auf
 3.  BIN2BOO <dateiname>               ; erzeugt ASCII-Datei gleichen Namens,
                                         Extension .BOO
 4.  EXIT                              ; zurueck in KERMIVs feuchte Arme
 5.  <Transferiere die .BOO-Datei wie gehabt.>
 6.  <Beende KERMIV ordentlich; aber ohne $JOB!>
 7.  <Lege eine Datei an, die die binaeren Daten aufnehmen soll.>
 8.  BOO2BIN <usl-member-name> <usl-lfn> <output-kanal>
                                       ; erzeugt binaere Datei
 9.  JOB
10.  <Loesche irgendwann die .BOO-Datei auf dem PC.>


Fuer den Transfer von der Modcomp zum PC:

 1.  <Verbinde Dich mit der Modcomp wie in 2.1.1 ... 2.1.5.>
 2.  <Attache die binaere Datei und eine USL zur Zwischenspeicherung.>
 3.  BIN2BOO <input-kanal> <usl-member-name> <usl-lfn>  ; Asciifizieren
 4.  <Transferiere den erzeugten USL-Eintrag wie in 2.2.3 ... 2.2.7.>
 5.  PUsh                                    ; Wir sind noch am PC.
 6.  RENAME <dateiname> <dateiname>.BOO      ; Extension .BOO muss sein!
 7.  BOO2BIN <dateiname mit neuer Extension> ; ent-asciifiziert die Datei
 8.  DEL <dateiname>.BOO                     ; Aufraeumen
 9.  EXIT                                    ; zurueck zu MS-Kermit
10.  Connect                                 ; zurueck zu KERMIV
11.  <Weiter wie gehabt.>


3.   Die wichtigeren KERMIT-Befehle

3.1  KERMIV

(Dies ist natuerlich ein Modcomp-spezifischer Abschnitt.)

SET Usl <logical file name>  : gibt an, wo zu sendende Dateien stehen
SENd    <membername>         : sende den Eintrag aus der vorgewaehlten USL
SENd    @<usl-lfn>           : sende alle Eintraege aus der angegebenen USL
RECeive                      : empfange eine Datei oder ein Gruppe von Dateien
Quit                         : Ende
Help                         : liste die gueltigen Befehle
STatus                       : zeige die gegenwaertigen Parameter an


3.2  MS-Kermit

Connect                      : verbinde mit dem entfernten Rechner
Send <name>                  : sende diese Datei oder Gruppe von Dateien
Receive                      : empfange eine Datei oder eine Gruppe von Dateien
Quit                         : Ende
Help                         : liste die gueltigen Befehle
STatus                       : zeige die gegenwaertigen Parameter an
SET Baud <baudrate>          : aendere die Baudrate
SET PArity <paritaet>        : aendere die benutzte Paritaet
SET DEFault-disk <disk>      : aendere die Default-Disk
SET Key <tastencode> <text>  : definiere eine Taste um (fuer Emulationsmodus)
DEFine <name> <kommando>     : definiere ein Macro
DO <name>                    : fuehre ein Macro aus
PUsh                         : rufe den DOS-Kommando-Prozessor auf
TAke <name>                  : fuehre die in der angegebenen Datei stehenden
                               Kermit-Kommandos aus
...                          : zusaetzlich einige DOS-Kommandos


An jeder Stelle waehrend der Befehlseingabe kann man sich durch "?" anzeigen
lassen, wie man die angefangene Eingabe fortsetzen kann; drueckt man stattdes-
sen die "ESC"-Taste, wird der Befehl so weit vervollstaendigt, wie eindeutig
moeglich ist. Noch nicht vollstaendig eingegebene Kommandos koennen i.a.
durch Ctrl-C abgebrochen werden.

Waehrend der Verbindung mit dem Wirtsrechner koennen alle Tasten eine spezi-
elle Bedeutung haben; auch koennen ankommende Zeichen in andere uebersetzt
werden. Einige Uebersetzungen, die sich bei uns als sinnvoll erwiesen haben,
sind im Anhang 1 verzeichnet; darueberhinaus kann fuer die richtige Handhabung
deutscher Sonderzeichen gesorgt werden. Alle diese Belegungen werden durch das
Einlesen der Datei MSKERMIT.INI erzeugt; ein Beispiel fuer deutsche Benutzer
ist in Anhang 3 aufgelistet. - Dort sind auch zwei Macros  "DEUTSCH" bzw.
"ENGLISCH" zum einfachen Umschalten zwischen deutscher Anzeige (mit Umlauten)
und englischer Anzeige (mit eckigen Klammern usw.) enthalten sowie ein Macro
"RUNDIA" zum Einloggen und Verbinden.

Weitere Sonderbedeutungen koennen in der Datei MSKERMIT.INI vorgegeben werden,
die beim Start des Programms sofort eingelesen wird.

MS-Kermit kann komplette Ablauf-Szenarios, sogenannte Skripten oder TAKE-Files,
verarbeiten; zum Beispiel lassen sich ganze Datei-Transfers automatisieren.
Beispiele dafuer sind in Anhang 2 aufgefuehrt.


4.   Weiterfuehrende Literatur und Bezugsquellen

Zu jedem Kermit-Programm gibt es eine mehr oder weniger ausfuehrliche Bedie-
nungsanleitung, die zusammen mit dem Programm selber verteilt werden sollte.
Jeder Kermit-Benutzer darf (und sollte!) Programm und Dokumentation an alle
Interessenten kostenlos weitergeben. Wer im Rechnerverbund zu den Computer-
Netzen INTERNET oder BITNET Zugang hat, kann sich die aktuellen Programm-
Versionen fuer alle verfuegbaren Systeme bei den Rechnern CU20B.COLUMBIA.EDU
oder CUVMA.BITNET besorgen; INTERNET-Benutzer haben FTP-Zugang, BITNET-
Benutzer koennen ein HELP-Kommando (interaktiv oder als Mail) an den Server
KERMSRV schicken. Dort gibt es auch viele weitere Informationen ueber das
Protokoll und seine Implementierungen sowie ein elektronisches Diskussions-
forum fuer Probleme und Weiterentwicklungen des Systems.

Von Frank da Cruz, einem der Initiatoren des Kermit-Protokolls, gibt es
ausserdem das Buch "KERMIT - A File Transfer Protocol" (erschienen bei
Digital Press), das eine sehr gute und verstaendliche Darstellung der
Probleme beim Datenaustausch zwischen Rechnern gibt und auch viele Hinweise
fuer Programmierer enthaelt, die ein neues Kermit-Programm schreiben wollen
oder muessen.






         Anhang 1: Ein Beispiel einer Tastenbelegung fuer MS-Kermit

Diese Tastenbelegungen gelten nur waehrend des Emulations-Betriebs, also auf
der Wirtsrechner-Seite. Sie werden erzeugt durch das Einlesen der Datei
MSKERMIT.INI, die in Anhang 3 aufgelistet ist.

1.   Kermit-Kommandos
     Ctrl-A             : <BREAK>
     Alt-A              : <BREAK>
     Alt-C              : zurueck zum PC
     Alt-H              : Kommando-Hilfsmenue
     Alt-P              : Aufruf des DOS-Kommando-Prozessors
     Ctrl-PrtScr        : Statuszeile an/aus

2.   Screen-Rollback
     Ctrl-PgUp          : eine Seite zurueck
     Ctrl-PgDn          : eine Seite nach unten
     Shift-Ctrl-PgUp    : eine Zeile zurueck
     Shift-Ctrl-PgDn    : eine Zeile nach unten
     Ctrl-Home          : an den Anfang des Rollback-Puffers
     Ctrl-End           : an das Ende des Rollback-Puffers

3.   Zusaetzliche Belegungen fuer ECMA-Terminals (in VT102-Emulation)
     Home               : HOME (ECMA: Pfeil nach links oben)
     Cursor-Tasten      : wie ueblich
     PgUp               : ECMA: PrevPage
     PgDn               : ECMA: NextPage

4.   Modcomp-Kurzbefehle
     F1                 : JOB<CR>
     F2                 : DISKINFO<CR>
     F3                 : DUMP
     F4                 : EXE SED<CR>
     F5                 : HELP
     F6                 : EXE LIST LM<CR>
     F10                : ' (Apostroph bzw. accent aigu)
     Shift-Alt-F1       : <BREAK>RUN DIA<CR>
     Shift-Alt-F2       : <BREAK>STO DIA<CR>






                           Anhang 2: Nuetzliche Dateien

Diese Szenarien sind natuerlich Wirtsrechner-spezifisch; weil aber die
Modcomp, fuer die sie geschrieben sind, keine sehr freundliche Benutzer-
Schnittstelle hat, sollte es nicht zu schwer sein, die Szenarien fuer
andere, freundlichere Rechner abzuwandeln. - Der Inhalt der Dateien ist
in Anhang 4 aufgelistet.


1.   RUNDIA.SCR:
     Startet Terminal-Sitzung auf der Modcomp und verbindet.
     Vom Kermit-Prompt aus aufrufen mit TAKE RUNDIA.SCR.

2.   SEND.BAT:
     Schickt eine ASCII-Datei vom PC zur Modcomp und lagert sie dort in eine
     USL ein. Auf der Modcomp braucht vorher kein RUN DIA gegeben worden zu
     sein.
     (Benoetigt die Dateien PRESDRC.SCR, SEND1.SCR, SEND2.SCR.)
     Vom DOS-Prompt aus aufrufen mit SEND <filename> <userid> <usl-name>.

3.   RECV.BAT:
     Schickt eine ASCII-Datei aus einer USL auf der Modcomp zum PC. Auf der
     Modcomp braucht vorher kein RUN DIA gegeben worden zu sein.
     (Benoetigt die Dateien PRESDRC.SCR, RECV1.SCR, RECV2.SCR.)
     Vom DOS-Prompt aus aufrufen mit RECV <filename> <user-id> <usl-name>.

4.   Fuer binaeren Datei-Transfer:
a)   BIN2BOO.COM: formt binaere Datei um in eine ASCII-Datei. Die Ausgabe
     erfolgt auf eine Datei gleichen Namens, aber mit Extension .BOO.
     Vom DOS-Prompt aus aufrufen mit BIN2BOO <infile-name>.
b)   BOO2BIN.COM: kehrt den Prozess von BIN2BOO um.
     Die Eingabedatei muss den gleichen Namen, aber Extension .BOO haben.
     Vom DOS-Prompt aus aufrufen mit BOO2BIN <outfile-name>.
   Auf der Modcomp-Seite stehen entsprechend als Prozeduren in der AJC zur
   Verfuegung:
c)   BIN2BOO <user-id> <datei-fm-name> <usl-name> formt die binaere Datei
     <user-id>_<datei-fm-name> in eine ASCII-Datei um und lagert sie unter dem
     gleichen Namen in die USL <user-id>_<usl-name> ein.
d)   BOO2BIN <user-id> <datei-fm-name> <usl-name> kehrt den Prozess von BIN2BOO
     um. Die Eingabe wird gelesen vom Eintrag <datei-fm-name> in der USL
     <user-id>_<usl-name>, die Ausgabe erfolgt auf die Datei
     <user-id>_<datei-fm-name>, die vorher schon angelegt worden sein muss.






                  Anhang 3: Ein Beispiel fuer MSKERMIT.INI

COMMENT --     MS-KERMIT-Initialisierungsfile fuer generellen Gebrauch
COMMENT --     durch deutsche Benutzer unter besonderer Beruecksichtigung
COMMENT --     der Modcomp-Erfordernisse
COMMENT --     Gisbert W.Selke, WIdO, 19. November 1987

COMMENT    *** DIESE DATEI SOLLTE NICHT GEAENDERT WERDEN! ***
COMMENT    (zwecks einfacherer Software-Wartung durch System-Menschen)

COMMENT --     Hier werden WIdO-Standard-Dinge definiert; am Ende wird
COMMENT --     der TAKE-File MSLOCAL.INI aufgerufen, in dem jede
COMMENT --     Benutzerin eigene Dinge vereinbaren kann.

COMMENT --     Weil diese Datei ueber BITNET uebertragen wurde, koennen
COMMENT --     einige Zeichen dadurch verlorengegangen worden sein;
COMMENT --     insbesondere Up-Arrow, eckige Klammern und senkrechte
COMMENT --     Striche koennen Probleme machen.

set take-echo off       ; Das interessiert uns nicht.
set terminal VT102      ; Emuliere ein DEC-VT102-Terminal
set terminal roll on    ; Vor einer Eingabe zurueck an die richtige Stelle
set terminal wrap on    ; Am Zeilenende herumwickeln
set display regular 8-bit  ; Damit wir Umlaute haben
set warning on          ; Keine existierenden Dateien ueberschreiben!
set flow none           ; Kein xon/xoff
set baud 19200          ; Die  meisten von uns koennen so schnell laufen.
set send start 30       ; Modcomp mag kein Ctrl-A als start-of-packet.
set rec  start 30       ; Modcomp mag kein Ctrl-A als start-of-packet.
set send packet 76      ; Sicherheitshalber nur kurze Pakete
set retry 63            ; Manchmal hakt es...

COMMENT        Allgemeine Tastaturbelegung im WIdO:
set key \d1    \Kbreak               ; CA   : <BREAK>
set key \d270  {\d8}    ; grauer grosser Links-Pfeil wird Backspace
set key \d315  {JOB\d13}             ;   F1 : JOB<cr>
set key \d316  {DISKINFO\d13}        ;   F2 : DISKINFO<cr>
set key \d317  {DUMP }               ;   F3 : DUMP
set key \d318  {EXE SED\d13}         ;   F4 : EXE SED<cr>
set key \d319  {HELP }               ;   F5 : HELP
set key \d320  {EXE LIST LM\d13}     ;   F6 : EXE LIST LM<cr>
set key \d321  {}                    ;   F7 : nix!
set key \d322  {}                    ;   F8 : nix!
set key \d323  {}                    ;   F9 : nix!
set key \d324  {'}                   ;   F10: accent aigu
set key \d327  {\d27-H}              ;  Home: HOME
; set key \d328  \Kuparr             ;  Aufwaerts-Pfeil: (vordefiniert)
set key \d329  {\d27`lbr`V}              ;  PgUp: PREV PAGE
set key \d330  {-}                   ;  graues Minus   : -
; set key \d331  \Klfarr             ;  Links-Pfeil    : (vordefiniert)
; set key \d333  \Krtarr             ;  Rechts-Pfeil   : (vordefiniert)
set key \d334  {+}                   ;  graues Plus    : +
set key \d335  {}                    ;  End : nix!
; set key \d336  \Kdnarr             ;  Abwaerts-Pfeil : (vordefiniert)
set key \d337  {\d27`lbr`U}              ;  PgDn: NEXT PAGE
set key \d852  {}                    ;  SF1 : nix!
set key \d853  {}                    ;  SF2 : nix!
set key \d854  {}                    ;  SF3 : nix!
set key \d855  {}                    ;  SF4 : nix!
set key \d856  {}                    ;  SF5 : nix!
set key \d857  {}                    ;  SF6 : nix!
set key \d858  {}                    ;  SF7 : nix!
set key \d859  {}                    ;  SF8 : nix!
set key \d860  {}                    ;  SF9 : nix!
set key \d861  {}                    ;  SF10: nix!
set key \d1394 \Kmodeline            ;CPrtScr: Modeline an/aus
set key \d1397 \Kendscn              ;  CEnd: roll down to end
set key \d1398 \Kdnscn               ; CPgDn: roll down one screen
set key \d1399 \Khomscn              ; CHome: roll up to beginning
set key \d1412 \Kupscn               ; CPgUp: roll up   one screen
set key \d1910 \Kdnone               ;SCPgDn: roll down one line
set key \d1924 \Kupone               ;SCPgUp: roll up   one line
set key \d2334 \Kbreak               ; AA   : <BREAK>
set key \d2335 {}                    ; AS   : nix!
; set key \d2339 \Khelp              ; AH   : connect help (vordefiniert)
set key \d2349 {}                    ; AX   : nix!
set key \d2350 \Kexit                ; AC   : zurueck zum PC
set key \d2352 {}                    ; AB   : nix!
set key \d2434 {}                    ; A~   : nix!
set key \d2435 {}                    ; A'   : nix!
set key \d2920 {\d1                                RUN DIA\d13}
                                     ; SAF1 : <BREAK>RUN DIA<cr>
set key \d2921 {\d1                                STO DIA\d13}
                                     ; SAF2 : <BREAK>STO DIA<cr>

COMMENT        Deutsche Spezialzeichen werden zu 7-bit ASCII:
set key \d132  {\d123}  ; Umlaut-a wird zu linker geschweifter  Klammer
set key \d142  {`lbr`}      ; Umlaut-A wird zu linker eckiger       Klammer
set key \d148  {`vba`}      ; Umlaut-o wird zu senkrechtem Strich
set key \d153  {\}      ; Umlaut-O wird zu umgekehrtem Schraegstrich
set key \d129  {\d125}  ; Umlaut-u wird zu rechter geschweifter Klammer
set key \d154  {`rbr`}      ; Umlaut-U wird zu rechter eckiger      Klammer
set key \d225  {~}      ; "sz"     wird zu Tilde

COMMENT        Empfangene Sonderzeichen werden richtig dargestellt:
set trans inp { \d132   ; linke  geschweifte Klammer als Umlaut-a
set trans inp `lbr` \d142   ; linke  eckige      Klammer als Umlaut-A
set trans inp `vba` \d148   ; senkrechter Strich         als Umlaut-o
set trans inp \ \d153   ; umgekehrter Schraegstrich   als Umlaut-O
set trans inp } \d129   ; rechte geschweifte Klammer als Umlaut-u
set trans inp `rbr` \d154   ; rechte eckige      Klammer als Umlaut-U
set trans inp ~ \d225   ; Tilde                      als "sz"

COMMENT        Zwei Macros zum einfacheren Umschalten:
define deutsch  set translation input on   ; deutsche  Darstellung
define englisch set translation input off  ; englische Darstellung

do deutsch              ; normalerweise deutsche Darstellung

define rundia  take rundia.scr    ; zum einfacheren Einloggen

COMMENT        Tabulatoren stehen da, wo der Editor SED sie vermutet:
set terminal tabstops clear all   ; erst alle weg, und dann:
set terminal tabstops at 7 21 36 73

COMMENT        IBM (Macro fuer Linemode-IBM-Mainframe-Verbindung) ist
COMMENT        vordefiniert

COMMENT        Macro fuer typisches IBM-Mainframe-7171-Front-End:
; define 7171 set timer on,set par ev,set flo x,set hand no,set loc off,

COMMENT        Macro fuer Kommunikation mit DEC & anderen
COMMENT        Full-Duplex-Rechnern:
; define DEC set timer off,set par no,set flo x,set hand no,set loc off,

COMMENT        Jetzt wird eine Benutzer-spezifische Konfigurations-Datei
COMMENT        eingelesen:
take mslocal.ini

COMMENT  --    Ende von MSKERMIT.INI





            Anhang 4:  Beispiele fuer TAKE- und Batch-Files

<<RUNDIA.SCR>>
set take-echo off                 ; das interessiert den Benutzer nicht
COMMENT           "Einloggen" bei der Modcomp
COMMENT           Gisbert W.Selke, 29. Oktober 87
echo     Bitte Geduld - das RUN DIA dauert etwas...\d13
set input echo on                 ; das Echo der Modcomp interessiert aber
clear                             ; Putzen der Leitung
set input timeout proceed         ; sicherheitshalber
output \b;                        ; ein BREAK
pause 1                           ; langsam!
output \b;                        ; noch ein BREAK - sicherheitshalber
input 2 >;                        ; Ist er da, der TMP...
pause 2                           ; langsam!
output RUN DIA\d13;               ; Start
pause 1                           ; falls sie schon lief:
output \d32\d13;                  ; ein <CR>
echo  Terminal-Sitzung ist gestartet!\d13
connect
COMMENT              Ende des RUNDIA-Scripts

<<SEND.BAT>>
echo off
Rem  Datei-Transfer-Utility PC -> Modcomp
Rem  Gisbert W.Selke, 29. Oktober 1987, nach einer Idee von Joe Doupnik
Rem  Zur Benutzung mit MS-Kermit 2.30 oder spaeter
if ".%2" == "." goto gebrauch
if ".%3" == "." goto gebrauch
if exist %1 goto weiter
echo       Angegebene Datei existiert nicht!
:gebrauch
echo       Gebrauchsanweisung:  SEND  filename  user-id usl-name
goto fertig
:weiter
echo Ran an die Modcomp!  Datei-Transfer von %1 vom PC in die USL %2_%3
kermit tak presdrc.scr,out AT %2 UUU %3\d13,tak send1.scr,s %1,tak send2.scr,
if errorlevel 1 goto fehler
echo  Datei-Transfer %1 vom PC in die Modcomp-USL %2_%3 ist beendet
goto fertig
:fehler
echo Datei-Transfer von %1 vom PC in die Modcomp-USL %2_%3 ist schiefgegangen!
:fertig
echo on

<<PRESDRC.SCR>>
set take-echo off                 ; uninteressant
COMMENT         Datei-Transfer-Utility, Vorbereitungsteil
COMMENT         Gisbert W.Selke, 29. Oktober 1987
echo \d13\d10 Vorbereiten des Transfers...
set input echo on                 ; Was sagt die MODCOMP dazu
set input timeout proceed         ; notfalls am Ende eine Meldung
clear                             ; Leitung putzen
COMMENT         Sicherheitshalber ein Einloggen probieren...
echo  \d13\d10Einloggen bei der MODCOMP  -- bitte etwas Geduld...
output \b;                        ; ein BREAK
pause 1                           ; langsam!
output \b;                        ; noch ein BREAK - sicherheitshalber
input 2 >;                        ; Ist er da, der TMP...
pause 1                           ; langsam!
output RUN DIA\d13;               ; Start
pause 2                           ; und falls sie schon lief:
output \d32\d13;                  ; nix tun, MODCOMP
output JOB\d13;                   ; noch schnell aufraeumen
input 60 $;                       ; in Ordnung
COMMENT         Jetzt ein Attach, dann Take send1.scr / recv1.scr

<<SEND1.SCR>>
COMMENT           Datei-Transfer-Utility PC -> Modcomp, Teil 1
COMMENT           Gisbert W.Selke, 29. Oktober 1987
pause 1                           ; langsam
input 10 OPEN;                    ; Attach abwarten
input 2 $;                        ; Attach beendet
output KERMIT\d13;                ; Kermiv starten
input 40 MAXIV>;                  ; Kermiv ist da
output SET USL UUU\d13;           ; USL passend vorwaehlen
input 10 MAXIV>;                  ; Prompt abwarten
output RECEIVE\d13;               ; Erwarte die Datei
pause 1                           ; langsam
echo \d13\d10Datei-Senden beginnt
COMMENT   Ende von Teil 1 - jetzt ein Send ..., dann Take send2.scr

<<SEND2.SCR>>
COMMENT           Datei-Transfer-Utility PC -> Modcomp, Teil 2
COMMENT           Gisbert W.Selke, 29. Oktober 1987
echo \d13\d10Aufraeumen beginnt
output \d32\d13;                  ; einmal nix tun
pause 1                           ; langsam
output quit\d13;                  ; Schluss, Kermiv
input 10 (Y/N);                   ; Default-Werte annehmen
pause 1                           ; langsam
output Y\d13;                     ; ja, Default-Werte sind OK
input 3  (C/R);                   ; Cat oder Recat
pause 1                           ; langsam
output R\d13;                     ; Recat sicherheitshalber
input 60 $END;                    ; bist Du fertig
input $;                          ; jetzt endgueltig
pause 1                           ; Gnadenfrist
output JOB\d13;                   ; Laden dicht machen
input 60 $;                       ; das war's
quit

<<RECV.BAT>>
echo off
Rem  Datei-Transfer-Utility Modcomp -> PC
Rem  Gisbert W.Selke, 19. November 1987, nach einer Joe Doupnik
Rem  Zur Benutzung mit MS-Kermit 2.30 oder spaeter
if ".%1" == "." goto gebrauch
if ".%2" == "." goto gebrauch
if ".%3" == "." goto gebrauch
goto weiter
:gebrauch
echo       Gebrauchsanweisung:  RECV  membername  user-id  usl-name
goto fertig
:weiter
echo Ran an die Modcomp! Datei-Transfer von %1 aus der USL %2_%3 zum PC
kermit ta presdrc.scr,o AT %2 USL %3\d13,ta recv1.scr,o send %1\d13,ta recv2.scr
if errorlevel 2 goto fehler
echo Datei-Transfer von %1 in der Modcomp-USL %2_%3 zum PC beendet
goto fertig
:fehler
echo Datei-Transfer von %1 in der Modcomp-USL %2_%3 zum PC ist schiefgegangen!
:fertig
echo on

<<RECV1.SCR>>
COMMENT       Datei-Transfer-Utility MODCOMP -> PC, Teil 1
COMMENT       Gisbert W.Selke, 29. Oktober 1987
echo \d13\d10MODCOMP-Kermit wird gestartet
input 10 OPEN;                   ; Attach gelungen
input 2 $;                       ; und beendet
output KERMIT\d13;               ; Kermiv-Start
input 40 MAXIV>;                 ; da ist er
output SET DELAY 1\d13;          ; voran jetzt
input 5  MAXIV>;                 ; da ist er
COMMENT Jetzt ein Send ..., dann Take recv2.scr

<<RECV2.SCR>>
COMMENT       Datei-Transfer-Utility MODCOMP -> PC, Teil 2
COMMENT       Gisbert W.Selke, 15 Okt 87
echo \d13\d10Datei-Empfang beginnt
pause 1
receive                          ; MS-Kermit
echo \d13\d10Aufraeumen beginnt
output \d32\d13;                 ; einmal nix tun
output \d32\d13;                 ; nochmal nix tun
input 5 MAXIV>;                  ; langsam zum Ende kommen
output quit\d13;                 ; Kermiv-Ende
input 10 $END;                   ; Prozedur beendet
pause 1                          ; langsam ...
output JOB\d13;                  ; und Schluss
pause 1                          ; langsam
quit                             ; MS-Kermit Ende

<<Ende der Beispiel-Dateien>>

(Ende der Kermit-Einfuehrung)