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