48K Issue 6A

For experts to discuss very technical stuff and newbies to ask why the Spectrum they bought off ebay doesn't work.
Post Reply
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

48K Issue 6A

Post 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 ?
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

Re: 48K Issue 6A

Post 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.
User avatar
balford
Drutt
Posts: 34
Joined: Mon Nov 13, 2017 2:01 pm
Location: Ireland

Re: 48K Issue 6A

Post 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:
http://8bit.yarek.pl/upgrade/zx.zxmux/index-de.html

You'll find schematics and gerber files there, I've built a few using the gerbers and they work fine.
Fixing ZX Spectrums in the 21st Century
https://github.com/brendanalford/zx-diagnostics
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

Re: 48K Issue 6A

Post by RMartins »

Thank you!

I was able to download the schematics, but the gerber files, fail to download :(
User avatar
balford
Drutt
Posts: 34
Joined: Mon Nov 13, 2017 2:01 pm
Location: Ireland

Re: 48K Issue 6A

Post by balford »

Lucky I had them saved locally then :) Here you go:
http://www.brendanalford.com/PCF1306P.zip
Fixing ZX Spectrums in the 21st Century
https://github.com/brendanalford/zx-diagnostics
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

Re: 48K Issue 6A

Post by RMartins »

You are a life saver, or in this case, a ZX savior :D
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

Re: 48K Issue 6A

Post 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.
User avatar
balford
Drutt
Posts: 34
Joined: Mon Nov 13, 2017 2:01 pm
Location: Ireland

Re: 48K Issue 6A

Post 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.
Fixing ZX Spectrums in the 21st Century
https://github.com/brendanalford/zx-diagnostics
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

Re: 48K Issue 6A

Post 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.
User avatar
RMartins
Manic Miner
Posts: 776
Joined: Thu Nov 16, 2017 3:26 pm

Re: 48K Issue 6A

Post 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).

http://www.breakintoprogram.co.uk/compu ... 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:
http://www.minuszerodegrees.net/memory/4164.htm

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.
http://www.minuszerodegrees.net/memory/ ... 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.
User avatar
1024MAK
Bugaboo
Posts: 3104
Joined: Wed Nov 15, 2017 2:52 pm
Location: Sunny Somerset in the U.K. in Europe

Re: 48K Issue 6A

Post by 1024MAK »

With regards DRAM chips:-

Yes, there are two variations of 64k X 1 bit DRAM chips. The different refresh requirements depend on the actual internal layout of the memory cell grids. The type that has a 128 cycle refresh was designed with older 7 bit refresh systems in mind, not just the Z80 CPU (although this would have been a big part of the considerations).

While talking about the Z80 and refresh, I don't know of any Z80 CPU that has 8 bit 256 cycle refresh circuitry, whether made by Zilog or a second sourced Z80 CPU. The later and more advanced Zilog CPUs may be what is being talked about, or the specialist Z80 like CPUs.

With respect to the timing, you also have to allow for the actual way the CPU accesses the memory. Not just the CPU clock rate. Then the time taken by the decoding logic and multiplexing circuitry also has to be taken into account. For the RAM used by the ULA to generate the screen, that timing has to be considered as well. DRAM that is too slow may work some of the time, but may cause strange effects, or random crashes.

With the "upper" 32k bytes of memory in a 48k machine, the 256 cycle 64k x 1 bit DRAM chips can be used, as only half of the capacity of the RAM chip is actually being used. So it does not matter that the unused memory cells are not being refreshed.

You can mix some types of DRAM chip. But it's not normally recommended. Because you need to carefully compare most of the details in the datasheets to see if they are suitable to both work in a system.

The 128k Spectrums have additional circuitry, so the DRAM arrangements are a bit different.

What chips do I use? It very much depends on what I can get hold of... If it is easier or cheaper to replace the lot, then so be it. Or if I have another that has the type of DRAM chip I want, and they are in sockets, I put the other manufacturers DRAM chips in the Spectrum that has the sockets, and rob the existing chips for use in the board that I am repairing...

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