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

Emulator and emulator development specific topics
Post Reply
Kahenraz
Posts: 25
Joined: Mon Feb 10, 2020 2:06 pm

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

Post 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?
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

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

Post by mrtinb »

EightyOne has this option.
  • You select 48k RAM
  • You select RAM in area 8k - 16k
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
Kahenraz
Posts: 25
Joined: Mon Feb 10, 2020 2:06 pm

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

Post by Kahenraz »

What is the relevance of this as an exclusive option?
User avatar
mrtinb
Posts: 1906
Joined: Fri Nov 06, 2015 5:44 pm
Location: Denmark
Contact:

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

Post 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".
Martin
https://zx.rtin.be
ZX81, Lambda 8300, Commodore 64, Mac G4 Cube
User avatar
1024MAK
Posts: 5103
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

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

Post 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
ZX81 Variations
ZX81 Chip Pin-outs
ZX81 Video Transistor Buffer Amp

:!: Standby alert :!:
There are four lights!
Step up to red alert. Sir, are you absolutely sure? It does mean changing the bulb :!:
Looking forward to summer later in the year.
Post Reply