FREEMEM
- Den Basicspeicher immer im Griff -
----------------------------------------
"Freemem" ist ein kleines Hilfsprogramm
für die Basic-Programmierer unter Ihnen.
Es zeigt Ihnen mit Hilfe von zwei Spri-
tes ständig den momentan noch freien
Basic-Speicher an, so daß Sie immer ei-
nen Überblick über selbigen haben. Da
Freemem im IRQ abläuft, wissen Sie beim
Eingeben eines Programms immer, wieviel
Platz selbiges momentan im Speicher ein-
nimmt, und haben zudem die Möglichkeit,
während des Ablaufs des Programms zu
verfolgen, wieviel Speicher durch die
Deklaration von Variablen verbraucht
wird.
1) LADEHINWEISE
Freemem liegt auf diese MD in sechs ver-
schiedenen Versionen vor. Diese unter-
scheiden sich in Funktionalität nicht
voneinander, sondern sind lediglich an
anderen Adressen im Speicher abgelegt,
so daß Sie sich eine Version heraussu-
chen können, die auch zu Ihrer Rechner-
konfigration passt. Es gibt jeweils
drei, in der Speicherlage unterschiedli-
che, Versionen. Zudem kann jede dieser
drei Versionen die Anzeige in hexadezi-
maler oder dezimaler Darstellung ausge-
ben. Hieraus ergeben sich die sechs Fi-
lenamen des Programms: Jeder von Ihnen
beginnt mit "FREEMEM", gefolgt von einem
Punkt und einem der Buchstaben "D" oder
"H" (für <D>ezimale oder <H>exadezimale
Darstellung). Hierauf folgt nun die La-
deadresse, die gleichzeitig auch die
Startadresse des Programms repräsen-
tiert. Mögliche Adressen sind:
"RUN"
Diese Version kann normal mit ",8" gela-
den und durch "RUN" gestartet werden.
Sie legt Freemem am Anfang des Basic-
speichers ab, wodurch selbiger nach oben
verschoben werden muß, und somit ein
klein wenig eingeschränkt wird. Das Ver-
schieben des Basicstarts wird von Free-
mem automatisch durchgeführt.
"39658"
Diese Version muß mit ",8,1" geladen und
durch ein "SYS39658" gestartet werden.
Sie liegt am Ende des Basicspeichers,
wodurch selbiger nach unten verschoben
werden muß, womit der verfügbare Basic-
speicher ebenfalls eingeschränkt wird.
Zudem kann es mit dieser Version Proble-
me geben, falls Sie ein Erweiterungsmo-
dul im Expansions-Port eingesteckt ha-
ben, da diese Module immer am Basic-Ende
eingeblendet werden, und Freemem somit
"überlagern" können.
"49152"
Auch diese Version müssen Sie mit ",8,1"
laden und durch ein "SYS49152" starten.
Sie hat den Vorteil, daß Sie im Spei-
cherbereich für Assembler-Erweiterungen
liegt, und somit den Basic-Speicher
nicht berührt. Sie sollte eigentlich die
beste Wahl darstellen, falls Sie in die-
sem Speicherbereich nicht auch noch an-
dere Assembler-Erweiterungen zu Ihrem
Programm unterbringen möchten.
2) BEDIENUNGSHINWEISE
Nachdem die gewünschte Programmversion
geladen und gestartet wurde, so sehen
Sie nun außer der blinkenden Speicheran-
zeige rechts oben, einen kleinen Vermerk
auf dem Bildschirm, der Ihnen angibt, an
welchen Adressen Sie das Programm aufru-
fen müssen, um es mit anderen Parametern
zu starten, oder um es abzuschalten.
Diese Adressen variieren, je nach Pro-
grammversion. Beachten Sie bitte, daß
nach dem Laden und erstmaligen Aufrufen
das Programm lediglich initialisiert
wurde. Sie können es nun nocheinmal mit
dem angegebenen SYS-Befehl aufrufen, um
einige Parameter wie gewünscht umzuset-
zen. Die allgemeine Syntax für den Auf-
ruf lautet:
SYS Adresse,X,Y,FLASH,START,END
"Adresse" steht hierbei für die, von
Freemem angegebene Startadresse. Bei "X"
und "Y", können Sie zwei Zahlwerte ange-
ben, die die Position der beiden Anzei-
gesprites auf dem Bildschirm angeben.
Für "X" sind Werte zwischen 0 und 400,
für "Y" Werte zwischen 0 und 255 er-
laubt. Um die Sprites in der Ecke rechts
oben zu positionieren können die Werte
304/50 benutzt werden. "FLASH" stellt
die Geschwindigkeit dar, mit der das
Programm die Sprites blinken lassen
soll. Hier sind Werte zwischen 0 (sehr
schnell) bis 15 (sehr langsam) möglich.
Dadurch, daß die Sprites blinken, ist
die Speicheranzeige auch auf jeder be-
liebigen Hintergrundfarbe gut sichtbar.
Die beiden letzten Parameter "START" und
"END" sind eine ganz besondere Funktion
des Programms. Sie müssen sich nämlich
nicht nur den Basicspeicher anzeigen
lassen, sondern können beliebige Zeropa-
geadressen wählen, die zur Anzeige he-
rangezogen werden sollen. So kann für
"START" und "END" jeweils ein Wert zwi-
schen 0 und 255 angegeben werden, der
jeweils das erste Byte eines Adresszei-
gers in der Zeropage angibt. Dort soll-
ten in der Form Low-Byte/High-Byte zwei
Adressen gespeichert sein, deren Diffe-
renz von Freemem angezeigt wird. Haben
Sie also z.B. ein Programm, das in den
Zeropageadressen $02/$03, sowie $04/$05
einen Adressbereich verwaltet, so können
Sie mit dem Aufruf:
SYS Adresse,304,50,7,02,04
sich die Differenz dieser beiden Adres-
sen anzeigen lassen. Da das Betriebssy-
stem eine Menge solche Adresszeiger in
der Zeropage verwaltet, können Sie sich
also auch ganz andere Speicherwerte an-
zeigen lassen.
Im Übrigen müssen nicht unbedingt alle
Parameter des SYS-Aufrufs angegeben wer-
den. Möchten Sie z.B. nur die X-Position
ändern, so genügt es, auch nur diese
anzugeben. Allerdings müssen Sie X- und
Y-Position mitangeben, wenn Sie z.B. den
"FLASH"-Wert ändern möchten, da das Pro-
gramm hier nicht unterscheiden kann,
welche Parameter es weglassen soll.
Beachten Sie bitte auch, daß die vier
Programmversionen, die mit ",8,1" gela-
den und per SYS-Befehl gestartet werden
müssen, durch den absoluten Ladevorgang
die Adresszeiger des Basicspeichers ver-
bogen haben. Geben Sie also nach dem
Laden und vor dem SYS-Befehl zur Sicher-
heit einen "NEW"-Befehl ein, um die Zei-
ger wieder auf die Normalwerte zurückzu-
setzen. Tun Sie dies nicht, so zeigt
Freemem meist unsinnige Basicspeicher-
werte an (z.B. "55000 Bytes free" - ob-
wohl der Basicspeicher maximal 38911
Bytes groß sein kann).
Desweiteren sollten Sie beachten, daß
Freemem zwei Sprites des VICs belegt.
Dies sind die Sprites mit den Nummern 6
und 7. Solange Sie sie also nicht in
einem eigenen Programm benutzen, sollte
es hierbei keine Schwierigkeiten geben.
Die Spritedaten zu diesen Sprites werden
in den Spritepuffern 13 und 14 abgelegt,
die Ihnen ebenfalls nicht mehr für eige-
ne Sprites zur Verfügung stehen.
Das Programm bindet sich übrigens in
schon bestehende IRQ-Routinen mit ein,
so daß diese parallel mitablaufen. Da-
durch ist gewähleistet, daß sich Freemem
mit den meisten anderen IRQ-Programmen,
oder auch Basic-Erweiterungen verträgt.
(ub)