Re: (Joynet protocol)

2000-09-27 Thread B. Wijnen
On Tue, 26 Sep 2000, Adriano Camargo Rodrigues da Cunha wrote: UZIX processes have priority. You can use a daemon process as a JUMP driver (as TCP/IP do). The only problem that can arise is that it will slow down the link (assuming JUMP is a sincronous protocol - an asincronous

Re: (Joynet protocol)

2000-09-26 Thread Adriano Camargo Rodrigues da Cunha
In linux, interrupt handlers and their children are not processes and thus don't have a priority. If they claim the processor, they'll get it. So just ajusting the polling frequency should do. I don't know how uzix does this. UZIX processes have priority. You can use a daemon

Re: (Joynet protocol)

2000-09-26 Thread Adriano Camargo Rodrigues da Cunha
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. Pfff... It's really very simple. An IP packet consists of a header IP packets are a

Re: (Joynet protocol)

2000-09-26 Thread Adriano Camargo Rodrigues da Cunha
UZIX is multi-threaded. JoyNet send could be a thread and JoyNet receive another thread. It's not a good way to do it, Maarten. On "heavy systems", like a PC, it's a good solution. But on MSX, that has limited memory and clockspeed, it's not. You're wasting twice the

Re: (Joynet protocol)

2000-09-12 Thread B. Wijnen
On Fri, 8 Sep 2000, Laurens Holst wrote: Yes, a timeout is needed for such situations. But as long as the other side is connected (and running an os with JUMP drivers), everything should be ok and no locks are possible. You should _never_ assume that... One flawd bit on the ack line

Re: (Joynet protocol)

2000-09-08 Thread B. Wijnen
On Tue, 5 Sep 2000, Maarten ter Huurne wrote: Small numbers of cycles are not possible. But usually, the number of cycles needed is about 50 or 100. JoyNet singal propagation doesn't need waits that long. On 3.5MHz I got speeds of about 3.5 kilobyte per second, that is 3500*8=28000 bits

Re: (Joynet protocol)

2000-09-08 Thread B. Wijnen
I only replied to what I didn't agree with or what I had something to say about. Other things I cut out. On Wed, 6 Sep 2000, Maarten ter Huurne wrote: The protocol can be fixed: adding CRC and a timeout is sufficient. But I think a more elegant solution is possible, where you wouldn't need a

Re: (Joynet protocol)

2000-09-08 Thread Maarten ter Huurne
On Fri, 08 Sep 2000, you wrote: The protocol can be fixed: adding CRC and a timeout is sufficient. But I think a more elegant solution is possible, where you wouldn't need a CRC. What do you mean with that? Some error-correction algoritm in the protocol (equivalent to a CRC)? Or UDP-like

Re: (Joynet protocol)

2000-09-08 Thread Maarten ter Huurne
On Fri, 08 Sep 2000, you wrote: JoyNet singal propagation doesn't need waits that long. On 3.5MHz I got speeds of about 3.5 kilobyte per second, that is 3500*8=28000 bits per second, which is 125 clocks for a total 1-bit cycle (data + ack). Given the fact that there are quite a few

Re: (Joynet protocol)

2000-09-08 Thread B. Wijnen
On Fri, 8 Sep 2000, Maarten ter Huurne wrote: Error detection other than CRC. Under the assumption that there are only 1-bit errors, the protocol itself can detect errors. I'm not sure this assumption is correct, but gathering statistical evidence (hours of testing) should tell us more

Re: (Joynet protocol)

2000-09-08 Thread B. Wijnen
On Fri, 8 Sep 2000, Maarten ter Huurne wrote: For Linux, the best solution would be to write a serial driver for JoyNet. Then pppd can be used to connect to UZIX and you can use the existing PPP network device. Not at all. Linux knows the `network driver' as a special object. I

Re: (Joynet protocol)

2000-09-08 Thread Laurens Holst
Not at all. Linux knows the `network driver' as a special object. I should just write a network driver, so the parallel port is treated as a network device. Then you can just use the connection as if it is an ethernet card , which means there is no need for a point to point link. It also

Re: (Joynet protocol)

2000-09-08 Thread Laurens Holst
Yes, a timeout is needed for such situations. But as long as the other side is connected (and running an os with JUMP drivers), everything should be ok and no locks are possible. You should _never_ assume that... One flawd bit on the ack line and... The receiver thinks he sent an ack and

Re: (Joynet protocol)

2000-09-05 Thread Laurens Holst
And if the 2-computer case is very important, you can always make a single cable connecting 2 nodes. But it won't work for larger networks and it isn't really JoyNet, just partly compatible. I think Laurens even has the schematic for the 2-computer cable on his JoyNet page. Yes, it's there.

Re: (Joynet protocol)

2000-09-05 Thread Laurens Holst
I do have ideas on how to implement a bidirectional peer-to-peer link using JoyNet (=2 computers only). Let's hear it! Supporting more than 2 nodes is a matter of routing, and it can be solved in a higher layer. Not with JoyNet. With more than 2 computers, the databits arrive at a

Re: (Joynet protocol)

2000-09-05 Thread Maarten ter Huurne
On Tue, 05 Sep 2000, you wrote: Small numbers of cycles are not possible. But usually, the number of cycles needed is about 50 or 100. JoyNet singal propagation doesn't need waits that long. On 3.5MHz I got speeds of about 3.5 kilobyte per second, that is 3500*8=28000 bits per second, which

Re: (Joynet protocol)

2000-09-05 Thread Laurens Holst
For Linux, the best solution would be to write a serial driver for JoyNet. Then pppd can be used to connect to UZIX and you can use the existing PPP network device. You can also make a user-mode solution, that sends stdin over JoyNet and sends JoyNet input to stdout. That program can then

Re: (Joynet protocol)

2000-09-05 Thread Maarten ter Huurne
On Tue, 05 Sep 2000, you wrote: I hope you realize that implementing JoyNet in any system which also executes other tasks is a highly delicate matter??? It requires a lot of fine-tuning, and within a single application that's easy, but with multiple apps running... It's not hard at all if

Re: (Joynet protocol)

2000-09-04 Thread B. Wijnen
On Sat, 2 Sep 2000, Maarten ter Huurne wrote: How can a node (single computer in the network) determine whether its neighbours use JUMP or not? Especially, how can it do so without causing problems with other protocols? It can't. It is impossible to determine. I don't think it's

Re: (Joynet protocol)

2000-09-04 Thread Laurens Holst
There is another problem in the time before a transfer is started. The sender must wait for the receiver to be ready. If it waits while interrupts are disabled, interrupts can be disabled for quite a while (maximum: timeout value). If it waits while interrupts are enabled, the waiting can

Re: (Joynet protocol)

2000-09-04 Thread Maarten ter Huurne
On Mon, 04 Sep 2000, you wrote: That's true. But does it really matter? A unidirectional network seems a lot simpler to me. It is simpler to code, but slower and harder to get (you really NEED 2 cables for two computers). A ring scales just as well as a line: #nodes#cables:ring

Re: (Joynet protocol)

2000-09-04 Thread Maarten ter Huurne
On Mon, 04 Sep 2000, you wrote: Interrupts must be disabled during waiting and the timeout value must be smaller than 1/60th of a second. Music (games/apps) and Modem (apps) won't be happy with that. The good news is, that using a non-timed protocol interrupts can be allowed. It must be

Re: (Joynet protocol)

2000-09-04 Thread Adriano Camargo Rodrigues da Cunha
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. Maarten is right. Implementing JUMP so it's able to send and receive a byte through the network is enough for UZIX.

Re: (Joynet protocol)

2000-09-01 Thread B. Wijnen
On Fri, 18 Aug 2000, Maarten ter Huurne wrote: On Fri, 18 Aug 2000, you wrote: 3. When JUMP should be used The term "JUMP" is not introduced... JUMP = Joynet Univeral Message Protocol? Hmm did I forget that? sorry. It should be Joynet Unified Machine Protocol. I used this term to

Re: (Joynet protocol)

2000-09-01 Thread Maarten ter Huurne
On Fri, 01 Sep 2000, you wrote: If a coder wants to make a program (probably a game) that should run on multiple computers, she may use any protocol she desires. If she has a way of knowing what the other side of the connection does, for example because it also runs her software, she

Re: (Joynet protocol)

2000-08-19 Thread Laurens Holst
Timing has some serious disadvantages: - it depends on how strong the joystick port drives the signals (probably not equal for all MSX types) - it depends on cable length (actually capacity, but length is probably the most important factor) - it means the interrupt must be disabled when

Re: (Joynet protocol)

2000-08-18 Thread Maarten ter Huurne
On Fri, 18 Aug 2000, you wrote: 3. When JUMP should be used The term "JUMP" is not introduced... JUMP = Joynet Univeral Message Protocol? If a coder wants to make a program (probably a game) that should run on multiple computers, she may use any protocol she desires. If she has a way of

Re: (Joynet protocol)

2000-08-18 Thread Adriano Camargo Rodrigues da Cunha
I think we had this discussion before, but 32 bit CRC is overkill for small chunks of data. For example, MSX floppy uses 16 bit CRC for sectors (512 bytes long). A quick and interesting checksum algorithm is the one used for TCP/IP (one's complement of the sum of the one's