Sunday 3 January 2016

A bitmap font

This is a bit of a cheat really. When I originally designed the VDU it was a character generator ROM type – like many early machines. This is because in these early days, RAM is expensive. The Sinclair Spectrum display takes 7k of RAM I think, which in 1970s terms is like 32 gigabytes.

So you have a character ROM, and a block of memory which has one character per memory cell. My design is only 16 x 8 characters, which is quite small, okay, well, it's very small. I think this is the ETI/Motorola thing again, as the RAM is a MCM6810 (128 x 8 bits)

If you’ve ever programmed using a hex display – an Elf, or an MK14, or a KIM-1, then a 16x8 display is a bit of a step up. I was also thinking in terms of small B&W Tellies, not todays 50” monsters. It’s a lot of a step up. The biggest ever step-up incidentally, was when I had a BBC Micro and got my first ever floppy disk drive. Like WOW ! 

(More about the display when I’ve transcribed the circuit)

Anyway, this gives me 256 possible characters. On my design, I used a 64 character design, which is (fairly obviously) the lower 6 bits in ASCII and that was it. Probably because ROMs were expensive : 64 x 8 = 512 bytes, 256 x 8 = 2k.

I thought that was a bit of a waste, so I extended the design just a smidgeon, keeping “backwards compatibility” – if you look at the pic the first 64 are stock 6 bit ASCII. Originally I didn’t go any further than that.  In retrospect I should have used one of the bits to invert the output…..

The next 64 area 3 x 2 block graphic allowing a “pixel” resolution of 32 x 24, then there’s an assortment of graphics and lines.

Some may look familiar. That’s because I (ahem) borrowed them from the Superboard 2 ROM, and the Sharp MZ80k ROM. Mostly the former. I don’t think Sharp will sue me for this (I think Ohio Scientific disappeared years ago). There are 16 free ones (the fat exclamation marks) which I haven't used for anything, and may get defined (conveniently) to fit the task (running Star Trek)

Maybe I’ll write a game.

No comments:

Post a Comment