Four tiny programs for testing of a communications link.

Many years ago I was given an Epson PX-8 on which I was to write and deploy
some software for a government entity.  It had just the bare-bones CP/M 2.2 
operating system and toolset installed.  There was no floppy drive nor any
other form of removable media, no network adaptor.  There was a serial port
but no communications software.  Although I no longer remember the details I
do know that I wrote a tiny program in assembly language to receive and save
a text file over the serial port.  That text file was the source of a small,
primitive data communications program which in turn was used to load a smarter
communications program and thence to load whatever I needed onto the machine.

A similar situation confronted me just over a year ago when after about 25
years I recovered the computer which ran Tesseract RCPM+ in the eighties.  
Once more the only usable means to transfer stuff between Tesseract and my
other computer (an old laptop in this case) was via the serial port.

The task this time around was a bit easier because Tesseract runs CP/M Plus
and that means the AUX: device is available via the BDOS and I didn't have to
worry about the details of programming the UART.  I purchased a dual-port
PCMCIA serial adaptor for the laptop and made up some cables to connect to
Tesseract.  I got the console port working easily enough by consulting the
Colex manuals for the connection details.

On the laptop end I ran minicom under knoppix. Like all decent communications
programs it has options for baud rate and character framing.  Everything else
discussed herein ran on the CP/M machine, Tesseract.

To validate communications over the AUX device I wrote three little programs
small enough to type in using the CP/M editor.  Assemblers and linkers were
available on Tesseract so the rest was straightforward.

auxout
======

Sends a message over the AUXOUT device.  The idea is just to see that the
device is alive, the cable is OK and the baud rate matches.

echo
====

Tesseract receives characters via AUXIN and echoes them via AUXOUT.  Shows
that communications works in both directions.

textin
======

A crude program to receive a text file via the AUXIN device and save it to
disk.  No error checking.  I converted RZ (a smarter communications program)
to ASCII using UNLOAD, sent the ASCII version to Tesseract and used LOAD to
convert it back to binary.  Once I had RZ on Tesseract the system was wide
open.  (Note that PIP could have been used for the same purpose but it was
not on the Tesseract machine!)

Nothing fancy but useful at the time.  Maybe of interest to someone who has
to bootstrap serial communications onto an old machine.

chat
====

Much more recently (February 2015) I wanted to connect two xterm sessions
to a single program (specifically, the Z80-CP/M emulator yaze-ag) and wrote
a fourth test program.


	 _______________			 _______________
	|		|			|		|
	|    yaze-ag	|_______________________|  AUX session	|
	|_______________|			|_______________|
		|
		|				 _______________
		|_______________________________|		|
						|    console	|
						|_______________|

Characters typed in at the console should appear on the auxiliary window
and characters typed in at the auxiliary window should show up on the 
console window.












Jon Saxton
December 2013
