 
 Type definitions
Type definitions
 OHEADER
OHEADER
 PrintDesc
PrintDesc
typedef struct _osheader
{
    uint16_t    os_entry;       /* BRAnch instruction to Reset-handler  */
    uint16_t    os_version;     /* TOS version number                   */
    void       *reseth;         /* Pointer to Reset-handler             */
    struct _osheader *os_beg;   /* Base address of the operating system */
    void       *os_end;         /* First byte not used by the OS        */
    int32_t     os_rsvl;        /* Reserved                             */
    GEM_MUPB   *os_magic;       /* GEM memory-usage parameter block     */
    int32_t     os_date;        /* TOS date (English !) in BCD format   */
    uint16_t    os_conf;        /* Various configuration bits           */
    uint16_t    os_dosdate;     /* TOS date in GEMDOS format            */
    /* The following components are available only as of TOS Version
       1.02 (Blitter-TOS)               */
    int8_t    **p_root;         /* Base address of the GEMDOS pool      */
    int8_t    **pkbshift;       /* Pointer to BIOS Kbshift variable
                                   (for TOS 1.00 see Kbshift)           */
    BASEPAGE  **p_run;          /* Address of the variables containing
                                   a pointer to the current GEMDOS
                                   process.                             */
    int8_t     *p_rsv2;         /* Reserved                             */
                                /* If EmuTOS is present, then 'ETOS'    */
} OSHEADER;
The structure also appears under the name SYSHDR.
| os_conf | The component os_conf contains the so-called NTSC/PAL
flag in its lowest bit; if this bit is set, then the machine has a PAL
video system, if cleared NTSC. The remaining bits contain a country
identifier, which can serve to denote the language used for menus etc.
for instance. The folowing assignments apply: 
 Warning: To obtain the language in use, one should fall back not to the OSHEADER if possible, but use the _AKP cookie or the function appl_getinfo (opcode 3). | ||||||
| p_root | With older TOS versions the address of p_root is 0x56FA
(0x7E0A in spanish TOS). | ||||||
| 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); /* Spanish TOS 1.0 */ else return ((BASEPAGE **)0x602c); } else return O->p_run; } | 
See also: Kbshift _sysbase System variables System vectors
 
 Type definitions
Type definitions
 OHEADER
OHEADER
 PrintDesc
PrintDesc