home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ST-Computer Leser 2002 January
/
STC_CD_01_2002.iso
/
UTILS
/
LIBERTY
/
DEVELOP
/
LIBERTY.H
< prev
next >
Wrap
C/C++ Source or Header
|
1997-12-20
|
3KB
|
102 lines
/* Keksdefinition von 'Liberty'
* 1 TAB = 4 SPACES !!!
*
* Pure-Pascal-Programmierer müssen diese Datei entsprechend anpassen -
* wer machts?
*
* (c)1995 by Christian 'chrisker' Krüger
*/
#ifndef _LIBERTY_H_
#define _LIBERTY_H_
#include <portab.h>
#include <tos.h>
#include <vdi.h>
#include <ibmr.h> /* Definition der Bild-Typen */
#define CJar( mode, cookie, value ) xbios(CJar_xbios,mode,cookie,value)
#define CJar_xbios 0x434A /* "CJ" */
#define CJar_OK 0x6172 /* "ar" */
#define COOKIE_LIBERTY 0x4C697479L /* "Lity" */
/* Die einzelnen Erweiterungen: (Parameterübergabe nach PureC
* Konvention!!!)
*/
/* Verschiedene Funktionen */
typedef struct
{
LONG (*Init_Liberty)(WORD g_handle);
void (*lock_Sema)(BYTE *semaphore);
void (*release_Sema)(BYTE *semaphore);
void (*memcpy)(void *dest, void *src, ULONG len);
void (*memset)(void *dest, int val, ULONG len);
} Lity_Utils;
/*---------------------------------------*/
/* Funktionen mit GEMDOS Charakteristik: */
/*---------------------------------------*/
typedef struct /* INTERNE!!! Speicherverwaltungsinfo */
{
WORD sngl_acc; /* Alle Variablen sind */
void *stgblosb; /* vom Benutzer NICHT anzutasten!!! */
void *stgblsbb;
void *stprlosb;
void *stprlsbb;
void *ttgblosb;
void *ttgblsbb;
void *ttprlosb;
void *ttprlsbb;
void *stgblist;
void *stprlist;
void *ttgblist;
void *ttprlist;
} Meminfo;
/* Malloc Typen */
#define MM_STGLOBAL 0
#define MM_STPRIVATE 1
#define MM_TTGLOBAL 2
#define MM_TTPRIVATE 3
typedef struct
{
Meminfo * (*CK_init_meminfo)(Meminfo *info, BOOLEAN app);
void * (*CK_malloc)(Meminfo *info, const long size, const WORD type);
void * (*CK_realloc)(Meminfo *info, const void *block, const LONG newsize);
void (*CK_free)(const Meminfo *info, const void *ptr);
void *reserved;
void * (*CK_load_buffer)(char *filename, Meminfo *info, WORD type, LONG addmem, LONG *buflen);
} Lity_GDExt;
/*-------------------------------------------------------------------*/
/* Der Keks 'Lity' hat einen Zeiger, der auf folgende Struktur
* weist:
*/
typedef struct
{
WORD version; /* Hexadezimale Version. (0x0100 = 1.0) */
WORD gdriver; /* Unterstützes Grafiksystem (READ_ONLY!):
* 0 = keins -> Standardformat (SLOW)
* 1 = ATARI Grafiksystem (IBPs)
* 2 = NOVA Grafikkarten
* 3 = andere Grafikkarten / Mac
(ist bist zur Version 1.5 ungültig!!! */
Lity_Utils *misc_funcs;/* Zeiger auf diverse Routinen */
Lity_GDExt *gd_funcs; /* Zeiger auf die 'GEMDOS'-Erweiterungen */
void *vdi_funcs; /* Zeiger auf die 'VDI'-Erweiterungen */
void *aes_funcs; /* Zeiger auf die 'AES'-Erweiterungen */
void *snd_funcs; /* Zeiger auf Sound-Funktionen */
} Liberty_Cookie;
#endif