Eigenbau 1541 Emulator in Hardware

Es gibt 45 Antworten in diesem Thema, welches 10.848 mal aufgerufen wurde. Der letzte Beitrag (9. Januar 2008 um 18:35) ist von znarF.

  • Hallo!

    Hier die Meinung der Experten von der HobbyTronic:
    Mit einem ATMEGA geht keine 100%-Emulation, da der ATMEGA nur Code im Flash-Speicher ausführen kann. In den maximal 128KB Flashspeicher müssten der Emulator für 6502, 6522 etc. soewie die ROMs und natürlich das BS des Interfaces (FAT, MMC-Zugriff etc.) hinein. Mit dem ATMEGA32 geht das schon mal gar nicht.

    Quellcode zum IEC-Busprotokoll (für ATMEGA, aber natürlich keine 100% 1541-Emulatioin - aus den erwähnten Gründen -) findet man bei Bitte melde dich an, um diesen Link zu sehen. (Direkt-Link: Bitte melde dich an, um diesen Link zu sehen. )

    Gruß WTE & Skern

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Dass die AVR's nur Code im FLASH ausführen können ist doch kein Problem,
    der vom C64 aus in einen Puffer geladenen Code wird halt analysiert und
    den Opcodes entsprechende Funktionen aus dem FLASH des Controllers ausgeführt.

    Mal davon ab, dass es seit einiger Zeit auch die ATMega2560 mit
    256k FLASH gibt gibt es auch immer Controller die noch grösser sind.

    Man könnte ja auch zum Beispiel einen Controller von NEC nehmen,
    oder einen ARM, was mit 32 Bit und ein paar MHz mehr eben.

    Nur erfordert das nicht unerheblichen Aufwand.

  • Stimmt, man muss sich ja nicht auf ATMegas beschränken. Ein AT 89C51ED2 z.B. kostet keine 10 Euro und hat auch einiges zu bieten (60 MHz, sechs 8-Bit IO-Ports, drei 16-Bit Timer, 64K Flash etc).

    Die Emulation des 6502 dürfte das geringste Problem sein, zumal man ja für jeden emulierten Befehl zwischen zwei und sieben "Original-Taktzyklen" Zeit hat. Bei den Timerinterrupts und ähnlichen Sachen kann man sicherlich von den Timern des C51 helfen lassen. Andere Hardwareregister brauchen nur "on Demand" emuliert zu werden, wenn also tatsächlich darauf zugegriffen wird. Die Speicherkarte braucht man eigentlich auch nicht in Realtime auszulesen, sondern kann ein gewähltes Diskettenimage erstmal in einen externen Speicher "entpacken", damit es dort in einem Format vorliegt, bei dem man leicht auf die gewünschten Bits zugreifen kann. Eventuell kann man dafür sogar noch einen zweiten Chip spendieren, der ausschließlich als Bindeglied zwischen C51 und Speicherkarte fungiert.

    Alles in allem würde ich das nicht von vornherein als unmöglich bezeichnen. Bin aber zu faul das jetzt genauer zu durchdenken...

  • Zitat

    Original von Shadowolf
    Dass die AVR's nur Code im FLASH ausführen können ist doch kein Problem, der vom C64 aus in einen Puffer geladenen Code wird halt analysiert und den Opcodes entsprechende Funktionen aus dem FLASH des Controllers ausgeführt.
    Mal davon ab, dass es seit einiger Zeit auch die ATMega2560 mit 256k FLASH gibt gibt es auch immer Controller die noch grösser sind.
    Man könnte ja auch zum Beispiel einen Controller von NEC nehmen, oder einen ARM, was mit 32 Bit und ein paar MHz mehr eben.

    Zitat

    Original von Rapid Eraser
    Stimmt, man muss sich ja nicht auf ATMegas beschränken.

    Natürlich muss man sich nicht auf einen Atmel beschränken, aber unsere Antwort bezog sich nunmal auf dieses konkrete Projekt und die vorgebrachten Wünsche daran und da war von einem ATMEGA32 die Rede und damit gehts nicht. Punkt!

    Herumphantasieren was sonst noch irgendwie geht ist ja erlaubt, hilft aber weder dem Entwickler und Programmierer, der hier konkrete Hilfen zu den IEC-Routinen suchte, noch denen, die hier ihre Wünsche äußerten, die mit diesem Projekt nicht erfüllt werden können. Und genau nur das sollte ausgesagt werden (man soll da keine falschen Hoffnungen wecken).

    Wenn man aber schon phantasiert, kann man gleich einen FPGA nehmen, der kann das alles fix und schnell emulieren. Der Code (1541-Emu) dafür soll angeblich 1 MB (1 Megabyte) umfassen (passt dann auch nicht in den ATMega2560, wobei man hier wohl AVR und FPGA nicht direkt vergleichen darf). Leider kostet so ein FPGA wohl auch 'ne Stange Geld (irgendwer hat heute auf der Messe was von mehr als 100 Euronen gemurmelt).

    Zitat

    Nur erfordert das nicht unerheblichen Aufwand.


    Das kann man nur ganz dick unterstreichen!

    Gruß WTE

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • ich hab leider keine ahnung von der ganzen technik.... aber ich dachte mir schon das es nicht SO einfach sein kann, denn sonst wäre es schon längst von irgendwem umgesetzt worden!


    aber eins frage ich mich immer wieder bei sowas:

    es ist
    1. alte technik
    2. ist doch soweit alles bekannt oder nicht?

    wenn doch alles bekannt ist und wir neue möglichkeiten haben, warum bekommt man es nicht umgesetzt.... kann doch nicht sein, daß commodore da SO ein megateil gebaut hat was nie mehr zu erneuern ist oder etwa doch?

  • Zitat

    wenn doch alles bekannt ist und wir neue möglichkeiten haben, warum bekommt man es nicht umgesetzt.... kann doch nicht sein, daß commodore da SO ein megateil gebaut hat was nie mehr zu erneuern ist oder etwa doch?

    das problem sind die kleinen stückzahlen, die -im moment noch- relativ effektiv verhindern das man da was brauchbares für nen sinnvollen preis produzieren kann. es GIBT ja zumindest einen funktionierenden "richtigen" 1541 emulator (den fpga basierten von tivix), nur müsste man den heutzutage für ein schweinegeld verkaufen (ich halte selbst die 100 euro schon für optimistisch) wenn man dabei nicht sofort pleite gehen will. und 100 euro sind deutlich zu teuer für so ein produkt, es weinen ja schon genug leute bei den 50 euro fürs rrnet bzw mmc64 rum.

  • Was währe denn wenn man hingeht, die Logik die hinter einer 1541 steckt in ein CPLD quetsch, sich bei WDC nen Stapel 6502 nachbauten ordert und an das ganze dann nen AVR als SD-Karte zu Diskemu, also das was Tixiv da mit einer zweiten 6502 (auf AFAIR 20 mhz) im FPGA macht, dranflanscht.
    Müsste man doch billiger wegkommen als wie mit nem FPGA.
    Dann haben wir zwar 5 Chips die aber insgesamt billiger kommen als wie so ein FPGA mit RAM und ROM.

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D

  • ok wußte nicht das es einen 100% kompatiblen nachbau als fpga gibt....

    wenns WIRKLICH so kompatibel wäre... auch mit diskwechsel etc.... dann wäre mir das den hunni wert....

    denn wenn ich sehe wer sich alles ein RR+MMC kauft etc... sind zusammen auch 100 flocken!

    naja ich bin mal gespannt! da ich keine ahnung habe von AVR etc werde ichs weiter beobachten und hoffen!

  • Zitat

    Was währe denn wenn man hingeht, die Logik die hinter einer 1541 steckt in ein CPLD quetsch, sich bei WDC nen Stapel 6502 nachbauten ordert und an das ganze dann nen AVR als SD-Karte zu Diskemu, also das was Tixiv da mit einer zweiten 6502 (auf AFAIR 20 mhz) im FPGA macht, dranflanscht. Müsste man doch billiger wegkommen als wie mit nem FPGA. Dann haben wir zwar 5 Chips die aber insgesamt billiger kommen als wie so ein FPGA mit RAM und ROM.

    ich würde eher vermuten das das dann noch teurer würde :)

  • Zitat

    Original von Wan-Tu-Eit
    Natürlich muss man sich nicht auf einen Atmel beschränken, aber unsere Antwort bezog sich nunmal auf dieses konkrete Projekt und die vorgebrachten Wünsche daran und da war von einem ATMEGA32 die Rede und damit gehts nicht.

    Ah, okay, ich muss zugeben ich hatte die erste Seite des Threads nur überflogen, und diesen Punkt dabei nicht mitbekommen. Naja. Ich werde dazu trotzdem noch ein wenig weiter herumphantasieren (wenn auch erstmal nicht hier in diesem Thread..)

  • Zitat

    Original von Rapid Eraser
    Naja. Ich werde dazu trotzdem noch ein wenig weiter herumphantasieren (wenn auch erstmal nicht hier in diesem Thread..)


    Es ist Dir unbenommen - sagte ich ja schon - und das in welchem Thread auch immer. Ich wollte nur möglicher Verwirrung vorbeugen. Dass Threads immer beim (ursprünglichern) Thema bleiben, wäre ja auch unkreativ und letztlich unüblich (und langweilig sowieso ;)).

    Gruß WTE

    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.

  • Zitat

    Original von jackdaniels
    ich hab leider keine ahnung von der ganzen technik.... aber ich dachte mir schon das es nicht SO einfach sein kann, denn sonst wäre es schon längst von irgendwem umgesetzt worden!


    aber eins frage ich mich immer wieder bei sowas:

    es ist
    1. alte technik
    2. ist doch soweit alles bekannt oder nicht?

    wenn doch alles bekannt ist und wir neue möglichkeiten haben, warum bekommt man es nicht umgesetzt.... kann doch nicht sein, daß commodore da SO ein megateil gebaut hat was nie mehr zu erneuern ist oder etwa doch?

    Das Problem ist, das 1541 ist ein vollständiger Computer mit allem drumm und Drann, wie IRQs, Timings, RAM, ROM, usw.. Die 6502 Emulation halte ich noch für realisierbar auf einem Microcontroller (wozu die ATmega zählen), der Rest ist nicht (zusätzlich) zu 100% möglich.
    Ein FPGA kann natürlich alles sein, was man will. Hier sind keine Grenzen gesetzt. Nur die Programmierung eines FPGA ist sehr unkonfortabel und zeitaufwendig. Ebenfalls Problematisch ist der Hardwarepreis. Das billigste spartan3 Entwicklerboard kostet 120Euro! Selbermachen ? Pustekuchen ! Viel zu aufwendig.

    Ich versuche mal den Mega32 auszuloten. Meine Routinen zum für SD-Card + Display + 1541 Emulation belegen bisher keine 3kb ROM.

    Wie gehts bisher weiter? Ich stehe momentan vor einem Problem.
    Der C64 sendet bei einem load "$",8 ja folgende Bytefolge über den Bus:
    28 f0 24 3f 48 60 ...
    Bei mir kommt allerdings nicht das Byte 24 für "$". Also nur:
    28 f0 3f 48 60 ...
    Woran immer das liegen mag...

    Um den Fehler einzugrenzen muss ich leider warten bis ich mir an der FH einen logic-analyzer ausleihen kann.

  • 3kb? Willst Du direkt-Zugriff auf die SD-Karte machen, ohne FAT?
    Das ist nämlich der dickste Brocken bei MMC2IEC.

    Okay, nachdem ich ein wenig in den Eingeweiden von FAT gewühlt habe
    muss ich sagen, das sieht für mich auch ziemlich beknackt aus,
    vor allen Dingen der Support für lange Datei-Namen.

    Das Problem ist nur, wenn man ein anderes Datei-System benutzt,
    dann braucht man das auch möglichst als Open-Source
    mindestens für W$N und Linux.

  • Bitte melde dich an, um diesen Link zu sehen.

    Denke mal das es das ist was Ihr wohl haben wollt :roll:

    Also eine 1541 nur anstatt Disketten mit SD/MMC füttern, Fastloader kompatibel und auch für Nachladesysteme geeignet.

    :juhu:

  • Was mir ein wenig Sorgen macht: "full support of the Final Cartridge III" -> wurde da evtl doch keine echte 1541 Emulation implementiert, sondern nur einige verbreitete Fastloader unterstützt?

  • Ich finde das Projekt von Nebulus07 auf jeden Fall sehr interessant.
    Mangels technischem Sachverstand, kann ich nur hoffen, dass es ein Erfolg wird.
    Bei der Weiterentwicklung alles Gute und halt uns hier auf dem Laufenden!
    Gruß
    Jive

  • Zitat

    Was mir ein wenig Sorgen macht: "full support of the Final Cartridge III" -> wurde da evtl doch keine echte 1541 Emulation implementiert, sondern nur einige verbreitete Fastloader unterstützt?

    neee, das ding ist eine richtige 1541 emulation.... das mit dem FC3 bezieht sich auf die implementation des FC3 ansich.

  • Zitat

    Original von Crisp
    Bitte melde dich an, um diesen Link zu sehen.

    Denke mal das es das ist was Ihr wohl haben wollt :roll:

    Genau darauf warte ich ja schon sehnsüchtig. Das Teil ist in meinen Augen die einzige Emulation, die das Zeug dazu hat eine 1541 so exakt wie möglich nachzubilden. Wenn die Features, die dort beschrieben werden, alle so realisierbar sind und es in die Endfassung der Hardware schaffen, dann bin ich mal sowas von Spitz auf das Teil, das kann ich gar keinem sagen! :)

    Ex-Admin&Mod Forum64, Ex-Orga DoReCo
    Please check out my remixes at: Bitte melde dich an, um diesen Link zu sehen. and Bitte melde dich an, um diesen Link zu sehen. and leave a vote! Thx! :)

  • Jo, wir sehen Dich dann wild onanierend über den Hof laufen, ja? :roll2: