756 don't simply scroll the four lines; you actually scroll a full 24 (20 additional lines * 40 bytes equals 800 bytes scrolled past memory)! This messes up the memory past the window display address, so position your character sets below all possible interference (or don't scroll or clear the screen). You can create and store as many character sets as your memory will allow. You switch back and forth between them and the ROM set by simply POKEing the MSB of the address into 756. Of course, you can display only one set at a time unless you use an altered display list and DLI to call up other sets. There are no restrictions outside of memory requirements on using altered character sets with P/M graphics as long as the areas reserved for them do not overlap. A GRAPHICS command such as GR.0, RESET or a DOS call restores the character set pointer to the ROM location, so you must always POKE it again with the correct location of your new set after any such command. A useful place to store these sets is one page after the end of RAM, assuming you've gone back to location 106 ($6A) and subtracted the correct number of pages from the value it holds (by POKE 106,PEEK(106) minus the number of pages to be reserved; see above). Then you can reset the character set location by simply using POKE 756,PEEK(106)+1 (the plus one simply makes sure you start at the first byte of your set). A full character set requires 1024 bytes (1K: four pages) be reserved for it. Why? Because there are 128 characters, each represented by eight bytes, so 128 * eight equals 1024. If you are using a graphics mode that uses only half the character set, you need only reserve 512 bytes (64 * eight equals 512). Remember to begin either one on a page boundary (1K boundary for full sets or .5K for half sets). By switching back and forth between two character sets, you could create the illusion of animation. Many magazines have published good utilities to aid in the design of altered character sets, such as the January 1982 Creative Computing, and SuperFont in COMPUTE!, January 1982. I suggest that you examine The Next Step from Online, Instedit from APX, or FontEdit from the Code Works for very useful set generators. One potentially useful way to alter just a few of the characters is to duplicate the block of memory which holds the ROM set by moving it byte by byte into RAM. A BASIC FOR-NEXT loop can accomplish this, although it's very slow. For example: 5 CH=57344 10 START=PEEK(106)-4:PLACE=START*256: POKE 106,PEEK(106)-5:GRAPHICS 0: RE