Magic Disk 64

home to index to html: MD9503-UTILITIES-FREEMEM.html
                 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)



Valid HTML 4.0 Transitional Valid CSS!