City & Guilds Mnemonic Code

I’m collecting information on this fascinating little concept, the City & Guilds Mnemonic Code and its related City & Guilds Computer. Google is polluted by many modern courses in CAD and similar topics being offered by C&G, and I am finding it very difficult to find too many references outside the ICL-CES pages.

Does anyone here have any materials on this squirrelled away?

I don’t think, I’ve ever heard of this, and search is, as you say, quite hopeless.
Would you mind giving a brief introduction to this?

I see Andrew Herbert has written a piece in Computer Resurrection Issue 71.

Concluding Remarks

Following recovery of a paper tape for the Elliott 903 implementation of Mnemonic Code it has been possible to reverse engineer the system and compare to the City and Guilds Institute specification. There are some minor divergences but the system is clearly suitable for running 1964 C&G Mnemonic Code programs on a 903.

Mnemonic Code itself is an impoverished assembly language and the choice of floating point as the basic data format is unconventional. The code can at best be used for numerical calculations. Any sort of textual or logical processing is inconvenient if not nigh on impossible. It is not surprising that has almost disappeared without trace, and indeed the author feels some guilt at resurrecting it.

On his Elliott 900 website we find some original docs:

Edit: for reference, the ICL-CES pages have

and this explanation:

The ICL-CES project was created in the late 60s and by the early 70s began to produce materials to promote the teaching of computer science in UK schools. This site presents some materials related to that project.

My school took part in the project and so I was able to study computer science at both GCE ‘O’-level and ‘A’-level.

There is very little information on the web about ICL computers and practically nothing about the CES project. Luckily, I still have much of my school work and I’ve managed to recover the computer programs I wrote and I’ve written software to allow me to run them again 40 years later.

On this site you’ll find examples of course materials, school work, official publications and more.

Edit: the ICL-CES pages also offer


Where I’ve converted documents into text, I’ve preserved the original scanned pages.

1 Like

This is pretty interesting. Is there anything known about the rationale behind this specific instruction set? (E.g., is it related any real systems?)

The idea was to make a defined virtual computer and produce coursework based on coding on this platform. The platform was deliberately simple, with 1000 words of memory and a fairly simple instruction set. Using 1000 words meant most machines of the era would be able to hold it in memory along with the interpreter. “Word” was not defined, so it could be whatever the implementation found useful.

The most interesting bit, IMHO, was that the basic types were 6-bit characters, nothing interesting there, but that the numeric format was floating point! Each used one “word”, so I assume that the interpreters would set aside one machine word per character and as many as needed for numbers, while making them both look like a single address of memory.

Additionally, there are some rather non-assembler-like functions. Not only do you have ADD and SUB, but also MUL and DIV, and even SIN and EXP. Thus the language sits somewhere between assembler and BASIC, perhaps DARMISCO-like. It also had input.output instructions, but so did many instruction sets of the era.

1 Like