UFLIP LIBRARIES CONSIST OF THREE TYPES OF BLOCKS: INDEX BLOCKS, RIB BLOCKS, AND DATA BLOCKS. THE LIBRARY BEGINS WITH ONE OR MORE INDEX BLOCKS CONSISTING OF A SET OF TWO WORD ENTRIES, ONE ENTRY FOR EACH FILE IN THE LIBRARY DENOTING ITS NAME, EXTENSION AND LENGTH IN BLOCKS. THE INDEX IS FOLLOWED BY THE EXTENDED LOOKUP TABLE (RIB) FOR THE FIRST FILE IN THE LIBRARY. THIS BLOCK IS THEN FOLLOWED BY THE FIRST FILE. RIBS AND DATA THEN ALTERNATE THROUGGHOUT THE LIBRARY AND ARE IN THE SAME ORDER AS THE ENTRIES IN THE INDEX. TO ASSEMBLE, LOAD, AND SAVE THE REENTRANT UFLIP TYPE LOAD @UFLIP SSAVE UFLIP WHEN UFLIP APPENDS TO A LIBRARY, IT USES THE UPDATE MODE. THIS CAN BE A PROBLEM IF THE DISK IS NEARLY FULL AND THE LIBRARY FILE BECOMES BADLY FRAGMENTED. THE PROBLEM IS THAT THE INDEX OF THE LIBRARY FILE GETS UPDATED BEFORE THE APPEND IS ATTEMPTED AND IF THE ATTEMPT FAILS THE INDEX AND THE LAST FEW BLOCKS OF THE LIBRARY ARE MESSED UP. THIS CAN BE ALLEVIATED BY PREVENTING A SIMPLE APPEND, BUT INSTEAD REQUIRING THE ENTIRE LIBRARY TO BE RECOPIED ON EACH APPEND. THEN WHEN THE FRAGMENTATION PROBLEM OCCURS, A RESET WITHIN UFLIP WILL NEGATE THE ENTIRE APPEND. OF COURSE IN THIS MODE UFLIP RUNS CONSIDERABLY SLOWER, WHILE APPENDING, AND MORE DISK SPACE IS TIED UP DURING THE APPEND IN THAT MULTIPLE COPIES EXIST. TO CREATE THE VERSION REQUIRING COPYING DURING AN APPEND USE LOAD @CATCH SSAVE UFLIP