home *** CD-ROM | disk | FTP | other *** search
/ Programmer 7500 / MAX_PROGRAMMERS.iso / PROGRAMS / UTILS / HARDWARE / SPC46.ZIP / SPC.DOC next >
Encoding:
Text File  |  1990-09-07  |  67.2 KB  |  1,478 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.                                SPC 4.6
  11.                The integrated multidrive equipment utility
  12.  
  13.                      Copyright 1990 by R. M. Eyer
  14.                              [73230,2620]
  15.  
  16.                              Sept 7, 1990
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.                           Table of Contents
  33.                           -----------------
  34.             Topic                                     Page
  35.  
  36.  
  37.  
  38.             Introduction .............................  1
  39.             Use of documentation .....................  2
  40.             Compatibility ............................  2
  41.  
  42.             How to run SPC ...........................  3
  43.             Use of options ...........................  5
  44.             Explanation of the main display ..........  6
  45.  
  46.             Examples ................................. 13
  47.  
  48.             Credits and Warranty ..................... 16
  49.  
  50.  
  51.             Appendix A: Video ........................ 17
  52.  
  53.             Appendix B: Drive measurement ............ 19
  54.               SUBSTed and DUPlicate drives ........ 19
  55.               CDROM drives ........................ 20
  56.               BOOT drives ......................... 21
  57.               LASTDRIVE ........................... 21
  58.               Numerical precision and style ....... 21
  59.  
  60.             Appendix C: Print window ................. 23
  61.  
  62.             Appendix D: Speed measurement ............ 26
  63.               Brief history of the problem ........ 26
  64.               Philosophy of speed measurement ..... 27
  65.               Speed graph ......................... 27
  66.               Technical basis of SPC indices ...... 27
  67.               The coprocessor index ............... 29
  68.               EMS ................................. 29
  69.  
  70.             Appendix E: Processing errors ............ 30
  71.  
  72.  
  73.  
  74.  
  75.  
  76.                                  - 1 -
  77.  
  78.  
  79.                                FUNCTION
  80.                                --------
  81.  
  82.      Reads descriptive information from any IBM compatible computer and
  83.      displays  it  in  an orderly, balanced, and compact format without
  84.      menu  options,  and  in  a  way  allowing  exchange  of   computer
  85.      information  via  Email.   SPC  is an "integrated" utility, in the
  86.      sense  that  it  draws  together  the  functions  of  conventional
  87.      multidrive    listers,    speed    testers,    equipment   report,
  88.      communications   status,   and  printer  status  utilities,  while
  89.      providing highly relevant information about your computer which no
  90.      other such utility offers, such as coprocessor speed,  motherboard
  91.      status  information, printer and DOS spooler status, and keyboard,
  92.      DOS verify, share, network, and EMS  handle  status,  as  well  as
  93.      SUBSTed,  duplicate link, multitasking, lastdrive status, and type
  94.      of UART.
  95.  
  96.      SPC is designed to provide all such information  faster  than  any
  97.      other equipment utility and to do so as reliably as possible.  The
  98.      speed  tests,  both  together,  require  just  1.42 seconds on all
  99.      machines (the minimum consistent  with  speed  test  reliability),
  100.      and,  on  a  mid-range  386/387/20  machine,  all other processing
  101.      requires only about 0.32 seconds, as can be seen when using SPC in
  102.      a disk-cached environment.
  103.  
  104.  
  105.  
  106.  
  107.                                  - 2 -
  108.  
  109.                      USE OF THE DOCUMENTATION FILE
  110.                      -----------------------------
  111.  
  112.      If you have some ideas for improvement of SPC, or criticism of its
  113.      faults, do not hesitate to inform  me.   I  can  be  addressed  at
  114.      Compuserve  Easyplex  via userid [73230,2620], CD Access (PCanada)
  115.      (416-751-6337) via userid PC1629, or at the Canadian Microcomputer
  116.      Exchange (416-277-2363).
  117.  
  118.      This file has  been  paginated  and  it  contains  extended  ASCII
  119.      characters used for window borders.  However, most printers in use
  120.      today  support  the extended graphics characters of the ASCII set.
  121.      So, if you wish to print this document as a manual, you should  be
  122.      sure  that  the  appropriate  printer  switch  is set, so that the
  123.      extended ASCII graphics characters  are  not  translated  by  your
  124.      printer into meaningless capital letters.
  125.  
  126.                              COMPATIBILITY
  127.                              -------------
  128.  
  129.      SPC requires the minimum DOS 2.0+ and  80x86,  8088,  or  NEC  v20
  130.      processor,  as  well as a minimum 80-column video display.  SPC is
  131.      not designed to  work  in  environments  which  use  equipment  or
  132.      operating systems which do not satisfy these requirements.
  133.  
  134.  
  135.  
  136.                                  - 3 -
  137.  
  138.  
  139.                             HOW TO RUN SPC
  140.                             --------------
  141.  
  142.      Syntax:
  143.      SPC [? H V I A F E D S P port] [=identification] [>file] [>PRN]
  144.  
  145.      Options (any order, any case, any combination)
  146.      ----------------------------------------------
  147.      ? or H or HELP - Brief help screen
  148.  
  149.            [default is no help]
  150.  
  151.      V -   Use CTTY redirectable video.
  152.            For  use  in communications environments, and when using DOS
  153.            screens which  are  dimensioned  to  display  more  than  80
  154.            columns per line.
  155.  
  156.            For details see Appendix A.
  157.  
  158.            [default is direct video]
  159.  
  160.      I -   Intensify  foreground  colour.   Has  no  effect where the V
  161.            option is used.  If foreground is already  intensified,  SPC
  162.            will not attempt to intensify further (which would otherwise
  163.            cause the screen to blink).
  164.  
  165.            [default is no intensification]
  166.  
  167.      A -   Use  standard  ASCII  character  set,  to  accommodate Epson
  168.            compatible  printers.  Modern Epson printers can also handle
  169.            the extended IBM character set by switch  setting;  so  this
  170.            option will only rarely be needed.
  171.  
  172.            [default is to use the extended ASCII character set.]
  173.  
  174.      F -   Include drives A: and B: in drive report.
  175.  
  176.            [default is not to display such drives, as they are usually
  177.             floppy drives with long access times.]
  178.  
  179.      E -   Exclude UNDEF drives from totals.
  180.  
  181.            For details on drive measurement, see Appendix B.
  182.  
  183.            [default is  to  include  drives  flagged  as  UNDEF.   Such
  184.            drives  return,  by  definition,  FFFFh for the total number
  185.            of clusters.]
  186.  
  187.  
  188.  
  189.                                  - 4 -
  190.  
  191.      D -   Force  DUPlicate  detection  instead of SUBSTed detection in
  192.            drive report and net duplicates out of the totals.
  193.  
  194.            For details on this topic, see Appendix B.
  195.  
  196.            [Where  neither the D nor S option is specified, SPC selects
  197.            the default detection mode on the basis of  whether  SPC  is
  198.            run  in  a standard multiprocessing network environment.  If
  199.            it is, SPC uses DUPlicate detection; if it isn't,  SPC  uses
  200.            SUBSTed detection.]
  201.  
  202.      S -   Force SUBSTed detection  instead of  DUPlicate  detection in
  203.            drive report and net SUBSTed drives out of the totals.
  204.  
  205.            For details on this topic, see Appendix B.
  206.  
  207.            [Where  neither the D nor S option is specified, SPC selects
  208.            the default detection mode on the basis of  whether  SPC  is
  209.            run  in  a standard multiprocessing network environment.  If
  210.            it is, SPC uses DUPlicate detection; if it isn't,  SPC  uses
  211.            SUBSTed detection.]
  212.  
  213.      P -   Display print window only.  Even if no files are spooled  to
  214.            the  printer, the P option will cause SPC to provide printer
  215.            and spooler information.
  216.  
  217.            For details on the interpretation of the print  window,  see
  218.            Appendix C.
  219.  
  220.            [Default is to display the  print  window  below  the  drive
  221.            totals,  only  where  files  are spooled to the printer.  In
  222.            default  mode,  SPC  does  not  display   any   printer   or
  223.            multiplexer  status information if no file is spooled to the
  224.            printer.]
  225.  
  226.      = -   Identification string.  SPC puts your identification  string
  227.            on  the  right half of Line 1 of the display, overriding the
  228.            author credit, if you use  '='  followed  by  your  selected
  229.            identification information.  SPC looks for the occurrence of
  230.            the equals sign on the commandline and interprets everything
  231.            following it (up to but not including redirection and piping
  232.            symbols)  as  an  identification  string  rather  than as an
  233.            option.
  234.  
  235.            This option should be used after specifying other processing
  236.            options, if any.   If  you  try  putting  other  commandline
  237.            options  after an identification string, SPC will merely add
  238.            them to the string, without testing them for their  intended
  239.            effect.   The  maximum length of an identification string is
  240.            31 characters.
  241.  
  242.            [default is to display author credit]
  243.  
  244.  
  245.  
  246.                                  - 5 -
  247.  
  248.      > -   Redirect SPC output to the printer or to a disk file, in the
  249.            usual DOS manner.  Direct video is 'convertible' - that  is,
  250.            if  SPC detects that the user wishes to redirect output, the
  251.            program will convert to redirectable mode,  even  if  the  V
  252.            option is not used.  However, converted redirectable mode is
  253.            not equivalent to CTTY-redirectable  mode:  See  Appendix  A
  254.            for details.
  255.  
  256.      Separate Displays
  257.      -----------------
  258.      Although there is just one main display, SPC  supports  two  other
  259.      snapshot displays: The Print Window, and the Help screen.
  260.  
  261.  
  262.      Use of SPC options
  263.      ------------------
  264.      SPC  is  designed  so  that all the information the end-user might
  265.      want to know (except information about drives A: and B:) should be
  266.      displayed  just  by  issuing  the  SPC  command  with  no  options
  267.      specified  (known  hereafter as using SPC in 'default' mode).  The
  268.      defaults (no help,  direct  video,  no  intensification,  extended
  269.      ASCII   display,   no "floppies," include  UNDEF  drives,  default
  270.      detection mode, display print queue if one exists, author  credit,
  271.      and  no  redirect) were chosen so as to suit the largest number of
  272.      users who may wish not to bother with command line options.
  273.  
  274.      SPC  options  are  provided  largely  to supply fine-tuning in SPC
  275.      applications as well as solutions to  specialised  problems  which
  276.      few  users will have.  For example, only network operators who are
  277.      not using the network types which SPC  can  detect  will  find  it
  278.      necessary to use the D option.  Only occasionally will a user wish
  279.      to  examine  the  print  spool many times in quick succession, for
  280.      which purpose the P option would be used.
  281.  
  282.      To get help on the use of SPC options, just enter
  283.  
  284.      SPC H
  285.  
  286.  
  287.                                  - 6 -
  288.  
  289.  
  290.                   EXPLANATION OF THE MAIN DISPLAY
  291.                   -------------------------------
  292.  
  293.      Much  of  what  an  SPC  display means is fairly self-explanatory.
  294.      However, it is useful here  to  identify  systematically  all  the
  295.      parts  of  the  main  display,  so  as  to  avoid  confusion.  The
  296.      following  is  a  hypothetical  display,  showing  all   equipment
  297.      connected,   a   scenario   in   which   SPC  is  run  remote  via
  298.      communications in a shell to a node connected to a  small  netbios
  299.      LAN.   The  node  in  question  has  VGA, a 3 button MS compatible
  300.      mouse, and so on.  (Command: SPC V =LAN REMOTE)
  301.  
  302. ┌ Monday 09-03-1990  20:47:11 ────────────────────────────── SPC 4.6  ┐
  303. │ DOS 3.20  VGA  Color 1 PAR 3 MB                      ID: LAN REMOTE │
  304. │ FC (01/15/88)  ISA - K R 8259 -  E-CNS  1 SER/1: 16450  MR TR RS CD │
  305. │ 80386  36.7:  X....1.......2.........3.*.....4........   80387  467 │
  306. │ VER SHARE PC LAN   RAM: 655/204       -    EMS 4.0: 1524/934      1 │
  307. │ Drv────Status───Sector──Cluster──────Free───Allocated───Total───Drv │
  308. │ C:     BOOT       512     2048       3.119    23.515    26.634   C: │
  309. │ D:                512     2048       9.329    17.313    26.642   D: │
  310. │ E:                512     2048      15.020    11.622    26.642   E: │
  311. │ ─────────────────────────────────────────────────────────────────── │
  312. │ Z: Totals less DUPlicate drives:    27.468    52.450    79.918   Z: │
  313. └─────────────────────────────────────────────────────────────────────┘
  314.  
  315.      Let's take this apart line by line.
  316.  
  317.      Line 1  (DOS, peripherals, and ID string)
  318.      -----------------------------------------
  319.      This  line,  with  the exception of the DOS version, is devoted to
  320.      peripheral equipment, listing in order the DOS  version,  type  of
  321.      adaptor,   color/mono,   number   of  PARallel  ports,  number  of
  322.      MS-compatible  Mouse  Buttons,  and  the  optional  identification
  323.      string.
  324.  
  325.      Items needing comment:
  326.  
  327.      - The adaptor/video mode supports VGA, EGA, CGA, and HERCules, and
  328.        SPC  will  supply  the  Interrupt  10h  return  code  where  the
  329.        adaptor doesn't fall into one of these four categories.
  330.  
  331.      - SPC  substitutes  a  '-' character if 0 is returned for parallel
  332.        ports  or  MS Mouse buttons.  Zero MS Mouse buttons means that a
  333.        Microsoft compatible mouse is not connected; it  does  not  mean
  334.        that a non-Microsoft mouse is not connected.
  335.  
  336.      - The identification string should be 31 characters at most.
  337.  
  338.  
  339.                                  - 7 -
  340.  
  341.      Line 2 (ROM bios information, keyboard, and communications)
  342.      -----------------------------------------------------------
  343.      Again, the dash ("-") is used to indicate logic low, zero, or that
  344.      the feature is not installed.
  345.  
  346.   FC (01/15/88)  ISA - K R 8259 -  E-CNS  1 SER/1: 16450  MR TR RS CD
  347.   ───────────────────────────────  ─────  ───────────────────────────
  348.     BIOS motherboard information   Keybd        Communications
  349.  
  350.      In order, within each category, the information is as follows:
  351.  
  352.      BIOS info -
  353.      ---------
  354.      Model number (e.g. FC)
  355.      BIOS release date  (e.g. 01/15/88)
  356.      Bus type (MCA or ISA)
  357.      Wait for external event installed (E or -)
  358.      Keyboard intercept used (K or -)
  359.      Real time clock installed (R or -)
  360.      Second 8259 installed (8259 or -)
  361.      HD BIOS uses DMA channel 3 (3 or -)
  362.  
  363.      Keyboard info -
  364.      -------------
  365.      Enhanced keyboard (E or -)
  366.      Insert mode (I or -)
  367.      Caps lock set (C or -)
  368.      Num lock set (N or -)
  369.      Scroll lock set (S or -)
  370.  
  371.      Communications info -
  372.      -------------------
  373.      Number of serial ports (1 SER, 2 SER, - SER, etc)
  374.      Port selected on command line (1 or 2)  default is 1.
  375.      UART on port card (8250, 16450, 16550, 16550A, or -)
  376.      Modem Response (MR or -)
  377.      Data terminal ready (TR or -)
  378.      Request to send (RS or -)
  379.      Carrier detect (CD or -)
  380.  
  381.      Items needing comment:
  382.  
  383.      - The   model  number  specifies  a  species  in  the  genus  "IBM
  384.        compatible computer" which in fact identifies the main  type  of
  385.        basic  input/output  system  (bios)  used  in  the machine.  For
  386.        example, IBM's main list goes as follows:
  387.  
  388.              FF - IBM PC
  389.              FE - IBM PC-XT
  390.              FD - IBM PCjr
  391.              FC - IBM PC-AT
  392.              FB - IBM PC-XT(rev 1)
  393.              FA - IBM PS/2 Model 30
  394.              F9 - IBM PC Convertible
  395.              F8 - IBM PS/2 Model 80
  396.  
  397.                                  - 8 -
  398.  
  399.        Over the years, this terminology has tended  to  be  adopted  by
  400.        IBM's  competition:  For  example, very nearly all 286, 386, and
  401.        486  class  machines  usually  carry  IBM's  model  number   FC.
  402.        However,  some  286  XT's  use  FB  as  the  model number.  Most
  403.        8088-class machines carry the model numbers FF or FE.   However,
  404.        many of the 8088 class machines sold during the early  80's  had
  405.        BIOS's  with model numbers in a large spread ranging from 00 all
  406.        the way up to IBM's  standard  identifications.
  407.  
  408.     -  MCA means microchannel (for PS/2 models) while ISA refers to the
  409.        standard IBM compatible architecture.   The  keyboard  intercept
  410.        refers to scancode interpretation automatically performed by the
  411.        BIOS,  if  supported.   Real  time clock (R) means the real time
  412.        clock is on the motherboard, not on a multi-i/o card.   Advanced
  413.        motherboard  architectures  use  a second programmable interrupt
  414.        controller (8259) to achieve 16 interrupt  levels  for  smoother
  415.        processing.  And some BIOS types use DMA channel 3 for hard disk
  416.        i/o.
  417.  
  418.        BIOS  fields following the bus type (MCA or ISA) are replaced by
  419.        blanks  for  BIOS  versions  which  do  not   support   extended
  420.        information  recovery.
  421.  
  422.      - All SPC readouts on this line use the '-' character to represent
  423.        zero or logic low.  For example, if  the  old  standard  84  key
  424.        keyboard  is  detected,  the  enhanced keyboard flag will appear
  425.        as '-'.  Similarly for Caps Lock, Num  Lock,  and  so  on.   The
  426.        default  communications port for SPC is 1, but this value can be
  427.        overridden by specifying 2 on the commandline.  Use of any other
  428.        number but 2 causes SPC to select 1 as the port.
  429.  
  430.                                  - 9 -
  431.  
  432.      - The keyboard Insert mode (I or  -  in  the  Keyboard  field)  is
  433.        generally  meaningful  only when SPC is run through the shell of
  434.        an editor or wordprocessor.  DOS commands issued  directly  from
  435.        the keyboard should automatically reset the insert mode.
  436.  
  437.      - If  a machine shows 2 communications ports, one of them (port 2)
  438.        may  be  associated  with  an internal modem.
  439.  
  440.      - If the hardware exists for the given  communications  port,  SPC
  441.        will report the type of UART on the card, otherwise a dash  will
  442.        appear,  indicating no hardware support for that port.
  443.  
  444.      - The modem response (MR) indicator is based on the DSR flag,  and
  445.        indicates  whether  a modem is connected and turned on.  Turning
  446.        off the modem or  disconnecting  it  should  result  in  a  dash
  447.        indicator  in the modem response field.  The modem response flag
  448.        should also provide an elementary test of whether your modem  is
  449.        working.   If  the  modem  is  turned  on  and  is  electrically
  450.        connected  to  the port card, but has a bad chip or the cable is
  451.        defective, the modem response field will probably report a dash.
  452.  
  453.      Line 3 (The processor line)
  454.      ---------------------------
  455.      Line 3 presents 5  pieces  of  information,  left  to  right:  The
  456.      processor  type,  the Norton-based speed index for this processor,
  457.      the graph of the processor speed index, the coprocessor,  and  the
  458.      Norton-based  speed index for the coprocessor.  The speed graph is
  459.      a 40-point one-line logarithmic scale which enables SPC to display
  460.      the  position  of  a  specific  computer's  processor  within  the
  461.      spectrum of processors actively in use today.
  462.  
  463.  (80386  36.7:  X....1.......2.........3.*.....4........       No NCP)
  464.   80386  36.7:  X....1.......2.........3.*.....4........   80387  467
  465.  
  466.               Benchmark        Processor
  467.               -----------      -------------------------
  468.               X       1.0      8088,   4.77 MHz, (IBM XT)
  469.               1       2.0      80186,  4.77 MHz
  470.               2       7.0      80286,  6 MHz
  471.               3      29.0      80386, 16 MHz
  472.               4      94.0      80486, 16 MHz [486 criterion]
  473.  
  474.               *      36.7      This machine (386/20)
  475.  
  476.  
  477.      The  relation  which  SPC  uses  to  map  the CPU speed index to a
  478.      specific point in this 40-point scale is:
  479.  
  480.      Point # = 1 + 6.838 * LN (index)
  481.  
  482.                                 - 10 -
  483.  
  484.      1  corresponds  to  the  CPU  index  value  of  1,  while Point 40
  485.      corresponds to the value of 300 for the index.
  486.  
  487.      For details on speed measurement and presentation see Appendix D.
  488.  
  489.      If  your machine does not have a coprocessor, SPC will replace the
  490.      fields at the right end of the processor line with the message "No
  491.      NCP", as the example in parenthesis above indicates.)
  492.  
  493.      Line 4 (Verify/Network/Memory Line)
  494.      -----------------------------------
  495.      The fourth line is devoted to memory - what critical  software  is
  496.      loaded, how much standard memory, how much extended, and so on.
  497.  
  498.  (VER SHARE PC LAN   RAM: 655/204       -          No Expanded Memory)
  499.   VER SHARE PC LAN   RAM: 655/204       -    EMS 4.0: 1524/934      1
  500.   ─── ────────────   ────────────  ──────    ────────────────────────
  501.    C   Net/MTask        RAM          EXT        Expanded memory
  502.  
  503.       C info -
  504.       ------
  505.       The  C  field  indicates whether DOS VERify is set.  File copying
  506.       will be faster, though somewhat less safe, if Verify is not set.
  507.  
  508.       Net/MT info -
  509.       -----------
  510.       SHARE status (SHARE or -)
  511.       Network/multitasking status (type active or -)
  512.  
  513.       RAM info -
  514.       --------
  515.       Total RAM available (in 1000s)
  516.       Free RAM available
  517.  
  518.       EXT info -
  519.       --------
  520.       Total Extended memory available (in 1000s)
  521.  
  522.       Expanded memory info -
  523.       --------------------
  524.       EMS version number
  525.       Total EMS memory (in 1000s)
  526.       Free EMS memory
  527.       Number of EMS handles in use
  528.  
  529.  
  530.                                 - 11 -
  531.  
  532.      Items needing comment:
  533.  
  534.      - If  the  computer has no EMS available, SPC will use the message
  535.        'No Expanded Memory' instead of listing a series of null fields,
  536.        as seen in the example in parenthesis above.
  537.  
  538.      - Unlike   other   equipment   programs,  SPC  displays  numerical
  539.        information in decimal format, rather than mixed decimal/binary.
  540.  
  541.      - The specific information  in  Line  4  above  implies  that  the
  542.        computer in question has about 2 megs  of  memory,  all  of  the
  543.        extended of which is converted by driver to EMS.
  544.  
  545.      - A  typical  number  of  available  EMS handles is about 64.  SPC
  546.        reports only the number actually used.   The  information  given
  547.        here  is  not  normally  part  of equipment displays, but may be
  548.        useful in debugging certain kinds of EMS applications which have
  549.        shelling capabilities.
  550.  
  551.      - Three network types are supported - PC  LAN,  MS/LANtastic/3Com,
  552.        and  Novell Netware; as well, SPC supports identification of two
  553.        multitaskers - Desqview  and  DoubleDos.   there  a  network  is
  554.        present,  the  network  id overrides any multitasking indicator.
  555.        (However,  the  presence  of  a  network   does   not   override
  556.        multitasking   detection   and  SPC's  action  of  pausing  task
  557.        switching during certain critical operations.)
  558.  
  559.        The purpose of detecting networks is chiefly to  enable  SPC  to
  560.        select  the proper detection default for drive measurement.  See
  561.        the discussion of the Totals  Line  below  and  Appendix  B  for
  562.        further  details.
  563.  
  564.        The  main  purpose of detecting multitasking status is to enable
  565.        SPC to pause task-switching during sections of SPC's code  which
  566.        are  known  to  cause  interference  with  operations  occurring
  567.        concurrently in other multiplexed windows.  These pauses last no
  568.        more than a few milliseconds, and so should not  be  noticed  in
  569.        those other windows.
  570.  
  571.      Line 6+ (drive report)
  572.      ----------------------
  573.  
  574.   Drv────Status───Sector──Cluster──────Free───Allocated───Total───Drv
  575.   C:     BOOT       512     2048       3.119    23.515    26.634   C:
  576.  
  577.      Here, hardly any explanation is necessary, since  each  column  of
  578.      data  is  identified  by  header.  However, the sector and cluster
  579.      sizes appear in bytes, whereas  the  Free,  Allocated,  and  Total
  580.      numbers  appear  in  megabytes.   SPC supports the display of very
  581.      large sector and cluster sizes, as well as very large drives.
  582.  
  583.  
  584.                                 - 12 -
  585.  
  586.      The  Status  column  indicates the special role a particular drive
  587.      may play in the overall system.  SPC supports  BOOT,  DUP,  SUBST,
  588.      CSPEC, and UNDEF specifiers.
  589.  
  590.      For DOS 4.0+, BOOT indicates from  which  drive  the  machine  was
  591.      originally  booted, while CSPEC indicates on which drive DOS looks
  592.      for COMMAND.COM.  Where  these  drives  are  the  same,  the  BOOT
  593.      indicator  overrides the CSPEC indicator.  For earlier versions of
  594.      DOS, SPC does not distinguish the boot and comspecked drives,  but
  595.      merely  labels the drive on which DOS looks for COMMAND.COM as the
  596.      BOOT drive.
  597.  
  598.      DUP means that the given drive has the same total and  free  space
  599.      as  some  other  drive  listed  earlier in the alphabetic sequence
  600.      (such as a duplicate link in a network), and so is not counted  in
  601.      the grand totals.  DUP is not assigned where the drive is reported
  602.      as UNDEF.
  603.  
  604.      SUBST means that DOS sees  the  given  drive  as  SUBSTed  from  a
  605.      directory  of  another  drive, and the numbers associated with the
  606.      SUBSTed drive are not accumulated in the grand totals.
  607.  
  608.      UNDEF means that the number of clusters on the given drive  equals
  609.      65,535  (FFFFh),  indicating  that DOS cannot define the number of
  610.      clusters.   Previously,  some  versions  of  SPC  used  a  "CDROM"
  611.      assumption  to  handle  cases  of  this sort, due to the fact that
  612.      CDROM drives typically  return  FFFFh  for  the  total  number  of
  613.      clusters  (in  fact  CDROM  disks  may have a much smaller or much
  614.      larger number of clusters).  SPC 4.6, however, merely reports  the
  615.      statistics  which  DOS  returns for such drives, while providing a
  616.      warning to the user in the form of the UNDEF flag that  the  total
  617.      and  free  space  numbers  may not be reliable.  The E commandline
  618.      option excludes UNDEF statistics from  the  grand  totals  at  the
  619.      bottom   of  the  SPC  display,  otherwise  these  statistics  are
  620.      included.
  621.  
  622.      See Appendix B for further details about drive measurement.
  623.  
  624.  
  625.  
  626.      Last Line (Lastdrive, Totals Line)
  627.      ----------------------------------
  628.   Z: Totals less DUPlicate drives:    27.468    52.450    79.918   Z:
  629.  
  630.      The  drive  listed  at  the  beginning  and end of the line is the
  631.      value of LASTDRIVE specified in CONFIG.SYS (or which DOS uses as a
  632.      default).   See Appendix B for further details about LASTDRIVE.
  633.  
  634.      The title of the line shows which kind of detection  is  in  force
  635.      during  an  SPC  run.  If DUPlicate detection is active, the title
  636.      will read "Totals less DUPlicate drives"; if SUBSTed detection  is
  637.      active,  the  title will read "Totals less SUBSTed drives".  These
  638.      two modes are mutually exclusive.
  639.  
  640.                                 - 13 -
  641.  
  642.      SPC in default mode  uses  the  following  set  of  conditions  to
  643.      activate duplicate mode as the detection default:
  644.  
  645.      (1) SPC  detects  DOS  4+ and a supported network.
  646.  
  647.      (2) SPC detects DOS 3+, and either the SHARE  condition  (for  IBM
  648.          LAN  or  TAPESTRY-like  networks)  or  a supported network.
  649.  
  650.      If  neither  of these conditions is met (as would typically be the
  651.      case  in  standalone  environments),  SPC  defaults   to   SUBSTed
  652.      detection.   Specifically,  even though DOS 4+ requires SHARE, SPC
  653.      will default to SUBSTed detection, unless it  detects  a  network.
  654.      However, for DOS levels below 4.0, SPC uses the SHARE condition as
  655.      indicating the presence of an IBM LAN type network.
  656.  
  657.      The user  may  override  SPC's  internal  defaulting  activity  by
  658.      specifying  what  mode to use on the commandline.  S means SUBSTed
  659.      detection; D means DUPlicate detection.
  660.  
  661.      See Appendix B for further details on drive measurement.
  662.  
  663.  
  664.  
  665.                                EXAMPLES
  666.                                --------
  667.  
  668.      Example 1:   SPC HELP
  669.      ---------
  670.      will provide brief help screen on the use of SPC.
  671.  
  672.      Example 2:   SPC ?
  673.      ---------
  674.      will provide help using direct video.
  675.  
  676.  
  677.      Note1: Any  occurrence of the H or ?  characters will cause SPC to
  678.      display the help screen, regardless in what order these characters
  679.      appear on the commandline,  or  in  conjunction  with  what  other
  680.      characters they are used concurrently.
  681.  
  682.      Note2: If the default mode is used to obtain SPC displays, and you
  683.      print these displays to a printer which does not have support  for
  684.      the  extended  ASCII  character set, the nice clean ASCII graphics
  685.      borders will be replaced with  letters  of  the  alphabet  by  the
  686.      printer.  For the solution of this problem see the next example:
  687.  
  688.                                 - 14 -
  689.  
  690.      Example 3:  SPC AH   [for direct printer feed use: SPC AHV >PRN]
  691.      ---------
  692.      will provide help  using  the  standard  ASCII  character  set  to
  693.      accommodate printers which cannot use the extended  IBM  character
  694.      set (which includes ASCII graphics).  The A option does not affect
  695.      SPC's  video  mode.
  696.  
  697.      You  do  not,  however,  need  to  use the A option, if you have a
  698.      printer that supports the extended ASCII character set  (the  more
  699.      modern  Epson printers have a switch which provides this feature),
  700.      or  if  you  use  MPMPrint  (a  memory  resident  utility  by  MPM
  701.      Enterprises,  which  provides even better support for the extended
  702.      IBM character set than does  the  IBM  ProPrinter).
  703.  
  704.      Like  all SPC options except the help options, the A option can be
  705.      used with any SPC function.
  706.  
  707.      Example 4:   SPC FV
  708.      ---------
  709.      using  CTTY-redirectable  video,  will  list  all drives including
  710.      floppy  drives,  identifying drives defined by DOS as SUBSTed, and
  711.      will net the SUBSTed drives out of the totals.  If any  drive  has
  712.      more  than the DOS limit on the number clusters (65,534), SPC will
  713.      indicate such drives as UNDEF and count them in  the  totals.   If
  714.      the  DOS  print multiplexer is properly loaded and there are files
  715.      spooled to the printer, these will be displayed below  the  totals
  716.      line.
  717.  
  718.      Example 5:   SPC FE
  719.      ----------
  720.      using  direct  video  (using  YOUR  colour  scheme), will list all
  721.      drives,  identify and net out the SUBSTed drives, and will exclude
  722.      UNDEF drives from the grand totals.  If PRINT is loaded and  files
  723.      are in the spool they will be displayed.
  724.  
  725.      Example 6:   SPC P
  726.      ---------
  727.      will  present  the  DOS print spool status alone, without the main
  728.      SPC equipment display.
  729.  
  730.      Example 7:   SPC V2
  731.      ---------
  732.      will use CTTY-redirectable video (or COMMAND.COM redirectable,  or
  733.      redirectable via GATEWAY, or DOORWAY,  etc),  listing  all  drives
  734.      using  duplicate detection rather than SUBSTed detection, and will
  735.      present the communications status for port 2.  This is the sort of
  736.      option mix that might be chosen by a  Novell,  3Com,  or  Tapestry
  737.      Sysop  who  wishes  to  call his system remotely, drop to DOS, and
  738.      inspect a node which is currently using  #2  communications  port.
  739.      If  there  is  trouble  about  erroneous  SUBSTed flags, use the D
  740.      option, as follows:
  741.  
  742.                                 - 15 -
  743.  
  744.      SPC VD2
  745.  
  746.      If the UNDEF drives are not desired in totals, use the E option:
  747.  
  748.      SPC VED2
  749.  
  750.      Another SPC run, using the F option [SPC FV >diskfile]
  751.      ------------------------------------------------------
  752.      Let's now take a look at the same computer's SPC display  using  a
  753.      standalone scenario: A RAMdisk and two SUBSTed drives are created,
  754.      and  we  have  two  floppy  drives,  the B: drive of which is 3.5"
  755.      720K.  At this time, there is no disk in drive B:, while there  is
  756.      an  unformatted  disk  in drive A:.  Running the command above, we
  757.      obtain the following display:
  758.  
  759. ┌ Monday 09-03-1990  11:44:00 ────────────────────────────── SPC 4.6  ┐
  760. │ DOS 3.20  VGA  Color 1 PAR - MB                    by Bob Eyer 1990 │
  761. │ FC (01/15/88)  ISA - K R 8259 -  -----  1 SER/1: 16450  MR  -  -  - │
  762. │ 80386  36.7:  X....1.......2.........3.*.....4........   80387  473 │
  763. │ VER -     -        RAM: 655/589       -          No Expanded Memory │
  764. │ Drv────Status───Sector──Cluster──────Free───Allocated───Total───Drv │
  765. │ A:     Unformatted disk                                          A: │
  766. │ B:     Drive door not closed                                     B: │
  767. │ C:     BOOT       512     2048       3.115    23.519    26.634   C: │
  768. │ D:                512     2048       8.567    18.075    26.642   D: │
  769. │ E:                512     2048      14.883    11.759    26.642   E: │
  770. │ F:                512      512       1.044     -         1.044   F: │
  771. │ G:     SUBST      512      512       1.044     -         1.044   G: │
  772. │ P:     SUBST      512     2048      14.883    11.759    26.642   P: │
  773. │ ─────────────────────────────────────────────────────────────────── │
  774. │ Z:   Totals less SUBSTed drives:    27.609    53.353    80.962   Z: │
  775. └─────────────────────────────────────────────────────────────────────┘
  776.  
  777.      In this test, the old standard 84-key keyboard was  used,  and  so
  778.      there is no E display in the keyboard field.   Capslock,  Numlock,
  779.      and  Scroll-lock are all off, DOS Verify is ON (VER), and we chose
  780.      to define the ramdisk (F:) out of XMS memory rather than EMS.   As
  781.      a  result,  the  use  of  the  ramdisk does not reduce coprocessor
  782.      speed, and does not grab memory from conventional  RAM.   (Use  of
  783.      EMS  reduces  coprocessor speed by about one-third; see Appendix D
  784.      for further information about this effect.)
  785.  
  786.      Since the modem is still connected to #1 communications  port,  we
  787.      see  that the Modem Response flag is on, although the DTR, RTS and
  788.      Carrier detect lines are all at logic low.
  789.  
  790.      In  the  drive  report  we  see  the  action of the F option.  SPC
  791.      correctly observes that A: drive contains an unformatted disk  and
  792.      that there is no disk in B: (drive door not closed).  See Appendix
  793.      E for a complete discussion of SPC errors.
  794.  
  795.                                 - 16 -
  796.  
  797.      Obviously,  the  ramdisk  is  drive F:, with a cluster size of 512
  798.      bytes.  Since no files are currently allocated on that drive,  SPC
  799.      reports  a  dash  in the apparent UNITS place for allocated space.
  800.  
  801.      Before  we  ran  SPC this time, we created two SUBSTed drives, one
  802.      (G:) off of the root of F:, the other (P:) off of the root  of  E:
  803.      Examination  of  the  listing  shows the two SUBSTed drives, and a
  804.      calculator check reveals that these drives are not included in the
  805.      totals.  All the totals are exactly correct, despite rounding  and
  806.      hidden digits.
  807.  
  808.      The LASTRDIVE in CONFIG.SYS is read as Z:, and all drives detected
  809.      are defined by DOS (no CDROM specifiers).  For LASTDRIVE  details,
  810.      see Appendix B.
  811.  
  812.  
  813.                                 CREDITS
  814.                                 -------
  815.  
  816.      I  wish  to  give  special thanks to Paul Tucker for providing the
  817.      hint that led to the solution of the  SUBSTed  detection  problem.
  818.      Thanks  to  Paul  also  for  providing  much testing and debugging
  819.      assistance as well as certain programming ideas which are used  by
  820.      SPC  in the network detection area.  Thanks also to Jud Newell and
  821.      Ian Singer, who tested some versions for compatibility problems in
  822.      very large Novell networks.  Thanks to Lee  Perryman  who  pointed
  823.      out  the  problem  with running SPC 4.2 on PS/2 Model 70's, and to
  824.      Rob  Campbell  who  did  most  of   the   DoubleDos   multitasking
  825.      experiments.   Also  I  wish  to  thank Greg Andrews at Compuserve
  826.      IBMCOM for conveying to me the  correct  procedure  for  detecting
  827.      UART  types.   And  I  must also express my gratitude for the fine
  828.      work  done  by   Hal   White   in   critically   reviewing   SPC's
  829.      documentation,   and   to  Ralf  Brown,  without  whose  interrupt
  830.      documentation this program would not have been impossible.
  831.  
  832.                                WARRANTY
  833.                                --------
  834.  
  835.      The author of SPC hereby disclaims all warranties relating to this
  836.      software, whether express or implied, including without limitation
  837.      any  implied  warranties  of  merchantability  or  fitness  for  a
  838.      particular purpose.   The  author  will  not  be  liable  for  any
  839.      special,  incidental,  consequential,  indirect or similar damages
  840.      due to loss of data or any other reason, even if  the  author  has
  841.      been  advised  of  the  possibility  of such damages.  In no event
  842.      shall the author's liability  for  any  damages  ever  exceed  the
  843.      Shareware  contribution  for this software, regardless of the form
  844.      of the claim.  The person using the software bears all risk as  to
  845.      the quality and performance of the software.
  846.  
  847.  
  848.                                 - 17 -
  849.  
  850.                            APPENDIX A: VIDEO
  851.                            -----------------
  852.                            Commands:  SPC ...
  853.                                       SPC I...
  854.  
  855.      On Line 1 of SPC's main display,  video  adaptor  and  color  mode
  856.      information  is presented.  Despite the fact that these indicators
  857.      are bracketted by multitasking switches, there is still  the  risk
  858.      that  they  will  not reliably return the correct information when
  859.      run under DoubleDos.  In other environments, there does not appear
  860.      to be any problem with these indicators.  DoubleDos is  known  not
  861.      to  use  the same screen address for its two windows, and this may
  862.      have something to  do  with  the  lack  of  stability  of  adaptor
  863.      readouts during DDOS operations.
  864.  
  865.      SPC   provides   two   ways   of   sending  data  to  the  screen:
  866.      CTTY-redirectable display and direct video display.  Direct  video
  867.      display  is the default mode.
  868.  
  869.      If your screen has more than 80 columns (e.g VGA Wonder card using
  870.      resolution  132  x 44), then SPC should not be run in direct video
  871.      mode.  Use of direct video on high-resolution text screens  having
  872.      more  than 25 lines results in garbled video displays.  When using
  873.      high resolution DOS text, the V option should be employed.
  874.  
  875.      In direct video mode (no V option), SPC reads  the  colour  scheme
  876.      the  user has selected within DOS and then uses that colour scheme
  877.      to display results.  [The colour  scheme  read  is  in  fact  that
  878.      scheme  observed  by  SPC  at  Column  1,  Row  1  of  the screen;
  879.      consequently, if screen colour is interrupted by another  program,
  880.      so  that  the  upper  left portion of the screen is different from
  881.      your preference, SPC will reflect whatever is there.  To eliminate
  882.      this problem, just issue CLS from the DOS prompt and try again.]
  883.  
  884.      If DOS redirection is used with direct video, as in -
  885.  
  886.      SPC >SPC.TXT
  887.  
  888.      the content of SPC.TXT will be unaffected  by  the  colour  issue,
  889.      since  the  redirection  symbol  causes  SPC  to  use redirectable
  890.      standard output.
  891.  
  892.      For best results, however, it is recommended that the V option  be
  893.      used  with  DOS redirection: SPC uses a space padding routine with
  894.      direct video to prevent the default background colour  from  being
  895.      interrupted  with  black  patches.   This  space  padding does not
  896.      affect the visual format of  the  display,  but  will  cause  line
  897.      lengths of capturefiles to exceed the usual 72 character limit for
  898.      standard BBS messagebases, and so will cause the resulting message
  899.      upload to such Email message areas to have a garbled appearance.
  900.  
  901.                                 - 18 -
  902.  
  903.      When  the  V  option  is  used,  SPC  uses  CTTY  as  well  as DOS
  904.      redirectable video, which means that its output can be  redirected
  905.      to a communications port by activating a GATEWAY driver or similar
  906.      or  by  executing  the  CTTY  command  before  executing  the  SPC
  907.      command.  In this mode, it is not necessary for  DOS  to  see  the
  908.      redirection symbol '>' on the commandline in order for redirection
  909.      to occur.
  910.  
  911.      [If you are running SPC remote at a  host  installation,  and  the
  912.      host uses a dual redirection driver such as GATEWAY or IBMAUX, you
  913.      can  choose  whether  or not to allow the Sysop at the host end to
  914.      see SPC output by using either SPC V or SPC V >COMx.   The  former
  915.      will  show  the  output  to  the  Sysop  as well as transmit it to
  916.      remote, whereas the latter will not allow the  Sysop  to  see  the
  917.      output.]
  918.  
  919.      The V option may  be  used  with  any  other  valid  option,  with
  920.      precisely  the  same  effects  as  discussed above.  If foreground
  921.      colour intensification is desired by selecting the I option, the V
  922.      option should not be used.  (Colour intensification works only  on
  923.      direct  video).   Thus,  as  examples,  the  following  calls will
  924.      intensify the foreground colour, if it is not already intensified:
  925.  
  926.      SPC I
  927.      SPC IH
  928.      SPC IP
  929.      SPC IEF
  930.  
  931.      and so on.  The  following  calls,  however,  have  no  effect  on
  932.      foreground colour:
  933.  
  934.      SPC VI
  935.      SPC VIH
  936.      SPC VIP
  937.      SPC VIEF
  938.  
  939.      and so on.
  940.  
  941.  
  942.                                 - 19 -
  943.  
  944.                     APPENDIX B:  DRIVE MEASUREMENT
  945.                     ------------------------------
  946.  
  947.      SUBSTed and Duplicate drives
  948.      ----------------------------
  949.  
  950.      SPC  uses  DOS  Services to identify SUBSTed drives, thus enabling
  951.      identification of SUBSTed  drives  without  the  old  equal  space
  952.      test.   This new method corrects the old bug of not displaying the
  953.      last real drive in the list, when a SUBSTed drive is defined  with
  954.      a drive letter which is prior to the letter used for the last real
  955.      drive.   The  DOS Services approach to SUBSTed drives is supported
  956.      as far back as DOS 2.0.
  957.  
  958.      Where  SPC  sees that SUBSTed detection is inappropriate, or where
  959.      the user selects the D  commandline  option,  SPC  uses  duplicate
  960.      detection rather than SUBSTed detection.
  961.  
  962.      In versions of SPC prior to SPC 4.2, SUBSTed  drives  were  netted
  963.      out  by  identifying  duplicate total and free space entries.  The
  964.      current version, however, distinguishes SUBSTed drives  from  mere
  965.      duplicates,  by  analysing  how  specific drives are redirected by
  966.      DOS.
  967.  
  968.      The disadvantage of making this distinction is that  it  leads  to
  969.      difficulties  when  SPC  is  run  in networks which do not support
  970.      SUBSTed  drives  or  which   override   DOS   drive   redirection.
  971.      Therefore,  SPC  attempts to detect the presence of a network; and
  972.      the resulting information is used to determine the drive detection
  973.      default.
  974.  
  975.      The  network detection system is by no means complete; and so, the
  976.      user may find it necessary to employ the D option to override  the
  977.      system  default  on  the commandline if the network environment is
  978.      not  detected  by  SPC.   If  SPC  does  not  detect  your network
  979.      properly, then you need to use the D option explicitly; if you use
  980.      such a network, please let me know about it.
  981.  
  982.      In  SPC,  a drive is said to be a "duplicate" of another drive if,
  983.      and only if,
  984.  
  985.      (a)  it occurs later in the alphabetic drive display than its
  986.           original, and
  987.  
  988.      (b)  it has the same total and free space as its original.
  989.  
  990.      When the D option is used, duplicate drives are netted out of  the
  991.      grand totals at the  bottom  of  the  main  display.
  992.  
  993.                                 - 20 -
  994.  
  995.      CDROM and other non-standard drives
  996.      -----------------------------------
  997.  
  998.      Where  SPC detects a non-conventional drive which returns FFFFh as
  999.      the total number of clusters, it will flag such a drive  with  the
  1000.      UNDEF  indicator,  showing  which  drives  may  not  be accurately
  1001.      measurable  by  DOS  alone.   These  drives  will  nonetheless  be
  1002.      included  in  the  totals line, unless the E commandline option is
  1003.      used.
  1004.  
  1005.      The problem here is that all versions of DOS, including  DOS  4.0,
  1006.      report  the  number  of  clusters  as a hex word (two bytes).  The
  1007.      maximum unsigned value of such a number is 65,535.  Where a  drive
  1008.      actually  has  more  clusters  than can be accommodated by the DOS
  1009.      format, DOS returns FFFFh (65535) -- which means that  DOS  cannot
  1010.      define  the value.  It follows that the maximum number of clusters
  1011.      which DOS can define as a measurement is 65,534.
  1012.  
  1013.      BOOT drives
  1014.      -----------
  1015.  
  1016.      For  DOS  4.0+,  SPC  distinguishes  the  BOOT drive and the drive
  1017.      mentioned by the COMSPEC statement in CONFIG.SYS to  identify  the
  1018.      position  of COMMAND.COM.  Where these two are different, SPC uses
  1019.      BOOT for the boot drive and CSPEC for the comspecked drive.   This
  1020.      is  sometimes  useful  in  checking  whether  the  user  has moved
  1021.      COMMAND.COM to a ramdisk to speed up DOS  operations.   Where  the
  1022.      two  drives  are  the same, the BOOT indicator overrides the CSPEC
  1023.      indicator.
  1024.  
  1025.      For the normal case of DOS 3+ operations, SPC associates the  BOOT
  1026.      flag with the position of COMMAND.COM, since lower versions of DOS
  1027.      do not permit separate detection of the original boot drive.
  1028.  
  1029.      BOOT and CSPEC drives, where flagged, are included  in  the  grand
  1030.      totals.
  1031.  
  1032.      The LASTDRIVE
  1033.      -------------
  1034.  
  1035.      The  drive  listed  at the beginning and end of the Totals Line is
  1036.      the value of LASTDRIVE specified in CONFIG.SYS (or which DOS  uses
  1037.      as  a default, if LASTDRIVE is not given in CONFIG.SYS).  SPC will
  1038.      obtain this value from DOS for DOS 3.0  and  later.   For  earlier
  1039.      versions,  a double blank entry is used.  The LASTDRIVE info makes
  1040.      it possible to see at a glance what the value of this variable is,
  1041.      avoiding the need to do separate experiments.
  1042.  
  1043.  
  1044.                                 - 21 -
  1045.  
  1046.      Precision of space display and computation
  1047.      ------------------------------------------
  1048.  
  1049.      Drive space numbers are displayed by means of a  special  mode  of
  1050.      representation that can be defined by the following rules:
  1051.  
  1052.      1.   Internally,  all  numbers  computed  to  double precision but
  1053.           represented as rounded decimals.  (Normally available)
  1054.  
  1055.      2.   Absolute 5/4  rounding.
  1056.           (Not normally available: usually the available rule is vector
  1057.           5/4 rounding.)
  1058.  
  1059.      3.   Zero results  replaced  by  a  dash  in  the  apparent  units
  1060.           place.  (Not normally available)
  1061.  
  1062.      4.   Arithmetic  totalling  done  only  on  the visible portion of
  1063.           numbers, with hidden digits excluded from calculation.   (Not
  1064.           normally available)
  1065.  
  1066.      5.   Drive space numbers in megabytes, correct  to  three  decimal
  1067.           places  (correct to the nearest thousand bytes).  [SPC is the
  1068.           only multidrive utility that uses this rule.]
  1069.  
  1070.      6.   All  numbers  reported  in  decimal format.  [SPC is the only
  1071.           equipment utility that uses this rule.]
  1072.  
  1073.      The  purpose  of this mode of representation is to make SPC number
  1074.      displays as faultless  and  readable  as  possible.   These  rules
  1075.      assure that the user will never discover a discrepancy between the
  1076.      grand  totals  which  SPC reports and totals obtained by otherwise
  1077.      summing the entries.
  1078.  
  1079.      The  decision  to diverge from tradition and represent drive space
  1080.      in megabytes with three decimal places was motivated by the desire
  1081.      to achieve better readability and relevance in  a  snapshot  drive
  1082.      display.   On  the  one  hand, most users think of their drives in
  1083.      terms of megabytes rather than bytes; on the other, unit sizes  in
  1084.      file   storage  are  generally  measured  in  thousands  of  bytes
  1085.      (determined by the cluster size), so the number of decimal  places
  1086.      should be neither more nor less than three.
  1087.  
  1088.  
  1089.                                 - 22 -
  1090.  
  1091.      The  dash  is  used to replace zero entries to facilitate scanning
  1092.      columns of numbers.  Unlike the usual dash  replacement  available
  1093.      in  some  computer  languages,  SPC's  dash  is  justified  on the
  1094.      apparent units place, rather than the right margin of  the  number
  1095.      field: "000.000" usually means "0", not ".000".
  1096.  
  1097.      The  decimal  representation  rule  diverges from the tradition of
  1098.      using mixed decimal/binary representation.   For  example,  it  is
  1099.      usual  to  report  the  conventional  RAM  capacity  of  a desktop
  1100.      computer as being 640 k, and to report drive space in multiples of
  1101.      the cluster size.  This, indeed, is due to  the  way  numbers  are
  1102.      represented  internally by DOS.
  1103.  
  1104.      For the end-user of a computer,  however,  is  accustomed  to  use
  1105.      decimal representation.  A finished space utility should not force
  1106.      the  end-user  to  make  unnecessary external calculations to find
  1107.      what is wanted.
  1108.  
  1109.      This  need  to  make  additional  and  theoretically   unnecessary
  1110.      external  calculations  is  an annoying shortcoming of the general
  1111.      run of multidrive and equipment utilities.
  1112.  
  1113.  
  1114.                                 - 23 -
  1115.  
  1116.                      APPENDIX C: THE PRINT WINDOW
  1117.                      ----------------------------
  1118.  
  1119.      If SPC is run during a DOS PRINT session, extra information  about
  1120.      that print job will be  displayed  below  the  totals  line.   For
  1121.      example,  we  may  start by configuring PRINT with the appropriate
  1122.      multiplexing options - for example,
  1123.  
  1124.      /D:PRN /B:4096 /M:2 /S:18 /Q:32
  1125.  
  1126.      which means use a 4K print buffer, allocate  two  clock  ticks  to
  1127.      sending information to the printer, define one time slice as being
  1128.      identical  to  a  clock tick, and set the maximum queue size to 32
  1129.      files.  The following shows  the  SPC  default  display  when  run
  1130.      during a spooled print job with the above PRINT parameters:
  1131.  
  1132. ┌ Monday 09-03-1990  13:02:21 ────────────────────────────── SPC 4.6  ┐
  1133. │ DOS 3.20  VGA  Color 1 PAR - MB                    by Bob Eyer 1990 │
  1134. │ FC (01/15/88)  ISA - K R 8259 -  -----  1 SER/1: 16450  MR  -  -  - │
  1135. │ 80386  36.7:  X....1.......2.........3.*.....4........   80387  386 │
  1136. │ -   -     -        RAM: 655/578       -          No Expanded Memory │
  1137. │ Drv────Status───Sector──Cluster──────Free───Allocated───Total───Drv │
  1138. │ C:     BOOT       512     2048       3.117    23.517    26.634   C: │
  1139. │ D:                512     2048       8.567    18.075    26.642   D: │
  1140. │ E:                512     2048      14.883    11.759    26.642   E: │
  1141. │ F:                512      512       1.044     -         1.044   F: │
  1142. │ G:     SUBST      512      512       1.044     -         1.044   G: │
  1143. │ P:     SUBST      512     2048      14.883    11.759    26.642   P: │
  1144. │ ─────────────────────────────────────────────────────────────────── │
  1145. │ Z:   Totals less SUBSTed drives:    27.611    53.351    80.962   Z: │
  1146. ├─────────────────────────────────────────────────────────────────────┤
  1147. │ LPT1 status:   Selected                                             │
  1148. │                                                                     │
  1149. │ Files currently in PRINT queue:                                     │
  1150. │                                                                     │
  1151. │ D:\BBS\PROPOSE2.TXT  --> LPT1                                       │
  1152. │ D:\BBS\PROPOSAL.TXT                                                 │
  1153. │ D:\BBS\JULY90.RM                                                    │
  1154. │ D:\BBS\34087-.RM                                                    │
  1155. └─────────────────────────────────────────────────────────────────────┘
  1156.  
  1157.      If  the  spool  contents and printer diagnostics report is desired
  1158.      by itself, simply use the P option [SPC P].
  1159.  
  1160.      The spool readout is particularly useful for obtaining information
  1161.      about spool status during a lengthy  print  job  AFTER  all  files
  1162.      desired  are  submitted  to the queue.  The DOS PRINT command will
  1163.      indicate this type of information only when adding  new  files  to
  1164.      the  queue, not after the last file is submitted; and so the spool
  1165.      readout  and  diagnostics  here  supply  a   feature   unavailable
  1166.      elsewhere.
  1167.  
  1168.                                 - 24 -
  1169.  
  1170.      Use of the Print Window alone: [SPC P]
  1171.      ------------------------------
  1172.  
  1173.                      Commands:  SPC P
  1174.                                 SPC VP
  1175.                                 SPC IP
  1176.  
  1177.      The print window will display a PRINT multiplexer  line  and  then
  1178.      one  or  more  printer  status lines, if no file is spooled to the
  1179.      printer.  If at least one file is spooled to a printer port,  then
  1180.      the  spool  report  will  be  preceded by a printer status report,
  1181.      showing which port is  the  current  target  of  the  spool.   SPC
  1182.      supports  printer status readouts for up to 4 printer ports (LPT1,
  1183.      LPT2, LPT3, and LPT4), and will display status information for any
  1184.      and all such printers in the same window, if  they  are  supported
  1185.      either  by  actual  hardware or by being selected by the DOS PRINT
  1186.      multiplexer.  Where no files are sent to a printer port, the print
  1187.      window will  display  only  those  printers  for  which  there  is
  1188.      hardware support.
  1189.  
  1190.      The supported PRINT multiplexer messages are:
  1191.      - DOS PRINT spooler not active
  1192.      - No files spooled for PRINT job
  1193.  
  1194.      The supported printer status messages are:
  1195.      - Selected
  1196.      - Not selected
  1197.  
  1198.      Where  no  files  are  sent to a printer port, the selected status
  1199.      refers to the online condition of the printer itself; where  files
  1200.      are sent to a printer port, the selected status refers to the port
  1201.      chosen  as  the  target of the spool.  The following displays show
  1202.      what is meant here:
  1203.  
  1204.      Display (1)
  1205.      -----------
  1206. ┌ Wednesday 08-22-1990  13:02:21 ─────────────────────────── SPC 4.6  ┐
  1207. │ No files spooled for PRINT job                                      │
  1208. │ LPT1 status:   Selected                                             │
  1209. └─────────────────────────────────────────────────────────────────────┘
  1210.  
  1211.  
  1212.      Display (2)
  1213.      -----------
  1214. ┌ Wednesday 08-22-1990  13:02:21 ─────────────────────────── SPC 4.6  ┐
  1215. │ LPT1 status:   Selected                                             │
  1216. │ LPT3 status:   Selected                                             │
  1217. │                                                                     │
  1218. │ Files currently in PRINT queue:                                     │
  1219. │                                                                     │
  1220. │ C:\BOB\SPC\SPC.TXT  --> LPT3                                        │
  1221. └─────────────────────────────────────────────────────────────────────┘
  1222.  
  1223.                                 - 25 -
  1224.  
  1225.      In the first run of SPC P, the PRINT spooler is not resident,  and
  1226.      so the Selected status of LPT1 indicates that only this printer is
  1227.      online.   However,  before  running  SPC  P on the same system for
  1228.      Display (2), we activated the PRINT  multiplexer  using  the  LPT3
  1229.      port, and then sent SPC.TXT to that port.  Now two ports appear in
  1230.      the  display,  but  the  Selected  status of LPT1 shows the online
  1231.      condition of LPT1, while the Selected status of LPT3 shows  merely
  1232.      what  port  was  used  as  the  target  for the PRINT multiplexer.
  1233.      Obviously, in this case, no printing  is  actually  taking  place,
  1234.      since  there  is  no online printer connected to LPT3, as shown in
  1235.      Display (1).
  1236.  
  1237.                                 - 26 -
  1238.  
  1239.                      APPENDIX D: SPEED MEASUREMENT
  1240.                      -----------------------------
  1241.  
  1242.      Brief history of the problem
  1243.      ----------------------------
  1244.      The original intent of my development of speed  readouts  for  the
  1245.      processor  and  coprocessor  was  to  provide  a  faster  and more
  1246.      integrated way of measuring speed than is available  by  means  of
  1247.      the  Norton  SI.   The  Norton  SI  is  an almost universally used
  1248.      standard of speed measurement, even though it  suffers  from  many
  1249.      criticisms  which  have  led  other  authors  to develop their own
  1250.      benchmarks.  Not the least important of these are  the  relatively
  1251.      complete benchmarks provided by PC Labs.
  1252.  
  1253.      SPC's  indices are based on Norton's early work, but behave rather
  1254.      differently  from  the  SI  for  the  faster  machines  which  are
  1255.      available today.
  1256.  
  1257.      The  focus  of much early benchmark development was the attempt to
  1258.      define a representative  mix  of  operations  which  describe  the
  1259.      normal  use  of  a  computer.  Probably the best known attempts to
  1260.      reduce 'the normal mix of computer operations' to a single  number
  1261.      are  Chips  and Technologies' MIPS index and Richard B.  Johnson's
  1262.      SPEED index, both  dating  from  1986.   Johnson's  work  had  the
  1263.      advantage  of  looking  at twice as many operations; whereas C&T's
  1264.      work had the advantage of comparing the test  machine  to  two  or
  1265.      three other machines in the spectrum.
  1266.  
  1267.      At PC Labs, however, it has been recognised that  the  attempt  to
  1268.      find  such  a  representative  mix  of operations may be doomed to
  1269.      failure, with the result that PC Lab benchmarks focus on dozens of
  1270.      operations separately, providing indices for each.  For scientific
  1271.      accuracy  and scope of testing, there probably isn't anything else
  1272.      easily accessible in the market which does  a  more  complete  job
  1273.      than the PC Lab benchmark series.
  1274.  
  1275.                                 - 27 -
  1276.  
  1277.      Philosophy of speed measurement
  1278.      -------------------------------
  1279.      Some  of  the  older  tests,  unlike  the  PC lab benchmarks, did,
  1280.      however,   tend   to   provide  a  relatively  quick  snapshot  of
  1281.      performance.  By 'quick,' I mean a  few  seconds.   Unfortunately,
  1282.      owing to the complexity of the tests which the PC Lab BENCH series
  1283.      perform,  it  takes a few minutes, let alone a few seconds, to run
  1284.      them.  The Norton SI runs in a matter of seconds.   This  kind  of
  1285.      speed  is  essential  for routine use of speed indices, where they
  1286.      are used to determine the  effect  of  operating  environments  on
  1287.      machine speed.
  1288.  
  1289.      The  guiding  principle behind the design of SPC is to provide the
  1290.      most information possible as a single-screen snapshot (or less) in
  1291.      the quickest possible way.  Thus, the approach taken by PC Labs is
  1292.      entirely inappropriate for integration within SPC.
  1293.  
  1294.      The speed graph
  1295.      -------------------
  1296.      The SPC speed benchmark graph, as previously noted, is a  40-point
  1297.      logarithmic  scale which shows the position of the test machine in
  1298.      the spectrum of all the main types of IBM/DOS-compatible equipment
  1299.      in  use  today.  The "feel" of a run of the mill 386 is that it is
  1300.      substantially faster than an AT, and the "feel" of a 486  is  that
  1301.      it is substantially faster than a 386.  The logarithmic plot, in a
  1302.      general way, reflects these differences in "feel", while not being
  1303.      sensitive to speed differences which would be imperceptible to the
  1304.      ordinary user.
  1305.  
  1306.      The technical reason why the log scale was chosen is that a linear
  1307.      scale "bunches" nearly all machines in general use  at  the  lower
  1308.      end  of  the  scale,  making  it  difficult  to  distinguish  them
  1309.      visually.
  1310.  
  1311.      Technical Basis of the SPC indices
  1312.      ----------------------------------
  1313.      SPC's speed indices are based almost entirely on  high-level  math
  1314.      operations, integer addition for the main processor, and the  SINE
  1315.      function  for  the coprocessor.  These indices therefore treat the
  1316.      computer as though it were a calculator.   The  SINE  function  is
  1317.      used  to  measure  the  coprocessor,  since,  if  a coprocessor is
  1318.      available, SPC will use it to  perform  SINE  function  and  other
  1319.      floating point operations; if not, SPC emulates such operations at
  1320.      the software level.
  1321.  
  1322.  
  1323.                                 - 28 -
  1324.  
  1325.      The two indices generated by SPC are based on a count of how  many
  1326.      times the selected operation (addition for the processor, the SINE
  1327.      for  the  coprocessor)  is  performed in a fixed interval of time.
  1328.      The  processor  and  coprocessor  loops are fixed at 0.82 and 0.60
  1329.      seconds, respectively, so that,  for  all  machines,  total  speed
  1330.      testing  time  is exactly 1.42 seconds.  For a 386/20 machine this
  1331.      accounts for about 82% of execution time (exclusive of DOS  search
  1332.      and load time).
  1333.  
  1334.      Speed  testing time was not chosen arbitrarily, but was determined
  1335.      as a result of hundreds of experiments, the objective of which was
  1336.      to show the best tradeoff with index stability.
  1337.  
  1338.      In detail, each speed loop  contains  an  imbedded  loop;  in  the
  1339.      processor  loop,  each  imbedded loop runs 2500 integer additions,
  1340.      while in the coprocessor loop, each  imbedded  loop  runs  8  SINE
  1341.      calculations.
  1342.  
  1343.      The  relation  between  the number of outer loops executed and the
  1344.      rating is expressed by the following regression formulae:
  1345.  
  1346.      Processor:
  1347.      RATING = -1.27 + 0.2391 * LOOPS
  1348.  
  1349.      Coprocessor:
  1350.      RATING = -1.93 + 0.5340 * LOOPS
  1351.  
  1352.      The  reason  why  these are regression formulae, is that they were
  1353.      generated by plugging loop counts and corresponding Norton SI data
  1354.      into a standard linear regression analysis.  The purpose of  doing
  1355.      this  was  to make sure that the indices related to the Norton SI,
  1356.      at  least  within  the  range  for  which  the  Norton  Index  was
  1357.      originally  designed (XT's and AT's).  All of the points used were
  1358.      in the range below SI = 10.
  1359.  
  1360.      Above SI=10, SPC's index  will  begin  to  diverge  markedly  from
  1361.      Norton's,  especially  for  models  in  the 386 or 486 class.  For
  1362.      example,  SPC  measures  the  speed of a Micronics 386/20 at about
  1363.      36.7, whereas the Norton measure is about 22.0.  486 machines  are
  1364.      measured  by  SPC in the 94-240 range, reflecting their enormously
  1365.      greater calculating power, but the Norton  measure  merely  places
  1366.      them, indifferently, in the high 30's.  An Apricot 486/25 measures
  1367.      out  to  152  for  the  CPU  and  1300 for the NCP, while the same
  1368.      machine is measured by the Norton index merely at 38.8.
  1369.  
  1370.      Thus,  the  Norton  index  displays   what   mathematicians   call
  1371.      asymptotic  behaviour  -  a faster machine will be rated higher by
  1372.      this index; however, increases in the index  will  fall  short  of
  1373.      increases  in  underlying  performance,  as  though  the  SI  were
  1374.      approaching a limit or asymptote.  The value of this limit for the
  1375.      Norton index is probably  about  40.   In  contrast,  the  maximum
  1376.      values  of the SPC indices are much higher - about 670 for the CPU
  1377.      and about 8900 for the coprocessor.  These limits were  chosen  so
  1378.      as to prevent speed testing hangs.
  1379.  
  1380.  
  1381.                                 - 29 -
  1382.  
  1383.      The Coprocessor Index
  1384.      ---------------------
  1385.      The coprocessor option can be turned off, causing the  program  to
  1386.      perform   floating   point  operations  internally,  even  when  a
  1387.      coprocessor  is  present.   This  is  done  by  setting  the  NO87
  1388.      environment variable, thus -
  1389.  
  1390.      SET NO87={any string desired}
  1391.  
  1392.      To turn the coprocessor option back on, simply execute
  1393.  
  1394.      SET NO87=
  1395.  
  1396.      which has the effect of removing NO87 from the environment.
  1397.  
  1398.      When NO87 is set, the coprocessor speed index should be about  the
  1399.      same  as  the  CPU  speed index, reflecting the fact that the SINE
  1400.      function is being executed in the software, rather than  hardware,
  1401.      environment.  This normalised setting for the coprocessor index is
  1402.      not  exact for all machine types, but should be fairly precise for
  1403.      mid-range 386/20 machines.  The main purpose of this normalisation
  1404.      setting is to relate the coprocessor index to the processor index,
  1405.      which is, in the region 1.0 to 10.0, based on the Norton SI.   The
  1406.      coprocessor  index  therefore  should  provide a rough idea of how
  1407.      much faster the coprocessor is, as compared to the processor.
  1408.  
  1409.      It would obviously be desirable to adjust the NCP  index  so  that
  1410.      setting  NO87  in  the environment would always have the effect of
  1411.      making the NCP speed reading equal to that of the  CPU.   Such  an
  1412.      exact  normalisation,  however,  has  the effect of making the NCP
  1413.      speed measurements depend on the CPU readings, thus  removing  the
  1414.      NCP index as a separate measurement of the coprocessor.
  1415.  
  1416.      EMS
  1417.      ---
  1418.      Users  of  EMS  will  notice that the NCP speed index will drop by
  1419.      about 33% on  raising  an  EMS  application  such  as  a  ramdisk,
  1420.      Desqview,  or  Lotus  123  Release  3.   Release  3  of Lotus 123,
  1421.      however, is the only application known to  permanently  reset  the
  1422.      NCP speed after exiting back to DOS.  This condition, however, may
  1423.      be corrected by rebooting.
  1424.  
  1425.      I  have no explanation why the use of EMS should have this kind of
  1426.      effect on coprocessor speed, other than that the use of at least 2
  1427.      EMS handles  causes  the  coprocessor  to  do  some  kind  of  EMS
  1428.      polling.   (With  an EMS driver present, using only 1 handle, this
  1429.      effect does not occur).
  1430.  
  1431.  
  1432.  
  1433.                                 - 30 -
  1434.  
  1435.                    APPENDIX E: SPC PROCESSING ERRORS
  1436.                    ---------------------------------
  1437.  
  1438.      SPC is written so as to be thoroughly error-trapped throughout all
  1439.      its  procedures.   If,  in  the unlikely event that programming or
  1440.      logic related errors occur, SPC reports them in the form
  1441.  
  1442.      "Error XY in Line ZA"
  1443.  
  1444.      This  type  of  error  should be reported to the author as soon as
  1445.      possible, together with an account of the circumstances with which
  1446.      it was associated.  Beginning with SPC 4.5, errors  of  this  type
  1447.      will  not  stop  processing  with  a  direct exit to DOS, but will
  1448.      merely continue until the program ends normally.
  1449.  
  1450.      Errorlevels
  1451.      -----------
  1452.      SPC returns  DOS  error  level  code  0  when  termination  occurs
  1453.      normally.   If  there  is  not  enough  memory  or string space to
  1454.      operate SPC, however, processing returns with an error level of 1.
  1455.  
  1456.      Drive Errors
  1457.      ------------
  1458.      Drive  errors,  unlike  those  discussed  above and unlike in many
  1459.      other multidrive utilities, are not treated by SPC as reasons  for
  1460.      the termination of processing, but rather as means for identifying
  1461.      drive status in the drive listings.  The status message is written
  1462.      automatically  into  the line corresponding to the drive where the
  1463.      drive error occurred, beginning at the left margin of  the  Status
  1464.      Column.   The status messages which are currently supported in SPC
  1465.      run as follows:
  1466.  
  1467.       Unformatted disk
  1468.       Drive door not closed
  1469.       Drive timed out
  1470.       Device fault
  1471.       Disk media error
  1472.  
  1473.      Thus,  SPC  can  return  some  useful,  though  elementary,  drive
  1474.      diagnostic information - although by far  the  most  useful  drive
  1475.      status indicators will tend to remain the first two listed above.
  1476.  
  1477.  
  1478.