[ Zu J1013 ]
Allgemeine Informationen über J1013
J1013 ist ein in Java entwickelter Software-Emulator,
der den in der DDR vom VEB Robotron-Elektronik Riesa
produzierten Mikrorechnerbausatz Z1013 nachbildet.
1. Das Original: Z1013
Der Z1013 ist ein einfacher 8-Bit-Computer mit folgenden Eigenschaften:
- Mikroprozessor U880 (kompatibel zum Z80)
- Taktfrequenz: anfangs 1, später 2 MHz
-
2 KByte ROM mit einem einfachen als Monitorprogramm
bezeichneten Betriebssystem
-
Arbeitsspeicher: anfangs 16, später 64 KByte RAM
(davon 61 KByte nutzbar)
-
1 KByte Bildwiederholspeicher für 32x32 Zeichen
(ASCII-Zeichen und Blockgrafiksymbole in schwarz/weiß)
- Bildausgabe über analogen TV-Anschluss
-
Folientastatur mit 32 Tasten (Auslieferungszustand),
Später konnte auch eine "echte" Computer-Tastatur
nachgerüstet werden (Alpha-Tastatur).
- Massenspeicher: Kassettenrecorder oder Tonbandgerät
- 1 frei verfügbarer paralleler User-Port
Da der Z1013 als Bausatz verkauft wurde,
haben viele Anwender daran herumgebastelt
und Hardwareerweiterungen entwickelt
(z.B. komfortablere Tastatur, ROM und RAM aufgerüstet,
Joysticks, Druckeranschluss, Taktfrequenzumschaltung,
umschaltbarer Zeichensatz, 256K-RAM-Floppy, ...).
2. Der Emulator: J1013
J1013 emuliert vollständig einen Z1013
mit 64 KByte Speicherbestückung
und einigen üblichen Erweiterungen.
2.1. Emulierte Hardware
-
Mikroprozessor U880 (Z80) einschließlich
undokumentierter Funktionen (siehe auch
Test mit ZEXALL und ZEXDOC)
-
2 KByte ROM (bei Verwendung eines externen Monitorprogramms
so groß wie dieses)
- 1 KByte RAM Bildwiederholspeicher
-
64 KByte RAM Arbeitsspeicher
(der tatsächlich nutzbare Bereich hängt
von der emulierten ROM-Größe ab)
- PIO einschließlich Interrupt-System
-
Tastatur: Folientastatur (8x4-Matrix),
Alpha-Tastatur (8x8-Matrix) sowie die Tastaturen
K7659, K7669 und S6009 mit Eigenbauansteuerung
nach Brosig/Eisenkolb (12x8-Matrix)
-
Anschluss für Magnettonbandgerät
(wahlweise über Audio-System oder über Sound-Dateien,
siehe auch Kassetteninterface)
-
Userport: Emulation der Spielhebel nach
"Jugend+Technik" Heft 06/1987,
"practic" Heft 04/1987 und
"practic" Heft 01/1988,
Bedienung dieser emulierten Joysticks mit der Tastatur
und unter Linux auch mit einem realen Joystick
- 2 RAM-Floppies mit je 256 KByte
-
Schaltung nach Peters mit der Erweiterung des IO-Ports 4
(Hardwareumschaltung)
Im Emulator ist kein Monitorprogramm enthalten.
Normalerweise ist dies zwingend notwendig, nicht jedoch in J1013,
denn dieser emuliert das Monitorprogramm.
Immer wenn die Programmausführung auf eine Adresse läuft,
auf der im Original eine dokumentierte Systemfunktion beginnt,
bildet J1013 diese Funktion nach und simuliert anschließend
einen Return-Befehl.
Dieses Prinzip hat den Vorteil,
dass die Systemfunktionen im Kontext des Emulators wirken, z.B.:
-
Die Systemfunktionen zum Laden und Speichern von Dateien
gehen nicht auf die Kassettenschnittstelle,
sondern auf das Dateisystem des Emulator-Rechners.
-
Druckausgaben gehen nicht direkt an einen Drucker
(viele heutige Drucken würden diese Form der Daten
gar nicht mehr verstehen),
sondern an das Drucksystem des Emulator-Rechners.
-
Die Tastatur wirkt wesentlich flinker,
da die im originalen Monitorprogramm enthaltenen Zeitschleifen
für die Tastenentprellung nicht durchlaufen werden.
Es gibt allerdings auch Nachteile,
die sich jedoch nur in seltenen Fällen auswirken:
-
Einige wenige Programme rufen undokumentierte Funktionen
des Monitorprogramms auf.
Solche Funktionen werden von J1013 jedoch nicht emuliert.
Dadurch verhalten sich diese Programme im Emulator anders
als im Original.
-
Es gibt auch Programme, die erwarten in dem Adressbereich
des Monitorprogramms Programmcode,
um diese scheinbar zufällige Byte-Folge zur Erzeugung
von Zufallszahlen zu verwenden.
Das klappt dann im Emulator auch nicht.
J1013 bietet aber die Möglichkeit,
ein "echtes" Monitorprogramm, z.B. ein originales, einzubinden.
In dem Fall sind die Nachteile der Monitorprogrammemulation
aufgehoben, allerdings sind dann auch die Vorteile dahin.
2.3. Funktionen
-
Laden und Starten von Z1013-Programmen mit Dateiauswahldialog,
Datei-Browser und per Drag&Drop
- Speichern von Bereichen des Arbeitsspeichers
- Speichern von im Arbeitsspeicher befindlichen BASIC-Programmen
- Speichern und Laden der RAM-Floppies
-
Extrahieren von BASIC-Programmen aus dem Arbeitsspeicher
und Anzeige im Texteditor
- Monitorprogramm frei wählbar
-
emulierte Taktfrequenz beliebig einstellbar
(soweit es die Rechenleistung des Computers zulässt)
- Pause-Schaltung
- NMI
- Zeichensatz änderbar
- Bildschirmausgabe in vier festen Größen einstellbar
-
Bildschirmausgabe kann als Bild und als Text kopiert, angezeigt
und gespeichert werden.
-
Kopieren & Einfügen von Text in der Bildschirmausgabe
der Z1013-Programme
- Erscheinungsbild (Look&Feel) umschaltbar
- Einstellungen als Profile speicherbar
- Profile im laufenden Betrieb anwendbar
- Drucken, auch aus Z1013-Programmen heraus möglich
2.4. Werkzeuge
In J1013 sind einige Werkzeuge integriert,
die zwar für die eigentliche Emulation nicht notwendig sind,
die aber tangierende Themen abdecken und somit den Komfort erhöhen:
- Datei-Browser
- Debugger
-
Texteditor (unterstützt auch verschiedene Zeichensätze
und Textdateien im Z1013-Format)
- Tiny-BASIC-Compiler (Aufruf über Texteditor)
- Assembler (Aufruf über Texteditor)
- Reassembler
- Speichereditor
- Hex-Editor
- Rechner
2.5. Unterstützte Plattformen
J1013 ist ein Java-Programm und kann auf allen Rechnern
ausgeführt werden, die die Java Plattform
(Standard Edition Version 6 oder höher) unterstützen.
Für Windows, Linux und Solaris kann eine Java Laufzeitumgebung von
http://java.sun.com
kostenlos heruntergeladen werden.
Für andere Betriebssysteme
stellen häufig die jeweiligen Hersteller eine
Java-Laufzeitumgebung zur Verfügung.
2.6. Kompatibilität
J1013 bietet eine sehr hohe Kompatibilität zu einem
originalen Z1013.
Eine hundertprozentige Kompatibilität ist jedoch trotzdem
nicht erreichbar.
Für einige Z1013-Programme muss der Emulator speziell
konfiguriert werden, damit sie laufen.
Entsprechende Hinweise finden Sie
hier.
© 2002-2010 Jens Müller