JKCEMU
der JKCEMU http://www.jens-mueller.org/jkcemu/ von Jens Müller emuliert den LC 80 in verschiedenen Versionen inkl. Audio-/Tape-Schnittstelle u.a.m.
KCEMU
Hinweis: Der folgende Text ist nur aus historischen Gründen noch vorhanden. Der KCEMU wurd nicht mehr weiterentwickelt. Mit dem JKCEMU steht ein leistungsfähiger moderner Emulator bereit!
2002: Der KC-Emulator von Torsten Paul
Der Emulator KCEMU von Torsten Paul http://kcemu.sourceforge.net/ emuliert viele DDR-Heimcomputer und ist für Linux und Windows verfügbar. Er ist Freeware und Open Source!
Hier möchte ich einige Tipps zu diesem Emulator (Version 0.38) und konkret zur Emulation des LC 80 geben.
Hilfe
Unter Windows funktioniert die Kommandozeilenhilfe nicht richtig. kcemu -? liefert keine Ausgabe, eine Umleitung in eine Datei schafft hier Abhilfe:
kcemu -? > hilfe.txt kcemu -v >> hilfe.txt kcemu -V >> hilfe.txt
erzeugt eine komplette Hilfedatei aller Kommandozeilenoptionen des Emulators.
Konfiguration sichern
Der Emulator erlaubt es, neben der Kurzform mit -1 .. -9 auch Konfigurationsdateien mit KC-Typ, geladenen Modulen, Sound, Grafikoptionen etc. zu nutzen. Dazu ist die Datei kcemurc (c:\Programme\KCemu\share\KCemu\doc\kcemurc.sample) zu modifizieren und unter eigenem Dateinamen speichern. Es gibt leider noch keine Möglichkeit, eine Konfiguration vom Emulator aus zu speichern.
Der Aufruf einer solchen Konfiguration erfolgt mit
kcemu -c kcemurc
LC 80-Emulation
In KCEMU ist die LC 80-Emulation mit kcemu -8
erreichbar. Die LC 80-Emulation unterstützt Tonausgabe (Version 3.8 nicht unter Windows) und erweiterten Speicherausbau (Module RAM2400, RAM2800, RAM3000, RAM4000, RAM8000). Emuliert wird die 2x1K-Version.
Konfigurationsdatei
Ein Beispiel einer Konfigurationsdatei für eine LC 80 mit 4K RAM ist im Paket kcemu.zip enthalten:
- kcemurc.lc80
#LC 80 Tape File: lc80.kct Default KC Model: lc80 Display Scale: 1 Display Effect: 1 Display Debug: 0 Frame Skip: 0 Enable Sound: 0 #Module # RAM2400 RAM Modul 2400h-27ffh # RAM2800 RAM Modul 2800h-2fffh # RAM3000 RAM Modul 3000h-3fffh # RAM4000 RAM Modul 4000h-7fffh # RAM8000 RAM Modul 8000h-ffffh Module_00000000: RAM2400 Module_00000001: RAM2800
Tasten
PC-Taste | LC 80-Äquivalent |
---|---|
ESC | Reset |
0-9, A-F(a-f), +, - | 0-9, A-F, +, - |
F1 | ADR |
F2 | DAT |
F3 | LD |
F4 | ST |
die NMI-Taste (interner Code 0x127) ist wohl nur über die Tastaturansicht erreichbar.
Implementierte Programme
Der Emulator enthält eine versteckte Funktion: die ersten drei Beispiele der LC 80-Anleitung sind direkt im Emulator implementiert.
Eingaben | Beispiel | Beschreibung |
---|---|---|
„LD“, „0000“, F10 | Beispiel 1 HELPUS | Anzeige 'HELPUS': Unter Verwendung des Unterprogrammes DAK1 ist der Text 'HELPUS' anzuzeigen, solange nicht die Taste „+“ gedrückt wird. In diesem Fall soll der Rechner in den HALT-Zustand gehen. |
„LD“, „0001“, F11 | Beispiel 2 HELPUS | Blinkende Anzeige 'HELPUS': Das Programm DAK2 steuert die Anzeige für die Dauer von rund 10 ms an. Der Text 'HELPUS' soll alle 0,5 Sekunden für 0,5 Sekunden aufleuchten. |
„LD“, „0002“, F12 | Beispiel 3 Blinklicht | Blinklicht-Steuerung: Das OUT-LED soll durch HIGH- bzw. LOW-Signale angesteuert werden, so dass diese LED blinkt. |
Emulation des Kassetteninterfaces
Leider bietet der Emulator momentan noch keine Möglichkeit, Programme zu speichern. Geladen werden können Programme aber als Binärdateien: wenn diese prog_0x2000.bin heißt, läßt sie sich über „Emulator→Load“ einzeln an die Adresse 0x2000 laden. Per „Emulator→Run“ geht auch Autostart, wenn die Datei prog_0x2000_0x2000.bin heißt. (prog steht für einen beliebigen Programmnamen). Diese Binärdateien können auch in ein „Tape“ eingeladen werden. Mit Doppelklick auf den entsprechenden Eintrag im Tape (über „Emulator>Kassette“ erreichbar) wird das Programm in den Speicher des LC 80 geladen und kann gestartet werden: RES,ADR,EX bzw. im Emulator: ESC,F1,ENTER.
Im Beispieltape kcemu.zip stehen die Spielprogramme zum Ausprobieren bereit!
Für Code-Erforscher
die LC 80-betreffenden Dateien des Emulators haben die Endung 8. In pio8.cc stehen die 3 integrierten Programmbeispiele; die Tastaturfunktionen sind in keyb8k.h und keyb8.cc (Codes vgl. keys.h) kodiert. mod_list.cc definiert die Module, beim LC 80 sind das RAM-Erweiterungen.