Diagnostics II - Introduction How to Use Diagnostics II The Disk Log Option The Memory Test How to Run the Memory Test Memory Test Command Line Parameters The CPU Test How to Run the CPU Test The Disk Drive Test How to Run the Disk Drive Test Disk Drive Test Command Line Parameters The CRT Terminal Test How to Run the CRT Terminal Test CRT Terminal Test Command Line Parameters The Printer Test How to Run the Printer Test Printer Test Command Line Parameters The Quick Test : Diagnostics II - Introduction Diagnostics II is a set of programs, running under CP/M, designed to test each major component of a CP/M-based, 8080/8085/Z80 microcomputer system: memory, CPU, disk drives, CRT terminal, and printer. It also contains a program to aid you in aligning disk drives. All the tests prompt you to enter any necessary information and require no special knowledge to use. Obviously, the more you do know about microcomputer systems, the more useful the error reports will be to you. You can also use Diagnostics II to verify that your computer system is in good working order. : How to Use Diagnostics II Sequence of Tests The recommended test sequence is: 1. Memory Test ......... (MTEST.COM, MTEST2.COM) 2. CPU Test ............ (CPU.COM) 3. Disk Drive Test ..... (DISK.COM) 4. CRT Terminal Test ... (TERM.COM) 5. Printer Test ........ (PRINTER.COM) Invoking a Test Each of the tests provided is in the form of an executable command file (CP/M ".COM" file). Hence, you can invoke, or begin to run, any one of the tests simply by entering its filename (without the extension ".COM") from the command or system level.  Using Command Line Parameters Rather than providing the information required to run a test in response to a series of program prompts, you may instead supply all the required information to each program (except the Disk Drive Alignment Program, ALIGN.COM) in the form of a list of parameters following the program name on the command line. The format for entering these command line parameters varies depending on the test and will be described under each test. : The Disk Log Option The Memory Test (MTEST.COM and MTEST2.COM), the CPU Test (CPU.COM), and the Disk Drive Test (DISK.COM) all provide a disk log option which allows you to store the test output in a disk file named DIAG.LOG. Test output still appears on your screen. In the case of the Memory Test and the CPU Test, if you select the disk log option, test output will be logged only to the disk in your system's drive A. In the case of the Disk Drive Test, however, you can choose to log the test output to a disk in any one of the drives attached to your system. : The Memory Test Two versions of the Memory Test are provided in Diagnostics II. They are identical in all respects, except that the first version, MTEST.COM, can be used to test any region in RAM other than the one it itself occupies, while the second version, MTEST2.COM, can only be used to test the region MTEST.COM occupied. For a detailed description of each of these tests, consult your Diagnostics II User's Manual. : How to Run the Memory Test 1. To invoke the Memory Test, enter "MTEST" or "MTEST2" immediately after (i.e., with no intervening spaces) the CP/M system prompt (">"). 2. After entering either of the above, you should see the appropriate program sign-on message followed by the prompt line shown below: TYPE L TO LOG OUTPUT TO DISK IN DRIVE A: 3. Type an "L" immediately following this prompt if you want the test output to be placed in a file on the disk in your system's drive A, as well as to be displayed on your terminal's screen. If you want the output only to appear on your screen, hit the Return or Enter key. In either case, you should then see the next program prompt: TYPE START ADDRESS (HEX):  4. In response to this prompt, type, immediately following it on the same line, the four hexadecimal digits you wish the program to use as the start address for the region to be tested. Hitting the space bar or the Return or Enter key will cause the start address to default to a pre-determined value. As soon as you have indicated your choice, you will see the following prompt: TYPE END ADDRESS (HEX):  5. As above, type the four hexadecimal digits you want the program to use as the end address of the region to be tested. As soon as you have indicated your choice, you will see the following menu on your screen: PLEASE SELECT TEST: Q - QUICK TEST W - WALKING BIT TEST B - BURN-IN TEST S - SPEED TEST 6. From this menu you should choose which test you wish to perform on your memory. To select a test, type the first letter of its name. Once you have done so, you will see the next program prompt: TYPE B TO TEST SELECTABLE MEMORY BANK:  7. If your system's memory has the bank select feature, you may type the letter "B" immediately after this prompt to test any one of those banks. If you do so, you will be prompted for additional information. (Refer to the Diagnostics II User's Manual for a more complete discussion of this option.) Otherwise, hit Return. You will then see the program's final prompt: TYPE NUMBER OF ITERATIONS (DEFAULT = 1): If you want the test you selected to be executed only once, hit the Return or Enter key. The program will then begin to execute the test you specified. : Memory Test Command Line Parameters All the available options may be specified on the command line. Parameters must appear on the command line in exactly the order shown. A>MTEST L S E T B P V R Where: L: Disk log option, an "L" here specifies that the output be directed to disk. A "N" suppresses the disk log option. S: The start address for the test in hexadecimal. Type "0" to select default. E: The end address for the test in hexadecimal. Type "0" to select default. T: Type the first letter of the desired test here. Type "Q" for quick, "W" for walking bit, "B" for burn-in, and "S" for speed.  B: Type "B" to test alternate memory banks. Type "N" if your system has no alternate memory banks or you do not want to test them. If you type "N", omit the next two parameters. P: Type hex value corresponding to port or memory location controlling your system's bank select feature. V: Type hex value to be placed in the above port or memory location to select the desired memory bank. R: Type the hex value for the desired number of iterations of the test specified. Examples: A>MTEST L 2000 3000 Q B 23 55 1 A>MTEST N 3000 30FF W N 3 : The CPU Test The CPU Test, CPU.COM, interprets a program that is designed to execute all single instruction sequences and many multiple instruction sequences. After each instruction sequence, the program tests all of the CPU registers to see that the proper registers changed correctly, and only those registers changed. Test features: . Determines whether your CPU is a Z80 or an 8080/8085. . Checks the speed at which your CPU runs. . Tests each of the instructions that your CPU is able to execute, checks all results, and reports any errors. : How to Run the CPU Test 1. In response to the system prompt, enter "CPU". To log test output to a file on the disk in your system's drive A, enter "LOG" on the command line. Test output will still appear on your console. You will then see the program sign-on message followed by the line shown below: ABCDEFGHIJKLMNOPQRSTUVWXYZ If this sequence is not printed as shown, your CPU is faulty, perhaps too faulty to give reliable results on the rest of the test. 2. The first message displayed indicates the CPU type of your computer. The message will be either "CPU IS Z80" or "CPU IS 8080/8085". It this message is wrong, then your CPU is faulty.  3. Next, a timing test is performed to determine whether or not your CPU is running at its rated speed. You should time the interval between rings. The significance of the interval between rings is explained in your user's manual. 4. Next, each instruction will be tested. At the completion of a successful pass you will see: CPU TESTS OK The program will then terminate, returning to the CP/M system level. 5. If errors are reported, refer to your user's manual for their interpretation. : The Disk Drive Test The Disk Drive Test, DISK.COM, may be used to detect any malfunctions in the disk drives attached to your system. It may also be used to verify that a drive is functioning properly. Test features: . Tests read/write functions. . Tests seek accuracy. . Tests data integrity after transmission. . Allows user defined or random seek patterns. . Allows memory locations or port contents to be dumped on error. . Allows user defined fill patterns. . Allows user defined test sectors. : How to Run the Disk Drive Test 1. ABOVE ALL REMEMBER: you must use a BLANK FORMATTED DISKETTE for this test. If you use one which has anything important on it, that information will be totally destroyed. 2. Enter "DISK" while at system level. You will see the program's sign-on message followed by its first prompt: Enter drive name for disk log (CR=disk log off): If you wish to have the disk test log its output to a disk file then you should respond with a drive name, "A" thru "P". If you want the output to appear only on the console, then simply hit Return. The log file cannot be on the disk being tested! 3. Next you will see: Select drive to be tested: Respond with a drive name, "A" thru "P". Remember that you must insert a BLANK FORMATTED DISK in the drive to be tested. 4. Next, you will be prompted for the range of tracks that you wish to test: Enter Min and Max track to be tested: Here, you should enter two decimal numbers from 1 to 32,767, separated by a colon. The default 1:10 is entered if you hit Return. 5. Next: Enter min and max sector to be tested: As before, enter two decimal numbers from 1 to 32,767, separated by a colon. The default 1:26 is entered if you hit Return.  6. You will then be prompted for the seek pattern: Enter seek pattern: In response to this prompt, you should specify the sequence in which sectors are to be tested. The information is entered as a string of decimal number pairs separated by commas. No spaces should appear in this string. Numbers within pairs are separated by colons. The first number in the pair is the track; the second is the sector. The maximum number of track/sector combinations is 128. Hit Return to default to a random seek pattern.  7. Next: Enter memory locations and I/O ports to dump on error: If you want to examine the contents of specific memory locations or ports on error, you should enter a list of the hex values used to reference them, separated by commas, in response to this prompt. This list should entered without any spaces. Values less than 0100H (256) are assumed to specify ports; those greater are assumed to specify memory locations. The maximum number of memory locations and ports combined is 128. Hit Return to omit this option altogether.  8. Then, you will be prompted for the sector fill pattern: Enter sector fill pattern: The sector fill pattern is the exact byte or byte sequence which will be written into each sector. This pattern should be entered in hexadecimal notation with no spaces. The maximum number of bytes you may enter is 126, since the first two bytes in each sector are used by the Disk Drive Test program. If you enter less than 126 bytes, the pattern will be repeated to fill the sector. Hit Return to default to a random fill pattern. 9. The last prompt is for the number of times you wish the test to be performed. Enter the number of iterations (default = 1): As soon as you have entered this number, the test will begin. If you hit Return, the test will be performed only once. : Disk Drive Test Command Line Parameters All parameters for the Disk Drive Test may be specified on the command line. They may be listed in the free format described below. A>DISK L=x M=x,y S=x,y T=x P=x D=x F=x N=x Where L: Specifies the disk drive for disk log output. Enter a drive name, "A" thru "P". If no log is desired, omit this parameter altogether. M: Sets minimum and maximum tracks to be tested (x = minimum, y = maximum). S: Sets minimum and maximum sectors to be tested (x = minimum, y = maximum). T: Specifies the disk drive to be tested. Enter a drive name, "A" thru "P". P: Sets the seek pattern. Enter seek pattern as described above. Omit this parameter to default to a random seek pattern.  D: Sets the memory locations or ports to be displayed on error. Enter hex values separated by commas. F: Sets the sector fill pattern. Enter as described earlier. N: Sets the number of iterations. Examples: A>DISK L=A M=1,6 S=1,4 T=B P=1:2,1:3 D=4404 F=FF00FF N=1 A>DISK M=1,10 T=B N=1 : The CRT Terminal Test The CRT Terminal Test requires extensive operator interaction and attention. Various functions will be tested. While the tests are taking place, you must watch your screen closely to note any errors that occur. Test Features: . Tests all printing ASCII characters in all fields. . Tests clear screen terminal command. . Tests cursor addressing terminal commands. . Tests foreground and background mode. . Tests clear foreground terminal commands. . Tests clear to end of line terminal command. : How to Run the CRT Terminal Test 1. The CRT Terminal Test program requires certain information about your terminal to execute properly. It obtains that information from the TERM.DEF file. If you do not have a terminal for which we have supplied a predefined TERM.DEF file, you must create a TERM.DEF file for your terminal. You can do so in the course of running the CRT Terminal Test program. Refer to your user's manual for further information. 2. From the system level, enter "TERM" immediately after the system prompt. You will see the program's sign-on message followed by its first prompt: Enter N to create new terminal definition, or any other character for standard file:  If you have one of the terminals for which we supplied a predefined version of TERM.DEF and you have already "PIPed" that version into TERM.DEF, then hit Return (or any other key but "N"). Otherwise, type an "N". Typing an "N" will allow you to create a TERM.DEF file for your terminal. You should then respond to each of the series of prompts the program presents you. Otherwise, you should continue as described below. 3. You will then be prompted for the number of times you wish the test to be performed: Enter the number of iterations (default = 1): As soon as you have entered this number, the test will begin. If you just hit Return, the test will be performed only once. : CRT Terminal Test Command Line Parameters The terminal test supports the following command line convention: A>TERM N Where N: Sets the number of repetitions Using this command line parameter defaults the terminal test file to the current TERM.DEF file. If one does not exist, an error will occur and the test will abort. : The Printer Test The Printer Test, PRINTER.COM, exercises all the features of your printer that can be exercised under CP/M. It requires that you closely observe the operation of your printer while it is being put through its paces and note any inadequacies in its performance. Test features: . Tests each printing ASCII character in each carriage position. . Tests both UPPER and lower case. . Tests every head and carriage motion for Spinwriters, Qumes, and Diablos (Serial interface only). : How to Run the Printer Test 1. Enter "PRINTER" from the system level. You will see the program's sign-on message followed by its first prompt: Enter number of iterations (default = 1): Enter the number of times you want the test to run. 2. Then: Enter 0 for output to printer, 1 for output to punch: Most users actually have the printer connected to the CP/M logical device PRN (for printer). However, some users may have the printer connected to the logical device PUN (for punch). If you are not sure, then try printer first. If that does not work then try punch.  3. Next: Enter width of line in columns: This refers to number of characters across that your printer will accomodate. That is, if you have an 80 column printer then enter 80. 4. Next: Select test pattern: 1. 96 character ASCII 2. 64 character ASCII 3. user defined test pattern Select one:  Usually, you will type "1" in response to this. If you type "3", you will be prompted to input a test pattern with a maximum length of 132 characters. You may only enter a sequence with a number of characters less than or equal to the number you entered for the columns. 5. Next you will be prompted with the following: Select printer type: (S)pinwriter, (D)iablo, (Q)ume, (O)ther: If you have one of the specified daisy wheel printers, then select the appropriate letter, either "S","D",or "Q", otherwise type "O".  6. Next, you will need to enter the number of nulls after each carriage motion: Enter number of nulls after carriage motion: Two are sufficient for most printers. 7. If you have selected one of the daisy wheel printers listed above, you should then respond to each prompt requesting whether or not to run various tests of their head and carriage motions. Otherwise, skip ahead to the program's final prompt: Barber pole test? This test will print the test pattern in a barber pole fashion. That is, each line will be moved one character over from the preceeding, with the first character wrapped around the edge. Type "Y" (yes) or "N" (no). Once you have responded to this last prompt, the test will begin. : Printer Test Command Line Parameters All of the information necessary to run the printer test may be entered on the command line. The following convention holds: A>PRINTER P=x L=n T=n,n... C=n P=n N=n O=n Where P: Specifies printer type. Enter "S" for Spinwriter, "D" for Diablo, "Q" for Qume, "O" for everything else. L: Sets the line length of the printer.  T: Sets the tests performed, used only if P is not set to "O". The tests are entered by their number: 1: normal forward and backward 2: interleaved overprinting 3: same line forward & backward 4: horizontal tabbing 5: bold face 6: superscript & subscript 7: scale horizontal 8: scale vertical 9: barber pole Test numbers are entered in sequence separated by commas (see example below). C: Selects the character set. "1" if 96 character ASCII, "2" for 64 character. If you wish to enter your own, then enter it between quotes (see example below). R: Sets the number of iterations. N: Sets the number of nulls after carriage motion.  O: Determines whether output is directed to printer or to punch. "1" for Punch, "0" for printer. Examples: A>PRINTER P=S L=80 T=1,2,3 C=1 R=2 N=1 O=0 A>PRINTER P=O L=64 C="THIS IS A TEST" R=1 N=0 O=1 : The Quick Test If QRUN.COM, QDISK.COM, and CPU.COM are all on the same disk, you can run the Quick Test by entering "QRUN" from the system level. Consult your user's manual for interpretation of test output.