Speicher

Variablen werden in Speicherlöcken angelegt. Die Standardgrösse ist "4096" Bytes
pro Block. Bis zu 64 Blöcke können verwendet werden. Nano reserviert die benötigten
Blöcke automatisch. Wenn du mehr Speicher benötigst, dann kannst du die Blockgrösse
mit dem "membsize" Register erhöhen.

Felder werden als eigener Block reserviert. Deshalb hat "membsize" bei ihnen keine
Auswirkung.


Virtueller Speicher

Bei Rechnern ohne MMU kann der eingebaute Treiber für Virtuellen Speicher
verwendet werden.
Beachte: nur Felder können VM verwenden!

Du musst einen Pfad setzen, wo die Swapdatei angelegt werden soll:

Setzte eine "NANOTEMP" Umgebungsvariable zu dem Verzeichnis.

PC: set nanotemp=%TEMP%\vm_

Amiga: setenv nanotemp "T:vm_"

Nano hängt die aktuelle Zeit an den Dateinamen: "vm_hhmmss".

Die folgenden Register sind wichtig:

Um VM zu aktivieren muss "vmuse" auf "1" gesetzt sein.

"vmbsize" ist die Grösse der Swapdatei in Bytes. Der Standardwert ist "1048576" Bytes
(1 MB). Zum Erhöhen einfach mit einem Faktor multiplizieren.

"vmcachesize" ist die Cachegrösse für Feldelemente. Der Standardwert ist "1024".

Beachte: die long Register L32 - L35 speichern diese Werte.
Du solltest deshalb nur den Bereich von L0 - L31 für deine Daten nutzen!

Limits: Die Grösse der Swapdatei ist auf 2048 MB begrenzt. Das sollte aber kein
Problem sein ;-).

Beispiel:
     #include <vm.nah>                      Setzt die Registernamen

     push_i      1, vmuse;                  vm einschalten

     push_i      256, L0;
     mul_l       vmbsize, L0, vmbsize;      setze 256 MB für Swapdatei

     push_i      10000, vmcachesize;        Cache für 10000 Elemente
     
Prev: Dateien Fehlercodes | Next: Speicher Fehlercodes