Z1013

Der Mikrorechnerbausatz Z1013 ist ein Einplatinenrechner, der ab 1985 im VEB Robotron-Elektronik Riesa hergestellt wurde. Zielgruppe für diesen Bausatz waren Amateure und Bastler, die an die fertig bestückte Leiterplatte nur noch die mitgelieferte Folientastatur sowie einen selbst bereitzustellenden (also nicht mitgelieferten) 12V-Transformator anlöten mussten.

Die ursprüngliche Idee des Z1013 lag darin, elektronische Bauteile, die den Anforderungen der Industrie nicht gerecht wurden (so genannte Anfallbauelemente, die zwar funktional in Ordnung sind, aber z.B. die benötigten Taktfrequenzen nicht erreichen), in Form eines relativ niedrig getakteten Computer-Bausatzes der Bevökerung nutzbar zu machen. Dadurch hatte der Z1013 anfangs nur eine Taktfrequenz von 1 MHz (Modell Z1013.01) und war mit 650 Mark der billigste in der DDR verfügbare Rechner, der eine Bildschirmsteuerung besaß und somit als vollwertiger Heimcomputer gelten kann. Außerdem war er auch von Anfang an über einen offiziellen Weg für private Anwender erwerbbar, allerdings nur im Robotron-Laden in Erfurt und mit ca. einem Jahr Wartezeit.

Die Idee, für den Z1013 Anfallauelemente zu verwenden, hat sich für den Hersteller jedoch als ungünstig erwiesen, da aus Garantiegründen die Bauelemente letztendlich ausgemessen werden mussten. Aus diesem Grund wurde der Z1013 ab 1987 mit "vollwertigen" Bauelementen und 2 MHz Taktfrequenz ausgeliefert (Modell Z1013.16). Dadurch stieg aber auch der Preis auf 965 Mark. 1989 kam das Modell Z1013.64 heraus, welches 64 KByte RAM besaß und im Preis auf 590 Mark gefallen war. Im Frühjahr 1990, vor der Einführung der D-Mark in der DDR, wurde der Z1013 in Erfurt für nur noch 99 Mark angeboten.

Im Jahr 2016 stellten engagierte Bastler den Z1013-128 (gelegentlich auch Z1013.128 genannt) vor, bei dem einige Unschönheiten im originalen Hardware-Design behoben wurden. Des Weiteren bietet er ein paar optionale Erweiterungen, u.a. 128 KByte RAM, woher z.B. sein Name rührt. Die Hardware-Konfiguration ist durch eine ganze Reihe von Jumpern sehr flexibel einstellbar. In den Standardeinstellungen dieser Jumper entspricht der Z1013-128 im wesenlichen einem Z1013.64 mit einem zusätzlichen schaltbaren 32K KByte großen EPROM im Adressbereich 8000h-FFFFh. Dieser ROM und damit implizit auch der Z1013-128 in seinen Standardeinstellungen werden optional emuliert

Hinweise zur Emulation


1. Emulierte Hardware

Da der Z1013 als Bausatz ausgeliefert wurde, sind für diesen besonders häufig Modifizierungen und Erweiterungen entwickelt wurden. Das trifft insbesondere auf Tastatur, Monitorprogramm und RAM-Größe zu. JKCEMU emuliert die gängigen Tastaturen mit jeweils einem oder mehreren dazu passenden Monitorprogrammen. In den Einstellungen wählen Sie die gewünschte Kombination aus Monitorprogramm und Tastatur aus.

Emuliert werden:
Achtung! Nicht alle optionalen Erweiterungen sind miteinander kombinierbar. Wenn Sie in den Einstellungen eine Option aktivieren, die nicht mit einer anderen kombinierbar ist, wird die andere Option automatisch abgewählt.

1.1. Folienflachtastatur

Die Ziffern auf der Folienflachtastatur sind standardmäßig nur über die Shift-1-Taste erreichbar. Man kann aber im Monitorprogramm und über Systemaufrufe die Shift-Ebenen so umschalten, dass Ziffern ohne Shift-Taste eingegeben werden können. Dafür ist dann bei einigen Buchstaben die Shift-1-Taste zu betätigen. Dieses Umkodieren der Zeichen stört aber im Emulator. Aus diesem Grund erkennt JKCEMU die Umschaltung der Shift-Ebenen automatisch und emuliert dann das Drücken der Shift-1-Taste entsprechend anders. Das hat zur Folge, dass die Monitorkommandos A und H scheinbar keine Wirkung haben.

Insgesamt enthält die Folienflachtastatur vier Shift-Tasten, die von einigen Spielprogrammen auch direkt abgefragt und zur Steuerung der Spielfigur verwendet werden. Damit Sie solche Programme auch im Emulator ohne Einschränkungen bedienen können, werden diese vier Shift-Tasten auch als Einzeltasten emuliert, und zwar mit den Funktionstasten F1 bis F4.

Für die Folienflachtastatur steht eine Tastaturansicht zur Verfügung.

1.2. Alphatastatur

Unter der Alphatastatur versteht man die Tastatur, die vom A.2-Monitorprogramm vorausgesetzt wird. Dabei handelt es sich jedoch nicht um eine fertige Tastatur, sondern nur um eine Schaltung zum Anschluss einer Tastatur mit einer 8x8-Matrix. Der Schaltplan dazu und die vorgeschriebene Anordnung der Tasten in der Matrix sind in der Ergänzungsanleitung zum Z1013.16 angegeben. Dort ist auch eine schematisch Tastenanordnung angegeben. Diese steht im Emulator als Tastaturansicht zur Verfügung.

Mit Ausnahme der Taste Graph E/A sind alle Tasten bzw. Zeichen der Alphatastatur gewöhnlich auch auf der Tastatur des Emulatorrechners zu finden. Die Taste Graph E/A lässt sich mit der Funktionstaste F1 betätigen.

1.3. Peters-Platine

Die Peters-Platine ermöglicht über E/A-Port 4 die Abschaltung des ROMs sowie die Umschaltung des Zeichensatzes, der Taktfrequenz und der Bildschirmorganisation.

Bedeutung der Bits von E/A-Port 4:

Bit Bedeutung bei Wert 0 (Standard) Bedeutung bei Wert 1
4 ROM eingeblendet ROM aus- und dafür RAM eingeblendet
5 Standardzeichensatz alternativer Zeichensatz,
Der Emulator schaltet auf einen Zeichensatz mit deutschen Umlauten nach ISO 646 und inversen Zeichen um.

Achtung! Wurde in den Z1013-Einstellungen, Bereich Sonstiges, eine alternative Zeichensatzdatei eingebunden, gilt folgendes:
  • Ist die extern eingebundene Zeichensatzdatei kleiner als 4 KByte, wird diese für den Standard- und den alternativen Zeichensatz verwendet, d.h., eine Umschaltung über Port 4 hat keine Wirkung.
  • Ist die extern eingebundene Zeichensatzdatei 4 KByte groß, werden die unteren 2 KByte als Standard- und die oberen 2 KByte als alternativer Zeichensatz verwendet. In dem Fall zeigt die Umschaltung des Zeichensatzes eine Wirkung.
6 Taktfrequenz 2 MHz Taktfrequenz 4 MHz,

Achtung! Der Emulator schaltet nur dann auf 4 MHz um, wenn in den Einstellungen der Standardwert von 2 MHz angegeben ist.
7 Bildschirm 32x32 Zeichen Bildschirm 64x16 Zeichen


1.4. Mega-ROM-Modul

Das vom Z9001, KC85/1 und KC87 her bekannte und an den Z1013 angepasste Mega-ROM-Modul bietet 2,5 MByte Speicher, aufgeteilt auf 256 einzelne 10 KByte Segmente. Das jeweils aktive Segment wird im Adressbereich C000h-E7FFh eingeblendet. Die Umschaltung des aktive Segments erfolgt über einen Ausgabebefehl auf E/A-Adresse FFh. Eine softwaremäßige Abschaltung des Moduls wie beim Z9001, KC85/1 und KC87 ist mit der Z1013-Variante nicht möglich.

Im JKCEMU ist kein Inhalt für das Mega-ROM-Modul enthalten. Sie müssen deshalb eine entsprechende ROM-Datei selbst bereitstellen und in den Einstellungen auswählen.

1.5. 32K-ROM entsprechend Z1013-128

Der Z1013-128 enthät einen zusätzlichen EPROM, der durch Ausgabe eines gesetzten Bit 5 auf der E/A-Adresse 4 im Adressbereich 8000h-FFFFh eingeblendet werden kann. Der Bereich von EC00h-FFFFh ist jedoch nur sichtbar, wenn zusächlich auch Bit 4 gesetzt und damit der Bildwiederholspeicher sowie der System-ROM abgeschaltet werden.

Dieser 32K-EPROM wird entsprechend den Z1013-128-Standardeinstellungen optional emuliert. Im JKCEMU ist kein Inhalt für diesen ROM enthalten. Sie müssen deshalb eine entsprechende ROM-Datei selbst bereitstellen und in den Einstellungen auswählen.

Achtung! Mit dem schaltbaren 32K-ROM entsprechend Z1013-128 wird auch die Taktfrequenzumschaltung über E/A-Adresse 4, Bit 6 emuliert.

1.6. Drucker

Es gibt zwei Möglichkeiten, einen Drucker zu emulieren:
  1. Abfangen der entsprechenden Sprungverteileraufrufe
  2. Emulation einer Centronics-Schnittstelle am Anwendertor

Bei der ersten Variante werden die Aufrufe für Druckausgaben am Sprungverteiler abgefangen und an den aktuellen Druckauftrag anhängt. Ein Druckertreiber ist nicht nötig. Allerdings funktioniert diese Variante nur bei Programmen, die für Druckerausgaben auch den Sprungverteiler verwenden.

Bei der zweiten Variante ist entweder ein Druckertreiber erforderlich oder aber das Anwendungsprogramm bedient selbst die Centronics-Schnittstelle. Datenausgaben an der emulierten Centronics-Schnittstelle werden an den aktuellen Druckauftrag anhängt.

1.7. Joysticks (Spielhebel)

Für den Z1013 wurden mehrere Hardware-Varianten für den Anschluss von Joysticks veröffentlicht sowie eine entsprechende Software-Schnittstelle definiert. JKCEMU kann sowohl die drei gängigen Hardware-Varianten als auch die Software-Schnittstelle emulieren. Es hängt allerdings vom konkreten Spiel- bzw. Anwendungsprogramm ab, welche Art der Emulation Sie aktivieren müssen.

Manche Programme fragen direkt das Anwendertor ab, an dem die Spielhebel angeschlossen sind. In dem Fall müssen Sie in den Einstellungen im Bereich Z1013 im Reiter Anwendertor die richtige Joystick-Hardware auswählen.

Benutzt dagegen das Spiel- bzw. Anwendungsprogramm die Software-Schnittstelle, dann aktivieren Sie auf der Unterseite Sonstiges die Option Sprungverteileraufrufe für Joystick-Abfragen abfangen. In dem Fall emuliert JKCEMU den Joystick-Treiber, der normalerweise bei Joystick-Abfragen über den Sprungverteiler aufgerufen wird. Alternativ können Sie aber auch diese Option ausschalten und selbst einen passenden Joystick-Treiber laden, der die Verbindung zwischen der Software-Schnittstelle und der (emulierten) Hardware herstellt.

1.8. Floppy-Disk-Modul

Das Floppy-Disk-Modul wird an folgenden Ein-/Ausgabeadressen emuliert:

E/A-AdresseBedeutung
F0h Statusregister
F1h Datenregister
F8h Terminal Count
FAh RESET


1.9. USB-Anschluss (Vinculum VDIP Modul)

Das USB-Modul wird an den E/A-Basisadressen DCh und FCh emuliert. Ist das Mega-ROM-Modul aktiviert, wird das USB-Modul nur an der Basisadresse DCh emuliert, da es sonst einen Konflikt mit der E/A-Adresse FFh geben würde.

1.10. Echtzeituhrmodul

Es wird eine Echtzeituhr RTC-62421 bzw. RTC-72421 an den E/A-Adressen 70h bis 7Fh emuliert. Die Uhr kann nur gelesen, nicht aber gestellt werden.

1.11. Vollgrafik nach practic 2/1988

Die in der Zeitschrift practic 2/1988 vorgestellte ZX-Spectrum-kompatible Vollgrafikerweiterung wird als zweite Anzeigeeinheit emuliert (Menü ExtraZweite Anzeigeeinheit...). Diese Grafikerweiterterung hat einen 6 KByte großen Pixelspeicher für die 256x192 Pixel (Adressbereich 4000h-57FFh), nicht jedoch den beim ZX Spectrum vorhandenen Farbattributspeicher. Die Bildausgabe ist somit schwarz-/weiß mit weiß als Hintergrundfarbe. Ein gesetztes Bit im Pixelspicher führt zu einem schwarzen Pixel.

Die Grafikerweiterung erzeugt auch den vom ZX Spectrum her bekannten Interrupt während des Bildsynchronimpulses. Da die Hardware keinen Interrupt-Vektor und keine Daisy Chain unterstützt, ist dieser Interrupt praktisch nur im Interrupt-Modus 1 nutzbar. Außerdem wird die Interrupt-Anmeldung aller anderen Interrupt-Quellen gestört (z.B. die PIO, die für den Schrittbetrieb des Monitorprogramms (Kommando B) Interrupts auslöst).

Die Grafikkarte erzeugt im Original kein MEMDI-Signal, d.h., der Speicher auf der Z1013-Grundplatine oder einer Speichererweiterung wird nicht ausgeblendet. Ist im Adressbereich des Pixelspeichers ein anderer Speicher vorhanden, wird die Grafikerweiterung so konfiguriert, dass der Pixelspeicher nur beschrieben werden kann.

1.12. Vollgrafik nach KRT 11 und FA 7/1991

Im Buch Kleinstrechnertips 11 (KRT 11) wurde eine recht einfache Schaltung vorgestellt, mit der der Z1013 Vollgrafikfähigkeiten erhält. Leicht modifiziert wurde diese Schaltung in der Zeitschrift Funkamateur 7/1991 (FA 7/1991) erneut publiziert. Beide Schaltungsvarianten werden optional emuliert.

Das Prinzip der Schaltung ist recht simple: Anstelle des originalen Bildwiederholspeichers gibt es 8 parallel liegende RAM-Bänke, wobei jede RAM-Bank für eine Pixelzeile innerhalb einer Zeichenzeile steht. Ist RAM-Bank 0 aktiviert, hat man im Adressbereich EC00h bis EFFFh Zugriff auf alle obersten Pixelzeilen innerhalb der Zeichenzeilen. Bei RAM-Bank 7 sind es alle untersten Pixelzeilen innerhalb der Zeichenzeilen. Die Auswahl der RAM-Bank erfolgt über die unteren 3 Bit der Ausgabeadresse 8 (gleiche E/A-Adresse wie für die Tastaturspalten). Die Pixeldaten sind invertiert, d.h., ein zurückgesetztes Bit ergibt ein weißes Pixel.

Zwischen Vollgrafik und originalem Textmodus kann softwaretechnisch umgeschaltet werden. Diese Umschaltung unterscheidet sich zwischen den beiden Schaltungsvarianten:

FunktionKRT 11FA 7/1991
Vollgrafik ein Ausgabe einer 8 auf den unteren 4 Bit der E/A-Adresse 8 Ein- oder Ausgabebefehl mit beliebigem Datenbyte auf Adresse 0Ch bis 0Fh
Vollgrafik aus
(originaler Textmodus wieder ein)
Ausgabe einer 9 auf den unteren 4 Bit der E/A-Adresse 8 Ein- oder Ausgabebefehl mit beliebigem Datenbyte auf Adresse 10h bis 13h

Beide Schaltungsvarianten werden parallel emuliert, d.h., man kann im Emulator die Vollgrafik nach KRT 11 ein- und nach FA 7/1991 wieder ausschalten.

1.13. Grafikkarte des CC Jena

Der Computerclub Jena hat eine Graphikkarte entwickelt, die den Grafik Display Controller U82720 verwendet. Obwohl ein Grafikprozessor verwendet wird, kann die Karte hardwaremäßig nur Text ausgeben. Die Auflösung beträgt üblicherweise 80x25 Zeichen.

Die Grafikkarte enthält einen 8 KByte großen EPROM als Zeichengenerator. Darin lassen sich mehrere Zeichensätze unterbringen, von denen der gewünschte durch entsprechende Programmierung des Grafikprozessors ausgewählt werden kann. Der in JKCEMU integrierte Zeichengenerator für diese Grafikkarte enthält nur einen vollständigen Zeichensatz. Man kann aber in den Einstellungen durch Einbinden einer bis zu 8 KByte großen ROM-Datei den Zeichengenerator mit einem anderen Inhalt füllen.

Die Grafikkarte wird als zweite Anzeigeeinheit emuliert (Menüeintrag ExtraZweite Anzeigeeinheit...).

1.14. Farbgrafikkarte mit 32x32 und 64x32 Zeichen

Heiko Poppe hat eine Farbgrafikkarte für Textausgaben entwickelt, die es auch in einer speziellen Variante für den Z1013 gibt. Diese Variante wird optional emuliert.

Die Grafikkarte bietet die beiden Ausgabeformate 32x32 und 64x32 Zeichen. Der Bildwiederholspeicher liegt im Adressbereich E800h-EFFFh und besteht aus einem Text- und einem Farbspeicher. Im Ausgabeformat 32x32 Zeichen ist die Adresszuordnung identisch zum Z1013-Standard, d.h., nur der Bereich von EC00h-EFFFh wird angezeigt. In diesem Ausgabeformat wird der Z1013-Zeichensatz verwendet.

Im Ausgabeformat 64x32 Zeichen werden zwei Zeichensätze mit der Zeichengröße 8x6 Pixel unterstützt, zwischen denen umgeschaltet werden kann. Im JKCEMU ist dafür jedoch nur ein ASCII-Zeichensatz enthalten, so dass die Zeichensatzumschaltung keine Wirkung zeigt. Möchten Sie die Zeichensatzumschaltung nutzen, müssen Sie in den Z1013-Einstellungen im Reiter Grafik-Erweiterungen eine 4 KByte große Zeichensatzdatei angeben. Die ersten 2 KByte davon werden als ersten und die zweiten 2 KByte als zweiten Zeichensatz vewendet.

Die Farbgrafikkarte hat ein Steuerregister, auf dass über zwei Ein-/Ausgabedresse zugegriffen werden kann. Die Tabelle zeigt die Bedeutung der einzelnen Bits dieses Registers und die Zugriffsmöglichkeiten:

Bit Bedeutung bei Wert 0
(Standard)
Bedeutung bei Wert 1 E/A-Adresse für Lesen E/A-Adresse für Schreiben
0 Zugriff auf Textspeicher Zugriff auf Farbspeicher 12h 12h
1 Ausgabeformat 64x32 Zeichen Ausgabeformat 32x32 Zeichen 12h 11h
3 Erster Zeichensatz im Modus 64x32 Zeichen aktiv Zweiter Zeichensatz im Modus 64x32 Zeichen aktiv 12h 11h

Achtung! Wenn GIDE nicht aktiviert ist, wird die Farbgrafikkarte auch an den E/A-Adressen 41h und 42h emuliert.

Bedeutung einer Speicherzelle im Farbspeicher:

BitBedeutung
0Vordergrundfarbe rot
1Vordergrundfarbe grün
2Vordergrundfarbe blau
3Vordergrundfarbe intensiv
4Hintergrundgrundfarbe rot
5Hintergrundgrundfarbe grün
6Hintergrundgrundfarbe blau
7Hintergrundgrundfarbe intensiv

Achtung! Da die im JKCEMU enthaltenen Z1013-Monitorprogramme den Farbspeicher nicht initialisieren, sieht man nach RESET ein buntes Zufallsbild, in dem die Textausgaben nur schwer erkennbar sind. Aus diesem Grund wird die Farbgrafikarte als zweite Anzeigeeinheit emuliert. Die originale Z1013-Bildschirmausgabe ist somit weiterhin sichtbar. Damit dies technisch funktioniert, ist der Bildwiederholspeicher der Grafikkarte nur schreibend zugreifbar. Schreibzugriffe im Adressbereich E800h-EFFFh gehen somit in den Z1013-RAM bzw. den originalen Bildwiederholspeicher und parallel auch in den Bildwiederholspeicher der Farbgrafikkarte. Gelesen wird im Adressbereich E800h-EFFh dagegen nur vom Z1013-Speicher, nicht von der Grafikkarte. Im Original entspricht dies der Anschlussvariante, bei der die Grafikkarte kein /MEMDI-Signal erzeugt und somit den Speicher auf der Z1013-Grundplatine nicht abschaltet.

2. Im ROM enthaltene Software


Die ROM-Inhalte können Sie in den Einstellungen durch Angabe externer ROM-Dateien ersetzen.

Achtung! Wenn Sie auf diese Art und Weise ein anderes Monitorprogramm einbinden, müssen Sie sicherstellen, dass in den Einstellungen die richtige Tastaturhardware ausgewählt ist.

3. Enthaltene Diskettenabbilder

JKCEMU enthält für die Z1013-Emulation folgende Diskettenabbilder:
Die Laufwerkszuordnung bei beiden Diskettenabbildern ist:

A:RAM-Floppy
B: erstes Diskettenlaufwerk, 820-KByte-Format
C: erstes Diskettenlaufwerk, 624-KByte-Format
D: erstes Diskettenlaufwerk, 780-KByte-Format
Achtung! Dieses Format haben die Diskettenabbilder selbst, d.h., sie sind unter dem Laufwerk D: ansprechbar.
E: erstes Diskettenlaufwerk, 800-KByte-Format

Auf der CP/M-Boot-Diskette für 80x25 Zeichen sind in User-Ebene 15 auch die Quelltexte für das BIOS enthalten. Anleitungen dazu finden Sie als Textdateien in User-Ebene 0. Diese Dateien können mit dem CP/M-Kommando TYPE gelesen werden.

Achtung! Auf beiden Disketten ist auch die leere Datei GO.COM enthalten. Diese dient zum Starten eines im Arbeitsspeicher befindlichen CP/M-kompatiblen Programms. Wird GO aufgerufen ohne dass ein Programm im Arbeitsspeicher vorhanden ist, führt das zu einem Absturz.

4. Sonstiges

4.1. BASIC-Programme speichern, laden und öffnen

JKCEMU bietet eine spezielle Unterstützung für das Speichern und Laden von BASIC-Programmen sowie für das Öffnen von im Arbeitsspeicher befindlichen BASIC-Programmen im Texteditor. Die entsprechenden Funktionen finden Sie im Menü Datei.

Folgende BASIC-Interpreter werden unterstützt:

Beim Speichern von BASIC-Programmen erscheint ein Fenster zur Auswahl des Dateiformats. Speichern Sie bitte Tiny-BASIC-Programme als Headersave-Datei (*.z80) mit dem Dateityp b und KC-BASIC-Programme entweder als KC-BASIC-Programmdatei (*.sss) oder als Headersave-Datei (*.z80) mit dem Dateityp B.

Wenn Sie ein BASIC-Programm in einem anderen Dateiformat speichern, erkennt JKCEMU später beim Laden der Datei nicht mehr, dass es sich um ein BASIC-Programm handelt und passt die Systemzellen des BASIC-Interpreters nicht an. Das geladene Programm lässt sich dann nicht nutzen.

4.2. Einfügen von Text

Das Einfügen von Text aus der Zwichenablage erfolgt gewöhnlich in der Form, dass für jedes einzufügende Zeichen das Drücken der entsprechenden Taste bzw. Tastenkombination simuliert wird. Dieses Prinzip ist recht langsam. Für den Z1013 gibt es in den Einstellungen die Option Einfügen von Text durch Abfangen des Systemaufrufs. Bei dieser Option lauscht der Emulator auf der Einsprungadresse für die Systemfunktion INKEY. Wenn diese Systemfunktion aufgerufen wird, prüft JKCEMU, ob ein Zeichen eingefügt werden soll. Wenn ja, schreibt er das nächste einzufügende Zeichen in das entsprechende Prozessorregister und simuliert einen RETURN-Befehl. Sollten das Betriebssystem oder das Anwendungsprogramm die Tastatur nicht über die INKEY-Systemfunktion abfragen, funktioniert das Einfügen von Text nicht, und Sie müssen die Option ausschalten.

Bei dieser Option muss JKCEMU die Startadresse der INKEY-Funktion kennen. Das ist für die im Emulator integrierten Monnitorprogramme der Fall. Sollten Sie jedoch ein anderes Betriebssystem starten oder durch Einbinden eines externen ROM-Images ein anderes Monitorprogramm verwenden, bei dem die INKEY-Funktion auf einer anderen Adresse beginnt, müssen Sie die Option ebenfalls ausschalten.