summaryrefslogtreecommitdiff
path: root/Programmer/iff.i
blob: bc304a55e842e02c008cfb7c1a549f08acecdb6d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
		IFND	LIBRARIES_IFF_I
LIBRARIES_IFF_I	SET	1
**
**	$Id: iff.i,v 22.1 92/06/02 16:46:32 chris Exp $
**	$Revision: 22.1 $
**
**	$Filename: Libraries/iff.i $
**	$Author: Christian A. Weber $
**	$Release: 23.2 $
**	$Date: 92/06/02 16:46:32 $
**
**	Standard header file for programs using iff.library
**
**	COPYRIGHT (C) 1987-1992 BY CHRISTIAN A. WEBER, BRUGGERWEG 2,
**	CH-8037 ZUERICH, SWITZERLAND (chris@mighty.adsp.sub.org).
**	THIS FILE MAY BE FREELY DISTRIBUTED. USE AT YOUR OWN RISK.
**

		XREF	_IFFBase

IFFNAME		MACRO
		dc.b	'iff.library',0
		ENDM

IFFVERSION:	EQU	23		; Current library version


*****************************************************************************
**	Error codes (returned by IFFL_IFFError())

IFFL_ERROR_BADTASK	EQU	-1	; IFFL_IFFError() called by wrong task
IFFL_ERROR_OPEN		EQU	16	; Can't open file
IFFL_ERROR_READ		EQU	17	; Error reading file
IFFL_ERROR_NOMEM	EQU	18	; Not enough memory
IFFL_ERROR_NOTIFF	EQU	19	; File is not an IFF file
IFFL_ERROR_WRITE	EQU	20	; Error writing file
IFFL_ERROR_NOILBM	EQU	24	; IFF file is not of type ILBM
IFFL_ERROR_NOBMHD	EQU	25	; BMHD chunk not found
IFFL_ERROR_NOBODY	EQU	26	; BODY chunk not found
IFFL_ERROR_BADCOMPRESSION EQU	28	; Unknown compression type
IFFL_ERROR_NOANHD	EQU	29	; ANHD chunk not found
IFFL_ERROR_NODLTA	EQU	30	; DLTA chunk not found

		IFD	IFFLIB_PRE21NAMES
IFF_BADTASK		EQU	-1
IFF_CANTOPENFILE	EQU	16
IFF_READERROR		EQU	17
IFF_NOMEM		EQU	18
IFF_NOTIFF		EQU	19
IFF_WRITEERROR		EQU	20
IFF_NOILBM		EQU	24
IFF_NOBMHD		EQU	25
IFF_NOBODY		EQU	26
IFF_TOOMANYPLANES	EQU	27
IFF_UNKNOWNCOMPRESSION	EQU	28
IFF_NOANHD		EQU	29
IFF_NODLTA		EQU	30
		ENDC


*****************************************************************************
**	Common IFF IDs

**	Generic IFF IDs

	IFND	ID_FORM		; don't redefine if iffparse.i is included
ID_FORM 	EQU	'FORM'
ID_CAT  	EQU	'CAT '
ID_LIST 	EQU	'LIST'
ID_PROP 	EQU	'PROP'
	ENDC

**	Specific IFF IDs

ID_ANIM 	EQU	'ANIM'
ID_ANHD 	EQU	'ANHD'
ID_ANNO 	EQU	'ANNO'
ID_BMHD 	EQU	'BMHD'
ID_BODY 	EQU	'BODY'
ID_CAMG 	EQU	'CAMG'
ID_CLUT 	EQU	'CLUT'
ID_CMAP 	EQU	'CMAP'
ID_CRNG 	EQU	'CRNG'
ID_CTBL 	EQU	'CTBL'
ID_DLTA 	EQU	'DLTA'
ID_ILBM 	EQU	'ILBM'
ID_SHAM 	EQU	'SHAM'

ID_8SVX 	EQU	'8SVX'
ID_ATAK 	EQU	'ATAK'
	IFND ID_NAME
ID_NAME 	EQU	'NAME'
	ENDC
ID_RLSE 	EQU	'RLSE'
ID_VHDR 	EQU	'VHDR'


*****************************************************************************
**	Library offsets (_LVOIFFL_...) are now in iff.lib.
**	For compatibility, here are the old (pre-V21) ones:

		IFD	IFFLIB_PRE21NAMES
_LVOOpenIFF	EQU	-30	; (filename)			(A0)
_LVOCloseIFF	EQU	-36	; (ifffile)			(A1)
_LVOFindChunk	EQU	-42	; (ifffile,chunkname)		(A1,D0)
_LVOGetBMHD	EQU	-48	; (ifffile)			(A1)
_LVOGetColorTab EQU	-54	; (ifffile,colortable)		(A1/A0)
_LVODecodePic	EQU	-60	; (ifffile,bitmap)		(A1/A0)
_LVOSaveBitMap	EQU	-66	; (name,bmap,ctab,crmd)		(A0-A2,D0)
_LVOSaveClip	EQU	-72	; (name,bmap,ctab,crmd,x,y,w,h)	(A0-A2,D0-D4)
_LVOIFFError	EQU	-78	; ()				()
_LVOGetViewModes EQU	-84	; (ifffile)			(A1)
_LVONewOpenIFF	EQU	-90	; (filename,memtype)		(A0,D0)
_LVOModifyFrame EQU	-96	; (modifyform,bitmap)		(A1/A0)
		ENDC


*****************************************************************************
**	Modes for IFFL_OpenIFF()

IFFL_MODE_READ		EQU	0
IFFL_MODE_WRITE		EQU	1


*****************************************************************************
**	Modes for IFFL_CompressBlock() and IFFL_DecompressBlock()

IFFL_COMPR_NONE		EQU	$0000		; generic
IFFL_COMPR_BYTERUN1	EQU	$0001		; ILBM
IFFL_COMPR_FIBDELTA	EQU	$0101		; 8SVX

*****************************************************************************
**	Structure definitions

bmh_Width		EQU	0	; BMHD: struct BitMapHeader
bmh_Height		EQU	$2
bmh_XPos		EQU	$4
bmh_YPos		EQU	$6
bmh_nPlanes		EQU	$8
bmh_Masking		EQU	$9
bmh_Compression		EQU	$A
bmh_Pad1		EQU	$B
bmh_TranspCol		EQU	$C
bmh_XAspect		EQU	$E
bmh_YAspect		EQU	$F
bmh_PageWidth		EQU	$10
bmh_PageHeight		EQU	$12
bmh_SIZEOF		EQU	$14

anh_Operation		EQU	0	; ANHD: struct AnimHeader
anh_Mask		EQU	$1
anh_W			EQU	$2
anh_H			EQU	$4
anh_X			EQU	$6
anh_Y			EQU	$8
anh_AbsTime		EQU	$A
anh_RelTime		EQU	$E
anh_Interleave		EQU	$12
anh_pad0		EQU	$13
anh_Bits		EQU	$14
anh_pad			EQU	$18
anh_SIZEOF		EQU	$28

		ENDC