11-Show (ZX-Spectrum Emulator per STM32F429)

Das hier ist die Projekt-Seite vom ZX-Spectrum-Emulator per STM32F429-Discovery-Board.

Alle Infos (wirklich ALLE) über den ZX-Spectrum gibt es hier :
www.WorldOFSpectrum.org

Das Board eignet sich gut für einen Emulator (genug RAM und FLASH)
als Eingabegerät muss eine USB-Tastatur an CN6 angeschlossen sein.

Den Z80-Emulator Quellcode hab ich von “Marat Fayzullin” übernommen.
(Die Quelle davon steht im C-File)

Das ZX-Spectrum-Basic läuft wunderbar, auch IN und OUT Befehle sind möglich. Zur Demo kann man den User-Button abfragen und die Rote-LED schalten (Port=43690).
(Wer gute Basic-Demos hat kann sie mir ja zusenden zum veröffentlichen :-)

Basic-Beispiel-01 : (schaltet LED per Button)

10 LET a=IN 43690
20 OUT 43690,a
30 GOTO 10

Basic-Beispiel-02 : (setzt zufällige Farbwerte im Attribut-RAM)

10 POKE 22527+RND*704, RND*127
20 GOTO 10

Spiele :

Zwei Spiele sind im Flash “vorinstalliert” und solange der Flash reicht können noch weiter von euch hinzugefügt werden.
(zum umwandeln “Z80″->”c” kann mein Fileconverter benutzt werden)

Joystick :

Den “Kempston-Joystick” der von den meisten Spielen unterstützt wird, habe ich auf die 4 Cursortasten gemappt. Feuer = “rechte ALT”-Taste.

Load/Save :

Speichern und laden geht über die UART und im gepackten “Z80-Fileformat”. Auf dem PC benötigt man ein Terminal-Programm (z.B. mein Discovery-Terminal) Damit lassen sich Basic-Programme auf dem PC sichern und wieder laden. Auch Spiele-ROMs können über diesen Weg geladen werden. (Bitte kein anderes File-Format übertragen !!)

Version :

V:1.1 (vom 30.01.2014)

Screenshot :

Implementierte Funktionen :

Emulation der Z80 CPU
Emulation vom ZX-Spectrum (16k ROM / 48k RAM)
Eingabe : per USB-Tastatur (Micro-USB-Buchse) mit Mapping von Sonderzeichen
Start von ROM-Files vom Typ “*.Z80″ (vom Flash oder RAM)
Sound-Ausgabe (an Portpin PB2) z.B. per Piezo-Piepser
Digital OUT-Pin (an PG14) per Basic-Befehl “OUT 43690,0″ bzw “OUT 43690,1″
Digital IN-Pin (an PA0) per Basic-Befehl “LET a = IN 43690″
Speichern von Basic-Programmen (per UART) auf einem PC
Laden von Basic-Programmen/Games (per UART) von einem PC
Emulation vom “Kempston-Joystick” per Cursor-Tasten und “right ALT”

UART :

zum laden/speichern von Programmen und Spielen wird die UART
mit 115200 Baud (8N1) benutzt.
PA9 = TX
PA10 = RX

Tastaturlayout :

zx_keyboard

Caps-Shift liegt auf der linken Shift-Taste
Symbol-Shift liegt auf der rechten Shift-Taste

Die ESC-Taste dient als “Break”.
Delete, Cursor und die Symboltasten werden automatisch gemappt.
In Verbindung mit linker STRG-Taste können auch die Symbole
der Zifferntasten “ganz normal” eingegeben werden.

Spiele können über die 4 Cursortasten + “right ALT” gesteuert werden.
(im Spiele-Menu muss “Kempston-Joystick” ausgewählt werden)

Sondertasten :
“ALT” + “ESC” = Soft-Reset (und start vom ZX-Spectrum-Basic)
“ALT” + “F1″ = Start vom Game “Pssst” aus dem Flash
“ALT” + “F2″ = Start vom Game “AticAtac” aus dem Flash
“ALT” + “s” = senden vom RAM-Inhalt als Z80-File per UART
“ALT” + “l” = empfangen von einem Z80-File per UART (Basic-File)
“ALT” + “g” = empfangen von einem Z80-File per UART (Game-File)
“ALT” + “h” = Anzeige einer Hilfe Seite

Spiele :

Hinweis : es werden nur Spiele im “Z80-File-Format” unterstützt. Im Netz gibt es so gut wie alle Spiele-Roms. Leider funktionieren nicht alle Spiele mit dem Emulator (warum das so ist, weiß ich nicht und ich such da jetzt auch keinen Fehler mehr)

Hier der komplette CooCox-Projektordner zum download :

Show_11_Spectrum

5 Antworten auf 11-Show (ZX-Spectrum Emulator per STM32F429)

  1. ManiB sagt:

    Hi Uwe,
    der ZX-Sprectrum Emulator läuft ja schon prima!

    Beim Eintippen der Basic Befehle ist wieder das alte Feeling von Damals aufgekommen – Die endlose Suche nach der richtigen Tastenbelegung.

    Kannst du folgende Tasten der USB Tatstatur als Tastenkombination beim ZX-Spectrum umsetzen? Das würde die Eingaben erheblich vereinfachen:

    [Backspace] -> [CAPS-SHIFT] + [0]
    [CursorLeft] -> [CAPS-SHIFT] + [5]
    [CursorDown] -> [CAPS-SHIFT] + [6]
    [CursorUp] -> [CAPS-SHIFT] + [7]
    [CursorRight] -> [CAPS-SHIFT] + [8]
    [+] -> [Symbol-Shift] + [K]
    [*] -> [Symbol-Shift] + [B]
    [#] -> [Symbol-Shift] + [3]
    ['] -> [Symbol-Shift] + [7]
    [ [Symbol-Shift] + [R]
    [>] -> [Symbol-Shift] + [T]
    [,] -> [Symbol-Shift] + [N]
    [;] -> [Symbol-Shift] + [O]
    [.] -> [Symbol-Shift] + [M]
    [:] -> [Symbol-Shift] + [Z]
    [-] -> [Symbol-Shift] + [J]
    [_] -> [Symbol-Shift] + [0]

  2. ManiB sagt:

    Hallo Uwe,

    der Spectrum-Emulator funktioniert jetzt fast perfekt.

    Ein Sache ist mir noch aufgefallen: Eine Basic-Endlos-Schleife kann man nicht mit der Taste [BREAK SPACE] abbrechen.

    Starte mal dieses Programm, und versuche den Abbruch mittels der [BREAK SPACE] Taste:


    10 POKE 22527+RND*704, RND*127
    20 GO TO 10

    Ciao,
    ManiB

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *


+ acht = vierzehn

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>