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