Diagnostics II - Introduction General Operating Instructions The Disk Log Option Memory Test Operating Instructions Command Line Parameters CPU Test Operating Instructions Command Line Parameters Disk Test Operating Instructions Command Line Parameters Printer Test Operating Instructions Command Line Parameters Terminal Test Operating Instructions Command Line Parameter Quick test Operating Instructions : Introduction Diagnostics-II is a set of test programs designed to check every major area of your 8080/8085/Z80 microcomputer system. All the tests are self explanatory and require no special knowledge to use. Of course the more one knows about microcomputer systems, the more helpful error reports will be. Using Diagnostics-II should enable the user to pin down a trouble to a specific area, such as, disk drive or memory. After this, the faulty unit can be removed and fixed by a service technician. Remember, these tests assume that the computer is operable enough to load and execute programs. If it is not, then we suggest that you have the entire machine examined by qualified personnel. : General Operating Instructions Before you do anything make a copy of the Diagnostics-II discette for your own use. Never, never alter the master in any way. Doing so will completely void any responsiblity on the part of SuperSoft for the operation of the software. In general, the recommended test sequence is: 1. Memory 2. CPU 3. Disk 4. Terminal 5. Printer All of Diagnostics-II can be submitted, and a suggested submit file, named "TESTALL.SUB", is provided on your discette. It can be used as is or modified to allow unattended testing. : The Disk Log Option The four following programs may have their output logged to a disk file: MTEST.COM MTEST2.COM DISK.COM CPU.COM The printer test and the terminal test both require operator interaction and produce no error messages, so there is no effective way to log their output to disk. : Memory Test Command line options: disk log, bank select, bank select data, start address, end address, test type, repetitions. Tests and Features: . Quick test. . Walking bit test. . Burn in test on memory. . Speed test on memory. . Optional bank select testing. . Display a memory map of the tested memory. . Display any errors at the time of detection by their memory address, by the byte value that was written, and by the byte value that was read. . Display a bit by bit error summary and an error total.  You are provided with two versions of the memory test. The first is the general version that can be used to test any memory region bounded by the region 1500H to FFFFH. It is called "MTEST". The second test provided is a relocated version of "MTEST", called "MTEST2", that will check only that region of memory that held "MTEST", that is, 0100H through 14FFH. : Memory Test Operating Instructions 1. Type "MTEST" or "MTEST2" in response to the CP/M prompt. You will see the following: LOG TO DISK? (Y/N) If you wish the output to be only on your terminal then respond with "n", otherwise type a "y". 2. After directing the output, you will see the opening message, and then: ENTER START ADDRESS |< 3. At this point enter the starting location as four hexadecimal digits. If you wish to use the defaults then simply type a carriage return. In the standard production version, the default here is 1500H.  4. Next, you will be prompted for the ending location: END ADDRESS (HEX) |< Again, enter four hexadecimal digits. A carriage return will cause a default to be entered. The standard default here is the top of user memory. MTEST can automatically find this for you. 5. After you have entered the address information, you will be asked for the type of test that you want to use: PLEASE SELECT Q - QUICK TEST W - WALKING BIT TEST B - BURN TEST S - SPEED TEST At this point you must select one and only one option. 6. You then will be asked if you will need the bank select option: BANK SELECT (Y/N)? If you answer "N" at this point you should skip to the next section, otherwise you will see the following prompts: POKE WHICH PORT? WHAT VALUE? Consult the user manual for complete explaination. 7. The last prompt is for the number of repetitions: ENTER NUMBER OF ITERATIONS (DEFAULT = 1) A carriage return defaults to one; otherwise you may have up to FFFFH. : Memory Test Command Line Parameters All options allowed by the memory test may be specified in the command line. There are two forms, bank select form and non-bank select form. For both forms, the exact ordering of the parameters is necessary. The Difference is the Bank select option: >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 of the test in hexadecimal. The default can be used by entering "0". E: The end of address of the test in hexadecimal. The default can be used by entering "0".  T: This field specifies the type of test. Enter a "Q" for quick, "W" for walking bit, "B" for burn in, and "S" for speed. B: Bank select. If a "B" is present then bank select is enabled, type an "N" otherwise. P: Port or memory location. When bank select is enabled this field should have the value, in hexadecimal, of the port of memory location that is used to control bank select. Not needed ib bank select not used. V: Bank control byte. When bank select is enabled this field should have the control byte that is recognized by your memory system. Not needed if bank select not used. R: This is the repetition number in hexadecimal.  Example: >MTEST L 2000 3000 Q B 23 55 1 >MTEST C 3000 30FF W N 3 : CPU Test Command line options: disk log. Test and features: . Determine whether you are using a Z80 or an 8080/8085. . Check the speed at which your CPU runs. . Test each of the instructions that your CPU is able to execute, check all results, and report any errors. The CPU test ("CPU") 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. This will detect, for instance, if storing into the A register affects the B register. : CPU Test Operating Instructions 1. In response to the system prompt, type "CPU". The CPU test accepts the following command line parameter: "LOG". If you wish to direct the output from the test to a disk file then enter the word "LOG" on the command line; otherwise leave it blank. You will see: Diagnostics II CPU Test Copyright (c) 1981 SuperSoft Associates  2. After the copyright notice the following line is displayed: ABCDEFGHIJKLMNOPQRSTUVWXYZ Each character represents a short preliminary test of the CPU. If this sequence is not printed, the CPU is faulty, perhaps too faulty to give reliable results on the rest of the test. Included in the preliminary tests are tests of the jump instructions and various other instructions that are crucial to the performance of the test. Also included is a checksum of the test itself. This helps to determine if the test is residing in memory correctly. : CPU Test Command Line Parameters The command line takes the following form: >CPU LOG Where LOG: If an "LOG" is present then the output will be logged to disk, otherwise output will be sent to the console. : Disk Test Command line options: disk log, minimum and maximum track to be tested, minimum and maximum sector to be tested, drive to test, seek pattern, memory or ports to dump on error, sector fill pattern, repetitions. Tests and features: . Read/write functions. . Seek time. (implicitly) . Data integrity after transmission. . User defined or random seek patterns. . Allows memory locations or port contents to be dumped if errors occur. . User defined fill patterns allowed. . User defined test sectors. : Disk Test Operating Instructions 1. ABOVE ALL REMEMBER: you must use a formatted blank discette for this test. 2. Type "DISK" while at system level. You will see the following: Enter disk to log output to (CR=disk log off) If you wish to have the disk test log its output to a disk file then you should respond with the drive name, i.e.:"A","B","C",or "D". If you want to see the output on the console, then simply hit carriage return. It is important to remember that the log file cannot be on the disk being tested!  3. Next you will see: Diagnostics II - Disk Test. SuperSoft Associates Copyright (c) 1981 Select drive to be tested: Respond with one of the following: "A","B","C", or "D". 4. Next, you will be prompted for the number of tracks that you wish to test: Enter Min and Max track to be tested: Here, you should enter two numbers, separated by a colon, between 1 and 77. You should use decimal. The default is 1:10 if a carriage return is entered. This number, is dependent on the exact nature and size of your disk system. The default will work on any drive.  5. Next: Enter min and max sector to be tested: As before, enter the two numbers, separated by a colon, in the range 1 to 77. Use decimal. The default here is 1:26 if you strike a carriage return. This number, like the one before, is depedent on your specific hardware. The default will work on any disk system. 6. You will then be prompted for the seek pattern: Enter seek pattern: This allows the user to specify a sequence of sectors to tested. This is very useful for drive alignment and for finding sluggish drives. You may default this to a random seek by simply hiting a carriage return.  7. Next: Enter memory locations & IO ports to dump on error: If you would like to see the contents of specific memory locations or ports, then you may enter them here. A port is assumed if the number entered is less than 256, otherwise a memory location is assumed. These numbers must be entered in hexadecimal. The ports or locations must be separated by commas; no spaces are allowed. The limit of memory locations and ports combined is 128.  8. Then, you will be asked for the sector fill pattern: Enter sector fill pattern: This refers to the exact byte or byte sequence which will be written into each sector. The pattern is entered as hexadecimal numbers; no spaces allowed. The maximum number of entries is 126; the first two bytes in each sector are used by the disk program. If you enter less than 126 bytes, then the pattern will be repeated until the sector is full. You may default this to a random pattern by simply hitting carriage return. 9. The next prompt is for the number of repetitions: Enter the number of repetitions: This will allow you to run the test for a long period of time without operator interaction. : Disk Test Command Line Parameters All information needed to operate the disk test may be specified on the command line. The form is free format; the following convention is used: >DISK L=x M=x,y S=x,y T=x P=x D=x F=x N=x Where L: Specifies the disk for disk log output. Enter one of "A","B","C",or "D". If no log is desired then omit this parameter altogether. M: Set minimum and maximum tracks to be tested. With x referring to minimum and y to maximum. S: Sets minimum and maximum sectors to be tested. With x referring to minimum and y to maximum.  T: Sets the disk to tested. Must be one of: "A","B","C",or "D". P: Sets the seek pattern. If not present then random seek occurs. Enter the pattern same as described earlier: :,:... D: Sets the memory locations or ports to be displayed on error. Enter addresses separated by commas. F: Sets the sector fill pattern. Entered same as described earlier, hexadecimal digits separated by commas. N: Sets the number of repetitions. Examples: >DISK L=A M=1,6 S=1,4 T=B P=1:2,1:3 D=4404 F=FF00FF N=1 >DISK M=1,10 T=B N=1 : Printer Test Command line options: output direction, printer type, nulls on carriage return, pattern, tests used. Tests and features: . Each ASCII character in each position. . Both UPPER and lower case. . Every head and carriage motion for Spinwriters, Qumes, Diablos. (Serial interface only.) Including: . Forward and reverse printing . Interleaved overprinting . Overprint forward and backwards . Overprint with horizontal tabbing . Boldface . Superscrpt and subscript . Scale horizontally and vertically : Printer Test Operating Instructions 1. Type "PRINTER" while at system level. 2. You will see the following: Diagnostics II - Printer Exerciser SuperSoft Associates Copyright (c) 1981 Enter number of repetitions Enter the number of times you want the test to run. 3. Then: Enter 0 for output to printer, 1 for output to punch At this point you must tell the test where to send characters. Most users actually have the printer connected to the CP/M logical device driver called "printer". However, some users may have the printer connected to the logical device called "punch". 4. 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. 5. Next: Select test pattern: 1. 96 character ASCII 2. 64 character ASCII 3. user defined test pattern Select one:  6. Next you will be prompted with the following: Select printer type: (S)pinwriter, (D)iablo, (Q)ume, (O)ther: You must tell the test what kind of printer you have. If you have one of the specified daisy wheel printers, then select the appropriate letter, either an "S","D",or "Q", otherwise type an "O". 7. Next, you will need to enter the number of nulls after each carriage motion: Enter number of nulls after carriage motion: Usually two is sufficient for most printers. 8. If you have selected one of the diasy wheel printers listed above, then you will recieve the following prompts, otherwise you should skip ahead to section 16. Select (Y/N) test to be run: Normal print forward and backward? This test simply prints the test pattern forward and backward. It is a preliminary test of your printer and its internal buffering logic. 9. Next: interleaved overprinting? This test will overprint each character in the test pattern by first printing each character, then backing up, overprinting the first, then overprinting the same character. It does this in both the forward and backward directions. This is useful to test head alingment. 10. Then: Print same line forward and backward? This will print the test pattern once forward then, without a carriage return or linefeed, backward. This also tests head alignment. 11. Next: Overprint with absolute horizontal tabbing? This test will print the pattern once, then overprint this line by the following method. Print the first character in character position 1, the next character in position 132, the next in position 2, then 131, and so on. This will cause the head to fly back and forth quite quickly! 12. Then: Print bold with 1/120" offset? This will print an excellent bold face of the test pattern. It tests the incremental spacing features of your printer.  13. Next: Print Normal, super, and subscript? This will print line, then backup and print normal, then superscrpt, then subscript, etc.. This test checks the carriage motions. 14. Then: Scale page in inches horizontally? This will print vertical bars on the page, each one inch apart. This is a measure of the accuracy of the head controller. 15. Next: Scale page in inches vertically? This prints horizontal lines one inch apart vertically on the page. This is a measure of the accuracy of the carriage controller. 16. Then: Barber pole test? This test will print the ASCII character set 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. This tests each character in each character position. 17. The last thing that you will need to enter is the number of times you wish the test run: Enter the number of repetitions: Once is usually enough for normal testing. At this time the test will begin execution. : 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: >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 The numbers are entered as sequence separated by commas. (see example below)  C: Sets the character set. "1" if 96 character ASCII, "2" for 64 character. If you wish to enter your own, then enter it between quotes at this point. For example: C="abcd" or C=1 R: Sets the number of repetitions. 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: >PRINTER P=S L=80 T=1,2,3 C=1 R=2 N=1 O=0 >PRINTER P=O L=64 C="THIS IS A TEST" R=1 N=0 O=1 : Terminal Test Command line options: Repetitions. Tests and Features: . All printing ASCII characters in all fields. . Clear screen terminal command. . Cursor addressing terminal commands. . Foreground and background mode. . Clear foreground terminal commands. . Clear to end of line terminal command. The terminal test, like the printer test, requires extensive operator interaction and attention. Various functions will be tested. While the tests are taking place, the operator must watch the screen, confirming that no errors are occuring. : Terminal Test Operating Instructions 1. There are three files supplied on your discette: SOROC.DEF HAZEL.DEF ADDS.DEF If you have a Soroc or ADM-3, or compatible, you should use the file called "SOROC". If you have a Hazeltine 1500 or compatible, then use the file called "HAZEL". If you have an ADDS Regency or compatible, then use file "ADDS". Otherwise you must use the program to create your own.  2. The program "TERM" will read the terminal information from the file called "TERM.DEF". If you have one of the predefined terminals, then you should issue the following command: >PIP TERM.DEF=SOROC.DEF {or Yourterm.DEF} If you do not have one of the predefined terminals you will have to create a "TERM.DEF" manually. The TERM program will help you do this. You will be asked for various items of information needed so that TERM can fully test your terminal.  3. From the system level, type "TERM". You will be prompted by the following: Diagnostics II - Terminal test SuperSoft Associates Copyright (c) 1981 Enter N to create a new terminal definition Any other character for standard file: If you have one of the predefined terminals and have already PIPed it into a copy of "TERM.DEF" then you should answer with a carriage return, otherwise type an "N". Typing an "N" will allow you to create a "TERM.DEF" file for your terminal. : Terminal Test Command Line Paramenters The terminal test supports the following command line convention: >TERM N Where N: Sets the number of repetitions Using the command line parameter defaults the terminal test file to the current "TERM.DEF". If one does not exist, an error will occur and the test will abort. : Quick Test Command line options: none. Tests and Features: . Quick check of entire user memory. . Quick check of logged in drive. . CPU test. The Quick test is really three programs that chain together. They are "QRUN", "QDISK" and the standard CPU test. You will need all of these on the same disk if you are to use the Quick test. : Quick Test Operating Instructions 1. While at system level type: >QRUN 2. You will see the following heading: SuperSoft Associates Diagnostics II Quick Test Copyright (c) 1981 Memory test  3. Once the memory test has completed, you will see the message: Memory test complete If errors are found, they are reported in the following fashion: LOCATION DATA WRITTEN DATA READ XXXXH YYH YYH This format is the same used for the standard memory test. If errors do occur, then you should run the standard memory test to receive a more thorough diagnosis. 4. This will start execution of the quick memory test. The test automatically checks all of user memory.  5. Once the memory test has completed the Quick disk test will be loaded. You will see the following statements, each separated by a few seconds: Disk test Read/write test Random seek test 6. Once the Disk test has completed you will see: X read/write errors detected X seek errors detected Where X is the number of errors. If errors occur, then you should run the standard disk test in order to receive a more thorough diagnosis. 7. The last part of the test is the standard CPU test. Its output and operation have already been defined in the chapter on it.