With just StopChunk(), PropChunk(), and ParseIFF(), you can write a viable ILBM display program. Since IFFParse knows all about IFF structure and scoping, such a display program would have the added ability to parse complex FORMs, LISTs, and CATs and attempt to find imagery buried within. Such an ILBM reader might appear as follows: iff = AllocIFF(); iff->iff_Stream = Open ("shuttle dog", MODE_OLDFILE); InitIFFasDOS (iff); OpenIFF (iff, IFFF_READ); PropChunk (iff, ID_ILBM, ID_BMHD); PropChunk (iff, ID_ILBM, ID_CMAP); PropChunk (iff, ID_ILBM, ID_CAMG); StopChunk (iff, ID_ILBM, ID_BODY); ParseIFF (iff, IFFPARSE_SCAN); if (bmhdprop = FindProp (iff, ID_ILBM, ID_BMHD)) configurescreen (bmhdprop); else bye ("No BMHD, no picture."); if (cmapprop = FindProp (iff, ID_ILBM, ID_CMAP)) setcolors (cmapprop); else usedefaultcolors (); if (camgprop = FindProp (iff, ID_ILBM, ID_CAMG)) setdisplaymodes (camgprop); decodebody (iff); showpicture (); CloseIFF (iff); Close (iff->iff_Stream); FreeIFF (iff); Open the Library. ----------------- Application programs must always open iffparse.library before using the functions outlined above. Only Example Programs Skip Error Checking. ------------------------------------------ Error checking is not used in the example above for the sake of clarity. A real application should always check for errors.