TIP: Click on subject to list as thread! ANSI
echo: 80xxx
to: ALL
from: CRAIG HART
date: 1997-10-23 14:26:00
subject: Memory testing

Hi..
I'm currently writing a RAM tester in FlatRealMode. I have my code working 
well, based on FRM entry code found in the Assembly Snippets archive,
and an alogarythm found in "Memtest-86" (Linux program) which works as 
follows:
  Turn off cache, turn on writethru, then WBINVD.
  repeat the following 5 times, for each dword to be tested:
{
  Set all bits in dword to be tested to 0, excpt the bit under test. Set the
  bit to be tested to '1'.
  Read-memory & verify it read OK.
  Perform logical NOT on the memory dword. Ie all 1's become 0, all 0's
  become 1.
  Read-memory & verify all bits changed state properly.
}
In practice I use XCHG eax,fs:[memlocn] to do both the NOT and the memory 
read in one operation. This makes the code faster, which is apparently very 
important... if one delays reading the memory, after having set it, a bit too 
long the bad bit is never seen.
This works rather well, detecting a bad memory bit in a known bad SIMM module 
I have (for this very purpose), which HIMEM.SYS also objects to, however this
alogarythm is only one of many ways to write a RAM tester.
I'm looking for other alogarythm's to try. Can anyone describe or refer me to 
any other RAM tester source code/alogarythm descriptions? I can take internet 
URL's if you have them... Information on this topic isn't easily gleaned, and 
so far a good read of what few memory manufacturer's data sheets I have has 
found very little.
I am especially keen to try and devise a test that can detect the sitation 
where the user fits two different SIMM modules to a single bank - on their 
own each SIMM works OK, but as a pair in the same bank, they fail. (for 
example, one 80ns & one 60ns SIMM, or one EDO + one NonParity SIMM). This is 
a common enough mistake and will cause major instability problems for 
linux/win95/NT users.
At the moment the source code is a hybrid of TASM (for getting FlatRealMode 
setup), Turbo Pascal (mundane screen drawing tasks, etc) and BASM (TP's 
built-in Assembler) for the actual 32-bit testing. I'm sure a full 32-bit 
protected mode version could be produced with some work -- I just hate 
writing boring things like screen drawing code in assembler, espescially 
since this program is very much in the 'lets try this idea' stage, rather 
then the 'we know what we're doing, so lets make the final program' stage.
I would very much like to hear from anybody with any thoughts on this 
bject!
    Regards, Craig
--- FMail/386 1.20+
---------------
* Origin: Communications Barrier BBS (03) 9585 1112, 24hrs (3:632/533)

SOURCE: echomail via exec-pc

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.