Serial Port Interfacing in ZDOS
With a fully functional Z-100, the next step was to configure one of the Z-100’s serial ports to interface with my MacBook Pro laptop so that I could begin transferring files between the two systems. I wanted to be able to both archive the old data off of the 5 1/4″ and 8″ floppies and also download new software to the Z-100. Having already linked up two 80s-era computers with serial cables previously (an Apple II and a Kaypro) and also having designed my own high speed serial port board for my Apple II’s CP/M card, I didn’t think the well-documented Z-100 would be that difficult. The one issue that might complicate matters would be not having a terminal program already on floppy. After combing though hundreds of 5 1/4″ and 8″ floppies I eventually discovered one lone 8″ disk with some communications software for ZDOS. There were two terminal programs on the disk: Access by Hilgraeve Corporation and Pro Driver by Studio Companies. Using these programs, I was able to download and compile Kermit which is one of the best file transfer applications available for older computers. There is a Kermit build for the CP/M-80 side of the Z-100 as well. That will be my next project.
First, you need the right hardware and cable connections. Here is everything you need to establish a serial link to the Z-100:
- Keyspan USB-to-Serial adapter (USA-19HS). This serial adapter product has never failed me
- Female-Female DB9-DB25 straight-through serial cable (don’t use a NULL modem cable). I use a cable that has dual DB9/DB25 connections at both ends to make things easier. Just remember to have all female connections.
- Terminal software on your PC. I use Minicom with my MacBook which I installed with MacPorts. Minicom supports XModem, YModem, ZModem and Kermit protocols.
- Terminal software for your Z-100. Whatever you have needs to support some sort of file transfer protocol like XModem or Kermit.
- Make sure the Z-100 is powered completely off.
- Attach the serial cable to the J2 serial connector of the Z-100. You can use J1 as well but that requires a different gender serial cable and J1 is usually reserved for a serial printer.
- Attach the other end of the serial cable to the Keyspan USB-Serial connector, then plug in the Keyspan to your PC and make sure the drivers are properly installed
The Configur program
There’s a program on the Z-100 (I believe on both ZDOS and CP/M) called Configur that lets you set your default serial (AUX) device parameters. Some of the terminal programs reference the settings and some ignore it but it’s a good thing to configure first. Both Kermit and MTerm use it so you might as well go ahead and configure the parameters just in case. I’ve included configur.com with each of the terminal software zip files in case you don’t already have it.
Configur settings should be:
- User Defined (J)
- Serial device (B)
- Strip parity on input? (N)
- Strip parity on output? (N)
- Map lower case to uppercase on input? (N)
- Map lower case to uppercase on output? (N)
- Serial B(J2) (ECH)
- 9600 baud (or possibly 1200 to start but I’ve found 9600 to be extremely stable)
- A. No handshaking
- A. 1 Stop Bit
- No Parity
- D. 8 Bit words
- No pad characters (press Enter followed by a 0)
Save everything to memory and disk on your boot drive (H).
I’m using Access for this example, but the same settings apply to all terminal programs:
- Modern PC: Launch Minicom or another PC terminal program like Hyper Terminal and use the following settings:
- 9600, N81, no handshaking
- Z-100: You’re going to use the Access Setup menu to configure for standard 9600 8N1, on serial port J2 (port 2 aka 0xEC):
- Launch Access2.exe
- Select (7) Setup
- 1. Protocol Menu: 9600, 8, 1, 0, Yes, No
- 4. Port Menu: 02h, 0, 40h, Yes, 22h, 00h
- 5. Hdw. Handshaking: 00h, Yes, 00h, Yes
- Save the Setup
You can also Recall the Setup config named “Modern” to get the above settings.
That’s pretty much it. Enter terminal mode with each system and type characters. You should see the characters echoed on the other system. If you see nothing at all, that’s usually a cabling program. Verify you’re using a straight-through serial cable and not a NULL modem cable. If you see some garbage text on the screen you probably have a baud rate or parity mismatch but your cabling is likely ok.
Once you have 1200 working, slowly ramp up to 9600 baud or higher. My testing with various communications software has shown that in ZDOS, the Z-100 can upload files at 19200 bps but can only download up to 9600 bps. More optimized software might be able to achieve faster rates. I haven’t experimented with the CP/M side of things set but I’ve had success optimizing programs like IMP to upload at 115k.
Here is an overview of the communications software I have working in ZDOS for the Z-100:
Access is a decent little terminal program. Access even has a remote slave mode so you can run it like an FTP server from your modern PC over the serial link. Access will not allow baud rate settings above 9600 and you’re limited to the XModem protocol, so single file transfers only, but it gets the job done and was easy to setup. You can Recall the “Modern” setup I created from the Setup menu and be ready to go for transferring
Pro Driver isn’t too terrible. It allows baud settings up to 19200, however, testing showed that the Z-100 was only able to upload at 19200. Downloads to the Z-100 at 19200 bps were too much for the software. XModem downloads eventually error’ed out and I had to revert to 9600 baud. I was also never able to figure out how to exit Pro Driver once you entered Communications mode. For quick and dirty XModem transfers in ZDOS, stick with Access.
I love Kermit! A great bulk file transfer program that has been ported to just about every computer system ever made. This is my transfer program of choice. You can download at 9600 baud and upload at 19200. I got the executable working and configured to work with the default settings in this article so just run ZKermit.exe. See the Read.me in the .zip archive for configuration details. You’ll want to manually set an escape sequence when you start the program in order to exit Communications mode.
There also happened to be another terminal program on the hard disk called MyTerm which was a Zenith proprietary terminal program. It’s poorly documented, severely crippled with 1200 baud maximum transfer rates and only supports a proprietary file transfer protocol. Avoid that one.
So now the real fun begins. I can finally start archiving all of this beautiful data onto the Internet for the twelve of you out there who will appreciate it 🙂
Stay strong Z-100 brothers!