Thanks for the Memories

Note: This post has been altered since it was first published, to correct information about detecting the amount of memory in the ZX Spectrum, apologies for any confusion that arose as a result of the first revision of this post.


Apologies for the post title.

As I said in a previous blog, buying anything second hand, never mind 30 year old electronics, can be prone to issues.  So I went into the whole Spectrum buying thing with my eyes open, I’ve bought a lot of junk and if I end up with a reasonable Spectrum at the end of it, have had fun along the way, and maybe learned a thing or two, I’ll be very happy.

One of the issues early Spectrums had, is that the memory they used was cheap.  For a start, the 32K memory (in the 48K machines) was actually 64K chips with only half the bank of memory working.  Sinclair specifically used faulty chips to save cost.  It’s generally accepted that if the whole extra 32K wasn’t working post build, but the lower 16K was okay, Sinclair sold the machine as a 16K Spectrum (properly badged).  So you got a 16K Spectrum, but if you looked inside it would look like a 48K unit.

The only real way to tell was a little sticker on the outside of the case – which as you can imagine, does not stand the test of time very well.  So, people selling Spectrum’s on eBay may list them with or without memory sizes, if they’re not sure will usually say 48K, will sometimes list them as 64K for amusement, and very often the case won’t have the sticker left.

So here’s how you tell how much memory you should have, and if it’s faulty.

PRINT PEEK 23733

The return from that should be one of,

  • 255 – this Spectrum has 48K memory
  • 127 – this Spectrum has 16K memory

That 127 is the return I get on one of the Spectrums I have, which wouldn’t load Manic Miner without crashing.  If you don’t get either of those numbers, then you’ve got a problem you need to locate.  Even if you get 127, you could still have a 48K Spectrum in which the upper memory isn’t working, either as originally sold, or because it has developed a later fault.

You can also get the total memory you have, this little bit of code is all over the web (including World of Spectrum),

PRINT PEEK 23732 + 256 * PEEK 23733

That returns 32767 for a 16K Spectrum (16K ROM, 16K RAM), and 65535 for a 48K unit (16K ROM, 16K base RAM, 32K additional RAM).  If you don’t get either of those numbers, then you’ve got a memory fault of some kind, and need to do some digging.  You can check this site out for more advice on doing that.  Or, with even more detail, this page over at WoS.

I haven’t had a chance to test these out on the ‘fully working’ model yet (because it’s not fully working, the keyboard membrane is bust) but I’m hoping it turns out to be a 48K unit, the case certainly has the 48K sticker on it (see photo above).

Over time, Spectrum motherboards get moved between cases, repairs are made, cases are replaced, stickers wear off, and even when they were new, Sinclair would make repairs under warranty that meant the serial number, sticker, case and motherboard no longer matched.  So in essence, unless you see the output from those commands, the other information like case serial number or photo’s of the motherboard is still only a best guess at the actual configuration you’re going to get!