•  Back 
  •  MagiC Mac-Spezifika 
  •  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  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