Bitte melde dich an, um diesen Anhang zu sehen.
![]()
Freier Speicher
-
markusk -
24. März 2015 um 20:48 -
Erledigt
Es gibt 38 Antworten in diesem Thema, welches 5.418 mal aufgerufen wurde. Der letzte Beitrag (
-
-
Es geht hier wohl nicht um die zweigeteilte Speicherzelle, sondern um den zweigeteilten Basic-Bereich.
a) Programmcode mit Ende zwei Nullbytes
b) Variablenbereich
c) freier Variablenbereich fre(0)Im Falle das keine Variablen angelegt wurden oder ein clr ausgefürht wurde, ist der Variablenbereich mit dem freien Variablenbereich identisch.
Schönen Gruß.
-
Oh je, zunächst einmal 2, es sind 2 (in Worten: "zwei") Nullbytes. Da die Speicheraufteilung offenbar ob ihrer Komplexität in Worten nicht zu erklären ist, hab ich mal einen Lehrfilm erstellt:
Bitte melde dich an, um diesen Anhang zu sehen.
Anklicken, staunen und verstehen

-
@Colt:
Sehr schöner Film.
Nur der Variablenbereich mit Variablen, Strings und fre(0)+Garbage Collection fehlt noch.Schönen Gruß.
-
Äh, der Variablenbereich ist Grüne, steht doch oben drüber. Warum jetzt auf einmal Strings und Garbage Collection bzgl. deiner imaginären, festgelegten Speicheraufteilung wichtig sein sollen frag ich dann lieber erst gar nicht.

-
Das wäre dann die Erweiterung.
Die Anfangsfrage war meiner Meinung nach warum fre(.) und die Einschaltmeldung zu verschiedenen Ergebnissen kommnen.
Bei fre(0) gibt es ja dann wieder zwei Fälle: Entweder, es sind Variablen angelegt oder nicht.Schönen Gruß.
-
Anklicken, staunen und verstehen
"Das wandernde Doppel-Nullbyte"
Nur der Variablenbereich mit Variablen, Strings und fre(0)+Garbage Collection fehlt noch.
Alles da
-
Also, ich meinte animierte Variablen, die sich im Variablenbereich von vorn und hinten aufbauen.
Dann die Garbage-Collection, die den oberen Stringbereich wieder schrumpfen läßt.Das wäre dann ein Drei- oder Vierfarbbalken.
So was müßte man eigentlich auch als Basic-Demo programmieren können.
SchönenGruß.
-
Die Anfangsfrage war meiner Meinung nach warum fre(.) und die Einschaltmeldung zu verschiedenen Ergebnissen kommnen.
Bei der Einschaltmeldung rechnet er $37/38 minus $2B/2C; bei FRE $33/34 minus $31/32. Das ist schon alles. Zack - zwei Bytes verschwunden
. -
Das wäre dann ein Drei- oder Vierfarbbalken.
So was müßte man eigentlich auch alsBasic-Demo programmieren können.
Witzige Idee an sich. Dann aber bitte in Assembler als Screen-Code @$0400
. -
Hexworx:
Eben, zwei verschiedene Rechnungen führen auch zu zwei unterschiedlichen Ergebnissen.
Bei der Einschaltmeldung wird eben der gesamte Basic-RAM-Speicher berechnet.
Während bei fre(0) der freie Variablenspeicher angegeben wird.Schönen Gruß.
-
Der Lehrfilm ist Klasse

Für Fortgeschrittene, die nach dem Lehrfilm die Klausur bei Prof. Cold bestanden haben, gibt es hier dann das Skript zur nächsten Vorlesung
Bitte melde dich an, um diesen Link zu sehen.Alle anderen müssen nachsitzen und diesen und den anderen Fred zum Thema noch wochenlang lesen und befüllen

-
Während bei fre(0) der freie Variablenspeicher angegeben wird
Dann erklär' mal bitte, warum dein sog. "Variablenspeicher" kleiner wird, wenn ich den BASIC-Code verlängere, aber die Variablen gar nicht anfasse?Wie jetzt schon mehr geschrieben und ja auch visuell dargestellt, ist es einfach nur SPEICHER, der für was auch immer verbraten werden kann. Deswegen ist es immer noch KEIN Variablenspeicher!
Der FRE(IE) Speicher liegt nun mal zwischen den Arrays und den Strings (er könnte auch woanders liegen). Wohlbedacht ist das aber eben nicht gemacht worden. Stichwort GBC.
Mehr werde ich meine Tastatur zu dem Thema jetzt auch nicht mehr abnutzen.
Die Idee mit der Speicheranzeige reizte mich aber. Bin dabei. Müsste auch in den Kassettenpuffer passen. Bis später, ähm... Schönen Gruß.
-
Wäre vielleicht einfacher mit peek.
Hinter fre(0) steckt ja nicht nur das Auslesen der Speicherstellen, sondern auch noch der Aufruf der Stringaufräumung, um den freien Variablenspeicher zu ermitteln.Schönen Gruß.
-
Glückwunsch zum 1000. Beitrag.
Schönen Gruß.
um den freien
Variablenspeicher zu ermittelnWäre vielleicht einfacher mit peek.
was wäre mit peek einfacher?Hinter fre(0) steckt ja nicht nur das Auslesen der Speicherstellen, sondern auch noch der Aufruf der Stringaufräumung
...und das ist auch gut so. Ändert aber nix. -
Das Strings aufgeräumt werden dient der Maximierung des gesamten Speichers, nicht nur der Optimierung des Variablenspeichers.
-
-
-
-