Cartridge Adressendekodierung macht komische Sachen :)

Es gibt 18 Antworten in diesem Thema, welches 4.390 mal aufgerufen wurde. Der letzte Beitrag (21. April 2017 um 21:04) ist von colaholiker.

  • Ich experimentiere im Moment mit dem Cartridge-Port des Plus/4 etwas herum. Ich wollte gern einen Schreibzugriff auf den Bereich $8000-$bfff (mit bekanntem "bleed through-Effekt") haben.

    Folgende Signale wurden verwendet:

    /A14 , A15 , Phi2, R/W

    Zuerst wird Phi2 (CPU=1) mit R/W (W=1) per NAND verknüpft und dieses als /E für einen 74LS139er Dekoder verwendet. Da hängen dann an A: /A14 (0) und B: A15 (1) und der zu erwartende Ausgang ist O2a (Pin 6). Zum Testen habe ich dann kurz ein 74LS74 drangehängt und es funktionierte auch, ABER auch im Bereich unterhalb von $8000. Wenn A15=1 dürfte ich dort doch gar nicht ankommen ? - Jemand eine Idee.

    139er Datenblatt: Bitte melde dich an, um diesen Link zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Der kleine Testaufbau. Ob es an Leitungen und Steckboard liegen kann ?

    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. |

    Einmal editiert, zuletzt von cbmhardware (1. Januar 2017 um 10:05)

  • Ein Siemens 7KD1200-8BA, neid.

    Irgendwo verklemmt?

    Mein ignorierter Beitrag zur Netzteildiskusion:

    Der Inhalt kann nicht angezeigt werden, da er nicht mehr verfügbar ist.

  • Nö, habe es mit anderen Bauteilen kurz aufgelötet und es hat sich nichts verändert. Reagiert auf jeden Schreib- und auch Lesezugriff.

    Kann ich mir nicht erklären ... ?

    Der Logiktester wird gelegentlich für kleines Geld bei Ebay angeboten, da habe ich meinen auch her.

    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. |

  • Hallo!
    Es hilft sicher.

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

  • Danke ! - So werde ich es dann nochmal versuchen, muesste dann ja klappen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Ich hatte /A14, A15, Phi2 und R/W gesamt verknüpft. Vielleicht liegt da das Problem.

    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. |

  • Das funktioniert mit einem SRAM schon mal einwandfrei. Jetzt stehe ich allerdings vor einem Problem mit Flash- oder EEproms. Mit A0-A13 am Flash habe ich die notwendige 16KByte Bank. Also von $8000-$bfff. Die Schreibsequenz braucht allerdings die Adressen Offset+$2aaa und $5555. Da lande ich dann bei $AAAA und $d555, also fehlt mir A14.

    Bitte melde dich an, um diesen Link zu sehen.

    Das wäre mein Ansatz. Fürs Register $7000-$73ff macht mich so noch nicht wirklich glücklich, aber es bleibt im machbaren Rahmen. Ideal wäre ein programmiertes Bauteil, das eine Adresse und die aufbereiteten Signale ausspuckt. Und das Register dann auch gleich aufnehmen kann. Ich kann allerdings nur mit TTL bauen.
    Beim Einbau (3+1 raus) könnte man $fd2x vom PLA abgreifen, müsste sich dann aber einige Adress- und Signalleitungen zusammensuchen. Auch keine schöne Lösung.

    So hätte man bestenfalls ein 040er-Flash (512kB) mit 32 Bänken. Das könnte dann z.B. C16-Spiele wie Kikstart per Herauskopieren und Trampolin-Code direkt im Speicher starten. Und natürlich mal ein selbst erstelltes Cartridge verwenden.

    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. |

  • Ich belasse es erst mal beim SRAM und Batterieerhaltung. Morgen mal beim Chinesen bestellen und ein paar Wochen warten.


    Bitte melde dich an, um diesen Anhang zu sehen.

    0.5MB in 32 Bänken C1L, also $8000-$bffff.

    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. |

  • Hallo!
    Das ist mein ROM-Karte.
    Der Name sdcart.
    2 x 16 LCD-Display.
    Sie können die PRG oder BIN-Datei auswählen. Der Mikrocontroller fügt das ausgewählte Programm in dem Speicher. Reset plus / 4, und das Programm wird geladen in die plus / 4.

  • Ich wollte eine einfache Version, aber mit einem AVR geht natürlich mehr. Ein sehr interessanter Aufbau.

    Da wäre noch eine Verbindung zum PC per USB wünschenswert. Wenn der AVR dann noch ein bisschen Programm mitliefert, wäre der Reset auch nicht mehr notwendig.

    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. |

  • Ich belasse es erst mal beim SRAM und Batterieerhaltung. Morgen mal beim Chinesen bestellen und ein paar Wochen warten.

    Wie beschreibst du das SRAM? Schreibzyklen landen bei TED doch immer im DRAM, es werden also keine Select-Signale für die Cartridges erzeugt die man nutzen könnte.

  • Wie beschreibst du das SRAM? Schreibzyklen landen bei TED doch immer im DRAM, es werden also keine Select-Signale für die Cartridges erzeugt die man nutzen könnte.

    Das hatte ich vorher mit einem frei verdrahteten Aufbau kurz getestet. Ich schreibe von $8000-$bfff (A14=0,A15=1) mit dem "bleed through"-Effekt, also auch durch ins RAM. Am Anfang hatte ich den verhängnisvollen Fehler mit Write=1 gemacht, den ich bemerkte als gerryke die Schaltung vom Softrom hier postete. Write ist beim P/4 = 0 wie man in der Schaltung sehen kann.
    Damit klappte es dann sofort. Ist nicht elegant, aber es funktioniert so ohne Select-Leitungen.

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

    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. |

    Einmal editiert, zuletzt von cbmhardware (12. Januar 2017 um 10:36)

  • Das hatte ich vorher mit einem frei verdrahteten Aufbau kurz getestet. Ich schreibe von $8000-$bfff (A14=0,A15=1) mit dem "bleed through"-Effekt, also auch durch ins RAM.

    Mir unklar was du meinst. Das /CS für das RAM bekommst du von TED durch die Bankinglogik als C1L geliefert. Das geht aber nur bei Lesezyklen auf LOW. Bei Schreibzyklen erzeugt TED immer /CAS und das RAM bekommt nicht mit, daß es gemeint ist.

    Oder blendest du das RAM für Schreibzyklen hart ab $8000 ein und kopierst somit immer mit was gerade dorthin geschrieben wird? Dann musst du das irgendwie noch abschaltbar machen weil dir sonst der ganz normale Betrieb den RAM-Inhalt früher oder später zerlegt.

  • Oder blendest du das RAM für Schreibzyklen hart ab $8000 ein und kopierst somit immer mit was gerade dorthin geschrieben wird? Dann musst du das irgendwie noch abschaltbar machen weil dir sonst der ganz normale Betrieb den RAM-Inhalt früher oder später zerlegt.

    Ja, genau so. Das lässt sich nach dem Beschreiben natürlich manuell abschalten (Jumper über dem RAM im Foto weiter oben).

    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. |

  • Ja, genau so. Das lässt sich nach dem Beschreiben natürlich manuell abschalten (Jumper über dem RAM im Foto weiter oben).

    Manuell und dann noch das aktive Signal über einen Jumper geführt? Das muss beim Design aber schon heftige Schmerzen verursacht haben, oder?

    Man sollte nie aktive Signale über mechanische Schalter oder Jumper führen sondern diese benutzen um das Signal via Logik zu schalten. Hat nebenbei den Vorteil, daß man dann keine Längenbegrenzung bei der Leitung zu diesem Schalter/Jumper hat. Das sauber zu implementieren würde dich einen weiteren IC kosten und einen Widerstand einsparen.

    Lösung für das 'manuell' habe ich jetzt keine einfache... OK, man könnte vielleicht über /C2L ein FlipFlop triggern welches den Schreibzugriff freigibt bzw. wieder sperrt. Gleich mit LED zur Anzeige des Status.

  • Manuell und dann noch das aktive Signal über einen Jumper geführt? Das muss beim Design aber schon heftige Schmerzen verursacht haben, oder?

    Ich habe es gut überstanden. ;) Mir ist bekannt, dass man so etwas besser indirekt schaltet.

    Ich hatte es wie in der Softrom-Schaltung übernommen. Auf der fertigen Platine läuft die Leitung dann über ein Dip-Switch.

    Bitte melde dich an, um diesen Link zu sehen.

    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. |

  • Eine neue Version mit Batteriepufferung und indirektem Beschalten von WE. Ich habe auf zwei Bänke (C1 oder C2 low) reduziert. Die lassen sich per SMD-Jumper konfigurieren. Mehr braucht man sowieso nicht.

    Mit dem DIP lässt sich "1: Erase all" VCC vom SRAM trennen. "2:Write" schaltet Write auf >$8000 dekodiert, indirekt über den 74LS125 an WE. Mit
    "3: Bank 0/1" kann dann die 16kByte-Bank ausgewählt werden.


    Bitte melde dich an, um diesen Anhang zu sehen.Bitte melde dich an, um diesen Anhang zu sehen.

    Die werde ich demnächst mal in Auftrag geben.

    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. |

  • Je nach RAM kann das aber trotzdem eine ganze Weile dauern bis die Daten wirklich weg sind.

    Nicht erwähnt, aber die Battrie-Pufferung wird natürlich so auch getrennt. Das geht ziemlich schnell. Sobald der P/4 die "CBM"-Kennung nicht mehr findet, läuft der Reset sauber durch. Und wenn es mal im Tedmon endet, kann man dann mit f 8000 bfff 00 dem Treiben ein Ende setzen.

    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. |

  • Wäre das Problem nicht weg, wenn das Write- Signal ins Modul käme?

    Nicht lachen! Ich würd's mit einer schnellen Lichtschranke testen, den Strahl mit WR getaktet. Da ist soviel Platz im Exp.-port und alles bleibt kompatibel.

    Hans