mikrocontroller.net

Forum: Projekte & Code STECCY - ZX-Spectrum-Emulator mit STM32


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Frank M. (ukw) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
11 lesenswert
nicht lesenswert

STECCY emuliert einen ZX-Spectrum 48K auf einem STM32F407VET-Black-Board, welches für ca. 10 Euro bei eBay oder Aliexpress erstanden werden kann. Außerdem ist STECCY auch unter QT übersetzbar, so dass STECCY auch unter Windows und Linux genutzt werden kann.

STECCY bildet als Emulator nicht nur den Befehlssatz einer Z80-CPU ab, sondern auch Teile der ZX-Spectrum-Hardware. Das 256x192 große Spectrum-Display wird dabei auf einem TFT-Display mit einer Vergrößerung von 2:1 dargestellt - also mit einer Auflösung von 512x384 Bildpunkten.

Das Laden und Speichern von Programmen geschieht über eine SD-Karte, welche FAT32-formatiert ist. Hier werden die Cassettenrecorder-Routinen im virtuellen ROM umgebogen auf eigens erstellte Lade- und Speicher-Routinen für SD-Karten. STECCY unterstützt dafür TAP-, TZX- und Snapshot-Dateien. Mittels Snapshots kann jederzeit der aktuelle Zustand des emulierten ZX-Spectrums eingefroren und abgespeichert werden. Dadurch ist es dann zum Beispiel möglich, am nächsten Tag ein Spiel genau zu dem Zeitpunkt weiterzuspielen, wie es als Snapshot gespeichert wurde.

Es wird der ZX-Spectrum 48K emuliert. Der virtuelle Spectrum hat also ein ROM mit einer Größe von 16KB und RAM mit einer Größe von 48KB. Dabei wird der Inhalt des Original-Sinclair-ROMs verwendet. Dieses wurde schon vor langer Zeit (1999) von Amstrad, dem derzeitigen Rechteinhaber, als frei verfügbar und weiter verteilbar erklärt.

Nichtsdestotrotz können aber auch alternative ROMs wie zum Beispiel das "GOSH WONDERFUL ZX Spectrum ROM" verwendet werden - ladbar analog zum Original-Sinclair-Rom über die SD-Karte.

Z80-Emulator

Es werden nicht nur die dokumentierten, sondern auch alle undokumentierten Befehle einer Z80-CPU nachgebildet. Dieses ist insbesondere bei Spielen wichtig, da manche ZX-Spectrum-Spiele undokumentierte Instruktionen verwenden.

Über http://clrhome.org/table/ findet man sämtliche möglichen Z80-Instruktionen. Die dokumentierten sind grau hinterlegt, die undokumentierten haben einen roten Hintergrund. Diesen bilden den weitaus größeren Teil des Z80-Instruction-Sets.

Hardware-Emulator

Folgende ZX-Spectrum-Hardware wird durch STECCY nachgebildet:

  • Z80 durch timinggenaue Emulation einer 3,5MHz getakteten Z80-CPU
  • ULA-Chip für Display und Interrupts
  • Spectrum-Tastatur durch PS/2-Tastatur
  • Cassettenrecorder durch SD-Karte
  • Spectrum-ROM durch Datei auf SD-Karte
  • Spectrum-Screen auf 7" TFT-Display mit SSD1963-Controller

Display

Als Display wird ein 7-Zoll-TFT-Display mit 800x480 Pixeln und SSD1963-Controller verwendet. Dabei wird der Spectrum-Screen von der ursprünglichen Auflösung von 256 x 192 Pixeln auf 512 x 384 Pixel aufgebohrt.

Features

Die Features von STECCY kann man mit folgenden Punkten zusammenfassen:

  • Emulation sämtlicher Z80-Instruktionen - auch der undokumentierten.
  • Das Timing gleicht dem einer Z80-CPU bei 3,5MHz
  • Vergrößerte Anzeige des ZX-Spectrum-Displays inkl. "Border" auf TFT mit 800x480 Pixeln
  • Verschiedene ZX-Spectrum-ROMs möglich
  • Laden und Speichern von TAPE-Daten über SD-Karte
  • Simulation der Spectrum-Tastatur durch eine PS/2-Computer-Tastatur
  • Simulation diverser Joysticks über Tastatur-Nummernblock

Spiele

Viele der ZX-Spectrum Spiele sind mittlerweile Public-Domain. Informationen über Copyrights findet man hier: https://www.worldofspectrum.org/permits/. Im Zweifel gilt: Ist man Eigentümer des Original-Spiels in Form der Compact-Cassette, ist man auf der sicheren Seite.

Überhaupt ist https://www.worldofspectrum.org/ diejenige Anlaufstelle, um sich allgemein über den ZX-Spectrum zu informieren oder auch Programme/Spiele herunterzuladen. Über das Archiv https://www.worldofspectrum.org/archive.html kann auf Text-Adventures, Utilities und über 10.000 Spiele für den ZX-Spectrum zugegriffen werden. Auf Urheber-Rechte sollte unbedingt geachtet werden!

Weitere geplante Features

  • Unterstützung einer USB-Tastatur (bereits im Test)
  • Unterstützung der Original-ZX-Spectrum Matrix-Tastatur (8x5)
  • Ausgabe von Ton über einen externen Lautsprecher

Alles weitere findet man im Artikel STECCY. Dieser wird in den nächsten Tagen weiter ausgebaut.

Viel Spaß mit STECCY!

(EDIT: Tippfehler korrigiert)


: Bearbeitet durch Moderator
von Ralph S. (jjflash)


Bewertung
1 lesenswert
nicht lesenswert
coooolst

von leo (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Frank M. schrieb:
> STECCY emuliert einen ZX-Spectrum 48K auf einem STM32F407VET-Black-Board

Meine Hochachtung.

leo

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
Sorry, ich hatte im Artikel versehentlich eine Source-Version von STECCY 
bereitgestellt, die zuviele Source-Dateien beinhaltete, die nicht zum 
eigentlichen Projekt gehören, sondern lediglich zum Test gedacht waren.

Daher habe ich die Zip-Datei für den STM32-Source nochmals aktualisiert.

Download ist jetzt: 
https://www.mikrocontroller.net/articles/Datei:Steccy-stm32.zip

Wer den Source bereits heruntergeladen hat, möge ihn durch obige Version 
ersetzen. Danke!

von Markus (Gast)


Bewertung
1 lesenswert
nicht lesenswert
Ein Bild der Hardware-Version wäre nicht schlecht.

von Vancouver (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Coole Sache, Respekt. Ich fühle mich in meine Jugend zurückversetzt. Mit 
einer Radiergummitastatur mit sechsfacher Tastenbelegung wäre das ganze 
jetzt auch noch gefühlsecht :-)

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Markus schrieb:
> Ein Bild der Hardware-Version wäre nicht schlecht.

Bilder von der Hardware liefere bis zum Wochenende nach. Im Moment 
hängen Display und PS/2-Tastatur noch über Dupont-Kabel am STM32-Board. 
Das ist ein ziemlicher Kabelverhau. Deshalb plane ich da noch eine 
Adapterplatine, damit man Board und Display einfach zusammenstecken 
kann.

Vancouver schrieb:
> Mit einer Radiergummitastatur mit sechsfacher Tastenbelegung wäre das
> ganze jetzt auch noch gefühlsecht :-)

Solche ZX-Spectrum-Leergehäuse inkl. Radiergummi-Tastatur werden für 
Retro-Fans immer noch hergestellt. Bei eBay gibts die zu kaufen - in 
allen möglichen Farben, z.B. hier: 
Ebay-Artikel Nr. 113936308104

Die Tastaturmatten kann man dort auch ohne Gehäuse erwerben.
Faceplate: 
Ebay-Artikel Nr. 382421410026
Gummimatte: 
Ebay-Artikel Nr. 193263854632

Einfach dort mal nach "ZX-Spectrum Leergehäuse" oder "ZX-Spectrum 
Tastatur"  suchen.

Mich juckts auch schon in den Fingern, so ein Ding zu bestellen, um dann 
das STM32-Board ins Gehäuse stopfen. Bleibt noch das Display, was 
irgendwie außen angebracht werden muss. Dann hat man einen 
ZX-Spectrum-Laptop ;-)

Die Unterstützung der ZX-Spectrum-Tastatur ist auf jeden Fall geplant, 
kommt also. Pins dafür sind auf dem STM32F407 BlackBoard genügend 
vorhanden.

: Bearbeitet durch Moderator
von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wahnsinn. Das will ich mir auch bauen.

Kann man dann auch in BASIC und Maschinensprache programmieren?

Gibt es Möglichkeit, Hardware anzuschließen? Und evtl. über IN/OUT- oder 
PEEK-POKE-Befehle z. B. den 8255 oder Relais, LEDs anzuschließen?

Joe.

von Frank M. (ukw) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> Kann man dann auch in BASIC und Maschinensprache programmieren?

Ja, das funktioniert. Siehe auch Anhang, ich gerade mal in der 
QT-Version ein kleines Basic-Programm eingegeben und dann gestartet.

Maschinencode geht natürlich auch, sonst würden die ganzen Spiele ja 
nicht funktionieren.

> Gibt es Möglichkeit, Hardware anzuschließen? Und evtl. über IN/OUT- oder
> PEEK-POKE-Befehle z. B. den 8255 oder Relais, LEDs anzuschließen?

Das ist eine interessante Anregung. Ich könnte natürlich den Datenbus 
plus /RD und /WR transparent auf ein paar STM32-Pins legen und dazu noch 
ein paar /CS-Pins für bestimmte Adressen simulieren. Dann wären sonst 
noch nötige Adressdecoder für bestimmte Adressen einfach in Software 
gegossen.

Dann könnte man eine 8255-Pio in einer CMOS-Version sogar direkt 
anschließen. Ansonsten bräuchte man einen Pegelwandler. Der Anschluss 
einer Z80-PIO wäre schwieriger, da diese noch den /M1-Zyklus braucht. 
Den emuliere ich momentan nicht, da er sonst nicht notwendig ist.

Ich habe zuhause sogar noch ein paar 8255 rumfliegen, könnte das also 
mal austesten...

Allerdings könnte ich auch den 8255 ebenso emulieren, dann könnten Deine 
LEDs oder Relais (über einen Transistor) direkt an den STM32 ;-)

Ich glaube, das letztere halte ich für sinnvoller, oder? Spart auf jeden 
Fall alte Hardware, die nicht mehr ganz so einfach zu beschaffen ist.

: Bearbeitet durch Moderator
von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Ja, wenn's geht, wäre das eine elegante Umschiffung des 
Beschaffungsproblems. Der 8255 hat einen Parallel-Bus mit drei 
8-Bit-Ein-/Ausgängen. Ginge das, drei oder vier 8-Bit-Ports; und I2C und 
SPI transparent nach draußen anschliessbar zu machen? Ich habe jetzt 
noch nicht den detaillierten Überblick über die Hardware; aber so etwas 
wäre eine feine Sache.

Analoge Ein- und Ausgänge sind dann vielleicht auch denkbar? Beruflich 
bin ich Hardware-Entwickler, da könnte ich mich einbringen.

Joe

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> Ginge das, drei oder vier 8-Bit-Ports;

Wird knapp. Eine ganze Menge an Pins (ca. 20) gehen drauf für den 
Parallel-Anschluss des Displays (FSMC). Dann sind noch einige Pins 
belegt für Board-interne Komponenten wie FLASH, LEDs, Taster. Okay, das 
Flash brauchen wir nicht, aber zumindest vom CS-Pin sollte man die 
Finger lassen ;-)

Okay, die beiden Board-LEDs könnte man sogar noch nutzen über 
OUT-Befehle des Spectrums auf einer festen Adresse. Das habe ich mal 
direkt auf die TODO-Liste gesetzt ;-)

Es bleiben - über den Daumen gepeilt - ca. 37 Pins übrig zur freien 
Verfügung.

Dafür sind schon verplant:

 - 1 Pin für Speaker
 - 8 + 5 = 13 Pins für eine Original-Spectrum-Tastatur-Matte
 - 2 Pins für UART, ansprechbar über speziellen Spectrum-Stream
 - 5 Pins für Anschluss eines ESP8266 für OTA-Flash

Mit dem zusätzlichen ESP8266 könnte der STM32 über WLAN geflasht werden, 
wenn Updates verfügbar sind. Ich habe dies schon erfolgreich für das 
Projekt "WordClock mit WS2812" implemtentiert. Ist ungeheuer praktisch. 
Außerdem könnte der ESP8266 einen Telnet-Port aufmachen, so dass ein 
USART des STM32 direkt transparent über TELNET läuft.

Bleiben 16 Pins übrig. Davon könnte man 8 Pins als Inputs festlegen und 
8 Pins als Output. Reicht Dir das? Oder warum möchtest Du soviel 
I/O-Ports?

Man könnte natürlich die externe Spectrum-Tastatur und den ESP8266 
optional machen. Wenn man diese nicht braucht, gewinnt man nochmal 
mindestens 16 Pins, also zwei 8-Bit-Ports dazu.

> und I2C und SPI transparent nach draußen anschliessbar zu machen?

Ja, das wäre möglich, über Spectrum Streams oder IN/OUT, muss ich mal 
drüber nachdenken, was hier sinnvoller ist. Da jetzt die Pins etwas 
knapp werden, würde ich dann bei Verwendung (und nur dann!) I2C und SPI 
in die zur Verfügung stehenden 8-Bit-Ports mappen, so dass dann bei 
gleichzeitiger Verwendung der 8-Bit-Ports ein paar Bits nicht mehr zur 
Verfügung stehen würden, da dann von SPI und I2C belegt.

Aber bevor wir hier immer weiter spekulieren, sollte man sich die Frage 
stellen: Was braucht man wirklich? Und wozu?

> Analoge Ein- und Ausgänge sind dann vielleicht auch denkbar?

:-))) Theoretisch: Ja. Aber braucht man das? ;-)

> Beruflich bin ich Hardware-Entwickler, da könnte ich mich einbringen.

Das klingt schon mal gut. Man könnte natürlich durch Port-Extender 
weitere Pins aus dem Hut zaubern. Da kannst Du ja mal einen Vorschlag 
machen.

von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn I2C transparent nach draußen verfügbar sind, braucht man dann nicht 
so viele Port-Pins, ja. Port-Expander, A/D-, D/A-Wandler etc. etc. gibt 
es ja alles schon für I2C.

Bei zwei 8-Bit-Ports, wäre eine Erweiterung denkbar mit z. B. einem 
acht-aus-drei Dekoder, 74HCT138 oder so. Braucht drei Bits.

Wenn man 16 Leitungen für I/O nehmen könnte?

0 - |
1 ----74HCT138 ===> 8 Bits nach draußen für Ausgänge, SPI/SS, 
CS-Leitungen
2 - |
3 - I2C/SDA
4 - I2C/SCL
5 - SPI/MOSI
6 - SPI/MISO
7 - SPI/SCLK

0 - I/O, geht auch als gelatchter Daten-/Adressbus, für Transistoren 
oder Relais.
1 -   "
2 -   "
3 -   "
4 -   "
5 -   "
6 -   "
7 -   "

Ich könnte eine Platine designen, für so eine ZX-Spectrum-Tastatur, das 
wäre eine feine Sache! Ich habe diese Tastaturen auch schon gesehen, 
auch einen passenden Gehäusedeckel. Muss ich noch mal schauen, ob es 
dann auch den passenden Gehäuseboden dafür gibt.

von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn man die I/O-Leitungen nach außen auf 16 begrenzt, und mit I2C 
anschließt, käme ich auf so eine Konfiguration:

Als ganz klassisches I2C-System, mit gesteckten ICs im DIP-Gehäuse 
(falls mal etwas kaputt geht):

2x PCF8574 oder 1x PCF8575, 16-Bit-I/O Expander mit Interrupt (3. 
Input-Leitung evtl. notwendig)
1x PCF8591, der Klassiker für analog in/out; 4x analog in, 1x analog 
out.

So wär's eine runde Sache für Leute wie mich, die auch mal eine 
Elektronik anschließen wollen. Ein toller, kleiner Steuerungscomputer.

Es gibt auch Keyscan-ICs, für 70 Tasten oder 104 Tasten, etc. Laufen 
auch mit I2C. Damit könnte man die Spectrum-Tastatur an den STM32 
anschließen.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> Wenn I2C transparent nach draußen verfügbar sind, braucht man dann nicht
> so viele Port-Pins, ja. Port-Expander, A/D-, D/A-Wandler etc. etc. gibt
> es ja alles schon für I2C.

Dann lass es uns mit I2C machen. So bleiben noch jede Menge weiterer 
STM32-Pins für andere Sachen übrig. Da kommen bestimmt noch ein paar 
Ideen :-)

Der müde Joe schrieb:
> 2x PCF8574 oder 1x PCF8575, 16-Bit-I/O Expander mit Interrupt (3.
> Input-Leitung evtl. notwendig)

Klingt gut. Ich präferiere für bis zu 2 x PCF8574, dann ist man 
flexibler. Eventuell will jemand nur einen 8-Bit-Port - falls überhaupt.

> 1x PCF8591, der Klassiker für analog in/out; 4x analog in, 1x analog
> out.

Okay.

> So wär's eine runde Sache für Leute wie mich, die auch mal eine
> Elektronik anschließen wollen. Ein toller, kleiner Steuerungscomputer.

... und altmodischer Steuerungscomputer ;-)

Aber egal, Retro macht Spaß.

> Es gibt auch Keyscan-ICs, für 70 Tasten oder 104 Tasten, etc. Laufen
> auch mit I2C. Damit könnte man die Spectrum-Tastatur an den STM32
> anschließen.

Könnte man, möchte ich aber nicht. Ich möchte die Keyscan-Routine 
komplett dem emulierten Z80 überlassen. Manche ZX-Spiele gehen nicht 
über die ROM-Keyboard-Scan-Routine, sondern haben eigene. Um hier ein 
1:1-Verhalten gegenüber dem Original zu erzeugen, würde ich die 
notwendigen 13 Leitungen direkt auf die Tastatur-Matrix legen und die 
IN-/OUT-Befehle entsprechend auch emulieren. Dann läuft das auch sauber 
- egal, wie die Tastatur von den Spielen ausgelesen wird.

Der müde Joe schrieb:
> Ich könnte eine Platine designen, für so eine ZX-Spectrum-Tastatur, das
> wäre eine feine Sache! Ich habe diese Tastaturen auch schon gesehen,
> auch einen passenden Gehäusedeckel. Muss ich noch mal schauen, ob es
> dann auch den passenden Gehäuseboden dafür gibt.

Ein paar eBay-Links für Komplett-Gehäuse, Tastaturen und Faceplates habe 
ich oben schon gepostet. Da kommen dann zwei Flachbandkabel (5 + 8) 
raus, die an die entsprechenden STM32-Pins geführt werden müssen. Also 
wie beim Original.

: Bearbeitet durch Moderator
von Michael Gugelhupf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Frank M. schrieb:
> Mit dem zusätzlichen ESP8266 könnte der STM32 über WLAN geflasht werden,
> wenn Updates verfügbar sind.

Wenn man sich furchtbar langweilt :-) könnte man das Interface 
Spectranet und TNFS kompatibel machen. 
https://www.bytedelight.com/?page_id=3515 Damit könnte der Emulator 
direkt Games aus dem Internet laden.

von W.S. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Frank M. schrieb:
> STECCY emuliert einen ZX-Spectrum 48K auf einem STM32F407VET-Black-Board

Gratulation!

Das sieht ja nach einem wirklich sehr hübschen Bastelprojekt aus - und 
es erinnert mich an früher. Ich hatte so Mitte der 80er Jahre einen 
ZX-Spectrum 48K in diskreter Logik aufgebaut. Ging gut, sämtliche Spiele 
taten wie sie sollen.

Aber das ist nun schon rund 35 Jahre her - und wenn man mal bedenkt, was 
heutzutage angesagt ist, dann merkt man mal deutlich, was es seitdem für 
eine gewaltige technische Entwicklung gegeben hat. Libre Office versus 
TLW (TheLastWord) oder so.

Für mich erstaunlich ist, daß es offenbar eine Menge ZX-Fans gibt, die 
selbst teure Teile wie z.B. Leergehäuse für viel Geld (rund 100 Euro!) 
kaufen, so daß es dafür einen Markt gibt.

W.S.

von W.S. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Michael Gugelhupf schrieb:
> Wenn man sich furchtbar langweilt

Ich schätze, daß man mit jeder Art Erweiterung, die nicht schon damals 
vorgesehen war, ungeahnte Komplikationen hervorruft. Dann laufen 
plötzlich irgendwelche Apps/Spiele nicht mehr. Schon damals hatten die 
Softwarehersteller alle möglichen Tricks benutzt, um das Disassemblieren 
und Kopieren zu erschweren. Eigene Kassettenroutinen, undokumentierte 
Maschinenbefehle, Stackpointer auf passende Stelle im ROM und vieles 
Andere.

Da nun anstelle der Kassette anderweitige Speicher oder anstelle der 
Tastenmatrix eine andere Tastatur benutzen zu wollen, macht 
Schwierigkeiten und Inkompatibilitäten. Das sollte man berücksichtigen, 
wenn man sowas tun will. Sonst hat man zwar eine nette Peripherie, aber 
keine dazu passende Software.

W.S.

von W.S. (Gast)


Angehängte Dateien:

Bewertung
-1 lesenswert
nicht lesenswert
Nachtrag:
Ich hab tatsächlich noch so eine steinalte Eigenbau-Tastatur im Sediment 
der Bastelkiste gefunden.

W.S.

von egberto (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Egal - Haupsache "Horace goes skiing" läuft - "No money, no ski"!

In diesem Sinne,

Schönes Wochenende

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
W.S. schrieb:
> Gratulation!

Danke.

egberto schrieb:
> Egal - Haupsache "Horace goes skiing" läuft - "No money, no ski"!

Gerade getestet, läuft :-)

von egberto (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Sehr hübsch, vielen Dank!

Bin schon in der Bucht am suchen....

von Joe G. (feinmechaniker) Benutzerseite


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Vielleicht stößt es ja auf Interesse. Ich hatte mich damals an der 
Kampagne [1] beteiligt und in dieser Woche kam nach einer spannenden 
Wartezeit von 2 Jahren die Lieferung. Nun soll es eine weitere Auflage 
geben.

[1] https://www.specnext.com/

von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Super Teil. Erstaunlich, was man so alles machen  kann.
Wenn das OS vom C64 frei wäre... Aber auch da sind erste Anzeichen für 
eine Neuauflage in Sicht...

von Frank M. (ukw) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
2 lesenswert
nicht lesenswert
Hier ein paar Bilder von der STECCY-Hardware.
Sorry für die Spiegelungen, hinter mir war ein Fenster...

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich habe für die STM32-Version ein paar Eweiterungen eingebaut:

Unterstütz7ung der Board-LEDs:

Die BlackBoard-LEDs am STM32 können mit Z80-OUT-Befehlen (sowohl in 
BASIC als auch in Assembler) angesprochen werden.

UART für ZX-Spectrum:

Der STM32-UART kann nun mit den ZX-Spectrum Basic-Befehlen "PRINT #4" 
bzw. "INPUT #4" für serielle Aus- und Eingabe verwendet werden.

Beispiele für beide Features gibt es im Artikel, siehe 
STECCY: STM32-Hardware-Erweiterungen

Im Download-Bereich liegt daher eine Version 1.1.

Viel Spaß!

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Die QT-Version von STECCY liegt nun auch vor, siehe STECCY: Download.

Damit kann man STECCY auch direkt unter Windows oder Linux ausprobieren.

Die Windows-Version ist getestet, die Linux-Version nicht, da ich nur 
Zugriff auf Linux-Server ohne GUI habe.

Viel Spaß!

von egberto (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gibt es eigentlich bei dem Display noch mehr Optionen?
Ich würde da gern was mit anderen AV Eingängen einsetzen - z.B. um auch 
einen C64 dran zu hängen.

Grüße,

Egberto

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
egberto schrieb:
> Gibt es eigentlich bei dem Display noch mehr Optionen?

Es gibt wohl Möglichkeiten, mit dem STM32 ein VGA-Signal zu erzeugen, 
zum Beispiel:

  https://www.artekit.eu/vga-output-using-a-36-pin-stm32/
oder
  https://github.com/abelykh0/VGA-demo-on-bluepill

Jedoch habe ich da keine großen Ambitionen, so etwas anzupassen. Ich 
nehme auch an, dass hier so viel CPU-Zeit verbraten wird, dass zuwenig 
Zeit für die Spectrum Emulation bleibt.

Aber wenn Du möchtest, kannst Du Dich mal dranmachen ;-)

von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Bewertung
0 lesenswert
nicht lesenswert
Welche Stromaufnahme hat das ganze Werk? Wäre ein Akkubetrieb denkbar?

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Thomas G. schrieb:
> Welche Stromaufnahme hat das ganze Werk? Wäre ein Akkubetrieb
> denkbar?

Keine Ahnung, müsste ich mal durchmessen. Am meisten frisst die 
Hintergrundbeleuchtung des Displays. Diese ist aber per PWM dimmbar. Im 
Moment nutze ich das aber nicht.

Im Datenblatt, welches ich im Eckstein-Shop gefunden habe, soll die 
Hintergrundbeleuchtung maximal 200mA benötigen. Der SSD1963-Controller 
wird aber auch noch was verbraten. Ich schätze mal, dass insgesamt schon 
zusammen mit dem STM32 500mA oder mehr zusammenkommen. Ein Akku würde da 
wohl nicht so lange halten.

: Bearbeitet durch Moderator
von Thomas G. (Firma: Frickelhauptquartier) (taximan)


Bewertung
0 lesenswert
nicht lesenswert
Schade eigentlich, ich hätte sonst eine Art "Laptopgehäuse" 
vorgeschlagen.

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Klar, ist alles total sinnlos. Aber natuerlich schon auch sehr cool!

> Für mich erstaunlich ist, daß es offenbar eine Menge ZX-Fans gibt, die
> selbst teure Teile wie z.B. Leergehäuse für viel Geld (rund 100 Euro!)
> kaufen, so daß es dafür einen Markt gibt.

Vor allem wenn man bedenkt das ich damals wenn ich mich richtig erinnere 
399DM fuer eine richtige Tastatur ausgegeben habe in der man die Platine 
des ZX einbauen konnte. Da wuerde ich heute kein Geld mehr ausgeben um 
wieder Gummifeeling zu haben. :-)

BTW: Es ist garnicht so lange her das ich das externe 5 1/4Zoll 
Diskettenlaufwerk fuer den ZX Spectrum weggeworfen habe. Hat damals 
1000DM gekostet! Bevor die Fans jetzt Schnappatmung bekommen, das war 
sowieso kacke weil das eine eigene Firmware hatte die sich in die oben 
16k anstatt des Rams eingeblendet hat. Damit lief dann viele Software 
nicht mehr weil man im Prinzip einen 32k Spektrum hatte.

Olaf

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Thomas G. schrieb:
> Schade eigentlich, ich hätte sonst eine Art "Laptopgehäuse"
> vorgeschlagen.

Wenn Du da eine USB-Powerbank reinsteckst, sollte das für ein paar 
Stunden reichen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Bewertung
0 lesenswert
nicht lesenswert
Um welchen Faktor ist die Emulation denn schneller als das Original wenn 
diese nicht ausgebremst wird?

Wenn man mal bedenkt, dass der ZX auch Grafikspielchen konnte mit einem 
3,5MHz Z80, dann bin ich guter Hoffnung, dass auch mit dem 4MHz MIPS TTL 
sowas mal gehen wird später.
Der Z80 ist ja Multicycle mit min 3 Zyklen, aber jeder Zyklus kann dann 
nochmal mehrere "echte" Takte brauchen.
Das ist schon echt eine interessante Architektur, aber eben vor meiner 
Zeit.

von Frank M. (ukw) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> 2x PCF8574

Die I2C-Portexpander PCF8574 und PCF8574A werden nun von STECCY 
unterstützt. Man kann von den beiden Modellen jeweils bis zu 8 Module 
anschließen, also insgesamt bis zu 16. Ich denke, das reicht ;-)

Getestet habe ich das mit dem Modul im Bild. Diese kann man einfach 
durch Aneinanderstecken kaskadieren. Man muss lediglich darauf achten, 
dass die Adress-Jumper A2,A1,A0 verschieden gesteckt sind.

Im Artikel steht daher nun die Version 1.2 bereit. Wie man die PCF8574 
über STECCY unter BASIC oder Assembler ansteuern kann, ist im Kapitel 
STECCY: PCF8574 Port-Expander beschrieben.

Viel Spaß!

: Bearbeitet durch Moderator
von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wenn ich das richtig verstehe, ist diese I2C-Schnittstelle universell 
einsetzbar, für 7-Bit-addressierbare ICs.

Dann wäre der PCF8591P (4-Kanal-A/D, 1-Kanal-D/A-Wandler) und eine RTC, 
z. B.  auch kein Problem?

Im Ganzen möchte ich nämlich diese Chips anschließen:

PCF8574 (GPIO-Erwweiterung)
PCF8591 (A/D- und D/A-Wandler)
LM75 (Temperatursensor)
PCF8563 (RTC)

Es soll die teuren Meßtechnik-Erweiterungen für die Taschenrechner von 
Casio und TI ersetzen, im Schulunterricht.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> Wenn ich das richtig verstehe, ist diese I2C-Schnittstelle
> universell einsetzbar, für 7-Bit-addressierbare ICs.

Ja.

> Dann wäre der PCF8591P (4-Kanal-A/D, 1-Kanal-D/A-Wandler) und eine RTC,
> z. B.  auch kein Problem?

Da sehe ich erstmal kein Problem. Ich muss mir nur für jedes I2C-Device 
neue ZX-Spectrum-Ports ausdenken.

> Im Ganzen möchte ich nämlich diese Chips anschließen:
>
> PCF8574 (GPIO-Erwweiterung)
> PCF8591 (A/D- und D/A-Wandler)
> LM75 (Temperatursensor)
> PCF8563 (RTC)

Klingt gut, ich studiere in den nächsten Tagen mal die Datenblätter...

> Es soll die teuren Meßtechnik-Erweiterungen für die Taschenrechner von
> Casio und TI ersetzen, im Schulunterricht.

Ah, Schulunterricht! Jetzt macht das Ganze auch für mich Sinn. ;-)

von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wäre ein Display, bei dem man sich das Verkabeln spart nicht sinnvoller:

Beitrag "Re: STM32F407 Black und Arduino"

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:
> Wäre ein Display, bei dem man sich das Verkabeln spart nicht sinnvoller:

Klingt gut, ist wahrscheinlich auch ein SSD1963 Display und damit auch 
kompatibel. Ist aber auch kleiner, aus dem AliExpress-Link lese ich da 
mickrige 3,2 Zoll raus.

Tatsächlich funktioniert der AliExpress-Link gar nicht mehr.

Hast Du da einen alternativen Link?

Zum Verkabeln:

Ich bin zur Zeit dabei, eine Adapterplatine zu entwerfen, so dass man

entweder
  BlackBoard und Display Rücken an Rücken stecken
oder
  mit einem 1:1 Flachbandkabel verbinden
kann.

Dann beschränkt sich das Verkabeln aufs Aufstecken.

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Markus schrieb:
> Wäre ein Display, bei dem man sich das Verkabeln spart nicht sinnvoller:

Habs gefunden:

https://de.aliexpress.com/item/32991977705.html

und direkt mal bestellt. Zum Testen ist das wohl ganz nett, aber 5" oder 
7" gefallen mir von der Größe her besser.

EDIT:
Da ist ein ILI9341 Controller drauf und kein SSD1963. Damit sind dann 
noch Software-Anpassungen nötig...

: Bearbeitet durch Moderator
von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
>und direkt mal bestellt. Zum Testen ist das wohl ganz nett, aber 5" oder
>7" gefallen mir von der Größe her besser.

Mir sind die 3.2 Zoll mittlerweile auch zu klein.
7 Zoll ist tatsächlich eine angenehme Größe, aber so viele Kabel zu 
ziehen finde ich immer etwas nervig. Ich tendiere mittlerweile zum 
bequemen und mit etwas Glück findet man oft geeignetere Teile.

Übrigens:
Vor kurzem gab's auf Hackaday mal einen Beitrag von Bitluni zum ESP32:
https://hackaday.com/2020/02/24/bitluni-brings-all-the-esp-32-multimedia-hacks-to-supercon/

Der hat in seiner Library VGA-Treiber in allen erdenklichen Richtungen 
breit getreten:

https://github.com/bitluni/ESP32Lib

von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Nein, ich glaube, das I2C ist so wie es jetzt schon ist, voll 
einsatzfähig. Man kann eine Adresse auf den Bus schreiben, und eine 
Antwort lesen. Das ist schon fein so. Die 8 Bit muss man dann natürlich 
selbst in seiner Software interpretieren. Also keine Extra-Befehlsworte 
für spezielle, am I2C-Bus hängende ICs. Einfach nur einen universellen 
I2C-Bus. Der Nutzer muss dann natürlich selber schauen, dass es keine 
Kollisionen bei den Adressen gibt.

Der PCF8591 (A/D, D/A-Wandler) hat z. B. diese Adressen: 0x90 bis 0x9E.

Aber anstatt jetzt jeden einzelnen I2C-Chip speziell zu berücksichtigen, 
würde ich eine universelle Lösung vorschlagen. Also quasi einen 
transparent schreib- und lesbaren I2C-Bus.

von STM Apprentice (Gast)


Bewertung
3 lesenswert
nicht lesenswert
So kaum ist eine Woche vergangen schon habe ich dieses
Projekt entdeckt ;-)

Ich staune welche Arbeit man in so ein Spiele-Projekt steckt.

Dazu meinen vollen Respekt. Ich würde es nicht tun ....

Aber:

- Projekt in Embitz (ich liebe es) geschrieben
- sauberer Aufbau in Gliederung, Modularisierung
- sehr saubere Sourcen
- SPL verwendet

Alles in allem, sehr klasse gemacht!

Da möge sich so mancher Einsteiger der mit Mühe sein erstes
CubeMX-Projekt auf die Beine stellt, ein Vorbild nehmen.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> Nein, ich glaube, das I2C ist so wie es jetzt schon ist, voll
> einsatzfähig.

Nicht ganz, die möglichen I2C-Adressen sind für den PCF8574 (ab 0x20) 
bzw. PCF8574A (ab 0x38) momentan hart codiert, siehe Tabelle im Artikel.

> Man kann eine Adresse auf den Bus schreiben, und eine
> Antwort lesen.

Die Adresse, die Du im ZX-BASIC angibst, ist der ZX-Spectrum-Port. Der 
wird momentan nach einem bestimmten Schema auf I2C-Adressen gemappt, 
aber momentan nur für I2C-Adressen von PCF8574 und PCF8574A.

Aber Du bringst mich auf eine Idee. Der Spectrum-I/O-Port ist 16-Bit 
breit. Für STM32-IO habe ich die Low-Port-Adresse 0x7F reserviert. Ich 
könnte für die 7-Bit-I2C-Adresse einfach das obere Byte 1:1 nehmen. Dann 
ist es wirklich egal, was da für ein I2C-Device dranhängt.

Also: Z80-Port xx7F = I2C-Device mit 7-Bit-I2C-Adresse xx.

Damit wäre ein PCF8574 mit Basis-Adresse 0x20 ansprechbar über den 
Z80-Port 207F, ein PCF8574A mit Basis-Adress 0x38 über den Z80-Port 
387F, ein LM75 mit Basisadresse 0x48 über den Z80-Port 487F.

Ich werde das so anpassen. Das ist wesentlich flexibler.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
STM Apprentice schrieb:
> Alles in allem, sehr klasse gemacht!

Danke!

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Mw E. schrieb:
> Um welchen Faktor ist die Emulation denn schneller als das Original wenn
> diese nicht ausgebremst wird?

Ich habe gerade mal ein paar Tests gemacht, indem ich eine Turbo-Taste 
eingebaut habe, welche die Bremse löst. Es ist ungefähr Faktor 2 bis 3, 
je nachdem, was gerade so läuft.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Bewertung
0 lesenswert
nicht lesenswert
Danke fürs nachsehen.
Ist immer interessant zu wissen wieviel Power so eine Emulation braucht.

von Markus (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Gerade auf Hackaday: Spectrum Next

https://hackaday.com/2020/02/27/the-zx-spectrum-next-arrives/#more-401078

Vielleicht sollte man dort mal einen Link auf dieses Projekt hier 
posten, das gibt mit Sicherheit viele Unterstützer.

von Jürgen M. (mheimer)


Bewertung
0 lesenswert
nicht lesenswert
Super Sache, finde ich GRATULATION :-)

Ich persönlich hatte in den 80er Jahren einen ZX Spectrum+, also keine 
Gummitastatur und auch einen ZX Spectrum 128k mit 3-Kanal Soundchip und 
eben 128k RAM (Bankswitching lässt grüssen ;-) ).
Ist denn eine Erweiterung auf 128k angedacht, weil die Spiele machten 
mit dieser Sounduntermalung echt Spass.
Zu DDR-Zeiten hatte ich auch eine Floppyerweiterung laufen, war mit 
irgendeinem WD Chip.

von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> Gummitastatur und auch einen ZX Spectrum 128k mit 3-Kanal Soundchip und
> eben 128k RAM (Bankswitching lässt grüssen ;-) ).

Wie bist du eigentlich darauf gekommen? Ich hatte den Eindruck das es 
bei uns nur Spektrum mit 16k und 48k gab und dann erfolgte praktisch bei 
jedem nahtlos der Uebergang auf Atari ST, Amiga oder vielleicht schon 
PC. Die anderen Spektri gab es doch IMHO nur in England oder?

Olaf

von Kurt P. (kurtcontroller)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank.

Ich habe mit einem ODROID-XU4 und QT5 Vers.5.9.5 das Programm erstellt.

Drei Änderungen musste ich machen.
TRUE und FALSE in Kleinschrift ändern, also false und true.

Hier wurde strnicmp in strncmp geändert.

*----------------------------------------------------------------------- 
-------------------------------------------------
 * z80_set_fname_load () - set filename for LOAD Tape
 *----------------------------------------------------------------------- 
-------------------------------------------------
 */
void
z80_set_fname_load (const char * fname)
{
    if (strlen (fname) > 4)
    {
        z80_close_fname_load ();

        if (! strncmp (fname + strlen (fname) - 4, ".tap", 4))
        {
            tape_load_format = TAPE_FORMAT_TAP;
            strncpy (fname_load_buf, fname, 255);
            fname_load_valid = 1;
        }
        else if (! strncmp (fname + strlen (fname) - 4, ".tzx", 4))
        {
            tape_load_format = TAPE_FORMAT_TZX;
            strncpy (fname_load_buf, fname, 255);
            fname_load_valid = 1;
        }
        else if (! strncmp (fname + strlen (fname) - 4, ".z80", 4))
        {
            tape_load_format = TAPE_FORMAT_Z80;
            strncpy (fname_load_buf, fname, 255);
            fname_load_snapshot_valid = 1;
        }
    }
}

Habe noch kein Programm getestet.

Super.

Gruß
Kurt

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
2 lesenswert
nicht lesenswert
Kurt P. schrieb:

> Ich habe mit einem ODROID-XU4 und QT5 Vers.5.9.5 das Programm erstellt.

Prima!

> Drei Änderungen musste ich machen.
> TRUE und FALSE in Kleinschrift ändern, also false und true.

Interessant, dass da QT unter Windows und QT unter Linux tatsächlich 
verschieden sind.

Ich benutze TRUE und FALSE in Großbuchstaben ganz bewusst, wo C zum 
Tragen kommt, da das z80.cpp unter QT und das z80.c für den STM32 
identisch sind. Hier übersetzt einmal ein C- und einmal ein C++-Compiler 
den identischen Source. Das QT unter Windows kannte aber bereits TRUE 
und FALSE, deshalb hatte ich für QT eine extra Definition unterlassen, 
wie ich sie für die STM32-Variante eingebaut hatte. Das lief auch glatt.

> Hier wurde strnicmp in strncmp geändert.

strnicmp() ist die Groß-/Kleinbuchstaben-invariante Schwester von 
strncmp(), denn ich will sowohl ".tap"- als auch ".TAP"-Dateien 
erkennen.

Aus alter Gewohnheit hatte ich strnicmp() für die Windows-Version von QT 
gewählt, weil viele C-Compiler unter Windows für lange Zeit die korrekt 
lautende POSIX-Lösung strncasecmp() überhaupt nicht kannten. Jetzt habe 
ich das aber nochmals für QT unter Windows getestet: Hier klappt das mit 
dem strncasecmp() auch.

Lange Rede, kurzer Sinn... Die saubere Lösung ist:

Nimm bitte wieder die Original-Version von z80.cpp. Du findest fast ganz 
oben unter den include-Anweisungen folgende 3 Zeilen:
#define strnicmp            strncasecmp
#define TRUE                1
#define FALSE               0

Die Zeile
#define strnicmp            strncasecmp
löschst Du.

Die beiden Zeilen
#define TRUE                1
#define FALSE               0

verschiebst Du unter das #endif, welches ein paar Zeilen tiefer folgt. 
Dann gilt es nicht nur für die STM32-Variante, sondern für alle.

Anschließend ersetzt Du die drei verbliebenen Vorkommen von strnicmp 
durch strncasecmp.

Dann sollte sich das z80.cpp wieder übersetzen lassen und dem Programm 
ist es dann auch wieder egal, ob die Dateien mit den Extensions ".tap", 
".tzx", ".z80" in Groß- oder Kleinbuchstaben auf der Platte liegen.

> Habe noch kein Programm getestet.

Meldet sich denn schon das Sinclair-ROM mit seiner typischen 
Copyright-Meldung von 1992?

Ich bin gespannt auf Deine Rückmeldung.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Jürgen M. schrieb:
> Ich persönlich hatte in den 80er Jahren einen ZX Spectrum+, also keine
> Gummitastatur und auch einen ZX Spectrum 128k mit 3-Kanal Soundchip und
> eben 128k RAM (Bankswitching lässt grüssen ;-) ).

Wow. Ich hatte von 1982-1986 nur den Spectrum 48K, wo ich nächtelang 
HEX-Listings aus ZX-Spectrum-Zeitschriften abgetippt habe, um wieder 
irgendein Spiel auszuprobieren, was sich dann nach vielen Stunden 
mühseliger Tipperei und anschließender Fehlersuche doch einfach als 
Schrott erwiesen hat. Ich glaube, das kennt wohl jeder Spectrum-User von 
damals ;-)

Dann folgte ein Atari Mega ST 4 mit 20MB-Festplatte...

Der ZX-Plus bzw. 128k sind natürlich schon komfortabler als ein 48K. 
Aber ich hatte da niemals ein Bedürfnis, auf einen ZX+ oder gar 128K zu 
wechseln. In der Uni, wo ich damals war, machten sich die Atari ST 
breit. Und die waren zu damaliger Zeit einfach klasse.

> Ist denn eine Erweiterung auf 128k angedacht, weil die Spiele machten
> mit dieser Sounduntermalung echt Spass.

Das hängt wohl davon ab, wieviele Leute sich dafür interessieren. Ich 
selber kenne die 128k-spezifischen Spiele gar nicht. Müsste ich mir mal 
anschauen.

> Zu DDR-Zeiten hatte ich auch eine Floppyerweiterung laufen, war mit
> irgendeinem WD Chip.

Die einzige Erweiterung, die ich hatte, war eine selbstgeätzte Platine 
zum Einstecken in den ZX-Slot hinten. Auf der Platine waren ein Taster, 
der an NMI hing, ein EPROM und ein wenig 74er Steuerlogik, welches das 
zusätzliche EPROM in den Adressbereich des Original-ROMs einblendete und 
letzteres deaktivierte.

In dem EPROM steckte nämlich eine kleine selbstgeschriebene NMI-Routine, 
welche bei Betätigen des Tasters die CPU-Register in die letzte - also 
192te - Bildschirmzeile ganz unten rechts kopierte und anschließend den 
kompletten RAM-Bereich auf den Cassetterecorder überspielte.

So konnte ich dann, wenn ich ein Spiel unterbrechen wollte, einfach den 
NMI-Taster drücken, den Spielstand abspeichern und am nächsten Tag das 
Spiel durch Laden von Cassette dort weiterspielen, wo ich es 
unterbrochen hatte. Lediglich ein paar Pixel ganz unten rechts waren 
kaputt. Aber das machte nichts, meistens haben die Spiele das dann 
selber nach ein paar Sekunden wieder "repariert".

Das geht mit STECCY natürlich auch: Da heißt der Button "Snapshot". Er 
kommt ganz ohne NMI aus und zerstört auch keine Pixel in der letzten 
Bildschirmzeile ;-)

P.S.
Warum die letzte Bildschirmzeile? Das war die sicherste Methode, 
möglichst non-invasiv Zusatzinformationen im RAM abzulegen. Schon das 
Sichern aller CPU-Register (inkl. Shadow-Register) auf dem oft klein 
bemessenen Stack konnte unter verschiedensten Bedingungen im Spiel zu 
Fehlern (Stackoverflow) führen.

: Bearbeitet durch Moderator
von Olaf (Gast)


Bewertung
1 lesenswert
nicht lesenswert
> irgendein Spiel auszuprobieren, was sich dann nach vielen Stunden
> mühseliger Tipperei und anschließender Fehlersuche doch einfach als
> Schrott erwiesen hat. Ich glaube, das kennt wohl jeder Spectrum-User von
> damals ;-)

Ich kenne noch die verschaerfte Version: Nach vielen Stunden Hexlisting 
eingeben schaltet Mutti ihren Staubsauger ein und Sir Clive hat wohl 
niemals ueber Surge und Burst nachgedacht. :-D

Olaf

von STM Apprentice (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Frank M. schrieb:
> Wow. Ich hatte von 1982-1986 nur den Spectrum 48K, wo ich nächtelang
> HEX-Listings aus ZX-Spectrum-Zeitschriften abgetippt habe, um wieder
> irgendein Spiel auszuprobieren, was sich dann nach vielen Stunden
> mühseliger Tipperei und anschließender Fehlersuche doch einfach als
> Schrott erwiesen hat. Ich glaube, das kennt wohl jeder Spectrum-User von
> damals ;-)

(ich steige mal auf das bisschen Off-Topic ein ...)

Da hatten es die Apple User schon etwas komfortabler, die
Audio-Kasetten-Zeit konnte man da schon hinter sich lassen,
Spiele gabe es auf Diskette (5.25 Zoll) und so langsam waren
Disk-Laufwerke leistbar, auch weil damals schon in Fernost
jede Menge Billig-Kopien erhältlich waren. Und zum "Sichern"
von Spielen gab es zum einen kopiergeschützte Disketten
und auf der anderen Seite Kopierschutz-Kopierprogramme und
die sogenannte Wildcard mit der man komplette Speicherabzüge
von geschützten Spielen machen konnte.

Ja auf der Basis könnte man sich mit wenig(er) Mühe einen
netten Apple II(e) Emulator schreiben.

Aber nein, ich werde es mir trotz aller Schönheit dieser
Kreation nicht antun, so verlockend es für einen Apple User
auch sein mag.

von Jürgen M. (mheimer)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Naja, der Spectrum+ war auch nur ein 48k mit mechanischer Tastatur 
(Folientastatur). Den 128k habe ich teilweise defekt (hatte irgendeinen 
kapazitiven Fehler mit der Tastatur) bekommen, wobei wir hier in der DDR 
auch für den normalen 48k Speichererweiterungskarten gebaut haben, wo 
glaub 16k RAM-Blöcke, wie beim echten 128k, geswitched wurden.
Leider habe ich den 128k bei meinem letzten Umzug irgendwo verkramt und 
muss den mal suchen.
Also ich würde mich auf jeden Fall sowohl für die Speichererweiterung, 
als auch den AY-Soundchip interessieren, der Sound war echt um Längen 
geiler anzuhören, als das 1-Bit-Gequäke.
Ich hänge mal n paar Schematics vom 128k dran, falls interessiert.

: Bearbeitet durch User
von Kurt P. (kurtcontroller)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

ja funktioniert.
Danke für die Info.

Gruß
Kurt

: Bearbeitet durch User
von Olaf (Gast)


Bewertung
0 lesenswert
nicht lesenswert
> kapazitiven Fehler mit der Tastatur) bekommen, wobei wir hier in der DDR
> auch für den normalen 48k Speichererweiterungskarten gebaut haben, wo
> glaub 16k RAM-Blöcke, wie beim echten 128k, geswitched wurden.

Die kleinen Speccis hatten 16k. Wenn du den erweitert hast dann hatte 
der praktisch automatisch 80k weil man nur 4164 kaufen konnte, waehrend 
die originalen 48k da 4132H oder 4132L drin hatten. Ich konnte also auch 
bei meinem die oberen 32k umschalten. Allerdings war das weitestgehend 
nutzlos weil das ja von niemanden unterstuetzt wurde. Ausserdem wisst 
ihr doch hoffentlich alle noch wie lange das gedauert hat bis man 48k 
von der Kassette in den Speicher geladen hat. :)

Wofuer wurde denn der Speicher beim originalen 128er genutzt? Spiele?

Olaf

von Jürgen M. (mheimer)


Bewertung
0 lesenswert
nicht lesenswert
Olaf schrieb:
> Wofuer wurde denn der Speicher beim originalen 128er genutzt? Spiele?

Na klar, so wie zu PC-Zeiten auch, nur hier halt mit Dateien, Grafik, 
Grafik, Grafik ^^.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hi Kurt,

Kurt P. schrieb:
> ja funktioniert.

Danke für die Rückmeldung und den Screenshot. Mir ist aufgefallen, dass 
in der Linux-Version die Button-Texte rechts nicht ganz reinpassen. Da 
müsste man wohl die Buttons etwas vergrößern...

von Karsten M. (lsmod)


Bewertung
0 lesenswert
nicht lesenswert

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Karsten M. schrieb:
> Hier gibt es ein Projekt das mit einer Blue-Pill arbeitet:
> https://github.com/sdima1357/specci48/

Das Projekt ist wohl noch im "proof of concept" Modus, wie der Autor 
selber schreibt.

von Karsten M. (lsmod)


Bewertung
0 lesenswert
nicht lesenswert
Frank M. schrieb:
> Karsten M. schrieb:
>> Hier gibt es ein Projekt das mit einer Blue-Pill arbeitet:
>> https://github.com/sdima1357/specci48/
>
> Das Projekt ist wohl noch im "proof of concept" Modus, wie der Autor
> selber schreibt.

Keine Frage das Dein Projekt wesentlich ausgereifter ist.
Danke das Du dieses hier mit uns teilst!

Wenn man allerdings nur ein bisschen Spaß haben möchte, sind die 
Investitionskosten für das "proof of concept" jedoch deutlich geringer.
Es ist ja nicht jeder ein ausgewachsener "Retro-Fan". ;-)

Mich würde hier eher ein Apple ][ in dieser Form eher reizen. :-)
Diese Variante gibt es ebenfalls:
https://www.applefritter.com/content/stm32-arm-cortex-m4-apple-1-replica
Leider ein Apple 1

Das sieht schon besser aus:
https://hackaday.com/2017/02/21/a-full-speed-portable-apple-e/
https://hackaday.io/project/19925-aiie-an-embedded-apple-e-emulator

: Bearbeitet durch User
von Frank M. (ukw) (Moderator) Benutzerseite


Angehängte Dateien:

Bewertung
3 lesenswert
nicht lesenswert
Die Version 1.3.0 ist online. Neben einigen kosmetischen Änderungen gibt 
es auch eine Neuerung:

- Unterstützung von USB-Tastaturen

Man kann also nun zwischen PS/2- und USB-Tastatur wählen oder sogar 
beide anschließen, um sie gleichzeitig zu verwenden. Das kann bei 
Multiplayer-Spielen ganz sinnvoll sein, wenn man sich nicht um die 
Tastatur streiten will ;-)

Nachzulesen im Artikel: STECCY: USB-Tastatur

Der STM32-Quellcode steckt nun im SVN von mikrocontroller.net, siehe 
dazu auch: STECCY: Download

P.S.
Der Einbau von USB als HID-HOST hat mich das ganze Wochenende zur 
Verzweiflung gebracht: Es lief einfach nicht: die Tastatur wurde nicht 
erkannt. Erst heute nacht kam ich auf die zündende Idee: Der am 
USB-DP-Pin hängende 1,5K-Pullup auf dem BlackBoard ist zwar im Betrieb 
als USB-Device ganz sinnvoll, im Betrieb als HID-Host aber 
kontraproduktiv. Eine Tastatur oder Maus hat nämlich auch einen Pullup. 
Zusammen liegt dann der tatsächliche Widerstandswert außerhalb der 
Spezifikation.

Da hilft dann nur Auslöten des externen Pullups R21, siehe Anhang. Das 
ist auch nicht schlimm, da er bei der STM32F4XX-Familie überhaupt nicht 
notwendig ist - weder als USB-Device noch als USB-Host. Bei einem 
ST32F103 sieht das wieder ganz anders aus.

Viel Spaß :-)

: Bearbeitet durch Moderator
von Mw E. (Firma: fritzler-avr.de) (fritzler)


Bewertung
0 lesenswert
nicht lesenswert
Warum auch immer der Pullup da ÜBERHAUPT wohnt.
Die STM32F4 haben ja einen Internen.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Mw E. schrieb:
> Warum auch immer der Pullup da ÜBERHAUPT wohnt.
> Die STM32F4 haben ja einen Internen.

Eben, nämlich speziell für USB, nicht nur den relativ hohen GPIO-Pullup. 
Ich nehme mal an, dies ist ein Angstwiderstand. Man wollte wohl nicht 
den Fehler wie bei den BluePills machen. Hier werkelt ein STM32F103, dem 
der USB-spezifische interne Pullup fehlt.

von W.S. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Frank M. schrieb:
> Hier werkelt ein STM32F103, dem
> der USB-spezifische interne Pullup fehlt.

Eigentlich sollte man nicht "fehlen" dazu sagen. Natürlich kann man 
einen fest nach Vcc gehenden 1k5 vorsehen (extern oder intern), aber das 
ist manchmal unerwünscht, damit man ggf. vor dem Enumerieren noch andere 
Sachen im µC erledigen kann. Dazu haben ältere Chips extra Pinfunktionen 
aus dem USB-Core heraus (low-aktiv! braucht also noch nen Transistor) - 
aber das belegt dann ja ein Portpin und sowas ist gerade bei kleineren 
Gehäusen nicht gern gesehen. Da ist es allemal am besten, keinen 
eingebauten 1k5 im Chip zu haben, so daß der Schaltungsentwickler es 
sich aussuchen kann, ob er einen geschalteten 1k5 oder einen fest an Vcc 
haben will.

W.S.

von Nobs (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Tolles Projekt! Was ich bisher lese und sehe gefällt mir sehr gut. Die 
gelante Unterstützung für die Original-Tastatur finde ich klasse, denn 
an den Spectrum-Emulatoren für PC nervt das veränderte Tastaturlayout 
einer modernen Tastatur doch gewaltig. Gäbe es alternative 
Anschlussmöglichkeiten für Bildschirme über gängige Anschlüsse(AV, VGA, 
DVI, irgendwas)? Die kleinen Displays sind zwar nett und würden in einem 
geeigneten Gehäuse einen schönen, portablen Spectrum ergeben (ähnlich 
z.B. dem Klon Spectrum Omni HQ 128), aber das Original hing ja auch am 
TV...

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Nobs schrieb:
> Tolles Projekt! Was ich bisher lese und sehe gefällt mir sehr gut.
> Die gelante Unterstützung für die Original-Tastatur finde ich klasse,
> denn an den Spectrum-Emulatoren für PC nervt das veränderte
> Tastaturlayout einer modernen Tastatur doch gewaltig.

Ich habe bei STECCY möglichst versucht, auch alle anderen auf der 
Tastatur verfügbaren Tasten auf ZX-Spectrum-Tasten zu mappen, z.B. 
funktionieren auch die auf der PC-Tastatur befindlichen Tasten wie

           , ; . : - _ # ' + *

ganz transparent (die hochgestellten mit der rechtenShifttaste), so dass 
ich hier oft sogar eine Verbesserung sehe. Die Unterschiede fallen hier 
jedenfalls nicht so stark ins Gewicht.

> Gäbe es
> alternative Anschlussmöglichkeiten für Bildschirme über gängige
> Anschlüsse(AV, VGA, DVI, irgendwas)?

Die Frage wurde hier schon einmal gestellt. Allerdings geht für so etwas 
eine ganze Menge CPU-Power drauf. Mittlerweile habe ich STECCY aber so 
weit optimiert, dass im Turbo-Modus der Geschwindigkeitsfaktor gegenüber 
dem Original auf einen Wert von satten 5 gewachsen ist. Da ist also für 
so etwas wie VGA mittlerweile mehr Luft nach oben. Mal sehen, wann ich 
das anpacke.

> Die kleinen Displays sind zwar nett
> und würden in einem geeigneten Gehäuse einen schönen, portablen Spectrum
> ergeben (ähnlich z.B. dem Klon Spectrum Omni HQ 128),

So ein 7" Display hat auch schon eine stattliche Größe ;-)

> aber das Original hing ja auch am TV...

Mal schauen, ausschließen will ich das nicht.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Bewertung
0 lesenswert
nicht lesenswert
Der User "das rote mopped" hatte einfach einen R2R DAC an die LTDC 
Ausgänge des STM32 gehangen und schon wars VGA.

Nur finde ich den Thread leider grade nicht.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Version 1.3.2 ist online.

Verbesserungen:

- Optimierungen im 50Hz Display-Update
- Optimierungen im USB-Tastatur-Handling

Damit ist STECCY auf dem STM32 im Turbo-Modus nun bis zu 5 mal schneller 
als das Original.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Mw E. schrieb:
> Der User "das rote mopped" hatte einfach einen R2R DAC an die LTDC
> Ausgänge des STM32 gehangen und schon wars VGA.

Das klingt gut! Ich werde da mal recherchieren. Ich muss mir selbst 
erstmal etwas KnowHow über analoge Monitorsignale aneignen. Da fehlt mir 
einfach Wissen.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Ich habe mal ein wenig rumgeschaut wegen VGA über R2R an LTDC 
rumgeschaut und dabei u.a. auch die Homepage von "das rote mopped" 
gefunden.

Wenn ich das richtig sehe, braucht man dafür 2 bis 8 MB - je nach 
Auflösung - an externem SDRAM. Da müsste man wohl auf ein anderes Board 
ausweichen, wie z.B. das STM32F29-Disco oder ähnliches.

von Route_66 H. (route_66)


Bewertung
0 lesenswert
nicht lesenswert
Frank M. schrieb:
> Verbesserungen:
>
> -

Original Tape-Interface???

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Bewertung
0 lesenswert
nicht lesenswert
Jop, auch bei gemütlichen 640x480 kommt man auf 900kbyte bei RGB888.
Auch RGB565 kommt auf 600k.
Mit Doublebuffering sind das dann eben ein 2MB RAM IC.

Aber wieviel Farben kann der ZX eigentlich?
Die Bilder im Eingangspost sehen nach 256 Farben aus.
Dann empfielt sich der Farbtabellenmodus des LTDC für 150k RAM Verbrauch 
für 1 Bild, das passt dann schon in interne SRAM.
Wobei jetz die 407er alle nur 192kb haben, wird auch eng ;)

von Der müde Joe (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Hmmm... HDMI fände ich nützlicher. Jeder Fernseher hat HDMI, aber ich 
habe seit Jahren keinen VGA mehr gesehen.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Bewertung
0 lesenswert
nicht lesenswert
Einen µC mit HDMI findet man jetz aber nich so oft.
Da brauchts dann was dickeres wie ATSAM5 oder imx6.
Ist dann aber eeeetwas overkill für ein kleines Heimprojekt eines ZX 
Emulators.

Es gibt auch externe Konverter ICs, aber die sind jetzt auch nix zur 
Heimanwendung.

von Route_66 H. (route_66)


Bewertung
0 lesenswert
nicht lesenswert
Mw E. schrieb:
> Aber wieviel Farben kann der ZX eigentlich?
> Die Bilder im Eingangspost sehen nach 256 Farben aus.

Irrtum. Der ZX kann nur 8 Farben (einschließlich Schwarz und Weiß) in 
zwei Helligkeitsstufen.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Route_66 H. schrieb:
> Irrtum. Der ZX kann nur 8 Farben (einschließlich Schwarz und Weiß) in
> zwei Helligkeitsstufen

So ist es. Dabei kann jede 8x8 Zelle nur jeweils eine Vorder- und 
Hintergrundfarbe haben - und optional noch blinken. So kommt der 
ZX-Spectrum bei einer Auflösung von 256 x 192 mit 6144 Bytes als 
Screen-RAM aus. Bit gesetzt: Schriftfarbe, Bit nicht gesetzt: 
Hintergrundfarbe.

Von den 8x8 Zellen gibt es dann 768 Stück, macht 768 zusätzliche Bytes. 
In jedem dieser Attribut Bytes sind belegt:

3 Bits für Vordergrundfarbe
3 Bits für Hintergrundfarbe
1 Bit für Hell (Bold)
1 Bit für Blinkend (Flash)

Die 6144 Bytes für die Pixeldaten sind leider auch nicht linear 
angeordnet. Zunächst kommen die Pixel für die nullte Reihe, dann für die 
8te, dann 16te, dann 24te usw bis 56te. Dann geht es weiter mit Reihe 
1,9,17,25...57. Dann 2,10,18,26...58. Das wiederholt sich dann bis zur 
63ten Zeile.

Das obige entspricht dann einem Drittel des Screens. Auf gleiche Weise 
folgt dann das zweite und das dritte Drittel. Beim Spectrum hat der 
ULA-Chip die Aufgabe gehabt, aus dem obigen RAM von 6144 + 768 Bytes das 
TV-Signal zu zaubern. Dabei hat er den Z80 bei konkurrierenden Zugriffen 
einfach ausgebremst.

Dieses macht in der QT-Fassung ein zweiter Task übrigens genauso, um an 
die Pixeldaten zu kommen und diese auf den PC-Monitor zu pinseln.. Er 
lässt dann den Z80-Emulator-Task einfach warten.

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Route_66 H. schrieb:
> Original Tape-Interface???

Kannst Du gern einbauen ;-)

Ich habe jedenfalls keine Lust, mehrere Minuten zu warten, bis ein Spiel 
geladen ist. STECCY liest und speichert die TAP- und TZX-Dateien in 
einem Sekundenbruchteil.

von Route_66 H. (route_66)


Bewertung
0 lesenswert
nicht lesenswert
Frank M. schrieb:
> STECCY liest und speichert die TAP- und TZX-Dateien in
> einem Sekundenbruchteil.

Dazu müssen sie erst mal vom Band eingelesen und als TAP oder TZX 
abgespeichert werden!

von W.S. (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Frank M. schrieb:
> Ich habe jedenfalls keine Lust, mehrere Minuten zu warten,

nanana, bei manchen Spielen war das Intro der netteste Teil des ganzen 
Spiels gewesen.

Aber der entscheidende Punkt ist: wer hat noch einen geeigneten 
Kassettenrecorder und die Kassetten dafür?

W.S.

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
Ich möchte ja kein Spielverderber sein, aber mit dem RetroPie gibts da 
viel mehr:
https://retropie.org.uk/

von sid (Gast)


Bewertung
0 lesenswert
nicht lesenswert
sehr geil!

ich hab erst kürzlich überlegt wo ich n alten Fernseher herbekomme um zu 
gucken ob's mein ZX noch tut.
(ist glaub ich aber n 81.. hab den dummerweise in ne Cherry Tastade 
gequetscht weil mir der Folienblödsinn auf die Testikel schlug 
seinerzeit
mit der ganzen Abtipperage aus den Büchern damals)

Das ist doch mal was für alte Herren die nen faulen Sonntag mit 
Zeitreisen verbringen möchten..

Dankeschön :D

'sid

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Route_66 H. schrieb:
> Dazu müssen sie erst mal vom Band eingelesen und als TAP oder TZX
> abgespeichert werden!

Solltest Du tatsächlich noch alte Cassetten haben, die Du nicht im Netz 
als TZX- bzw. TAP-Dateien findest: Es gibt PC-Programme, die das direkt 
vom Cassettenrecorder einlesen und konvertieren können.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Ich möchte ja kein Spielverderber sein, aber mit dem RetroPie
> gibts da viel mehr:
> https://retropie.org.uk/

Es hat ja auch niemand behauptet, dass unter Linux nichts besseres gäbe. 
Der ZX-Emulator Fuse ist da wohl unübertroffen.

Hier ist das Thema jedoch ZX-Emulator auf einem STM32. Da läuft RetroPie 
nun mal nicht drauf ;-)

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Der müde Joe schrieb:
> Hmmm... HDMI fände ich nützlicher. Jeder Fernseher hat HDMI, aber
> ich habe seit Jahren keinen VGA mehr gesehen.

HDMI ist eine ganz andere Hausnummer. Da kannst Du auch einen PI mit 
Fuse als Emulator nehmen.

Klar, ich könnte STECCY auch auf den PI portieren. Aber das halte ich 
für Verschwendung. STECCY läuft ja jetzt schon unter QT und damit auf so 
ziemlich jedem Linux mit einer GUI.

Höchstens unter dem Gesichtpunkt der Anwendung von I2C wäre das noch 
interessant- um zum Beispiel eine ZX-Tastatur anzuschließen.

: Bearbeitet durch Moderator
von Nobs (Gast)


Bewertung
3 lesenswert
nicht lesenswert
Ich denke, HDMI wäre ziemlich übertrieben. Es ist zwar aktuell der 
gängigste Anschluss, aber die Hardware-Voraussetzungen dafür sind doch 
relativ heftig und werden von dem, was ein Spectrum darstellen konnte, 
nie und nimmer benötigt. Ich sehe die Stärke von Steccy gerade darin, 
daß man ein kleines, günstiges Board einsetzen kann. Das macht die 
Einstiegshürde niedrig. Teurere Lösungen wie Retropie (primär zum zocken 
gedacht) oder nachgebaute Spectrum-Hardware (Harlequin, Omni, Nuvo, 
Pentagon)gibts reichlich. Alle haben ihre Vor- und Nachteile und alle 
gehen durchaus ins Geld (z.B. Harlequin-Bausatz ca.90€, Nachbau-Gehäuse 
komplett ca.80€, SD-Interface ca.40€). Genau deshalb sehe ich das 
Display, was der teuerste Teil am Steccy ist, kritisch und würde mir da 
eine Alternative wünschen.
Unterstützung der Original-Tastatur wäre nett, ist aber für mich nicht 
zwingend nötig. Notfalls wird eine billige USB-Tastatur beklebt.
Kassetten und Recorder hätte ich eh nicht mehr. Ich sehe da den 
deutlichen Fortschritt durch die SD-Karten-Speicherung. Ob man 
vielleicht für die Puristen einen "klassischen" Lademodus implementieren 
könnte, der mit mehr oder weniger Originalgeschwindigkeit das Tape-image 
von der SD-Karte läd, damit man trotzdem in den Genuss spezieller 
Ladebildschirme kommen könnte? Mir persönlich wäre das eher egal.

von AllesKönner (Gast)


Bewertung
4 lesenswert
nicht lesenswert
sid schrieb:
> Das ist doch mal was für alte Herren die nen faulen Sonntag mit
> Zeitreisen verbringen möchten..
>
> Dankeschön :D

Dein Steccy ist ein wares "Leuchtturmprojekt" in dem Meer von 
Belangloses, das sich hier mitlerweile ausbreitet.


Dickes Dankeschön für dieses tolle Projekt und die Qualität deiner 
Arbeit!

Völker/Bastelvolk, hört die Signale und lernt zu siegen/den Kampf gegen 
Mittelmass!

von W.S. (Gast)


Bewertung
-1 lesenswert
nicht lesenswert
Nobs schrieb:
> Genau deshalb sehe ich das
> Display, was der teuerste Teil am Steccy ist, kritisch und würde mir da
> eine Alternative wünschen.

Tja, das ist heutzutage ein kaum lösbares Problem. Für den Spectrum mit 
seinen 256×192 Pixeln würde ein 320x240 TFT ja völlig ausreichen - aber 
wo kriegt man das in ausreichender Größe und wenig Geld?  Ich hatte 
sowas vor etwa 20 Jahren in meinen Geräten verbaut, aber der Zug ist 
weg, heutzutage sind die Auflösungen weitaus größer - und damit steigt 
der Aufwand.

Ich hab hier noch ein paar Boards mit LPC17nochwas, LPC4088 und so 
herumfliegen, alle mit eingebautem TFT-Controller, ausreichend SDRAM und 
für TFT 800x480 geeignet. Solche TFT's gab's vor Jahren beim Chinesen 
für etwa 18..23€.

Das Steccy-Projekt ist aber nicht so organisiert, daß man mal eben die 
Plattform von STM32 nach LPC und den Screen vom originalen Display nach 
direktem TTL-RGB565 wechseln könnte, was ja völlig ausreichen würde.

Hab deshalb auch noch keinen diesbezüglichen Versuch gemacht.

W.S.

von Johannes S. (jojos)


Bewertung
1 lesenswert
nicht lesenswert
W.S. schrieb:
> Hab deshalb auch noch keinen diesbezüglichen Versuch gemacht.

Das wird hier auch kaum jemanden interessieren. Ein LPC4088 kostet netto 
schon mehr als das das komplette Board (incl. Versand) das Frank 
verwendet. Die LPC sind den Chinesen scheinbar komplett unbekannt. Bis 
auf ein paar Boards von Waveshare, aber die sind preislich für die 
Meisten auch uninteressant.
Ein 320 x 240 TFT nochmal einen 10er dazu und das Ganze wird ein 
kompakter ZX-Gameboy. Das hat Frank ja auch schon bestellt, und die SW 
Anpassung hält sich sehr in Grenzen.

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Johannes S. schrieb:
> Das hat Frank ja auch schon bestellt, und die SW Anpassung hält sich
> sehr in Grenzen.

Dieses Dislay habe ich bestellt:

https://de.aliexpress.com/item/32991977705.html

Kostet unter 12 EUR. Sobald es da ist, passe ich die SW an das Teil an.

Vorteil:

- Es kann direkt auf das STM32F407VET6-Board gesteckt werden.
- Ein Adapterkabel oder eine Adapterplatine ist nicht notwendig.
- Unschlagbar billig.

Nachteil:

- Es hat halt nur 3,2 Zoll.

Man kann halt nicht alles haben. Billig und Groß gleichzeitig geht halt 
nicht. Kompromiss wäre noch das 5-Zoll-Display mit SSD1963 für knapp 30 
EUR für diejenigen, denen die 40 EUR für die 7-Zoll-Ausführung zu viel 
sind.

: Bearbeitet durch Moderator
von Johannes S. (jojos)


Bewertung
1 lesenswert
nicht lesenswert
genau dieses TFT habe ich auch. Das hat noch einen Touchscreen mit 
XPT2046 der per SPI angeschlossen ist, das könnte mit vorhandener 
Belegung kolidieren.
In der Software ist der Init anders, zum Pixel setzen wird auch ein 'set 
address window' command gesendet und dann die Pixel auf der data Adresse 
rausgefeuert. Nur mit dem seitlichen Menu wird es dann vermutlich eng 
mit 320 Pixeln Breite.

von 900ss D. (900ss)


Bewertung
0 lesenswert
nicht lesenswert
Johannes S. schrieb:
> genau dieses TFT habe ich auch

Ah, jetzt wissen wir genau, welches du meist ;)

von Johannes S. (jojos)


Bewertung
0 lesenswert
nicht lesenswert
ja wenn es nochmal wiederholt werden muss, bitte:

Frank M. schrieb:
> Dieses Dislay habe ich bestellt:
>
> https://de.aliexpress.com/item/32991977705.html

und es ist leider sehr blickwinkelabghängig.
Das 7zöllige hat mich aber auch neugierig gemacht, habe es für 30€ 
(+Versand) hier (letzte Woche geliefert, bestellt 22.02.) bekommen:
https://de.aliexpress.com/item/32541422103.html

: Bearbeitet durch User
von Hallo (Gast)


Bewertung
0 lesenswert
nicht lesenswert
Wo zieht man sich eigentlich ROMs für den ZX, ohne sich gleich einen 
Virus einzufangen oder dass die manipuliert sind ? Das scheint mir ein 
riesen Problem bei den Retro-ROMs anderer Systeme zu sein 
(südamerikanische Server ?).

von Route_66 H. (route_66)


Bewertung
0 lesenswert
nicht lesenswert
Hallo schrieb:
> Wo zieht man sich eigentlich ROMs für den ZX,

Aus einem der originalen ZX oder Nachbauten in meinem Keller...

von Route_66 H. (route_66)


Bewertung
0 lesenswert
nicht lesenswert
Hallo schrieb:
> Wo zieht man sich eigentlich ROMs für den ZX,

Aus einem der originalen ZX oder Nachbauten in meinem Keller...

Du kannst auch das Assemblerlisting aus dem Buch "Das ZX-Spectrum ROM" 
abtippen oder als PDF im Internet finden.

https://skoolkid.github.io/rom/

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Johannes S. schrieb:
> genau dieses TFT habe ich auch. Das hat noch einen Touchscreen mit
> XPT2046 der per SPI angeschlossen ist, das könnte mit vorhandener
> Belegung kolidieren.

Ich habe darauf geachtet, keine der Pins, die auf dem TFT-Stecker 
liegen, zu verwenden. Mein 7" Display hat nämlich auch Touch - auch wenn 
ich es derzeit nicht verwende.

> In der Software ist der Init anders, zum Pixel setzen wird auch ein 'set
> address window' command gesendet und dann die Pixel auf der data Adresse
> rausgefeuert.

Danke für die Tipps.

> Nur mit dem seitlichen Menu wird es dann vermutlich eng
> mit 320 Pixeln Breite.

Das Menü kann ich auch über den Spectrum-Screen einblenden. Es ist 
derzeit nur deswegen rechts, weil der Platz einfach da ist.

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Johannes S. schrieb:
> und es ist leider sehr blickwinkelabghängig.

Das spricht dann auch eher für die 7" Variante. Hier ist der Blickwinkel 
angenehm groß.

> Das 7zöllige hat mich aber
> auch neugierig gemacht, habe es für 30€ (+Versand) hier (letzte Woche
> geliefert, bestellt 22.02.) bekommen:
> https://de.aliexpress.com/item/32541422103.html

Na also, geht doch :-)

Beachte bitte: auf der Rückseite muss noch eine Drahtbrücke für die 
Hintergrundbeleuchtung gesetzt werden, um diese zu aktivieren. Ist aber 
beschriftet und nicht zu übersehen.

: Bearbeitet durch Moderator
von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
0 lesenswert
nicht lesenswert
Hallo schrieb:
> Wo zieht man sich eigentlich ROMs für den ZX, ohne sich gleich einen
> Virus einzufangen oder dass die manipuliert sind ?

Eine Quelle wird im Artikel genannt. Du kannst aber auch mehrere 
Varianten aus diversen Quellen ziehen und dann binär vergleichen.

: Bearbeitet durch Moderator
von Thomas H. (flaretom)


Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Hallo Frank M.,

Wie sieht es aus, wenn man Erweiterungen für dein tolles Projekt hat?
Ich habe die Tastaturmatrix ran gestrickt und TZX ein bißchen erweitert 
(Archive-Block). Nichts umwerfendes, aber vielleicht für manche 
interessant.
Kann man einen branch anlegen?

BG, Tom

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Hi Thomas,

Thomas H. schrieb:

> Wie sieht es aus, wenn man Erweiterungen für dein tolles Projekt hat?
> Ich habe die Tastaturmatrix ran gestrickt und TZX ein bißchen erweitert
> (Archive-Block). Nichts umwerfendes, aber vielleicht für manche
> interessant.

Das hört sich super an! Das heisst, es läuft bei Dir? Welches Display 
nutzt Du da? Das sieht mir eher nach dem 5"-Display aus, oder?

Ich sehe da zwei Möglichkeiten: Entweder Du schickst mir Deine 
Änderungen - vorzugsweise als diff - oder ich gebe Dir 
Schreibberechtigung aufs SVN und Du checkst Deine Änderungen direkt ein. 
Letzteres ist wohl dann sinnvoller, wenn Du auch zukünftig daran 
mitarbeiten möchtest. Sag einfach mal, was Du für sinnvoller hältst.

> Kann man einen branch anlegen?

Ein extra Branch ist nicht unbedingt notwendig, es arbeiten ja nicht 
Dutzende von Leuten daran. ;-)

Gruß,

Frank

von Thomas H. (flaretom)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

Ich würde vorschlagen, ich schicke dir meine Änderungen erstmal als 
diff, dann kannst du dir meine Änderungen ansehen und entscheiden.
Es gibt zxkeyboard/zxkeyboard.* wo die eigentliche Abfrage ist (ich 
benutze PA0-PA7 + PC0-PC5). Damit sind 8 zusätzliche Tasten möglich (ich 
benutze aber aktuell nur eine um in den Menue-Modus zu gelangen).
Im z80 Modus ist es einfach, da der Specci-code die Abfrage gesteuert. 
Im Menuemodus muss ich das selbst machen und dem ps2-adapter 
unterschieben.
Funktioniert, aber füllt sich manchmal etwas hakelig an. Da kann man am 
Timing noch schrauben.
Bei tape.c ist nur die Behandlung des 0x32 Blockes dazugekommen, da bei 
www.worldofspectrum.org (und anderen Archivseiten?) dieser vorkommt.

Das ist ein 7" Display 
(https://de.aliexpress.com/item/32845300432.html?spm=a2g0s.9042311.0.0.39d04c4dP7BLm9).

Ich weiß nicht wieviel Zeit ich haben werden, aber gelegentlich werde 
ich schon weiter daran basteln :)  z.B Touchscreen-support fürs Menue, 
Vorschaubilder bei TZX und TAP files.

BG, Tom

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Hi Tom,

Thomas H. schrieb:

> Ich würde vorschlagen, ich schicke dir meine Änderungen erstmal als
> diff, dann kannst du dir meine Änderungen ansehen und entscheiden.

Ich habe den Source gerade mal überflogen, wirklich gut gemacht und 
gefällt mir sehr gut. Auch der Coding-Style fügt sich perfekt ein, auch 
wenn ich eher auf unterschiedliche Groß-/Kleinschreibung von Dateien und 
Variablennamen verzichte. Von daher werde ich da Details noch nach 
Kleinbuchstaben konvertieren, um das Ganze noch einheitlicher zu 
gestalten - wenn es Dich nicht stört.

> Es
> gibt zxkeyboard/zxkeyboard.* wo die eigentliche Abfrage ist (ich benutze
> PA0-PA7 + PC0-PC5).

Ich hatte für die Tastaturmatrix eigentlich PC0-PC7 für die Reihen und 
PE0-PE4 für die Spalten vorgesehen. PAx wollte ich mir nämlich wegen des 
UARTs auf PA2/PA3 (der übrigens jetzt schon für Logging und INPUT#4 und 
PRINT#4 genutzt wird!) und wegen der Board-LEDs PA6/PA7 freihalten.

Spricht etwas dagegen, stattdessen PC0-PC7 und PE0-PE4 dafür zu nutzen? 
Wenn Du damit kein Problem hast, würde ich das so anpassen.

> Damit sind 8 zusätzliche Tasten möglich (ich benutze
> aber aktuell nur eine um in den Menue-Modus zu gelangen).

Achso, deshalb hast Du sechs Spalten und nicht nur fünf. Gute Idee!
Klar, das kann man auch um PE5 erweitern.

> Im z80 Modus ist es einfach, da der Specci-code die Abfrage gesteuert.

Jepp.

> Im Menuemodus muss ich das selbst machen und dem ps2-adapter
> unterschieben.

Ja, genauso habe ich es auch für USB gemacht. Da schiebe ich es ebenso 
dem PS2-Treiber unter. Das spart redundanten Code.

> Funktioniert, aber füllt sich manchmal etwas hakelig an. Da kann man am
> Timing noch schrauben.

Ist das nur im Menü-Modus hakelig? Vielleicht liegt es auch daran, dass 
die aktuelle SW bereits PA2, PA3, PA6, PA7 bereits verwendet?

Okay, wenn es nur das Timing ist, bekommt man das sicher noch 
glattgebügelt.

> Bei tape.c ist nur die Behandlung des 0x32 Blockes dazugekommen, da bei
> www.worldofspectrum.org (und anderen Archivseiten?) dieser vorkommt.

Ist mir bisher nicht aufgefallen. Aber ich habe auch noch icht alle 
Spiele dort durchprobiert ;-)

Baue ich gern ein.

> Das ist ein 7" Display
> 
(https://de.aliexpress.com/item/32845300432.html?spm=a2g0s.9042311.0.0.39d04c4dP7BLm9).

Ahja, das ist identisch mit meinem. Der Preis ist mit unter 31 EUR auch 
sehr attraktiv.

> Ich weiß nicht wieviel Zeit ich haben werden, aber gelegentlich werde
> ich schon weiter daran basteln :)  z.B Touchscreen-support fürs Menue,
> Vorschaubilder bei TZX und TAP files.

Das hört sich gut an. Erstmal vielen Dank! Wenn Du Dich da noch weiter 
reinhängen willst, kann ich Dir gern Schreibzugriff aufs SVN geben, kein 
Problem!

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Hi Tom,

ich habe da noch ein paar Fragen zu Deinem Code:

Vermutlich kann die nicht verwendete Funktion _emulate_ps2key() (mit 
führendem Unterstrich) weg, oder? Scheint eine Testfunktion zu sein.

Es spricht doch nichts dagegen, das ZX-Keyboard gleichzeitig mit den 
anderen Keyboards zu erlauben?

Wenn ja, würde ich die Zeile
        if (settings.keyboard == KEYBOARD_ZX)
zu
        if (settings.keyboard & KEYBOARD_ZX)
ändern.

Zu den Tape-Routinen:

Deine fprintf()-Calls habe ich nach debug_printf() geändert. Außerdem 
habe ich in der Funktion tzx_read_block_32() doch den Return-Code auf 1 
im Erfolgsfall geändert, damit man Fehler und Erfolg unterscheiden kann.

Stattdessen habe ich den Aufruf geändert:
                    case 0x32:                                                      // archive info
                    {
                        if (! tzx_read_block_32 (tape_load_fp))
                        {
                            fclose (tape_load_fp);
                            tape_load_fp = nullptr;
                            return 0;
                        }

                        rtc = 0;                                                    // force continuing of tape read
                        break;
                    }

Vielleicht kannst Du mir eine TZX-Datei nennen, womit ich das testen 
kann. Du hattest da auf dem Foto ein schickes Spiel ;-)

: Bearbeitet durch Moderator
von Thomas H. (flaretom)


Bewertung
0 lesenswert
nicht lesenswert
Hi Frank,

- Pass den Code so an, wie du es für richtig hältst. Ich ziehe mir dann 
die angepasste Version runter und arbeite damit weiter.
- Die Keyboardports habe ich so gelegt, dass alles möglichst 
nebeneinander auf einer Steckerreihe liegt (sorry, an die UART habe ich 
nicht gedacht ;))
Mir fehlte da auch eine Liste der verwendeten, bzw. für Erweiterungen 
reservierten Ports.
Die LEDs auf der Rückseite hatte ich schon bemerkt, da sie aber bei mir 
nicht zu sehen sind war es mir egal.
Aber OK - Deine Zuordnung ist eigentlich besser, ich kann die paar 
Leitungen auch umlöten.

- Ja, _emulate_ps2key() war eine alte/missglückte Version. Kann raus.
-
 if (settings.keyboard & KEYBOARD_ZX)
 ist besser.
- klar:
 debug_printf
   Wie wärs, wenn man die Felder unter einem Menüpunkt "Archive-Info" 
oder ähnlich anzeigen kann? (OK, Plan für später ;) )
- Das ist Tujad 
(https://www.worldofspectrum.org/infoseekid.cgi?id=0005448)

Der Schreibzugang wäre schon nett, aber ich würde trotzdem einen eigenen 
Branch aufmachen, damit du immer entscheiden kannst, was in den Master 
reinkommt - ist ja schließlich dein Projekt. Und wir können auch relativ 
unabhängig basteln.

Beste Grüße, Tom

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Hi Tom,

Thomas H. schrieb:

> - Pass den Code so an, wie du es für richtig hältst. Ich ziehe mir dann
> die angepasste Version runter und arbeite damit weiter.

Okay, ich lade nachher mal die aktuelle Version hoch. Die ist aber stark 
experimentell, weil ich schon mal mit dem ILI9143-Display angefangen 
habe, obwohl es noch nicht bei mir angekommen ist. Kann also sein, dass 
da noch die eine oder andere Macke drin ist.

Die ILI9341-Variante ist auch noch nicht fertig, ich habe erst heute 
nachmittag aus diversen Beiträgen herausgelesen, dass die Punkte 
hintereinander ohne neue Positionierung nur in Portrait-Orientierung 
geschrieben werden können. Das heisst, ich muss da noch die Logik 
ändern, um die Pixel untereinander und nicht nebeneinander 
rauszuschieben, damit ich auch gleich die 90°-Drehung zum 
Landscape-Modus erschlage. Es gibt zwar ein Ansteuer-Bit im ILI9341, um 
das Bild vom Controller zu drehen, jedoch bleibt die Schreibrichtung 
gleich. Und das passt nicht zum Landscape-Modus. Wenn ich es richtig 
verstanden habe, bleiben bei der Controller-Drehung dann nur noch 
240x240 übrig, ist also unbrauchbar.

> - Die Keyboardports habe ich so gelegt, dass alles möglichst
> nebeneinander auf einer Steckerreihe liegt (sorry, an die UART habe ich
> nicht gedacht ;))
> Mir fehlte da auch eine Liste der verwendeten, bzw. für Erweiterungen
> reservierten Ports.

Die Liste gibt es, schau mal in der main.c in den Header. Da hatte ich 
sogar schon die vorgesehenen Keyboard-Rows und -Columns eingetragen ;-)

> Die LEDs auf der Rückseite hatte ich schon bemerkt, da sie aber bei mir
> nicht zu sehen sind war es mir egal. Aber OK - Deine Zuordnung ist
> eigentlich besser, ich kann die paar Leitungen auch umlöten.

Prima, dann baue ich gleich noch die Ports um und lade das dann hoch. 
Sehr gut gefällt mir auch die Lösung mit den OpenDrain-Ausgängen, um die 
beim Original-Spectrum verwendeten Dioden zu sparen :)

> - Ja, _emulate_ps2key() war eine alte/missglückte Version. Kann raus.

Alles klar, ist raus.

> - klar:  debug_printf   Wie wärs, wenn man die Felder unter einem
> Menüpunkt "Archive-Info" oder ähnlich anzeigen kann? (OK, Plan für
> später ;) )

Ja, später :)

> - Das ist Tujad
> (https://www.worldofspectrum.org/infoseekid.cgi?id=0005448)

Danke, werde ich bei nächster Gelegenheit mal ausprobieren.

> Der Schreibzugang wäre schon nett, aber ich würde trotzdem einen eigenen
> Branch aufmachen, damit du immer entscheiden kannst, was in den Master
> reinkommt - ist ja schließlich dein Projekt. Und wir können auch relativ
> unabhängig basteln.

Okay, ich richte Dir den Schreibzugriff ein und melde mich bei Dir per 
Mail.

Dank und Gruß,

Frank

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Der Source-Code mit der Version 1.3.3 ist nun im SVN.

Neu:

- Unterstützung ZX-Keyboard-Matrix
- Erweiterung Tape-Routinen um Archiv-Block
- Diverse Änderungen/Optimierungen

Dank nochmal an Tom.

Ich werde die Änderungen gleich im Artikel dokumentieren. Eine neue 
HEX-Datei stelle ich aber erst später bereit, da die Version noch 
experimentell und zum Teil ungetestet ist.

Achja: Für diejenigen, die STECCY selbst kompilieren möchten und nicht 
EmBitz verwenden, dies noch zur Info:

Es muss zum Übersetzen die Compiler-Option -DSSD1963 hinzugefügt werden, 
damit der Source für Displays mit SSD1963 übersetzt wird. Alternative 
wäre die Option -DILI9341. Dies wird jedoch erst in einer späteren 
Version korrekt funktionieren.

Im EmBitz sind nun 4 Target-Varianten konfiguriert:

   ILI9341-Debug
   ILI9341-Release
   SSD1963-Debug
   SSD1963-Release

Hier sollte SSD1963-Release ausgewählt werden.

von Thomas H. (flaretom)


Bewertung
0 lesenswert
nicht lesenswert
Hi Frank,

Ich habe die letzten Tage mehr an der Mechanik (Gehäuse) als an der SW 
gebastelt und musste dafür auch die Displayverdrahtung neu machen.
Ich glaube in der letzten Version ist ein Bug beim Display-update. Ich 
dachte zuerst es liegt an meiner Löterei, aber mit der (alten) Revision 
geht es.
Ist aber auch nicht 100% ausgeschlossen, daß ich etwas lokal falsch 
gemergt habe.
Ich habe gesehen, du arbeitest auch an einem Zoom fürs Display. Wäre 1/2 
auch möglich (für Vorschau von Snapshots)?

Beste Grüße, Tom

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Hi Tom,

Thomas H. schrieb:
> Ich glaube in der letzten Version ist ein Bug beim Display-update.

Ja, kann gut sein, dass ich da einen Fehler eingebaut habe. Wie gesagt, 
ich habe versucht, den ILI9341-Treiber zu integegrieren. Es kann 
durchaus sein, dass ich dadurch im gemeinsamen Code von update_display() 
etwas kaputtgemacht habe. Ich selbst konnte es noch nicht am lebenden 
Objekt testen. Schaue ich mir aber noh heute (Sonntag) an.

> Ich habe gesehen, du arbeitest auch an einem Zoom fürs Display. Wäre 1/2
> auch möglich (für Vorschau von Snapshots)?

ZOOM ist momentan eine Konstante. Diese habe ich lediglich für den 
gemeinsamen Code in update_display genutzt, um beide Displays ILI9341 
(320x240) und SSD1963 (800x480) über ein- und denselben Code zu 
versorgen.

Im ersten Fall sind es nämlich ZOOM=1 und im zweiten ZOOM=2 - über 
defines. Aber die Vorschaubilder sind wirklich eine interessante Idee!

Gruß,

Frank

von Frank M. (ukw) (Moderator) Benutzerseite


Bewertung
1 lesenswert
nicht lesenswert
Vielleicht ersetzt Du erstmals die Funktion update_display  durch die 
alte. Ich komme wohl erst heute Abend dazu.

von Thomas H. (flaretom)


Bewertung
0 lesenswert
nicht lesenswert
Hallo Frank,

Klar, kein Problem - lass dir Zeit. Ich habe eine lauffähige Version bei 
der ich die Touch-Funktion einbauen kann. Außerdem ist das Wetter ein 
bißchen zu schön zum Basteln ;).

Schönen Sonntag!
Tom

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.