[ Zu JKCEMU ]


JKCEMU als HC900- und KC85/2..5-Emulator

Die Computer HC900, KC85/2, KC85/3 und KC85/4 wurden im VEB Mikroelektronik Mühlhausen hergestellt. Beim KC85/2 handelt es sich eigentlich nur um einen umbenannten HC900. Da aber im Laufe der Zeit das Betriebssystem weiterentwickelt wurde, enthielten die als KC85/2 produzierten Geräte meistens eine neuere Betriebssystemversion, nämlich CAOS 2.2 anstelle von HC900-CAOS. Aus diesem Grund werden beide Geräte auch als separate Systeme emuliert.

Der KC85/3 ist ein um zusätzlichen ROM erweiterter KC85/2. Neben der neuen Betriebssystemversion CAOS 3.1 ist der im ROM enthaltene BASIC-Interpreter das Hauptunterscheidungsmerkmal.

Eine wirkliche Weiterentwicklung in der Hardware ist der KC85/4. RAM und ROM wurden vergrößert und die Video-Hardware überarbeitet. Letzteres führte in Verbindung mit der wiederum neuen Betriebssystemversion CAOS 4.x zu einer deutlichen Steigerung der Grafik-Performance.

Screenshot der KC85/4-Emulation

Den KC85/5 hat es dagegen nie offiziell gegeben. Die Leiterplatte des KC85/4 ist bereits für Speicherschaltkreise mit einer größeren Kapazität ausgelegt. Unter einem KC85/5 versteht man deshalb einen KC85/4 mit auf 320 KByte (256 + 64) ausgebautem RAM und einer neuen Betriebssystemversion, die diesen zusätzlichen Speicher verwalten kann. Ein größerer ROM ist auf der Leiterplatte des KC85/4 ebenfalls vorgesehen, wird aber von JKCEMU nicht emuliert.

1. Emulierte Hardware

Emuliert werden die Grundgeräte sowie optional die Diskettenerweiterung D004 und einige Module.

Der emulierte Speicher beträgt bei:

1.1. Tastatur

Die KC85-Tastatur enthält in der oberen Reihe einige Tasten, für die es üblicherweise keine gleichnamigen Tasten auf der Tastatur des Emulator-Rechners gibt. Die Tabelle zeigt das Mapping der Tasten in der oberen Tastaturreihe:
KC85-TasteJKCEMU-TasteTastencode
F1F10F1h
F2F20F2h
F3F30F3h
F4F40F4h
F5F50F5h
F6F60F6h
BRKF7 oder CTRL-C03h
STOPF8 oder CTRL-S13h
INSEinfg oder CTRL-Z1Ah
DELEntf1Fh
CLRF9 oder CTRL-A01h
HOMECTRL-P10h

Die Zweitbelegung der Funktionstasten, die die Codes F7h bis FCh liefert, ist auch im Emulator mit Shift-F1 bis Shift-F6 umgesetzt.

1.2. RAM

RAM 0 (0000-3FFF) und RAM 4 (4000-7FFF, nur KC85/4 und KC85/5) liegen in einem globalen RAM-Bereich, der von allen emulierten Systemen gemeinsam genutzt wird.

1.3. Module

Folgende Module werden optional emuliert:
ModulBemerkung
M003 V.24-Modul mit einem an Kanal A angeschlossenen Drucker
M006 BASIC-Modul für HC900 und KC85/2,
Dieses Modul funktioniert zwar auch im KC85/3, macht aber wenig Sinn, da dort das BASIC bereits eingebaut ist. Im KC85/4 und KC85/5 führt die Aktivierung des Moduls aufgrund der anderen Hardware zu einem Programmabsturz.
M01164 KByte RAM
M02216 KByte Expander RAM
M032256 KByte Segmented RAM
M034512 KByte Segmented RAM
M0351 MByte Segmented RAM
M035x44 MByte Segmented RAM
M036128 KByte Segmented RAM


1.4. Drucker

Mit dem V.24-Modul M003 wird auch ein Drucker emuliert. Alle über Kanal A dieses Moduls ausgegebenen Bytes werden an den aktiven Druckauftrag angehängt. Schalten Sie dazu in den Einstellungen die Emulation des Moduls M003 ein. Nun müssen Sie noch die datentechnische Verbindung vom Betriebssystem zum Modul herstellen. Das erledigt ein entsprechender Treiber. Beim KC85/4 und KC85/5 ist ein Treiber für das Modul M003 bereits im Betriebssystem enthalten. Starten Sie diesen mit dem Befehl V24OUT. Für die anderen KC85-Systeme müssen Sie einen geeigneten Treiber separat laden.

1.5. Tongeneratoren und Kassettenrecorderanschluss

Welche erzeugten Töne vom Emulator ausgegeben werden, legen Sie durch Auswahl einer entsprechenden Funktion in dem Fenster Audio/Kassette fest. Bei der Funktion Töne ausgeben (Emulation des Lautsprechers) hören Sie das Mischsignal aus beiden Tongeneratoren, welches auch der Lautstärkebeeinflussung unterliegt. Bei allen anderen Audio-Funktionen wird das Signal des Tongenerators 1 (linker Kanal) ohne Lautstärkebeeinflussung ausgegeben, d.h. das Signal, mit dem Dateien auf Kassette gespeichert werden.

1.6. Diskettenerweiterung D004

Die Diskettenerweiterung D004 ist ein Aufsatzgerät, welches ein ROM-Modul (ansprechbar über Modulsteckplatz FC) und ein eigenes Prozessorsystem verfügt.

Den ROM-Inhalt des ROM-Moduls können Sie in den Einstellungen frei wählen. Zur Auswahl stehen die originale ROM-Version 2.0 von Robotron und die später von Mario Leubner weiterentwickelte Version 3.2, oder Sie binden eine externe ROM-Datei ein. Lassen Sie die Einstellung auf Standard stehen, so wird folgende ROM-Version verwendet:
Emuliertes SystemD004-ROM
HC900
KC85/2
KC85/3
KC85/4
Version 2.0
KC85/5 Version 3.2


Einige in JKCEMU integrierten Werkzeuge sind auch mit dem D004-eigenen Prozessorsystem benutzbar. Beim Aufruf des Debuggers, Reassemblers und Speichereditors werden Sie gefragt, ob Sie auf das Hauptprozessorsystem (das im Grundgerät) oder auf das D004-Prozessorsystem zugreifen möchten. Es ist auch möglich, ein Werkzeug zweimal zu öffnen, einmal für das Hauptprozessor- und einmal für das D004-System.

Achtung! Das D004-Prozessorsystem ist vom Hauptprozessorsystem aus steuerbar. So kann es z.B. auch zurückgesetzt (RESET) oder komplett deaktiviert (Dauer-RESET) werden. Wenn Sie den Debugger für das D004-Prozessorsystem geöffnet und dort die Programmausführung angehalten haben (z.B. Haltepunkt), kann es trotzdem vorkommen, dass das Hauptprozessorsystem die D004 zurücksetzt oder gar deaktiviert. Um das zu verhindern, sollten Sie evtl. auch das Hauptprozessorsystem anhalten, z.B. im Hauptfenster mit dem Menüpunkt DateiPause.

2. Im ROM enthaltene Software

System/ModulSoftware
HC900HC900-CAOS
KC85/2HC-CAOS 2.2
KC85/3 HC-CAOS 3.1
HC-BASIC
KC85/4 KC-CAOS 4.2
HC-BASIC
KC85/5 KC-CAOS 4.4
HC-BASIC
M006 HC901-CAOS
HC-BASIC
D004 je nach Einstellung Version 2.0 oder 3.2


3. Sonstiges

3.1. Einbindung externer ROM-Images

Sie können in den Einstellungen externe ROM-Images an jeder beliebigen Adresse einbinden. Aufgrund des Bankswitchings sind diese ROM-Images aber nicht immer sichtbar, sondern nur in folgenden Fällen:

3.2. Speichern eines BASIC-Programms

JKCEMU bietet eine spezielle Unterstützung für das Speichern und Laden von BASIC-Programmen. Wird ein System mit im ROM enthaltenen BASIC-Interpreter emuliert, d.h. ein HC900 bzw. KC85/2 mit aktiviertem BASIC-Modul M006 oder ein KC85/3...5, dann sucht JKCEMU das BASIC-Programm im Adressbereich des ROM-BASIC-Interpreters (ab Adresse 0401). Bei einem HC900 bzw. KC85/2 ohne BASIC-Modul wird dagegen das BASIC-Programm gespeichert, das im Adressbereich des RAM-BASIC-Interpreters liegt (ab Adresse 2C01).

3.3. Einfügen von Text

Das Einfügen von Text aus der Zwichenablage erfolgt normalerweise in der Art und Weise, indem für jedes einzufügende Zeichen das Drücken der entsprechenden Taste simuliert wird. Dieses Prinzip ist recht langsam. Für den HC900 und für die KC85/2..5 gibt es in den Einstellungen die Option Einfügen von Text direkt in den Tastaturpuffer. Bei dieser Option, die standardmäßig aktiv ist, werden die einzufügenden Zeichen direkt in den Tastaturpuffer geschrieben. Das ist wesentlich schneller, da dadurch das Drücken der entsprechenden Tasten nicht simuliert werden muss.

Sollten Sie jedoch in der Emulation ein anderes als das in JKCEMU integrierte Betriebssystem verwenden, wird diese Option möglicherweise nicht mehr funktionieren, da dort die Tastaturabfrage anders gestaltet sein kann. In dem Fall müssten Sie die Option ausschalten.

3.4. Zeitverhalten der Bildschirmsteuerung

In den Einstellungen die Option Zeitverhalten der Bildschirmsteuerung emulieren. Diese Option sollten Sie ggf. auf leistungsschwächeren Rechnern ausschalten, da sie relativ viel Rechenleistung benötigt,

An den Eingängen des Zähler-/Zeitgeberbausteins (CTC) liegen der Bildsynchronimpuls und der doppelte Zeilensynchronimpuls an. Dadurch ist es möglich, Software zu schreiben, die mit der Ausgabe der einzelnen Pixelzeilen auf dem Bildschirm synchron läuft. Manche Programmierer nutzen diese Möglichkeit aus, um spezielle Effekte zu erzeugen (z.B. Farbscrolling). Damit solche Effekte auch im Emulator zu sehen sind, muss die Visualisierung mit dem Zeitregime an den CTC-Eingängen synchron emuliert werden. Und genau das macht die Option Zeitverhalten der Bildschirmsteuerung emulieren.

Es gibt allerdings nur sehr wenige Programme, die solche Effekte erzeugen, und bei denen somit diese Option eine Wirkung zeigt.

© 2009-2010 Jens Müller