It's alive
Well done Lardo
Funny, I posted about the RAM check in this
post not long ago...
Yes, it is possible in hardware. If this was RAM controlled by your own address decoding circuitry, you just disable the RAM at all addresses other than the wanted area (and with the ZX81, of course being careful to allow a shadow/echo for the screen display). But if using the ULA's address decoding, that is not so easy. The alternative (that I need to think about some more) will be posted later maybe
For type in programs you can indeed POKE RAMTOP with a new value, then NEW, then type in your program.
For your own programs, you can do the same. In chapter 28 of the ZX81 BASIC Programming book (the one Sinclair supplied with ZX81s) it details which system variables are saved and hence loaded from tape. RAMTOP is NOT listed as being saved. So if you POKE it, and do a NEW before loading the program, if the program is just BASIC, or it uses RAMTOP to see the memory size, it should work okay.
This will not work if the program changes RAMTOP or ignores RAMTOP. Or even just assumes that everything above 1k (2k) of RAM is an echo
Mark