home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Frozen Fish 2: PC
/
frozenfish_august_1995.bin
/
bbs
/
d01xx
/
d0173.lha
/
IffLib
/
iff.h
< prev
next >
Wrap
C/C++ Source or Header
|
1989-02-04
|
3KB
|
140 lines
/* C include file for the iff.library Last update: 12-Jul-88
The C-Asm interface for Aztec C is also in this file, you can
convert it to a library if you want. I think this does not run
under Lattice C (I didn't try).
*/
#ifndef LIBRARIES_IFF_H
#define LIBRARIES_IFF_H
#ifndef EXEC_TYPES_H
#include "exec/types.h"
#endif
#define IFFNAME "iff.library"
#define IFFVERSION 15L /* Current library version */
/************** E R R O R - C O D E S ***********************************/
#define IFF_BADTASK -1 /* IffError() called by wrong task */
#define IFF_CANTOPENFILE 16 /* File not found */
#define IFF_READERROR 17 /* Error reading file */
#define IFF_NOMEM 18 /* Not enough memory */
#define IFF_NOTIFF 19 /* File is not an IFF file */
#define IFF_WRITEERROR 20 /* Error writing file */
#define IFF_NOILBM 24 /* IFF file is not of type ILBM */
#define IFF_NOBMHD 25 /* BMHD chunk not found */
#define IFF_NOBODY 26 /* BODY chunk not found */
#define IFF_TOOMANYPLANES 27 /* BODY has more planes than BitMap */
#define IFF_UNKNOWNCOMPRESSION 28 /* Unknown compression type */
/************** S T R U C T U R E S *************************************/
struct Chunk
{
LONG ckID;
LONG ckSize;
UBYTE ckData[1]; /* should be UBYTE ckData[ckSize] */
};
struct BitMapHeader
{
UWORD w,h;
WORD x,y;
UBYTE nPlanes;
UBYTE masking;
UBYTE compression;
UBYTE pad1;
UWORD transparentColor;
UBYTE xAspect,yAspect;
WORD pageWidth,pageHeight;
};
/************** F U N C T I O N D E C L A R A T I O N S ***************/
APTR OpenIFF();
void CloseIFF();
struct Chunk *FindChunk();
LONG GetColorTab();
struct BitMapHeader *GetBMHD();
BOOL DecodePic();
BOOL SaveBitMap();
BOOL SaveClip();
LONG IffError();
UWORD GetViewModes();
/************** C - A S S E M B L E R I N T E R F A C E ***************/
#asm
; :ts=8
public _IFFBase
public _OpenIFF
_OpenIFF: move.l 4(sp),a0
move.l _IFFBase,a6
jmp -30(a6)
public _CloseIFF
_CloseIFF: move.l 4(sp),a1
move.l _IFFBase,a6
jmp -36(a6)
public _FindChunk
_FindChunk: move.l 4(sp),a1
move.l 8(sp),d0
move.l _IFFBase,a6
jmp -42(a6)
public _GetBMHD
_GetBMHD: move.l 4(sp),a1
move.l _IFFBase,a6
jmp -48(a6)
public _GetColorTab
_GetColorTab: move.l 4(sp),a1
move.l 8(sp),a0
move.l _IFFBase,a6
jmp -54(a6)
public _DecodePic
_DecodePic: move.l 4(sp),a1
move.l 8(sp),a0
move.l _IFFBase,a6
jmp -60(a6)
public _SaveBitMap
_SaveBitMap: move.l a2,-(sp)
movem.l 8(sp),a0/a1/a2
move.l 20(sp),d0
move.l _IFFBase,a6
jsr -66(a6)
move.l (sp)+,a2
rts
public _SaveClip
_SaveClip: movem.l d4/a2,-(sp)
movem.l 24(sp),d0-d4
movem.l 12(sp),a0-a2
move.l _IFFBase,a6
jsr -72(a6)
movem.l (sp)+,d4/a2
rts
public _IffError
_IffError: move.l _IFFBase,a6
jmp -78(a6)
public _GetViewModes
_GetViewModes: move.l 4(sp),a1
move.l _IFFBase,a6
jmp -84(a6)
#endasm
#endif !LIBRARIES_IFF_H