>>>> theoretically infinite devices on a network
>>>Why would you want to?
>>Don't have any reason to limit it - it's natively unlimited.
>I have a maximum of 254 calculators, and I see no way anyone is ever going to need more than that. So instead of adding more overhead I prefer to keep things simple and realistic instead of being too theoretically correct.
But that's my point - there's nearly no extra overhead for the infinite possibilities. I assume 254 because FF or 00 is used for all-net addressing?
>>>> recommended maximum 256 bytes-per-frame, protocol maximum 65536 bytes per frame
>>>No frames here, transmit till you drop
>>Not worried about one device hijacking the network?
>Nope, because it's not like the big bad Internet; hackers will still have to physically connect their calcs to yours. And if a program error blocks the network then it's a badly written program and the author should be ashamed of himself. I don't want to take responsibility for that.
I'm trying to anticipate as many problems as possible: bad programming, random disconnection, lots of noise, calculator crashes sending random stuff to the linkport, etc.
>>>> full duplex communication with several collision and data integrity checks including parity and checksum
>>>None yet implemented, but so far I have yet to come across a situation where I'd need them
>>Real devices run into electromagnetic noise a lot more than PTI.
>I'm not talking about PTI. I dare say I have experimented more with actual hardware than you have.
You probably have, but I'm including this for the same reason as above.
>>>> Designed as an interrupt, so fits perfectly within safeRAM and communicates with programs via two dynamic buffers (one read, one write)
>>>Interrupt yup, but no buffers, only real time communication because buffers make coding for it even more difficult
>>Fair enough. I found buffers made nonblocking communication possible across the board.
>You're right. But there are timing issues to consider. When I give order to send something I want it to send that data NOW and not when it thinks its time to do so. So when my program reaches the next instruction I'll know that my data has been sent (and received on the other end), while your program only knows that it "should be sent some time soon". That may be nice on a PC where you have all kinds of events happening all the time, but on a singlethreaded machine I don't like that kind of uncertainty.
As a matter of fact, I have a flag that gets reset by the interrupt when the frame goes through and is acknowledged by the receiver, so you know _exactly_ where it's at.