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 Der Cookie von MagiC Mac TOS Das Betriebssystem MagiC Mac [eine Portierung von MagiC auf die Hardware des Apple (Power) Macintosh] legt einen Cookie MgMc an, der auf die folgende Struktur zeigt: typedef struct { SHORT vers; /* Versionskennung im BCD-Format */ SHORT size; /* Größe der Struktur in Bytes */ LONG flags1; /* verschiedene Flags: */ /* */ /* Bit-0: 640*400-Emulation aktiv */ /* Bit-1: Rechts-Shift möglich */ /* Bit-2: 2-Tasten-Maus */ /* Bit-3: 68K-Emulation auf Power-PC */ /* Bit-4: u. I/O-Bereich nicht vorh. */ /* Bit-5: o. I/O-Bereich nicht vorh. */ /* */ /* Hinweis: Bit-2 steht erst ab */ /* der Version 1.01, Bit-3 ab Version */ /* 1.05 und die folgenden erst ab Ver- */ /* sion 1.10 zur Verfügung. */ PixMap *scrnPMPtr; /* Zeiger auf Screen-Beschreibung */ BOOLEAN *updatePalette; /* Ist zu setzen, um Farbtabellen */ /* zu restaurieren */ ProcPtr modeMac; /* MMU-Umschaltung auf Mac-Modus */ ProcPtr modeAtari; /* MMU-Umschaltung auf Atari-Modus */ ProcPtr getBaseMode; /* Liefert in D0.W den MMU-Modus. */ /* Es gilt: */ /* */ /* 0 = Macintosh */ /* <> 0 = Atari */ ProcPtr getIntrCount; /* Liefert in D0.L Intr-Semaphore- */ /* Zähler (0 = frei) */ ProcPtr intrLock; /* Erhöht Interrupt-Semaphore-Zähler */ ProcPtr intrUnlock; /* Erniedrigt Inter.-Semaphore-Zähler */ ProcPtr callMacContext; /* Führt Routine im Mac-Kontext aus; */ /* Proc-Adr auf Stack. */ /* */ /* Achtung: Die RegisterD0-D2/A0/A1 */ /* A5 und A7 werden zerstört. */ Ptr atariZeroPage; /* Zeiger auf Atari-Speicherbereich */ /* $0-$800 im Macintosh-Adreßraum */ Ptr macA5; /* Wert des A5-Regist. im Mac-Kontext */ ProcPtr macAppSwitch; /* Aufruf durch MagiC-Kernel (D0/4(A7).*/ /* Es gilt: */ /* */ /* 0 = Suspend */ /* 1 = Resume */ /* 2 = Quit */ /* 3/4 = atariModePossbile wechselt */ ProcPtr controlSwitch; /* Aufruf durch MagiC-Kernel (D0/4(A7) */ /* Es gilt: */ /* */ /* 0 = Atari-Screen verstecken */ /* 1 = Atari-Screen zeigen */ LONG hardwareAttr1; /* z.Zt. undefiniert. */ LONG hardwareAttr2; /* z.Zt. undefiniert. */ Ptr magiC_BP; /* BASEPAGE des MagiC OS. */ Ptr auxOutName; /* Pascal-String für AUX-Ausg.-Device */ Ptr auxInName; /* Pascal-String für AUX-Eing.-Device */ ProcPtr auxControl; /* Aufruf durch MagiC-Kernel (D0/4(A7) */ /* Es gilt: */ /* */ /* 0 = Suspend */ /* 1 = Resume */ /* 2 = Quit */ PrintDesc *printDescPtr; GenProc configKernel; /* Aufruf (C-Konvention) Atari-Modus */ BOOLEAN *atariModePossible; /* Zeiger auf ein Flag das anzeigt, ob */ /* der Aufruf von modeAtari z.Zt. er- */ /* laubt ist. */ MacVersion *versionOfMacAppl; /* Version der MagiC Mac-Applikation */ /* (ab Version 1.06) */ VOID *hwEmulSupport; /* interner Gebrauch (ab Version 1.07) */ FlpDrvInfo *floppyDrvInfoPtr; /* zeigt auf Infos für Laufwerke A und */ /* B (ab Version 1.07) */ XCMDgrRec *xcmdMgrPtr; /* XCMD-Interface (ab Version 1.08) */ ProcPtr giveTimeToMac; /* Aufrufen im Mac-Kontext falls idle */ LONG minStackSize; /* Mindest-Supervisor-Stackgröße */ GenProc ext; /* Hilfsroutinen, Aufr. aus Atari-Mode */ GenProc extMac; /* analog 'ext'; Aufruf aus Mac-Modus */ ProcPtr stackLoad; /* (ab 1.11 / MagiC Mac 2.0) */ ProcPtr stackUnload; /* (ab 1.11 / MagiC Mac 2.0) */ LONG reserved[3]; /* z.Zt. undefiniert */ } MgMcCookie; Hinweise: ∙ Die Komponenten giveTimeToMac und minStackSize stehen erst ab Version 1.09 zur Verfügung; alle weiteren Komponenten erst ab Version 1.10. ∙ Unbenutzte Bits und undefinierte Werte sind stets Null! ∙ Alle Zeiger bleiben konstant, d.h., es ist erlaubt, sich einmal die Zeigerinhalte zu kopieren und damit dann zu arbeiten. ∙ Aufruf nach C-Konvention bedeutet, daß Parameter auf dem Stack übergeben werden und daß Register D0-D2/A0-A2 zerstört werden können. Querverweis: MagiC Mac-Typvereinbarungen Cookie- und XBRA-Liste