home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / vol_300 / 322_01 / ramtest2.doc < prev    next >
Text File  |  1990-08-06  |  3KB  |  77 lines

  1.          RAM TEST ROUTINES FOR DETECTING STUCK-AT FAULTS
  2.          ===============================================
  3.  
  4.                                by
  5.  
  6.                      Chaiyos Ruengsakulrach
  7.                               and
  8.                         Dean Lance Smith
  9.               Department of Electrical Engineering
  10.                     Memphis State University
  11.                        Memphis, TN 38152
  12.                          (901)-678-3253
  13.                          (901)-678-2175
  14.  
  15.  
  16.      The RAM test routines were programmed using the MATS and
  17. MATS+ algorithms.  The routines were compiled with a Turbo C
  18. compiler (Version 2.01) that runs on MS-DOS on an IBM PC/XT or
  19. compatible computer.
  20.  
  21.      The following Turbo C functions were called by the program.
  22.  
  23.      - Function CLRSCR() in the library conio.h clears the
  24. screen.
  25.      - Function GOTOXY(x, y) in the library conio.h puts the
  26. cursor at column x, row y.
  27.      - Function WHEREX() in the library conio.h gives horizontal
  28. cursor position within a window.
  29.      - Function WHEREY() in the library conio.h gives vertical
  30. cursor position within a window.
  31.      - Function MK_FP(segment, offset) in the library dos.h
  32. creates a far pointer from a segment register value and the
  33. offset or pointer that works with the segment value.
  34.  
  35.      Huge pointers were used in the routines.  Huge pointers are
  36. 32 bits long and contain both a segment address and an offset.
  37. The segment address ranges from 0000 to FFFF in hexadecimal.  The
  38. offset automatically wraps around every 16 values between 0000
  39. and 000F in hexadecimal since a segment can start every 16 (10 in
  40. hexadecimal) bytes.
  41.  
  42.      Functions mats() and matsp() in the software implement the
  43. MATS and MATS+ algorithms.  These two functions were written to
  44. be as general purpose as possible.  The routines are well
  45. documented to help the reader understand the routines.  The
  46. function that gets memory locations from the user accepts only
  47. hexadecimal characters.
  48.  
  49.      The RAM test program begins by displaying a menu and
  50. prompting the user to select the algorithm (MATS or MATS+) to
  51. test RAM.  Then the software requests the user to supply the
  52. starting and ending addresses of the RAM to be tested.  The user
  53. must type both the segment and offset of each address in
  54. hexadecimal.  The software verifies that the starting address
  55. equals or is less than the ending address. After getting both a
  56. valid starting and ending address, the software tests memory
  57. using the algorithm selected by the user.  The software displays
  58. the address and the contents of any faults detected.  The program
  59. also reports the total number of stuck-at faults that are
  60. detected.  If no faults are detected, the software displays a no-
  61. fault message.
  62.  
  63.  
  64. USER CAUTION
  65. ============
  66.  
  67.  
  68.      Before testing memory, a user should be aware of some
  69. special memory locations in an IBM PC/XT or compatible computer.
  70. Some memory areas are used for an interrupt vector table,
  71. interface routines, the operating system, the test software,
  72. video RAM, ROM, etc.  Some of these areas, such as the RAM
  73. occupied by MS-DOS, must be left undisturbed to insure the test
  74. program operates properly.  Therefore, a  user has to make sure
  75. that the memory region to be tested does not cover the RAM
  76. occupied by MS-DOS.
  77.