Warum hat der C64 "nur" 38911 Bytes frei?

  • Ich glaube der Basic-Speicher wurde bewusst auf 38kB limitiert, da beim Schreiben größerer Programme in Basic 2.0 die Gefahr besteht, dass der Kopf des Programmierers explodiert.
    ────────────────────────────────────────────────────────────
    Time of Silence - Time of Silence 2 Development Blog
    ────────────────────────────────────────────────────────────
  • mc71 schrieb:

    Weil sich 64K Adressen mit genau zwei Bytes darstellen lassen. Für längere Adressen bräuchte man drei Bytes und/oder verschiedene Adressierungsarten (siehe 8086, wohin das im Extremfall führt)
    Das ist wenigstens halbwegs plausibel für mich.Ich muß mal unbedingt meine Nervenenden im Hirn wieder mit Strom versorgen, inbetracht dessen was ich noch alles unbenutzt im "Temp-Ordner" liegen hab.
    Die Signatur hat sich schlecht verhalten und muß jetzt draußen warten.
  • Bytebreaker schrieb:

    Hat der CPC jetzt ein besseres Speicherlayout als der C64 oder nicht?
    Weder-noch. Er hat das bessere Bankswitching, und vor allem...

    Bytebreaker schrieb:

    Ist es überhaupt relevant, dass das OS (also, das Basic), Bank Switching kann?
    ...nutzt er es auch in BASIC und OS. Denn genau daran scheitert der C64, daß ihm BASIC-ROM und IO-Bausteine im Weg sind - andernfalls könnte er sogar mehr freien Speicher haben als der Plus/4.

    Bytebreaker schrieb:

    hat der einfach "weniger Hardware zum Einblenden"?
    Abgesehen davon, daß der Z80 einen separaten IO-Adreßraum hat, dürften es beim CPC tatsächlich mehr Register sein als beim C64, allerdings geht letzterer recht verschwenderisch mit dem verbrauchten Platz um- 256 Bytes pro Chip, auch wenn es nur 16 Register sind. Die IO-Register sind aber noch der kleinste Teil des 'Problems' beim C64. Und wenn man erstmal ein bankkswitchendes Kernal hat, kommt es auf die genaue Größe des IO-Bereiches eh nicht mehr an- siehe C128.

    Und wegen der 128-K-Rechner:

    'ständig' banken die nicht, zumindest nicht das RAM. Sinclair beispielsweise hält eine RAM-Disk in den zusätzlichen 80K, die wird nur dann eingeschaltet wenn wirklich drauf zugegriffen wird. Commodore legt die Variablen in die zweite 64K-Bank (sowohl beim C128 als auch beim CBM-II), Atari macht im Grudnausbau gleich gar nix damit (erst ein entsprechendes DOS kann eine RAM-Disk dort ablegen), und beim CPC sieht es ähnlich aus- wobei CP/M 3 die oberen 64K als Arbeitsspeicher nutzt und die unteren für Bildschirm, Teile des CP/M-Kerns sowie diverse Zwischenpuffer, die das normale Anwendungsprogramm nicht zu kennen braucht.

    Wo die banking-fähigen OS'e aber tatsächlich oft und gerne banken, ist die Umschaltung RAM-ROM. Und zwar auch schon bei den 64K-RAM-Rechnern wie CPC 464 und Plus/4. Sobald da ein BASIC-Programm ausgeführt wird, wird für jedes Zeichen des Programmcodes und jeden Variablenzugriff das ROM ausgeblendet, der Zugriff durchgeführt und wieder auf ROM zurückgeblendet.
  • Nach den ersten Antworten, ich sollte doch einfach nur die Speicherbelegung anschauen, hat sich das Thema gut entwickelt und es kamen einige interessante Informationen rüber.
    Für meinen Teil ist alles mehr als beantwortet worden. :)
    Mitwäre das nicht passiert! :prof:
    :syshack: Meine 3D-Drucker Teile auf thingiverse.com/oobdoo/designs :strom:
    Sammlung | 102 Bücher bzw. 28.009 Buchseiten mit Z80/8080/8085 Power
  • Dekay schrieb:

    Sind 38kb nicht 38912 Bytes?
    zrs1 schrieb vor Dir:

    zrs1 schrieb:

    Übrigens wären 38 kiB eigentlich 38912 Bytes. Eines geht noch "verloren", weil der Basic-Speicher erst bei Adresse $801 = 2049 beginnt...
    Soll man noch was dazu schreiben?
    Uch bin nur davon ausgegangen, daß - anstelle einer genaueren Rechnung - von dem Endbyte (0 bis 65535) die 26kB (26624 Bytes) abgezogen werden könnten und das Ergebnis in den Platzhalter eingetragen wird, der als Bildschirmausgabe dient!
  • Mike schrieb:

    Amerikanische Wissenschaftler haben herausgefunden, daß das durchschnittliche Arbeitsgedächtnis ohnehin nur etwa viertausend Zeichen umfaßt. Insofern ist der VC-20 (ohne RAM-Erweiterung) als ergonomisch optimal zu betrachten.
    Und ich überflute meine Hirnmasse teilweise noch mit der "wahnwitzigen" Leistung vom 128er......Ich muß einfach verrückt sein (nach nächstem Fenster ausschau halte) 8o :schande: oder ich benutze wieder den Taschenrechner welchen ich vor 37 Jahren beim Vogelschießen gewann
    Die Signatur hat sich schlecht verhalten und muß jetzt draußen warten.