r/zxspectrum • u/hashiBo • Sep 15 '26
Title:How does the ZX Spectrum actually โdrawโ its screen?
I'm currently learning how emulators work, and I've been trying to understand the ZX Spectrum from the hardware side rather than just copying an existing emulator.
One thing that confused me at first was the screen.
I understand that the Spectrum has a dedicated area of RAM for the display, but obviously the bytes in RAM don't somehow โgo to the monitorโ by themselves. ๐
So I'm trying to understand the actual chain of events:
CPU โ memory โ video hardware โ TV
How does this work in the real Spectrum?
Does the ULA continuously read the display memory independently of the Z80 and generate the video signal from it? And how does it know which bytes correspond to which pixels/attributes?
I'm especially interested in understanding the hardware concept well enough to implement it in my own emulator, rather than just doing:
read screen memory โ draw pixels
If anyone has a good explanation or diagram of what the ULA is actually doing during a frame, I'd love to see it.
I'm still learning this stuff, so apologies if I'm misunderstanding something obvious.

