Page 1 of 2

48K Issue 6A

Posted: Sat Nov 18, 2017 2:26 pm
by RMartins
I'm reviving a cannibalized and dead 48K issue 6A, for a friend.

I managed to recover most of it, and got the ULA running, and displaying the typical blocky color blobs on screen.
After some more checks I found out that lower memory receives CAS strobes, but higher memory does not.

After looking at the circuit diagram, it's obvious that lower memory CAS is coming from ULA, since C jumper is connected.
But higher memory CAS comes from ZX8401 IC, which outputs a steady 5V on pin 34 (CASL), instead of strobing.

However I'm not familiar with ZX8401 inner logic/internals, and can't seem to find any concrete documentation on the implemented logic.

I need to know which inputs affect CASL pin, and how, before I mark this ZX8401 as not working.

I looked around (net search) but did not find any useful info.
Where can I find documentation on its internals ?

Re: 48K Issue 6A

Posted: Sat Nov 18, 2017 10:05 pm
by RMartins
Meanwhile, doing some more tests, CASL came to life.
I wounder why or how?

Probably because I wiggled the ULA in its socket, or pressed here and there on the PCB.
But I'm really not sure what made it pop to life again.

But the machine still does not work.
Occasionally, I get a completely black screen, except for 3 odd chars that blink, kind of randomly.
I probably have some memory error in there too.

Anyway, this tells me that I have a bad contact or similar wild goose chase to do.

Still looking for info on ZX8401 internal logic.

Re: 48K Issue 6A

Posted: Mon Nov 20, 2017 12:34 am
by balford
Here's a link to a page describing ZX-MUX, which was designed to be a drop in replacement for the ZX8401/PCF1306/Amstrad 40058 IC's:

You'll find schematics and gerber files there, I've built a few using the gerbers and they work fine.

Re: 48K Issue 6A

Posted: Mon Nov 20, 2017 12:55 am
by RMartins
Thank you!

I was able to download the schematics, but the gerber files, fail to download :(

Re: 48K Issue 6A

Posted: Mon Nov 20, 2017 1:06 am
by balford
Lucky I had them saved locally then :) Here you go:

Re: 48K Issue 6A

Posted: Mon Nov 20, 2017 1:28 am
by RMartins
You are a life saver, or in this case, a ZX savior :D

Re: 48K Issue 6A

Posted: Sat Nov 25, 2017 6:11 pm
by RMartins
Current situation is a black screen with a green border, but no boot.

From my tests, the CPU is doing work, but some memory is probably trashed.

If I power up but keep reset active, screen gets all garbled as expected, but as soon as I deactivate the reset line, the screen is cleared to black, and the border turns green.

I don't remember any step in the ROM boot sequence, including memory init, that would set border to green.
If I include the fact that two high memory chips are hotter than the others, then the obvious conclusion seems to be damaged memory chips.

However, if I try to use Retroleum Test ROM, screen gets corrupted and it does not initialize correctly, which shouldn't happen since it should not depend on RAM during initial tests. So probably something else needs fixing too.

I will probably replace the hot memory chips next, once I'm able to remove them and add sockets in their place.

One thing I noticed while probing it with an oscilloscope is that the data lines between ROM and CPU, have lower values than expected, but still seem valid TTL levels. This is probably due to the whacky resistors on the data lines to separate them from the ULA, since all 8 lines behave similarly.

Re: 48K Issue 6A

Posted: Sun Nov 26, 2017 12:07 am
by balford
One of the first things the ROM code does, regardless of memory state, is set the border to white. So if that's not happening then either the CPU is dead, or more likely in your case, one or more faulty RAM chips are holding data lines high or low. Since we have the data bus separator resistors protecting the contended/uncontended buses (to a certain extent), the issue must be with the upper RAM IC's that are on the same side of the bus as the CPU.

I'd go with replacing any hot IC's and going from there.

Re: 48K Issue 6A

Posted: Mon Feb 19, 2018 7:15 pm
by RMartins
Finally got some time yesterday, to work on this again.

I just tried using my new Hot Hair blower/SMD re-work station, and started removing the hottest memory chip in upper memory.

Since chips are so close to each other, I had to removed 2 instead of one.
Checked for solder splatters, and then tested it it booted, but go exactly the same behaviour, with a green border.

So i decided to remove the next 2 neighbour chips.
Checked for solder splatter again, and tried to boot it again.

And surprise, surprise, it's alive :)
The "1982" message appears, and we are working with just 16K.

Then decided to use the Retroleum Smart Card to check the remaining memories.
Left it running for 3 hours, and all 4 remaining memory chips, seem to not heat up at all, and always return as being operational.

Now, I just need to get some sockets (I don't remember exactly where I have stashed mine), and add some new memories (these 4116 are accounted for), eventually reusing some of the old, if proven to be good.

I know at least 1, eventually 2 are bad, but the other 2 might be salvageable.

NOTE: I may add some pictures later.

So rejoice, another Spectrum reborn from it's ashes, after being cannibalised in a distant past.

Re: 48K Issue 6A

Posted: Thu Mar 01, 2018 9:30 pm
by RMartins
From the 4 memory chips I remove, I confirmed that 3 are bad, so I can still reuse one of them.

I put some sockets on the PCB, to fit new RAM in the future.

So, I'm trying to find suitable replacement for "Texas Instruments" TMS4532-15NL
I have found several supposed compatible replacements, but apparently we can not mix some of the other chips, with the TI ones (not regarding which half we are using, if replacing with full working 4164 chips). ... dware/ram/

But from my calculations, if CPU is working at 3.5 MHz, the time to fetch a memory position, should be around 1/3500000 = 0.00000028571429 or 285ns
So instead of -15 reference (150 ns), we should be able to use a -20 reference (200ns).

Besides this, I found also this very interesting link:

Where it states a peculiarity of the refresh circuit of Dynamic RAM memories, to be of two types:
• 256cycle/4ms: Refreshes to rows 0 through 255, within a 4 millisecond limit, will result in all 65,536 cells (bits) being refreshed.
• 128cycle/2ms: Refreshes to rows 0 through 127, within a 2 millisecond limit, will result in all 65,536 cells (bits) being refreshed.

Some computer systems may specify chips of the 128 cycles type only. Presumably, that is because the system's refresh circuitry only counts as high as row 127. Placing 256cycle/4ms chips in such a system would fail because rows 128 to 255 in those chips would not be refreshed.
This made me think that all Z80 systems probably need the 128cycle/2ms type, since the R register only counts using 7 bits (128 combinations).
However, these memories TMS4164, seem to have been used in ZX 128K.

And apparently, by following the link for further details, it seems to confirm this. ... 128row.htm

What would be your current choice for replacing TMS4532-15NL on an issue 6, 48K ?
TIP: prices seem to vary wildly for these chips.

NOTE: I want to avoid, having to replace the remaining chips, so I need something compatible with the Texas instruments memory ICs.