MICROBOTICS, INC. MEMORY TEST UTILITY PROGRAM Copyright 1988,1989 MicroBotics, Inc. All Rights Reserved. This test is intended solely for the personal use of MicroBotics Customers and may not be redistributed or resold in any manner. It may NOT be posted on any electronic information system or BBS other than the authorized MicroBotics, Inc. LISTINGS area on BIX. Documentation Draft 1.1 - 7 June 1989 GENERAL DESCRIPTION: MBRTest is a memory test utility designed to run under AmigaDOS 1.2 or 1.3. It is structured to run from its own boot floppy disk which is to be used only for the purposes of running the test. It can be used on all three Amiga models. Note that it ONLY tests true FASTRAM located in the Amiga's autoconfig space. It cannot be used to test "slow" FastRAM (the RAM at memory location C00 000) nor can it be used to test CHIP RAM. CREATING THE TEST DISKETTE (Skip this section if you received the test on its own Workbench Diskette) 1. Make a copy of the standard Workbench diskette (1.2 or 1.3). 2. On this Workbench copy, delete the DEMOS drawer (if 1.2) or the Utilities drawer's contents (if 1.3). 3. Rename your current startup-sequence file as 'StartupI'. 4. Copy all the following test files onto the Workbench copy: a. MBRTest b. s/Startup-Sequence (copy to the s directory) c. s/Startup-Message1 (copy to the s directory) d. s/Startup-Message2 (copy to the s directory) e. libs/ARP.library (copy to the libs directory) f. devs/ChipDev.device (copy to the devs directory) g. devs/Mountlist (copy to the devs directory) 5. If you are going to run the test from a 1.2 Workbench disk, edit the Startup-Sequence file to remove the call to SetPatch. 6. You may wish to treat this newly created Workbench/test disk as a Master from which you create a working copy. Be sure to label the diskettes properly to avoid confusion. RUNNING THE TEST Put the MBRTest diskette into DF0: and warmboot or coldboot your Amiga. In a short while you'll see the opening screen of the test, the Introduction. Read the explanatory note on the screen and then click on CONTINUE. The test will "count down" to an automatic reboot. The system will reboot and when the test reappears it will show you the PIC Selection Screen, a list of the memory devices and peripherals you have on your Amiga. Use the mouse to select which devices you want to test and continue. Note that non-memory devices will be rejected as test subjects if you click on them. Next, you'll see the Test Selection Screen which will offer you a variety of types of memory tests to run. Note that some of these (particularly the FLOAT test) take a very long time to run. The best single, relatively quick test to run is MARCH. A more rigorous test would be MARCH and DTADD. You should only run FLOAT if you have successfully run all the other tests and still believe that there is a problem with your memory peripheral. Note that when you click on the test buttons and hold down, you'll see a brief explanation of what each test is looking for. If you want to examine the results of your test at leisure, be sure to save the results to a log file. INTERPRETING THE TEST RESULTS Test results are given in terms of an error occuring at a given memory location on a given data line (0 through 15). This address/data line combination points to a specific memory chip on a given board. Exactly which chip is determined by the specific peripheral and how much memory you have in your system. Included in this documentation are diagrams of StarBoard2 and 8-UP!. If you are testing another manufacturer's board, you will have to request similar diagrams from the manufacturer of that board: MicroBotics does not (naturally) support the use of the test with non- MicroBotics memory devices. The simple plan-diagrams below indicate the position of the chips on the board by the DATA LINE number which relates to that chip. The test log will tell you which board and which PIC (Amiga-speak for an autoconfig memory space) the error is on. Corresponding the affected data line and which half of the 8-UP! PIC's memory range the error report is in will then tell you the location of the chip. As you can see by looking at the diagrams, each BANK of memory (16 chips) forms one-half of the 8-UP! PIC's total space. On the StarBoard2 product there are as many as 64 chips in the PIC; see the note accompanying the StarBoard2 diagram. Note that the Test reports the Memory Address in HEXADECIMAL NUMBERS (base 16). The size of the PIC is reported in kilobytes (and as a DECIMAL number). 100,000 in HEXADECIMAL is 1024k of memory (i.e., a MEGABYTE). C0,000 in HEXADECIMAL is 768k of memory. 80,000 in HEXADECIMAL is 512k of memory. 40,000 in HEXADECIMAL is 256k of memory. If you've never encountered hex numbers before, this may seem a little confusing but don't worry about it-- you don't have to know how to read hex precisely: only which is the lower half and upper half of a memory range. In hexadecimal there are SIXTEEN single-digit numbers rather than ten. The hex numbers are: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F. The hexadecimal number "F" is equivalent to the decimal number "15". The hex number "10" is equivalent to the decimal number "16" since in hex notation, every digit's place to the left of the decimal point raises the value SIXTEEN times rather than the ten times that we are all used to from decimal notation. fig.1 MEMORY PLAN OF 8-UP! (SIMM VERSION) __________________________________________________________________________ | | | 0 0 0 0 8 8 8 8 | | 1 1 1 1 9 9 9 9 | | 2 2 2 2 +----+ +----+ 10 10 10 10 | | 3 3 3 3 | U1 | | U2 | 11 11 11 11 | | 4 4 4 4 +----+ +----+ 12 12 12 12 | | 5 5 5 5 13 13 13 13 | | 6 6 6 6 14 14 14 14 | | 7 7 7 7 15 15 15 15 | | | | Z8 Z6 A4 A2 Z7 Z5 A3 A1 | |__________________________________________________________________________| | | |_______________________________| EXAMPLE: With 4 Megs of memory in pic A, any location within the first 2 megs will be located in SIMM A1 (if the data line is 8 to 15) or SIMM A2 (if the data line is 0 to 7). Any location above the first 2 Megs would work the same way except using SIMMs A2 and A3. EXAMPLE: With 256K SIMMs in pic A, any location within the first 512K of memory will be located on SIMMs A1 or A2. Any location in the second 512K of pic A will be located on SIMMs A3 or A4. fig.2 MEMORY PLAN 8-UP! (DIP VERSION) __________________________________________________________________________ | | | A1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A1 | | A2 0 1 2 3 4 5 6 7 | | Z1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 A2 | | Z2 0 1 2 3 4 5 6 7 | | 8 9 10 11 12 13 14 15 Z1 | | | | +----+ +----+ 8 9 10 11 12 13 14 15 Z2 | | | U2 | | U1 | | | +----+ +----+ | |__________________________________________________________________________| | | |_______________________________| fig.3: Memory Plan for StarBoard ][ Main Deck Relative Error Address 000000-07FFFF--------+ 080000-0FFFFF------+ | ______________________________________________________________ | | / \ | | | * 15 14 12 13 10 9 11 8 6 4 5 7 0 2 3 1 P P | <----+ | | | | * 15 14 12 13 10 9 11 8 6 4 5 7 0 2 3 1 P P | <--+ | | | * [======================] * ::::::::::::::::: | |* | 4502 | *| | |_______________| | | | |__ __| |__________________________________________________________| fig.4: Memory Plan for StarBoard ][ Upper Deck Relative Error ______________________________________________ Address / \ |* 14 15 12 13 9 8 11 10 6 4 5 7 0 1 2 3 P P |<-----100000-17FFFF | | | 14 15 12 13 9 8 11 10 6 4 5 7 0 1 2 3 P P |<-----180000-1FFFFF |* | |_____________________________ | | :::::::::::::::| |__________________| STARBOARD2 NOTES: Unlike 8-UP!, the address lines on StarBoard2 DO NOT conform to the physical order of the chips on the board (as you can see by the diagrams). However, the one PIC which contains all of StarBoard2's memory is logically divided into four banks of 16 chips each. Given the starting address of your StarBoard2, you can use the relative address numbers to place the data line error message in a given range of memory. The starting address will be indicated in the PIC Selection phase of the program. Note that the test does not deal with StarBoard2's Parity memory chips (indicated by the "P" in the diagrams). TEST OPTIONS The MBRTest software permits the setting of options in two ways: a) By setting defaults within the program b) By indicating certain options from the command line From within the program you may save "preferences" that control which tests are run; how many iterations are run of the test suite; beeping; logging to files; and stopping on errors. From the Command Line (CLI) you can use any of the following key words: TEST --run the MBRTest program in "dry run mode" just to see what it looks like-- no actual testing of peripherals will be done; the test mode just allocates a block of memory in which to run its simulation. If you select the RSCAN and MSCAN test in this mode you'll also see false errors produced (to give you an idea of what to expect in case of real errors). In this TEST mode, you must either MOUNT CHP: or ASSIGN CHP: to RAM: in order that the ChipDev.device is present for the test to detect. Note that in test mode, the software doesn't really reboot the computer (and you have to invoke the command again in order to get into the dry run of the test. The example line below would have to be invoked TWICE in a row in order to actually see the test. Example: MBRTest test AUTO --run through the test on all memory peripherals installed without waiting for PIC selection. Example: MBRTest auto NN --the maximum error count per PIC. Usually, you want this to be a low number, for example 16 --this is because, once an error is detected, the accuracy of subsequent error detection in that PIC space is suspect since the operation of a DRAM device is heavily interrelated, one part to the next. Example: MBRTest 16 The command line options should be invoked from a Startup-Sequence script. Example of Startup-Sequence: SetPatch >NIL: r Mount CHP: MBRTest auto 16 ACTIONS TO TAKE WHEN ERRORS ARE FOUND When you find a chip producing errors, you should swap it out with another chip on the same board and see if the errors "move" along with the suspected bad chip. If they do, you should replace that chip. If the errors remain in place, there may be a fault in your memory board or one of its non-RAM components. Make sure your memory board is properly set up and configured (jumpers, position of RAM, seating in sockets, etc.) Always handle RAM carefully to avoid static damage. Make sure all RAM is inserted properly and all pins are connected properly (no bent legs for example). If a given memory board can pass ALL the tests in MBRTest, and you are still having problems, the cause is NOT likely to be found in your memory peripheral. WHAT TO DO IF YOUR BOARD WON'T ALLOW THE SYSTEM TO BOOT If a chip located in the first bank of memory is either misinserted or bad, it can cause the board to malfunction in such a way as to prevent boot-up. The following are some techniques to get around the problem. StarBoard2: If you have more than 512k of memory, swap the first bank of chips with the second bank of chips and try the board again. If you still experience the problem, the flaw is not in your memory. 8-UP! (both SIMM and DIP versions): Pull jumpers 1 and 2. This disables the autoconfiguration logic and permits you to test the board even with faulty memory in the first bank of a PIC. Note that MBRTest will now show 8-UP! as a PERIPHERAL device; not a MEMORY device. It will ask for confirmation of the test run before proceeding. If your board still won't boot, your problem is one other than memory.