home *** CD-ROM | disk | FTP | other *** search
/ Phoenix CD 2.0 / Phoenix_CD.cdr / 24b / mem_help.zip / MEMORY1.DOC next >
Text File  |  1988-05-03  |  5KB  |  116 lines

  1. This is a discussion on memory errors and fixes I participated in on
  2. the Midwest's best BBS, EXEC-PC, (414)964-6330.
  3.  
  4. t: ALL
  5. s: PARITY ERROR SCHTUFF
  6.  
  7.      cc: TOM PETERS
  8.      cc: ROBERT SCRIP
  9.  
  10. I would like to know if there is a way to determine which ram chip is bad
  11. based on the error message that is displayed when a NMI error occurs.
  12. I have read a specific example of calculating this, but am not quite sure
  13. how to apply that specific example to a more general case.  Any help?
  14. At least two people (including me) would really like to know a GENERAL
  15. FORMULA.  Also, how does one tell which is the B0 chip, which is the parity
  16. chip, which is the B7 chip and so on?
  17. ---------------
  18.  
  19. c: HARDWARE  #975  05-03-88  11:17 
  20. f: TOM PETERS (LEADER)
  21. t: JIM NICKEL
  22. s: R: PARITY ERROR SCHTUFF  Reply to #969
  23.  
  24. Well, its hard to determine generally what chip is bad, given a message
  25. from your bios saying you have bad memory. But it can be done. 
  26.  
  27. Memory is arranged in an array 9 x n. More about n later. Usually the
  28. physical layout of the board gives good clues about which given 9 chips
  29. form a "column" or word. If you can turn the board so you have multiple
  30. coulumns of 9 chips, it wil be easier.
  31.  
  32. NOTE: Some memory boards have no parity bit, so substitute 8 for 9.
  33.  
  34. Now, n. Each column represents 16, 64, or 256k. Nobody uses 4116 rams
  35. anymore, so I'll address (sorry about the pun) only 64k (4164) and 256k
  36. (41256) chips. Run CHKDSK if you can and get the figure for BYTES TOTAL
  37. MEMORY. Or if you know how much memory should be in there, use that figure.
  38. To convert the BYTES TOTAL MEMORY figure to k, divide it by 1024. Example:
  39. mine says 655360 BYTES TOTAL MEMORY, divide by 1024 gives 640k.
  40.  
  41. Now, try to look at the arrangement of chips on the board and get it to
  42. make sense to you in terms of enough 9 chip columns to make up the ammount
  43. of memory you think you have. I have 3 columns of 41256 chips, which would
  44. seem to be 768k, but DOS ignores anything above 640k. You could also have
  45. 10 columns of 64k chips (4164's) altho I doubt it.
  46.  
  47. Often you will find (in a 640k setup) 2 columns of 256k chips (that's 512)
  48. plus two columns of 64k chips (total: 640k). You can mix them as long as
  49. the larger chips come first.
  50.  
  51. Now, which chip went bad? Really, the most common answer is: The one with
  52. the bent pin, or the one that's partialy popped out of its socket, or the
  53. one with a staple draped over its connections. Or the one I just installed
  54. backwards. When we get chips installed right and no physical damage occurs
  55. to them, they tend to work right for quite a while. So look for the
  56. obvious first.
  57.  
  58. To find a chip that's gone bad, you need two pieces of information:
  59. 1. At what address was the failure?
  60. 2. What bit pattern was written and what was read back? (and what is the
  61. XOR of the two?)
  62.  
  63. The address is nearly always given by error messages. Its usually a hex
  64. number, e.g. 40000h. Convert it to decimal, 262144, and divide by 1024, to
  65. get a value in k: 256. So, somewhere between the 256k mark and the end of
  66. the size of that column of chips, there is a bad one.
  67.  
  68. If you had 64k chips at that address, you'd be in row 4 (numbering from 1).
  69. Right? 256k/64k=4 rows. Since they are 64k chips, any error from 40000h to
  70. 50000h is in row 4.
  71.  
  72. If they were 256k chips, an error at the 256k mark would have to be in the
  73. second column.
  74.  
  75. Hex addresses and conversions:
  76. 64k    10000h
  77. 128k   20000h
  78. 192k   30000h
  79. 256k   40000h
  80. 320k   50000h
  81. 384k   60000h
  82. 448k   70000h
  83. 512    80000h
  84. 576k   90000h
  85. 640k   A0000h
  86. 704k   B0000h
  87. 768k   C0000h
  88.  
  89. Now, maybe your bios gives paragraph:offset form of the address. It would
  90. look like 4000:0000 or something. That's easy to convert to a linear
  91. address, just take the paragraph part, add a zero, and add the offset in.
  92. You have to know how to add in hexadecimal. E.g. 4030:0020
  93. 40300
  94.  0020 +
  95. -----
  96. 40320     < --- Linear address. Convert it to k with the table above.
  97.  
  98. Another example:
  99. 2020:0C80, 2020 plus a zero is 20200:
  100. 20200
  101.  0C80 +
  102. -----
  103. 20E80     < -- linear address. If you have to do a lot of this, go out
  104. right now and get a casio calculator that does hex/dec conversions and
  105. arithmetic. Or easier to use is the TI LCD programmer II calculator. We sel
  106. a lot of them to programmers.
  107.  
  108. I'll continue in another message with help in pinpointing the chip that's
  109. bad. Good luck,
  110.  
  111. Thomas M. Peters, 
  112. Stevenson's Office Equipment
  113. 4517 N. Oakland Ave
  114. Milwaukee, WI   53211   414-964-6330 (voice)
  115.  
  116.