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-File14.1.11.5 callMacContext TOS ... dient dazu, die notwendige Macintosh-Umgebung zum Aufruf beliebiger MacOS-Routinen herzustellen. Die Routine muß im Mac-Modus aufgerufen werden, im Supervisor-Modus und nicht aus einem Interrupt heraus. Dazu ist auf dem Stack die Adresse der Routine zu übergeben, die als Subroutine im Mac-Kontext aufzurufen ist. Für die aufgerufene Routine wird der normale User-Stack von MagiC Mac verwendet, zudem wird das Register A5 mit macA5 geladen und im Falle, daß Virtual Memory aktiv ist, auch in den User-Modus geschaltet. Da diese Funktion den Stack wechselt, ist keine Parameterübergabe über den Stack möglich. Die Register D0-D2/A0/A1/A5/A7 werden sowohl beim Aufruf als auch bei der Rückkehr der Subroutine verändert (jedoch haben A5/A7 nach Rückkehr von 'callMacContext' die selben Werte wie vor dem Aufruf). Die anderen Register werden nicht verändert und können zur Parameterübergabe und -rückgabe benutzt werden. Die Ausführung dieser Subroutine bringt implizit den Aufruf von intrLock und intrUnlock mit sich, das heißt, währenddessen werden keine Mac-Tasks bearbeitet, auch wenn dabei zeitweise in den Atari- Modus gewechselt wird. Um trotzdem die Bearbeitung von Mac-Tasks zu ermöglichen, kann die Funktion 'giveTimeToMac' aufgerufen werden. Querverweis: Cookie von MagiC Mac Cookie- und XBRA-Liste