Universeller 1541 Floppyspeeder mit NVRAM / RAM/ROM in einem

Es gibt 125 Antworten in diesem Thema, welches 23.776 mal aufgerufen wurde. Der letzte Beitrag (28. Dezember 2024 um 11:01) ist von Rob64.

  • Welchen Vorteil hätte ein FPGA gegenüber einem "echten" 6502? Als SMD gäbe es die WDCs ja auch. Und der Stiftverbinder zur Floppyplatine nach unten blebt ja allemal.

    Die WDC CPU funktionieren im Prinzip. Jedoch nur sobald keine Beschleuniger oder Fastloader z.B. in Spielen genutzt werden. Die nutzen sehr oft Illegale OpCodes und die können die WDCs nicht. Dann crashed das System. Bedeutet sehr viel an Software läuft nicht. Das wäre mit FPGA möglich.

  • Just switch the ROM with a command like @:1:ROMBANK or @2:ROMBANK. That would be cool.

    dass man die ROM-Bänke per DOS-BEFEHL vom Computer aus umschalten kann

    Ich bin eher Schaltertyp, so bin ich unabhängig vom c64 wenn ich per 1541/XUM/opencbm über PC arbeite. Kann mir entspr.. DOS/Speeder einstellen.

    Was übrigens wunderbar mit deinem Speeder funktioniert.

    Das solltest du vll. bedenken.

    Manuals/ Software- und ROM-Sammlung/ Modding Projekte/ WEB-Links uvm.
    KLICK -> Bitte melde dich an, um diesen Link zu sehen.
    StartSET->BINs/ Kernals zusammenstellen, HW+SW, Gerbers, Links, Guides
    KLICK -> Bitte melde dich an, um diesen Link zu sehen.

    Einmal editiert, zuletzt von Rob64 (20. Juni 2024 um 08:06)

  • OK, it's all great, but you have to solve the progamming the rom's when they are onboard, soldered ....

    It should be able to move/remove/add another rom when all is soldered ...

    Via some pin headers or similar ....

  • Via some pin headers or similar ....

    indeed, that would be better

    Manuals/ Software- und ROM-Sammlung/ Modding Projekte/ WEB-Links uvm.
    KLICK -> Bitte melde dich an, um diesen Link zu sehen.
    StartSET->BINs/ Kernals zusammenstellen, HW+SW, Gerbers, Links, Guides
    KLICK -> Bitte melde dich an, um diesen Link zu sehen.

  • OK, it's all great, but you have to solve the progamming the rom's when they are onboard, soldered ....

    It should be able to move/remove/add another rom when all is soldered ...

    Via some pin headers or similar ....

    That's a good idea. I could try using a parallel flash eprom to flash it with a program from the computer via the floppy itself. I'm thinking of replacing the ATF16V6 with an ATMEGA microcontroller. Then something like this would be conceivable. Or to write to the flash ROM via USB and microcontroller. Without an eprommer.

  • Welchen Vorteil hätte ein FPGA gegenüber einem "echten" 6502? Als SMD gäbe es die WDCs ja auch. Und der Stiftverbinder zur Floppyplatine nach unten blebt ja allemal.

    Die WDC CPU funktionieren im Prinzip. Jedoch nur sobald keine Beschleuniger oder Fastloader z.B. in Spielen genutzt werden. Die nutzen sehr oft Illegale OpCodes und die können die WDCs nicht. Dann crashed das System. Bedeutet sehr viel an Software läuft nicht. Das wäre mit FPGA möglich.

    Ich fürchte das ist eher eine Annahme als ein Fakt, man müsste mal austesten wieviel es wirklich sind.

    Allerdings hast du geschrieben "ATMEGA328 FPGA" was mich zweifeln lässt ob du eine Idee hast wovon du redest.

    Der ATMEGA ist kein FPGA sondern ein Microkontroller und gerade eine Floppy in der es auf exaktes Timing ankommt ist wohl eher nicht der Platz wo ich eine Softwareemulation eines Prozessors einsetzen würde.
    Ein RP pico mit den PIO Einheiten wäre da schon eine bessere Wahl oder halt ein FPGA. FPGAs haben aber das Problem das es sie nur in 3.3V oder weniger gibt und diese Levelshifter benötigen.
    Eine NMOS 6502 CPU mit 2, 3 oder 4 MHz aufzutreiben solle noch kein großes Problem sein.

    Ich denke eher, das es hier um eine Handvoll Spiele und evtl. ein zwei Demos geht die nicht mit einer CMOS CPU in der Floppy(!) laufen daher ist es wirklich fraglich ob der Aufwand Sinn macht oder ob man nicht für diese Handvoll Spiele eine gepatchte Version benutzt.
    Ein RP Pico benötigt auch Levelshifter und könnte genau wie ein FPGA CPU, RAM und ROM ersetzen.

  • Den ATMEGA möchte ich als Microcontroller für das RAM/ROM Adressenlogic nutzen. Für eine Gute CPU Emulation ist schon was anderes nötig. Einen WDC 65C02 habe ich schon ausprobiert. Macht wirklich keinen Spass. DolphinDos nutzt z.B. für das GCR Decoding Illegale OpCodes. Jiffy-Dos lief auch nicht. SpeedDos hakte auch irgendwo. Also kein so gutes Ergebnis. Das CBMDOS selbst scheint stabil zu laufen. Aber sobald ein Softwarespeeder im Spiel ist, ging es nicht mehr. Weiss jemand wie die das beim Ultimate II+ mit der Floppy Emulation machen? Vg

  • Grundsätzlich sollte doch immer die 100% Kompatibilität angestrebt werden wann immer möglich, daher finde ich es super, daß ytom72 das auch so sieht.

    Bezüglich ultimate ii+, schreib doch guideon mal an, ich meine er ist anderen entwicklern gegenüber sehr hilfsbereit.

    Thema SMD...auf jeden Fall :thumbup:

    Code
    Or to write to the flash ROM via USB and microcontroller. Without an eprommer.

    :thumbup:

  • Das ist merkwürdig. Ich habe Speeddos und DD2 mit Rockwell 65C02 problemlos am laufen.

    Ja, das ist ja auch nicht die WDC 65C02 CPU die noch hergestellt wird. Die Rockwell 6502 werden auch nicht mehr hergestellt und die Firma gibt es auch so nicht mehr. Die Rockwell 6502 wurden in Lizenz von CSG/MOS ergestellt.

  • Die R6502 sind identisch mit den MOS 6502. Die R65C02 gehören zur neueren Generation mit erweitertem Befehlssatz. Und halt ohne die illegal Ops. Dennoch funktionieren Speeddos und DD2.

    In meinen 128DCR muss ich nochmals hineinschauen: Dort ist ein JD verbaut, und wohl auch dort ein R65C02. Stichwort ICE AGE für CBM. Und mindestens CP/M lief problemlos. 128er Programme habe ich nicht.

  • Die R6502 sind identisch mit den MOS 6502. Die R65C02 gehören zur neueren Generation mit erweitertem Befehlssatz. Und halt ohne die illegal Ops. Dennoch funktionieren Speeddos und DD2.

    In meinen 128DCR muss ich nochmals hineinschauen: Dort ist ein JD verbaut, und wohl auch dort ein R65C02. Stichwort ICE AGE für CBM. Und mindestens CP/M lief problemlos. 128er Programme habe ich nicht.

    im Prinzip läuft die 1541 mit einer WDC65C02 CPU. Aber die Spiele oder Programme die Fastloader nutzen und dann auch auf Illegale Opcodes zurück greifen, werden dann mit Speeddos auch nicht mehr laufen.

    Ich habe heute mal die J-CPU64 (FPGA) mit einer eigenen Adapterplatine in eine 1541 gebaut. Und siehe da, es funktioniert. Aber nur grundsätzlich :smile: Die J-CPU64 ist ja ein 6510 CPU Replacement für den C64. Diese CPU hat sechs I/O Ports, die über die Speicherstellen $0000 und $0001 in der Zeropage angesprochen werden. Diese werden im C64 für das RAM/ROM Banking genutzt. Die 1541 braucht das nicht, jedoch nutzt das CBMDOS Kernal diese Speicherstellen $0000 und $0001 als Index, um die Jobroutinen für die Laufwerksteuerung zu steuern.

    Ich habe den Entwicker von J-CPU angeschrieben, ob er mir eine Firmware machen kann, wo diese IO-Funktion der 6510 CPU abgeschaltet werden kann. Dann müsste ein vollwertiger 100% kompatibler CPU Ersatz für die 1541 möglich sein. :-)))

  • Jaja, die völlig überschötzten Illegals in der Floppy. Habe keine Programme, die etws derartige machen. Fort Apo, Loadrunner und WStein laufen ohne :smile:

  • Die R6502 sind identisch mit den MOS 6502. Die R65C02 gehören zur neueren Generation mit erweitertem Befehlssatz. Und halt ohne die illegal Ops. Dennoch funktionieren Speeddos und DD2.

    In meinen 128DCR muss ich nochmals hineinschauen: Dort ist ein JD verbaut, und wohl auch dort ein R65C02. Stichwort ICE AGE für CBM. Und mindestens CP/M lief problemlos. 128er Programme habe ich nicht.

    im Prinzip läuft die 1541 mit einer WDC65C02 CPU. Aber die Spiele oder Programme die Fastloader nutzen und dann auch auf Illegale Opcodes zurück greifen, werden dann mit Speeddos auch nicht mehr laufen.

    Ich habe heute mal die J-CPU64 (FPGA) mit einer eigenen Adapterplatine in eine 1541 gebaut. Und siehe da, es funktioniert. Aber nur grundsätzlich :smile: Die J-CPU64 ist ja ein 6510 CPU Replacement für den C64. Diese CPU hat sechs I/O Ports, die über die Speicherstellen $0000 und $0001 in der Zeropage angesprochen werden. Diese werden im C64 für das RAM/ROM Banking genutzt. Die 1541 braucht das nicht, jedoch nutzt das CBMDOS Kernal diese Speicherstellen $0000 und $0001 als Index, um die Jobroutinen für die Laufwerksteuerung zu steuern.

    Ich habe den Entwicker von J-CPU angeschrieben, ob er mir eine Firmware machen kann, wo diese IO-Funktion der 6510 CPU abgeschaltet werden kann. Dann müsste ein vollwertiger 100% kompatibler CPU Ersatz für die 1541 möglich sein. :-)))

    Ja, und die Platine in der die J-CPU steckt kann auch gleich mit weg, so lange noch genug BlockRAM zur Verfügung steht.

  • Ein 6510 funktioniert in einer 1541 nicht, weil die 6510 keinen S0-Pin haben. Bitte melde dich an, um diesen Link zu sehen.

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

  • Ein 6510 funktioniert in einer 1541 nicht, weil die 6510 keinen S0-Pin haben. Bitte melde dich an, um diesen Link zu sehen.

    Soweit ich ytom72 verstanden habe meinte eher das er den Fehlerkanal auslesen konnte nicht das er von der Floppy lesen konnte.
    Ich bin eigentlich recht optimistisch das man ytom72s Erweiterung direkt in die J-CPU Firmware aufnehmen kann so das ytom72s Platine überflüssig ist.

  • Ein 6510 funktioniert in einer 1541 nicht, weil die 6510 keinen S0-Pin haben. Bitte melde dich an, um diesen Link zu sehen.

    Soweit ich ytom72 verstanden habe meinte eher das er den Fehlerkanal auslesen konnte nicht das er von der Floppy lesen konnte.
    Ich bin eigentlich recht optimistisch das man ytom72s Erweiterung direkt in die J-CPU Firmware aufnehmen kann so das ytom72s Platine überflüssig ist.

    Ja, das wäre die optimale Lösung. Meine Platine macht die J-CPU ja nur soweit möglich PIN Kompatibel und ist rein passiv. Wichtig wäre für den ersten Schritt nur, dass die Speicherzellen $0000 und $0001 nicht als IO Ports geschaltet sind. Das bringt die Jobverarbeitung des Diskcontroller aus dem Takt, da das CBM DOS diese Bereiche als Index für die Jobverarbeitung nutzt.

  • Ein 6510 funktioniert in einer 1541 nicht, weil die 6510 keinen S0-Pin haben. Bitte melde dich an, um diesen Link zu sehen.

    Meine 1541 funktioniert auch ohne S0 PIN. Das ist ja noch ein Relikt aus den Anfängen der CPU. Das war noch wegen der komp. der konkurrierenden Motorola 6800 CPU und der damaligen ersten 6501 CPU. In den großen CBM Laufwerken soll S0 noch eine Rolle gespielt haben, da diese zwei CPUs hatten (DOS und Mechaniksteuerung).

    Was würde den ohne S0 nicht funktionieren? Habe es ohne S0 getestet und keine Probleme festgestellt. Auch mit Speeder.

  • Schau doch in den Wiki-Artikel und in den dort verlinkten Code. Ein F4D4: 50 FE BVC $F4D4 ; byte ready? wird ohne S0 kaum funktionieren.

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

  • Was würde den ohne S0 nicht funktionieren? Habe es ohne S0 getestet und keine Probleme festgestellt. Auch mit Speeder.

    Wie 1570 schreibt, die 2031 und 154x nutzen sogar sehr häufig den S.O. Pin.

    Damit erkennt die CPU beim Lesen, dass gerade ein Byte vom DC geholt wurde und ausgelesen werden kann, bzw. beim Schreiben, dass sie das nächste Byte zur Verfügung stellen muss. Ohne S.O. geht da gar nichts.

    Erst die 157x verzichtet aus den S.O.-Pin und macht es über die VIA, allerdings auch erst im 2-MHz-Modus (!) . Im 1-MHz-Modus bleibt alles wie von der 154x bekannt.

    Ich glaube dir, dass die Floppy ohne S.O. funktioniert, solange du nicht versuchst, die Diskette tatsächlich zu nutzen. Aber: Wer macht das denn schon mit einem Floppy-Laufwerk? :D Dann jedenfalls wird es kläglich scheitern.