XTERM

XTERM1 is a utility for using the PC as a terminal as well as transferring data over a serial line using the XMODEM2 protocol. I used this tool instead of the JOYCE utility MAIL232. When the XMODEM protocol became less important I switched to KERMIT3.
(The three programs require the additional serial interface which is present in the hardware unit
CPS8256).

The following commands are availbale:

The program was written in 8080 assembler. The modules must be assembled by
RMAC TERMINAL
RMAC XMODEM
RMAC SCREEN
RMAC TIMER
RMAC @TOP
and be linked with e.g.
LINK XTERM=TERMINAL,XMODEM,SCREEN,TIMER,BASELIB.IRL[S],@TOP
Where BASELIB is my own library.

Look here for the source files:
  • The definition file
  • The terminal part with drivers for the CPS256 (serial line)
  • The XMODEM part
  • The Joyce specific screen part
  • The timer part
  • The determination of the highest memory address used by the program. What I did not know in those days: The determination could be performed by the linker itself (as label $memry)

1. At the time I drafted a small description () for it
2. XMODEM is a simple file transfer protocol developed as a quick hack by Ward Christensen for use in his 1977 MODEM.ASM terminal program. XMODEM became extremely popular in the early bulletin board system (BBS) market, largely because it was so simple to implement.
YMODEM was developed by Chuck Forsberg as the successor to XMODEM. The original YMODEM was essentially the same as XMODEM except that it sent the file's name, size, and timestamp in a regular XMODEM block, "block 0", before actually transferring the file. Sending the file size solved XMODEM's problem of superfluous padding at the end of the file. Find a description of both protocols here.
ZMODEM is a file transfer protocol developed by Chuck Forsberg in 1986. ZMODEM became extremely popular on bulletin board systems (BBS) in the early 1990s, displacing earlier protocols such as XMODEM and YMODEM. Find a description of this protocol here.
3. Looking closer to the definition file TERM.LIB you will see a reference to some KERMIT routines (transfer functions and sub routines). At that time I planned to expand XTERM for supporting also the KERMIT protocol.