[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

NadaNet (was Re: brad w. Re: Ethernet & Internet on Apple 2)



Ed Eastman asked:

>>Michael J. Mahon wrote:
>>They boot over the network from the "master" machine,
>>...
>>The latest protocol addition was the network boot protocol,
>>  required to use machines that have no attached peripherals.
>>It currently works perfectly with two or three slaves, but
>>with a larger number (six), I have found that my original
>>idea for generating a (really) random ID at power-up is not
>>as random as I hoped.
>
>Why not have the 'master' IIe or the msg server IIe assign numbers upon 
>request.  Make the request part of the initialization or Boot process. 
>(Sorry, random thoughts.)

The master machine _does_ assign ID numbers.

The problem is that the machines must be distinguished in order
to communicate at all, since both arbitration and addressing
are based on an ID (temporary for boot, permanent after).

Otherwise, if two boards choose the same temporary ID, they
will forever attempt to communicate simultaneously and will
respond in lockstep to any message addressed to them,
preventing later disambiguation.

My problem was in obtaining a unique temporary ID so that
the master could assign a permanent one through protocols.

Many other network schemes use some unique address
built into the interface to prevent an endless loop of deterministic
collisions.  I hoped that I could use the (presumed) undefined
initial state of the video refresh generator to create the needed
non-determinism.  That assumption turned out to be wrong.

Since I was already using Paddle 3 as a pulse-stretcher for
a "send" LED on each board, I have now varied the paddle
resistor value just enough to guarantee unique paddle 3 read
values, which the boot ROM now uses to generate its temporary
ID.  Problem solved--but I had hoped to do all boards identically.

Because of the rather large tolerance on the paddle timing
capacitor, it is necessary to keep a record of the Paddle 3
value for each board, and to install a resistor that produces
a unique value.  ;-(

A less elegant solution, but it works well with six boards.  ;-)

-michael

Check out amazing quality sound for 8-bit Apples on my
Home page:  http://members.aol.com/MJMahon/