Rybags Posted May 7, 2010 Share Posted May 7, 2010 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. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 7, 2010 Share Posted May 7, 2010 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. Quote Link to comment Share on other sites More sharing options...
Atari8guy Posted May 7, 2010 Share Posted May 7, 2010 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. Mydos 4.53.atr Quote Link to comment Share on other sites More sharing options...
Rybags Posted May 7, 2010 Author Share Posted May 7, 2010 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? Quote Link to comment Share on other sites More sharing options...
atariksi Posted May 7, 2010 Share Posted May 7, 2010 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. Quote Link to comment Share on other sites More sharing options...
Lazarus Posted May 7, 2010 Share Posted May 7, 2010 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. Quote Link to comment Share on other sites More sharing options...
Divya16 Posted May 7, 2010 Share Posted May 7, 2010 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 Quote Link to comment Share on other sites More sharing options...
Divya16 Posted May 7, 2010 Share Posted May 7, 2010 Sorry, no RTS as that would use the stack which is in RAM. So RTS would be just a print routine showing error message. Quote Link to comment Share on other sites More sharing options...
Mathy Posted May 7, 2010 Share Posted May 7, 2010 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 Quote Link to comment Share on other sites More sharing options...
+CharlieChaplin Posted May 7, 2010 Share Posted May 7, 2010 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 Quote Link to comment Share on other sites More sharing options...
candle Posted May 7, 2010 Share Posted May 7, 2010 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 Quote Link to comment Share on other sites More sharing options...
atariksi Posted May 8, 2010 Share Posted May 8, 2010 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. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 8, 2010 Share Posted May 8, 2010 A nice diagnostic cart would be useful. Quote Link to comment Share on other sites More sharing options...
Rybags Posted May 8, 2010 Author Share Posted May 8, 2010 (edited) 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 May 8, 2010 by Rybags Quote Link to comment Share on other sites More sharing options...
ctirad Posted May 9, 2010 Share Posted May 9, 2010 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. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted May 9, 2010 Share Posted May 9, 2010 I'm up for having a go at one which will handle VBXE, etc, once I've finished a couple of current projects. I'm sure someone else will beat me to it, though. Quote Link to comment Share on other sites More sharing options...
HiassofT Posted May 9, 2010 Share Posted May 9, 2010 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 Quote Link to comment Share on other sites More sharing options...
Marius Posted May 11, 2010 Share Posted May 11, 2010 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. Quote Link to comment Share on other sites More sharing options...
Marco! Posted October 11, 2015 Share Posted October 11, 2015 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. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.