CPCWiki forum

General Category => Technical support - Hardware related => Topic started by: thesmiler37 on 18:54, 30 December 23

Title: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 18:54, 30 December 23
I recently picked up a 464 and GT 65 monitor off ebay, i knew it was untested and probably broken but i enjoy repairing electronics so i wasn't too upset when it was completely dead, the monitor is fine and gives the 464 a solid 5V, my first issue was the power switch which wasn't working but a bit of contact cleaner fixed that, the next issue is that the power and video ports are complete junk, i managed to bodge the power connector by bending the flat contact up slightly to tighten the port, the final issue is that i'm 99% sure that the CPU is broken.

I think it's broken because it has a hot spot near the center of the chip which would suggest an internal short plus it's the only chip on the board that heats up when it's powered on also the internal speaker makes a high pitched noise when turned up which i thought was just interference or something but when i remove the CPU the noise stops, not sure if that means anything but it's worth a mention.

I did manage to get a solid picture out of the very wobbly video port and all i get is a rectangle/blank screen.

I plan on replacing the CPU as that is the only IC that looks broken, where can i get a replacement or what should i look for as a replacement? I know it uses a Z80 but is there a specific kind of Z80 it needs or will any Z80 do, also what should i check to make sure the board won't fry the new CPU as soon as it's turned on?


Any help is appreciated!  ;D
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: Rabs on 19:35, 30 December 23
Have a look at Noel's Retro Lab, may help.

Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: Rabs on 19:51, 30 December 23
For a z80 replacement try Z8400APS Z80A CPU Z8400 DIP40 4MHz (https://www.ebay.co.uk/itm/225089488910).
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: Rabs on 20:05, 30 December 23
But I would watch all of Noel's video's before deciding the Z80 is faulty. He has a few others which may help.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 20:33, 30 December 23
Cheers, i'm watching his video on checking the basics although i've watched a couple others from him already, i'm gonna pick up a logic probe off amazon so i can check for activity on the chips.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: Rabs on 20:40, 30 December 23
Not sure where you are based but I have a spare logic probe somewhere. I now use an oscilloscope for most fault finding work, Hantek DSO5102P USB Digital Storage Oscilloscope (https://www.amazon.co.uk/gp/product/B00I5EWF1U/ref=ppx_yo_dt_b_search_asin_title?ie=UTF8&psc=1).
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 21:03, 30 December 23
I'm up in Staffordshire, thanks for the offer though, i'm going to focus on the keyboard for now as the keys are all sticky and i'm gonna be typing on it a lot.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 00:07, 01 January 24
I still think it's the CPU that's busted so i'll order one and hopefully i get a working 464 although i have a feeling that the memory might give me trouble aswell.

Anything i should check to make sure the new CPU doesn't get instantly fried? I'm just being cautious as the last project i did like this went horribly wrong.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: eto on 09:37, 01 January 24
The noise from the speaker is normal. I guess when the CPU is gone there are just no longer signals that interfere with the sound output. 

Do you have a bench power supply? If yes, just limit the current to 1A. that should prevent frying components. 

A very typical fault of CPCs is overvoltage. I had several CPCs that were powered at some point by 12V or even 19V power supplies. Usually the RAM or ROM chips are fried first and then act as a kind of fuse which protects the rest of the computer. Depending on the exact fault it might be more or less easy to identify the exact culprit. You might also end up replacing components. But most of them are cheap and easy available. 

Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 11:37, 01 January 24
I think overvoltage is possible, the ebay seller thought it was a keyboard so they might have just stuck any old power adapter into it to try test it although other than that it just looks like it's been sitting in someones shed or basement for the last 30 years, the keyboard had a literal carpet of dust underneath the keys. :o

Is there any way to check the ROM chip for failure? It stays stone cold when the computer is powered on which could be a sign of it not being accessed by the CPU?

I'm still gonna replace the CPU and see what happens, it's possible that multiple chips are fried and at least having a known good processor should make trouble shooting a bit easier, i don't have a bench power supply so i guess i'll just cross my fingers and hope for the best.

One last thing, does anyone have any experience with the website retroleum.co.uk? They carry all the parts i'll need to fix my Amstrad so i just want to know if they're a trusted source before buying anything.

Thanks for all the help so far! :D
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: Rabs on 12:28, 01 January 24
I have used retroleum.co.uk for spare keyboard parts and all good.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: eto on 12:37, 01 January 24
Quote from: thesmiler37 on 11:37, 01 January 24Is there any way to check the ROM chip for failure? It stays stone cold when the computer is powered on which could be a sign of it not being accessed by the CPU?

If you have a multimeter, you can check all data and address lines if one of them has a short or an uncommonly low resistance between the pin and VCC or GND. Unfortunately that does not help to identify which IC has the short. It could still be the RAM, ROM or some other IC that is connected to the bus.

But if it would have a short, it probably would get warm. So maybe the CPU is a good candidate.

Quote from: thesmiler37 on 11:37, 01 January 24I'm still gonna replace the CPU

Make sure to buy the NMOS version. There are tiny differences between the CMOS and NMOS variants and some software depends on undocumented opcodes of the NMOS version.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 13:53, 01 January 24
Thanks for the tip on NMOS CPU's i wouldn't have picked up on that, i'll test the ROM later as i'm taking a break from this project for now because retroleum doesn't re-open till the 6th and i should have a 2600 turning up soon.

I'll post an update when i put the new CPU in, hopefully that's all i need to do.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: SerErris on 13:20, 07 January 24
I do not think that the CPU is broken. It is normal that it is getting hot. 

But if the ROM is broken, you will not get any output, as the ROM code is either carbled or the CPU cannot execute anything. (NOPs all the time).

So the CPU might be perfectly fine running all NOPs.

Without a probe at least, or better an Oscilloscope you will have a hard time to figure out, what is going wrong.

Also an external diagnostic ROM would be good to be able to test the internal rom (as long as it does not garble the data bus as in my case). 

Typically you work your way from the CPU via a an oscilloscope. You fist find out if the clock signal is good. Then check the reset line and then you check the control bus of the CPU. Esp the M1 lines and the RD and IORQ lines are interesting. If they are working normally, you also can check the data lines and address lines if they are looking like data signals.

In my case everything was good until I got to the data lines. They were all grounded and did not work. So I needed to figure out what was grounding those lines and it turned out that it was the ROM chip, that was malfunction and pulling all lines low. So nothing worked, as the data bus was always 0 and the CPU executed all NOP cycles (Z80 interprets 00 as NOP instruction). You could see that that you have a steady 1mhz M1 frequency. So every M cycle was a M1 cycle. That is not normal in normal operation.

But as I said some good tools are required.

A Multimeter (which I think you do have)
At least a logic probe (which gives you only the answer to the logic levels of a pin), better a oscilloscope with 2 channels.
And in addition a multiline digital probe (which can read multiple pins at the same time).

And of cause a bench power is something good to have to ensure that you do not damage anything and have trusted voltages
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 14:49, 10 January 24
Just replaced the CPU and unsurprisingly nothing changed, the new ports are great though and i at least get a solid power and video signal now.

I'll poke around a bit more later and see if i can pin down which IC is dead, it's got to be either RAM or ROM and i'm really hoping it's the ROM.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: SerErris on 00:48, 11 January 24
Do you get a blue screen? Or what color does your screen have?
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 01:23, 11 January 24
This is what i get when i turn the computer on, i'm guessing the CRTC is good because i get a stable picture, it's probably a sign the CPU was good aswell but i just didn't trust the hot spot the old one had, so i'm only left with ROM or RAM as the culprit, (i'm not sure if a dead gate array would cause an error like this) i can get a switchable ROM from retroleum so i'll be able to run diagnostics when i get that delivered.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: SerErris on 15:34, 11 January 24
The CRTC is not producing the picture. The GateArray is. But CRTC is at least outputting stable values of HSYNC and VSYNC to the GateArray. 

That is good.

GateArray can be all kind of things not working in a CPC as it is actually the heart of everything. 

It may look like the CPU is in Controll of everything, but actually it is the Gatearray. It controlls RAM access and ROM access and all kind of things as well as outputting the Video. It also generate the Clock of everything so it IS the heart of the CPC. 

What is the screen you are using? If that is a normal Color Screen that has not been set to green mode, then the colors are off.

That means that the registers in the GateArray are not set correctly or the GA not working correctly. I suspect the first. 

And that would mean, that your ROM does not work correctly. Also there is a chance of a broken IC 115, which sits in between the CPU and the Gatearray data lines. 

Up to this point, the ROM code does very little.

Here is what it does before the screen gets blue background with a blue border:

1. Disable upper Rom, Enable Lower Rom (this is GateArray command).
2. Initialize PIO
3. Read Screen Frequency from the Bridge (PIO)
4. Setup CRTC for correct screen mode
5. Copy Hi Kernel Jumps
6. Restore Jump Vectors
7. Initialize Keyboard Manager
8. Reset Sound
9. SCReen Init

So step 9 is, where everything is set where every GateArray color register is set to 00 (border and 16 colors), which is blue. So you actually should see blue everywhere. 

As you do not see any blue, it might be the GateArray not putting out the right color, but I assume it is more like a problem with the ROM.

What speaks against  the ROM is, that step 4. of the above is setup the CRTC which will generate HSYNC/VSYNC and that works correctly. 
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 17:23, 11 January 24
I have the monochrome monitor, i set the emulator to monochrome mode then used ink commands to replicate what my actual computer looks like, i can get a pic of the real monitor if you'd like.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: eto on 20:37, 11 January 24
yes, please make a real picture. Replicating it on an emulator might not be exact and we might be missing some information. 

If you get a bright rectangle with dark boarder this usually means, that the first bytes of the ROM have already been processed properly. The initialize the CRTC and the GateArray to properly display a screen. It also means that there is no short on an address or data line (which is good) as otherwise the CPU could not read properly from ROM. 

If nothing else happens this usually is an indication that one or more of the RAM ICs is/are faulty. The boot process stops as soon as the CPU leaves ROM to work in RAM. (not 100% sure, but it might also be the 74LS373 )
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: eto on 20:45, 11 January 24
:doh: sorry, SerErris already explained most of it
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 21:25, 11 January 24
Here it is on the real monitor, i've suspected RAM from the beginning but i don't have good de-soldering skills or equipment so i'm trying to avoid it if possible.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 21:28, 11 January 24
The image didn't upload for some reason.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: Bryce on 10:17, 12 January 24
You could have saved yourself some time and money if you had posted that picture first. The fact that there's a square in the middle means that the CPU, Gate-array and CRTC are all working fine. You most likely have a failed RAM chip.

Bryce.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: SerErris on 10:44, 12 January 24
Thank you for the Image.

So it looks like ROM and CPU are okay. Also for now I would assume CRTC okay. It is delivering at least correct Sync.

However the CRTC is responsible to select the correct RAM address for the GA to read the pixel bytes.

I think now you really would need some tools.

Diagnostic ROM would be required. You need any way to run it as Lower ROM.

This can be Dandanator, M4, Diagrom board from myself or any other board that allows to run Lower ROM. Not every ROM board does (e.g. Eight-ROm does not, it only support upper ROMs).

Also you need a logic probe (that can identify high, low or active signal) or a Oscilloscope. Otherwise you will not be able to identify the real culprit and need to replace a lot of chips via trial and error.

One example: If IC115 is not working, you cannot write to RAM. This will result in the scenario above. It can be cause by the GA not working properly and never pulling the 244EN line low. That is something you can only verify with the probe/oscillator.

For clarity, I am not saying that this is your problem. But it very well can be. More likely is a failed RAM chip or a failed MUX chip.

If RAM does not work correctly (any scenario) the first function failing would be TXT init. So right after SCR Init, TXT init will not work and crash the CPC as the memory address BDD0 is not populated correctly and a Call to it is ending in nirvana. That would then eventually reset the CPC and start over and over again, however as nothing changes in CRTC or GA, you will not recognize that happening.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 11:24, 12 January 24
Thanks for the info! I feel like a bit of an idiot now. :doh:

At least i have a spare CPU, i'll get out the logic probe in a bit and check IC 115 and the RAM, although i might just socket it all anyway for easier access in the future.

I was planning on getting a switchable EPROM with Amstrad diagnostics on it, does anyone know if that's a good diagnostic ROM and i noticed the 464 ROM comes in 2 parts, the OS and BASIC, do i need to send both to be burned onto the EPROM or is there a combined version?
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 15:18, 12 January 24
I've got my culprits! ;D

I tested the RAM chips and IC 115, pin 3 top and pin 2 bottom are the ones that stuck out to me, the chips in green tested high and the ones in red tested low on those pins, seems like i've got the dead chips right?

IC 115 checked out aswell although if that was dead none of the RAM chips would test high.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: SerErris on 18:17, 15 January 24
Quote from: thesmiler37 on 11:24, 12 January 24Thanks for the info! I feel like a bit of an idiot now. :doh:

At least i have a spare CPU, i'll get out the logic probe in a bit and check IC 115 and the RAM, although i might just socket it all anyway for easier access in the future.

I was planning on getting a switchable EPROM with Amstrad diagnostics on it, does anyone know if that's a good diagnostic ROM and i noticed the 464 ROM comes in 2 parts, the OS and BASIC, do i need to send both to be burned onto the EPROM or is there a combined version?
You only need the lower ROM as the diagnostic. 
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: SerErris on 18:20, 15 January 24
It is a little bit difficutly to understand.

There is no pin 3 on top ... RAM chip top pins are 9-16.

Ram In is 2 Ram Out is 14. 

And it does not tell you anything if some are high and some are low. That changes actually every ram access. If it is stable highor low on the output or input then there is a problem.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: thesmiler37 on 18:56, 15 January 24
I was just counting from the left side of the chip to make it easier for myself, so pin 3 top would be pin 14 and pin 2 bottom would be pin 2, the chips in red would oscillate mostly towards low and after a minute or 2 of being turned on would go completely low, the chips in green would oscillate towards high and didn't change.
Title: Re: Need help fixing a 464 with a potentially dead CPU
Post by: SerErris on 21:48, 17 January 24
You may want to try to put one working ram chip on another and then give it a try. However the best thing is still diagnostic rom for now, as it indicates which RAM chip(s) is/are bad.
Powered by SMFPacks Menu Editor Mod