[ Zu JKCEMU ]


JKCEMU als C-80-Emulator

Der C-80 ist ein von Joachim Czepa 1986 vorgestellter Einplatinenrechner für den Eigenbau.


Bildschirmfoto der C-80-Emulation

1. Emulierte Hardware

Aufgrund der unvollständigen Adressdekodierung ist der RAM auch im Bereich 0800h-0BFFh sichtbar.

1.1. Tastatur

Die Tabelle zeigt, wie die Tasten des C-80 auf der Tastatur des Emulatorrechners abgebildet werden:
C-80-Taste Taste im Emulator Bedeutung
RES Escape Zurücksetzen
BRK N Abbrechen (NMI)
FCT F1 Funktionstaste,
Durch Drücken, wieder Loslassen und anschließendes Drücken einer der Tasten 1 bis 6 wird eine Funktion aufgerufen, für die keine separate Taste vorhanden ist.
MEM M Speicheranzeige
GO G Programm starten
REG R Register anzeigen
- - Wert/Adresse dekrementieren
+ + oder Enter Wert/Adresse inkrementieren oder übernehmen
0...9 0...9 Adress-/Dateneingabe
A...F A...F oder a...f Adress-/Dateneingabe

Achtung! Escape und N lösen der Einfachheit halber RESET bzw. NMI ohne Sicherheitsabfrage aus, auch wenn in den Einstellungen dafür die Sicherheitsabfrage aktiviert ist.

2. Im ROM enthaltene Software


2.1. Hinweise zur Bedienung des Monitorprogramms

Nach einem RESET ist nur ein Dezimalpunkt zu sehen.

2.1.1. Speicherzellen anzeigen/ändern

  1. Zurücksetzen (Taste RESET (Escape))
  2. Speicheranzeige aufrufen (Taste MEM (M))
  3. Adresse eingeben (Tasten 0...9 und A...F)
  4. Adresse übernehmen (Taste +)
  5. Gegebenfalls Adresse ändern (Tasten + und -)
  6. Gegebenfalls Wert eingeben und mit Taste + übernehmen
  7. Weiter mit Punkt 5


2.1.2. Programmstart

RESET (Escape)GO (G) → <Startadresse> [ → - → <Haltepunktadresse> ] → +

Das Drücken des Minuszeichens mit Eingabe der Haltepunktadresse kann auch weggelassen werden.

Achtung! Ein Haltepunkt kann nur im RAM und nur auf das erste Byte eines Befehls gesetzt werden.

Die BRK (N)-Taste (NMI) hat die gleiche Bedeutung wie das Erreichen des Haltepunktes.

2.1.3. Register anzeigen/ändern

RESET (Escape)REG (R)

Es wird ein Doppelregister angezeigt. Mit den Tasten + und - wechseln Sie zum nächsten bzw. vorherigen Doppelregister.

Die Register werden geändert, indem Sie ein Byte eingeben und dieses dann mit + dem höherwertigen oder mit - dem niederwertigen Register des angezeigten Doppelregisters zuweisen.

2.1.4. Datenbereich füllen

RESET (Escape)FCT (F1)0 → <Anfangsadresse> → - → <Endadresse> → + <Wert> → +

Ist die Anfangsadresse kleiner als die Endadresse, wird ein E als Fehlermeldung ausgegeben.

2.1.5. Datenbereich auf Kassette speichern

RESET (Escape)FCT (F1)1 → <Anfangsadresse> → - → <Endadresse> → +

Ist die Anfangsadresse kleiner als die Endadresse, wird ein E als Fehlermeldung ausgegeben.

Das Aufzeichnungsformat ist kompatibel zum Poly-Computer 880. Abweichend davon wird der letzte Block auf 32 Bytes aufgefüllt. Außerdem schreibt der C-80 zusätzlich einen Endeblock mit der Blockkennung FFFFh. Sowohl die aufgefüllten Bytes als auch der Endeblock werden beim Einlesen in den Poly-Computer nicht ausgewertet.

Achtung! Vergessen Sie nicht, im Emulator eine entsprechende Audio-Funktion zu aktivieren.

2.1.6. Datenbereich von Kassette laden

Es gibt zwei Funktionen zum Laden von Kassette:
  1. RESET (Escape)FCT (F1)2 → <Anfangsadresse> → - → <Endadresse> → +
  2. RESET (Escape)FCT (F1)3 → <Anfangsadresse> → - → <Endadresse> → +

Im ersten Fall wird das Lesen abgebrochen, wenn die eingegebene Endadresse erreicht wurde oder das Dateiende (Block mit Endekennung) gelesen wird.

Im zweiten Fall wird dagegen das Lesen nur abgebrochen, wenn die eingegebene Endadresse erreicht wurde. Ist die auf Kassette befindliche Datei kleiner als der angegebene Datenbereich, bleibt der C-80 beim Einlesen hängen.

Ist die eingegebene Anfangsadresse kleiner als die Endadresse, wird ein E als Fehlermeldung ausgegeben.

Achtung! Vergessen Sie nicht, im Emulator eine entsprechende Audio-Funktion zu aktivieren.

2.1.7. Datenbereich umladen

RESET (Escape)FCT (F1)4 → <Anfangsadresse> → - → <Endadresse> → + → <Zieladresse> → +

Ist die Anfangsadresse kleiner als die Endadresse, wird ein E als Fehlermeldung ausgegeben.

2.1.8. Port-Eingabe

RESET (Escape)FCT (F1)5 → <Port-Adresse> → +

Die Port-Adresse muss als 16-Bit-Wert eingegeben werden. Mit jedem Drücken der Taste + wird das Eingabetor gelesen und der Wert angezeigt. Jede andere Taste bricht die Funktion ab.

2.1.9. Port-Ausgabe

RESET (Escape)FCT (F1)6 → <Port-Adresse> → + → <Wert> → +

Die Port-Adresse muss als 16-Bit-Wert eingegeben werden. Mit jedem Drücken der Taste + wird der eingegebene Wert in das Ausgabetor geschrieben.

© 2009-2012 Jens Müller