			AIS/3200 Diagnostic-Monitor
				12/4/84

    The AIS/3200 Diagnostic-Monitor consists of a separate PROM set, containing
the standard AIS/3200 RAM-Monitor and AIS/3200 Ramless-Monitor.  Normally, the
AIS/3200 system will boot, size memory, and enter the RAM-Monitor.  At this
point, the 'X' command will exit to the Ramless-Monitor, from which board-level
diagnostics may be executed.  If memory is non-existent, bad, or the backplane
is not connected at Hardware Reset (or power-up), the Ramless-Monitor is
entered directly.  The command 'FA0000 G' will jump to the Hardware Reset entry,
and should be used in order to bring back the RAM-Monitor.

    The following commands function in the AIS/3200 Diagnostic-Monitor PROMS
but NOT in the standard AIS/3200 VIOS PROMS:


			RAM Diagnostics

		RM> [startaddr] [length] [testcode] R

    where:
		startaddr	Hex memory start address
		length		Hex length, in bytes, of memory to test
		testcode	Hex test combination code, comprising the
				sum of any of the following test codes

    While the RAM Diagnostics are executing, the <ESCAPE> key may be
struck to break back to the Ramless-Monitor.  In the case of the
[ 2] MARCHING PATTERN TEST, there may be a long delay if there are no
RAM errors encountered.

    When RAM errors occur, the message:  ** erraddrs  :is printed on
the terminal, where 'erraddrs' is the Hex address of the error.  In some
cases, 'erraddrs' is rounded down to the next lower 16-byte boundary.
Diagnostics will continue, regardless of errors, until the end, or <ESCAPE>
is typed.


    RAM Diagnostic Tests

				[all write/check is done as quad access
				 unless otherwise specified]
    [ 1] DATA PATTERN TEST
				a. Write FFFFFFFF to all locations
				b. Write 00000000 to all locations
				c. Check 00000000 in all locations
				d. Write/Check FFFFFFFF in all locations
				e. Write/Check 55555555 in all locations
				f. Write/Check 03030303 in all locations
				g. Write/Check C0C0C0C0 in all locations
				h. Write/Check 01010101 in all locations
				i. Write/Check E0E0E0E0 in all locations
				j. Write/Check AAAAAAAA in all locations
				k. Write/Check 00000001 in all locations
				l. Write/Check 00000002 in all locations
				m. ...etc. to  80000000 in all locations
				n. Write/Check FFFFFFFE in all locations
				o. Write/Check FFFFFFFD in all locations
				p. ...etc. to  7FFFFFFF in all locations
    
    [ 2] MARCHING PATTERN TEST
				a. Write 00000000 to all locations
				b. Write 00000001 to first quad
				c. Check 00000001 in first quad
				d. Write/Check 00000000 in first quad
				e. repeat [b,c,d] with 00000002 - 80000000
				f. repeat [b,c,d,e] to each quad in test range
				g. Write FFFFFFFF to all locations
				h. Write FFFFFFFE to first quad
				i. Check FFFFFFFE in first quad
				j. Write/Check FFFFFFFF in first quad
				k. repeat [h,i,j] with FFFFFFFD - 7FFFFFFF
				l. repeat [h,i,j,k] to each quad in test range

    [ 4] BYTE ALIGNMENT TEST
				a. Write 88442211 to all locations
				b. Check (byte access) 88442211 in all locations
				c. Check (word access) 88442211 in all locations
				d. Check (word access) aligned on odd boundary
				e. Check (quad access) 88442211 in all locations
				f. Check (quad access) aligned on 1-byte
				g. Check (quad access) aligned on 2-byte
				h. Check (quad access) aligned on 3-byte

    [ 8] UNIQUENESS TEST
				a. Write FFFFFFFF to all locations
				b. Write 00000000 to 1st half of test range
				c. Check FFFFFFFF in 2nd half of test range
				d. Write FFFFFFFF to 2nd half of test range
				e. Check 00000000 in 1st half of test range
				f. Write 00000000 to first quad
				g. Write 00000004 to second quad
				h. Incrementing value by 4, repeat [f,g]
				    to each quad in 1st half of test range
				i. Write C0000000 to first quad in 2nd half
				j. Write C0000004 to second quad in 2nd half
				k. Incrementing value by 4, repeat [i,j]
				    to each quad in 2nd half of test range
				l. Check 00000000 in first quad in 1st half
				m. Check C0000000 in first quad in 2nd half
				n. repeat [l,m], checking entire test range

    [10] BYTE UNIQUENESS TEST
				a. Write 00000000 to all locations
				b. Write 000000FF to 1st quad
				c. Check (byte access) 00000000 in all locations
				    after 1st byte
				d. Write 0000FF00 to 1st quad
				e. Check (byte access) 00000000 in all locations
				    after 2nd byte
				f. repeat [b,c,d,e] with 00FF0000 & FF000000
				g. Write FFFFFFFF to all locations
				h. repeat [b,c,d,e,f] with FFFFFF00, FFFF00FF,
				    FF00FFFF, & 00FFFFFF in 1st quad
				j. repeat [a,b,c,d,e,f,g,h], writing only into
				    last quad in test range
    
    [20] REFRESH TEST
				a. Write 00000000 to all locations
				b. Pause (no RAM access) for ~0.5 second
				c. Check 00000000 in all locations
				d. Write/Pause/Check FFFFFFFF
				e. Write/Pause/Check 00000001
				f. Write/Pause/Check 00000002 - 80000000
				g. Write/Pause/Check FFFFFFFE
				h. Write/Pause/Check FFFFFFFD - 7FFFFFFF

    [40] EXTENDED REFRESH TEST
				a. Write 00000000 to all locations
				b. Pause (no RAM access) until a key is struck
				c. Check 00000000 in all locations
				d. Write/Pause/Check FFFFFFFF
				e. Write/Pause/Check 55555555
				f. Write/Pause/Check AAAAAAAA


    Some proposed additional tests:

	Additions to REFRESH TEST:
		During pause time, continuously read or write one quad in
			test range
		During pause time, continuously read or write one quad in
			each half of test range
	
	Random access testing:
		Read/write RAM in psuedo-random fashion

