Tuesday, August 18, 2009

Retrocomputing with CP/M--and Only CP/M

Ampro Little Board CP/M Computer System

I recently put together an Ampro Little Board Plus computer system from the 1980s. This system was especially slick for its day because of its small size and the fact that it had a built-in hard disk interface. It had the whole computer on one printed circuit board roughly six inches by eight inches. And it had a SCSI interface.

Originally I had the system set up as pictured above, loose components on a table top. There was the computer system board, two floppy disk drives, and a serial terminal. Since then I've moved the computer into an ugly beige PC box to hold things safely while I complete the hardware work on the system. In time, I plan to move it all into an interesting enclosure. I bought a large candy jar, for example, but it turned out to be just a bit too small.

The system now has three floppies and a 1.1GB hard disk. It's only capable of using 88MB of that hard disk because of operating system limitations, but the rest of the disk is accessible if I want to write software to take advantage of it.

Right now, the system has nothing on it but the software that came with the system board. That means the CP/M operating system with some enhancements from ZCPR, a really neat set of programs from Richard Conn that make CP/M almost as good as Unix. Better, if you consider the size. I've intended to load that huge 88MB hard disk space with software, but all my CP/M software on 5-1/4" disk is hiding from me somewhere in my cupboards. Probably behind boxes of MS-DOS software.

So I've decided to go ahead and start using the system with what I've got. I've got:
  • An Editor (ED.COM)

  • An Assembler (ASM.COM)

  • A Linker (LOAD.COM)

  • A Debugger (DDT.COM)

  • Various system utilities.

What more could I possibly need, right?

ED is a line editor, not a full-screen editor. If you're on a big noisy teletypewriter for your system console it's just the thing. If you're on a CRT console, like I am, it feels a bit dated, even for a retrocomputing enthusiast like me. Normally I like to rush straight into loading up WordStar or WordMaster or one of their clones. With this system, I've been stymied in either finding the software or being able to get it off one system (a Kaypro) and onto the Ampro in the time I've been willing to dedicate to it (granted, I haven't really tried hard. Let's just say it hasn't happened with unexpected ease. A null modem cable and some patience is really all I need.)

It seemed like an interesting challenge to jump in on this system with nothing more than what it comes with. In the old days, I would have done this as a matter of course since there would have been a delay between getting the system and the time when the bank account would allow me to go back to the computer shop for software. Well, except I probably would already have had WordMaster on hand.

One of the things I wanted to do was go through some of the assembly language programming exercises in a book on 8080 and Z-80 programming by Alan R. Miller. So I jumped in this weekend and started entering assembly language programs with ED. Jumped in? Stumbled, stubbed, and tripped in would be more like it. I didn't remember ED, or its pitfalls, nearly as well as I thought I did. I have been coddled by the luxury of the full screen editor for too long, and too clearly remember the fine line editor of the HP3000 compared to how well I remember the idiosyncrasies of ED.

Fifteen minutes in, I was ready to give up the whole experiment and go looking for my WordStar disks again. But I persevered. I re-read the section on using ED in the CP/M manual, and managed to sort out how to do what I wanted to do through a combination of assembling information from various places in the manual, accessing long unused memories in my head, and a form of logical deduction not unlike mental Ouija.

Now I've managed to enter, edit, and successfully assemble the first exercise in writing a monitor program from the book. ED's not such a problem, once understood, so the experiment will continue. It feels pretty good, now that I'm on top of things. It's almost enough to make me think about going even further retrograde, to programming PROM chips by hand.

Naah. Not quite.