vLA81 ULA and 16/32K internal RAM

Discussions about Sinclair ZX80 and ZX81 Hardware
Lardo Boffin
Posts: 2169
Joined: Sat Nov 26, 2016 2:42 am

Re: vLA81 ULA and 16/32K internal RAM

Post by Lardo Boffin »

1024MAK wrote: Sun Dec 15, 2019 5:48 pm
Lardo Boffin wrote: Sun Dec 15, 2019 5:29 pm I quite liked the Sinclair ROM bodge
:shock: Image

You mean ‘mandatory modification’ surely :lol:

Mark
Did I say bodge? I meant resource scarcity inspired improvised technical adjustment.
ZX80
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
Lardo Boffin
Posts: 2169
Joined: Sat Nov 26, 2016 2:42 am

Re: vLA81 ULA and 16/32K internal RAM

Post by Lardo Boffin »

I have finally found time to fit the vLA81 along with what is hopefully 32K of RAM. Thanks for the assistance all!

5E465E3B-7970-4374-ABBA-80E5A5E06DCE.jpeg

Currently switch 1 is on as is switch 3. I have to say it produces a really good RF image on my HD LCD tv! I can normally just about make out the K but this is actually usably good! I will be making use of the comp out though (hence the modulator lid being off). :D

How do I go about proving it actually has 32K of RAM? :shock: I was looking at this link (https://www.vintage-radio.net/forum/sho ... p?t=120165) but won’t get time to try anything out for a while thanks to work. Will any of the suggestions on there prove the amount of RAM?

Thanks!
ZX80
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
User avatar
1024MAK
Posts: 5118
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: vLA81 ULA and 16/32K internal RAM

Post by 1024MAK »

Oh, lots of misleading information in that forum thread you linked to :?

The system variable “RAMTOP” is in itself not a lot of use as an indication of how much RAM is available after power on if you have more than 16K bytes if RAM fitted in your system. As the ZX81 ROM only looks for up to 16K in the normal area (in other words, it was only designed to cope with Sinclair’s 16K RAM Pack). The ‘BASIC system’ does not look for any RAM outside this area, so will be completely unaware of any extra RAM (or ROM).

To enable BASIC to use some of the extra RAM, YOU have to POKE suitable values into the RAMTOP system variable.

However, PEEK and POKE can access the whole Z80 address range regardless of the value in the RAMTOP system variable.

Unlike DIM(), which is limited by the RAMTOP system variable.

More information in the Memotech MEMOPAK 64K instructions here

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.
User avatar
1024MAK
Posts: 5118
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: vLA81 ULA and 16/32K internal RAM

Post by 1024MAK »

Oh, one VERY important thing that I forgot to mention...
Due to the partial address decoding that is used in systems like the ZX81, where there is less than 64k bytes of RAM and ROM fitted, if you POKE an address where there is no unique RAM memory, you may be poking a number elsewhere in RAM! This is because the RAM chip in a lower (or higher) address may respond to more than one address location. For example in a unexpanded 1K ZX81, the 1K bytes of RAM repeats many times above address 17407. So poking a number into address 17408 means you are actually poking that number into address 16384. This does make testing for working RAM on a ZX81 from BASIC a bit tricky...

Try this on an unexpanded 1K ZX81:

Code: Select all

10 PRINT PEEK 16384
20 PRINT PEEK 17408
30 POKE 17408,8
40 REM NEVER GETS HERE, STOPS WITH REPORT CODE 9
Mark

PS you may want to lookup address 16384 in chapter 28 of the ZX81 BASIC programming book...
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.
Lardo Boffin
Posts: 2169
Joined: Sat Nov 26, 2016 2:42 am

Re: vLA81 ULA and 16/32K internal RAM

Post by Lardo Boffin »

Thanks Mark!

I never totally ‘got’ the ZX81 memory map but was aware that the memory addresses appeared to be repeated.

I should have thought to look at my Memopak instructions. :oops:
ZX80
ZX81 iss 1 (bugged ROM, kludge fix, normal, rebuilt)
TS 1000 iss 3, ZXPand AY and +, ZX8-CCB, ZX-KDLX & ChromaSCART
Tatung 81 + Wespi
TS 1500 & 2000
Spectrum 16k (iss 1 s/n 862)
Spectrum 48ks plus a DIVMMC future and SPECTRA
User avatar
1024MAK
Posts: 5118
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: vLA81 ULA and 16/32K internal RAM

Post by 1024MAK »

Partial address decoding is a bit like someone who is used to the 24 hour clock (00:00 hours through to 23:59 hours) looking at a 12 hour clock. If there is no AM or PM indication, and you can’t see outside (to see if it is daylight) how do you tell if it is 3am or 3pm, as the clock just shows 3:00....?

With partial address decoding, not all address lines are connected to the decoding circuitry and the RAM chips. Those that are not connected can then be at any value, the decoding circuitry and the RAM chips don’t care.

A 1024 byte RAM chip only needs address lines A0 to A9. The ULA only uses a single address line for decoding: A14. So the logic levels on address lines A10 to A13 and A15 are ignored whenever the Z80 reads or writes to the RAM. Hence you can read or write to the same memory location in the RAM chip using lots of different addresses. As far as the RAM chip is concerned, which combination on address lines A10 to A13 and A15 is used is irrelevant.

With a larger capacity RAM chip (or multiple RAM chips), the number of repeats (ghosts or echos) is reduced (often to just 2).

But, the design of the ZX81 relies on the RAM in the 16K to 32K area to be able to be executed by the Z80 CPU in the 48K to 64K area in order for the system to be able to use the display file to generate a video image. That is, the same RAM responds if A15 is low (normal access) and the same RAM also responds when A15 is high (used by the video system).

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.
Orac
Posts: 27
Joined: Sat Dec 15, 2018 10:33 am

Re: vLA81 ULA and 16/32K internal RAM

Post by Orac »

I’ve got myself in a right tizzy over adding this ram upgrade, can someone help me out.

I’ve got a ZX81 Iss.3

At present it has a VLA81 fitted and no RAM. Works ok with a RAM Pack fitted.

I have a 62256 chip, tested, working. Fitted a socket to the ZX81.

I’d like 32K internally and the ability to use hi-res modes.

I have no external switch kit on the VLA81 just the plain one. So I’ll likely be using soft mode.

What pins do I bend on the 62256?

Do I connect A11-A14 on the 62256 to the diodes as with tynemouth softwares installation?

What about A13, where does that connect, to the diodes or to the VLA81 pin 35?

As I have a ceramic resonator on the board and the VLA81 just simply plugged in, won’t that clash?

Are we talking bending pin 35 on the VLA81 and diverting A13 to it?

I’m confused.
User avatar
Paul
Posts: 1517
Joined: Thu May 27, 2010 8:15 am
Location: Germanys west end

Re: vLA81 ULA and 16/32K internal RAM

Post by Paul »

The manual of the vLA81 makes all this very clear.
In theory, there is no difference between theory and practice. But, in practice, there is.
User avatar
1024MAK
Posts: 5118
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: vLA81 ULA and 16/32K internal RAM

Post by 1024MAK »

Definitely DO NOT try bending any of the pins on the VLA81. As there is no need.

The VLA81 is designed as a plug in replacement, so it’s been engineered so that there is no clash with the oscillator components on the ZX81 (or TS1000) board.

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.
Orac
Posts: 27
Joined: Sat Dec 15, 2018 10:33 am

Re: vLA81 ULA and 16/32K internal RAM

Post by Orac »

Paul wrote: Fri Jan 06, 2023 8:41 am The manual of the vLA81 makes all this very clear.
It doesn’t answer the questions I posted or I wouldn’t have posted them.

The instructions also appeared….appeared….to contradict themselves in relation to A13 and the oscillator. So I thought it best to ask before ploughing ahead.
Post Reply