CP/M+ nostalgia

This page is largely devoted to CP/M+ which I first experienced on the Amstrad CPC6128 in 1986 and much later with a PCW512 complete with the Gem hard disk system from Cirtech. Digital Research had lost out to Microsoft in the operating system wars and licensed CP/M+ to Amstrad for peanuts, thereby ending up with CP/M+ on many more computers than all the earlier versions of CP/M put together.

CP/M+ brought several improvements, including the ability to use paged memory, improved scripting to automate operations and the system/user distinction that was already around in Unix.

CP/M+ permitted 16 users but any programs or batch files with the attribute sys in user 0 were accessible to all users. To make this work smoothly, you had to set the search order to .sys,.com so that, when a user entered a command, CP/M+ would search for a sys file in user 0 first.

For PCs Digital Research developed its DR-DOS operating system as an altenative to MD-DOS and IBM licensed this version as the basis for its PC-DOS. DR-DOS had a DRDOS folder which could contain programs and batch files which would be available from any location on the hard drive. This gave similar functionality on a PC to the sys attribute in CP/M+.

Because the main CP/M+ programs I was using, WordStar, SuperCalc and dBASEII, were available on the PC and WordStar and SuperCalc both retained the facility to save files in earlier version formats, I continued to use CP/M+ to carry out a number of automated office tasks up to 2000.

In fact, it was this very backward compatibility that encouraged me to license more advanced versions of WordStar and SuperCalc for the PC whereas the difficulty of using dBASEII and dBASEIII on the PC dissuaded me from licensing dBASEIII.

When I moved to Linux in 2000, WordStar came with a program which converted its files to Word or WordPerfect format from which I was able to open them first in Applix and later in OpenOffice and LibreOffice (whose superior WordPerfect import facility preserved more of the original formatting) while Supercalc files could be saved as Lotus 1-2-3 files and similarly opened in Linux programs. With my dBASEII tables, I used dBASE commands to convert the dates to MySQL format and fill any empty cells with \N before exporting them as CSV files and importing them into MySQL. The ability of dBASEII to generate a table of each table’s structure made it very easy to create the relevant table structure in MySQL whose commands, with a couple of exceptions where they mean the opposite of what they mean in dBASEII, are very similar to dBASEII commands. In fact, the only CP/M formats which could not be converted to a Linux readable format were the DR Draw and DR Graph vector graphics formats.

Though I did most of my CP/M+ work using proprietary software, I also became involved in the free software side of CP/M, using a number of such programs, including VDE, and contributing one myself, written in assembler.

I also used CP/M+ tools on a number of occasions to get round restrictions in or incompatible Microsoft file formats as well as to recover files from corrupted disks.