Leider der Emulator nicht ganz funktioniert: Der Arduino Nano meldete sich mit "Coldstart (C) Warmstart(W)" oder so ähnlich. Nach dem drücken gab er allerdings nie mehr ein Lebenszeichen von sich ... seltsam.
Meine Anforderungen an den Emulator sind:
muss auf einem Arduino Nano laufen können
soll aber auch leicht auf einen PiPico oder ESP32 portierbar sein
da muss ich Goethe zitieren:
Ein Hündchen wird gesucht
Das weder murrt noch beißt,
Zerbrochene Gläser frißt
Und Diamanten – –
https://www.aphorismen.de/zitat/156086
Aber das sieht ja interessant aus. Schon 2013 begonnen.
Muss das unbedingt sein? Es gibt so viele billige leistungsfähige
Controller, wozu sich den Aufwand mit dem Nano machen?
Sonst wäre es zu einfach. Für die größeren Controller gibt es Haufenweise CPU-Emulatoren in C oder C++, das wäre eher keine Herausforderung.
Ich habe Spaßeshalber mal den obigen 6502-Arduino-Nano-Emulator umgebaut um ihn auf Ubuntu laufen zu lassen.
Es meldet sich ein "EHBASIC, allerdings weiß ich leider nicht genau, wie man es bedient. Hier der Log meines ersten Versuchs:
Etwas ungenauer geht es nicht?
Oh, jetzt haben wir quasi gleichzeitig gepostet.
Läuft es bei dir auf dem Nano?
Aus irgendwelchen Gründen hat es die obige Ausgabe auf dem Nano nur einmal angezeigt. Vielleicht hat meiner ein Flash Problem.
Wenn du eine Herausforderung möchtest, warum programmierst du dann
keinen eigenen Emulator und versuchst einen fertigen zu finden?
Weil es ja den Verlinkten schon gibt. Der ist aber unschön programmiert, weil sich in cpu.c die ROM-Listings befinden. Das Ganze ist nicht gut gekapselt und nicht gut separierbar.
So, jetzt habe ich den 6502 auf dem Arduino Nano zum laufen gebracht ( es waren einige Fehler drinnen ) und ich konnte die Fibonacci-Folge aus dem Wettbewerb mittels eines Assemblerprogramms (hat auch länger gedauert als gedacht) berechnen.
Gesamtrechenzeit für die 80 stellige Zahl:
5.13 Sekunden
Die Terminalausgabe über die serielle Schnittstelle ist vermutlich der Hauptbremser.
Ich muss die mal abstellen und nur das Endergebnis drucken.
Wie schnell läuft nun der 6502 Arduino Emulator auf den verschiedenen Mkrocontrollern?
Square Wave Assembler Benchmark:
1
loop:
2
LDA #$00 ;(Load Accumulator, Immediate): 2 cycles
3
STA $F002 ;(Store Accumulator, Absolute): 4 cycles
4
LDA #$01 ;(Load Accumulator, Immediate): 2 cycles
5
STA $F002 ;(Store Accumulator, Absolute): 4 cycles
6
JMP loop ;(Jump Absolute): 3 cycles
total: 15 cycles
Mit Oszi am 6502 Arduino Nano gemessen: ~14kHz
Vergleich 6502 Arduino Nano Emulator zu Computer:
Commodore 64, Apple II, 1 MHz: ~66666Hz ( ca, 5x schneller als 6502 Arduino Emulator)
Atari 800, 1.79 MHz: ~119333Hz ( ca, 8.5x schneller als 6502 Arduino Emulator)
Das Thema hat mich animiert, fib.bas von Yalu auf einem 44 Jahre alten Epson HX-20 laufen lassen. Der HX-20 hat einen Hitachi 6301 mit 614kHz. Darauf läuft ein "Microsoft & Epson" Basic von 1982.
fib.bas lief abgesehen von RIGHT$ und STR$ sofort und war nach 15-18 min fertig (ich sah bei Minute 15 zuletzt auf die Uhr, machte dann 3min was anderes...)
Die Anpassung des Programms an die Epson eigenen Right und Str Befehle wäre sicher möglich gewesen, wenn ich etwas gesehen hätte.
Ich habe 2 HX-20. Einer läuft zwar, aber das Display hat so wenig Kontrast, dass es kaum noch lesbar ist. Die Eingabe des Programms war nur noch unter größter Anstrengung möglich.
Das Display des anderen ist zwar gut lesbar, aber der Rechner hängt nach dem Start komplett. Nach dem Versuch, aus beiden Geräten ein funktionierendes zu machen, geht jetzt keiner mehr... Alles hat eben seine Zeit ;-)
@Hobby B.
Beide laufen wieder nachdem ich sie stromlos gemacht und länger geladen habe. Auch das Display erholt sich etwas. Ich komme heute Nachmittag/Abend auf Deine Anfrage zurück.
Beide laufen wieder nachdem ich sie stromlos gemacht und länger geladen
habe. Auch das Display erholt sich etwas. Ich komme heute
Nachmittag/Abend auf Deine Anfrage zurück.
Warte trotzdem nicht zu lange. In meinem Compaq Portable haben die ausgelaufenen SMD-Elkos die Leiterplatten und Leiterfolien im TFT vernichtet. Da half wirklich nur noch Komplettaustausch. Zum Glück passte da ein etwas moderneres NEC-Panel 1:1 rein, lediglich ein Sync-Signal musste etwas verzögert werden damit das Bild wieder mittig steht.
(Der Compaq 486c ist kein Sammlerstück, sondern er muss sich seinen Strom als Bestandteil eines Data I/O Sprint Expert Programmiersystemes verdienen. Daher ist diese nicht-Originalität zu verschmerzen.)
Nur für den Fall, dass es interessiert. Und ja, die Akkus brauchen eine
Grundladung, ansonsten startet das Teil nur mit Netzteil nicht.
Das ist eine tolle Seite und eine perfekte Reparaturanleitung.
@Alle
Entschuldigt, habe gerade gemerkt, dass ich im falschen Fred gelandet bin. Wollte eigentlich zum Wettbewerb posten. Trotzdem Glück, einen Epson HX-20 Profi gefunden zu haben :-)