Datum:
Angehängte Dateien:Endlich habe ich die Doku vom AX82 fertigbekommen und das Projekt online gestellt. http://www.jcwolfram.de/projekte/avr/ax82/main.php Emuliert wird ein Standard ZX Spectrum mit 48K RAM, basierend auf meinem Z80 Emulator, den ich für dieses Projekt stark erweitert habe bzw. erweitern musste. So werden jetzt z.B. alle 3 Interrupt-Modi unterstützt. Neben dem AVR (Mega644) werden noch ein CPLD (XC9536) und zwei 32Kx8 (Cache-) RAMs benötigt. Die Ausgabe erfolgt umschaltbar auf TV (RGB) oder auch VGA, die Eingabe über eine PS2-Tastatur.Sound geht leider nicht, da aufgrund des völlig anderen Timings die Qualität gegen Null geht. Die Geschwindigkeit erreicht bei TV-Ausgabe ungefähr Original-Niveau, bei VGA-Ausgabe nur ca. 87 Prozent. Snapshots können von SD-Karte geladen und dorthin zurückgespeichert werden, das Handling ist weitestgehend identisch zum AX81b. Auch der integrierte Monitor ist wieder dabei. Auch habe ich den Anschluss von einem Joystick bereits hardwaremäßig vorgesehen, allerdings noch nicht in der Software. Das kommt eventuell später noch, wenn Interesse besteht. Jörg
Datum:
Tool ohne Ende. Ich frage mich ob man mit einem ATXMega ~100% mit VGA kriegen könnte... und der Built-in SRAM/SDRAM kontroller nutzen...
Datum:
Wenn man das gleiche Grunddesign nimmt, 32MHz Clock und VGA4 statt VGA3, könnte es schon klappen. Ob man den internen Memorycontroller benutzen kann glaube ich eher nicht, habe aber keinerlei Erfahrungen mit den ATXMegas. Man braucht für 8 Pixel zwei Speicherzugriffe und muss die Daten noch an den Video-Shifter (CPLD) ausgeben. Jörg
Datum:
Joerg Wolfram schrieb: > Ob man den internen Memorycontroller benutzen > kann glaube ich eher nicht, habe aber keinerlei Erfahrungen mit den > ATXMegas. Klar kann man den benutzen, dafür ist er doch da ;-). Läuft mit Fcpu/4 bei 0 Waitstates und schnellem RAM (12..15ns): 1.Adresse ausgeben 2.Latch betätigen 3.Daten lesen 4.CPU hat Daten verfügbar Joerg Wolfram schrieb: > Man braucht für 8 Pixel zwei Speicherzugriffe und muss die > Daten noch an den Video-Shifter (CPLD) ausgeben. DMA!
Datum:
Sicher lässt sich da einiges anstellen und es ist wahrscheinlich auch mit vielen Änderungen im Sourcecode (evtl. auch im CPLD) verbunden. Und deshalb gleich vorneweg: Eine XMega-Version wird es von mir mit hoher Sicherheit nicht geben. Da das Projekt ja Open Souce ist muss sich halt nur jemand finden, der die Anpassungen für den XMega macht und bei einer "1:1" Portierung kann ich vielleicht eher noch etwas Unterstützung geben. Jörg
Datum:
Geniales Projekt! Hut ab! Nur mal interessehalber: Warum hast du das ganze nicht gleich in einem FPGA untergebracht?
Datum:
Ganz einfach, weil ich nichts mit FPGAs mache. Die Gehäuse sind meiner Meinung nach eher "bastlerunfreundlich" und mit einseitigen Leiterplatten ist da meist auch nicht mehr viel auszurichten. XC9536 habe ich noch ein paar rumliegen und PLCC mit Sockel passt auch auf Lochrasterplatten. Außerdem gibt es ja schon ZX Spectrum im FPGA, wäre also nix Neues und damit für mich uninteressant. Jörg
Datum:
Ich habe am WE mal getestet, wievie schneller der AVR sein müsste. Mit 27MHz waren es noch keine 100% und mit 32MHz externem Oszillator kam nur noch Mist. Aber dabei sind mir noch ein paar Ideen gekommen. Wenn man den Clock zum CPLD führt, sollten sich auch 80 Zeichen darstellen lassen was vielleicht interessant für einen Port von AVRCPM sein könnte. Außerdem sollte es auch möglich sein, einen KC85/2 (oder/3) zu emulieren. Mit einem ATMega1284P und einem XC9572 sollte sich das sogar umschaltbar realisieren lassen. Jörg
Datum:
Greetings Jorg Another marvelous creation, of yours i see. Will the pcb be available, from the website like the chipbasic2 design. how do you program the CPLD ? regards David
Datum:
I dont know because the chipbasic2 pcb and kit was not initiated by me, I placed only the links on my website. For the AX81 I think there exist already community pcbs and kits. The AX82 is a little bit more difficult to build (CPLD) so it perhaps will be take more time... For the programming I used the Xilinx webpack (Ver. 7.x), the USBDRIVER.HEAD and a simple parallelport programmer. Joerg
Datum:
Geniales Projekt! Mal schauen, ob ich bei der nächsten Reichelt-Bestellung die entsprechenden Teile mitnehme. Hast du dir mal den ATmega 644PA-PU angesehen? Die zweite Revision (A) lässt sich meistens etwas mehr übertakten. Beim SwinSID (vielleicht ist dir das ein Begriff; SID-Nachbau mit AVR) wurde ein ATmega88PA-AU benutzt, weil dieser sich besser übertakten ließ. 32MHz sind idR kein Problem. Gruß
Datum:
@Immanuel Cunt Dann zeig mal wie das geht... Ansonsten hätte man auch einfach FUSE auf seinem Rechner installieren können, das würde dann gar nichts kosten, man braucht keine Leiterplatte und ist noch schneller ;-) Jörg
Datum:
Hammer Jörg! Hammer!! :) Schön wäre jetzt noch der Joystick!!!!!!!!
Datum:
Ist in Arbeit, aber noch nicht aufgebaut und getestet. Im Moment habe ich ein größeres Projekt, welches ich möglicht bis Weihnachten fertig haben möchte und darum läuft alles andere erstmal auf Sparflamme. Jörg
Datum:
Da die meisten wohl eher wegen der alten Spiele ausprobieren wollen, wird es demnächst wohl einen "Nachfolger" geben. Basis wird das ChipBasic Board mit 16-Farben Erweiterung sein, auf dem dann ein Mega1284P läuft. Ohne externes RAM und ohne CPLD, dafür halt nur TV-Output. Joystickanschluss über den Parallelport. Sound wird es aber (leider) auch hier nicht geben. Die verfügbaren 15K RAM sollten für viele Spiele ausreichen, da nur noch RAM für veränderliche Daten (z.B. Bildspeicher, Systemvariablen, Stack) benötigt wird. Der Speicher ist in 256 Bytes große Pages aufgeteilt, die entweder im Flash oder im RAM des AVR liegen. Bei Schreibzugriffen auf Adressen ausserhalb des ROM-Bereiches, die aber noch auf AVR-Flash zeigen, wird bei noch freien RAM-Pages die Flash-Page ins RAM kopiert und die Page entsprechend markiert. Übertaktung ist nicht mehr vorgesehen, dafür scheint zumindest der Mega1284P nicht geeignet zu sein und es gibt haufenweise Probleme bei den "Nachbauern". Die Performance (20MHz AVR-Takt) liegt beim aktuellen Entwicklungsstand bei ca. 60% Originalgeschwindigkeit, mit einem zusätzlichen Mega88 als aktivem Videoshifter und -cache am Parallelport ungefähr bei 93%. Massenspeicher ist nicht zwingend notwendig (Snapshot-Funktion), es wird aber eher auf einen Dataflash-Baustein als auf SD-Karte hinauslaufen. Ein großes Dateihandling wird es sowieso nicht geben, die verfügbaren Programme sollen sich in einer Art Preview beim Start auch mit dem Joystick auswählen lassen. Man kann dann noch wählen, ob das "Original" oder der Snapshot geladen wird, das war es dann auch. Ein 1MB DataFlash kann 16 Programme incl. Snapshots speichern, das sollte eigentlich ausreichen. Für das Erstellen der Snapshots auf dem PC bin ich gerade dabei, mir den FBZX-Emulator zurechtzupatchen damit er Schreibzugriffe auf das RAM mitloggt. Wenn man ein Programm ein bisschen ausprobiert, kann man damit schon eine recht optimale Speicherbelegungstabelle erzeugen. So komme ich z.B. bei Chequered Flag auf 39 Pages mit Schreibzugriffen, was gerade mal knapp 10K RAM bedeutet. Im Moment geht es eher schleppend voran, da ich auch noch an drei anderen Projekten bastle. Von daher würde mich interessieren, inwieweit überhaupt Interesse daran besteht. Jörg
Datum:
Greetings Jorg Just to let you know there is interest in this project, I await your next incarnation!
