[ Zu JKCEMU ]


JKCEMU als Poly880-Emulator

Der Poly-Computer 880, manchmal auch Polycomputer geschrieben, ist ein vom VEB Polytechnik Karl-Marx-Stadt (heute Chemnitz) hergestellter Lerncomputer mit einer 7-Segemt-Anzeige und Hexadezimaltastatur. Als Besonderheit bietet der Poly-Computer einen hardwaremäßigen Schrittbetrieb, bei dem sogar die einzelnen Taktzyklen des Mikroprozessors verfolgt werden können. LEDs zeigen dabei die Signale des Adress-, Daten- und Steuerbusses an. Dieser hardwaremäßige Schrittbetrieb und damit die Anzeige der Bussignale wird von JKCEMU allerdings nicht emuliert.


Bildschirmfoto der PolyComputer-Emulation

1. Emulierte Hardware

Aufgrund der unvollständigen Adressdekodierung sind außer bei der optionalen RAM-Erweiterung die einzelnen ROM- und RAM-Speicherbereiche jeweils vier mal hintereinander sichtbar, d.h. X000-X3FF sehen Sie auch in X400-X7FF, in X800-XBFF und in XC00-XFFF, wobei X für 0...4 steht.

1.1. Tastatur

Die Tabelle zeigt, wie die Tasten des Poly-Computers auf der Tastatur des Emulatorrechners abgebildet werden:
Poly880-Taste Taste im JKCEMU Bedeutung
BACK - oder BackSpace Vorherige Adresse
EXEC X oder Enter Aktion ausführen
RES Escape RESET
FCT F1 Funktion
GO G Programm starten
REG R Register
STEP S Schrittbetrieb
MEM M Speicher anzeigen/verändern
0...9, A...F 0...9, A...F Adress-/Dateneingabe
CYCL Einzelschritt (einzelner Taktzyklus) im Hardware-Schrittbetrieb,
von JKCEMU nicht emuliert
MCYCL Hardware-Schrittbetrieb einschalten,
von JKCEMU nicht emuliert
MON F2 Rückkehr in das Monitorprogramm
(Im Original wird damit auch der Hardware-Schrittbetrieb ausgeschaltet, der von JKCEMU jedoch nicht emuliert wird.)

Achtung! Escape löst der Einfachheit halber RESET ohne Sicherheitsabfrage aus, auch wenn in den Einstellungen dafür die Sicherheitsabfrage aktiviert ist.
    PolyComputer-Tastatur


1.2. Hardware-Schrittbetrieb

Im Original gibt es einen Hardware-Schrittbetrieb, mit dem man die einzelnen Taktzyklen des Mikroprozessors schrittweise abarbeiten kann. JKCEMU emuliert diesen Hardware-Schrittbetrieb nicht. Es wird jedoch der ebenfalls vorhandene Software-Schrittbetrieb emuliert (Taste STEP), der zur schrittweisen Abarbeitung ganzer Maschinenbefehle dient.

1.3. Kassetten- und Tonausgabe

Die am emulierten Kassettenrecorderanschluss (PIO 1, Port B, Bit 0) ausgegebenen Tonsignale können Sie im Fenster Audio/Kassette im Reiter Ausgang Kassette hörbar machen bzw. aufnehmen und anschließend in eine Datei speichern. Für die über PIO 1, Port B, Bit 2 ausgegebenen Tonsignale (Lautsprecheranschluss) ist der Reiter Ausgang Sound-Generator/Lautsprecher zuständig.

2. Im ROM enthaltene Software


2.1. Hinweise zur Bedienung des Monitorprogramms

2.1.1. Speicherzellen anzeigen/ändern

RES (Escape)MEM (M) → <Adresse> → EXEC (Enter) [ → <Wert> → EXEC (Enter) ]

Mit jedem Betätigen der Taste EXEC (Enter) wird die nächste Speicherzelle angezeigt.

2.1.2. Register anzeigen/ändern

RES (Escape)REG (R) → <Registerauswahl> [ → EXEC (Enter) → <H-Wert> → EXEC (Enter) → <L-Wert> → EXEC (Enter) ]

Nach Drücken von REG (R) wählen Sie durch Betätigen einer bestimmten Taste das gewünschte Doppelregister aus. Dabei gilt folgende Zuordnung:
TasteDoppelregister
0AF
1BC
2DE
3HL
4AF'
5BC'
6DE'
7HL'
8I und Status des EI-Flip-Flops
9IX
AIY
BSP
CPC

Möchten Sie nun den Registerinhalt ändern, so betätigen Sie EXEC (Enter), geben den Wert des höherwertigen Einzelregisters ein, betätigen wieder EXEC (Enter), geben nun den Wert des niederwertigen Einzelregisters ein und betätigen noch einmal EXEC (Enter).

2.1.3. Programm starten

RES (Escape)GO (G) [ → <Startadresse> ] → EXEC (Enter) [ → <Haltepunkt> ] → EXEC (Enter)

Startadresse und Haltepunkt können weggelassen werden. Fehlt die Startadresse, wird der im Registerrettebereich stehende Wert für PC genommen.

2.1.4. Schrittbetrieb

RES (Escape)STEP (S) [ → <Adresse> ] → EXEC (Enter)

Dieses Kommando führt den Befehl auf der angegebenen Adresse aus und hält dann wieder an. Die Adresse kann weggelassen werden. In dem Fall wird dann der im Registerrettebereich stehende Wert für PC genommen.

2.1.5. Port-Eingabe

RES (Escape)FCT (F1)0 → <Port-Adresse> → EXEC (Enter)

Mit jedem Drücken der Taste EXEC (Enter) wird das angegebene Eingabetor gelesen und der Wert angezeigt.

2.1.6. Port-Ausgabe

RES (Escape)FCT (F1)1 → <Port-Adresse> → EXEC (Enter) → <Wert> → EXEC (Enter)

Nach dem ersten Drücken der Taste EXEC (Enter) geben Sie den auszugebenden Wert ein, der dann beim zweiten Betätigen von EXEC (Enter) in das Ausgabetor geschrieben wird. Nun können Sie beliebig oft weitere Werte eingeben, die dann jeweils mit EXEC (Enter) ebenfalls auf dem Port ausgegeben werden.

2.1.7. Datenbereich verschieben

RES (Escape)FCT (F1)2 → <Zieladresse> → EXEC (Enter) → <Quelladresse> → <Länge> → EXEC (Enter)

Mit diesem Kommando verschieben Sie einen Datenbereich auf eine andere Adresse. Genau genommen werden die Daten nicht verschoben, sondern kopiert. Quell- und Zielbereich können sich überlappen. Nach dem Verschieben erscheint in der Anzeige ein F wie fertig.

2.1.8. Datenbereich füllen

RES (Escape)FCT (F1)3 → <Anfangsadresse> → EXEC (Enter) → <Länge> → EXEC (Enter) → <Wert> → EXEC (Enter)

2.1.9. Datenbereich von Kassette laden

RES (Escape)FCT (F1)4 → <Anfangsadresse> → EXEC (Enter) → <Endadresse> → EXEC (Enter)EXEC (Enter)

Nach Eingabe der Endadresse müssen Sie zweimal EXEC (Enter) drücken, bevor das Laden beginnt. Nach Abschluss des Ladens erscheint in der Anzeige ein F.

2.1.10. Datenbereich auf Kassette speichern

RES (Escape)FCT (F1)5 → <Anfangsadresse> → EXEC (Enter) → <Endadresse> → EXEC (Enter)EXEC (Enter)

Nach Eingabe der Endadresse müssen Sie zweimal EXEC (Enter) drücken, bevor das Speichern beginnt. Nach Abschluss des Speicherns erscheint in der Anzeige ein F.

3. Sonstiges

3.1. Einbindung externer ROM-Dateien

Im originalen Poly-Computer 880 sind die Datenleitungen negiert, d.h., die Bytes in den ROMs sind somit auch negiert. Wenn Sie nun solche ROM-Inhalte einbinden möchten, muss JKCEMU wissen, ob die ROM-Dateien entsprechend dem Original negiert sind. Dafür gibt es in den Einstellungen die Option ROM-Bytes sind negiert. Sie müssen diese Option in jedem Fall richtig setzen, sobald sie eine externe ROM-Datei einbinden! Diese Option gilt für alle eingebunden ROM-Dateien gleichermaßen.

© 2009-2017 Jens Müller