Quick and dirty RAM test for CPC

Started by gerald, 19:07, 12 August 15

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

gerald

Hi,

I've just made a small RAM diagnostic ROM for the CPC. It fully run from ROM and will let you know if the main bank RAM are OK or not.
To use it :
- On all CPC, you will need a LowerRom board or an XMEM and program the provided .bin file. Use the xmem in boot mode.
- On a plus, you can put the .bin or .cpr in a C4CPC free slot and start from it, or program the .bin on an EPROM in a salvaged cartridge.

The program first test the display area (C000-FFFF), should see something like :

The content of the screen will change during the test. So if nothing move, more than the ram may be wrong.
Something else is wrong if you do not see that screen at all.

Then it will display the results :
If all is good, the band will be all green :


In case of error, the bad data bit will displayed red

In this example, the 4 LSB bit are wrong.

Bryce

#1
Unfortunately I can only press the like button once, but it deserves several. What a great tool. Unfortunately many won't have a second option to get it onto a Lower ROMBoard or x-mem, but for people like me, it will get a permanent place in my "toolbox".

Bryce.

Edit: Would it be possible to report down to the bit level? That way you know exactly what IC you need to swap :)

gerald

#2
Quote from: Bryce on 23:18, 12 August 15
Unfortunately I can only press the like button once, but it deserves several. What a great tool. Unfortunately many won't have a second option to get it onto a Lower ROMBoard or x-mem, but for people like me, it will get a permanent place in my "toolbox".

Bryce.

Edit: Would it be possible to report down to the bit level? That way you know exactly what IC you need to swap :)
It is reporting to the bit level, but the pictures are only there as examples.  ;)
New one where all even bits are failing


Each bit is displayed during 8 raster lines.

Bryce

Now I can give it a second like too :)

Bryce.

skywalky

How can I use this test in a CPC 6128?
Ok, with a Romboard  :picard:

The Last Bandit

Very very nice indeed.  ;D 


Just out of curiosity what algorithms are you using ? Marching 1/0 etc ?

gerald

Quote from: The Last Bandit on 22:56, 10 November 15
Very very nice indeed.  ;D 


Just out of curiosity what algorithms are you using ? Marching 1/0 etc ?
It does 4 passes of fill and check with FF/AA/55/00 pattern. This is more that enough to detect bad devices.
The code does not the use any RAM at all : just reigisters to store data and no call (no stack).



Munchausen

This is great :)

Are you counting bits 0-7 or 1-8 (0-7 I guess, just wanted to check...)?

gerald

Quote from: Munchausen on 11:57, 12 November 15
This is great :)

Are you counting bits 0-7 or 1-8 (0-7 I guess, just wanted to check...)?
7-0  ;)

Munchausen

Quote from: gerald on 12:00, 12 November 15
7-0  ;)

Cool :) direction doesn't matter... as you told us the even bits were bad in that image, that is enough information :)

Munchausen

I have a board with bad RAM I can use this on immediately...

VincentGR

This is amazing!!!

Can it be used direct to cpc's mobo or the rom board is the only option?


gerald

Quote from: VincentGR on 23:01, 12 November 15
This is amazing!!!

Can it be used direct to cpc's mobo or the rom board is the only option?
You can use it in place of the OS ROM. But the goal is to debug, no to replace  ;)
The simple board to use is the LowerROM one.

gerald

Note also that this test may not work when damaged RAM are shorted to a point the voltage fall low enough to make code execution unreliable.
But in this case, the RAM are hot enough to spot them ;D

||C|-|E||

Thank you! It is actually really cool!  :D

Audronic


@gerald
Would it be possible to make another to test Bank1 on a CPC6128, Please


Thanks   Ray
Procrastinators Unite,
If it Ain't Broke PLEASE Don't Fix it.
I keep telling you I am Not Pedantic.
As I Live " Down Under " I Take my Gravity Tablets and Wear my Magnetic Boots to Keep me from Falling off.

Bryce

If Bank 0 is working a Bank 1 RAM test can be done in BASIC.

Bryce.

Kris

Very good idea; any chance that you continue to develop this soft ? (integration of the RAM size, detail on address # tested etc...)
Thank you

gerald

Quote from: Kris on 11:11, 13 November 15
Very good idea; any chance that you continue to develop this soft ? (integration of the RAM size, detail on address # tested etc...)
Thank you
My intention was to go a bit further than just the base RAM test, but >I have no roadmap yet.

TFM

#19
Quote from: Kris on 11:11, 13 November 15
Very good idea; any chance that you continue to develop this soft ? (integration of the RAM size, detail on address # tested etc...)
Thank you

For assessing RAM size you can use this one:

http://cpcwiki.eu/imgs/2/28/E-RAM_Test_2014.zip

It does not check the RAM, but tells you how much RAM your CPC can access. Upper limit currently 4160 KB.[nb]Also you can use the 'OS Infos' Utility from the FutureOS Utility Disc (version 7.10.2015) to show occupied / connected RAM in a graphical way.[/nb]


TFM of FutureSoft
Also visit the CPC and Plus users favorite OS: FutureOS - The Revolution on CPC6128 and 6128Plus

Kris

I know this soft; but the idea is to have all these tools into a single soft ;)

Bryce

Hi @gerald,
      I know it's an old thread, but tonight I used this RAMTest for the first time where I didn't know what IC was damaged. And it gave me very strange results. The computer (standard 6128) reported that D4 (IC131) was damaged = All green, red stripe for D4. However, as soon as I swapped D4, it then reported all red except D4 (green stripe). Is there any reason why the program might react this way?

Bryce.

gerald

Quote from: Bryce on 19:50, 03 December 16
Hi @gerald,
      I know it's an old thread, but tonight I used this RAMTest for the first time where I didn't know what IC was damaged. And it gave me very strange results. The computer (standard 6128) reported that D4 (IC131) was damaged = All green, red stripe for D4. However, as soon as I swapped D4, it then reported all red except D4 (green stripe). Is there any reason why the program might react this way?

Bryce.
My guess is that the other RAM are damaged as well. Why they did not show as such on the 1st test is a mystery.
I've just had a look at the test code and I realize that the code will not detect an addressing error (address bus stuck). That might be the case here.
I'll see how I can cover this case.

Bryce

#23
Cool. Thanks for the feedback. I intend swapping all 8 anyway just to be sure. Unfortunately it's "one of those" CPC's where the build quality is far from ideal. The RAM ICs are all over the place! The pins on one side of all RAMs are just barely in the board and only soldered at the tips. The ICs are at about a 20° angle to the PCB.

Bryce.

Edit: Turned out that there was a broken track on the PCB that was sometimes making contact and sometimes wasn't. As soon as I bridged the break the other RAMs reported as good again, so only D4 was broken in the end.

00WReX

Another successful diagnosis by Geralds excellent RAM test program.

I had a GX4000 that I ordered from Germany arrive today, It was the console only, and sold as 'Untested for parts or repair'.
I was not expecting much, and no surprise when I tested it and nothing but a blank screen (the LED lit nicely though  ;D ).

Anyway, first thing was to plug the C4CPC in with the RAM test prog in a slot selected by the dip switch.

The rest is in pictures... :D

[attachimg=1]
[attachimg=2]
[attachimg=3]
[attachimg=4]
[attachimg=5]
[attachimg=6]
The CPC in Australia...
Awa - CPCWiki

Powered by SMFPacks Menu Editor Mod