[ Zu JKCEMU ]


JKCEMU als Emulator eines benutzerdefinierten Computers

Bei dem benutzerdefinierten Computer können Sie in gewissen Grenzen selbst einen Computer virtuell zusammenbauen, der dann emuliert wird. Im Grundausbau besitzt der Computer eine Z80 CPU und 64 KByte RAM. In den Einstellungen können Sie weitere Hardware-Komponenten hinzufügen, die nachfolgend beschrieben werden.

Achtung! Es lassen sich nicht alle möglichen Hardware-Varianten nachbilden, sondern nur gewisse übliche Standardbeschaltungen.


ROM

Sie können beliebig viele ROM-Bereiche definieren, auch im gleichen Adressbereich liegende. Den ROM-Inhalt legen Sie durch Auswahl einer entsprechenden Datei fest. Wird keine Datei angegeben, enthät der ROM-Bereich FFh-Bytes.

Jeder ROM-Bereich kann optional schaltbar sein, d.h. entweder nur ausblendbar oder aus- und einblendbar. Dazu müssen Sie E/A-Adresse angeben, über die das Ein- und Ausblenden geschieht. Ist der ROM-Bereich nur ausblendbar, bewirkt ein Ausgabebefehl auf diese Adresse unabhägig vom ausgegebenen Wert das Ausblenden. Bei einem ein- und ausblenbaren ROM muss ein Bit sowie die Aktivität (H- oder L-aktiv) angegeben werden, mit dem geschaltet wird.

Die Programmausführung nach RESET startet gewöhnlich bei Adresse 0000h. Wenn der zu emulierende Computer eine andere Startadresse hat, dann markieren Sie den ROM, bei dem die Programmausführung beginnen soll, als Boot-ROM.

Beim Lesen aus einem ROM-Bereich wird die Liste der ROMs von oben nach unten durchgegangen und der erste passende ROM, d.h. der an der betreffenden Adresse eingeblendet ist, genommen. Wenn also mehrere ROMs im gleichen Adressbereich definiert und auch eingeblendet sind, wird aus dem ersten gelesen.

Im benutzerdefinierten Computer sind die ROMs durchschreibend, d.h., bei einem Schreibzugriff auf eine ROM-Adresse wird das betreffende Byte in den darunter liegenden RAM geschrieben. Wird später an der Adresse der ROM ausgeblendet, kann man den geschriebenen Wert lesen.

Bildschirmausgabe

Die Emulation der Bildschirmausgabe geschieht in der Form, dass ein Teil des RAM als Bildwiederholspeicher definiert wird. Jedes Zeichen, dass in dem RAM-Bereich steht, wird auf dem Bildschirm ausgegeben. Die Bildschirmausgabe ist alphanumerisch. Pixel- bzw. Vollgrafik wird nicht emuliert.

Zur Festlegung der Bildschirmausgabe geben Sie die Anfangsadresse des Bildwiederholspeichers sowie die Anzahl der Spalten und Zeilen an. Die Zeilen und Spalten sind im Bildwiederholspeicher aufsteigend organisiert, d.h., zuerst kommt Zeile 1 und darin die Zeichen von links nach rechts, dann Zeile 2 und so weiter.

Als Zeichensatz ist der englische DOS-Zeichensatz Codepage 437 hinterlegt. Optional können Sie eine eigende Zeichensatzdatei einbinden.

Der Bildwiederholspeicher liegt immer im RAM. Auch wenn in dem Adressbereich ein ROM eingeblendet ist, werden die Zeichen aus dem RAM angezeigt. In Verbindung mit der Eigenschaft, dass die ROMs durchschreibend sind (siehe weiter oben), lassen sich so ROM und Bildwiederholspeicher im gleichen Adressbereich betreiben.

Tastatur

Es werden verschiedene Varianten für den Anschluss einer Tastatur emuliert, von der sie eine auswählen können. Allen Varianten ist gemeinsam, dass die von der Tastatur gelieferten Zeichen mit Eingabebefehlen gelesen werden müssen. Demzufolge ist auch die Angabe einer E/A-Adresse notwendig. Bei der Emulation über ein einfaches Eingabetor geben Sie die E/A-Adresse rechts dahinter an. Bei den anderen Varianten wird die Tastatur an eine PIO oder SIO angeschlossen. Diese PIO oder SIO müssen Sie im Reiter E/A-Bausteine (siehe weiter unten) aktivieren und dort auch die E/A-Adresse angeben.

Anschlussvarianten der Tastatur:

E/A-Bausteine

In diesem Reiter können Sie die zum Z80-System gehörenden Bausteine PIO, SIO und CTC sowie eine KCNet-Karte und ein VDIP-Modul (USB-Anschluss) aktivieren. Pro E/A-Baustein müssen Sie die E/A-Basisadresse angeben. Jeder dieser Bausteine belegt ab der angegebenen Basisadresse vier aufeinanderfolgende Adressen:

BauteinE/A-AdresseBedeutung
PIO E/A-Basisadresse:
E/A-Basisadresse + 1:
E/A-Basisadresse + 2:
E/A-Basisadresse + 3:
Port A Daten
Port B Daten
Port A Steuerung
Port B Steuerung
SIO E/A-Basisadresse:
E/A-Basisadresse + 1:
E/A-Basisadresse + 2:
E/A-Basisadresse + 3:
Kanal A Daten
Kanal B Daten
Kanal A Steuerung
Kanal B Steuerung
CTC E/A-Basisadresse:
E/A-Basisadresse + 1:
E/A-Basisadresse + 2:
E/A-Basisadresse + 3:
Zähler/Zeitgeber 0
Zähler/Zeitgeber 1
Zähler/Zeitgeber 2
Zähler/Zeitgeber 3
KCNet und VDIP E/A-Basisadresse:
E/A-Basisadresse + 1:
E/A-Basisadresse + 2:
E/A-Basisadresse + 3:
PIO Port A Daten
PIO Port B Daten
PIO Port A Steuerung
PIO Port B Steuerung


Bei der SIO können Sie angeben, ob an deren Ausgängen ein Drucker angeschlossen ist. Wenn Sie an beiden Kanälen einen Drucker angeben, so werden die darüber ausgegebenen Bytes an den gleichen Druckauftrag angehägt, da JKCEMU nur einen Drucker emuliert.

Bei der CTC sind die Zähler/Zeitgeber durchgekoppelt, d.h., Ausgang Zähler/Zeitgeber 0 geht auf Eingang Zähler/Zeitgeber 1 und so weiter.

Zum Schluss legen Sie in dem Reiter fest, welcher Wert von nicht belegten E/A-Adressen gelesen werden soll.

FDC (Floppy Disk Controller)

Hier legen Sie fest, ob und an welchen E/A-Adressen ein Floppy Disk Controller mit vier angeschlossenen Diskettenlaufwerken emuliert werden soll. Wenn die Original-Hardware weitere E/A-Adressen zur Steuerung der Diskettenlaufwerke enthält (z.B. zum Ein- und Ausschalten der Laufwerksmotoren), so werden diese von JKCEMU nicht emuliert bzw. spielen in der Emulation keine Rolle (da gibt es keine Motoren, die ein- und ausgeschaltet werden könnten).

GIDE (Festplatten)

In diesem Reiter legen Sie fest, ob GIDE mit bis zu zwei angeschlossenen Festplatten emuliert werden soll. GIDE belegt 16 aufeinanderfolgende E/A-Adressen.

© 2017 Jens Müller