So, if I’m going to write my name on a bunch of 8×8 LED matrix displays, I have a couple of options; Write my name on grid paper, colour in the squares, convert it to binary and transpose it to hexadecimal. Or… I could use a font that’s already out there. Like the one that Sinclair used in the ZX Spectrum.
I’ve already got a copy of the Spectrum ROM, and, handily enough, all the characters are right at the very last part of the ROM address space (from 0x3D00 to 03FF), in consecutive blocks of 8 bytes.
I can see this coming in handy later!
00 00 00 00 00 00 00 00 00 10 10 10 10 00 10 00 00 24 24 00 00 00 00 00 00 24 7E 24 24 7E 24 00 00 08 3E 28 3E 0A 3E 08 00 62 64 08 10 26 46 00 00 10 28 10 2A 44 3A 00 00 08 10 00 00 00 00 00 00 04 08 08 08 08 04 00 00 20 10 10 10 10 20 00 00 00 14 08 3E 08 14 00 00 00 08 08 3E 08 08 00 00 00 00 00 00 08 08 10 00 00 00 00 3E 00 00 00 00 00 00 00 00 18 18 00 00 00 02 04 08 10 20 00 00 3C 46 4A 52 62 3C 00 00 18 28 08 08 08 3E 00 00 3C 42 02 3C 40 7E 00 00 3C 42 0C 02 42 3C 00 00 08 18 28 48 7E 08 00 00 7E 40 7C 02 42 3C 00 00 3C 40 7C 42 42 3C 00 00 7E 02 04 08 10 10 00 00 3C 42 3C 42 42 3C 00 00 3C 42 42 3E 02 3C 00 00 00 00 10 00 00 10 00 00 00 10 00 00 10 10 20 00 00 04 08 10 08 04 00 00 00 00 3E 00 3E 00 00 00 00 10 08 04 08 10 00 00 3C 42 04 08 00 08 00 00 3C 4A 56 5E 40 3C 00 00 3C 42 42 7E 42 42 00 00 7C 42 7C 42 42 7C 00 00 3C 42 40 40 42 3C 00 00 78 44 42 42 44 78 00 00 7E 40 7C 40 40 7E 00 00 7E 40 7C 40 40 40 00 00 3C 42 40 4E 42 3C 00 00 42 42 7E 42 42 42 00 00 3E 08 08 08 08 3E 00 00 02 02 02 42 42 3C 00 00 44 48 70 48 44 42 00 00 40 40 40 40 40 7E 00 00 42 66 5A 42 42 42 00 00 42 62 52 4A 46 42 00 00 3C 42 42 42 42 3C 00 00 7C 42 42 7C 40 40 00 00 3C 42 42 52 4A 3C 00 00 7C 42 42 7C 44 42 00 00 3C 40 3C 02 42 3C 00 00 FE 10 10 10 10 10 00 00 42 42 42 42 42 3C 00 00 42 42 42 42 24 18 00 00 42 42 42 42 5A 24 00 00 42 24 18 18 24 42 00 00 82 44 28 10 10 10 00 00 7E 04 08 10 20 7E 00 00 0E 08 08 08 08 0E 00 00 00 40 20 10 08 04 00 00 70 10 10 10 10 70 00 00 10 38 54 10 10 10 00 00 00 00 00 00 00 00 FF 00 1C 22 78 20 20 7E 00 00 00 38 04 3C 44 3C 00 00 20 20 3C 22 22 3C 00 00 00 1C 20 20 20 1C 00 00 04 04 3C 44 44 3C 00 00 00 38 44 78 40 3C 00 00 0C 10 18 10 10 10 00 00 00 3C 44 44 3C 04 38 00 40 40 78 44 44 44 00 00 10 00 30 10 10 38 00 00 04 00 04 04 04 24 18 00 20 28 30 30 28 24 00 00 10 10 10 10 10 0C 00 00 00 68 54 54 54 54 00 00 00 78 44 44 44 44 00 00 00 38 44 44 44 38 00 00 00 78 44 44 78 40 40 00 00 3C 44 44 3C 04 06 00 00 1C 20 20 20 20 00 00 00 38 40 38 04 78 00 00 10 38 10 10 10 0C 00 00 00 44 44 44 44 38 00 00 00 44 44 28 28 10 00 00 00 44 54 54 54 28 00 00 00 44 28 10 28 44 00 00 00 44 44 44 3C 04 38 00 00 7C 08 10 20 7C 00 00 0E 08 30 08 08 0E 00 00 08 08 08 08 08 08 00 00 70 10 0C 10 10 70 00 00 14 28 00 00 00 00 00 3C 42 99 A1 A1 99 42 3C
I won’t spoil the surprise for you, but see if you can take a line, convert each pair of digits from hex to binary, and work out what character it is!