Alto
Hardware Manual
Section
7:
Ethernet
54
data word once every
5.44
microseconds on the
average.
The microcode signals the hardware when the
main memory buffer
is
empty and waits for the hardware to terminate; it
then
posts status.
A reset cominand
(SIO
with
AcO[14-15]
=
3)
will
always
bring the interface back to a reset state.
If
the
receiver
was
on, it
is
stopped even
if
a packet
was
pouring into memory.
If
the transmitter
was
on,
it
is
stopped,
even
if
it
was
in the middle
of
transmitting a packet (the result
to
the receiver
of
the interrupted
packet
will
almost certainly be an incomplete transmission and incorrect
CRC).
- Status will immediately
be
-posted in
EPLOC:
the microcode will post the reset status (5) in the microcode status byte, and the
hardware
will
post the conditions at the time
of
the reset in the hardware status byte. The contents
of
the
ECNTR
R register
will
be deposited in
EELOC,
and the contents
of
EBLOC
will
be
ORed
into
NWW,
possibly causing interrupts. After doing this, the interface and microcode are reset and ready for another
command.
The task specific microcode functions for the Ethernet interface are summarized below.
EIDFCT
*
BS
= 4 Input Data function. Gates the contents
of
the
FIFO
to
Bus[O-15],
and
increments the read pointer at the end
of
the cycle.
EILFCT
* Fl=13B Input Look Function. Gates the contents
of
the
FIFO
to
BUS[O-15]
but
does
not increment the read pointer.
EPFCT
Fl =
14B
Post Function. Gates interface status to Bus[S-15]. Resets the interface at
the end
of
the
cycle.
-
EWFCT
EODFCT
EOSFCT
ERBFCT
EEFCT
EBFCT
ECBFCT
EISFCT
Fl=15B
F2=10B
F2=llB
F2=12B
F2=13B
F2=14B
F2=15B
F2=16B
Countdown Wakeup function. Sets a flip flop in the interface that will
cause a wakeup to the Ether task on the next tick
of
SWAKMRT.
This
function must be issued in the instruction
aftet -a
TASK.
The· resulting
wakeup
is
cleared when the Ether task next runs,
- - -
Output Data fun£!ion. -Loads theHFo-from-Bus[O-15], then increments the
write pointer at the end
of
the cycle.
Output
§tart funf!ion. Sets the
OBUSY
flip flop in the interface, starting
data wakeups to fill the
FIFO
for output. When the
FIFO
is full, or
EEFct
has
been issued, the interface will wait for silence on the Ether and begin
transmitting.
Reset Branch Function. This command dispatch function merges the
ICMD
and
00.10
flip
flops,
into
NEXT[6-7].
These
flip
flops are the means
of
communication between the emulator task
and
the Ethernet task. The
emulator task sets them from
BUS[14-15]
with the
STARTF
function, causing
the Ethernet task to wakeup, dispatch
on
them and then reset them with
EPFCT.
End
of
transmission Function. This function is issued when all
of
the main
memory output buffer has been transferred to the
FIFO.
EEFCT
disables
further data wakeups.
Branch Function.
ORs
a one into
NEXT[7]
if
an
input
data
late is detected,
or an
SID
with
AcO[14:1S]
non-zero
is
issued,
or
if
the transmitter
or
receiver
goes done.
ORs a one into
NEXT[6]
if
a collision is detected.
Countdown
!!ranch
funf!ion.oRs
a one into
NEXT[7]
if
the
FIFO
is not
empty.
Input Start Function.
Sets
the
!Busy
flip flop in the interface, causing it to
hunt fur
the
beginning
of
a packet: ·silence -on the Ether followed by a
transition. When the interface has collected
two
words, it will begin
generating data wakeups to the microcode.