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: <track>:<sector>,<track>:<sector>... 
 
   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.  

