•  Back 
  •  Der Cookie von MagiC Mac 
  •  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-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