Hello, Guest the thread was called24k times and contains 162 replays

last post from ACDC at the

Eigenbau Speeder

  • Bei meinem C64 mußte ich damals den Kernel auslöten, dann kam ein Sockel rein mit einer Kernelumschaltplatine. In ein Eprom wurde dann der Original Kernel mit meinen Änderungen gebrannt. Beide Bausteine, also sowohl Original Kernel und Eprom kamen auf die Umschaltplatine, und ich konnte somit im C64 zwischen beiden um- und damit den Speeder abschalten ;).
    Für die Floppy habe ich einen extra Schalter vorgesehen mit dem man den Speeder hardwaremäßig deaktivieren kann (sieht man auch auf den Einbaufotos weiter oben).


    Die Kommunikation zwischen C64 und Floppy wird über das serielle Kabel initiiert, d.h. es gibt ein Protokoll für den seriellen Bus, dessen Beginn ich genau einhalte. Antwortet die Floppy nur über den seriellen Bus, bleibt die Kommunikation auf die serielle beschränkt, ansonsten wird auf die parallele ausgewichen - verständlich ist etwas anderes oder ;)?


    Es bedeutet einfach, auch wenn das parallele Kabel angesteckt ist, wird ein geringfügiger Teil der Kommunikation nach wie vor über die serielle Schnittstelle durchgeführt. Ist kein paralleles Kabel vorhanden, wird natürlich alles über die serielle Schnittstelle abgewickelt.

  • > ...dann kam ein Sockel rein mit einer Kernelumschaltplatine...und ich konnte
    > somit im C64 zwischen beiden um- und damit den Speeder abschalten ;).
    > Für die Floppy habe ich einen extra Schalter vorgesehen mit dem man den
    > Speeder hardwaremäßig deaktivieren kann
    D.h, man könnte sich für den C64 noch einen Schalter reinlöten, um deinen Speeder völlig zu deaktivieren - falls man doch mal die Datasette braucht ;-).


    > verständlich ist etwas anderes oder ;)?
    Ich finde du erklärst es gut, sobald man tiefer bohrt, gibst du ja detailiertere Antworten.


    Auf der Seite des C64 schein es mir jetzt erst mal soweit klar zu sein.


    In der Floppy hast du aber mehr als nur ein ROM ausgetauscht, wenn ich mir die Fotos betrachte, sieht das eher wie ein eigener Kleinstrechner aus.
    An welcher Schnittstelle hast du in der Floppy angesetzt?

  • In der Floppy wird am Prozessor angesetzt, d.h. Prozessor raus, auf meine Speederplatine raufstecken und die Speederplatine in den Prozessorsockel reingeben. Den Ansatz haben meines Wissens nach alle größeren Hardware Speeder verwendet (Prof.DOS, Dolphin DOS, Prologic DOS).


    Der Prozessorsockel ist der beste Ansatzpunkt wenn man viel abändern will.


  • Hm, klingt nach 'nem komplizierten Eingriff. Was machen denn die einzelnen Bauteile und wie arbeiten sie zusammen?
    (Wenn dir das zuviel wird sag bescheid)


    Zur Übersicht mal ein Plan der 1541:

    (Quelle: Das Große Floppybuch zur 1541
    Bilder werden hier anscheinend automatisch reduziert, die verlinkte Version ist etwas lesbarer.)

  • Das Schema ist so grob, daß sogar ich Schlaubischlumpf da nochmal Arbeit abnehmen kann.
    -Ein Bus ist sozusagen ein Bündel von Leitungen, an das recht beliebig irgendwelche Bausteine angeflanscht werden dürfen. Daten, die irgendjemand auf den Bus bringt, werden für alle anderen angeschlossenen Bausteine sichtbar.
    -Die Daten liegen tatsächlich an allen Bausteinen an, es soll aber immer nur einer gemeint sein. Ist beim C64 nicht anders, ein Read auf $d000 wird nicht nur vom VIC, sondern auch von den Roms, dem SID... bemerkt. Aus Sicht des Prozessors hat jeder Chip einen Adressbereich, aus Sicht des Chips gibt es da ein CS-(Chip select)-Leitung, die bei Bedarf aktiviert wird. Als Vermittler hängt daher am Bus noch ein MMU, wäre in deiner Zeichnung nützlich gewesen. Die würde einen Pfeil vom Adressbus bekommen und dazu einzelne Verbindungen zu allen anderen Chips ausser Prozessor am Bus.
    -Der Prozessor wird halt rausgelötet, weril dort alles Nützliche an Leitungen auf einmal verfügbar ist, weil der wegen der 2MHz sowieso ersetzt werden muß und weil es evtl. Notwendig sein kann, die alte MMU etwas auszutricksen. Dazu muß aber Retro was sagen.
    -Denke Dir rechts vom Prozessor eine gestrichelte Linie. Rechts der Linie ist Floppy, links ist die Erweiterung.
    -Zeichne in der FLoppy die alte MMU noch ein, das macht das logischer. Klemm die einfach an den Adressbus und mach Dir Linien zu den 4 Bausteinen.
    -Für den Erweiterungsteil werden die beiden Busse einfach verlängert, alle neuen Bausteine werden nach der Vorlage der alten an diesen verlängerten Bus geklemmt.
    -Die 3.VIA wird vermutlich für das Parallelkabel zuständig sein, ich denke, die spart weiteres rumgelöte im Floppy-Teil.


    So schön einfach ist das in der Theorie...

  • Ein paar Details von dem Speeder kann ich ja bekannt geben ;)


    hoogo hat schon allgemein beschrieben, was es mit einem Bus etc. auf sich hat. Nun im Detail zu meinen Bauteilen:


    4 TTL ICs
    Die sind einerseits verantwortlich zur Erzeugung des Prozessortaktes (1 und 2 MHz, über FlipFlops) und zur Adreßdekodierung auf dem Speeder selber (RAM, ROM, 3. VIA).


    VIA 6522
    Der eigene Portbaustein zur Übertragung, und ja hoogo, eine Überlegung war, daß man so wenig wie möglich Arbeit beim Einbau des Speeders hat.


    8kB RAM 6264
    Der zusätzliche Speicher für das Cachen aller Sektoren einer kompletten Spur.
    Der Adreßbereich geht von $8000 - $9fff.


    16kB (EP)ROM 27128
    Hier befinden sich meine neuen Floppy Routinen und teilweise die Original Kernel ROMs. Teilweise wegen der Funktionsweise meines MMU Bausteins.
    Die neuen Funktionen stehen ab Speicheradresse $a000 zur Verfügung, auch Teile des Original Floppy ROMs von $c000 - $ffff werden hier überblendet.


    MMU 2764
    Der MMU Baustein übernimmt das Aktivieren (setzen von ChipSelect Leitungen) der einzelnen Bausteine auf meiner Erweiterungsplatine aufgrund der aktuellen Adresse. Außerdem gibt er auch Scheinadressen an die Original Floppy Platine weiter, nämlich immer genau dann, wenn ein Baustein auf meiner Erweiterung angesprochen werden soll (diese Scheinadresse aktiviert keinen Baustein auf der Original Floppy).
    Der Speicher wird in 16 Byte Blöcken reorganisiert, d.h. ich kann in 16 Byte Schritten bestimmen, welcher Baustein eingeblendet wird. Damit "strecke" ich den 16kB Inhalt meines 27128er Eproms auf einen Datenbreich von 24kB ($a000 - $ffff). D.h. großteils ist bei eingeschaltenem Speeder noch immer der Originalcode in den Original ROMs der Floppy aktiv, nur bei den modifizierten Routinen wird mein 27128 Eprom durch diese MMU eingeblendet (aus Kostengründen habe ich damals nur einen 16kB Eprom verwendet, der durch diesen MMU Trick einen Bereich größer 16kB abdeckt).
    Meinen >35 Spur Betrieb habe ich z.Bsp. mit dem Trick hinbekommen, daß ich 16 Bytes meines RAMs an der ROM Adresse einblende, an der die max. Spurnummer steht (somit brauche ich nur die max. Spurnummer an diese Stelle zu schreiben und kann die Funktionen zum Spurhandling dem Original Floppy Code überlassen ;)).
    Außerdem übernimmt der MMU auch noch die automatische Taktumschaltung, d.h. aufgrund der Programmadresse läuft der Prozessor mit 1 oder 2 MHz (die 2 MHz sind nur im Adreßbereich von $8000 - $bfff aktiv).
    Und auch die hardwaremäßige Deaktivierung des Speeders erfolgt über diese MMU.


    Zur Beschaltung, bis auf den MMU werden die Speicher standardmäßig zusammengeschalten.
    Am MMU sind die Adreßleitungen von A4 - A15, die Datenleitungen bilden teilweise die neuen Adreßleitungen, die zurück in den Prozessorsockel führen bzw. die CS und Taktumschalt Leitungen für die eigenen Bausteine.


    (Wenn dir das zuviel wird sag bescheid) ;)

  • Also das mit der MMU klingt ziemlich irre, das schnall ich jetzt nicht so ganz :alien
    Also, der Adressbus läuft nicht einfach komplett über das ganze System (Floppy+Erweiterung). Die unteren x (9?)Bits schon, aber die oberen Bits müssen erstmal durch Deine MMU hindurch. Die MMU ist ein Eprom von 8K, das die oberen 12 Bit des Adressbusses auf Prozessorseite untersucht (daher die möglichkeit, alle 16 Bytes irgendwas anderes auszuwählen). 4K davon scheinen brach zu liegen? Mit den 8 Ausgängen steuerst Du nun
    -Fake-Adresse für den alten Rest des Adressbusses, wenn eines Deiner IC's angesprochen werden soll bzw. korrekte Adresse auf den alten Bus, wenn eines der alten ICs gemeint ist.
    -Die CS für Deine 3 Chips, bis hierhin also mindestens 2 Bit, wenn Du die nochmal exra decodierst.
    -1/2 MHz, wieder ein Ausgang verbraucht.
    Somit bleiben Dir höchstens 5 Bit, um an den Adressleitungen Deines ROMs herumzuspielen und ein paar Teile an anderen Adressen auftauchen zu lassen. Dein ROM hat 16K, also 14 Adressleitungen, max. 5 davon werden von der MMU gesetzt, blieben 9 Leitungen von der richtigen Adresse übrig...
    Wenn ich das also richtig folgere ist dein ROM in Blöcke von 512 Bytes zerlegt, die Du beliebig ab $a000 adressieren kannst, die dürfen auch mal doppelt auftauchen, und in Blöcken von 16 Bytes kannst Du die wiederum ein/ausschalten, um nur hier und da mal das Original-ROM auszublenden.


    Hm, irgendwas habe ich da wohl falsch verstanden... Denn dann wäre es ja gar nicht unbedingt nötig gewesen, das Ganze in 16Byte-Schritten zu untersuchen, gröbere Schritte und damit ein kleineres Eprom als MMU hättens auch getan?


    Ich glaub, da muß ich gleich mal eine Nacht drüber schlafen, das prügelt sich nicht leicht ins Hirn. :hammer:

  • Wer mal Lust hat den Sunrise Speeder selbst auszuprobieren, ist herzlich dazu eingeladen das auf dem Usertreffen in Waiblingen zu machen:


    Usertreffen in Waiblingen!


    Ich werde den Prototypen mitbringen, den mir Retro zum Testen geschickt hat. Wenn jeder seine Lieblingsdisks mitbringt, werden wir einen ziemlich guten Überblick über die momentane Leistungsfähigkeit bekommen. Ich bin mir sicher dass die allermeisten User nicht wissen, wie schnell eine 1541 so sein kann :D

    Zuletzt repariert:
    21.2. Logitech M570 Microschalter ausgetauscht - geplante Obsoleszenz durch Billigtaster?
    19.11. Toshiba 3,5" Floppy defekter Elko durch Kerko getauscht auf Motorplatine
    27.11. 1541B Dauerlauf, Elko im Resetschaltkreis defekt, nicht der 7406 wie zuerst verdächtigt!

  • Ein Bild sagt mehr als 1000 Worte, hier also der Ausschnitt meines MMU Bausteines vom Schaltplan.


    An A0-A11 des MMUs ist der obere Teil des Adreßbusses angeschlossen (A4-A15).
    An A12 hängt der Ein-/Ausschalter des Speeders (dadurch werden auch die zweiten 4k im Eprom verwendet hogoo).
    Die Datenleitungen D0-D4 bilden die neuen Adreßleitungen (A11-A15) und führen zurück in den Prozessorsockel der Floppy Platine.
    D5 ist der Selektor für 1/2 MHz.
    D6 und D7 führen in einen Multiplexer und wählen die drei Bausteine meiner Erweiterung aus (RAM, ROM, VIA oder keinen).


    Kommt etwas Licht in das Dunkel ;)?


    x1541
    Bin neugierig, welchen Eindruck ihr alle beim Usertreffen von dem Ding bekommt ;)

  • Jau, das schnall ich :)
    Und wenn ich dem Conrad-online-Shop trauen darf, dann gibt es keine kleineren Eproms als 2764 mehr, was mir auch die Differenz zwischen den 16-Byte-wählbar und den 512-Byte erklärt.
    In wiefern ist das eigentlich noch in Entwicklung? Du hattest irgendwo geschrieben, daß Du das "früher" sowiet gebracht hattest, aber andererseits würdest Du es wiederum gerne umkonstruieren, um die VIA einzusparen...
    Hast Du eigentlich mal dran gedacht, 256KB RAM einzubauen und mit freien Ausgängen der VIA (oder irgendwas anderem) anzusteuern?

  • Der Speeder in der jetzigen Ausführung ist schon im Zeitraum von ca. 1988 bis 1991 entstanden, allerdings war er nur in Fädeltechnik vorhanden. Die Platine (wie in meinem Logo) gibt es erst seit wenigen Wochen.


    Eine Weiterentwicklung wäre natürlich sehr interessant, vor allem auch in Richtung zusätzlichem Speicher und noch einigen anderen Dingen.


    Zur Zeit versuche ich aber den Speeder noch verträglicher zu machen, und nach meiner jetzigen Erkenntnis dürfte der MMU Baustein sogar entfallen.

  • Hi.


    Ich bin sozusagen fangfrisch hier im Board.


    Vor einigen Wochen habe ich mein C64-Zeugs (mann, hat sich da was angesammelt) mal wieder ausgepackt und zu meiner großen Freude hat noch alles soweit gefunzt.


    Allerdings geht mir die Laderei ohne Speeder auf den Zünder. Früher hatte ich mal nen C64 mit SpeedDos...das war ne feine Sache.


    Jetzt stoße ich hier auf deinen Thread zum Thema Eigenbau-Speeder.


    Ich wollte mal anfragen, wie weit das Projekt gediehen ist und wie es mit der Kompatibilität aussieht.
    Außerdem wüsste ich gerne, was ich für so ein Teil anlegen muss und ob der Einbau ein Problem ist.


    Also generell habe ich großes Interesse daran.


    Ciao
    Luigi

  • @Luigi
    Ich werde das Projekt neu anrollen lassen, d.h. die Hardware modernisieren. Die Bauteile von damals (EPROMS) werde ich wohl durch neue FlashROMs ersetzen und auch andere RAMs verwenden. Nach meiner jetzigen Vorstellung könnte ich auch den eigenen VIA weglassen und den SpeedDOS kompatiblen Port verwenden. Vielleicht gelingt es auch den Speeder zugleich kompatibel zur 1541-II zu bauen, damit man nicht nur auf die alte 1541-I beschränkt ist.


    Vom Speeder in der alten Form existieren drei Prototypen, wobei tischuer und x1541 schon Gelegenheit hatten, ihn zu testen. Laut Tim funktionieren auf dem Speeder mehr Programme als auf SpeedDOS, für meinen Geschmack damals war er auch ausreichend kompatibel ;).


    In dieser Variante werde ich ihn also nicht weitergeben, d.h. es wird bei den drei Prototypen bleiben. Wann die modernisierte Variante mal verfügbar sein wird kann ich leider nicht abschätzen, genauso wenig wie einen möglichen Preis.

  • Ich werde das Projekt neu anrollen lassen, d.h. die Hardware modernisieren. Die Bauteile von damals (EPROMS) werde ich wohl durch neue FlashROMs ersetzen und auch andere RAMs verwenden. Nach meiner jetzigen Vorstellung könnte ich auch den eigenen VIA weglassen und den SpeedDOS kompatiblen Port verwenden. Vielleicht gelingt es auch den Speeder zugleich kompatibel zur 1541-II zu bauen, damit man nicht nur auf die alte 1541-I beschränkt ist.


    Vom Speeder in der alten Form existieren drei Prototypen, wobei tischuer und x1541 schon Gelegenheit hatten, ihn zu testen. Laut Tim funktionieren auf dem Speeder mehr Programme als auf SpeedDOS, für meinen Geschmack damals war er auch ausreichend kompatibel ;).


    In dieser Variante werde ich ihn also nicht weitergeben, d.h. es wird bei den drei Prototypen bleiben. Wann die modernisierte Variante mal verfügbar sein wird kann ich leider nicht abschätzen, genauso wenig wie einen möglichen Preis.


    Sorry dass ich den alten Thread ausgrabe. Aber da Retro erst vor zwei Monaten noch da im Forum war, besteht die Hoffnung dass er da mitliest.


    Mich interessiert, ob es inzwischen zu einer modernisierten Hardware gekommen ist? Wenn nein, ob man Retro dafür motivieren kann? Ich wäre sehr interessiert an so einem tollen Speeder!!

  • So ein Zufall. Ich hab' tatsächlich vor einigen Wochen mal wieder hier hereingeschaut und auch heute wieder, dürfte damit vermutlich auf ca. 2 Besuche in den letzten 12 Monaten gekommen sein :roll:.


    Als ich hier einen Thread mit Eigenbau Speeder ganz vorne gereiht sah, dachte ich, "hey da probiert anscheinend noch jemand selber einen Speeder zu basteln". War dann erstaunt, daß es sich doch tatsächlich um meinen alten Beitrag handelt:@1@:.


    Zum Status - leider gibt es nicht wirklich einen. D.h. ich hatte und habe zwar ein paar Ideen und sie auch manchmal für ein paar Stunden verfolgt, aber wirklich entstanden ist daraus bisher noch nichts. Dem Speeder Fortschritt nicht gerade fördernd kommt noch hinzu, daß ich mich nebenbei auch noch mit einem anderen Projekt beschäftige, bei dem es allerdings nur um reines Codieren geht.


    Meine letzte Hardware Entwicklung ist nun auch schon wieder über 1 Jahr zurück, was die Lust nach dem Lötkolben zwar "anheizt", aber mehrere Projekte parallel zu machen ist eigentlich nicht so ganz in meinem Sinn.


    Die Absicht ist also nach wie vor vorhanden, nur wann sie in die Tat umgesetzt wird, kann ich noch nicht sagen.


    Manchmal geschieht es jedoch, daß ich eine zündende Idee bekomme und dann einfach von heut' auf morgen loslege :D.

  • Ich dachte als "Verbesserung" vielleicht an einen GAL oder CPLD statt der TTL Chips. Vielleicht kann man den CPLD auch überreden beim GCR encoding/decoding zu assistieren? Reiner Bitshift wäre ja sowieso kein Thema, aber im Grunde müsste es auch gehen dass der CPLD alles alleine macht ...

  • Wobei die GCR De-/Codierung schon im alten Speeder rein durch Software gelöst wurde. Die TTLs hatten nur Steuerlogik Aufgaben.


    Kurz ein paar Ideen, die ich zum neuen Speeder hatte:


    • Flash Speicher anstelle von Eproms, Updatemöglichkeit des Systems in eingebautem Zustand (Diskette mit neuem System in's Laufwerk schieben und ein Update Programm anwerfen)
    • 256k RAM für's Cachen einer ganzen Diskettenseite, bzw. aufgrund Verfügbarkeit und Preis eher 512k
    • Original 6502 Prozessor bleibt erhalten und wird weiterhin mit 1 MHz betrieben (wollte hier zuerst eine andere schnellere Variante einsetzen, aber aufgrund der Kompatibilität laß ich den lieber)
    • Und nun der Booster - eine HC08 Controller Variante als Coprozessor für die rechenintensiven Aufgaben (40MHz, 16k Flash um ca. 2 - 3 EUR). Nur dieser hat Zugriff auf das 512k RAM, ein paar Ports sollen als Interface zum 6502 herhalten, wie ich jedoch dessen Flash in eingebautem Zustand aktualisiere ist noch die Frage (der allererste Flashvorgang ist eine Herausforderung, möchte den HC08 nicht vor dem Einlöten programmieren müssen)
    • Der Datentransfer von Floppy zum Rechner wird ebenfalls über den HC08 erledigt (erfolgt während der 6502 die Spuren einliest, dadurch kontinuierlicher Einlesevorgang ohne Pausen für die Datenübertragung)
    • Da mich das Flachbandkabel stört (und die Fertigung desselben) - Ethernet Patchkabel als Datenleitungen, zur Übertragung wird die SPI/SCI Schnittstelle des HC08 genutzt (seriell 3 bzw. 2 Draht, dann reichen auch die 8 Leitungen des Ethernetkabels), das alte serielle Kabel bleibt natürlich vorhanden
    • Anschluß am C64 am Expansion Port mit eigener Platine, ist auch unbedingt notwendig durch die serielle Übertragung
    • Ein GAL als Steuerlogik für den alten Steuerbus der 1541