Looking for documentation

By Sylvain Glaize.

Research

The Micral N restoration project has been launched, and given its condition, the goal of restarting it seems entirely feasible. But how does it work? What is the machine made of? Can't we find some documentation?

What we do know is that the machine is built around the brand new Intel 8008. And the 8008 documentation is available, whether it's the Intel specifications or some pages on the Internet.

When it comes to moving on to the Micral N, things get more complicated. Websites dealing with the 8008 focus on other machines: SCELBI, Mark-8The only document we find is a " Users Manual "(User Manual) preserved by the Bitsavers project. It is accompanied by a few black and white photos of maps, with captions.

It's not much, but it'll do for now. And a hundred technical pages is still a good read.

The 8008

Reading the 8008 specifications is fairly quick. Overall, the documentation is clear and fairly detailed, giving details of operations in each state for each instruction.

Without going into too much detail, the 8008 is a processor clocked at 500 kHz (yes, five hundred kilo Hertz) in an 18-pin package, which processes data on 8 bits and has a 14-bit addressing range. Since 18 pins is not a lot, the data is multiplexed, which is important for the Micral N architecture.

Inside, there are seven registers, including an accumulator and an 8-level call stack that cannot be accessed programmatically. And finally, a rudimentary interrupt system. Here, the Micral N will be able to provide a slightly higher-level solution, as we shall see later.

It's tiny, but that's to be expected; it's the first 8-bit microprocessor.

Intel 8008 vue de dessus

Le Micral N

The Micral N manual is a little harder to read, for a number of reasons. The first is the age of the documentation. You don't describe a 1974 machine in 2021 terms.

The other factors are more annoying. What can be blamed primarily on inattentive reading is becoming increasingly obvious: there are mistakes in the textbook.

There are many types of error: copying errors, such as confusion between 1s (one) and Is (capital i), errors in the location of signals, explanations that contradict the diagrams, etc.

And there are gaps, such as certain signals that are not described. Or pitfalls, such as signals translated into English in the text but into French in the diagrams.

However, documentation is still a great tool for getting started.

Couverture du manuel de l'utilisateur du Micral N, en anglais

A mental image

Thanks to these readings, it is possible to begin to form a mental image of how the Micral N works: a series of cards that communicate with each other via a bus in the backplane.

These cards are varied: a processor card, memory cards, communication cards with peripherals. Some of the cards in the association's copy are referenced in the manual, others are not. Conversely, some of the cards in the manual are not present in the Micral N under study.

But the conclusion is clear: this model has the necessary cards to run a program.

Emulation

One of the aims of the study is to produce a virtual means of operating a Micral N. In addition, we want to take a parallel approach: the electronic study and the virtual study of the machine can complement each other.

For example, some cards communicate with each other directly, without going through the general bus. But we initially have no idea how they are connected, because we don't have these cables. Emulation will allow us to try out certain hypotheses and, by going back and forth with the real hardware, enable us to resolve these unknowns.

A quick look at general emulation platforms, such as MAME or SimH, shows that there is no work on this machine, even though 8008 emulators do exist.

The question also arises: should you join one of these platforms and take advantage of their tools? It's a valid question, and there are pros and cons. On reflection, the external emulator comes out on top.

We don't know enough about the machine, and we're not 8008 specialists. A good way of getting to grips with all this is to do an implementation from scratch.

Another choice is to operate at the level of 8008 signals and states. The 8008 emulators found and analysed then are all at instruction level. This has the advantage of speed, but it often requires knowledge of how the machine works in order to adapt the rest of the emulation. But we don't know the machine.

Emulating the signals should enable our hypotheses to be quite refined, and to understand the machine's maps in detail.

And so the emulation work began, full of trial and error. But that's a story for a future article.

Illustrction d'une fonction main() simplifié

Don't forget to take part in the campaign to support our work! https://micral.mo5.com