Monday, 5 June 2017

DMA HARD DRIVE TEST PROGRAM


Some time ago in my DMA pages I wrote about a hard drive testing program that I used to test the DMA chips with drives such as ultrasatan.This program was custom wrote for me by ultrasatan's creator Jookie!

The program wasn't intended to be released into the wild, but with Jookies permission, he is fine with my releasing it as it may well help others.  This has only been tested on a STE with ultrasatan!

The program can do a loop test, which will loop though write-read-verify constantly. It will also allow each sector to be written to up to 255 times each pass.  Note that for "flash storage" 255 writes per sector is a lot, so be warned.   Generally if nothing flags up as a error, then likely everything is fine.

I also requested a second test which will write a known string to each sector. The idea here is that the SD card will be written to with known data, then the SD card can be placed into a SD reader on the PC, and using a suitable sector viewer program, you can read each sector and see if it looks like this..


The first few bytes of the sector will list the sector number in this case 00 00. The same data will be repeated but will show 00 01  etc etc.  The ACSI pattern repeats over and over each sector.

My findings (in a nut shell) were that as above, there was no WRITE READ failures at all. Believe me when I say I tried for hours to see if anything would break. It never did.  The only time I saw a error was when  my scope probe slipped and shorted out 2 datalines on the DMA, causing errors. So I know the software works as intended ;)

Interesting thing is, as soon as I go to desktop and save desktop.inf, or creator a couple of folders, the drive gets trashed totally which is the fault most people see with drive corruption.  So is the DMA faulty or not ? well actually not. DMA "failure" is nothing more than "combinational noise" on the bus which is what I have been saying over and over for the past few years now.

You can literally "break" the DMA circuit many ways, bad PSU causing noise on everything, To unstable RAM or even the brand of ROM's used.   My findings also show that machines with a Motorola CPU are almost guaranteed to fail, and while more testing needs doing with the ST brand CPU, machines don't seem to fail at all.

With so many brands of RAM, ROM, CPU, PSU, motherboard revisions etc, it has created a huge mash up of hardware to debug over many many machines involving several people who have also confirmed my findings already.

I have said for a long time that there have been many ways to solve this issue, though one single solution has never worked for everyone as literally everyone's machine has different hardware combos.  Just basic stuff such as RAM and ROM is enough to break the DMA on some machines. The list is endless.  Everything contributes to noise on the bus. Some machines suffer more than others. So while swapping the PSU may work for someone, it may not work for someone else.

So far my research has found the CPU itself is one of the root causes.  Simply changing the CPU with a 68HC000 has generally proven to solve problems on all the machines tested so far.

Of course there may be machines which have really bad noise where further action may be needed to solve the issues.  Or the DMA IC might genuinely be busted. Though this program by jookie will easily let people know if there is a actual DMA issue or not.  Of course this is assuming the hard drive is known good to start with as the drive itself could be at fault, not the STE.

So HUGE THANKS to Jookie for creating this really useful diagnostic tool for me!

For more information see my website below.
http://www.exxoshost.co.uk/atari/last/DMAfix/index.htm

HD TEST SOFTWARE
http://www.exxoshost.co.uk/atari/last/DMAfix/hdtest3.zip

68HC000 CPU
https://www.exxosforum.co.uk/atari/store2/#0092

Jookies website
http://joo.kie.sk/


3 comments:

  1. "Simply changing the CPU with a 68HC000"

    Is that because of its lower voltage requirements causing less stress on everything else along the way?

    Kind of moving everything into a tolerable range?

    ReplyDelete
  2. Its all explained on my DMA page ;)

    ReplyDelete
  3. I can't figure out how to read the output from the loop test. What do the stars, Ws and Rs mean? What does it look like when it reports an error?

    ReplyDelete