[Gary Kildall] and CP/M are the great ‘also ran’ of the computing world; CP/M could run on thousands of different 1980s computers, and [Gary] saw a few million in revenue each year thanks to CP/M’s popularity. Microsoft, DOS, and circumstances have relegated [Kildall] and CP/M to a rather long footnote in the history of microcomputers, but that doesn’t mean CP/M is completely dead yet. [Marcelo] wrote a Z80 emulator running CP/M inside an Arduino Due, and he did it in such a way that it’s actually convenient and useful to use.
Instead of using CP/M disk images, [Marcelo]’s emulator emulates CP/M disk drives on top of a regular FAT file system. Drives are mapped to folders in the FAT file system, so a folder named ‘A’ will show up as the A: disk in CP/M. Drives up to P: are supported, the maximum number of drives available under CP/M. The BIOS resides in the root directory of the SD card, and so far Microsoft Basic, Turbo Pascal, UCD Micromumps, and Wordstar work just fine.
The Arduino project was built upon one of [Marcelo]’s earlier projects that put the CP/M emulator on Windows. The version for the Due works exactly how you think it would, with a serial connection and terminal emulator providing the IO, and the huge amount of processing power and RAM available on the Due doing all the heavy lifting.
As an adventure in computer history, [Len] built up a clock. The Z80 Micro TV Clock brings together a homebrew computer and three Micro TVs into a rather large timepiece.
The computer powering the clock runs the CP/M operating system. This OS was eventually released as open source software, and a variety of homebrew computer projects have implemented it. This clock is based on an existing breadboard CP/M machine, which includes schematics and software.
With an OS running, [Len] got a text editor and C compiler working. Now custom software could be written for the device. Software was written to interact with a Maxim DS12885 Real Time Clock, which keeps the time, and to output the time to the display controllers.
The Micro TVs in this build are Sony Watchman displays featuring a 2″ CRT. The devices had no video input port, so [Len] ripped them open and started poking around. The NTSC signal was found by probing the board and looking for the right waveform.
To drive the TVs from CP/M, a custom video driver was built. This uses three relatively modern ATmega328P microcontrollers and the arduino-tvout library. All of these components are brought together on a stand made from wood and copper tubing, making it a functional as a desk top clock
To celebrate the 40th anniversary of CP/M, the Computer History Museum has released a package containing early source code for several versions of CP/M. Originally designed by [Gary Kildall] in 1973, Control Program for Microcomputers (CP/M) is an early operating system for microprocessor based computers. The OS was originally written for the Intel Intellec 8, an Intel 8008 based computer. Since it was on an Intel machine, CP/M was written in PL/M (Programming Language for Microcomputers), a language [Kildall] had previously developed for Intel .
CP/M pioneered the idea of a ROM based Basic Input Output/System (BIOS) for commonly used routines on a given computer. The use of BIOS made CP/M easy to port. Eventually it was ported to thousands of different machines and architectures, including the Altair, IMSAI 8080, C-64, and C-128 and Apple II systems.
Gary and his company Digital Research, were one of the top contenders for the operating system on IBM’s new personal computer. Ultimately, Microsoft got the job by purchasing 86-DOS from Seattle Computer Products. Somewhat ironically, 86-DOS itself was written based on the CP/M Application Programming interface (API).
The source itself is an amazing trip back in time. Included are portions of CP/M 1.1, 1.3, 1.4, and 2.0. Portions of CP/M have been released previously. As with the previous files, this version includes modifications performed by z80-pack author [Udo Munk] in 2007. Version 1.3 is especially interesting as it is primarily scanned copies of the CP/M source code.
If you’re into vintage computing, and know how important CP/M was to the early days of personal computers, check out the CP/M source. If you find any interesting or clever bits of code, be sure let us know about it in the comments.
[Image Source: CulturaInformatica]
[Alexis] sent in a single board computer he’s been working on. The project goal of his build was making it easily reproducible. From looking at the schematics, it’s one of the simplest fully-functional computers we’ve seen. The build runs CP/M 2.2 off of two 3.5 inch floppies. This opens up a lot of options as to what software is already available. Although it operates over a serial terminal, [Alexis] pretty much duplicated an Osborne I, only at double the speed.
[Alexis] got a little e-fame from his earlier 8088 homebrew computer built from very early 8088’s rescued from an electronics junk shop. These 8088 computers made the blog rounds by playing Still Alive with a SID chip from a Commodore 64 and a YM2151 FM synth chip.
For now, I guess we’ll have to settle for a video of [Alexis]’ Z80 computer running CP/M. Check out a video after the break of his computer running the greatest Infocom adventure, Hitchhiker’s Guide to the Galaxy.
Continue reading “Easy to build Z80 single board computer”
Now you can have a Zilog computer in the form factor of a matchbox. The RamBlade is a tiny PCB that uses a Parallax Propeller IC to implement the CP/M language. The OS is stored on a microSD card, with a four-pin serial interface (3V3, GND, SO, SI) that allows operation via a terminal program.
Smaller and more resilient than building your own from ancient logic chips, we see this a way to get a whole new set of people interested in this old technology.
[James] sent in this project in which he built a tiny computer with text based OS and a 3Km wireless link. The details are a bit scarce, but he used an N8VEM, a Propeller Pocket Term, a 4 line LCD and an RF Transceiver to build it. It runs CP/M, the text based operating system and uses less than a half of a watt, without the vga monitor. With a total cost of 145 and 4 serial ports for sensors, this thing could come in handy. Especially since its low power consumption could allow it to be solar powered. You may recall the N8VEM from an earlier post we did.
The N8VEM is a homebrew computer project based on the classic Z80 microprocessor. It’s designed to be easy to build using large TTL DIP components instead of SMD devices. It runs the CP/M operating system and all drives are virtual in RAM/ROM. While the base hardware is interesting, we really like the potential for expansion using a backplane. Have a look at the project’s Hardware Overview to see extra boards like the bus monitor and the prototyping board. We found out about this project on [Oldbitcollector]’s blog; he’s using a Parallax Professional Development Board to create a VT100 terminal for the N8VEM.