[Coco] TCP/IP Programming in Commodore BASIC

gene heskett gheskett at wdtv.com
Mon Nov 8 08:57:48 EST 2010


On Monday, November 08, 2010 08:38:09 am Jonno Downes did opine:

> Gene Heskett <gene.heskett at ...> writes:
> > Where did they find the memory?  A fully protocol compliant tcp/ip
> > stack on a 16 bit amiga was just shy of 50k.  For the coco, maybe
> > could be squeezed to 45k but that would take very careful hand
> > optimization & still couldn't begin to keep up with a 10Base-T half
> > duplex channel.
> 
> Kipper BASIC & BASIC on Bails are both built on top of the ip65 network
> stack - http://ip65.sourceforge.net/

Interesting, and I see you are the current maintainer, so thanks for the 
heads up Jonno.
 
> The minimalist version of the stack (ARP & UDP only) fits into a bit
> under 8KB code (which can be ROM) with a little under 4KB RAM for
> variables (of which the majority is a single 1500 byte input frame,
> where inbound ethernet packets are written to, and another 1500 byte
> output frame, where outbound ethernet frames are built up).
> 
> On top of that base, DHCP, DNS, TFTP & TCP add another 6KB or so of
> code. The code isn't really optimised, although I took some short cuts
> which mean it is not strictly RFC compliant. It dos seems to
> inter-operate with whatever stacks I've tested it with. Short cuts
> include

That is 18k, and an awful lot of other drivers & what not would have to be 
stripped from nitros9 unless the level 3 idea (which I haven't succeeded in 
making work here) could be extended to a 4th level.  My machine, with a 
boot that services my serial mouse and all the odd descriptors for the hard 
drive, has only around 9k of free system ram.  Opening 2 terminal paths 
eats that up due to the buffer space for I/O that needs for anything more 
than a straight one char at a time operation.
 
> - DNS requires a DNS server that supports recursive lookups
> - DHCP leases are not renewed
> - TCP window sizes are ignored
> - IP fragmentation is not supported
> - only a single TCP session is allowed
> - ICMP 'unreachable' messages are ignored
> 
> I don't know much at all about 6809, but looking at its register set I
> would think it would be a lot more efficient than 6502 code, which only
> has a single 8-bit accumulator and clunky 8-bit index registers.
 
Which can be used as 5, 8, or 16 bit references.  For a direct translation, 
I believe I'd need a 6502 asm language reference similar to the motorola 
silver book.  Is such a beast still in print at this late date?  Or can it 
be downloaded from someplace?

I see it carries the MPL license, but from what little I read of it, I 
couldn't tell if a translation to 6x09 code under the GPL3 would be legal 
or not.  I have DL the latest zip but have not unzipped or looked at it as 
I'd like to be sure of its being legal first.

-- 
Cheers, Gene
"There are four boxes to be used in defense of liberty:
 soap, ballot, jury, and ammo. Please use in that order."
-Ed Howdershelt (Author)
<xtifr> wow, I think I just used libtool to solve a problem -- somebody
        help me! :>
<luca> xtifr, STEP AWAY FROM THE KEYBOARD



More information about the Coco mailing list