ZX Spectrums problems : diagnostic software ?

Post Reply
dizzy33
Posts: 108
Joined: Mon Jan 13, 2020 3:24 pm

ZX Spectrums problems : diagnostic software ?

Post by dizzy33 »

Hello,

I have some problems with my ZX Spectrum 48K : if I don't do anything with it, after a few minutes I can see some colored squares appearing on the screen. I am using a Divmmc on it, everything is fine except that a lot of games are failing to start. I think I may have some RAM problems on it, but not sure.
So I was wondering if anybody knows a diagnostic software (in .Z80 or .TAP format) that I can use to test the Spectrum hardware, does anybody now ?

Thanks !
Lardo Boffin
Posts: 2161
Joined: Sat Nov 26, 2016 2:42 am

Re: ZX Spectrums problems : diagnostic software ?

Post by Lardo Boffin »

I have a Retroleum Smart card - it has built in diagnostics

https://www.retroleum.co.uk/spectrum-peripherals

I also managed to download some software which ran tests but not sure if it was run as a ROM on the smart card or loaded in RAM - not used it for quite a while.

The Smart cards are nearly always out of stock (no surprise at that price!) but contact the seller he has always been very good at letting you know when they are back in.
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
dizzy33
Posts: 108
Joined: Mon Jan 13, 2020 3:24 pm

Re: ZX Spectrums problems : diagnostic software ?

Post by dizzy33 »

thanks a lot, but I hoped to find just a software to not buy a new interface again ...
Lardo Boffin
Posts: 2161
Joined: Sat Nov 26, 2016 2:42 am

Re: ZX Spectrums problems : diagnostic software ?

Post by Lardo Boffin »

dizzy33 wrote: Fri Jan 31, 2020 11:43 pm thanks a lot, but I hoped to find just a software to not buy a new interface again ...
I’m pretty sure this is what I downloaded:

https://github.com/brendanalford/zx-dia ... i/Firmware


I guess they need to run from ROM because if the RAM is dodgy you can’t load the software in the first place?
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: 5104
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: ZX Spectrums problems : diagnostic software ?

Post by 1024MAK »

If there is a hardware fault, a lot of the time it is caused by one (or more) of the ‘lower’ RAM chips (type 4116 or equivalent) failing. This is the memory between 16k and 32k.

As BASIC uses this RAM extensively for its own internal operation, a failure of this section of RAM can cause all sorts of strange symptoms.

So the best method of running diagnostic software is not to use any of the RAM until it has been tested. Hence all the good diagnostic software runs from ROM and therefore does not need any working RAM to perform a RAM test. There are many ways of running diagnostic software in ROM. Using an external interface which includes a ROM chip, cartridge slot (with suitable cartridge) or an interface that has modern EEPROM or flash ROM is the easiest method. There is also a design for a special diagnostic board. Alternatively it is possible to program (burn) a custom EPROM/EEPROM and if your ZX Spectrum has the BASIC ROM in a socket, put the ‘test’ EPROM/EEPROM in the socket.

However, here are some test programs that can be loaded into RAM and run...
PLEASE NOTE that I have not tested most of these myself, so can’t help with usage.

ZX Spectrum test programs

https://www.worldofspectrum.org/infosee ... id=0008884

https://www.worldofspectrum.org/infosee ... id=0022292

ZX Spectrum memory test

https://www.worldofspectrum.org/infosee ... id=0008674

https://www.worldofspectrum.org/infosee ... id=0023040

https://www.worldofspectrum.org/infosee ... id=0023074

ZX Spectrum loading test

https://www.worldofspectrum.org/infosee ... id=0011138

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.
dizzy33
Posts: 108
Joined: Mon Jan 13, 2020 3:24 pm

Re: ZX Spectrums problems : diagnostic software ?

Post by dizzy33 »

Thank you very much for these links, I will try them, but as you said, I understand now that it's better to run the test from external ROM.
I own a "DIVMMC Pro" which is running ESXDOS, I was wondering if it was possible to run a diagnostic software from the DIVMMC itself (via ESXDOS or any other solution), does anyone know ?

Here is a video on youtube but the guy did not give any clear explanations on how he did run the test its DIVMMC :
https://www.youtube.com/watch?v=wiPi8fVeYN8
The mantioned Velesoft website does not talk about this diagnostic test.
dizzy33
Posts: 108
Joined: Mon Jan 13, 2020 3:24 pm

Re: ZX Spectrums problems : diagnostic software ?

Post by dizzy33 »

Finally, a program found here worked :
https://www.planetemu.net/rom/sinclair- ... est-3-19xx

The first time I started it, I started the RAM test, and I had this message :
This Spectrum has faulty memory
Location 7F70
With 00 entered, reads - 00
With FF entered, reads - FF

Then I tried to restart the RAM test, but it is now always failing, I have been lucky that it worked once ...
Now I have to figure out where this RAM is physically on the motherboard.
Does anyone know how can I physically locate the faulty RAM, knowing that the utility says it is the location "7F70" ?

EDIT : I restarted the test several times, and the faulty location now changed to 7EF8 ...

Does anyone know how can I physically locate the faulty RAM, knowing that the utility says it is the location "7F70" or "7EF8" ?
I need to find a memory map which would link the RAM address with the physical location on the motherboard.
User avatar
1024MAK
Posts: 5104
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: ZX Spectrums problems : diagnostic software ?

Post by 1024MAK »

The RAM is a type known as DRAM - meaning Dynamic RAM. In the 1980s when the ZX Spectrum was designed, this was only widely available in chips that could only store only one bit wide data. So to store one 8 bit byte, you need EIGHT chips. Each chip stores one bit from the 8 bit wide CPU data bus.

In the ZX Spectrum (16K and 48K machines) the memory map is as follows:
Memory Map
Memory Map
Hence a 48K ZX Spectrum has sixteen DRAM chips.

So just an address only tells you if it is the ‘lower’ RAM or the ‘upper’ RAM. What you need to know, is which bits in the byte are failing (if it is a DRAM chip or chips) that are actually failing. The addresses that you quoted are both in the ‘lower’ RAM area. This would be why the ZX Spectrum is so unstable.

Note that there are other failures that ‘look like’ RAM failure, but are actually may be other problems.

Do you know how to program in BASIC?

The ‘lower’ (4116) DRAM chips are on the front left hand edge of the board (for 16K and 48K machines) as viewed with the rear connectors furthest from you.

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.
dizzy33
Posts: 108
Joined: Mon Jan 13, 2020 3:24 pm

Re: ZX Spectrums problems : diagnostic software ?

Post by dizzy33 »

Thanks a lot for your answer Mark. In fact another ram test with my tool gave me another address : 5F18.
So still in the lower RAM. This is confirmed by the fact that if I remove all the upper RAM chips (they are socketed), my Spectrum still has the same issue (random bugs on screen, sometimes crashes when playing or loading games).

I tried both guides to try to locate the defective RAM :
http://www.worldofspectrum.org/SpectrumRepairGuide/
https://www.projectavr.com/diagnosing-4 ... am-faults/ (this tuto seems to have errors in it ...)
But none of these tests are failing, the values returned by the POKEs are the expected ones.

Only the Sinclair test tool (from 1985) says I have defective RAM, and it always do, the only thing is that the defective address changes from time to time.
To what I understand, we cannot locate the RAM chip just by one address.
So I am stuck now, out of idea ...
I know how to program in BASIC, do you have some other tests for me ?

EDIT : I finally could run the ZX-diagnostics tests using "ownrom" but the result is the same : I have a message saying that I have a failing ram, and it display "1 345" or "01234567", so I can't say which one ... I think my only chance now is to order hardware diagnotic card ... But I need one which will tell me which RAM to replace, does anyone know a good diagnostic card which would tell me where exactly is located my faulty RAM ?
User avatar
1024MAK
Posts: 5104
Joined: Mon Sep 26, 2011 10:56 am
Location: Looking forward to summer in Somerset, UK...

Re: ZX Spectrums problems : diagnostic software ?

Post by 1024MAK »

So just to see how much RAM the BASIC system thinks it has, type this in:
PRINT PEEK 23732 + PEEK 23733 * 256

If you have all the RAM chips fitted, it should return 65535
If the ‘upper’ RAM is not fitted, e.g. it is running as a 16k machine, it should return 32767

If the machine is stable enough to type either of these in, give them a whirl:

Code: Select all

48K ZX Spectrum quick ‘n simple RAM test
1 CLEAR 24999
2 FOR a=25000 TO 65535 STEP 250
3 PRINT AT 0,0;a: POKE a,0: LET d=PEEK a: IF d<>0 THEN GO SUB 8
4 POKE a,255: LET d=PEEK a: IF d<>255 THEN GO SUB 8
5 NEXT a
6 PRINT “done”: STOP
8 PRINT “error at “;a;” “;d
9 RETURN

Code: Select all

16K ZX Spectrum quick ‘n simple RAM test
1 CLEAR 24999
2 FOR a=25000 TO 32767 STEP 250
3 PRINT AT 0,0;a: POKE a,0: LET d=PEEK a: IF d<>0 THEN GO SUB 8
4 POKE a,255: LET d=PEEK a: IF d<>255 THEN GO SUB 8
5 NEXT a
6 PRINT “done”: STOP
8 PRINT “error at “;a;” “;d
9 RETURN

Code: Select all

Lower RAM test, test one address only looking for a bit error
1 CLEAR 24999
2 LET a=25001
3 PRINT AT 0,0;a: POKE a,0: LET d=PEEK a: IF d<>0 THEN GO SUB 8
4 POKE a,255: LET d=PEEK a: IF d<>255 THEN GO SUB 8
5 GOTO 3
8 PRINT “error at “;a;” “;d
9 RETURN
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