Amstrad owners may be interested to know that if 'SYMBOL AFTER 32' is entered (to redefine the character set), the whole ASCII character set is downloaded from ROM into RAM, starting at &A500 (42240).
As there are 224 characters on the Amstrad, each consisting of eight numbers (0-255), these will reside from &A500 (42240) to &ABFF (44031).
Characters to the screen are now generated from RAM and not from ROM. These can now be easily manipulated by using either the Basic keywords SYMBOL - to redefine a character - or POKE, to poke numbers directly to the memory locations.
To find the start address of an ASCII character, use the following:
location = 42240 + (N - 32)*8
where N is the ASCII number of the character.
If whole new character sets are created it will be quicker to save the memory locations &A500 to &ABFF as a binary file, rather than saving the program which created the new characters. To save the new character set to tape enter:
SAVE "CHARACTERS",B,42240,1792
To load in the character set first enter 'SYMBOL AFTER 32' to set the character generator to point to RAM, then enter:
LOAD "CHARACTERS"
The new character set is then loaded into memory. Characters already on the screen are not affected, but any new characters printed to the screen take on the values of the new character set.