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)