Beiträge von Wiesel im Thema „cc65 und Speicher-Banking auf 264-Serie“

    OK, das mit "einziger Hersteller" war wirklich ne wilde Spekulation. Es gibt mehr, wenn man sucht:

    Bitte melde dich an, um diesen Link zu sehen., absolute maximum rating 50mA für die Ausgänge
    Bitte melde dich an, um diesen Link zu sehen. hat auch 50mA short-circuit Maximum für Ausgänge
    Bitte melde dich an, um diesen Link zu sehen. ist nicht einsetzbar, hat aber auch die Grenze bei 50mA

    Ich würde also davon ausgehen, dass Du mit "Externer Treiber bügelt über internes Ram" keinen Chip kaputt bekommst. Ein weiterer Hinweis auf die Robustheit der Chips ist, dass die maximale Leistungsaufnahme von 700mW weit über dem liegt, was der Chip maximal für den Betrieb braucht. Das sind nämlich 55mA auf 5V, also 275mW. Damit sind 425mW übrig zum Treiben der Outputs, also ca. 105mW oder 21mA pro Pin. Wenn ich also entscheiden müsste, ob ich das Ram oder den TED belaste, würde ich mich aus zwei Gründen für das Ram entscheiden: 1.) ist es leichter beschaffbar, zur Not durch anderen Typen ersetzbar und 2.) ist die Wahrscheinlichkeit eines Defektes nahe Null, denn 20mA liefert kaum ein Chip, und schon gar nicht an mehreren Pins gleichzeitig.

    Jens

    Auch kann man da böse reinfallen wenn die internen RAMs aus einer Charge stammen bei der die Ausgangstreiber etwas stärker ausgefallen sind.


    Meiner Erfahrung nach ändert sich die Stärke der Output-Pins nicht von Charge zu Charge, denn gerade in der Chip-Herstellung kann man von sehr engen Fertigungstoleranzen ausgehen. Wenn etwas variiert, dann ist das "von Hersteller zu Hersteller". Die Option einen anderen Hersteller für die RAMs einzusetzen, hat Commodore sich mit der Verdrahtung der Multiplexer verbaut: Die funktioniert so nur mit TI-Rams. "der andere" Hersteller wäre NEC, und da ist die Verteilung der Adressbits anders - die würden schlicht und einfach nicht funktionieren.

    Die 264-Serie hat auch wirklich nur kurz gelebt - wohl zu kurz um noch über Re-Designs von C16 und C116 nachzudenken. Ich spekuliere also mal weiter wild und behaupte, dass alle C16 und C116 mit TI-Rams bestückt sind, so dass man von *sehr* ähnlichen Parametern ausgehen kann was die Ausgangstreiberleistung angeht. Im Schaltplan ist auch die TI-Nummer zu lesen, keine generische 16Kx4-Nummer.

    Jens

    Ähemm.. Änderungen an den Adressleitungen? Es werden bei 64k schlicht und einfach alle verwendet, da gibts nichts zu ändern. Die 64k-Erweiterungen sind vergleichsweise simpel, weil sie einfach den internen Speicher überbügeln. Sauberer wär's, wenn der interne Speicher ganz rausgenommen wird, aber die Option haben die meisten C16/C116-Nutzer nicht. Da gefällt mir dieser Gedanke hier schon besser:

    Die Umschaltung erfolgt über Schreibzugriffe auf Register 62 (ROM) und 63 (RAM), nach aussen sichtbar ist sie über aktives _CAS (RAM) bzw. aktive Chipselects (_CS0 und _CS1 für die ROMs).


    ...da steckt nämlich drin, dass man sich sein eigenes CAS draußen generiert, und zwar nach der simplen Logik "wenn nicht Rom, dann Ram". Das würde aber die Vermutung nahelegen, dass von den zusätzlichen 16k bei $4000-$7fff auch eine Spiegelung von $c000 bis $ffff (minus IO) erforderlich ist. Und der "minus IO"-Teil ist Grund für die aufwändige Logik auf der 16k-Erweiterung.

    Ich bleibe daher bei meiner wilden Spekulation, dass es sich bei dem Transistor um eine push-Stufe handelt, die CAS=1 forciert. Es müsste sich demnach um einen PNP-Typen handeln. Und ja, das gefährdet den TED - vielleicht ist das der Grund, warum der TED als so "leicht sterblich" gilt? Waren dei 16k-Erweiterungen vielleicht sogar sehr häufig und haben dazu beigetragen, dass die Chips wie die Fliegen gestorben sind?

    Jens

    Also meine Neugierde ist schon recht groß - wenn Du da mal 'n Stündchen wühlen könntest? Ist doch ohnehin blöd, wenn man nach dem Umzug zwischen Kisten wohnt. Eine Kiste pro Tag ausräumen sollte drin sein, sonst kommst Du nie in der neuen Bude an. Und das sage ich natürlich total uneigennützig :wink:

    Jens

    Der TED ist ein HMOS-Dings und zieht deswegen schon mit nicht wenig Strom gegen Masse. Ich würde CAS auch nicht ohne Weiteres gegen 5V ziehen, aber umgekehrt hätte ich keine Bauchschmerzen (achtung, reine Spekulation!): CAS auf Masse ziehen wo normalerweise kein CAS kommt. Wenn wir davon ausgehen, dass RAS und MUX immer laufen, dann ist CAS das alleinige Select-Signal.

    Jetzt stell' Dir vor, dass dem TED immer vorgegaukelt wird, dass ROM selektiert ist, also CAS nicht generiert wird, dann könnte man mit externer Logik das fehlende CAS erzeugen. Der Transistor wäre dazu da, dass der interne Speicher sich regt, und lokal auf der Karte wird ein zweites CAS erzeugt. Da CAS ohnehin nur ein verzögertes MUX-Signal ist, würde das auch die RC-Elemente erklären.

    Vielleicht kann mc71 uns erklären, was der TED macht, wenn er auf "ROM" gestellt ist? Gibt es für die CPU dann *nur* Rom? Und wo holt sich der TED dann seine Daten her?

    Jens

    Die Ansteuerung beim 232 ist wahrscheinlich sehr straight-forward mit geteiltem CAS. Extern ist viel interessanter, denn die +16k Erweiterungen haben wirklich nur 16k Speicher und Logik. Die ist aber nicht klein; ich tippe darauf, dass eine Kopie von bestimmten Registern angelegt wird, und dann wird irgendein Signal "überbügelt". Hinweise darauf sind das dicke NAND-Gate (LS133), das wahrscheinlich zur Dekodierung genutzt wird, sowie ein Transistor, der wohl genug Wumms hat, um eins der Ausgangssignale "anzupassen". Klingt nach der Holzhammer-Methode: Wenn's mit Gewalt nicht klappt, dann benutzt Du nicht genug davon :smile:

    Ich würde aber auch gern mal so eine 16k-Erweiterung in die Finger bekommen, dann kann ich ja mal nen Schaltplan zeichnen und schauen, wie die das alles gemacht haben. Es sieht wirklich nach übler Trickserei aus, denn da sind noch Kondensatoren an Signalleitungen zu sehen - wenn das mal keine RC-Verzögerungsglieder sind...

    cbm-warrior, Du müsstest gestern oder heute die Rücksendung mit dem Business Basic bekommen haben. Falls Du so eine 16k-Erweiterung Dein Eigen nennst, wärst Du bereit, mir die auch mal zu leihen?

    Jens

    cbm-warrior,

    kannst Du mal ein Foto einer solchen +16k-Erweiterung machen? Mir würd's schon reichen, wenn ich die Chips sehe. Ich werde das Gefühl nicht los, dass die in Wirklichkeit 32K Ram beinhaltet.

    Edit: Fotos gefunden bei Bitte melde dich an, um diesen Link zu sehen.

    Jens

    aaaah - ein 264-Kenner :wink:

    Mir ging's hauptsächlich um cc65 und das Speichermodell. Wenn ich also plus/4 als Target auswähle, aber Seriell und Userport vermeide, müsste das mit C16+64k funktionieren?

    In Sachen Hardware habe ich noch nen Knoten im Hirn. Am Expansionsport von C16 und C116 sehe ich keinerlei Möglichkeit, das interne RAM abzuschalten. Demnach sind die internen 16k sowohl lesend, als auch schreibend immer dann aktiv, wenn der TED CAS zieht. Bilder von externen Speichererweiterungen zeigen auch keinerlei großartige Logik, sondern nur Multiplexer und RAMs. Das sieht für mich so aus, als würde eine RAM-Erweiterung für C16/C116 immer die Daten der internen Rams "überbügeln". Ich habe keinen Zweifel, dass das mit 64k gut klappt, aber bei +16k habe ich das Verständnisproblem: Wenn auf die externe Erweiterung geschrieben wird, müssten doch die internen RAMs die gleichen Daten bekommen? Oder übersehe ich da etwas..?

    Jens

    Mahlzeit,

    der cc65 hat auch die 264-Serie als Target. Wie allerdings Bitte melde dich an, um diesen Link zu sehen. zu lesen ist, gibt es unterschiedliche Speichermodelle für die Rechner, die mir Rätsel aufgeben: Beim Plus/4 wird "banking" benutzt, so dass der gesamte Speicher zur Verfügung steht. Für C16/C116 gibt's jedoch maximal 32k. Diese Ausbaustufe habe ich in der freien Wildbahn aber noch nie gesehen; üblicherweise findet man doch die 64K-Erweiterung an bzw. in den Teilen, oder nicht?

    Meine Frage lautet also: Wenn man einen C16 auf 64k erweitert hat, können diese 64k komplett von der cc65-runtime lib genutzt werden?

    Jens