By Sylvain Glaize. Translation by Sébastien Marty.
Research
The Micral N restoration project has been launched and given its condition, the goal to restart it seems quite feasible. But how does it work? What is the machine made of? Couldn’t we find some documentation?
What we know is that the machine is built around what was back then the brand new Intel 8008. And documentation for the 8008 is available, whether the specs from Intel or a few pages on the Internet.
But when it comes to studying the Micral N, things get tough. Websites that discuss the 8008 focus on other machines : SCELBI, Mark-8,…
The only document you can find is a « Users Manual » preserved by the Bitsavers project. It includes black and white photos of some boards, with captions.
It’s skimpy, but it’ll do for now. And after all, a hundred technical pages still make for a good piece of reading.
The 8008
Reading the specs of the 8008 is pretty quick. The documentation is generally clear and quite detailed, presenting all the operations at each state for each instruction.
Without going into too much detail, the 8008 is a 500 kHz processor (yes, five hundred kilohertz) in an 18-pin package, which processes 8-bit data and has a 14-bit address range. As 18 pins are not enough, the data are multiplexed, which is an important aspect for the Micral N architecture.
The processor contains seven registers including an accumulator and an 8-level call stack, not programmatically accessible. And finally, a rudimentary interrupt system. There, the Micral N will be able to provide a slightly higher-level solution, as we will see later.
It is very small but that’s only natural, since it was the first 8-bit microprocessor
The Micral N
The Micral N manual is a little more difficult to read, due to several factors. The first one is the age of the documentation. We do not describe a 1974 machine using 2021 vocabulary.
The other factors are more annoying. What may be ascribed at first to careless reading becomes more and more obvious: there are mistakes in the manual.
Those mistakes are of several different kinds: typing errors, such as confusions between 1 (one) and I (capital i), errors in the location of signals, explanations that contradict the diagrams, etc.
And there are gaps, too, like some undescribed signals. Or pitfalls, such as signals translated into English in the text but written in French on the diagrams.
However, this documentation is still a great tool to get started.
A mental image
Thanks to these readings, one can begin to form a mental image of the way the Micral N operates: a set of boards communicating with each other through a backplane bus.
The boards are varied: a processor board, memory boards, communication boards for peripheral devices. Some of the boards in the association’s unit are referenced in the manual, some are not. Conversely, some boards in the manual are not present in the Micral N we’re studying.
The conclusion is nevertheless obvious: this unit houses all the boards needed to run a program.
Emulation
One of the goals of the study is to produce a virtual means of operating a Micral N. In addition, we want to run a parallel approach: the electronic study and the virtual study of the machine can complement each other.
For instance, some boards communicate with each other directly, without going through the general bus. But we initially have no idea how they are connected, as we don’t have those cables. Emulation will allow us to try certain hypotheses, and going back and forth with the real hardware will allow us to resolve these unknowns.
A quick visit to generalist emulation platforms, such as MAME or SimH, shows that no-one has worked on this machine yet, even though 8008 emulators exist.
So we asked ourselves: should we join one of these platforms and take advantage of their tools? The question is relevant and there are pros and cons. Upon consideration, the external emulator wins.
Indeed, we know too little about the machine, and we are not 8008 specialists yet. A good way to soak up all this is to build an implementation from scratch.
Another choice we made is to operate at the signal and state level of the 8008. All the 8008 emulators we found and analyzed run at the instruction level. It has the advantage of speed, but often requires knowing the operation of the machine well enough to adapt the rest of the emulation. Alas, we do not know the machine.
Emulating the signals should make our assumptions quite precise, and allow us to understand the machine’s boards in detail.
And this is how the emulation work begins, full of trials and errors. But that is a story for a future article.
Meanwhile, remember to take part in the campaign to support our work! https://micral.mo5.com