Updated PCI IDs to latest snapshot.
[tangerine.git] / tools / dtdesc / c_iff / c_iff.html
blob2aabe84ca60578d0b15f594a25c1193a2e88bf68
1 <html>
2 <head>
3 <title>
4 c_iff - a portable IFF parser
5 </title>
6 </head>
7 <body>
8 <h1 align="center">
9 c_iff - a portable IFF parser
10 </h1>
12 <h2>
13 Contents
14 </h2>
15 <ul>
16 <li>
17 <a href="#Introduction">Introduction</a>
18 </li>
19 <li>
20 <a href="#Background">Background</a>
21 </li>
22 <li>
23 <a href="#Portability">Portability</a>
24 </li>
25 <li>
26 <a href="#Installation">Installation</a>
27 </li>
28 <li>
29 <a href="#Documentation">Documentation</a>
30 </li>
31 <li>
32 <a href="#CopLic">Copyright and License</a>
33 </li>
34 <li>
35 <a href="#Author">Author</a>
36 </li>
37 <li>
38 <a href="#VerHis">Version History</a>
39 </li>
40 </ul>
42 <a name="Introduction"></a>
43 <h2>
44 Introduction
45 </h2>
46 c_iff is a portable IFF parser library written entirely in simple C.
47 With this library you can read and write IFFs in an easy way.
48 It is inspired by the Amigas own iffparse.library, but without its
49 esotheric behaviour.
51 <a name="Background"></a>
52 <h2>
53 Background
54 </h2>
55 IFF - Interchange File Format is the Amigas way to store data in a
56 generic form. An IFF can contain nearly every type of data you can
57 imagine, e.g. pictures (ILBM), animations (ANIM), sounds (AIFF),
58 text (FTXT) or all of this in one file. This file can also contain
59 Meta-information like the authors name or a version-strings.
60 In the PC-world the name IFF is wrongly attached to the IFF-subtype
61 ILBM, a picture-format.
63 <a name="Portability"></a>
64 <h2>
65 Portability
66 </h2>
67 c_iff is written in clean ANSI-C. It uses only simple functions
68 from &lt;stdlib.h&gt; and &lt;stdio.h&gt; .
69 So it should be portable to anything, a C-compiler exists for.
70 I have tested it on the following machines:
72 <ul>
73 <li>
74 AmigaOS native m68k with different compilers
75 </li>
76 <li>
77 AmigaOS PowerUp PPC with the vbccppc compiler
78 </li>
79 <li>
80 Linux APUS PPC with the gcc compiler
81 </li>
82 <li>
83 Linux SuSE AMD K6 with the gcc compiler
84 </li>
85 </ul>
87 You see, it runs on Big and Little Endian machines.
88 IFFs are stored in Big Endian order. To write portable code you must
89 swap the bytes of multibyte numbers before you write them to an IFF
90 or after you read them from an IFF. c_iff provides the two macros
91 Swap16IfLE and Swap32IfLE to do this.
92 If you are on a Big Endian machine you might have to add your machine to c_iff.h
93 64-bit machines (and 16-bit machines) are now supported too.
94 Never use your machines (unsigned) char, short, int, long numbers if you deal
95 with IFFs. Instead use the CARDXX and INTXX definitions from c_iff.h .
97 <a name="Installation"></a>
98 <h2>
99 Installation
100 </h2>
101 There is no configure and such things, just a simple Makefile.
102 This should be usable for any unixoid system, that has cc, ar and ranlib.
103 Just type "make" to build the statical library libc_iff.a .
104 To build the documentation, type "make doc". This requieres perl installed.
105 "make example" builds the example.
107 <a name="Documentation"></a>
108 <h2>
109 Documentation
110 </h2>
111 c_iff has a build in documentation. This is generated by a "make doc" .
112 This produces a file <a href="c_iff.txt">c_iff.txt</a> . This file
113 is in Amigas AutoDoc format, a simple ASCII-format.
114 The file <a href="example.c">example.c</a> shows how to use c_iff to read and write
115 IFFs. The binary is build by "make example" .
117 <h2>
118 Limitations
119 </h2>
120 c_iff currently only supports FORM IFFs. But the other types of IFFs are very rare.
121 If you need them, tell me.
123 <a name="CopLic"></a>
124 <h2>
125 Copyright and License
126 </h2>
127 c_iff is Copyright (C) 2000, 2001 Joerg Dietrich
129 <pre>
130 This is the AROS-version of c_iff.
131 It is distributed under the AROS Public License.
132 But I reserve the right to distribute
133 my own version under other licenses.
134 </pre>
136 <a name="Author"></a>
137 <h2>
138 Author
139 </h2>
140 c_iff is written by me, J&ouml;rg Dietrich .
141 You can reach me at <a href="mailto:Dietrich_Joerg@t-online.de">Dietrich_Joerg@t-online.de</a>.
143 <a name="VerHis"></a>
144 <h2>
145 Version History
146 </h2>
147 06-Nov-2000 : initial release
148 <br>
149 11-Nov-2001 : bug-fixes, support for non 32-bit architectures
152 <center>
153 <small>
154 Copyright &copy; 2000, 2001 <a href="mailto:Dietrich_Joerg@t-online.de">J&ouml;rg Dietrich</a>
155 <br>
156 Last change: 11-Nov-2001
157 </small>
158 </center>
159 </body>
160 </html>