[Coco] multiplexed serial into ip

William Schaub wschaub at steubentech.com
Mon Jul 6 23:13:40 EDT 2009


Let me know how it turns out I wanted to work on a project a lot like 
this with the same/similar functionality and done in pretty much the 
same way. would be nice to see it made into reality. (I doubt I will 
ever have much time to work on coco projects)


Aaron Wolfe wrote:
> 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
>>
>>     
>
> --
> Coco mailing list
> Coco at maltedmedia.com
> http://five.pairlist.net/mailman/listinfo/coco
>   




More information about the Coco mailing list