<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://gunkies.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pugs</id>
		<title>Computer History Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://gunkies.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Pugs"/>
		<link rel="alternate" type="text/html" href="https://gunkies.org/wiki/Special:Contributions/Pugs"/>
		<updated>2026-04-29T21:03:33Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.30.1</generator>

	<entry>
		<id>https://gunkies.org/w/index.php?title=UNIBUS_Experimental_Ethernet_interface&amp;diff=32798</id>
		<title>UNIBUS Experimental Ethernet interface</title>
		<link rel="alternate" type="text/html" href="https://gunkies.org/w/index.php?title=UNIBUS_Experimental_Ethernet_interface&amp;diff=32798"/>
				<updated>2024-01-13T01:18:02Z</updated>
		
		<summary type="html">&lt;p&gt;Pugs: Add byte-swapping behavior of board&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A '''UNIBUS Experimental Ethernet interface''' was produced in small numbers by [[Xerox PARC]], to allow [[PDP-11]]'s to be connected to [[Experimental Ethernet]]s. It was a [[full-duplex]] device, which used [[Direct Memory Access|DMA]] to transfer [[packet]]s directly to and from [[main memory]].&lt;br /&gt;
&lt;br /&gt;
The [[network interface]] was a [[DEC card form factor|hex]] [[printed circuit board|board]] which plugged into an [[UNIBUS]] [[Small Peripheral Controller|SPC]] slot; a [[flat cable]] led from a [[Berg connector]] on the card to a [[bulkhead connecter]], from where a standard Ethernet cable led to the [[transceiver]].&lt;br /&gt;
&lt;br /&gt;
The [[network address]] (8 [[bit]]s on the Experimental Ethernet) was set by a [[Dual Inline Package|DIP]] switch on the card. Also, the [[hardware]] did not fill in the source address in the packet [[header]], the [[device driver]] had to do that.&lt;br /&gt;
&lt;br /&gt;
One minor oddity (by today's standards) was that the back-off after a [[Carrier-Sense Multiple Access with Collision Detection‎|collision]] was implemented by [[software]], in the device driver. A third [[interrupt vector]] was used when a collision occurred, not the normal output vector.&lt;br /&gt;
&lt;br /&gt;
The board implemented the obvious data path behavior of copying 16-bit [[UNIBUS]] words to/from the on-the-wire packets.  But because [[UNIBUS]] systems were [[little-endian]] and network byte order was [[big-endian]], this resulted in byte swapping compatibility problems, which had to be addressed in software, with substantial overhead. The 4.x[[BSD]] driver for this board used the incorrect behavior by default, but had a compile-time option for sites requiring interoperability.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Device registers==&lt;br /&gt;
&lt;br /&gt;
{| border=1&lt;br /&gt;
! Register !! Address&lt;br /&gt;
|-&lt;br /&gt;
|Output Word Count Register           || 760020&lt;br /&gt;
|-&lt;br /&gt;
|Output Bus Address Register          || 760022&lt;br /&gt;
|-&lt;br /&gt;
|Output Control and Status Register   || 760024&lt;br /&gt;
|-&lt;br /&gt;
|Output Start Delay Register          || 760026&lt;br /&gt;
|-&lt;br /&gt;
|Input Word Count Register            || 760030&lt;br /&gt;
|-&lt;br /&gt;
|Input Bus Address Register           || 760032&lt;br /&gt;
|-&lt;br /&gt;
|Input Control and Status Register    || 760034&lt;br /&gt;
|-&lt;br /&gt;
|Interface Network Address Register   || 760036&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===760020: Output Word Count Register===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=6 | Unused || colspan=10 | WC9 &amp;lt;---&amp;gt; WC0&lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
The [[two's complement]] of the number of words to transfer.&lt;br /&gt;
&lt;br /&gt;
===760022: Output Bus Address Register===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=15 | BA15 &amp;lt;---&amp;gt; BA01 || Unused&lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
16-bit main memory addresses restricted [[buffer]]s to the low 64KB of memory.&lt;br /&gt;
&lt;br /&gt;
===760024: Output Control and Status Register===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| Error || colspan=7 | Unused || Done || Int Enb || colspan=5 | Unused || Enable&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
Error was set by either a collision, or data was not available from the bus in time.&lt;br /&gt;
&lt;br /&gt;
===760026: Output Start Delay Register===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=8 | Unused || colspan=8 | Delay&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
===760030: Input Word Count Register===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=6 | Unused || colspan=10 | WC9 &amp;lt;---&amp;gt; WC0&lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
Although the documentation avers that this is a two's complement number, a device driver [[source code]] indicates that in fact it was a one's complement counter.&lt;br /&gt;
&lt;br /&gt;
The count needed to include the [[cyclic redundancy check|CRC]] word in the packet (otherwise on a maximum-sized packet an error would be indicated), but this was not actually transferred to memory.&lt;br /&gt;
&lt;br /&gt;
===760032: Input Bus Address Register===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=15 | BA15 &amp;lt;---&amp;gt; BA01 || Unused&lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
===760034: Input Control and Status Register===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
 | Error || colspan=7 | Unused || Done || Int Enb || colspan=4 | Unused || Prom || Enable&lt;br /&gt;
{{16bit-bitout}}&lt;br /&gt;
&lt;br /&gt;
Error was set on a CRC error, buffer overflow, or when the bus did not take a word in time.&lt;br /&gt;
&lt;br /&gt;
The 'promiscuous' bit caused all packets to be received, not just ones addressed to this interface.&lt;br /&gt;
&lt;br /&gt;
===760036: Interface Network Address Register===&lt;br /&gt;
{{16bit-header}}&lt;br /&gt;
| colspan=8 | Unused || colspan=8 | NA7 &amp;lt;---&amp;gt; NA0&lt;br /&gt;
{{16bitoctal-bitout}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
&lt;br /&gt;
* [https://xeroxalto.computerhistory.org/_cd8_/pup/.pdp-ethernet-hardware.press!1.pdf PDP EtherNet Network Connection]&lt;br /&gt;
&lt;br /&gt;
[[Category: UNIBUS Network Interfaces]]&lt;br /&gt;
[[Category: Ethernet Interfaces]]&lt;br /&gt;
[[Category: Xerox]]&lt;/div&gt;</summary>
		<author><name>Pugs</name></author>	</entry>

	</feed>