[Coco] CoCo Ethernet

Aaron Wolfe aawolfe at gmail.com
Wed Mar 27 16:58:48 EDT 2013


On Wed, Mar 27, 2013 at 2:41 PM, Joel Ewy <jcewy at swbell.net> wrote:
> On 03/27/2013 10:43 AM, Allen Huffman wrote:
>>
>> What functionality would you want to see in a CoCo Ethernet adapter to
>> make it worthwhile?
>>
>> It looks like basic TCP socket stuff is a given -- connect to a port, then
>> read/write data. This would allow simple retrieval of web server files. You
>> would basically do this:
>>
>> configure connection (IP address).
>> connect
>> print "GET /index.html"
>> then loop, reading the returned data
>
>
> Allen, my only thought on the matter is that I would like to see the
> software compatible, as far as reasonable, with the networking software we
> already have with DriveWire.  There are various levels on which the
> compatibility could occur, but you might consider making it mimic the DW
> API.  If you and Aaron could work together on establishing a single standard
> for networking on the CoCo, it would encourage others to write compatible
> software.
>

Hey, I was going to say that :)

The networking functionality in DriveWire has been designed with the
idea that DriveWire should/could go away some day in mind since day 1.
 The API is not tied to DW specifically and it has always been my hope
that eventually we will put ethernet hardware behind that API instead
of a DW server.

The existing TCP API in DriveWire provides a minimal interface for
using outgoing and incoming (listening) TCP sockets.  It does not have
provisions for configuring the network interface, UDP, ICMP etc, but
those things could easily be added if someone has an application.

Right now we already have a fairly capable web server, a telnet
client, a simple SMTP client (it can send mail, but that's all), and
some other networking programs in one state or another.
All of this software could work unchanged with ethernet hardware if we
just implement the same API in the ethernet controller.  We could also
change the API, I'm not stuck on how it works now, but as you said,
whatever the interface is we should make it open and consistent across
things like DriveWire and any "real" networking hardware.  My goal is
that folks can work on networking software today and use it with
DriveWire and then when/if networking hardware is available we already
have the application layer tools.

> Right now I can 'dw server list
> ftp://os9archive.rtsi.com/os9/somethingorother.lzh >somethingorother.lzh',
> which isn't bad.  There was once a 'wget' command that worked with an older
> version of the DW4 server.  But it would be easy to write a new one in C,

If you can alias "dw server list" to "wget", you'll have the same
thing that the old wget was.
What we really need is a proper wget that does the application layer
protocols itself (http, ftp, etc).  "dw s l" is having the server do
that part and just feeding a byte stream to OS9.

> assembler, or even Basic09 that would add a layer of polish and ease of use.
> Wouldn't it be nice if the same front-end program could work with DW4 and a
> forthcoming ethernet adapter?  Why not just make it take 'dw' commands?
> That way people who are, say, working on a crude web trawler in Basic09, can
> work with DW4 that exists now, and have it just work with your system when
> it is available.  There's something to be said for plugging in to a
> ready-made software base, especially in an environment as small as the
> CoCosphere.
>

Exactly!  Consider the DW networking a temporary shim that lets us
work on networking programs now in the hopes that we'll have
networking hardware in the future.

There are some "TCP/IP on a chip" solutions from WizNet that provide
an interface very similar to the DriveWire TCP API.  I believe it
would be quite possible to use these as a drop in replacement for the
functionality DW provides, but I'm just a software guy (and not much
of one at that!).

-Aaron


> JCE



More information about the Coco mailing list