Re: Commodore 64
Verfasst: Do 10. Mär 2011, 20:16
Naja, byteweise. Indem man das Lowbyte der Adresse nach $FE und das Highbyte nach $FF schreibt. Einzeln halt. (Darf man die $FF überhaupt benutzen? Weiß grad nicht mehr.)
Zur Information betreffend "Speicher leeren". Nein, man muß den Speicher nicht "leeren". Es gibt keinen "leeren" Speicher. Speicher enthält immer Werte, aus Bits bestehend, die 0 oder 1 sein können. Es gibt keinen Bit-Zustand "leer".
Nach dem Einschalten hat der C64-Speicher einen zufälligen Zustand. Ältere Modelle haben da totales Chaos drin, neuere haben immer im Wechsel $00 und $FF gefüllt. Das liegt an der Hardware und ist konstruktionsbedingt.
Außerdem hält der C64 Speicher relativ lange. Selbst nach 30 Sekunden kann noch, wenn man Glück hat, der komplette Speicherinhalt erhalten sein nach dem nächsten Einschalten (abgesehen von den Speicherstellen natürlich, die er beim Einschalten initialisiert) und sogar nach einer Minute können noch Reste vorhanden sein.
Kleine Anmerkung: Die "Module" (also die Teile am Erweiterungs-Steckplatz aka "Expansion Port") blenden sich unter anderem im Bereich $8000 bis $9FFF ein und haben eine Kennung ab $8004, (CBM80). Davor stehen zwei Sprungvektoren für Hard-Reset und Soft-Reset. Das lustige ist, daß man das auch simulieren kann, indem man selbst in den Speicher ab $8004 den String CBM80 schreibt und davor die beiden Vektoren. Selbst wenn man den C64 aus- und wieder einschaltet, ist, aufgrund der "Langlebigkeit" des Speicherinhalts oft immer noch die Kennung erhalten und er versucht, zum Hard-Reset-Vektor zu springen. Da natürlich nicht der komplette Speicherinhalt erhalten wird, sondern sich langsam abbaut, kann das auch zu Abstürzen führen, wenn die Kennung immer noch vorhanden ist, die Vektoren aber nur noch zum Teil - oder die Vektoren zeigen auf eine Routine, die schon teilweise "verwest" ist... So kann man den C64 wunderbar "blockieren".....
Achja: Das Ganze funktioniert natürlich nicht bei eingesteckten Modulen, weil diese ja dann diese Funktion übernehmen.
Zur Information betreffend "Speicher leeren". Nein, man muß den Speicher nicht "leeren". Es gibt keinen "leeren" Speicher. Speicher enthält immer Werte, aus Bits bestehend, die 0 oder 1 sein können. Es gibt keinen Bit-Zustand "leer".
Nach dem Einschalten hat der C64-Speicher einen zufälligen Zustand. Ältere Modelle haben da totales Chaos drin, neuere haben immer im Wechsel $00 und $FF gefüllt. Das liegt an der Hardware und ist konstruktionsbedingt.
Außerdem hält der C64 Speicher relativ lange. Selbst nach 30 Sekunden kann noch, wenn man Glück hat, der komplette Speicherinhalt erhalten sein nach dem nächsten Einschalten (abgesehen von den Speicherstellen natürlich, die er beim Einschalten initialisiert) und sogar nach einer Minute können noch Reste vorhanden sein.
Kleine Anmerkung: Die "Module" (also die Teile am Erweiterungs-Steckplatz aka "Expansion Port") blenden sich unter anderem im Bereich $8000 bis $9FFF ein und haben eine Kennung ab $8004, (CBM80). Davor stehen zwei Sprungvektoren für Hard-Reset und Soft-Reset. Das lustige ist, daß man das auch simulieren kann, indem man selbst in den Speicher ab $8004 den String CBM80 schreibt und davor die beiden Vektoren. Selbst wenn man den C64 aus- und wieder einschaltet, ist, aufgrund der "Langlebigkeit" des Speicherinhalts oft immer noch die Kennung erhalten und er versucht, zum Hard-Reset-Vektor zu springen. Da natürlich nicht der komplette Speicherinhalt erhalten wird, sondern sich langsam abbaut, kann das auch zu Abstürzen führen, wenn die Kennung immer noch vorhanden ist, die Vektoren aber nur noch zum Teil - oder die Vektoren zeigen auf eine Routine, die schon teilweise "verwest" ist... So kann man den C64 wunderbar "blockieren".....
Achja: Das Ganze funktioniert natürlich nicht bei eingesteckten Modulen, weil diese ja dann diese Funktion übernehmen.