The goal of this project is to give a CoCo a simple way to do TCP/UDP/IP based communication across Ethernet. This will allow clients to be written to handle things such as FTP, telnet, smtp/pop mail, HTTP requests, etc. A CoCo, under RS-DOS or OS-9, could establish a connection to a remote server, then read and write data to that server in whatever format the protocol needs.
- Software KA9Q under OS-9 was able to dial in to a SLIP ISP connection and do some internet access.
- DriveWire has extensive internet support.
The idea for this project originally started when Cloud-9 announced their Superboard project back at the 2001 Chicago CoCoFEST! This add-on board was going to bring all kinds of hardware expansion to an existing CoCo, effectively eliminating the need for a bunch of external hardware like MultiPaks and hard disk interfaces.
One of the possible items on the Superboard was going to be an iChip from ConnectOne. The iChip was a serial-to-internet converter, and was available in a modem (serial) version or an Ethernet version. It contained all the low-level protocol and application layers, and presented them to the host system as simple Hayes modem style commands. Instead of dialing out to a BBS by issuing the command "ATDT 555-1212", the ConnectOne device allowed for "dialing" out to an IP address, such as a web server, and then reading/writing the data from that server.
There were also special commands to do full application layer things like retrieve a web page, FTP a file, or send an e-mail.
A decade later, the iChip is still available (and likely does even more) and can be purchased for $25. It would be a great product to simply have a pass through box that had RS232 on one side and Ethernet on the other. But no one has made one yet, so perhaps it's time to create something a bit easier.
The interface will act as an intelligent converted between Ethernet TCP/UDP/IP data and RS232 serial data. The CoCo will connect to the device via RS232, and the device will handle the TCP/UDP/IP stack and just pass between the CoCo and remote internet connection. Instead of actually supporting all the application layer things (like e-mail SMTP/POP), the device will rely on the CoCo to handle that part.
Effectively, this device will be like a hardware implementation of classic Unix socket()/listen()/bind() calls. The CoCo program (in RS-DOS or OS-9) will open up the serial port, issue a command to connect via TCP to some remote address, then be able to read/write data to that socket.
For anything that requires heavier processing than what the CoCo could easily do, there may be some room to put some of that inside the interface. But, in general, it will be up to the CoCo to have simple client apps for things like telnet, ftp, and mail.
- 2013/03 - Initial experiments were began using an Arduino UNO ($29.95 at RadioShack stores, or $22 from Amazon) and a Sainsmart Ethernet Shield ($17.99 from Sainsmart in China, or $21 shipped from Amazon in the USA). I was able to compile up the Ethernet library and do some simple tests -- retrieve a web page, serve a web page, obtain a dynamic IP address, etc.
- 2013/03/28 - Work began on a Hayes modem "AT" command parser, which would run on the Arduino and control the Ethernet operations. The rough code for handling the "+++" escape sequence has been posted to my website. The next step is to write an "AT" command parser and link it to the Ethernet code.
- 2013/04/08 - There is a Wizpro Serial-to-Ethernet adapter available that uses the same chipset that is found in the Arduino Ethernet shields. It has been seen online for as low as $22, though has it for $30 and lower shipping fees. This device, with a cheap power supply, could be plugged up to the CoCo's RS232 port. It may be an easier and cheaper solution -- needing only software. Aaron Wolfe reports that the DriveWire internet suite (telnet, inetd, etc.) could be used directly or with minor modifications with something like this.