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.