=============================================================== =============================================================== == == D A T E N T R A N S F E R V I A K E R M I T == == == == A N L E I T U N G == == =============================================================== =============================================================== Michael Anton Distributed by DMV GmbH Fuldaerstr.6 D-3440 Eschwege Acknowledgement KERMIT was not designed by Jim Henderson, but at the Columbia University Center for Computer Activities. It is a Public Domain Software and may therefore be copied and distributed without minding any copyrights, as long as there are no financial interests involved. For further informations see SIG/M User Group Vol.113 and 232. I wish to thank those guys who had the nerve of producing 119 KByte of source code with this wonderful results !!! Michael Anton April 1986 1) Worum es geht ---------------- Software ist Mangelware. Das Grundproblem ist aber: Wie kriegt man Programme von anderen Rechnern oder anderen Formaten aufs eigene Format? Im folgenden wird beschrieben, wie man ohne viel Aufwand ueber die serielle Schnittstelle Daten und Programme uebertragen kann. Am einfachsten ist zwar die Methode mit PIP, diese hat jedoch gravierende Nachteile. Einmal unterstuetzt PIP keinen Handshake (d.h. Rueckmeldung vom Uebertragungspartner). Somit kann es beim Uebertragen laengerer Dateien zu Datenverlusten kommen, wenn der empfangende Rechner die bisher empfangenen Daten auf die Diskette schreibt und der Sender weiter sendet, obwohl der Empfaenger diese Daten nicht aufnehmen kann. Zweitens koennen mit PIP nur Dateien uebertragen werden, die im ASCII (Text)-Format oder im Intel HEX-Format vorliegen, lauffaehige Programme (COM-Files) enthalten jedoch Zeichen, die nicht mit PIP uebertragen werden koennen. Zwar ist der Transfer von COM-Files mit PIP prinzipiell moeglich, dazu muessten aber die Files auf der Senderseite erst mit einem (nicht jedermann zugaenglichen) Hilfsprogramm ins HEX-Format uebertragen werden, mit PIP an den Empfaenger geschickt und dort mit HEXCOM oder LOAD erneut umgewandelt werden. Eine sehr zeit- und diskettenintensive Sache, da HEX-Files mehr als doppelt so lang wie COM-Files sind. Und zuguterletzt ist es mit PIP nahezu unmoeglich, Uebertragungsfehler zu erkennen und auszugleichen. 2) --------- Eins der universellsten Programme ist KERMIT. Es wurde an der Columbia University fuer die Kommunikation zwischen Grossrechnern und angeschlossenen Hostrechnern (Mainframe-Rechner) entwickelt und ist inzwischen fuer fast alle Computer und Betriebssysteme verfuegbar. (Fuer CP/M 2.2 und CP/M Plus gibt es eigene sogenannte GENERIC (allgemeine) Versionen, die auf die Softwareschnittstelle des jeweiligen Betriebssystems angepasst sind und damit so gut wie keine Hardware-Anpassung benoetigen, jedenfalls nicht in Kermit selbst. Das bedeutet allerdings, dass das Betriebssystem ueber Hilfsprogramme das Einstellen der Schnittstellenparameter (Baudrate etc.) erlaubt. Sonst muss die Anpassung auf der Empfaengerseite geschehen. Das schoene an der Sache ist nun, dass es sich bei KERMIT um Gratis-Software handelt, d.h. jeder darf das Programm benutzen und weitergeben, solange er damit keinen Gewinn erzielt. Eine Modifikation von Kermit ohne eine Rueckmeldung an die o.g. Universitaet und ohne deren Genehmigung ist nicht gestattet. Die Behauptung, KERMIT sei Public Domain, wird von der Columbia University entschieden bestritten. Jetzt brauchen wir also nur noch einen Bekannten mit einem Computer mit serieller Schnittstelle und brauchbarer Software sowie ein passendes Verbindungskabel (Nullmodem Pin 2 & 3 gekreuzt, Pin 4 & 5, evtl. 8 & 20) Dieses Kabel muss den Handshake unterstuetzen, d.h. ausser den Datenleitungen TXD (2) und RXD (3) muessen auch die Leitungen CTS und DTR beschaltet sein (siehe auch Schnittstellenhandbuch). Die genaue Beschaltung kann von Ihrem Partner abhaengig sein. Noch ein Wort zu KERMIT: Ich kann an dieser Stelle nur das notwendigste ueber die Bedienung von KERMIT sagen, die Originaldokumentation umfasst einen riesigen Stapel Druckerpapier und das Assemblerlisting ist auch lockere 119 KByte lang, vergessen wir's also... KERMIT in Kuerze: HELP ruft eine Hilfsseite auf, die alle Befehle zeigt. ERA loescht Files auf Diskette, wie unter CP/M DIR zeigt Diskinhalt an. Vorsicht: der angezeigte freie Platz stimmt nicht unbedingt !!!!!!!!!!! (Nach jedem Diskwechsel sollte DIR gegeben werden.) SEND filename.ext sendet File an Empfaenger. Optionen wie *.* wie unter CP/M. RECEIVE empfaengt File, der Filename wird mituebertragen. SET setzt gewisse Parameter, wird zweimal gebraucht!!! EXIT Rueckkehr zu CP/M. 3) Wie es geht -------------- a: Verbindungskabel herstellen b: Uebertragungsformat aufeinander abstimmen (siehe auch e:) (Schneller als 4800 Baud sollte es nicht sein...) c: Verbindung testen, z.B. mit PIP d: Hat Ihr Partner KERMIT???? Wenn ja, bei e: weiter. sonst: (bei CP/M Rechnern KERMIT senden: Dazu wird das File KERMIT.HEX mit PIP an den Partner geschickt. Danach CTRL-Z schicken (EOF). Im Empfaenger muss nun KERMIT.HEX mit HEXCOM oder LOAD wieder umgewandelt werden. Wenn der Partner nun KERMIT.COM hat, ist das schwierigste bereits geschafft. Die beiden KERMIT-Files bitte dauerhaft sichern...) e: nochmals: die SIO-Parameter checken: Lediglich die Uebertragungsrate muss auf 4800 BAUD herabgesetzt werden. f: jetzt kanns fast losgehen: KERMIT starten. g: Wichtig: KERMIT-Parameter einstellen: folgende Parameter muessen bei KERMIT eingestellt werden, sowohl bei Sender als auch Empfaenger: SET FILE BINARY SET BLOCK 3 Damit werden die Uebertragung von COM-Files und eine Uebertragungssicherheit von 99.9 % moeglich . h: aber jetzt geht's wirklich: Der Sender tippt SEND, Der Empfaenger einfach RECEIVE ... und von da an laeuft alles (hoffentlich) glatt. 4) Schlusswort ------------- Jetzt duerfte eigentlich nichts mehr schiefgehen. Wenn es doch nicht klappt, die Parameter von SIO und KERMIT ueber-pruefen, dieser Weg hat sich schoneinmal bewaehrt, sonst waere ich ja auch nicht an KERMIT gekommen. Bei Problemen koennen Sie sich schriftlich an Ihre Quelle wenden. Ich wuerde mich auch ueber Erfolgsmeldungen und Erfahrungsberichte freuen. Michael Anton April 1986 Helmut Jungkunz August 1991 Bitte beachten Sie urheberrechtliche Bestimmungen !!!!!!!!!!!!!!!!! 5) Technisches -------------- Hier nochmals die Einzelheiten des Transfers: (">XXXX" sind mit RETURN abzuschliessende Benutzereingaben, das ">" bitte nicht eingeben.) Vorhanden sein muessen: 1 Computer mit RS232-Schnittstelle 2. Rechner mit Schnittstelle 3. Verbindungskabel mit Handshakeunterstuetzung 4. Auf mindestens einem Rechner: File KERMIT.HEX (kann entfallen, wenn beide Seiten KERMIT.COM haben) 5. Transferprogramm KERMIT, angepasst 6. Hilfsprogramm zum Uebertragen von KERMIT.HEX falls notwendig. 7. Erzeugung von CTRL Z zum Abschluss d.Transfers 8. zu uebertragende Software 9. 1 williger Mitarbeiter und Spender 10. Sehr viel Zeit Die einzelnen Schritte: a) Vorbereitung: KERMIT senden (entfaellt, wenn KERMIT auf beiden Seiten vorhanden) ---------------------------------------------------------------------- Sender ! Empfaenger ! Auf beiden Seiten die Baudrate richtig einstellen: z.B. CP/M Plus >SETSIO [4800] ! KERMIT.HEX uebertragen: ! ! >PIP AUX:=KERMIT.HEX[H] ! >PIP KERMIT.HEX:=AUX:[H] Die Option [H] ist sehr wichtig !!! wenn sich Sender wieder meldet ! CTRL Z uebertragen: ! ! >ENDE ! ! beim Empfaenger muss nun ! KERMIT.HEX vorhanden sein, ! diese wird umgewandelt mit: ! ! >HEXCOM KERMIT Auf beiden Seiten muss nun KERMIT.COM vorhanden sein. (Auf diese Art und Weise koennen auch andere Programme uebertragen werden. Dabei muss jedoch beachtet werden, dass PIP keinen Handshake unterstuetzt, bei laengeren Dateien koennen also Daten verloren gehen, wenn auf die Diskette geschrieben wird.) b) Transfer via KERMIT: - KERMIT erwartet, dass die serielle Schnittstelle bereits richtig angepasst ist. 4800 Baud haben sich als optimal erwiesen. - KERMIT starten: >KERMIT - wenn sich KERMIT meldet, auf beiden Seiten die Parameter setzen: >SET FILE BINARY >SET BLOCK 3 - >HELP ruft eine Hilfsseite auf, die Befehle >DIR und >ERA koennen wie unter CP/M verwendet werden. - Uebertragung starten: Sender: >SEND FILENAM.EXT Empfaenger: >RECEIVE Wildcards koennen wie unter CP/M gesetzt werden: >SEND *.* sendet ganze Diskette >SEND *.ASM sendet ASM Files Der Programmname wird mit uebertragen, braucht also beim Empfaenger nicht mit angegeben werden. KERMIT startet nun die Uebertragung, auf beiden Seiten sollten jetzt die Nummern der uebertragenen Bloecke angezeigt werden. Uebertragungsfehler werden mit %x markiert, der Block wird nochmals uebertragen. Abbruch nur bei unbehebbaren Stoerungen. Nach der Uebertragung meldet sich KERMIT mit dem Prompt. Mit >DIR Inhaltsverzeichnis anschauen: Wenn die uebertragenen Files kuerzer sind als die Originale, wurde >SET FILE BINARY vergessen. Dieses eingeben und Uebertragung neu starten. VORSICHT: DER ANGEZEIGTE FREIE DISKETTENPLATZ STIMMT NICHT!!!!! Im Notfall Laenge der Files addieren, die ist korrekt. Rechtzeitig Disketten wechseln (nur formatierte !!!) KERMIT kann mit >EXIT verlassen werden. Viel Erfolg!