DR. JIM'S PROGRAMMING HISTORY: CHARACTER SETS & UDGS
User-defined graphics are something every Spectrum owner learned very early in their programming days. Any novice programmer who experimented with them probably defined each character with eight statements starting DATA BIN... then realised the values could be given in decimal in a single DATA statement, leaving the POKE routine intact. Such 8×8 character squares that weren't the standard character set were the mainstay of all sorts of games in 1982 and 1983...
...but then, along with the programmers becoming more sophisticated with their sprite designs, custom character sets started to emerge. If your game was still using the standard ROM character set in 1984, you'd better have a very good excuse for it, or the magazine reviewers would be handed a convenient stick to beat your game with.
Redefined character sets are really just an extension of the principle of user-defined graphics, and it's something I started investigating when I returned for my second Spectrum-programming era, circa 2003. This is a summary of how to go about doing it, and how you can get the character sets I've listed below to work:
Start with CLEAR 64511.
Starting at address 64512, POKE the new values for each character in the ROM character set in sequence, exactly as you would
with UDGs - starting with space and ending with © - that'll be 96 characters, hence 768 values in total.
Finally, SAVE "filename" CODE 64512,768 and it's done.
To see your new character set when it's all defined, POKE 23607,251...
...then POKE 23607,60 to return to the standard ROM character set.
The character sets can be defined at any address you like, but I would strongly advise you to keep the address as a multiple of 256, so that POKE 23606 never needs to be used and can be left at its default value of 0. If the address you have POKEd your character set to is a (assuming this is a multiple of 256), then POKE 23607,(a/256)-1 will display it.
Shown below is a ton of character sets and user-defined graphics I've devised, or harvested from other games, over the years. Some of them are available elsewhere and have been used in many other games I've encountered, but what I've listed is the games I know the character sets from. In the case of the character sets with demos, click the picture to see more (usually most of the demo).
THE ULTIMATE CHARACTER SET AND UDG DEFINITION PROGRAM
CHARACTER SETS AND UDGS WITH A DEMONSTRATION PROGRAM ATTACHED
BARE CHARACTER SETS (SOME WITH UDGS)
OTHER AVAILABLE CHARACTER SETS
Here are some final links to character sets that have been released commercially, or via tape and/or disc magazines. If anyone knows of any others, harangue me on the Spectrum Computing forums about it.
.TZX 20 Character Set Fonts (Sigmasoft, 1985) - on tape via this compilation.
.MGT 20 Character Set Fonts (Sigmasoft, 1985) - on disc via Outlet, issue 14 (1988).
.MGT Art-Studio-Fonts Collection (Fountain Public Domain, 1995) - on disc via Outlet, issue 123 (1997).
.TZX The 8Bit Font Collection (Paul van der Laan, 2007)
Spectrum Computing's category for Fonts & UDGs utilities should contain a goldmine, once I've combed my way right through it.