[Coco] multiplexed serial into ip

Aaron Wolfe aawolfe at gmail.com
Mon Jul 6 22:54:53 EDT 2009


Thanks for the links.  This looks pretty doable, I guess I have a new
project to waste time on :)


On Mon, Jul 6, 2009 at 9:15 PM, Boisy Pitre<boisy at tee-boy.com> wrote:
> Aaron,
>
> All of the source for the server, drivers, etc. are online, it just takes a
> little understanding of the NitrOS-9 driver structure and system calls, and
> a design that can encompass different setups.
>
> Feel free to ask any specific questions here, and I'm sure we will be able
> to field them.
>
> Boisy
>
> On Jul 6, 2009, at 6:16 PM, Aaron Wolfe wrote:
>
>> Wow, this really has me interested.
>>
>> Using drivewire to provide one or more serial ports -> ip sockets
>> would open the door to:
>>
>> running a coco bbs available on the net
>> using coco term programs over the net to connect to those boards in
>> all their native coco splendor :)
>> even running a web server,etc on the coco
>>
>> a simple simulated AT modem implementation could "dial" ip addresses
>> using the hosts ip connection, and respond to incoming tcp connections
>> with a ring, etc.  standard coco term programs could probably become
>> internet enabled without modification.  just enter an IP address
>> instead of a phone number into your favorite term program, and away
>> you go.
>>
>> I am very willing to put time into this, and I have quite a bit of
>> programming experience but I'm new to os9 and very rusty with
>> assembler.  I could definitely implement the windows/mac/host ip side
>> of things, not so sure about the os9 side.
>>
>> is the source to the drivewire server available, or the protocol
>> documented anywhere?  i didn't find much on the web site or in the
>> docs included with mine.
>>
>> anyone want to tackle some or all of the os9 side of things?  is there
>> anything similar to this already existing? dont want to reinvent the
>> wheel.  any pointers are much appreciated.
>>
>> -Aaron
>>
>>
>> On Mon, Jul 6, 2009 at 4:11 PM, Boisy Pitre<boisy at tee-boy.com> wrote:
>>>
>>> Gentlemen,
>>>
>>> DriveWire 3 opens up the bit banger routines under NitrOS-9 for just what
>>> you want to do.  The DW3 subroutine module has 6 entry points much like a
>>> driver, and can be called from any other module.  In fact, the rbdw3 RBF
>>> driver calls into the DW3 subroutine module this way, and so does the
>>> clock
>>> module.  The DriveWire 3 has been totally modularized to facilitate
>>> extensions like the one you're contemplating.
>>>
>>> The difficulty, as you noted, is polling over the bitbanger.  Here's what
>>> I've done as an experiment: I have a protocol extension to DriveWire 3
>>> and
>>> rudimentary driver written that uses F$VIRQ to install a virtual
>>> interrupt
>>> service routine that hooks to the clock.  For some number of times per
>>> second, the clock driver will call the interrupt routine in my driver,
>>> which
>>> sends out a packet to the server to see if there is data available. The
>>> server responds back with one of two possible indications: (a) no data or
>>> (b) data available, and the data itself.  The driver then gets the data
>>> and
>>> processes this.
>>>
>>> Note that this is not nearly as ideal as an interrupt drive mechanism
>>> (which
>>> is not possible at the speed the bitbanger is being pushed), but it does
>>> work, and a similar model can be used to do what you want done.  All you
>>> need to do is design your own driver and protocol, and extend the
>>> DriveWire
>>> server to honor that protocol.
>>>
>>> Boisy
>>>
>>> On Jul 6, 2009, at 1:15 PM, Aaron Wolfe wrote:
>>>
>>>> On Mon, Jul 6, 2009 at 1:50 PM, William Schaub<wschaub at steubentech.com>
>>>> wrote:
>>>>>
>>>>> Aaron Wolfe wrote:
>>>>>
>>>>> I once had a similar Idea. this may be possible if an API to the
>>>>> drivewire
>>>>> routines could be exposed to developers on OS/9 you would have to
>>>>> extend
>>>>> the
>>>>> drivewire server software to handle some new custom opcodes and pass
>>>>> traffic
>>>>> back and forth. and you would have to do lots of polling but I think it
>>>>> could be done. but as far as I know I don't know if boisy ever added
>>>>> any
>>>>> way
>>>>> for a programmer to access the drivewire bit banger routines to extend
>>>>> the
>>>>> system. (I'm still using drivewire V2.0)
>>>>>
>>>>>
>>>>
>>>> that's interesting, I had not considered using the drivewire interface
>>>> to do this.  my current setup is completly incompatible with it, which
>>>> is why I was planning on getting a 'real' drive interface of some kind
>>>> to move forward.  the drivewire does provide both a disk system and a
>>>> realtime clock to os9... providing a usable serial port would be a
>>>> natural and very useful extension.
>>>>
>>>> currently, I terminate tcpip connections on a linux box running server
>>>> code that handles all the sockets and communicates with the coco by
>>>> way of a single ip connection to a terminal server.   the serial data
>>>> is given a header that indicates which session it belongs to on the
>>>> way in by my server code, and on the way out by the coco.  this allows
>>>> multiple simultaneous sessions to the coco.  my poc code is running in
>>>> basic (due to the limitations of my current setup) so the coco side is
>>>> not multitasking, it is handling the events sequentially, limiting its
>>>> usefulness to small things that can be done quickly, like chat rooms
>>>> or very simple bbs type systems.  however if the sessions could
>>>> terminate in devices under os9, this would become very nice for true
>>>> multiuser scenarios running any kind of software.
>>>>
>>>> crude ascii:
>>>>
>>>> (internet)  === lots of ip connections ===> (linux server) --- one ip
>>>> connection ---> (term server) --- one serial connection ---> (coco)
>>>>
>>>> (and it all actually works :)
>>>>
>>>> -Aaron
>>>>
>>>>
>>>>
>>>>>
>>>>> --
>>>>> Coco mailing list
>>>>> Coco at maltedmedia.com
>>>>> http://five.pairlist.net/mailman/listinfo/coco
>>>>>
>>>>
>>>> --
>>>> Coco mailing list
>>>> Coco at maltedmedia.com
>>>> http://five.pairlist.net/mailman/listinfo/coco
>>>
>>>
>>> --
>>> Coco mailing list
>>> Coco at maltedmedia.com
>>> http://five.pairlist.net/mailman/listinfo/coco
>>>
>>
>> --
>> Coco mailing list
>> Coco at maltedmedia.com
>> http://five.pairlist.net/mailman/listinfo/coco
>
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>



More information about the Coco mailing list