Beiträge von Gerrit im Thema „Der RESET beim C64“

    Naja, bei DIP kann man nicht einfach so mal ein paar Pins hinzufügen, auch bei PLCC nicht, der IC wird einfach zu groß (siehe 68000, 64pins und gigantischer IC), aber sobald man bei PGA oder BGA ist hat man durch die zusätzliche Dimension weniger Probleme in dieser Richtung.

    Vbb erinnert mich an den 8375 beim Amiga... Der braucht einen Kondensator für Vbb, der von der Funktion her identische 8372 brauchte das noch nicht. Mir ist bisher keine Erklärung dafür untergekommen. Die-shrink so daß der on-Die Generator für Vbb nicht mehr reichte und einen Kondensator brauchte?

    Bei DRAMs ist das Muster eben nicht zufällig sondern in der Maske des jeweiligen RAMs kodiert. Zufällige Muster findest du nur bei SRAM. Aber je nach Hersteller ist das Muster unterschiedlich.

    Wer allerdings davon ausgeht, daß nicht benutzter Speicher einen bestimmten Wert enthält sollte seinen Beruf wechseln, als Programmierer taugt er nicht.

    Beim 8032 war der Speichertest destruktiv. Zumindest der Teil, der sich um das BASIC-RAM kümmerte. Müsste dann beim PET dasselbe sein.

    Bei einem nicht destruktiven Test ergibt sich das Bitmuster beim Einschalten aus der Schaltung des DRAMs, also welche Zellen werden invertiert behandelt (die sind 1) und welche nicht (die sind 0). Das ist abhängig von Hersteller und Revision des RAMs. Wäre diese partielle Invertierung nicht drin wären alle Bits Null (und damit die Bytes $00).

    Wegen der Invertierung... Für den Benutzer des RAMs ist das nicht relevant, er bekommt immer genau das geliefert was er reinschreibt. Ob das geschriebene '1'-Bit als geladener oder leerer Kondensator repräsentiert wird ist nach aussen nicht sichtbar. Nur nach dem Einschalten kannst du es sehen, sobald deine Daten drinstehen ist es nicht mehr erkennbar.

    Moment... Ich kenne das noch vom 8032. Der macht einen Speichertest zerstört dabei aber den Speicherinhalt (also kein Restore wie beim C64). Nach bestandemem Test steht dort $AA drin. Das liegt jetzt nicht an den RAMs sondern dem Speichertest des PET/CBM.

    Dieses Verhalten bitte nicht mit dem des C64 mit Default-KERNAL verwechseln.

    Achtung, beim C64 sind die RAMs, zumindest auf den alten Platinen, immer nur 1 Bit breit. Soll heissen, der Wert den Bit 7 beim Einschalten hat hat keine Relation zum Wert von Bit 6 da beide in verschiedenen ICs zu finden sind. Sind diese ICs von unterschiedlichen Herstellern oder haben unterschiedliche Maskenrevisionen kann dort wo bei Bit 7 eine 1 zu finden ist bei Bit 6 eine Null stehen.

    Eigentlich sind bei DRAMs alle Speicherzellen beim Einschalten Null (Kondensator der Zelle leer), aber anscheinend wird die Hälfte der Matrix invertiert behandelt. Gibt sicher einen technischen Grund dafür, nur kenne ich den nicht.

    Bei SRAMs gilt beim Einschalten hingegen eine echte Zufallsverteilung.

    Bei welchem C64 findest du denn $AA beim Einschalten und was für RAMs sind auf der Platine?


    wobei das beim C64 erstaunlicherweise derart konsistent ist das sich nicht wenige programme darauf verlassen (meisstens nicht mit absicht versteht sich)

    Das ist böse, denn wenn man eine Mischbestückung verschiedender Hersteller hat (gabs auch schon ab Werk, ich habe einen C64 mit RAMs von 3 Herstellern!) sind die 0 und 1 Bits nach dem Einschalten unterschiedlich verteilt und es ist nichts mehr mit 00 und FF in festen Blöcken.

    Beim C64 habe ich mir das noch nicht angesehen (da fehlt ein Monitor im ROM), aber beim C16 kann man je nach verwendeten RAM-Herstellern sehr unterschiedliche Muster im Monitor beobachten. Der macht keinen RAM-Test sondern nur eine Erkennung der Größe auf die 3 möglichen Werte.