Page 1 of 1

EightyOne ZX81 emulator does not have a 56kB RAM option?

Posted: Tue Feb 11, 2020 9:06 am
by Kahenraz
I noticed today while experimenting with emulators that No$zx has an option for 56kB RAM. This is expected as the ROM size is 8kB and this would add up to the maximum of addressable 64kB. But EightyOne does not have this option. Does anyone know why?

Re: EightyOne ZX81 emulator does not have a 56kB RAM option?

Posted: Tue Feb 11, 2020 10:05 am
by mrtinb
EightyOne has this option.
  • You select 48k RAM
  • You select RAM in area 8k - 16k

Re: EightyOne ZX81 emulator does not have a 56kB RAM option?

Posted: Tue Feb 11, 2020 10:48 am
by Kahenraz
What is the relevance of this as an exclusive option?

Re: EightyOne ZX81 emulator does not have a 56kB RAM option?

Posted: Tue Feb 11, 2020 11:57 am
by mrtinb
The 8k - 16k area was originally intended for ROM, and some upgrades uses this, including the Memotech MEMO and Memotech Centronics I/F.

Using 8k- 16k area for RAM is almost a "hack".

Re: EightyOne ZX81 emulator does not have a 56kB RAM option?

Posted: Thu Feb 13, 2020 6:08 pm
by 1024MAK
The address decoding done by the ULA (for the ZX81, TS1000) and logic chips (ZX80) only uses CPU address line A14.
A14 LOW selects ROM
A14 HIGH selects RAM.

Sinclair used a 8K byte ROM chip, the decoding puts it at 0x0000 to 0x1FFF. But also at 0x2000 to 0x3FFF, 0x8000 to 0x9FFF and 0xA000 to 0xBFFF. Note that as there is only 8K bytes of ROM, the SAME information is in all four decoded memory ranges. This is called partial address decoding.

It’s a similar story with the RAM.

Hence ‘traditionally’ third party expansions have mostly used 0x2000 to 0x3FFFF for ROM (EPROM)s rather than RAM. Also, the BASIC system will not recognise or use RAM below 0x4000 (16384). So RAM between 0x2000 to 0x3FFF is only useful for machine code programs unless you use PEEK and POKE to access it in BASIC.

More on the memory map in this thread ;)

Mark