•  Back 
  •  BIOS 
  •  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-File3.7  Cookie-Jar                                                    TOS

Der Cookie-Jar wurde mit TOS 1.06 eingeführt und stellt eine 
Verallgemeinerung der Systemvariablen dar. Es handelt sich dabei um 
eine Tabelle von einzelnen Cookies die wie folgt definiert sind:

typedef struct
{
    BYTE cookie_id[4];   /* Identifikations-Code */
    LONG cookie_value;   /* Wert des Cookies     */
} COOKIE;

Um mit Cookies arbeiten bzw. diese nutzen zu können, inspiziert man 
zunächst den Inhalt der Systemvariablen _p_cookies (0x5a0L). Befindet 
sich hier ein Nullzeiger, so bedeutet dies, daß noch kein Cookie-Jar 
im Speicher installiert ist. Bei Einsatz der Mint-Libs des GCC sollten 
die dort zur Verfügung gestellten Funktionen benutzt werden!

Jeder andere Wert ist ein Zeiger auf eine Tabelle von Paaren von 32- 
Bit Werten (den sogenannten Cookie-Jar) der benutzt werden kann, um 
den Jar gezielt nach bestimmten Cookies abzusuchen.

Bei der Wahl eines Cookie-Namens sollte man unbedingt die folgenden 
Punkte beachten:

   ∙ Kennungen die mit '_' beginnen sind für Atari reserviert
   ∙ die Cookie-ID sollte aus vier ASCII-Zeichen bestehen
   ∙ man sollte aus der Cookie-ID auf das zugehörige Programm 
     schließen können

Das Ende des Cookie-Jars wird durch den Null-Cookie (Hex: 0x00000000) 
gekennzeichnet, der als Wert die maximale Anzahl von Einträgen im Jar 
enthält.

Um einen Cookie einzutragen, sucht man über _p_cookies nach dem Null- 
Cookie und überprüft, ob der Jar noch Platz für einen Eintrag bietet. 
Wenn dies der Fall ist, wird der neue Cookie an der Position des 
Null-Cookies eingefügt, welcher wiederum um eine Position nach unten 
geschoben wird. Anderenfalls muß Speicher für eine größere Tabelle 
angefordert werden, der alte Cookie-Jar kopiert, und die 
Systemvariable _p_cookies angepaßt werden.

Um einen Cookie zu löschen muss man diesen zunächst suchen, und dann 
alle folgenden Cookies (einschließlich des Null-Cookies) um eine 
Position nach vorne kopieren.

Um Doppelbelegungen bei den Cookie-Kennungen zu vermeiden, wird von 
Julian Reschke eine Liste geführt, in der alle offiziell gemeldeten 
Kennungen eingetragen werden.

Tip: Quelltexte für die wichtigsten Funktionen im Umgang mit dem 
Cookie-Jar finden sich in verschiedenen Mailboxen, und können auch der 
Zeitschrift ST-Computer (Ausgaben 12/1990, 01/1991) entnommen werden.

Querverweis: Cookie- und XBRA-Liste   BIOS   Beispiel-Code