•  Back 
  •  Der PMMU-Funktionshandler 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - das Betriebssystem
Author      : 
Version     : tos.hyp (5. März 2013)
Subject     : Programmieren/Atari
Nodes       : 3001
Index Size  : 93602
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Titel
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File16.6.6  SetPageMode                                                TOS

 Name:         »SetPageMode« - PMMU Modus für einen Bereich setzen.

 Nummer:       1

 Deklaration:  ULONG SetPageMode ( ULONG mode, ULONG start_address, 
               ULONG length );

 Beschreibung: Die Funktion setzt den PMMU-Modus für einen bestimmten 
               Speicherbereich. Es gilt:

                Parameter      Bedeutung

                mode           Modus als Bit-Vektor
                                Bit 0 =  SwapInhabit
                                         Der Speicherbereich wird 
                                         nicht ausgelagert.
                                Bit 1 =  WriteProtect
                                         Der Speicherbereich wird 
                                         schreibgeschützt; 
                                         Schreibversuche führen zu 
                                         einem Busfehler.
                                Bit 2 =  Used
                                         Der Speicherbereich wird als 
                                         benutzt gekennzeichnet. 
                                         Hierdurch erhält er temporär 
                                         eine höhere Priorität, und 
                                         wird vorerst nicht 
                                         ausgelagert.
                                Bit 3 =  Modified
                                         Der Speicherbereich wird als 
                                         verändert markiert. Dadurch 
                                         wird dieser Bereich auf jeden 
                                         Fall auf die Platte 
                                         geschrieben, bevor neue Daten 
                                         an seine physikalische 
                                         Adresse eingelesen werden.
                                Bit 4 =  CacheInhabit
                                         Die Prozessor-Caches werden 
                                         für den angegebenen Bereich 
                                         abgeschaltet.
                start_address  Anfangsadresse des Speicherbereichs
                length         Länge des gewünschten Bereichs

               Hinweis: Die restlichen Bits sind reserviert und müssen 
               auf Null gesetzt werden. Für die virtuelle 
               Speicherverwaltung ist in erster Linie das 
               SwapInhabit-Bit von Bedeutung, da es die Möglichkeit 
               bietet, bestimmte Speicherbereiche gegen Auslagern 
               abzusichern.

               Beim Schreibschützen von Speicherbereichen ist 
               unbedingt zu beachten, daß der Speicher in Seiten 
               unterteilt ist, die die kleinste Einheit für einen 
               Schreibschutz darstellen. Es muß sichergestellt werden, 
               daß sich der Schreibschutz nicht auch auf einen Bereich 
               erstreckt, der nicht geschützt werden darf, weil er 
               beispielsweise nicht zum eigenen Programm gehört.

 Ergebnis:     Die Funktion liefert bei fehlerfreier Ausführung den 
               Wert Null zurück. Anderenfalls wird ein Wert 
               zurückgeliefert, bei dem die Bits gesetzt sind, die 
               nicht manipuliert werden konnten.

 Gruppe:       PMMU-Funktionshandler

 Querverweis:  ClearPageMode   GetHdv_inuse   GetPageSize   pmem_size 
                 PMMUversion   vmem_size