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)

1
2
3
10 LET a=IN 43690
20 OUT 43690,a
30 GOTO 10

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

1
2
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


12 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]

    • admin_ub sagt:

      in A.10 realisiert. Und per linker STRG-Taste können die Symbole der Ziffern-Tasten “normal” eingegeben.

  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

    • admin_ub sagt:

      Für “Break” muss CapsShift gedrückt sein ! In der Version 1.1 liegt diese Funktion auf der “ESC”-Taste.

      • ManiB sagt:

        Super, dass hatte ich total vergessen (ist ja auch schon 30 Jahre her;)

  3. rk2555 sagt:

    Hallo. Befehlstasten “Y” und “Z” sind vertauscht. Getestet auf drei Tastaturen. Ist das richtig?

    • rk2555 sagt:

      Wie bitte. Auf der deutschen Tastatur in Ordnung.

    • admin_ub sagt:

      Was sind “Befehlstasten” ? Vorsicht !! Der Screenshot zeigt die original Spectrum Tastatur, da liegt “Y” rechts neben dem “T” (englisch halt).
      Ich hab das Mapping aber auf eine deutsche “QWERTZ-Tastatur” ausgelegt, damit beim tippen von einem “z” auch der Buchstabe “z” erscheint. Falls du das ändern willst (im File : usbh_hid_keybd.h) können die Layouts umgeschaltet werden.

  4. rk2555 sagt:

    Google Übersetzer:-))

  5. makapuf sagt:

    Hallo, ich habe vor zwanzig Yahre kein Deutsch gesprochen und wird auf English scrieben :

    Hi ! I’ve been following your blog for a moment : very nice !

    I’ve made an adaptation of your ZX emulator for the bitbox console (quite heavily modified by now) – will put it on github shortly.
    Are you Ok with this ? How do you want to be credited ? Congrats for your great work again !

    • admin_ub sagt:

      no problem, please dont delete my remark header
      from the files.

      • makapuf sagt:

        Sure, I’ve put them back


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

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

  1. aldo sagt:

    hi, in your opinion it is possible to fit this emulator in an esp8266 mcu? 96kb of ram and no dma for the display.

  2. Walter Hynson sagt:

    Very good project ,here is what is needed standardize the connection to an sd card reader/writer and use it to load and save files,make a listing of peek and poke codes for the I/O pins ,try to get a version of spi workingI only had a Z80 for about 30 days and I gave it to my son than I got a sx64 comode,I built and programed a cnc machine no gcode just numbers all measured with calibers and converted to number of steps and direction manually.

  3. Detlef sagt:

    VGA Ausgang wäre gut.
    Ansonsten sehr gut!!!!

Schreibe einen Kommentar

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