Trailing-Edge
-
PDP-10 Archives
-
decuslib20-02
-
decus/20-0052/uflip.doc
There are 2 other files named uflip.doc in the archive. Click here to see a list.
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