While playing with my A500 recently, I had the idea to try out the TCP Stacks available for this platform. Since the little Amiga lacks a decent ethernet card I had to get along with the internal serial port and a SLIP connection. With 9600 Baud this is very slooow. So I kept on searching for a faster solution and found a PLIP implementation on Aminet. PLIP using the parallel port is much faster than SLIP, but you need a peer with a parallel port, too… and that’s the hard part today 😉
Following the same approach as found in my dtv2ser project, I just attached an AVR ATmega microcontroller to the parallel lines of my Amiga and implemented the PLIP counterpart there. The ATmega on the popular Arduino 2009 boards has a fast serial connection that maps to a USB port via a FTDI 232. This is the ideal data channel for transporting the PLIP packets to your host Mac or PC. With baudrates up to 500 kBaud (~50 KiB/s) and hardware handshaking with RTS/CTS you can easily transfer the data packets very fast to your PC and encapsulate them again in SLIP.
With this idea I started to implement the plip2slip firmware. Fortunately, the magPLIP driver for the Amiga comes with source and so I could port the code to the AVR. With slight modifications on the Amiga part (patch included) I was able to receive the first packets from the Amiga on the Arduino. Then I implemented a simple Ping mode that receives ICMP Ping Requests transforms them to Replies and returns them to the Amiga: plip2slip soon was a ping machine 😉 I repeated the same thing for the SLIP side and with a patched slattach tool on Ubuntu Linux I was soon able to ping the AVR from this side, too.
With the basic parts of plip2slip in place and working I finally added the transport/bridging mode that transfers all received PLIP packets to SLIP and vice versa. With this mode running I could ping the Ubuntu host from my Amiga! After some IP forward configuration on Ubuntu I was able to reach my home network and also the Internet with the A500.
And its real fast! An FTP download on my Amiga reaches 25 KiB/s when transferring 10k from Linux! So compared to SLIP with 9600 Baud its a real break through and worth the little hardware effort needed to build the Arduino device…
There is still lots of potential for tuning and optimizing, but I wanted to share this little project as soon as possible with you. So I crammed up everything you need into a little 0.1 release that is available on my shiny new plip2slip homepage. I hope you enjoy it and bring lots of your classic machines back to the net with decent speed…