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