Die Kernschaltung besteht neben der CPU 65816, einem Reset-Controller, einem Taktgenerator (ASICCLK), SRAM-Bausteinen (8x512k), einem EPROM 27512 und einer Speichersteuerung (ASICMMU).

Der Taktgenerator erzeugt aus festen Takt von 18 MHz einen variablen CPU- und Systemtakt. Die maximale CPU-Frequenz beim Zugriff auf das RAM beträgt 9 MHz. Beim Zugriff auf das EPROM und die Ein-Ausgabegeräte wird der Takt synchron reduziert. Während des DMA-Betriebs durch den IDE-Controller wird der CPU-Takt ganz angehalten und nur der Systemtakt erzeugt. Zugriffe auf das Video-RAM werden durch den Taktgenerator mit dem CRT-Controller synchronisiert. Dies verhindert Bildstörungen bei Schreib-/Leseoperationen im Video-RAM. Das ASICCLK generiert außerdem diverse Adress-Select-Signale und ermöglicht zusammen mit dem Reset-Controller eine Watchdog-Funktion.

Die Speichersteuerung ist per Software konfigurierbar. Die notwendigen Tabellen für die Verwaltung des virtuellen Speichers finden in einem eigenen VSRAM (512k) Platz. Die einzelnen virtuellen Speichersegmente haben eine Größe von jeweils 32kB. Nach einem Reset ist das System zunächst im realen Speichermodus und das EPROM ist aktiviert. Nachdem die Daten vom EPROM in das SRAM geladen wurde, kann das EPROM per Software deaktiviert werden. Nach der Initialisierung des VSRAM kann das System in den virtuellen Modus umgeschaltet werden.

Zur Absicherung des Betriebssystems unterstützt das System einen System- und einen Anwendungsmodus. Der Wechsel vom System- in den Anwendungsmodus kann per Software erfolgen. Der Wechsel zurück in den System-Modus erfolgt ausschließlich durch einen Hard- oder Software-Interrupt und damit über genau definierte Schnittstellen. Im Anwendungsmodus haben Programme nur Zugriff auf das RAM (Adressen bis 03FFFF). Zugriffe oberhalb dieser Adresse führen zu einem ABORT-Interrupt. Ebenfalls zu einem ABORT-Interrupt führen Versuche, auf ungültige Speichersegmente zuzugreifen oder Schreibzugriffe auf Nur-Lese-Segmente durchzuführen. Optional kann auch eine Programmausführung aus einem Schreib-Lese-Segment zu enem ABORT führen, um eine Ausführung von Code in einem Datensegment zu verhindern. Da auch einige Opcodes die Systemintegrität gefährden können, lassen sich diese im Anwendungsmodus unterdrücken. Sobald die Opcodes SEI, STP, WAI oder XCE im Anwendungsmodus auftreten, werden sie optional durch ein NOP ersetzt und lösen ein NMI aus.

Das Bildschirmsignal wird durch das ASICCRT in Verbindung mit einem Datenpuffer, dem Video-RAM (64k) und dem Zeichengenerator (2732) erzeugt. Zuerst hatte ich einen umschaltbaren Grafikmodus geplant. Dieser musste jedoch aufgrund mangelnder Ressourcen des CPLDs entfallen. Stattdessen kann das höchstwertige Bit eines Zeichens optional für eine Erhöhung der Leuchtstärke verwendet werden.

Die IDE-Schnittstelle (ASICIDE1 und ASICIDE2) kann eine normale Festplatte oder über einen Adapter eine Compact-Flash-Karte anbinden. Dabei hat die CPU direkten Zugriff auf die IDE-Register sowie auf interne Register der CPLDs. Die Datenübertragung zwischen dem Laufwerk und dem RAM erfolgt per DMA. Dafür wird für jedes zu übertragende Byte die CPU für einen Takt angehalten. Den Abschluss der Operation meldet die Schnittstelle per IRQ an die CPU.

Das ASICETC enthält neben der Interrupt-Steuerung, einem System-Steuerungsregister, einer Schnittstelle für den Uhren-Chip RTC58321 und einem EEROM-Emulator eine bidirektionale PS/2-Tastaturschnittstelle. Der EEROM-Emulator dient als Ersatz eines 9346-EEROMs der Konfiguration des Ethernet-Controllers, da einzelne Parameter nur in der Startphase über diesen Weg gesetzt werden können, insbesondere das Full-Duplex-Bit. Die Tastaturschnittstelle arbeitet ohne CPU-Unterstützung und erzeugt für jeden empfangenen Scancode einen IRQ. Die CPU kann über die Schnittstelle auch Befehle an die Tastatur absetzen, welche dann vom Controller selbsttätig an die Tastatur übertragen werden.

Die Echtzeituhr RTC58321 wird durch einen Akku von 3,6 V im ausgeschalteten Zustand mit Strom versorgt. Eventuell kann die Uhr in einem späteren Entwicklungsschritt entfallen, wenn die Zeit via NTP über das Netzwerk bezogen werden kann.

Als Ethernet-Controller wird ein RTL8019AS eingesetzt. Die verwendete RJ45-Buchse beinhaltet bereits den Ethernet-Transformator und die LEDs. Der Controller erlaubt eine Geschwindigkeit von 10 MBit und ist ebenfalls via IRQ angebunden.

Zuletzt enthält die Schaltung noch einen VIA 6522. Dieser vielseitige Baustein enthält neben vielseitigen Schnittstellen auch zwei Timer. Das 6522 kann ebenfalls einen IRQ auslösen.

Das Gesamtschaltbild seht unter dem folgenden Link zur Verfügung: