•  Back 
  •  Typdefinitionen 
  •  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-File16.9.14  OSHEADER                                                  TOS

typedef struct _osheader
{
    uint16_t    os_entry;       /* BRAnch-Instruktion zum Reset-Handler */
    uint16_t    os_version;     /* TOS-Versionsnummer                   */
    void       *reseth;         /* Zeiger auf Reset-Handler             */
    struct _osheader *os_beg;   /* Basisadresse des Betriebssystems     */
    void       *os_end;         /* erstes nicht vom BS benutztes Byte   */
    int32_t     os_rsvl;        /* reserviert                           */
    GEM_MUPB   *os_magic;       /* GEM-Memory-Usage-Parameter-Block     */
    int32_t     os_date;        /* TOS-Datum (englisch !) im BCD-Format */
    uint16_t    os_conf;        /* verschiedene Konfigurationsbits      */
    uint16_t    os_dosdate;     /* TOS-Datum im GEMDOS-Format           */

    /* Die folgenden Komponenten stehen erst ab TOS-Version 1.02
       (Blitter-TOS) zur Verfügung */
    int8_t    **p_root;         /* Basisadresse des GEMDOS-Pools        */
    int8_t    **pkbshift;       /* Zeiger auf BIOS-Kbshift-Variable
                                   Für TOS 1.00 siehe Kbshift           */
    BASEPAGE  **p_run;          /* Adresse der Variablen, die einen
                                   Zeiger auf den aktuellen GEMDOS-
                                   Prozess enthält.                     */
    int8_t     *p_rsv2;         /* reserviert                           */
                                /* Falls EmuTOS vorhanden, dann 'ETOS'  */
} OSHEADER;

Die Struktur tauch auch unter dem Namen SYSHDR auf.

Hinweis:

 os_conf  Die Komponente os_conf enthält im untersten Bit das 
          sogenannte NTSC/PAL-Flag; ist dieses Bit gesetzt, so handelt 
          es sich um ein PAL-Videosystem. Die restlichen Bits 
          beinhalten eine Länderkennung, die z.B. dazu dienen kann, 
          die zu benutzende Sprache zu erkennen. Es gilt die folgende 
          Belegung:

             Wert     Land 
           0 bis 126  siehe bei der Beschreibung des _AKP-Cookie 
              127     Alle Länder werden unetrstützt. 

          Achtung: Um die zu benutzende Sprache zu ermitteln, sollte 
          nach Möglichkeit nicht auf den OSHEADER, sondern auf den 
          _AKP-Cookie bzw. auf die Funktion appl_getinfo (Opcode 3) 
          zurückgegriffen werden.

 p_root   Bei TOS 1.00 befindet sich der Zeiger bei der Adresse 
          0x56FA.

 p_run

          BASEPAGE **GetRun (void)
          {
            int32_t savessp = Super (0L);
            OSHEADER *O = *((OSHEADER **)(0x4f2L);
            Super ((void *) savessp );
 
            O = O->os_beg;   /* wegen eines Fehlers in alter AHDI-Version */
 
            if (O->os_version < 0x102)
            {
              if ((O->os_conf >> 1) == 4)      /* PAL-Modus wegshiften */
                return ((BASEPAGE **)0x873c);  /* Spanisches TOS 1.0   */
              else
                return ((BASEPAGE **)0x0x602c);
            }
            else
              return O->p_run;
          }

Querverweis: Kbshift   _sysbase   Systemvariablen   Systemvektoren