Forum: Mikrocontroller und Digitale Elektronik Z80 Emulation auf dem Arduino


von chris_ (Gast)


Lesenswert?

Vorne weg: Dieser Thread ist ausschließlich zum Spaß an der 
Beschäftigung mit Z80 MCUs als Vintage Hobby. Dieser Thread richtet sich 
an Interessierte aus dieser Zeit, die ein wenig Lust haben, wieder mit 
dem Z80 Befehlssatz zu spielen.

Vor einigen Jahrzehnten hatte ich Spaß am Programmieren und Basteln mit 
der Z80 CPU. Vor kurzem bin ich auf diese Arduino Library gestoßen

https://github.com/jkingsman/Z80Mega

und überlege mir, was man lustiges damit anstellen könnte.
Eigentlich fehlt in der Library ein kleines Z80 Assembler Beispiel zum 
Blinken der "LED_BUILTIN" beim Arduino.
Vielleicht sollte man mal einen Benchmark schreiben, um zu sehen, wie 
schnell die Emulation läuft.

von H. H. (Gast)


Lesenswert?


von Thomas W. (Gast)


Lesenswert?

Oder:
https://github.com/MockbaTheBorg/RunCPM

Das einzige Problem ist die RAM-Speichergroesse. Heute sind 
Mikrocontroller gut genug:

Beitrag "CP/M auf dem Raspberry Pi Pico"

Gruesse

Th.

von Ein Kommentar (Gast)


Lesenswert?

Na ja... so eine Emulation auf einem AVR zum laufen bringen ist eine 
echte Herausforderung. Das bringt Spaß. Einen alten Sinclair Rechner 
wieder instand setzen und darauf Programmieren bring auch Spaß.

Aber ich befürchte, du wirst ziemlich schnell sehen, warum niemand diese 
Emulation benutzt.

von Guido L. (guidol1970)


Lesenswert?

chris_ schrieb:
> Eigentlich fehlt in der Library ein kleines Z80 Assembler Beispiel zum
> Blinken der "LED_BUILTIN" beim Arduino.
> Vielleicht sollte man mal einen Benchmark schreiben, um zu sehen, wie
> schnell die Emulation läuft.

wenn Du RunCPM auf dem Arduino Due laufen laesst kann man ueber BDOS/Z80 
Assembler auch die GPIOs schalten.

Schau Dir dazu mal folgendes BASIC-Programm an, welches per READ/DATA 
ein Assembler-Program laufen laesst ;)
https://github.com/MockbaTheBorg/RunCPM/blob/master/ArduinoInterface/LED.BAS

von chris_ (Gast)


Lesenswert?

CPM auf einem Arduino wäre eine lustige Sache.
Laut Beschreibung soll die Library nur auf einem Arduino Mega laufen.

https://github.com/jkingsman/Z80Mega

Beim ersten Überfliegen der Sourcen sehe ich aber keinerlei 
Prozessorabhängigkeit. Insofern sollte die Library auf jedem Arduino 
Framwork laufen sofern der Prozessor ausreichend Speicher besitzt 
(ESP32, PiPico, STM32 derivate).

von chris_ (Gast)


Lesenswert?

von Ein Kommentar (Gast)
24.09.2022 18:33

>Na ja... so eine Emulation auf einem AVR zum laufen bringen ist eine
>echte Herausforderung. Das bringt Spaß.

Mit dem ArduinoMega geht das natürlich schneller.

Ich hab's grad mal probiert:

Start 19:50

1. Zum Schrank laufen und ArduinoMega holen
2. Library als ZIP runter laden und in den Libraries Ordner kopieren
3. ArduinoMegaADK auswählen
4. Beispiel flashen
5. Serial Terminal auf 9600 Baud auswählen

19:55: der simulierte Z80 meldet sich per Arduino Serial Monitor

von Pre Z80 (Gast)


Lesenswert?

Hallo

chris_ schrieb:
> 19:55: der simulierte Z80 meldet sich per Arduino Serial Monitor

Und dann?
Die Frage ist nicht (!) ironisch sondern ernsthaft gemeint.

Was macht man dann mit so einen "Z80" der ja in der Praxis dann fast 
immer noch einen PC (Laptop, Smartphone, Tablett) bracht um den Serial 
Monitor Ausgaben darzustellen.

Was konnte man mit einen Z80 eigentlich sinnvoll machen (Auch hier 
wieder: Keine Ironie, keine Hetze sondern eine ernst gemeinte Frage)?

Und mit sinnvoll meine ich sinnvolle, einen Vorteile, Vereinfachungen, 
Spaß bringende Anwendungen.

Warum sollte man sich einen Z80 mit all seinen Beschränkungen antun, 
wenn ein auch schon (fast) Historischer und aus der Zeit gefallener 
ATMega 8 oder ein PIC 16F84 deutlich mehr leisten, die GUI und 
Entwicklungsumgebungen wesentlich Anwendungsfreundlicher und dabei sogar 
meist kostenlos sind.

Nur um die rosarote Nostalgiebrille zu tragen und sich selbst was 
vorzumachen (der Körper wird nämlich nicht auf einmal wieder Jung, 
vertane  Chancen eröffnen sich nicht neu, geliebte Leute und Freund 
werden nicht auferstehen...) ?

Wenn ich den Wikipedia Artikel richtig interpretiere gibt es auch heute 
noch "Z80"er die aber wohl außer den Prozessorkern wenig mit den 
Original Z80 (Systeme) gemeinsam haben (?).
Warum dann einen Z80 Emulieren - man kann doch scheinbar immer noch ein 
"Original" nutzen wenn man will (Wohl dann auch mit Zeitgemäßer 
Entwicklungsumgebung und  Programmern)?

von chris_ (Gast)


Lesenswert?

Guido L. (guidol1970)
24.09.2022 19:42
>wenn Du RunCPM auf dem Arduino Due laufen laesst kann man ueber BDOS/Z80
>Assembler auch die GPIOs schalten.
https://github.com/MockbaTheBorg/RunCPM/tree/master/RunCPM

Leider ist die CPU von RunCPM nicht in der Arduino üblichen Form als 
Library gekapselt.

Es wäre interesant, die Performance der beiden CPU-Implementierungen 
vergleichen zu können.
Ich habe gerade mal versucht, die Leistungdaten von
https://github.com/jkingsman/Z80Mega
zu "Benchmarken":
Simulation: ArduinoMega
Flash: 63476 Bytes
Ram: 7054 Bytes

Instruction Speed ermittelt mit
1
  uint32_t startTime = micros();
2
  for (int n = 0; n < 1000; n++)
3
  {
4
    StepZ80(&cpu);
5
  }
6
  uint32_t duration_us = micros() - startTime;
7
  Serial.print("instructions per microsecond (mean):"); Serial.println(1.0/(duration_us/1000));

instructions per microsecond (mean):0.17

Wie liegt eigentlich der Z80 im Normalfall?

von Peter K. (Gast)


Lesenswert?

ich finde den echten Z80 auch interessanter für mein Projekt

von chris_ (Gast)


Lesenswert?

Pre Z80 (Gast)
>Und dann?
>Die Frage ist nicht (!) ironisch sondern ernsthaft gemeint.

>Was macht man dann mit so einen "Z80" der ja in der Praxis dann fast
>immer noch einen PC (Laptop, Smartphone, Tablett) bracht um den Serial
>Monitor Ausgaben darzustellen.

Die CPU braucht keinen PC(Latop, Smartphone, Tablett) oder ähnliches. 
Mit den IO-Funktionen kann man auch einfach nur eine LED blinken lassen 
oder einen Roboter, Waschmaschine, Heizung oder was auch immer steuern.
Aber klar .. wie ich im Eingangspost schon erwähnte: Das ganze macht 
vermutlich keinen Sinn, aber ich habe grad Spaß drann.

von DerEchteHugo (Gast)


Lesenswert?

Wenn man CP/M auf 'nem Z80 zum laufen bekommt, kann man ihn mit 
TurboPascal programmieren, das gabs tatsächlich für CP/M auf Z80. Manch 
einer mag sowas.

von chris_ (Gast)


Lesenswert?

Da zufälligerweise gerade ein NucleoF303K8 vor meiner Nase auf dem 
Schreibtisch liegt,

https://os.mbed.com/platforms/ST-Nucleo-F303K8/

habe ich den Benchmark mal darauf geflasht (exact den gleichen Code wie 
auf dem ArduinoMega):

Flash: 62744
Ram: 1652
instructions per microsecond (mean):0.50

Die CPU läuft auf dem STM32F303 also ca. 3 mal schneller als auf dem 
ArduinoMega.
FCPU ArduinMega:16MHz
FCPU STM32F303K8: 72MHz
70MHz/16MHz=4.5

Seltsam: der Ram-Verbrauch ist deutlich kleiner als beim Atmega
und:Obwohl fast die 4.5 fache Clock und 32 Bit ist es auf dem STM nur 3 
mal schneller.

von Bernd (Gast)


Lesenswert?

Pre Z80 schrieb:
> Was konnte man mit einen Z80 eigentlich sinnvoll machen
https://de.wikipedia.org/wiki/Zilog_Z80#Verwendung
Ansonsten unter CP/M gab es schon (fast) alles was es heute auch noch 
gibt: Textverarbeitung (WordStar), Tabellenkalkulation (Supercalc), 
Datenbank (dBASE)

von Peter K. (Gast)


Lesenswert?


von Georg (Gast)


Lesenswert?

DerEchteHugo schrieb:
> das gabs tatsächlich für CP/M auf Z80. Manch
> einer mag sowas.

Aber ob er das auch noch mag wenns auf Arduino emuliert wird? Übrigens 
macht CP/M mit weniger als 64 kB RAM sowieso wenig Sinn.

Georg

von chris_ (Gast)


Lesenswert?

Peter K. (os2fan2)
24.09.2022 21:17

> http://www.symbos.de/

Uhh .. das ist aber arg farbig. Da darf man nicht rot grün blind sein.
Ich vermute, ein PiPico könnte für sowas inclusive Monitoransteuerung 
reichen.

von chris_ (Gast)


Lesenswert?

Spasseshalber habe ich den Benchmark Code mal auf den ESP32 geflasht.
Er lief erst mal nicht. Ich musste die Variable für die Zeitmessung auf 
float umstellen. Scheinbar gibt es beim Compiler Unterschiede zum 
Compiler für den AVR und den STM32.

Der Benchmark sieht jetzt so aus:
1
  uint32_t startTime = micros();
2
  for (int n = 0; n < 1000; n++)
3
  {
4
    StepZ80(&cpu);
5
  }
6
  float duration_us = micros() - startTime;
7
  Serial.print("instructions per microsecond (mean):"); Serial.println(1.0 / (duration_us / 1000));

Die Benutzung der Z80 Lib
https://github.com/jkingsman/Z80Mega
auf dem ESP32 ergibt für die Simulation der CPU:

Flash: 253250 Bytes
Ram: 14036 Bytes
instructions per microsecond (mean): 2.11

Die Z80 Simulation läuft damit auf dem ESP32 als 4x schneller als auf 
dem STM32F303K8 bzw. 12x schneller als auf dem Atmega.

Ich schätze mal, dass bei einem 4MHz getakteten Z80 die 
Ausführungsgeschwindigkeit bei ca. 500.000 Instruktionen/Sec liegt. 
Damit wäre die Simulation auf einem Core des ESP32 etwa 4x schneller.

von chris_ (Gast)


Lesenswert?

Bernd:
>Pre Z80 schrieb:
>> Was konnte man mit einen Z80 eigentlich sinnvoll machen
>https://de.wikipedia.org/wiki/Zilog_Z80#Verwendung

Aus dem Text:
"Anfangs wurde der Z80 häufig in Arcade-Spielen eingesetzt, so in 
Galaxian (1979) und Pac-Man, aber auch der Mikrocomputer Intertec 
Superbrain nutzte den Prozessor. Der Z80 hat sich dabei bis Ende der 
1980er Jahre als Spiele-Prozessor bewährt. Um gewünschte Effekte zu 
erzielen, setzten Automaten-Hersteller später auch bis zu drei Z80 
parallel ein."

Nach dem obigen Benchmark zu urteilen kann der ESP32 mit der Z80 Arduino 
Library 4 Z80 Kerne auf einem seiner Kerne mit der Geschwindigkeit eines 
4MHz getakteten Z80 simulieren. Das dürfte für so ein Arkade Spiel 
reichen.

Dass die Verwendung des Z80 für Spiele als erstes genannt ist dürfte der 
Neigung der schreibenden Autoren geschuldet sein.
Ich hätte die größte Verbreitung eher in Maschinensteuerungen erwartet. 
Die Verwendung als Steuerungs-CPU interessiert mich eher.

von Peter K. (Gast)


Lesenswert?

Die Fae´rben sind super.
Da ist nicht schrecklich.
Auf der Beispielseite sind verschiedene Desktops Beispiele abgebildet.
https://www.youtube.com/watch?v=B62k7iKK2rU

chris_ schrieb:
> Peter K. (os2fan2)
> 24.09.2022 21:17
>
>> http://www.symbos.de/
>
> Uhh .. das ist aber arg farbig. Da darf man nicht rot grün blind sein.
> Ich vermute, ein PiPico könnte für sowas inclusive Monitoransteuerung
> reichen.

von Wolfgang (Gast)


Lesenswert?

chris_ schrieb:
> Vielleicht sollte man mal einen Benchmark schreiben, um zu sehen, wie
> schnell die Emulation läuft.

Es gibt nicht "den Arduino". Der Unterschied zwischen einem Arduino Due 
und einem Arduino Uno ist nun mal beträchtlich.

von Peter K. (Gast)


Lesenswert?

Hier sieht man SymAmp:-) (Winamp Clone im Einsatz)
https://www.youtube.com/watch?v=IlOkLrhfZFA

von chris_ (Gast)


Lesenswert?

Wolfgang (Gast)
25.09.2022 07:22

>Es gibt nicht "den Arduino". Der Unterschied zwischen einem Arduino Due
>und einem Arduino Uno ist nun mal beträchtlich.

Echt jetzt?
Man Leute, lest mal den Thread zumindest in groben Zügen durch, bevor 
ihr etwas postet.

von Wolfgang (Gast)


Lesenswert?

chris_ schrieb:
> Echt jetzt?
> Man Leute, lest mal den Thread zumindest in groben Zügen durch, bevor
> ihr etwas postet.

Die Überschrift ist doch ganz klar formuliert. Darauf habe ich mich 
bezogen.

von chris_ (Gast)


Lesenswert?

>Die Überschrift ist doch ganz klar formuliert. Darauf habe ich mich
>bezogen.

Ja, nur manchmal muss man den ganzen Artikel lesen, bevor man weiß, um 
was es geht.

Guck mal hier:

Beitrag "Re: Z80 Emulation auf dem Arduino"

von Wolfgang (Gast)


Lesenswert?

chris_ schrieb:
> Guck mal hier:
>
> Beitrag "Re: Z80 Emulation auf dem Arduino"

Eine float-Variable für die Differenz von Integer ist an sich schon 
einmal krank - kein weiterer Kommentar

von DerEinzigeBernd (Gast)


Lesenswert?

Peter K. schrieb:
> Die Fae´rben sind super.
> Da ist nicht schrecklich.

Sieht aus wie die Versuche aus den frühen 90ern, mit Corel Draw dem 
Nagelstudio von der Uschi ein neues "Design" zu verpassen.

von chris_ (Gast)


Lesenswert?

Peter K. (os2fan2)
25.09.2022 07:25

>Hier sieht man SymAmp:-) (Winamp Clone im Einsatz)
>https://www.youtube.com/watch?v=IlOkLrhfZFA

Ist nur bei mir kein Ton im Video? Ich hätte vermutet, dass der Winamp 
Clone Sound erzeugt.
Die Frage ist: Die Leistung eines Z80 würde vielleicht gerade reichen, 
um die Daten aus dem Speicher zu einem DAC zu schaufeln, aber von MP3 
ist das weit entfernt.

von DerEinzigeBernd (Gast)


Lesenswert?

chris_ schrieb:
> Ist nur bei mir kein Ton im Video?

Ab etwa 2:30 kommt welcher. Man muss aber schon recht hartgesotten sein, 
um der ... äh, "hochauflösenden" Graphik bis dahin gebannt zuzugucken.

Allerdings habe ich leichte Zweifel daran, daß der Ton irgendwas mit 
dem Z80-System zu tun hat, das hier zu sehen ist.

von NoSound (Gast)


Lesenswert?

DerEinzigeBernd schrieb:
> Allerdings habe ich leichte Zweifel daran, daß der Ton irgendwas mit
> dem Z80-System zu tun hat, das hier zu sehen ist.

Na ja, ab 04:42 hat das wieder ein Ende und es ist diese Mischung aus 
Netzbrumm und Rauschen hinterlegt.

von Jester (Gast)


Lesenswert?

Das ist die beste Idee, die ich je gehört hab! Man könnte aber auch 
alternativ einen roten Gummibärchen einbuddeln ...

Beitrag #7202677 wurde von einem Moderator gelöscht.
von Peter K. (Gast)


Lesenswert?


von Stefan F. (Gast)


Lesenswert?

chris_ schrieb:
> Obwohl fast die 4.5 fache Clock und 32 Bit
> ist es auf dem STM nur 3 mal schneller.

Das ist überhaupt nicht seltsam. 32 Bit breite Register nützen dir 
nichts, wenn  du nur mit 8 Bit Daten arbeitest. Zudem braucht ein STM32 
für viele Dinge mehr CPU Takte und Befehle, als ein AVR.

Bei gleicher Taktfrequenz kann ein STM32 durchaus langsamer sein, als 
ein AVR. Insbesondere wenn das Programm viel an den I/O Pins herum 
wackelt.

von chris_ (Gast)


Lesenswert?

Stefan ⛄ F. (stefanus)
25.09.2022 16:35
>Das ist überhaupt nicht seltsam. 32 Bit breite Register nützen dir
>nichts, wenn  du nur mit 8 Bit Daten arbeitest. Zudem braucht ein STM32
>für viele Dinge mehr CPU Takte und Befehle, als ein AVR.

Die Begründung ist mir dann auch eingefallen. Ein wenig könnten die 
32Bit doch bringen, da der Z80 auch ein paar Befehle, die 16 Bit 
benutzen wie z.B. die Adressierungsarten über HL, BC oder den PC.
Etwas positive ist mir dann doch die Geschwindigkeit des ESP32 
aufgefallen. Allerdings wundert mich der enorme Flash Bedarf, da muss 
das Framework irgend was riesiges mitziehen .. vielleicht den gesamten 
WIFI-Stack.
Beitrag "Re: Z80 Emulation auf dem Arduino"

Der Speicherbedarf der Library auf dem Arduino-Mega ist meiner Meinung 
nach auch viel zu hoch: Eigentlich sollte es möglich sein, den Z80 mit 
<8kB Flash und 256Byte Ram zu simulieren.

Wenn es die verwendete Simulation hier
https://www.mikrocontroller.net/articles/AVR_CP/M als Arduino-Lib
gäbe, wäre das super. Allerdings wäre das Ganze dann nicht mehr auf 
andere Architekturen portabel, was auch wieder blööd ist.

Falls man der Aktion, einen Z80 zu simulieren etwas nützliches 
abgewinnen will: Man kann auch ohne CPM einen Basic Interpreter laufen 
lassen.

http://searle.x10host.com/z80/SimpleZ80.html

Das Arduino Projekt hat hier einer mit der Lib dazu erstellt:
https://github.com/tmacauley/Z80Pico/tree/master/examples/GrantSearle7ChipZ80

von chris_ (Gast)


Lesenswert?

Es gibt ein neues Z80-OS.
Vielleicht könnte man das auf den "Arduino-artigen" laufen lassen ;-)

https://hackaday.com/2022/11/08/z80-gets-new-os/

von W.S. (Gast)


Lesenswert?

chris_ schrieb:
> Wie liegt eigentlich der Z80 im Normalfall?

Schon vergessen? Im Mittel braucht der Z80 pro Instruktion 4 Taktzyklen. 
Also ein historischer Z80 mit 4 MHz Takt arbeitet 1 Instruktion pro µs 
ab. Damit liegt er so etwa gleichauf mit sowas wie klassischen PIC16, 
die aber deutlich weniger Speicher adressieren können. Nun ja, neuere 
Z80 vertragen 20 MHz Takt und da sind so etwa 5 Instruktionen/µs drin. 
Ich schreibe hier immer 'so etwa', weil der Z80 eben verschiedene 
Befehlslängen und Interface-Sequenzen einschließlich Wait und 
dazugehörige Waitstates kennt. Er ist eben kein Controller, sondern ein 
Prozessor.

Allerdings sind solche Emulationen mir immer suspekt, denn was soll es 
heißen: "19:55: der simulierte Z80 meldet sich per Arduino Serial 
Monitor". Der Z80 meldet sich überhaupt nicht. Und zwar nie und 
nirgends. Was sich da melden kann, ist ein Programm, das von ihm 
(virtuell) ausgeführt wird. Also wenn man das so sehen will, dann eine 
Art Script, ausgeführt auf einem passenden Interpreter. Und der wiederum 
ausgeführt auf einem Interpreter für diesen Interpreter.

W.S.

von Grummler (Gast)


Lesenswert?

W.S. schrieb:

> Im Mittel braucht der Z80 pro Instruktion 4 Taktzyklen.

Nie im Leben.

Wenn mich mein Gedächtnis nicht trügt, braucht der kürzeste
Befehl 4 Takte (der längste liegt bei 19 Takten oder so.)

Im Mittel 8 Takte je Befehl haut m.E. schon ganz gut hin.

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

Grummler schrieb:
> Wenn mich mein Gedächtnis nicht trügt, braucht der kürzeste
> Befehl 4 Takte

Korrekt, siehe auch https://clrhome.org/table/

NOP allein braucht schon 4 cycles.

Apropos Z80-Emulator: Siehe auch STECCY. Diese Emulation bildet 
timinggenau einen Z80 mit 3,5MHz ab, kann aber mittels Turbo-Taste um 
ein Vielfaches beschleunigt werden. Der Emulator läuft aber auf einem 
STM32 und nicht auf einem Arduino.

: Bearbeitet durch Moderator
von chris_ (Gast)


Lesenswert?

Frank M. (ukw) (Moderator)
>Der Emulator läuft aber auf einem
>STM32 und nicht auf einem Arduino.

Du meinst jetzt so einen wie den hier:
https://store.arduino.cc/products/portenta-h7

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

chris_ schrieb:
> Du meinst jetzt so einen wie den hier:
> https://store.arduino.cc/products/portenta-h7

Nee, das Teil ist viel zu fett und zu teuer dafür. :-)

Ich meine einen STM32F407VET6. Das im STECCY-Artikel verlinkte Board 
kostete Anfang 2020 noch knapp 10 EUR. Mittlerweile leider wegen der 
STM32-Knappheit 40 EUR. Ich hoffe, das gibt sich bald wieder.

: Bearbeitet durch Moderator
von chris_ (Gast)


Lesenswert?

Frank M. (ukw) (Moderator)
>Ich meine einen STM32F407VET6. Das im STECCY-Artikel verlinkte Board
https://stm32-base.org/boards/STM32F407VET6-STM32-F4VE-V2.0

Es wird ja praktischerweise von STM mit STM32duino unterstützt.

https://github.com/stm32duino/Arduino_Core_STM32

Man kann also direkt die Z80 Library darauf laufen lassen:

https://github.com/jkingsman/Z80Mega/blob/master/src/Z80.c

Oben habe ich ja den Benchmark für das mit nur 72Mhz getaktete Nucleo 
F303K8 gemacht:
Beitrag "Re: Z80 Emulation auf dem Arduino"

Steccy ist ja ein sehr schönes Projekt. Vielleicht könnte man deren Z80 
Emulation in eine Library fassen, aber sie scheint ziemlich viele 
Abhängigkeiten zu anderen Modulen zu haben:
https://github.com/ukw100/STECCY/blob/main/src/z80/z80.c

von Frank M. (ukw) (Moderator) Benutzerseite


Lesenswert?

chris_ schrieb:
> aber sie scheint ziemlich viele Abhängigkeiten zu anderen Modulen zu
> haben:

Ja, weil gleichzeitig auch die Spectrum-ZX-Hardware emuliert wird. Eine 
Kapselung des reinen Z80-Emulators kann man machen, wird bei STECCY aber 
höchstwahrscheinlich zu Performance-Einbußen führen, da die 
Original-ZX-Spectrum-Peripherie von Sinclair ziemlich eng mit dem Z80 
"verzahnt" wurde.

Zum Beispiel wurde ein "gleichzeitiger" RAM-Zugriff über den ULA-Chip 
zur Bilddarstellung realisiert, indem dieser mal kurz reingrätscht und 
die Z80 immer wieder zyklisch stoppt... Es gibt da noch viele andere 
Tricks, die damals genutzt wurden, um den ZX-Spectrum preisgünstig ohne 
viel Hardware-Aufwand herzustellen.

Wenn ich mal Lust und Zeit habe, kann ich den reinen Z80-Emulator aus 
STECCY herausoperieren...

: Bearbeitet durch Moderator
von chris_ (Gast)


Angehängte Dateien:

Lesenswert?

>Eine Kapselung des reinen Z80-Emulators kann man machen, wird bei STECCY aber 
höchstwahrscheinlich zu Performance-Einbußen führen, da die 
Original-ZX-Spectrum-Peripherie von Sinclair ziemlich eng mit dem Z80
"verzahnt" wurde.

Ohja, das klingt kompliziert. Wahrscheinlich ist es eher nicht machbar.

Es wäre natürlich schon schön, wenn man die einzelnen Chips als 
Softwaremodule hätte und sie einfach "zusammenstöpseln" kann.

Im Moment habe ich die Spektrum Platine oben herumliegen, die darauf 
wartet, mühselig bestückt zu werden ...

von Max M. (Gast)


Lesenswert?

chris_ schrieb:
> was man lustiges damit anstellen könnte.
Man könnte auf dem AVR einen Z80 emulieren der einen 6502 emuliert 🙄
Wenn man dann noch den AVR auf dem stm32 emuliert und den dann auf einem 
RiscV, der von einem Raspi emuliert wird, der von einem Ryzen emuliert 
wird ...

.. Viele Lichtjahre von der Sinnhaftigeit entfernt dringt die 
Emulatorprise in Galaxien vor, die nie ein Mensch zuvor gesehen hat.

von chris_ (Gast)


Lesenswert?

>Man könnte auf dem AVR einen Z80 emulieren der einen 6502 emuliert 🙄
>Wenn man dann noch den AVR auf dem stm32 emuliert und den dann auf einem
>RiscV, der von einem Raspi emuliert wird, der von einem Ryzen emuliert
>wird ...

Statt einen Ryzen wäre aber ein Atmega lustiger:
https://dmitry.gr/?r=05.Projects&proj=07.%20Linux%20on%208bit

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.