My love of typography originated in the 80’s with the golden years of 8-bit home computing and their 8×8 pixel monospaced fonts on low-resolution displays.

It’s quite easy to find bitmap copies of these fonts and also scalable traced TTF versions but there’s very little discussion about the fonts themselves. Let’s remedy that by firing up some emulators and investigating the glyphs.

Atari 400/800 (1979)

Specifications

Atari’s entry into the home computing market put out some very capable machines with all sorts of hardware tricks (the creative geniuses behind it would go on to form Amiga). The same font was used on all Atari 8-bit models from the original 400/800 to the XL and XE models in the late 80’s.

Rationale

The machine boots in a low-contrast blue-on-blue and is designed for use with TV’s which explains some of the odd characteristics above like the square U to distinguish it from the V. It is likely the 6-pixel choice is to allow the letters to be centered when using inverse letter mode.

Acorn BBC Micro (1981)

Specifications

The Beeb, as it was affectionately known, has its own font which could display in three different modes – one wider and one narrower but many users might not recognize it all as it booted into ‘Mode 7’ utilizing a Videotex chip (used in the UK for text-on-TV and travel agents as well as in France for Minitel) that had a different font of its own.

Unusual characteristics

Drops bold in tight spaces e.g ‘$&@’

Outlines the tail on the ‘Q’ to make it much clearer

Unique and beautiful ‘*’

Does not extend low bar on ‘e’ as much as expected and ‘f’ seems to wide

Vertically squished ‘?’

Style of single-quote ‘ is inconsistent with comma

Rationale

The machine generally shipped with good quality monitors and the combination of high-contrast colors and this bold font made it very readable indeed.

Influences

It’s quite likely it was influenced by the Atari 8-bit font but with larger capitals and ascenders and a much more consistent look.

Technical

The system font is stored at 0xC00-0xC2FF with each character being represented by 8 sequential bytes (left pixel is high bit).

You can replace the font used by system text routine OSWRCH (0xFFEE) using the VDU command 23 followed by the ASCII code and then 8 rows of data, e.g.

VDU 23,65,11,22,33,44,55,66,77,88

Sinclair ZX Spectrum (1982)

Specifications

Sinclair’s successor to the ZX81 added color and lower-case letters – again preserving the uppercase and numbers from its predecessor but finally mapping them to ASCII. This font was re-used on Jupiter Ace and Timex machines but the ZX Spectrum was the most popular.

Rationale

While the machine has a default high-contrast scheme the video output was poor because of the quality of the RF modulator and home TVs it was connected to. It looks like the designer decided to increase spacing between letters after the ZX80 from one to two pixels which greatly limited what could be done with the letters themselves. This was likely done for the same reasons it was done on the Atari 8-bit – namely to allow the letters to be centered when using inverse text modes.

Influences

The font was mostly inherited from the ZX80. I was not involved with that, so I don’t know who did it. Probably it was a combination of John Grant, Jim Westwood and Rick Dickinson. It’s possible we added lower case for the ZX81 or Spectrum (I can’t remember without checking), and I do remember discussions about how “mostly moistly” would appear.

Steve Vickers, email, 2nd February 2001

Technical

The system font is stored at 0x3D00-0x3FFF with each character being represented by 8 sequential bytes (left pixel is high bit). You can replace the system text routine (RST 10) by poking the new fonts memory address into the system memory map at 23606/23607 minus 256 bytes (the first 32 characters are non-printable, 32×8 = 256)

Commodore 64 (1982)

Specifications

Commodore took to take their success with the PET and applied it to the home first with the VIC 20 and then later with the wildly successful Commodore 64.

Unusual characteristics

Inconsistent shapes/style across ‘147,&<>@Q’

2×2 pixel of ‘.’ is not carried through to ‘;:!’

Ascenders not as tall as capital letters

Rationale

The bold font was essential for the low-quality TV’s Commodore were aiming at. The inconsistencies across the font may have been intentional to help make the letters look different (A vs 4, 1 vs I, 7 vs T) given the limitations of the displays or just poorly implemented (see below).

Influences

Lower-case is identical to the Atari 8-bit font and likely copied wholesale as they do not match the upper-case well. Symbols, numbers and upper-case are a bolded version of the PET font that looses the serifs and also could explain the odd reproductions of 1, 2, 7 & 4.

Amstrad CPC (1984)

Specifications

Alan Sugar’s foray into the UK market came a little later than the other 8-bits in 1984 with the Amstrad CPC series.

Unusual characteristics

Full use of 7 pixels for upper and 1 pixel for lower means glyphs can touch

Serif choice is unusual and not consistently applied because of space constraints

‘0’ is wider than would be expected (copied from CGA font)

Very distinctive curves on ‘CGOQ’

‘X’ looks like a different style because of high mid-point

Rationale

Sugar wanted the machine to look more professional than other home computers at the time. The choice of a serif based font to look like PCs which also featured serifs (at a higher resolution) reflects that desire.

Influences

Very similar to the IBM CGA font with some adjustments (fixes) to the horizontal positioning of some symbols. Many characters completely identical and some bearing style similarities too (wider 0, X choosing one side to be longer than the other). Some other characters bear similarity to the BBC Micro (Q uses the same trick to keep it distinguished) and a number of symbols and lower-case letters being the same where serifs would not fit.

The Amstrad CPC manual shows the system font but is different in some areas. It is possible it is a transcription problem (z is shifted up one pixel, missing pixels on ’37PRz~’ and extra pixels on ‘#b’ ) although it could have been an earlier version from the designer as ‘rG?’ are subtly different.

Technical

Redefine using the Amstrad BASIC command SYMBOL that takes an ASCII code and then 8 comma-separated values one-per-row in much the same way as the BBC with the VDU 23 command. SYMBOL AFTER must be set first e.g.

SYMBOL AFTER 32
SYMBOL 65,11,22,33,44,55,66,77,88

MSX (1983)

Specifications

The MSX differs from the other machines here in that it was a standard rather than a specific machine. It was very popular in Japan and did hit UK shores although I only knew a single person that had one apart from our school which had acquired several Yamaha models to control MIDI keyboards. Given the multiple manufacturers, it’s not surprising that some models had slightly tweaked fonts but the one shown here seems to be the most popular.

Unusual characteristics

Full use of 7 pixels for upper and 1 pixel for lower means glyphs can touch

Influences

Technical

From an earliest memory of a cream colored box emblazoned with letters, mostly black – some red, came an owl proclaiming allegiance to the BBC.

This small box sat silently, patiently even, in our classroom for the best part of a year. On the few occasions our teacher was brave enough to flip the switch the machine would chirp into life with it’s two-tone beep and would state on capital white letters on a black background that it was BASIC. At this point the teacher would key-in the mythical incantation of CHAIN “” – handily jotted on a nearby note – and feed the beast a cassette tape.

Some time later the machine would announce it’s vague disappointment with the contents of the tape and be put back to sleep. One time, and one time only, I recall a screen full of bright colors masquerading as pirates looking for treasure.

I was 11.

Such a tantalizing taste of computing left me hungry for more. I knew precisely two people who owned computers. One possessed a cut-down version of the BBC Micro from my classroom called the Acorn Electron and guarded it like a sacred treasure, the other was a friend and more accommodating so much so that he agreed, with little optimism, we could type my program listing into his computer.

What combination of childish scrawl, lack of understanding of programming concepts or the cobbled-together dialect of BASIC was responsible for his Texas Instruments TI-99 rejecting my program I would never know. However neither that failure nor the subsequent arrival and rapid departure of a ‘programmable’ Philips G7000 Videopac from my home would quench my thirst.

A new school year started and for me that meant a new school and new subjects the most interesting of these was named Information Technology or IT for short. I don’t recall much of these early lessons other than some exposure to word processing, videotext and a simplified geometry-base programming language for drawing shapes called Logo.

This fixed schedule held little interest to me although the machines themselves did and the teacher opened the room of fifteen or so BBC Micro’s equipped with 5.25″ floppy drives to the ever-changing line of misfits queued outside to play games. But unlike my old school a few people here actually knew a little about these machines.

Chuckie Egg and Mr. E were favorites while masochists would fire up Castle Quest, Citadel and Repton 2 despite being impossible to complete and lacking a crucial save-game option. Fewer still braved the open-ended and Elite space trading/combat game which would let you resume your position each day. Right on commander!

Games consisted of a few files passed between easily damaged 5.25″ floppy disks that students had mysteriously acquired. Remembering which file to CHAIN, *EXEC or *LOAD was a task in itself made worse by the ever-changing scene of kids and games. Now I finally had a machine to myself for a brief period each day I set about solving the first real world problem I encountered here and wanted to create something that would automatically boot and let you select a game by pressing a letter or a number.

Scouring magazines, loaning one of the few BBC BASIC programming manuals from the teacher and occasionally LISTing other people’s I came up with something that worked. Before long it had double height text, colors and some basic animation. Included in the program were some basic instructions on how to edit the program to fit the games on your own disk and it spread like wildfire.

Shortly after my father, who made gadget trading one of his hobbies, brought home a Sinclair ZX Spectrum 16KB. It was less powerful than the BBC’s at school and had to be hooked up to a television and cassette record to be of any use and had small rubber keys that were hard to type on. I played and programmed on it for hours without interruption and it finally became mine when my mother made it clear to my father it couldn’t be traded out for the next gadget. Within a few months the machine had died after something metallic got in through the edge connector.

I was heartbroken but found a neighbor was selling his Spectrum 48K and persuaded my parents to buy it. The extra memory was useful but even better was the hard-key keyboard and the original Sinclair BASIC programming manual I’d been missing. That year my parents split, my father moved out and we moved to a new parish on our little island of Guernsey which meant new friends and a new school. A school that had IT sharing lessons with technical drawing.

I remember gazing at the screen of Acornsoft’s Elite in my childhood wondering what the code behind those 3D images looked like.

How did they rotate like that? How did it know which lines to hide? And more importantly where I can get a good price for this cargo hold of radio-actives and platinum?

Scouring through magazines, books and the library revealed nothing. Where on Lave was this elusive magic formula?

My attempts at reverse engineering Vu-3D shed no light and the web was still being conceived in Mr Berners-Lee’s brain so Google wouldn’t be able to exist for some time yet.

My programming continued on a more serious tract writing first silly hacks and demo’s, then utilities and into business software as an actual paid job. In my spare time I knocked out some other developer tools, utilities, drivers and even a Flash game of pool for a National Lottery.

3D remained the elusive beast long after the information became available to me. Matrices were not something my mind wanted to grasp a second time.

We’d actually hoped to write a game a long time ago when we were younger and less informed about how much work that would involve. The only thing that survived was the company name I still use for my consulting work – Envy Technologies.

Ogre looked promising. Object-oriented design meant it could hide most of the complexity and let me get on with high-level concepts and setting properties.

Based on .NET Framework 2 and C# – the very two technologies I use day-in day-out to write those aforementioned serious apps. Write a game once and deploy it to the PC and Xbox 360 and from C# – a more enjoyable experience than the last C++ stuff I did (under DOS!)

XNA has been interesting to mess with at least on the 3D front. I’ve managed with not too much effort to plot a pyramid on the screen using co-ordinates I figured out, get it bobbing about a bit and changing the color via vertex and pixel shaders respectively and even get it and the viewpoint spinning round from the 360 controller.

Whoa.

From there on you find yourself soon needing features that aren’t there and you have to build yourself or acquire an engine to do it. The managed nature of XNA means that any engine you want to use will have to be specifically written for XNA itself – I guess Garage Games is hoping to cash in once XNA 1.0 gets out with their XNA engine Torque X.

Steve popped round this weekend for a chat about the usual geek topics we discuss I was very grateful that he lent me one of his complementary copies of Pro Ogre 3D Programming (he was technical reviewer and wrote the foreword).

I’m only at the end of Chapter 3 so far and with the exception of wondering what Scene Graphs were I’m still following everything.