1K Chess for the ZX81 was 672 bytes long; the ZX81 had 672 bytes free. (Although it was more complicated than that because the ZX81 'framebuffer' changed size depending on what was on the screen, so a screen that was mostly white gave you more spare RAM.)
Also, because the ZX81 more-or-less did its video in software (again, it's more complicated than that; if you really want to know, you'll need a strong stomach. Let's just say that it hinged on abusing the Z80's built in DRAM refresh and the framebuffer was executable), which meant that the only time you could do processing with the screen turned on when it wasn't doing video. And the video took 75% of the run time.
The ZX81 was less a computer and more of a pile of hacks flying in close formation. The fact it ran at all was a miracle.
Also, because the ZX81 more-or-less did its video in software (again, it's more complicated than that; if you really want to know, you'll need a strong stomach. Let's just say that it hinged on abusing the Z80's built in DRAM refresh and the framebuffer was executable), which meant that the only time you could do processing with the screen turned on when it wasn't doing video. And the video took 75% of the run time.
The ZX81 was less a computer and more of a pile of hacks flying in close formation. The fact it ran at all was a miracle.