Projekt
Hardware
Bedienung
Kompatibilität
Erweiterungen
Programme




AX81b: Bedienung



1 Der Startbildschirm


Nach dem Einschalten erscheint der Startbildschirm. Hier können die Art der Emulation sowie zusätzliche Optionen gewählt werden. Die Auswahl erfolgt über die Zifferntasten und wird im EEPROM des Mikrocontrollers gespeichert. Zusätzlich wird angezeigt, ob ein Snapshot aktiv ist.


1 ZX81 (no UDG) Dies entspricht einem ZX81 ohne UDG Erweiterungen und dem AX81 in den Versionen <V1.00
2 ZX81 (UDG) ZX81 mit einer 64-Zeichen UDG-Erweiterung bei 0x2000 und 0x3000
3 ZX81 (CHR$128) ZX81 mit einer 128-Zeichen UDG-Erweiterung bei 0x2000, 0x2400 ...
4 ZX80 ZX80 Emulation
5 Jupiter ACE Jupiter ACE Emulation, allerdings mit invertierter Videoausgabe
6 Spectrum Mono ZX Spectrum Emulation, allerdings nur mit monochromer Videoausgabe

8 Use AVR I/O Schaltet den Zugriff auf die AVR-I/O ein bzw. aus
9 Normal Speed Begrenzt die Emulationsgeschwindigkeit ca. "Originalgeschwindigkeit", nur ZX80 und ZX81
0 Maximal Speed Keine Begrenzung der Emulationsgeschwindigkeit, nur ZX80 und ZX81


Bei 12 und 14,7456MHz Taktfrequenz ist ein Umschalten auf "Originalgeschwindigkeit" wenig sinnvoll, da bei 12MHz die Originalgeschwindigkeit in der Maximaleinstellung nicht und bei der 14,7456MHz Version gerade so erreicht wird. Die Jupiter ACE Emulation ist bei den beiden kleinen Taktfrequenzen und LCD-Ausgabe derzeit nicht nutzbar.

Die Abfrage ist nur eine begrenzte Zeit aktiv und kann auch mit der Leertaste abgebrochen werden. Danach wird nach einer MMC/SD/SDHC-Karte sowie passendem Image gesucht und das Ergebnis unterhalb der Auswahl angezeigt. Abschließend wird der Emulator im gewählten Mode gestartet.
Unterhalb des Auswahlmenüs werden Informationen zur SD-Karte ausgegeben, zuerst der Kartentyp:


MMC CARD
NO CARD Es wurde keine Karte erkannt Es wurde eine MMC Karte (erfolgreich) erkannt
SDV1 CARD Es wurde eine SD Karte vom Typ 1 (erfolgreich) erkannt
SDV2 CARD Es wurde eine SD Karte vom Typ 2 (erfolgreich) erkannt
SDHC CARD Es wurde eine SDHC Karte (erfolgreich) erkannt
ERR CMD0 Es wurde zwar eine Karte erkannt, CMD0 konnte aber nicht erfolgreich durchgeführt werden
ERR CMD1 Es wurde zwar eine Karte erkannt, CMD1 konnte aber nicht erfolgreich durchgeführt werden
ERR CMD8 Es wurde zwar eine Karte erkannt, CMD8 konnte aber nicht erfolgreich durchgeführt werden
ERR ACMD41 Es wurde zwar eine Karte erkannt, ACMD41 konnte aber nicht erfolgreich durchgeführt werden


Wurde die Karte erfolgreich initialisiert, wird im zweiten Schritt nach einem passenden Image gesucht:


AX81-xxxx IMAGE Es wurde ein passendes Image auf der Karte gefunden
NO MBR FOUND Es wurde kein MasterBootRecord gefunden, Karte hat evtl. keine Partitionstabelle
NO FAT16 PART. Es wurde keine FAT16-Partition gefunden
NO 512B SECTORS Karten mit Sektorgrößen > 512Bytes können nicht genutzt werden
IMG NOT IN DIR Es konnte kein passendes Image im Hauptverzeichnis der Partition gefunden werden
WRONG IMAGE Das Image ist fehlerhaft oder der Datenbereich liegt nicht dort, wo ihn mkdosfs anlegt.


Wird nach Auswahl der Emulation die Alternate-Taste gedrückt gehalten, so wird die SPI-Transfergeschwindigkeit auf 1/4 reduziert. Eine Rückmeldung erfolgt durch einen Stern vor der Image-Textanzeige.

2 Tastaturfunktionen

Als Eingabegerät dient eine PS2-Computertastatur wobei derzeit nur das deutsche (dabei sind Z und Y vertauscht) und das UK Layout unterstützt wird. Die Auswahl geschieht zum Zeitpunkt der Compilation und ist während des Betriebs nicht änderbar.
Einige der Mehrfachbelegungen sind, soweit sinnvoll, auch auf eigene Tasten geführt. Beim ZX81 funktioniert das bei einigen Programmen leider nicht, da diese eigene Tastaturroutinen verwenden.


  • Die Backspace-Taste liefert Rubout (shift+0)
  • Die Cursor-Tasten liefern Shift+5...8
  • Die Cursor-Tasten zusammen mit der linken CTRL-Taste liefern 5...8
  • Die Zeichen +-*=,;.: sind auch über die PS2-tasten erreichbar
  • Die linke Control-Taste entspricht der Shift-Taste
  • Die rechte Control-Taste entspricht der Symbol-Shift Taste (soweit vorhanden)
  • Die TAB Taste betätigt beide Shift-tasten (extended Mode, soweit vorhanden) oder Shift+Enter
  • CTRL+ALT+DEL startet das System neu
  • F1 editiert die aktuell ausgewählte Zeile (nur ZX81 und Spectrum)
  • Shift+F5 startet den emulierten Rechner neu (Kaltstart)
  • F9 startet den Tape-Manager
  • F12 startet das integrierte Monitor-Programm


3 Das Dateisystem

Die Organisation des Massenspeichers (SD-Karte) erfolgt in Tapes, die jeweils bis zu 32 Programme enthalten können. Für die Emulation von LOAD und SAVE wurden die originalen ROM-Files entsprechend gepatcht, für den Jupiter ACE und den ZX Spectrum ist nur das Laden und Speichern von Snapshots vorgesehen. Für den ZX81 gibt es zwei neue Fehlercodes:
Wenn die zu ladende Datei nicht gefunden wird, wir der Error S ausgegeben, für die restlichen Dateisystemfunktionen ist der Fehlercode T vorgesehen, Wenn Programme überschrieben oder gelöscht werden, geschieht dies ohne Warnmeldung oder Sicherheitsabfrage!!!

3.1 Der Tape-Manager


Die Auswahl des Tapes und von Dateien erfolgt über den Tape-Manager. Dieser wird über einen Lade-/Speicherbefehl (ZX80, ZX81) oder mit der Funktionstaste F9 aufgerufen. In der obersten Zeile steht die aktuelle Funktion, ind der untersten Zeile die aktuell möglichen Aktionen. Die möglichen Aktionen hängen vom Emulationstyp ab und werden in den folgenden Abschnitten beschrieben. Weitere Tastenfunktionen sind:


Taste Funktion
Cursortasten Programmauswahl
Page up Vorheriges Tape
Page down Nächstes Tape
Delete Gewähltes Programm löschen
Alt+Delete Alle Programme im Tape löschen


Bei den Löschaktionen gibt es vor dem Ausführen noch eine Sicherheitsabfrage. Unterhalb der Programmliste gibt es noch das Namensfeld, hier kann der Programmname editiert werden. Die wird durch ein inverses "L" als Cursor signalisiert.

3.2 ZX81 Funktionen



3.2.1 Laden von Programmen

Das Laden von Programmen erfolgt über den Befehl LOAD "PROGNAME". Der Programmname darf dabei wie beim Original maximal 10 Zeichen lang sein. Bei leerem Dateinamen wird automatisch der Tape-Manager geöffnet. Mit ENTER wird das gewählte Programm geladen, mit der Taste ESC kann ohne zu Laden zum Emulator zurückgekehrt werden.

3.2.2 Speichern von Programmen

Das Speichern von Programmen erfolgt über den Befehl SAVE "PROGNAME". Der Programmname darf dabei wie beim Original maximal 10 Zeichen lang sein. Nach der Eingabe des SAVE-Befehles wird der Tape-Manager aufgerufen um den Speicherort festzulegen. Ein auf dem gewählten Speicherplatz befindliches Programm wird ohne Rückfrage überschrieben. Außerdem kann mit der Taste Shift+N der Programmname im unteren Feld editiert werden. Mit ENTER wird das Programm gespeichert, mit der Taste ESC kann ohne zu Speichern zum Emulator zurückgekehrt werden.

3.3 ZX80 Funktionen



3.3.1 Laden von Programmen

Das Laden von Programmen erfolgt über den Befehl LOAD. Es wird automatisch der Tape-Manager geöffnet. Mit ENTER wird das gewählte Programm geladen, mit der Taste ESC kann ohne zu Laden zum Emulator zurückgekehrt werden.

3.3.2 Speichern von Programmen

Das Speichern von Programmen erfolgt über den Befehl SAVE. Nach der Eingabe des SAVE-Befehles wird der Tape-Manager aufgerufen um den Speicherort festzulegen. Ein auf dem gewählten Speicherplatz befindliches Programm wird ohne Rückfrage überschrieben. Nach betätigen der ENTER Taste muß noch der Name eingegeben werden, mit der Taste ESC kann ohne zu Speichern zum Emulator zurückgekehrt werden.

3.4 Jupiter ACE und ZX Spectrum Funktionen



3.4.1 Laden von Programmen

Der Tape-Manager wird über F9 aufgerufen. Nach Auswahl des zu ladenden Programmes wird Shift+L gedrückt. Das Programm wird geladen und wieder zurück zum Emulator gesprungen. Mit der Taste ESC kann die Aktion abgebrochen werden. Jedes Programm hat im Image ein Markerbyte, anhand dem festgestellt wird, ob das Programm gültig ist. Wird versucht, ein Programm mit ungültigem Markerbyte zu laden (z.B. leerer Programmplatz) wird eine entsprechende Fehlermeldung angezeigt.

3.4.2 Speichern von Programmen

Der Tape-Manager wird über F9 aufgerufen. Nach Auswahl des zu speichernden Programmes wird Shift+S gedrückt. Nun wir automatisch das Namens-Editierfeld aktiviert, um den Dateinamen einzugeben / editieren. Nach dem Editieren des Programmnamens wird das Programm gespeichert und wieder zurück zum Emulator gesprungen. Mit der Taste ESC kann die Aktion abgebrochen werden.

4 Der System-Monitor


Der Monitor wird mit der Taste F12 aufgerufen. Dies kann nur aus dem Emulator heraus geschehen, aus dem Introscreen oder dem Tape-Manager ist der Aufruf nicht möglich.

4.1 Die Anzeige

In der obersten Zeile wird die Überschrift sowie der aktuelle Modus des Emulators angezeigt. Darunter folgt die Anzeige des Befehlszählers (PC) sowie der aktuellen Daten auf die der Befehlszähler zeigt.
In der nächsten Zeile findet sich die Anzeige des Stackpointers sowie die Anzeige der letzten Stackeinträge. Da die Stackoperationen jeweils 2 Bytes vom Stack lesen oder auf den Stack schreiben, ist die Anzeige der Stackeinträge auch 16-Bit weise organisiert.
Darunter folgt die Anzeige der Prozessor-Register, wobei neben dem BC, DE und HL Register in Klammern der Inhalt der durch das Register adressierten Speicherzelle steht.
Im nächsten Abschnitt folgt ein Hexdump, dessen Startadresse über den gesamten Adressbereich geändert werden kann. Näheres dazu im Abschnitt "Adress-Funktionen". In der letzten Zeile wird die Adresse des Breakpoints dargestellt, dieser ist nur aktiv, wenn das Monitorprogramm mit der Taste G verlassen wird.

4.2 Allgemeine Steuerungsfunktionen

In der folgenden Übersicht sind Funktionen wie das Beenden, Einzelschritt etc. aufgelistet.


Taste Funktion
ESC Monitorprogramm verlassen, Breakpoint ist inaktiv
G Monitorprogramm verlassen, Breakpoint ist aktiv
V Wechsel zum Emulator-Bildschirm, beliebige Taste wechselt zurück
Space Einzelschritt


Bei aktivem Breakpoint wird die Programmausführung etwas verlangsamt, als optische Rückmeldung blinkt in diesem Fall die Kontroll-LED schneller.

4.3 Adress-Funktionen

In der folgenden Übersicht befinden sich Funktionen zum Einstellen von Adressen. Bei aktiver Adresseingabe wird der betreffende Wert invertiert dargestellt. Gültige Hex-Ziffern werden von rechts "hineingeschoben", mit der ENTER-Taste wird die Eingabe abgeschlossen.


Taste Funktion
B Breakpoint-Adresse einstellen
P PC-Adresse einstellen
D Hexdump-Adresse einstellen
Cursor UP Hexdump-Adresse -0x40
Cursor DOWN Hexdump-Adresse +0x40
Page UP Hexdump-Adresse -0x400
Page DOWN Hexdump-Adresse +0x400


4.4 Snapshot-Funktionen

In der folgenden Übersicht sind alle Funktionen aufgelistet, die mit der Snapshot- und Transferfunktion zu tun haben. Ein vorhandener Snapshot wird immer dann gestartet, wenn der Introscreen ohne Tastendruck durchläuft. Diese "Autostart" Funktion lässt sich nur durch das Löschen des Snapshots abstellen.


Taste Funktion
Shift+S Aktuellen Zustand als Snapshot speichern
Shift+L Snapshot in das System laden
Shift+C Snapshot löschen
Shift+U Aktuellen Zustand über das PROG Signal senden


Mit dem Snapshot wird der aktuelle Zustand des Emulators als auch die Art der Emulation gespeichert. Die im Introscreen festgelegte Art der Emulation wird durch das Laden eines Snapshots überschrieben. Dies geschieht aber nur temporär bis zum nächsten Systemstart.

4.5 Software-Aufruf

Der Monitor kann auch per Software aufgerufen werden, und zwar über den Code ED 17. Dieser Code, gefolgt von einem RET Befehl, findet sich auch an der Adresse 0x7f30. Mittels RANDOMIZE USR 32560 kann so der Monitor aus dem BASIC heraus gestartet werden. Das ist vor allem dann sinnvoll, wenn ein Snapshot an einer bestimmten Programmstelle angelegt oder übertragen werden soll.

ACHTUNG! Der Zustand von eventuell vorhandenen IO-Ports wird bei einem Snapshot weder gespeichert noch übertragen. Beim Übertragen eines Snapshots werden vorhandene IO-PORTs zurückgesetzt.

created with latex2web.pl v0.63 © 2006-2013 Joerg Wolfram