Example code and modules are provided for reading IFF files using iffparse.library. However, if you wish to read a non-complex FORM by hand, the following logic can be used. Once you have entered the FORM (for example, the FORM ILBM shown above), stored the FORM length (24070 in the ILBM example) and are positioned on the first chunk, you may: Loop: (Until end-of-file or end-of-form) - Read the 4-character identifier of the chunk - Read the 32-bit (4 byte) chunklength - Decide if you want that chunk if yes, read chunklength bytes into destination structure or buffer if no, seek forward chunklength bytes - If chunklength is odd, seek one more byte. Every IFF file is a FORM, LIST, or CAT chunk. You can recognize an IFF file by those first 4 bytes. ("FORM" is far and away the most common. We'll get to LIST and CAT below.) If the file contains a FORM, dispatch on the FORM type ID to a chunk-reader loop like the one above.
[Back to Amiga Developer Docs]