[Coco] Info on drivewire networking protocol

Brett Gordon beretta42 at gmail.com
Mon Apr 6 09:19:11 EDT 2015


Here's a list of "extra" notes I have made about network/virtual
serial port and DW4:

* Don't use SERINIT.   It doesn't work in all DW's I've used.  To open
and close ports use SERSETSTAT instead.
* If during a SERREAD/POLL loop DW reports that a channel has closed,
You'll need to also close it from the CoCo with SERSETSTAT,  otherwise
some portions of DW will lock up. (including the disk sector server).
issuing a INIT/RESET/TERM doesn't help here.  only SETSETSTAT seems to
prevent lock-ups.
* When using a channel for TCP,  Some of the textual response lines
from DW are duplicated, and they are duplicated with slightly
different end-of-lines.  You'll need to textually parse through this
stuff on connect to find the start of in-band data.
* If using older version of DW4, some response codes are in binary
(aka "0x00" ) rather then textually ( "0x30" or "0" ).
* If you plan on having one tcp virtual channel control the others (a
listener port), then know that the "connection" numbers as reported by
DW are in decimal ascii - text.  You need to resend this connection
number back to DW at times to accept, kill or join channels.  It may
be beneficial to use a atoi() type routine to convert the connection
number to binary, as this number can be 1 or 2 digits.

I think the the undocumented "UI" interface may avoid some of the
ascii-binary issues, but I'm guessing only Aaron Wolfe and Bill Pierce
have this unholy carnal knowledge :)

Overall,  with careful incremental development, I find DW's networking
to be pretty easy to do.  I'm surprised not more programmers take
advantage of it:  I've used it to:

Write my coco IRC client.
Provide a optical mouse for my coco's windowing environment.
Provide for headless coco booting.
YA-DOS's drivewire UI uses it, of course.
Provide terminals for some of my goofy coco multitaskers.

Hope this helps!

Brett








On Sun, Apr 5, 2015 at 6:38 PM, Joe Grubbs <jsgrubbs at hotmail.com> wrote:
> Brett, thank you so much for posting this link. Back when I was searching a few weeks ago I was unable to stumble upon this page.
>
>
>
> --- Original Message ---
>
> From: "Brett Gordon" <beretta42 at gmail.com>
> Sent: April 5, 2015 8:43 AM
> To: "CoCoList for Color Computer Enthusiasts" <coco at maltedmedia.com>
> Subject: Re: [Coco] Info on drivewire networking protocol
>
> http://sourceforge.net/p/drivewireserver/wiki/DriveWire_Specification
> On Apr 5, 2015 5:51 AM, "jon bird" <news at onastick.clara.co.uk> wrote:
>
>> Hi,
>>
>> Can anyone point me in the direction of any detailed information on how to
>> use the IP networking capabilities offered by Drivewire? Only information
>> I've managed to track down is from here:
>>
>> http://sourceforge.net/p/drivewireserver/wiki/OS9_Modules/#virtual-serial
>> -ports
>>
>> and here:
>>
>> http://sourceforge.net/p/drivewireserver/wiki/Writing_Network_Capable_Sof
>> tware/
>>
>> which rather cryptically mentions a network library but doesn't state
>> where it is/what its called and has links to two files which don't exist.
>>
>> Cheers,
>>
>>
>> Jon.
>> --
>> == jon bird - software engineer
>> == <reply to address _may_ be invalid, real mail below>
>> == <reduce rsi, stop using the shift key>
>> == posted as: news 'at' onastick 'dot' clara.co.uk
>>
>>
>> --
>> Coco mailing list
>> Coco at maltedmedia.com
>> https://pairlist5.pair.net/mailman/listinfo/coco
>>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> https://pairlist5.pair.net/mailman/listinfo/coco



-- 
Brett M. Gordon,
beretta42 at gmail.com


More information about the Coco mailing list