I’ve been meaning to get into building my own Z80 based micro computer for quite some time. This is because I did an interesting course as part of my degree where we learned to program 8085 micro processors and learned how to wire up extra memory to it. I did a project with a good friend of mine to build a simple voice recorder that behaved a little like an answering machine. I forget the full details of what we did but I remember it was a heck of a lot of fun.
Step in the Micro-professor, a Z80 based developement board targeted towards the education sector. I was lucky enough to see a few of them on ebay recently and doubly lucky to manage to get one for a reasonable price. The model that I have is the MPF-1B which has a very limited BASIC in ROM as well as all the extra on-board peripheral chips such as the Z80 PIO and CTC. It has a Zilog Z80A processor running at 1.79 Mhz and only 2kB of RAM which doesn’t sound like much, but seems much larger when programming in assembly.
The Micro-professor was designed and built by a company called Multitech in 1981. It has an unusual vacuum formed case and comes with a series of manuals including sample programs, schematics for the board, ROM listing and basic information for programming the Z80 CPU. Multitech later became Acer in 1987 and in 1993 sold the Micro-professor and associated materials to Flite electronics who still make and distribute the system.
Like many other developement boards of the time you interact with the machine via a very basic keyboard and 6 7 segment displays. This actually works well for inspecting memory and entering your hand assembled code. That’s right, the programs need to be entered in hexidecimal and thus assembled either by hand or by a cross assembler that produces convenient output.
Here we see the complete board in all its glory. It’s a very compact design mostly because the Z80 didn’t require as many support chips compared to many contemporary micros. This particular example is hard to date as the chips have a wide range of date codes on them. For instance the 8255 is dated 1981 where as the CTC chip is dated the 5th week 1987.
Here we can see the key overlay and display reference for the BASIC built into the ROM. I tried it out but found it was too limited for anything but the most mundane computations. Systems like this were really designed for learning machine language and hardware principles. The BASIC was limited because of the limited size ROM it had and the limited nature of the machine.
Here is a close-up of the display and keyboard. The monitor has an impressive array of functions available at the keyboard including loading and saving memory to tape. I have tried using the tape system connected to my PC but I was unable to load any code into the MPF, although saving appeared to give audio data.
I remember the 8085 systems at uni didn’t have a keyboard or display at all, they instead did everything via serial line, which was quite good because the set-up allowed coding and assembly on a local unix machine then transfer directly to the micro for testing.
Close-ups of the chips showing their date codes.
Finally a picture from the manual showing part of the schematic for the machine. These manuals are very detailed and will certainly be very helpful.
The long-term plan is to learn about interfacing devices with this board in an effort to learn enough about the Z80 that I can build my own complete system. The first expansion I hope to build will be an external RAM module that will either add 32kB or more in a banked configuration. I then want to build an interface that allows an Arduino to read and write to all the memory in the system so I can simplify loading and saving programs. After that maybe I’ll add a multi-line LCD onto the outputs of the PIO chip to perhaps make the machine a bit more interactive. Considering I don’t have any parts yet, it could be a while before I accomplish any of this.
I have found one thing that will be handy, a nice Z80 assembler that will output in Hex or a number of other formats. This will save me hand assembling everything! You can find the cross assembler here.