[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