What Was CP/M?
CP/M was a command-line disk operating system, initially developed for Intel 8080-based home and small business computers. Gary Kildall, who developed it, brought features and tools he’d used on mainframes and minicomputers to small computers with CP/M.
CP/M offered a universal, consistent interface to between the hardware, operating system and software. Instead of having to write an entire operating system, manufacturers only had to write an interface between their hardware and the common access points CP/M required.
While there were similar operating systems available, the design of CP/M made it relatively easy for manufacturers to implement on their systems. It was this ease that contributed to its wide adoption.
Digital Research, the company Kildall founded, licensed CP/M to as many manufacturers as they could. By 1981, Digital Research sold more than 260,000 licenses.
Why Was It Significant?
One of the key attributes of CP/M was its programming interface. Programmers could write their applications to a common interfaced specification and be assured that their program would work on almost any CP/M computer.
This ease of program development led to programs like WordStar (a word processor), dBase II (a database application) and SuperCalc (a spreadsheet) that could run on just about any CP/M computer. All three applications were widely popular with small business owners.
With CP/M and these applications, small business owners could finally have an affordable, full-featured computer system in-house. Affordable at that point meant a computer, its disk drives, a printer and terminal (keyboard and video display unit) could be had for less than $5,000. Other business systems cost $10,000 dollars or more.
CP/M and its popular applications became even more so with early portable computers like the Osborne and Kaypro. It was so popular that Microsoft made an add-on card for the Apple II computer to run CP/M. Commodore made a similar add-on for the Commodore 64.
The TS 2068 and CP/M
In early 1983, several new members joined the systems software division, under Scott McCourt, of Timex’s computer engineering department. Among them was Lon Hildreth, a software engineer who’d worked with Scott and Lou Galie at Burroughs.
McCourt’s division handled “the design, development, and release to manufacturing of operating systems, languages, utilities, and device controller software across the entire product line.” Even at that point, Timex planners expected that their new computer could run multiple operating systems.
Lon Hildreth’s project was to make that idea a reality: to port Digital Research’s very popular CP/M operating system to the Timex/Sinclair 2068.
Porting CP/M to the TS 2068
In early November, 1983, Lon flew to California, to visit Digital Research. He took a TS 2068 and two microdrives with him. Lon spent several days at Digital Research, working with them on issues around adapting the 2068 to run CP/M.
Adapting CP/M to a new computer depended on a few factors. The computer required at least 16K of RAM; the 2068 had 48K available. It required a ROM that mapped CP/M input/output functions to that computer’s unique hardware. The TS 2068 had a cartridge system that could do just that.
One of the more interesting challenges to bringing CP/M to the 2068 is the location of video memory. CP/M expected to find unused memory from the lowest position to the highest. The 2068 display memory sat in the middle of that range.
Progress
Just over a month after his visit to Digital Research, Lon wrote in his notes that many of the basic input/output system (BIOS) routines were “100% written but not tested” and several other routines were “90% written.”
These BIOS routines were the key to adapting CP/M to the 2068. They translated CP/M function calls in to routines that accomplished the required task on the 2068.
The function calls included putting characters on the screen, positioning the cursor, reading the keyboard, reading from and writing to cassette tape and disk drive systems. They were absolutely critical to the successful delivery of CP/M on the 2068.
Lon laid out a calendar in his notebook detailing when he anticipated key functions would be complete.
By January, Lon anticipated he’d have 40/80 column output to the screen and TS 2040 printing functions available. He also planned to have functions required to read/write to the microdrives. Anticipating that an EPROM with the boot routines might not be available, Lon planned to implement his code on an LROS cartridge.
In February 1984, Lon planned to have cassette input/output routines complete, as well as the ability to write directly to screen memory. This latter feature was important because it would be the fastest way to update the screen contents.
For March, complex disk drive interfacing function calls, reading from the keyboard and printing to standard, Centronics printer were the goals. With these last items, CP/M would have been complete and ready for testing on production 2068s.
As we know, the reality was quite different.