             =============================================
                 Amiga Parallel Port ZIP Drive Adaptor
             =============================================

              v0.0  By Bruce Abbott (bhabbott@inhb.co.nz)


Introduction
------------

  The Iomega ZIP 100 drive is available with a choice of either a SCSI
  or a parallel port interface. Unfortunately the parallel version could
  not be used on an Amiga - until now!

  This project consists of both hardware and software - a small interface
  that connects to the Amiga's parallel and joystick ports, and a driver
  file which causes the ZIP drive to operate like a standard SCSI device.



Background
----------

  ZIP drives were originally designed to operate via SCSI. Iomega realised
  that most peecee owners don't have a SCSI interface, so they developed
  the 'ppa3' chip to interface peecee printer ports to their drive. While
  this is OK for peecee owners, the Amiga's parallel port is not compatible
  with this solution. In particular, most of the required control lines are
  either missing, lacking in functionality, or not strong enough. To make
  the situation even more hopeless, Iomega did not release any specs for
  their interface chip.

  Recently I noticed that a Linux parallel port ZIP driver has appeared,
  thus solving the software specification problem. By examining this I was
  able to determine how to send commands to the ppa3 chip and what responses
  to expect. I then grafted this code onto a PD SCSI driver (Spartan 34.4).

  As the Amiga parallel port does not have enough I/O lines, I used the
  joystick port for one output and four inputs. I also added a TTL buffer
  chip (with Open Collector outputs) to increase output current capacity
  on the control lines.



Building the Interface
----------------------

  You need:-

   1 D25 plug
   1 D25 socket
   1 D9 plug
   1 7407 TTL buffer chip or equivalent (with o/c outputs)
   1 capacitor (about 1uF)
   some wire to connect the bits together

  A neat job can be done by starting with an RS232 jumper box, and
  a cable robbed off an old joystick. Wire the circuit according
  to the included diagram. Please check your connections carefully,
  as incorrect wiring could fry your Amiga's CIA chips!



Installation
------------

  Plug the hardware interface into your Amiga's parallel port and
  joystick (Game2) port, and attach your ZIP drive to its output.

  Copy the driver 'ppazip.device' to your DEVS: drawer. Also, copy
  the mountlist 'ZIP0' to anywhere you want (eg. Storage/DOSdrivers).

  If you have a Modem plugged in at the same time, make sure that its
  Ring Indicator line (pin 22) is disconnected. Otherwise an incoming
  call might interfere with the ZIP drive (this can also cause trouble
  with printers, and is due to RI being connected to SEL in the Amiga).



Performance
-----------

  It's not fast. However, the results are quite good for a parallel port
  interface - much faster than Parnet for example.

  Whilst the driver is necessarily CPU intensive, it does not disable
  multitasking or block interrupts. No errors occured when downloading
  files using ZModem protocol at 28,800baud, directly to the ZIP drive.

  Here's a DiskSpeed 3.1 report, from my A1200 with 68030/40MHz.

    Device: ZIP0:

    Test Intensity: Low   Performance Stress: None

           13 Files/s Create
           19 Files/s Open/Close
           48 Files/s Scan
           51 Files/s Delete

          925 Seek/Read

    Buffer Size     512            4096           32768          262144
    -----------     ---------      ---------      ---------      ---------
    Bytes/s Create      23831          89478         100312         108590
    Bytes/s Write       24559          93433         105475         113599
    Bytes/s Read        24646          93426         105323         113615



Limitations
-----------

  Currently the device does not check for disk changes. You must run
  'diskchange' to log on a new disk. (I don't yet know how to do SCSI
  media change detection!).

  SCSI Direct commands are not supported, which may prevent programs
  such as 'ZIPTools' from functioning. Therefore you probably won't
  be able to remove write-protect passwords etc.

  The ZIP's printer passthrough doesn't work. This is due to the
  control lines being routed to different pins by the adapter. Of
  course you can't print while the driver is active anyway (since
  it needs exclusive use of the parallel port).

  Because the interface uses your joystick port, some games may
  be unplayable.


Bugs
----

  Due to the lack of diskchange detection, if you remove the disk
  and then try to access it a read error will probably occur. Just
  put the disk back in and hit 'retry' a few times :-)

  If the drive goes to sleep (due to no access for a long time) errors
  may occur on subsequent accesses. To avoid this, eject the disk and
  re-insert it _before_ accessing the disk.


Legal
-----

  This project is Public Domain. Do with it as you wish, but don't
  blame me if you damage your Amiga, ZIP drive or anything else! It
  might trash files on your ZIP disks, so don't use it for anything
  important unless you make backups first.



                Bruce Abbott (bhabbott@inhb.co.nz)

