Jump to content
IGNORED

Comprehensive RAM Test programs?


Rybags

Recommended Posts

Just wondering... do any RAM test programs exist that do an exhaustive test on the A8 and can detect various expansions?

 

ie - like the Memtest type programs on PC that do full inversion, rolling ones etc from a stand-alone environment.

 

Of course, interested in disk-loadable ones, not cart-based.

 

I suppose if nothing's out there, might have to think about writing one. I also imagine VBXE hasn't been catered for yet either.

Link to comment
Share on other sites

Just wondering... do any RAM test programs exist that do an exhaustive test on the A8 and can detect various expansions?

 

ie - like the Memtest type programs on PC that do full inversion, rolling ones etc from a stand-alone environment.

 

Of course, interested in disk-loadable ones, not cart-based.

 

I suppose if nothing's out there, might have to think about writing one. I also imagine VBXE hasn't been catered for yet either.

Sounds interesting. If there's nothing suitable out there, it would be a good challenge.

Link to comment
Share on other sites

The kind of things I was thinking of. From the homepage of MemTest86 http://www.memtest.org/#downcode - Readme file in the second source archive:

 

Test 0 [Address test, walking ones, no cache]

Tests all address bits in all memory banks by using a walking ones

address pattern. Errors from this test are not used to calculate

BadRAM patterns.

 

Test 2 [Moving inversions, ones&zeros]

This test uses the moving inversions algorithm with patterns of all

ones and zeros.

 

Test 4 [Moving inversions, random pattern]

Test 4 uses the same algorithm as test 1 but the data pattern is a

random number and it's complement. This test is particularly effective

in finding difficult to detect data sensitive errors. A total of 60

patterns are used. The random number sequence is different with each pass

so multiple passes increase effectiveness.

 

Test 7 [Random number sequence]

This test writes a series of random numbers into memory. By resetting the

seed for the random number the same sequence of number can be created for

a reference. The initial pattern is checked and then complemented and

checked again on the next pass.

 

Test 9 [bit fade test, 90 min, 2 patterns]

The bit fade test initializes all of memory with a pattern and then

sleeps for 90 minutes. Then memory is examined to see if any memory bits

have changed. All ones and all zero patterns are used. This test takes

3 hours to complete.

 

There's also a strategy of writing values to adjacent RAM addresses to ensure they don't alter others. Although exact memory layout on the chip can mean adjacent addresses aren't necessarily phyically adjacent.

 

Also, do the addresses we use tranlate directly to Row:Column? Doesn't the Atari jumble the address to row/column mappings to try and distribute the load among rows more evenly?

Link to comment
Share on other sites

The kind of things I was thinking of. From the homepage of MemTest86 http://www.memtest.org/#downcode - Readme file in the second source archive:

 

Test 0 [Address test, walking ones, no cache]

Tests all address bits in all memory banks by using a walking ones

address pattern. Errors from this test are not used to calculate

BadRAM patterns.

 

Test 2 [Moving inversions, ones&zeros]

This test uses the moving inversions algorithm with patterns of all

ones and zeros.

 

Test 4 [Moving inversions, random pattern]

Test 4 uses the same algorithm as test 1 but the data pattern is a

random number and it's complement. This test is particularly effective

in finding difficult to detect data sensitive errors. A total of 60

patterns are used. The random number sequence is different with each pass

so multiple passes increase effectiveness.

 

Test 7 [Random number sequence]

This test writes a series of random numbers into memory. By resetting the

seed for the random number the same sequence of number can be created for

a reference. The initial pattern is checked and then complemented and

checked again on the next pass.

 

Test 9 [bit fade test, 90 min, 2 patterns]

The bit fade test initializes all of memory with a pattern and then

sleeps for 90 minutes. Then memory is examined to see if any memory bits

have changed. All ones and all zero patterns are used. This test takes

3 hours to complete.

 

There's also a strategy of writing values to adjacent RAM addresses to ensure they don't alter others. Although exact memory layout on the chip can mean adjacent addresses aren't necessarily phyically adjacent.

 

Also, do the addresses we use tranlate directly to Row:Column? Doesn't the Atari jumble the address to row/column mappings to try and distribute the load among rows more evenly?

 

I wrote a memtest on PC a long time ago. RAM chips use powers of two so even if you mumble jumble rows/columns you can still get undetectable errors if you just r/w memory consecutively. I used the idea of prime number increments so for a 64K RAM block, start from say location 3 and add 69001 to the address and then check that and so on. That way you will traverse all of memory before you end up with the same location again.

Link to comment
Share on other sites

If the RAM is faulty, you won't be able to run anything from RAM. RAM-test programs on old computers need to be in ROM, and even then they often don't work.

 

Show the code to test ram using only ROM (I've been doing some 6502 coding):

 

LDX #0

LDA #TestPattern

Loop: STA 0,X

LDY #0

Delay: DEY

BNE Delay

CMP 0,X

BNE BadRAM

Inx

Bne Loop

;Now it looks like you need to repeat the above for every page so may hog up some ROM space; any better ideas?

 

BadRAM: SEC

RTS

Link to comment
Share on other sites

Hello Rybags

 

Try Pagefind, IIRC by Torsten Karwoth. It's got a short and a long test. The long test can take hours depending on how big your memory extension is. 1MB takes hours. Most of the time, the long test finds errors the short one doesn't find, but sometimes it's the other way around.

 

Pagefind runs in BASIC, but loads a com-file. I'm not sure why.

 

XLsearch will probably be able to tell you where you'll find Pagefind.

 

Problem with most extended memory testers is that they don't/can't tell you what's going wrong and where.

 

sincerely

 

Mathy

Link to comment
Share on other sites

I don't know what full inversion means (I'd be interested to learn)...but I use this to test my various expansions. I'll post it here as it took me quite a while to find with Google when I needed it last. It's XRAM from Satantronic. It's the only non DOS file on the disk.

 

Well,

while XRAM 0.21 is quite good, I would not call it universal. Afaik, it only tests the XE-compatible ramdisks that use port B ($D301). It does not test for Axlon and/or compatible 400/800 ramdisks, nor Mosaic and/or compatible 400/800 ramdisks and err, it also does not test e.g. Klaus Peters Megaram 3 which not only uses $d301 but also $d600 and I am sure there are many other ram enhancements which won`t be detected by XRAM...

 

There is System-Info by KMK which afaik also tests for Axlon and compatible upgrades, there is Memdrv which tests for $d301 and $d600 ramdisks and many other ramtest programs, but there does not seem to be a universal ramtest program. How about the RAM enhancements via the PBI or the cart. port + ECI , how about the RAM enhancements on cart., etc. etc. ?!? This could be a cool project for someone willing to program such a thing (universal ramtest) and update it frequently with the goal to detect as many different ram enhancements as possible...

 

Attached you will find my old Systest (ramtest) and Sysinfo (SI) progams that I have currently in my collection (I did not update them for quite some years, so don`t be surprised to find old versions there)...

-Andreas Koch.

sys_pgms.zip

Link to comment
Share on other sites

some time ago i was developing dram based memory expansion - under satantronic xram test all was okay, but certain programs in certain circumstances would crash

result was new diagnostic program that would write and read random banks with randob data and read it back on random interval - then weakpoinst of the design surface

saing that if ram is bad then it wont work at all is absolutly untrue

this would be the simplest case, thing is, real life is not that black and white, and number of shades of grey are infinite

unfortunatly - this program was lost - maybe Vidol has it as he was the author - i just knew where to look for

 

currently there are some IDEa/SpeedDrive diagnostic programs written by Seban/slight that would check ram content more carefully

there was some port-b expansion ram test developed on their cores, but its unfinnished

hopefully it will be till ultimate1mb development will be finnished

Link to comment
Share on other sites

If the RAM is faulty, you won't be able to run anything from RAM. RAM-test programs on old computers need to be in ROM, and even then they often don't work.

 

Show the code to test ram using only ROM (I've been doing some 6502 coding):

 

LDX #0

LDA #TestPattern

Loop: STA 0,X

LDY #0

Delay: DEY

BNE Delay

CMP 0,X

BNE BadRAM

Inx

Bne Loop

;Now it looks like you need to repeat the above for every page so may hog up some ROM space; any better ideas?

...

 

Yeah, exhaustively check zero page and then use it to build 16-bit ptr like STA (0),Y to check rest of the RAM.

Link to comment
Share on other sites

The objective in mind is to worry primarily about RAM aside from the base 48K that practically everything uses - of course, that'll get a workout too though.

 

If your system has bad RAM in that region, then it'll likely manifest itself anyway and you won't need too many guesses to work out what's wrong.

 

On the other hand, if you've got 320K, or one of the upcoming larger ones, or VBXE, then you're not necessarily going to find out in short order if there's any problems.

Edited by Rybags
Link to comment
Share on other sites

There is definitely a lack of such memory test program. The xram is indeed a nice helper for basic tests and bank detection, but it is not suitable for deep testing. I believe it uses only a simple read/write pattern instead of sophisticated algorithms neded for a proper RAM testing.

Link to comment
Share on other sites

under satantronic xram test all was okay, but certain programs in certain circumstances would crash

I've been through this, too... Not only with my own designs, but also with several other designs (a lot of the older designs are utterly broken, BTW).

 

Several RAM upgrades fail if you quickly switch them on/off and/or change banks and/or ANTIC is accessing the extended RAM while switching.

 

A really good test for these conditions is the test #1 ("Finde Page-Sequenz Tabelle") in PAGEFIND.BAS. This test detects the available banks and also tests for timing problems. If the test finishes successfully you should read "Timingverhalten: bei 65536 Versuchen gab es 0 Fehler" (0 errors in 65536 runs).

 

I just noticed that I uploaded an ATR with "PAGEFIND.BAS" some 5 years ago to my temp space, so here's the link: http://www.horus.com/~hias/tmp/ramdisktest.zip

 

Please note: this program only works with MyDOS (it uses a MyDOS XIO to load the binary assembler code), just boot the ATR with basic enabled and then type RUN "D:PAGEFIND.BAS".

 

so long,

 

Hias

Link to comment
Share on other sites

Hello Rybags

 

Try Pagefind, IIRC by Torsten Karwoth. It's got a short and a long test. The long test can take hours depending on how big your memory extension is. 1MB takes hours. Most of the time, the long test finds errors the short one doesn't find, but sometimes it's the other way around.

 

Pagefind runs in BASIC, but loads a com-file. I'm not sure why.

 

XLsearch will probably be able to tell you where you'll find Pagefind.

 

Problem with most extended memory testers is that they don't/can't tell you what's going wrong and where.

 

sincerely

 

Mathy

 

Hey Mathy,

 

That pagefind program is great indeed. I might be wrong, but as far as I'm sure it's on the 130XE + assembler initialisation disk.

 

Greetz.

Marius

 

EDIT: I did not saw the post above me... skip mine.

Link to comment
Share on other sites

  • 5 years later...

Sorry for digging up this old thread, but I'm in need of a simple tester that will test an NTSC Atari 800 with a 16 and 3rd party 32KB board in it.

 

Would it be possible to have a simple tester that can run in 16kb of ram, test the other available ram, then when successful, copy itself to that location and jump to there, then it will continue with the RAM it previously occupied?

 

I'm having an issue with some garbling on the far right side of the screen in e.g. frogger (scrolls sideways) but you don't see the same problem in Galaxian except that one digit of player 2's highscore is missing.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...