<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Fri, 10 Aug 2007 01:26:16 +0100
From   : jgh@... (Jonathan Graham Harston)
Subject: Emulating Econet hardware?

"Chris Thornley" <C.J.Thornley@...> wrote:
> That's great, I've been looking at the IC's Datasheet in the documentation
> area of BBC Lives MC6854 (Page 6) This datagram seems to differ from ones
> mentioned in the Econet AUG?
 
The packet is correct, you are probably looking at a diagram of a
frame. An Econet packet is sent in two frames via a four-way
handshake.
 
Econet packet:
+------+------+-----+-----+---------+------+------------------------+
| Dest | Dest | Src | Src | Control |      |                        |
| Stn  | Net  | Stn | Net |  Byte   | Port |          Data          |
+------+------+-----+-----+---------+------+------------------------+
     <------ - - Packet Header - - ------>   <-- - Packet Data - -->
 
Is sent in four frames using a four-way handshake as follows:
 
Scout:
 +----+----+---+---+----+----+
 |Dest|Dest|Src|Src|Ctrl|Port|
 |Stn |Net |Stn|Net|Byte|    |
 +----+----+---+---+----+----+
  <--- - Packet Header - --->
 
Scout acknowledge sent back:
 +----+----+---+---+
 |Dest|Dest|Src|Src|
 |Stn |Net |Stn|Net|
 +----+----+---+---+
Where Dest and Src are opposite to Scout frame
 
Data:
 +----+----+---+---+---------------------------+
 |Dest|Dest|Src|Src|          Data             |
 |Stn |Net |Stn|Net|                           |
 +----+----+---+---+---------------------------+
                     <-- - Packet Data - -->
 
Data acknowledge sent back:
 +----+----+---+---+
 |Dest|Dest|Src|Src|
 |Stn |Net |Stn|Net|
 +----+----+---+---+
Where Dest and Src are opposite to Data frame
 
Special cases
Broadcast (Dest=&FFFF), 14-byte Scout frame only:
 +----+----+---+---+----+----+---------+
 |Dest|Dest|Src|Src|Flag|Port| 8 bytes |
 |Stn |Net |Stn|Net|    |    | of data |
 +----+----+---+---+----+----+---------+
  <--- - Packet Header - --->
 
Immediates (Port=&00), 10-byte Scout:
 +----+----+---+---+----+----+---------+
 |Dest|Dest|Src|Src|Flag|Port| 4 bytes |
 |Stn |Net |Stn|Net|    |&00 | of data |
 +----+----+---+---+----+----+---------+
  <--- - Packet Header - --->
 
Flag Action
 &81 PEEK         Scout->, <-Data
 &82 POKE         Scout->, <-Ack, Data->, <-Ack
 &83 JSR          Scout->, <-Ack, Data->, <-Ack
 &84 USERPROC     Scout->, <-Ack, Data->, <-Ack
 &85 OSPROC       Scout->, <-Ack, Data->, <-Ack
 &86 HALT         Scout->, <-Ack
 &87 CONTINUE     Scout->, <-Ack
 &88 MACHINETYPE  Scout->, <-Data
 &89 GETREGISTERS Scout->, <-Data
 
> The Flags and FCS/CRC are stripped but the packets within this don't seem to
 
Program code never sees the Flags and CRCs. They are only ever
present on the wire itself. They never appear in the ALDC Data
registers accessed by the CPU. The ALDC puts all frames on the
wire in the following way:
 
+---------+---------------------------+-----+-----+---------+
| Opening | All transmitted data with | CRC | CRC | Closing |
|  Flag   |     zero bit insertion    |     |     |  Flag   |
+---------+---------------------------+-----+-----+---------+
 
You only need to know this if you are trying to build an actual
ALDC, not (generally) if you are programing an ALDC.
 
-- 
J.G.Harston - jgh@...                - mdfs.net/User/JGH
There are three food groups: brown, green and ice cream.
<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>