The over-all features of the project are divided into four basic areas.
1) Disk emulation. One may keep a menagerie of image files representing dozens of configurations, boot disks, application use cases, or special use scenarios. Those images can be selected statically when the Pi process is launched or even changed during run-time when the emulator senses an IDE reset pulse or a ‘Read Identification Sector’ command from the host. Image files can be backed up via Linux facilities (ssh, rsync, ftp, etc). Image file content can be manipulated on the Pi via loop-back mounts, mtools, or even x86 emulators built for ARM.
Image files are stored in a read/write partition of the Raspberry Pi’s micro-SD card used to store the operating system (Raspbian). A user may store as many image files as space allows.
Currently master, slave, or master and slave drive emulation is fully working. One may specify, via config file, the full path to an image file, optional CHS drive geometry to report to the host, IDE disk label, and other attributes. A variety of sizes from 10M to 8GB have been testing thus far.
2) DOS Redirector. Part of the NetPi-IDE project is a utility called PIMOUNT.COM. Pimount allows the mounting of any arbitrary directory on the Raspberry Pi’s file system as a DOS drive letter. This opens up enormous possibilities as that mount point could be an auto-mount path for a USB mass storage stick. It could be a Window’s remote file share via SAMBA. It could be a path the Pi is exporting over the network via SAMBA or NFS. Or it could be a parent directory containing all three! The ability to transfer files to your vintage machine just by dragging and dropping files on a modern Windows 10 box through thin air opens up mind-blowing expansion opportunities!
3) Virtual Network Interface. Plans are being laid to develop a DOS packet driver to transfer 802.1 Ethernet frames to the user space service daemon on the Pi side. There, they will be forwarded to a Linux tun/tap interface where traffic may be routed or bridged to physical network interfaces. IDE vendor commands will be used to marshal frames back and forth.
4) The Pi's serial console is routed to a UART block in the FPGA which is directly mapped to unused IDE registers. Serial data is buffered through a 2K FIFO. This allows any host system to see kernel messages including boot messages and have a guaranteed login to the Pi to perform configuration or troubleshooting without having to connect an external cable.
The project goals emphasis performance and compatibility with as many candidate host systems as possible. It's a bit like having a industrial IDE solid state disk module you can ssh in to.
That's a wonderful hack !