I know you can use different parts of the 8 KB ROM in Sinclair ZX81 as character ROM by changing the I register, but it seems one cannot change the I register to point to RAM [and have character mode]. I think the problem is that the RAM then gets overwritten, but I might be wrong [I was wrong]. I know you can get some crude high resolution graphics by using different parts of the ROM, and that you can modify the RAM-pack to get true HR graphics. But the most obvious way to get user defined characters i.e. by having the character pictures in RAM seems to be impossible, because otherwise it would have been used much back in the day. What prevents the official Sinclair 16 K RAM pack from being used as the source for the characters that are used for the display?

I have 56 K SPECIAL RAMPACK by Audio Computers. Can some part of that RAM be used to store User-Defined Graphics (UDG) characters without modifying the hardware?


The ZX80 and ZX81 use the Z80’s opcode fetch bus cycle for graphics collection — the opcode fetch is appropriated to obtain a character index and the refresh cycle is used to obtain a row of pixels. Of course the actual refresh address isn’t actually likely to be correct for the pixel fetch so the ULA replaces the low nine bits with a combination of the character code and the three-bit line counter.

But check out the schematic:

ZX81 schematic

The substitution occurs on one side of a bunch of 1k resistors, next to the ROM just right of centre along the bottom. RAM is on the other side of those resistors, and on that side the address lines are simultaneously also being loaded by the CPU with the refresh address.

That creates a split bus. The RAM never sees the character address. It only sees the complete refresh address.

So you can use RAM for a linear frame buffer, and that’s a fairly common use at least nowadays, but not as a source of characters.

  • Fine Answer. Maybe add a TLDR at the top for the faint at reading. – Raffzahn May 31 at 18:52
  • 17
    Exemplary answer: short, clear, gets to the point succinctly, doesn't ramble chattily. Don't add a TLDR or anything, it doesn't need it, nor do most answers need that muddying. Upvoted. – TonyM Jun 1 at 1:09
  • 4
    Not sure how you even TLDR this... maybe "tldr; you clearly don't want to understand this, have a good day" – TCooper Jun 1 at 23:41
  • tldr; because the hardware doesn't support it. – Bruce Abbott Jun 3 at 1:09

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.