TurboTrans+ / Turbo Access

Es gibt 92 Antworten in diesem Thema, welches 21.235 mal aufgerufen wurde. Der letzte Beitrag (23. November 2013 um 22:02) ist von aesi.

  • Die DA7 (des DRAM) wird nur von A8 und A9 der CPU versorgt, soweit klar. Nur wird einmal die Phi1 und einmal die Phi2 Phase verwendet?!

    Ich verstehe schon, dass dadurch einmal die Zeile (RAS) und einmal die Spalte (CAS) adressiert wird. Nur dachte ich eigentlich immer, dass in der Phi2 Phase die Adressen der 6502 ungültig sind?? Bzw. eigentlich sogart der Bus frei ist, weil in der 8050 greigen ja die CPUs abwechselnd auf RAM zu?

    6502 != 6510.
    Der 6502 hat seine Adressen immer "enabled", deswegen ist in den doppel-Prozessormaschinen von Commodore auch immer ein Multiplexer oder 3-state Treiber zwischen der CPU und dem eigentlichen Bus. Der 6502 für sich gesehen geht aber etwas gemütlicher zur Sache: Währens Phi2=low ändern sich irgendwann die Adressen und werden "irgendwo in der Mitte" des Halbzyklus gültig. Sie bleiben auch gültig über den gesamten kommenden Halbzyklus, den Du als "gültig" z.B. vom C64 kennst. Die Verzögerungsschaltung generiert also ein Clock-Signal, dessen Flanke irgendwo in phi2=low liegt, aber schon im Gültigkeitsfenster der Adressen liegt (so hofft man - wie gesagt, Rotznasenstyle!). Dort irgendwo wird RAS low gezogen und später wird die CAS-Adresse angelegt. Noch später (ja, man muss wirklich warten, das kapieren Viele nicht) wird dann CAS gezogen. Oder eben nicht, denn das kann man auch als die "Select-Leitung" sehen.

    Jetzt der Refresh-Trick: Da die RAS-Adresse immer angelegt wird und auch immer RAS gezogen wird, braucht man evtl. gar keine Refresh-Routine, solange die CPU immer eine ganze Page innerhalb von 4ms abspult. Und wenn's mal 5 oder 6ms werden, tut das auch nicht weh, denn die Rams aus der Zeit sind schon sehr genügsam. Die verlieren die Daten erst so schnell, wenn sie wirklich warm werden, aber bei Zimmertemperatur halten sie die Daten auch mal über 100ms.

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Also wäre vermutlich ein

    Code
    SEI
    loop:
      JMP loop


    der Tod der DRAM Daten, zumindest nach einer bestimmten Zeit.


    Hm, das könnte ich testen wenn ich erst mal die Platine habe ...

    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.

  • Yep, das müsste nach ner Zeit dazu führen, dass große Teile des Speichers auf ihren Normalwert kippen, also ein charakteristisches 00/FF-Muster bilden (merke: Rams werten unterschiedliche Zellen unterschiedlich aus, mal ist "Ladung enthalten" ne 1, mal ne 0).

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Ich halte das Vorgehen für Unfug bei einer 1541 Hardware. Es gibt schon Speeder die SEI machen und dann auf den c64 warten ...

    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.

  • Ich halte das Vorgehen für Unfug bei einer 1541 Hardware. Es gibt schon Speeder die SEI machen und dann auf den c64 warten ...


    Gut im Grunde wäre es egal ...

    ... man müsste nur nach einem "M-E" oder "Ux" den Speicher für ungültig erklären. Muss man ja sowieso, weil man ja nicht weiss was die User Routine gemacht hat!

    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.

  • Ich habe noch eine Turbo-Trans-Floppy da. Reversen ist eine gute Idee !

    Ich könnte am Wochenende nachmessen oder testen.

    Müsste die Version 3.0 (Platine) sein. Firmware ist im Moment V3.1 mit 512kB RAM.

    Bitte melde dich an, um diesen Link zu sehen.

    Diddl: ich könnte Dir die auch leihen. Steht sowieso nur rum. Muss nur das Cartridge wiederfinden und die Funktion testen. War schon ewig nicht mehr in Betrieb.
    Zum richtigen Betrieb muss beim C64 das /CS fürs Kernal zum Cartridge geführt werden. Und iirc eine Leitung zurück zum Kernal /CS damit der Umschalter richtig funktionieren kann.

    Btw. : anhand des Schaltplans müsste man den PAL doch mit Signalen beschalten und zumindest schon mal die dazu passenden Pegel aufzeichnen können ?

    If we're evil or divine - we're the last in line. - Ronnie James Dio (1984) -
    Bitte melde dich an, um diesen Link zu sehen. | Bitte melde dich an, um diesen Link zu sehen. |

  • Diddl: ich könnte Dir die auch leihen.


    Vielen Dank, ein sehr freundliches Angebot. Aber Ich sollte die nächsten Tage ein TT von Semperfi2010 bekommen. Sonst hätte ich sehr gerne dein Angebot angenommen.

    Aber so können wir vielleicht gemeinsam was rausfinden. Mit Hardware habe ich es leider nicht so.


    Btw. : anhand des Schaltplans müsste man den PAL doch mit Signalen beschalten und zumindest schon mal die dazu passenden Pegel aufzeichnen können ?


    Ich habe auch schon mit dem Gedanken gespielt, den PAL mit Hilfe eines Mega 644 zu analysieren.

    Bzw. könnte man natürlich auch ganz einfach die 6502 durch einen 644er ersetzen: Einfach R/W, Phi2, A0 - A15 und D0 bis D7 an die Ports des Mega legen.

    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.

  • Bzw. könnte man natürlich auch ganz einfach die 6502 durch einen 644er ersetzen: Einfach R/W, Phi2, A0 - A15 und D0 bis D7 an die Ports des Mega legen.

    Das ist FAIL. TurboTrans wird nur bei genau eins-komma-null-null-null-null MHz und Zimmertemperatur funktionieren. Wenn Du irgendwie davon abweichst, fällt das Kartenhaus zusammen. Messungen machen ausschließlich in der "Heimatumgebung" Sinn. Mein Vorschlag von gestern, das Teil an einen VC20 zu klemmen wird ebensowenig funktionieren.

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Gut, aber man könnte damit doch wenigstens die PAL Funktionalität testen? Also die CS und Adressleitungen für Eprom und statisches RAM? Und eventuell RAS und CAS?

    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.

  • Gut, aber man könnte damit doch wenigstens die PAL Funktionalität testen? Also die CS und Adressleitungen für Eprom und statisches RAM? Und eventuell RAS und CAS?

    Dafür würde ich das PAL in eine kontrollierte Testumgebung holen. Zwei der acht Ausgänge sind kombinatorisch und haben programmierbare Tristate-Terme (jeweils nur ein Produktterm). Allein für die würde ich erstmal ne kleine OpAmp-Schaltung bauen, die einen High-Z Zustand erkennt.

    Dann hast Du noch das Problem, dass die sechs registered-Ausgänge wieder Feedback in den Rest der Logik haben. Dieses Feedback kann Dir beim Reversen immer das Genick brechen, denn es kann unter Umständen sehr lange dauern, bis Du alle 64 möglichen Zustände der Outputs forcieren kannst. Damit nicht genug: Die kombinatorischen Ausgänge könnten auch als RS-Flipflops programmiert werden. Wenn dem so ist, hast Du sogar 256 statische Zustände.

    Mit ein bischen Logik und Sachverstand müsste das aber zu knacken sein. Blockdiagramm des 16R6 im Anhang.

    Jens

  • Ähemm.. grad nochmal den Schaltplan angeguckt: Also das mit der Op-Amp Schaltung für tri-state Terme können wir uns sparen, denn die zwei kombinatorischen Outputs sind die zwei CAS-Leitungen. Damit sind schonmal ne Menge Dinge klar:

    - Die Pins 12 und 19 sind immer output und gehen sinnvollerweise nie hochohmig.
    - Die Outputs 13 bis Pin 18 sind auch immer niederohmig, da Pin 11 auf GND liegt
    - die einzigen Input-Werte sind Adressen, R/W und zwei Takte
    - Ein fest liegender, zum Phi2 leicht verschobener Takt wird für die sechs Flipflops verwendet (Pin 1)
    - ein schwer driftender Takt, dessen Lage aus dem Schaltplan nicht erkennbar ist (Wert von C1 nicht bekannt) wird für die Zugriffserkennung benutzt. Ein Hinweis darauf ist die Verdrahtung zum '590, welcher auch mit diesem Takt gefüttert wird. Es würde mich nicht wundern, wenn dieser Takt dem eigentlichen Phi2 *vor*läuft (also ca. 330 bis 350 Grad nach hinten verschoben ist), denn dann kann man recht sauber einen Schreibzugriff vor Ende des Gültigkeitsfensters beenden - somit dürften die zwei kombinatorischen Outputs wirklich RS-Flipflops sein.

    Weiter vermute ich, dass es nicht ein, sondern zwei 2k-Fenster gibt, in denen der Speicher sichtbar ist. Ein Fenster für die untere 256K-Bank und ein weiteres Fenster für die obere Bank. Wie gestern schon geschrieben, muss es innerhalb dieses Fensters eine Spiegelung geben, so dass sich im Speicher dieses Muster ergibt:

    1a
    1b
    2a
    2b

    1a und 1b sind identisch, 2a und 2b sind auch identisch. Dadurch ergibt sich der Nebeneffekt, dass man bei linearem Zugriff auf 1b und 2a ein kontinuierliches 2k-Fenster hat. Das ist aber wilde Spekulation und lässt sich ohne logic analyzer nicht belegen. Da TurboTrans auch mit nur 256K ausgeliefert wurde, wird die Software wohl kaum von einer solchen Anordnung Gebrauch gemacht haben, denn sie funktioniert nur im Vollausbau.

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Wiesel, ich bin immer wieder fasziniert von deinen umfassenden Hardwarekenntnissen und deinem messerscharfen Verstand. Es ist mir unbegreiflich, wie du aus einem Schaltplan das alles erkennen und analysieren kannst!


    2 x 2K würden auch gut in mein Konzept passen, wenn der DRAM im unteren Speicherbereich liegt (unter $8000). Commodore hat den unteren Speicherbereich ja leider nur unzureichend dekodiert, sodass sich dummerweise die ersten 8K viermal spiegeln.

    Aber 2 x 2 K wären ja gerade frei von $800 bis $FFF und von $1000 bis $17FF.

    Ich muss dringend den Code finden wo der DRAM angesprochen wird.

    Blödes Wetter, da hat meine bessere Hälfte null Verständnis für meinen Wissensdurst. :encolere20:

    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.

  • Mal langsam mit "messerscharf" - bloß weil's grad gut passt muss das noch nicht heissen, dass das richtig ist. Auf die zwei getrennten Bereiche für die zwei Bänke bin ich gekommen weil ich mir überlegt habe, wie man Makrozellen bzw. IO-Pins sparen könnte. Das ist ne Standard-Überlegung, wenn man ein PLD-Design macht, denn IO-Pins sind *immer* Mangelware.

    Es kann aber trotzdem falsch sein, denn da sind zwei unbeschaltete Pins am PAL, die irgendeinen Zustand speichern könnten. Wenn wir Pech haben, gibt es eine Init-Sequenz, mit der man das erweiterte Rom und die Ram-Bänke freischalten muss. Und wenn wir Glück haben, sind die Pins überhaupt nicht benutzt. Die Antwort bekommen wir nur per logic analyzer.

    Ich würde mich aber freuen, wenn sich noch jemand an der Aktion hier beteiligen würde und den Schaltplan des Expansionsport-Moduls zeichnet. Außerdem fehlt uns noch die Belegung des Parallelkabels.

    Und was das Wetter angeht: Turbo Trans ist schon einige Jahre alt (sind's schon 20?), da kommt's auf ein paar Wochen auch nicht mehr an. Ich habe auch immer nur minutenweise Zeit, mich in die Schaltung einzudenken - immer wenn der design rule check über das Nequester-Design läuft.

    Übrigens würde ich es als echte Herausforderung sehen, einen Nachbau *nicht* mit S-Ram zu bauen, sondern auch mit D-Ram - und zwar mit vier Stück 1Mx1. Vernünftigen Refresh einbauen und per double-CAS aus vier Bits acht machen.

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • Es kann aber trotzdem falsch sein, denn da sind zwei unbeschaltete Pins am PAL, die irgendeinen Zustand speichern könnten. Wenn wir Pech haben, gibt es eine Init-Sequenz, mit der man das erweiterte Rom und die Ram-Bänke freischalten muss. Und wenn wir Glück haben, sind die Pins überhaupt nicht benutzt. Die Antwort bekommen wir nur per logic analyzer.


    Oder durch Analyse der Firmware.

    Ich habe eine JMP Table gefunden die im Eprom ab $8000 liegen muss. So 20 Funktionen werden da angesprungen.

    Ich habe auch viele Stellen gefunden wo die JMP Table angesprungen wird. Es wird immer davor eine STA $1000 (oder so ähnlich) gemacht. Möglicherweise wird da das
    Eprom eingeblendet bevor die Routinen aufgerufen werden. Vielleicht werden da aber auch nur das AC gerettet statt PHA?


    Ich würde mich aber freuen, wenn sich noch jemand an der Aktion hier beteiligen würde und den Schaltplan des Expansionsport-Moduls zeichnet. Außerdem fehlt uns noch die Belegung des Parallelkabels.


    Ich werde es versuchen sobald meine TT da ist ...

    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.

  • Was die Hardware angeht, ich glaube die sollte Skern haben und ich sollte dafür schlüsselfertig verbautes Jiffy bekommen.
    Aber das ist schon wieder so lange her, ich frag Skern nachher bei der Party mal ob er weiß wo das TT ab geblieben ist.
    Ist für mich halt relativ uninteressante Hardware weil kein Spiel damit kompatibel ist und für selbstentwicklungen das Teil zu selten ist.

    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

  • ich frag Skern nachher bei der Party mal ob er weiß wo das TT ab geblieben ist.

    Mach mal, und poste das Ergebnis hier. Wenn das Teil grad im Bunker ist, bau's doch mal ein und schau ob's funktioniert. Falls ja, komme ich evtl. am Sonntag kurz mit dem logic analyzer vorbei, dann haben wir wenigstens ein paar Anhaltspunkte in Sachen Timing und Speicherlayout.

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.

  • für mich halt relativ uninteressante Hardware weil kein Spiel damit kompatibel ist

    Dann fallen dir bestimmt auf Anhieb ein paar Namen und Versionen (original oder crack von xyz) ein.

  • Ein paar soft switches kennen wir ja schon: zum einen die von Siddl genannten $1000 und $0800 direkt vor bzw. nach Einsprung in die Sprungleiste ab $8000, die alle nach dem Motto: sta $1000: jsr $80xx: sta $0800 genutzt werden. Mutmaßung: Freigabe/Sperrung des ROM, bzw. Freigabe des 8k-RAM...

    Dann die Routine ab $8C25 die ich für die zentrale 'Sektor in Cache schreiben' halte; zusammen mit dem mystery counter würde Folgendes Sinn ergeben:

    Der Counter zählt also die Bytes innerhalb des Sektors! Wo das Cache-RAM in den Speicher eingeblendet wird (also der Wert von $3b/$3c) bleibt noch herauszufinden. Das würde also bedeuten, bei Nichtbenutzung des Cache erzeugt das PAL CAS-before-RAS-Refreshes (aus dem RC-verzögerten Phi2-Derivat) und zählt den Counter hoch (wobei ich nicht drauf wetten möchte ob das konkret verbaute RAM die externen Refresh-Adressen nicht komplett ignoriert?). Wird Cache-Zugriff eingeschaltet, werden die CAS-Signale als Chip Select aus dem gerade adressierten Speicherbereich gewonnen- mit dem Timing des 'anderen' Phi2 direkt aus der netten Gatter-Kette. Den Zähler muß man jetzt 'zu Fuß' bedienen.

    ...und dann gibts noch ein paar Zugriffe auf $6bfc, $6bfd und $73fc, denen ich bislang noch keinen Sinngehalt abringen konnte. Wenns gelegentlich etwas weniger heiß ist, versuch ich mich mal an einer näheren Untersuchung, welche Routine überhaupt von wo angesprungen wird

    Übrigens: Derlei Tricks wie Verzögerung um x Gatterlaufzeiten oder mittels RC-Gliedern am Schmitt-Trigger waren damals durchaus üblich. Wobei 'damals' zumindest die zweite Hälfte der 70er meint; selbst der ZX-Spectrum macht das noch für die Ansteruerung des 'fast RAM'. Natürlich war das nicht 'rock solid', aber man ging auch in der regel nicht so eng toleriert zu werke wie heutzutage- wenn das letzte Quentchen Speed gefordert war, war der Rechner zwei bis drei Zehnerpotenzen teurer und wurde in klimatisierten Räumen betrieben. Problematisch war eher, wenn ein Hersteller 'bessere' Chips auf den Markt brachte, zum Beispiel schnellere, und dastimng plötzlich nicht mehr stimmte.

    KI-Verwendung in diesem Posting: Rechtschreibkontrolle des Browsers.
    Abweichungen aufgrund des technischen Fortschritts oder individueller Vorlieben vorbehalten.

  • Genial mc71! :thumbsup:

    Werde ich gleich in meinem Dump auch so kommentieren.

    Vielleicht kommen wir der Sache gemeinsam auf die Spur.

    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.

  • Hmm.. das klingt äußerst ineffizient, denn wenn ich der FLoppy 8K S-Ram verpasse, dann doch in der Regel um damit einen ganzen Track auf einmal zu lesen und zu dekodieren - in einer Umdrehung.

    Wenn Du jetzt doch den Sektorpuffer in den unteren 2k unterbringst und von dort direkt in das "große Array" (Du nennst es Cache - wir sollten einen gemeinsamen Begriff finden!) schreibst, ist der Nutzen des 8k S-Ram nahe null.

    Du hast aber Recht, dass der eine verschobene Takt evtl. nicht zum Generieren einer früheren CAS-Flanke für write, sondern evtl. doch für Refresh gut ist. Das würde auf jeden Fall einen der zwei unbeschalteten Pins erklären.

    Die Zugriffe auf $6bfc und $6bfd kann das PAL nicht unterscheiden - das kennt nur 2K-Blöcke. Die letzte Version von Dolphin-DOS (V3) hat an der Stelle die 8K Ram gehabt - vielleicht ist das hier auch so? Das erklärt dann die drei von Dir gefundenen Zugriffe. Wenn das Ram sonst nicht gebraucht wird, müssen wir mutmassen, dass Du Trashcode gefunden hast.

    Jens

    Bitte melde dich an, um diesen Link zu sehen. - Das offizielle iComp Supportforum ist online.