On Tue, 5 Sep 2000, Maarten ter Huurne wrote:
> A ring scales just as well as a line:
>
> #nodes #cables:ring #cables:line
> 2 2 1
> 3 3 2
> 4 4 3
> etc.
Hmm, that is true indeed.
> > > Another problem is the granularity of the waiting loops. If you want to
> > > avoid self-modifying code, the fastest waiting loop is DJNZ, which takes
> > > 9 cycles for the last loop and 14 cycles for the other loops. So if you
> > > want to wait 10 cycles, you'll have to round to 23.
> >
> > Timing must indeed be thought of. There is no need to round. Loops that
> > are the same every time can easily be coded.
>
> Using JP instead of DJNZ, the number of cycles per loop can be made constant.
> But it's not possible to get every number of cycles (try 6). Nor is it
> possible to have any fine-grained control without using self-modifying code.
> And apart from being complex, self-modifying code doesn't work in read-only
> memory.
Small numbers of cycles are not possible. But usually, the number of
cycles needed is about 50 or 100. Around those numbers any number of
cycles is possible. Fine grained control would be large, but not
impossible (without self-modifying code).
> > > And after solving all the complex issues, there will be compromises on
> > > performance, so the main advantage of a timed protocol may diminish.
> >
> > You may be right. Are you suggesting to rewrite the document to a
> > unidirectional format?
>
> Yes, please.
> And not just unidirectional, but also a protocol without timing.
Naturally. Otherwise the whole thing would be useless.
> I think the term "collision" is reserved for overlapping signals on the
> hardware level. For example BNC (coax) networks have collisions, when two
> network cards send a packet at the same time. When that happens, both packets
> are destroyed.
That's just fine with me. I shall not use the term collision for something
else again. I was just explaining what I meant in my document.
> You wouldn't have to design the IP layer, because it already exists. We only
> have to find out what the minimum packet size is and whether using IP in a
> JoyNet network will work in practice.
>
> I don't know much about IP either, but Adriano Camargo Rodrigues da Cunha
> knows (and implemented it in UZIX) and Laurens Holst is now learning (and
> implementing) it. Guys, please enlighten us.
Adriano wrote that he would like someone to write some code to use joynet
in uzix. I would like to do it, when the protocol is finished. If anyone
else wants to do it (or doesn't want me to do it :P ), let me know, since
I could use my time on other things as well.
I would also like to write a network driver for linux, so you can connect
it to a router as well and connect the internet and all that.
> > > I agree with Manuel here. It's not about a "best" version, it is simply
> > > useful to know the "evolution tree" of a document.
> >
> > Hmm, ok. So the parent must be named in every document. By the way I don't
> > keep my old versions of it and I don't expect others to. There is no
> > archive of them, which makes it a bit useless, since you cannot see the
> > tree anyway.
>
> There is the mailinglist archive on msxnet.org...
But I don't post the document to the mailinglist every time I change it.
> Sometime soon, I'll post a design for a non-timed protocol that can handle
> errors. I'm not 100% sure yet it is correct, which is why I didn't release it
> before. However, I am not making much progress on my own, so I'll publish it
> hoping for some discussion.
In that case I shall not rewrite my own document. I shall wait for yours
and read it. I hope it is good ;) Adriano wrote he only needs a protocol
to send one byte. The rest is done by the IP protocol (or at least by the
implementation in UZIX).
> UZIX can be useful to test JUMP, because it has every layer of the network
> already implemented. JoyNet + JUMP can replace RS232 and we'll have a running
> system.
Exactly.
Bye,
main(){int c[4] ,x=4 ,l=getpid() ,i;; for( srand(l);c[ x]=- rand
()%6 ,x-- ;);; for( ;44> x;){ char a[9] ,*p=
"%.1f\n", b[9];x=i=0; gets(a);for (l=4 ;l-- ;)x+=-(a[l] -=48)==
(b[l ]=c[ l]); ;for (l=0;16 >i;l =++i %4)x
+=(b[i/4]+ a[l] ?0:( a[l]=b[i/4] =10)) ;printf(p,x *.1) ;};}
****
Problems? contact [EMAIL PROTECTED] See also http://www.faq.msxnet.org/
****