XTERM

XTERM1 ist ein Programm, das den PC in ein Terminal verwandelt und Dateiübertragungen nach dem XMODEM-Protokoll2 erlaubt. Dieses Programm lief bei mir statt des Joyce Programms MAIL232. Als das XMODEM-Protokoll immer unwichtiger wurde, habe ich nur noch KERMIT verwendet3.
(Alle drei Programme benötigen die zusätzliche serielle Schnittstelle, die im Modul CPS8256 enthalten ist).

Folgende Befehle sind verfügbar:

Das Programm ist in 8080-Assembler geschrieben. Die einzelnen Module werden assembliert mit
RMAC TERMINAL
RMAC XMODEM
RMAC SCREEN
RMAC TIMER
RMAC @TOP
und gelinkt mit z.B.
LINK XTERM=TERMINAL,XMODEM,SCREEN,TIMER,BASELIB.IRL[S],@TOP
Hierbei ist BASELIB meine eigene Bibliothek.

Hier die Quelldateien:
  • Die Definitionsdatei
  • Der Terminal Teil mit den CPS256-Treibern (serielle Schnittstelle)
  • Der XMODEM Teil
  • Der Joyce-spezifische Bildschirm Teil
  • Der Timer Teil
  • Die Bestimmung der höchsten vom Programm belegten Speicheradresse. Was ich damals nicht wusste, war, dass das eleganter mit dem Linker erledigt werden kann (Als Label $memry)

1. Damals hatte ich auch eine Beschreibung für dieses Programm verfasst.
2. Das XMODEM ist ein einfaches Sende-und-warte-Protokoll mit einer festen Paketlänge, welches eine gesicherte Datenübertragung regelt. Es wurde 1977 von Ward Christensen entwickelt. XMODEM war das erste weitverbreitete Datenübertragungsprotokoll und trug wesentlich zur Ausbreitung der Mailboxen bei.
YMODEM wurde von Chuck Forsberg entwickelt und ist der Nachfolger des XMODEM-Protokolls. Im Gegensatz zum XMODEM-Protokoll, das 128-Byte Blöcke zur Datenübertragung einsetzt, wurde die Blockgröße auf 1 KiB erhöht, ferner wird im ersten Datenblock auch der Dateiname übertragen. Eine Beschreibung beider Protokolle findet sich hier.
YMODEM wurde zu ZMODEM weiterentwickelt, welches eine gesicherte Übertragung von Dateien zwischen Rechnersystemen ermöglicht. Es wurde von Chuck Forsberg im Jahr 1986 entwickelt und vor allem Anfang der 1990er Jahre in Bereich von Mailboxsystemen populär und löste für den Dateitransfer die Vorgängerprotokolle XMODEM und YMODEM ab. Eine Beschreibung dieses Protokolls findet sich hier.
3. In der Definitionsdatei TERM.LIB findet sich ein Hinweis auf zwei KERMIT-Routinen, die ich der Vollständigkeit halber hier ablege (Transferfunktionen und Unterprogramme). Ich hatte damals geplant, XTERM zu erweitern, um auch das KERMIT-Protokoll zu unterstützen.