|
Der NKC Emulator
Die Umsetzung einer realistischen Emulation für den NDR Klein Computer war ein lange gehegter Wunsch von mir gewesen. Berufliche Verpflichtungen haben das Projekt immer wieder verzögert und fast vergessen lassen.
Erst eine persönliche Mail von Martin Merck, der einen eigenen Emulator entwickelt, hat mich dieses Projekt wieder aufnehmen lassen. Seither sind endlose Stunden an zusätzlicher Recherche, Programmierung und Tests in das Projekt geflossen.
Inzwischen gibt es ein umfangreiches Update des Emulators mit einigen Fehlerbehebungen und vielen Verbesserungen und Erweiterungen. Den Entwicklungsfortschritt und die Downloads erreicht ihr hier: Versionshistorie & Downloads
Das Hauptfenster des Emulators dient zur Steuerung der Emulation und zur Visualisierung der Hardwarekomponenten. Weitere Informationen können der ausführlichen Dokumentation entnommen werden, die sich ebenfalls im Download-Bereich befindet. Das Erscheinungsbild kann je nach gewählter Konfiguration unterschiedlich sein.
Das Monitorfenster stellt die Ausgaben der Grafikkarte dar und erscheint immer unterhalb des Hauptfensters. Im Bild sind außerdem der HEX-Editor und das Trace-Fenster sichtbar. Weitere Screenshots des Emulators sind auf zwei Unterseiten abrufbar.
Weitere Themen
Entwicklung
Der Emulator ist komplett in Java (JDK 17) programmiert und lässt sich sowohl auf Windows als auch auf macOS einsetzen. Die Entwicklung erfolgte unter der Entwicklungsumgebung NetBeans auf einem MacBook Pro M3. Die aktuelle Programmversion 1.1 wurde auf verschiedenen Systemen getestet.
Umfang der Emulation (Version 1.1)
In der aktuellen Version werden neben den Prozessoren 68008 und 68000 von Motorola und dem Mikroprozessor Z80 von Zilog die folgenden Baugruppen
- BANKBOOT (RAM ab Adresse 0)
- KEY (Tastaturadapter)
- GDP64K (Grafikkarte 512x256 s/w)
- FLO2 (Floppy Disk Controller)
- CAS (Kassetteninterface)
- PROMER (EPROM Programmierer 2764)
- CENT (Druckerschnittstelle)
- UHR (Echtzeituhr)
- IOE (Eingabe und Ausgabe)
unterstützt. Weitere Baugruppen und Prozessoren sollen folgen.
Installation und Start
Nach dem ersten Start der Emulation wir automatisch ein Ordner für die vom Benutzer veränderbaren Daten angelegt und eine Reihe von Konfigurationsdateien, ROM-Images und Disketten-Images dorthin kopiert, so dass der Emulator sofort mit Standard-Einstellungen genutzt werden kann.
Bekannte Einschränkungen
Es ist noch lange nicht alles perfekt und es gibt aktuell noch einige Einschränkungen, welche die Emulation ein wenig vom Verhalten der realen Hardware abweichend reagieren lassen.
- Das Timing bei der Verwendung des 68008 Mikroprozessors ist nicht ganz korrekt.
Die Emulation läuft bei der Verwendung des 68008 etwa 30 Prozent zu schnell.
- Die Darstellung bei schneller Umschaltung zwischen den Seiten der GDP64K (Flip-Modus)
flackert auf modernen Bildschirmen, bei denen es keine Nachleuchtzeit gibt.
- Die Emulation des Floppy-Controllers ist unvollständig und unterstützt keine Formatierungen
außerhalb der Spezifikation des 1797 Controllers.
- Derzeit werden keine Hardware-Interrupts unterstützt, es kann sein, dass nicht jede Software lauffähig ist.
- Unter Windows ist die Darstellung nur mit einer Bildschirmskalierung von 100% korrekt.
Geplante Erweiterungen
Ohne eine Priorität in der Reihenfolge festlegen zu wollen, stehen die folgenden Punkte auf meiner ToDo-Liste. Ich würde mich freuen, wenn ihr mir dazu eure Präferenzen mitteilen oder weitere Wünsche äußern würdet.
- Umsetzung der Baugruppe SER
- Frei skalierbare Anzeige des Monitors
- Umsetzung der Baugruppe COL256
- Korrektur des Timings für MC 68008
- Programmieren von EEPROM's innerhalb der Emulation
- Emulation des Prozessors 8088 von Intel
- Integrierter Diasassembler für Z80 / 68000 / 8088
- Weitere Fehlerbehebungen und Verbesserungen
|