<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Sun, 25 Jul 2010 11:50:10 +0100
From   : robert@... (Rob)
Subject: FileStore emulator 2010/07/24

On 25 July 2010 11:21, Rick Murray <rick@...> wrote:
>
> Is there a doc anywhere describing the interfacing protocol? I'm trying to
> unpick the AUN stuff, and work out WTF to do with stuff like flag-fill. [the
> FS is so damn slow it probably does that...]

(From memory)

Econet over Econet consists of a 4-way handshake (for normal packets.)
header>  <ack  data>  <ack

AUN is much simpler and consists of two UDP packets:
header+data>  <ack

Put very simply -

The BeebEm AUN emulation sits on the network side of the ADLC, and
basically captures the header, waits a moment, sends an ack back to
the beeb, captures the data, constructs the UDP packet out of both of
them, and sends it.  Flag fill is just simulated until an ack is
received (or it times out), The returned ack is the echoed back to the
beeb.   UDP being what it is, it's possible for more than one station
to be trying to talk at the same time - there is a sequence number in
the packets which should allow one to tie up an ack to the right sent
packet, allowing for interleaved transfers - I've seen econet
fileserver code for NetBSD that used this - but for BeebEm I basically
ignored all that as the beeb was only single task at a time!

For received data, it accepts the UDP packet, sends the header to the
beeb, waits for the ack, then sends the rest of the data.  Then it
echoes out the final ack back to the originator.

Timing is critical - for instance, you can't dump the data onto the
beeb too quickly after the acks, as it then ignores it...

I imagine that the code has much scope for improvement - I'm not a
particularly knowledgeable C programmer, and especially when I first
attacked it!!


Rob
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>