  ͻ
    ParaSpd.Exe                               Parallel Technologies, Inc.  
    Parallel Port Information Utility         (C) Copyright 1993 Jay Lowe  
  ͼ
                                 Version 1.00
                               25 December 1993
                       Parallel Port Performance Tester

  Welcome to the Parallel Port Performance Tester
---------------------------------------------------
  ParaSpd is a small utility which may be used to test the relative
  performance of different types of parallel ports on a given system.

  How does it do this?

    Paraspd contains typical examples of IO code as commonly used in
    parallel port peripherals such as network adapters, disks, tape
    drives, and so forth. Examples of 4BIT, 8BIT, and EPP/ECP IO code are
    included, which allows you to compare the performance of different
    types of parallel ports.

    ParaSpd times the execution of the benchmark code samples as
    displays the results on one of three forms: Raw Data, Chart, Table.

  ParaSpd includes a database of it's results when run on various other
  computers, which again allows you to compare your system and ports to
  results attainable in other configurations.

  ParaSpd is a companion to Parallel, the Parallel Port Information System
  and many of the terms used in this document are described more completely
  in Parallel.Doc.

  Note that ParaSpd does not identify your parallel ports... it simply
  reports the relative speeds of different types of ports that might be
  used on your PC.  For example, ParaSpd produces EPP/ECP results even
  if you don't have an enhanced port.

  So, use Parallel to determine your PC's parallel port capabilities and
  configuration.  This will help you understand and apply ParaSpd's results.

  If you like, you can send us your system's ParaSpd benchmark results for
  inclusion in the ParaSpd database.  Just capture ParaSpd's output to a
  file and Email it to us via Compuserve or Internet at the above addresses.

  Program Operation
---------------------------------------------------
  To run ParaSpd, first disconnect any parallel port peripherals.

  ParaSpd only does input operations and only to the specified port, but
  it is nevertheless best to disconnect any devices you may have
  attached to the parallel port being tested. ParaSpd should cause no
  system side effects when used with it's standard parameters, but it
  can hang your system if you use it to test ports other than LPT ports.
  There is a warning dialog which tells you when this might happen.

  Then type ParaSpd at the command line, followed by two parameters:

  C:\> ParaSpd 378 Chart
                             Format for Results
                              Raw      ...     The raw measurements
                     Chart    ...     Vertical Bar Chart
                               Table    ...     Tabular Comparison
                
                              Parallel Port to be Tested
                               3BC
                   378
                                278
                                other addresses may be tested after a
                                warning message is confirmed. For example
                                address 37C is the EPP data port.

  C:\> ParaSpd                 By itself produces a help display

  C:\> ParaSpd ?               Produces more help

  Just as you'd expect, the ParaSpd results are extremely sensitive
  to variations in bus timings, since the IO instruction times are the
  major factor in transfer rate on most systems. Some PC buses have user
  selectable timings ... these yield some interesting results with ParaSpd.

  In general, ISA bus PC's will have a maximum of 1000 Kbytes/sec I/O
  speed for programmed I/O. EISA and MC buses have considerably better
  performance, but that may not translate into ParaSpd results in all
  cases. We have not tested any PCI or VLB parallel ports...

  Interpreting ParaSpd's Results
---------------------------------------------------
  ParaSpd displays four benchmark results: 4BIT, 8BIT, EPP/ECP, and Total.
  The values are in Kilobytes per Second (KBytes/Sec or KBps).

        4BIT        --  IO speed when performing 4BIT input operations

        8BIT        --  IO speed when performing 8BIT input or output

        EPP/ECP     --  IO speed when performing EPP input or output
                         also applies to programmed I/O using ECP ports

        Total       --  simply, the sum of 4BIT, 8BIT, and EPP/ECP.

  The Table display is sorted in order of descending Total transfer rate,
  an entirely arbitrary approach.

  ParaSpd's benchmarks reflect the IO programming practices commonly used
  in existing commerical parallel port peripherals. Paraspd does not always
  test the MAXIMUM transfer rate of the parallel port - rather it tests the
  MAXIMUM EFFECTIVE transfer rate that data can travel from a program in
  the PC to an external peripheral.  For technical junkies, this means that
  the test is not just an IO bandwidth test, but a mix of input accesses
  and memory references.

  So, because ParaSpd is reporting effective transfer rates, it's results
  are more useful for predicting the potential performance of peripherals.

  Most actual parallel peripherals will have lower transfer rates than the
  ParaSpd benchmark, because:

     (1) not all parallel peripherals use optimal IO methods

     (2) the performance of these devices is often affected by other
         system factors (network performance, disk latency, etc).

  However, since the operation of most parallel peripherals is "IO bound",
  it is often possible to predict the performance of device X on System A
  by measuring it's performance on System B and applying the ratio of the
  ParaSpd benchmarks on the two systems:


                         ParaSpd Result System A
  Device X on System A = -----------------------  *  Device X on System B
                         ParaSpd Result System B


  Remember to compare Apples to Apples (or rather PCs to PCs in this case).
  Don't use the fairly arbitrary "Total" performance number, but rather use
  the result for the appropriate port type on each system. Also remember
  that as the IO performance improves - on faster port types or faster
  systems - the device becomes less IO bound and you may begin to see
  diminishing returns as other factors begin to dominate the performance
  equation.

  Let's try an example:

     Suppose:   System B has a 4BIT port
                 and gets a ParaSpd rating of 60 Kbytes/Sec

                System A has an 8BIT port
                 and gets a ParaSpd rating of 200 Kbytes/Sec

                Device X (let's suppose a disk)
                 and actually runs at 40 Kbytes/Sec on System B

                Then, on System A you might expect

                                 200
          Device X on System A = --- = 3.33 * 40 = 133 Kbytes/Sec
                                  60

                Or, if System A had an EPP port
                 and gets a ParaSpd rating of 900 Kbytes/Sec

                Then,

                                 900
          Device X on System A = --- = 15.0 * 40 = 600 Kbytes/Sec
                                  60

  Clearly, then, the performance of parallel port peripherals is greatly
  affected by the port type, and to a lesser degree by bus and CPU
  performance, up to a limit which is specific to the particular device.
  The relationship between transfer speed and effective performance is
  not linear, but it may roughly correspond to a linear relationship in
  the range of lower transfer rates.

  With the 4BIT and 8BIT port types, bus performance is the major
  determining factor of overall performance, followed by the CPU speed.

  With EPP and ECP ports, the system's bus speed and memory architecture
  is more important than the CPU speed in determing IO performance. Many
  older systems with slower CPUs can still run faster than many modern
  PCs that have slower buses.

  Another interesting factor is that 286 systems are great at parallel
  port IO in 4BIT and 8BIT modes, because the 286 has a much more efficent
  IO design than it's more complicated successors.

  Not all parallel peripherals support all the port types - in fact only
  a few peripherals do support EPP or ECP type ports, although the number is
  increasing.

  Other Factors Affecting Parallel Port Performance
---------------------------------------------------
  Several other factors also affect the effective performance of external
  peripherals operating through the parallel port.  These include:

  Port Performance
  ----------------

  Signal delays         Many older ports in the 4BIT, 8BIT, and semi-8BIT
                        catagories have noise suppression circuitry which
                        imposes quite significant delays in excess of
                        typical design expectations.

                        Laptops, in particular, may have quite excessive
                        signal timings.

  Bugs and Quirks       Some parallel ports have rather peculiar logical
                        bugs in the behavior of their status and control
                        registers which require special case handling.
                        These ports may not work well, or at all, with
                        simple-minded device drivers.

  Bus delays            Some PCs implement extra wait states for I/O accesses.
                        These delays can be adjusted on some PCs by use
                        of the CMOS setup menus. Be especially careful
                        when attempting such adjustments, you may paint
                        yourself into a corner ... write down the original
                        values of any settings you change.

                        Also consider that changes to I/O access delays
                        will affect other devices in your system, such
                        as video cards, older memory cards, network cards,
                        and so forth.

  Peripheral Device Performance
  -----------------------------

  While we do not intent to attempt a tutorial on external parallel port
  peripherals design, there are a few factors worth mentioning that
  dramatically affect the performance of such peripherals.

  Pullups               Correct design of pullups is critical to ensuring
                        quick, crisp signal timings. This factor also affects
                        the cable length/quality tolerance of the device.

  Handshaking method    Since there is no standard method for handshaking
                        in 4BIT and 8BIT modes, parallel peripherals that use
                        different handshaking methods can show vastly
                        different performance behaviors.

  IO mode support       Some peripherals only support a limited selection
                        of parallel ports. For example, many low-end devices
                        or intentionally unspeedy devices only support 4BIT
                        mode. PTI-developed peripherals support a wide
                        selection of I/O techniques designed to get maximum
                        speed on a wide range of ports.

  These factors, and others, are critical in designing (any buying!) high-
  performance devices. Our firm is often retained to make performance
  improvements to existing devices ... careful handling of these issues
  often allows us to improve performance of existing devices by 200% - 400%!

  Using ParaSpd's Results
---------------------------------------------------
  Here are a few guidelines for getting the most from your external
  peripherals:

  1)  Use the fastest port type possible on your system.  EPP/ECP ports are
      best, followed by 8BIT ports, with 4BIT ports bringing up the rear.

      If you have a desktop system with only 4BIT capability, consider
      adding an additional 8BIT or EPP parallel port. However, you
      may want to wait a bit for ECP ports to enter the market... and
      wait awhile longer for them to drift down in price!

      If you have a laptop, you may be able to configure your parallel
      port from 4BIT to 8BIT and even to EPP. If you use parallel port
      peripherals, it's worth the time to become familiar with your
      CMOS (or other) setup options. You might have more "port" onhand
      than you've been using!

      [ refer to Parallel.Doc for more information on port configuration ]

  2)  When buying any computer, check the parallel port type, preferably
      by using the Parallel.Exe -- the Parallel Port Information Utility.
      Vendor's parallel port specifications are simply not 100% reliable.

      There is a certain amount of "slack" in the commonly used terms
      "unidirectional" and "bidirectional" and "enhanced" ports. It is
      a common practice for some vendors to imroperly identify their
      4BIT ports as "bidirectional".

      This is why we use the terms 4BIT, 8BIT, semi-8BIT, EPP, and ECP -
      to avoid ambiguity about the actual capabilities of the port.

      So ...  make sure you know what's REALLY inside.

  3)  When buying a laptop computer, you should seriously consider
      selecting one with an high-speed parallel port (EPP or ECP).
      Expansion is a constant challenge for portable systems, and even
      with the advent of PCMCIA, the parallel port is still an excellent
      alternative for system expansion... so keep your options open.

  4)  When buying a parallel port peripheral, select one that has EPP
      capability. Peripherals which are EPP-capable can be 2 to 10 times
      faster than other devices, depending on the type of peripheral.

  5)  Some vendors have special utilities that are required to change
      the parallel port type. You may want to check with your vendor,
      or peruse their bulletin boards or other electronic forums, since
      these utilities are usually made available in this way.

  6)  Don't expect your vendor to understand parallel ports. They are
      currently a very low priority with many vendors.  Some vendors
      have relatively well-informed tech support people who "know
      their ports" ... but don't take no for an answer automatically.

    Parallel Technologies, Inc.                     Products and Services
  -------------------------------------------------------------------------
    We at Parallel Technologies' have been creating innovative parallel
    port devices and software since 1989. Here are a few highlights:

        o  1st ... network adapter for the parallel port
        o  1st ... built-in passthrough printing port
        o  1st ... automatic self-configuring drivers
        o  1st ... universal support for all parallel ports
        o  1st ... network adapters with multiple media support
        o  1st ... Windows 3.1 multimedia driver for parallel adapter
        o  1st ... Multiple Parallel Device API for shared devices
        o  1st ... intelligent parasitic power for self-powered devices
        o  1st ... daisychained parallel port peripherals
        o  1st ... multiplexed parallel port peripherals
        o  1st ... Parallel Port Expansion System
        o  1st ... product development tools for OEMs and developers

        o  PC MAG Editor's Choice for Ethernet parallel port NIC
        o  most total network adapters  --  6 and counting...
        o  most total parallel port peripherals  --  17 and counting...

    We have in-depth experience with the wonderful and sometimes bizarre
    world of the PC parallel port and have served on both the EPP and
    IEEE 1284 standards committees. Having created more than a dozen
    parallel port devices with their associated drivers and software
    utilities, we are the most experienced source for off-the-shelf
    technology, developer tools and components, and contract services.

    Here are a few of our current and forthcoming products that you may
    find interesting.

    Parallel Port Developer's Kits
    -----------------------------

        Pipx was constructed with Parallel Technologies' advanced parallel
        port software, which has been used in over 15 parallel port devices
        including network adapters, parallel port disks, parallel port
        wireless IR adapters, parallel port MIDI interfaces, and so forth.

        This software includes support for all types of ports, IO code
        that is extremely resistant to port idiosyncrasies, and full
        autodetection of all port hardware features. The code is very well
        documented. A selection of sample drivers for parallel port devices
        is also available.

        Kit Versions
        ------------

        Device Level One Kit

                Hardware schematics, timing diagrams, access methods and
                all other hardware information required to implement basic
                peripheral devices that are compatible with all types of
                parallel ports (4BIT, 8BIT, semi-8BIT, EPP, ECP).
                Software section includes sample source code for register
                and block data access to the sample device.

        Device Level Two Kit

                Includes Level One Kit PLUS ... details on very-high speed
                IO techniques, designing passthrough ports, daisychain and
                multiplexor compatible Multiport devices. Also includes
                full EPP and IEEE 1284 specifications.

        IEEE "Super 1284" Printer Kit

                Prototyping board, FPGA equations, assembler source for
                1284 negotiation, Windows 3.1 driver source.

                Allows the rapid development of IEEE 1284 compatible printers.

                Also ... Super 1284 goes BEYOND the IEEE 1284 spec to allow
                full transparent bi-directional I/O on 4BIT, semi-8BIT, and
                8BIT ports.  This means that Super 1284 printers can operate
                bi-directionally at very high speeds (upwards of 250Kbyte/sec)
                even on the installed base of "old-fashioned" ports.

                Super 1284 maintains complete compatibility with IEEE 1284
                ports and printers ... it is a compatible enhancement that
                allows printer vendors to support high-speed operation
                independently of EPP and ECP port availability.

        Connectivity Kit

                Includes hardware schematics for 4BIT (laplink compatible),
                8BIT, ECP, and the Universal Parallel Port Cable.

                Includes driver source code for parallel port network drivers.

                This kit allows connectivity vendors to support very fast
                parallel port connections (500 Kbytes/sec on the ECP and
                Universal Cable) and to develop compatible products for the
                new ParaNet standard.


    Parallel -- the Parallel Port Information Utility
    -------------------------------------------------
        A handy utility which examines your system's parallel ports and
        reports the Port Type, IO address, IRQ level, BIOS name, and an
        assortment of informative notes and warnings in a compact and easy
        to read display. The output may be redirected to a file for tech
        support purposes. Parallel uses very sophisticated techniques for
        port and IRQ detection and is aware of a broad range of quirky port
        features.

        Parallel is the definitive parallel port Tech Support tool.

        Parallel is Freeware, subject to a restricted license agreement.
        It may be used free of charge for any personal, non-commercial
        purpose. Vendors should contact us regarding commercial licenses.

        A forthcoming commercial version of Parallel will use an active
        loopback connector enabling many new features including detailed
        resolution of port IO behavior and effective throughput testing.

    Parallel Port Networking
    ------------------------
        Now you can network two PCs using your favorite network software
        with just a parallel port cable between the systems.

        Supports: Netware Lite, Workgroups for Windows, MS Lan Manager,
        various TCP/IP systems, and other network operating systems that
        use the ODI, NDIS, or packet driver interfaces.

        Performance is better than you might expect, ranging from a low
        end of 40 KBps between 4BIT ports all the way up to an effective
        200 KBps between EPP ports using our TURBO cable. This upper range
        is better than many ethernet ISA cards.

        The drivers are available with or without cables, and existing cable
        types typically used with laplink type products are also supported.


    The MultiPort Parallel Port Expansion System
    --------------------------------------------
        The MultiPort 4-port multiplexor turns your parallel port into
        a general purpose expansion system, capable of supporting up to
        four simultaneously operating parallel port peripherals including
        network adapters, portable hard drives, tape backup units, CDROMs,
        floppies, and so forth. For example, you can use the MultiPort Mux
        to attach a network adapter, a hard disk, a CD-ROM, and a printer,
        all operating together through a single parallel port.

        Now your laptop (and desktop) can enjoy a full range of peripherals
        with all the portability, sharability, and convenience of parallel
        port devices.

    OEM Products
    ------------
        Most of our products are available for OEM licensing, including
        network adapters, EPP-capable hard disks, parallel-SCSI interface,
        parallel MIDI adapter, and the MultiPort parallel port expander.

        Also available are numerous off-the-shelf hardware and software
        components including: device schematics, FPGA equations, DOS and
        Windows driver source code, etc, etc.


    Development Services
    --------------------
        We specialize in contract development of parallel port peripherals
        and associated software including DOS and Windows device drivers.
        Our broad and deep experience with parallel port devices and our
        commitment to specialization allows us to design, implement, test,
        and support them very efficiently.

        You might be interested in our 30/90 development offer. We propose
        to convert any ISA peripheral into a parallel port device in only
        30 days to prototype, 90 days to production.

        We also offer more limited development support, such as developing
        additional devices drivers for existing peripherals.

        We are quite experienced with EPP ports and are ready to upgrade
        your existing parallel port devices to full EPP performance.

    Consulting and Training
    -----------------------
        In support of in-house development, you will find our consulting
        and training services invaluable in avoiding the pitfalls of
        parallel port development while achieving the highest possible
        product performance and quality.

