Because almost no public protocol documentation exists for the Iomega ZIP100 parallel port drive, the project started with reverse-engineering the protocol from the Linux ppa driver and the DOS PALMZIP driver. I implemented the ZIP100 state machine and SCSI command handling, first testing it on MS-DOS, Windows 98, Windows XP and Linux inside DOSBox-X and QEMU before porting the emulator to real hardware.
The demo prototype runs on a PIC32MZ EF Starter Kit, using DMA to capture parallel port activity and emulate the ZIP100 interface in real time.
The article covers the protocol analysis, emulator implementation, hardware design, and debugging process. Source code is also included for the modified DOSBox-X/QEMU builds and the MPLAB project for the hardware version.