Ethernet III Controller (ND-110513) — Hardware Description, High Level¶
Card 324232 (print H = latest, Nov 1990), 32 schematic sheets in
../EthIIIImages/. Sources: the print-H schematics (surveyed, not fully traced) and
the ND-895xxx installation descriptions in NDInsight. There is NO technical manual
available (ND-814006 was never scanned). Detail companion:
EthIII-hardware-detail.md.
The Ethernet III is the ND-5000-generation Ethernet controller — a 68020-based single-board computer attached to the MF bus for data and to the OCTOBUS as a controllable station. Unlike the Ethernet II it boots from its own EPROM (with a resident OPCOM monitor); SINTRAN then downloads application modules (e.g. TCP/IP Basic Module/III) into its DRAM at system load.
1. System context¶
flowchart LR
subgraph HOST["ND-5000-era system"]
SINTRAN["SINTRAN<br/>(TCP-BA-LOAD:MODE loads app sw)"]
MFBUS[["MF bus<br/>(32-bit data path)"]]
OCTO[["OCTOBUS<br/>(control fabric)"]]
end
subgraph CARD["Ethernet III card 324232"]
MFA["MF-bus interface<br/>(MFA latch/control/driver/ident)"]
OB["OCTOBUS station<br/>ND_D_OBCON gate array"]
CPU["MC68020-16<br/>(33 MHz variant exists)"]
EPROM["Boot EPROMs<br/>DEVICE + OPCOM"]
DRAM["4 DRAM banks + parity"]
LANCE["Am7990 LANCE + Am7992B SIA"]
end
XCVR["Transceiver (+12V switched)"]
NET(("Ethernet 10 Mb/s"))
CON["RS-232 service console"]
SINTRAN --- MFBUS --- MFA
SINTRAN --- OCTO --- OB
OB -- "remote reset / halt / interrupt<br/>+ watchdog" --> CPU
MFA --- DRAM
CPU --- EPROM & DRAM & LANCE
LANCE --- XCVR --- NET
CPU --- CON
Product facts (installation descriptions, NDInsight):
- Ethernet III controller = ND 110513 (Ethernet II was 110063).
- Runs the TCP/IP Basic Module for ND-5000 in-card; loaded via
@MODE (TCP-IP)TCP-BA-LOAD:MODE, sequenced with XMSG and ND-5000 start.
- Several Ethernet III controllers can run TCP/IP simultaneously
(AIP-CONFIG:SYMB lists them and their TCP-device numbers).
2. Board block diagram (from sheet 4 "BLOCK LEVEL")¶
flowchart TB
subgraph BUSIF["BUS_INTERF (sheets 5-11)"]
LATCH["MFA latch/buffers"]
MFACTL["MFA control + ident"]
OBC["OCTOBUS station:<br/>ND_D_OBCON + S225 FIFOs<br/>+ '10 OCTO' command PAL<br/>+ LS292 watchdog"]
end
subgraph CTRL["CONTROL (sheets 12-19, 26-28)"]
CPU2["MC68020-16<br/>MCA/MCD(31:00)"]
INTC["Interrupt logic:<br/>LS148 + INT7-collector PAL<br/>+ MK68901 @ 3.6864 MHz"]
EPROM2["EPROMs: DEVICE + OPCOM<br/>+ EEPROM parameters"]
CLKS["60 MHz osc → 30/15/7.5/3.75<br/>break system, timeouts, reset"]
PROT["Memory protection"]
REGS["Register block"]
end
subgraph MEMB["MEMORY (sheets 20-25)"]
B0["DRAM bank 0"]
B1["DRAM bank 1"]
B2["DRAM bank 2"]
B3["DRAM bank 3"]
PAR["Parity"]
end
subgraph DEV["DEVICE (sheets 29-32)"]
L2["Am7990 LANCE<br/>(16-bit, behind '16 ARBIT' PAL)"]
S2["Am7992B SIA + 40 MHz"]
PWR2["Transceiver power ctrl"]
end
LATCH --- MFACTL --- CPU2
OBC -- "RESET1 / IHALT / OCINT7" --> INTC
CPU2 --- INTC & EPROM2 & PROT & REGS
CLKS --> CPU2 & INTC
CPU2 --- B0 & B1 & B2 & B3
PAR --- B0
L2 -- "DMA via 32-bit gasket" --- B0
CPU2 --- L2
L2 --- S2 --- PWR2
3. What is shared with Ethernet II, what is new¶
| Aspect | Ethernet II (110063) | Ethernet III (110513) |
|---|---|---|
| Host bus | ND-100 I/O bus (IOXT + level 12 + ident) | MF bus + OCTOBUS station |
| CPU | MC68HC000-12 @ 12.5 MHz | MC68020-16 (33 MHz variant annotated) |
| Local bus | 16-bit | 32-bit MCA/MCD |
| Boot | all code downloaded by ND-100 into DRAM | self-boots from EPROM ("DEVICE" + "OPCOM"), SINTRAN downloads app modules |
| Non-volatile | none | EEPROM 2-8 KB (parameters) |
| MFP | MK68901 @ 3.125 MHz, GPIP5/6/7 used | MK68901 @ 3.6864 MHz, LANCE int on GPIP4, CCINT/DMATRAP on GPIP0/1 |
| Console | 20 mA current loop (PCT) | RS-232 via MAX233 |
| Ethernet chipset | Am7990 + Am7992B | same Am7990 + Am7992B (16-bit, bus-gasketed) |
| DRAM | 512 KB, 1 bank | 4 banks + parity |
| Watchdog | none | LS292 watchdog (octobus supervised) |
| Remote control | ND-100 control-word bits | octobus commands: reset / halt / interrupt / counters |
| Breakpoints | forced-parity (PARITYDIS+BREAKMODE) | address comparators (BREAK32/UBRK/LBRK force BERR) |
| Timer hardware | MFP timers only | MFP timers only (no timer chip on either card) |
4. Interrupt architecture at a glance¶
flowchart LR
subgraph SRC["Sources"]
MFPS["MK68901<br/>(GPIP: LANCE int, CCINT, DMATRAP...<br/>+ timers + USART)"]
MC34["MF-bus MCINT3 / MCINT4"]
OC["OCTOBUS OCINT"]
CR["Console ready (RR/TR)"]
SEV["Fatal group → 'INT7' PAL:<br/>trap, bus error, PFAIL, parity,<br/>OCINT7, external INT7s"]
end
E["LS148 priority encoder"]
P["68020 IPL0-2"]
MFPS --> E
MC34 --> E
OC --> E
CR --> E
SEV -- "collected + readable on MD(23:16)" --> E
E --> P
The fatal/NMI-class sources are latched in a PAL20RA10 whose pending set is memory-mapped readable (MD 23:16) — a proper interrupt-source status register, where Ethernet II only had discrete flip-flops.
5. Clocks¶
| Clock | Value | Purpose |
|---|---|---|
| 60 MHz osc (66 for -33 variant) | ÷2 chain → 30 / 15 / 7.5 / 3.75 MHz | CPU (16CLK ≈ 15/16 MHz), system clocks |
| 3.6864 MHz xtal | — | MK68901 (timers + baud rates) |
| 40 MHz osc | ÷2 → 20 MHz | SIA (10 Mb/s Manchester) |
| 16 MHz | — | ND_D_OBCON octobus gate array |
| 2× LS292 counters | programmable | local bus timeout (TBERR), octobus watchdog (WDOGRES) |
No RTC chip, no interrupt/timer controller chip — periodic timing is MFP timers, exactly like Ethernet II.
6. Print D → print H changes¶
Revised sheets (title blocks 324232HH / 5452H, 90.11.21; sheet 8: 88.11.01):
8 MFA control, 11 OCTOBUS (ECO 380-136 rev B), 13 address decode,
15 CPU, 17 clocks/break/reset, 26 DRAM control, 30 device decode,
31 LANCE. The octobus attachment itself existed already in print D (1988) —
H reworked it.
7. Emulation notes¶
See EthIII-architecture-survey.md §6. Essentials: reuse of the RetroCore MK68901
(at 3.6864 MHz) and Am7990/7992 cores is straightforward; new work is the 68020
(DSACK sizing), the MF-bus slave, and an octobus station following the
OctobusND5000Station pattern (ND_D_OBCON speaks the station protocol: presence,
remote reset/halt/interrupt, watchdog). The 68020 address map is not yet extracted
(sheets 30 + 13 pending) — that is the prerequisite for emulation.