•  Back 
  •  GEMDOS-Strukturen 
  •  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-File5.20.15  DOSVARS                                                   TOS

typedef struct
{
   int8_t    *in_dos;                 /* Adresse der DOS- Semaphore */
   int16_t   *dos_time;               /* Adresse der DOS- Zeit      */
   int16_t   *dos_date;               /* Adresse des DOS- Datums    */
   int32_t   res1;                    /*                            */
   int32_t   res2;                    /*                            */
   int32_t   res3;                    /* ist 0L                     */
   VOID      *act_pd;                 /* Laufendes Programm         */
   int32_t   res4;                    /*                            */
   int16_t   res5;                    /*                            */
   VOID      *res6;                   /*                            */
   VOID      *res7;                   /* interne DOS- Speicherliste */
   VOID      (*resv_intmem)();        /* DOS- Speicher erweitern    */
   int32_t   (*etv_critic)();         /* etv_critic des GEMDOS      */
   int8_t *  ((*err_to_str)(int8_t e)); /* Umrechnung Code->Klartext*/
   int32_t   res8;                    /*                            */
   int32_t   res9;                    /*                            */
   int32_t   res10;                   /*                            */
} DOSVARS;

Hinweis: Diese Variablen sind READ-ONLY !

Mit Hilfe der Funktion resv_intmem läßt sich ähnlich wie mit FOLDRnnnn 
Speicher für die interne Speicherverwaltung reservieren. Im Gegensatz 
zu TOS wird diese jedoch deutlich weniger belastet, so daß ein 
Erweitern i.a. nicht notwendig ist. Muß der Speicher erweitert werden, 
was auch in ADDMEM geschieht, übergibt man der Funktion resv_intmem in 
Register A0 die Adresse, und in Register D0 die Länge des zu 
reservierenden Speicherblocks.

Der Prototyp für den Event-Critic-Handler lautet:

int32_t etv_critic (int16_t errcode, int16_t drvnr)

Man beachte, daß die Funktion die Argumente auf dem Stack erwartet, 
und daher in Pure-C als cdecl deklariert werden muß.

Die Funktion err_to_str erwartet in Register D0 einen TOS-Fehlercode, 
und gibt in den Registern D0 und A0 einen Zeiger auf die beschreibende 
Zeichenkette zurück. Bei einem ungültigen Fehlercode erhält man in D0 
eine Null, und in A0 einen Zeiger auf die Zeichenkette 'TOS-Fehler'.

Aus der Sicht von KAOS 1.4.2 sieht die Struktur folgendermaßen aus:

typedef struct
{
   int8_t    *in_dos;                 /* Adresse der DOS- Semaphore */
   int16_t   *dos_time;               /* Adresse der DOS- Zeit      */
   int16_t   *dos_date;               /* Adresse des DOS- Datums    */
   int32_t   dos_stack;               /* Stack für DOS selbst       */
   int32_t   pgm_superset;            /* Benutzerpgm.-Sup.stack     */
   MD        *menlist[3];             /* Adresse der 3 MD-Listen    */
   VOID      *act_pd;                 /* Laufendes Programm         */
   FCB       *fcbx;                   /* Dateien                    */
   int16_t   fcbn;                    /* Länge von fcbx[]           */
   DMD       *dmdx;                   /* Zeiger auf 16 DMDs         */
   IMB       *imbx;                   /* interne DOS- Speicherliste */
   VOID      (*resv_intmem)();        /* DOS- Speicher erweitern    */
   int32_t   (*etv_critic)();         /* etv_critic des GEMDOS      */
   int8_t *  ((*err_to_str)(int8_t e)); /* Umrechnung Code->Klartext  */
} DOSVARS;

Querverweis: AESVARS   Cookie von MagiC   Sconfig