' "DDM ==> Direct Data Manager/Disk Data Manager ASSUMPTIONS: 1) Object Computer is a DEC PDP10 2) Operating System is either TENEX or TOPS-20. (Not ITS!) 2a) Data File is 'holey', i.e., its pages may be non-contiguous. 2b) Page size is 512 words. 2c) Page numbers from 0 to (2**18)-1 are legal. 3) Data file 'belongs' to a single process/user, no locking, unlocking, communication, or shared data protocols are supported. 4) All disk access are carried out by mapping pages of the data file into core and modifying the mapped page. No direct/random access of the data file is used. 5) The size of a data item (# of words needed to store it) must be known before the data item is written." "**************** OFFSETS ON 'DDMCHAN' TYPE *********************" FIX FIX>> 0 0> DDMCHAN>> "Offsets on page-map triads" "Offsets on request UVECTOR quads" > >> "Fixed offsets and sizes for allocator and item locking tables" "Page allocations for allocator tbl and item locking tbl" > > > >> "Offsets on allocator table pages (including page zero)" >> >> >> >> "Offsets on item locking pages for assigning item id's" >> >> "Offsets on item locking pages for allocating/deallocating item locks" >> >> >> >> <* , MINLOCKOFS> ,LOCKSIZ> ,LOCKSIZ>>> "Random Gval's" (LOCKUV UNLOCKUV) (IDUV UV2) (UV1) > > > > > > > DDMOPEN #DECL ("VALUE" "OPTIONAL" FIX FIX DDMCHAN) TRANSFER LOCATION RELEASE-SPACE WRITE-PAGE FIND-SPACE RELEASE-LOCK GET-LOCK APRINT ALENGTH AREAD CLOSE-FILE RELEASE-PAGE RELEASE-FILE PMAP-FILE FIND-PAGE NAME-OF-FILE OPEN-FILE GET-FILE % % % %< RGLOC LRUCOUNT T> % T % ALLOCATOR-TABLE-TOO-BIG!-ERRORS % % % % % % %< RGLOC UNLOCKUV T> ID-IS-TOO-LARGE!-ERRORS GET-ITEM PUT-ITEM %]>> .GLUE > > > SPACE "OPTIONAL" FIX )] 571>> DDMCHAN SPACE ANY "OPTIONAL" )] 669>> DDMCHAN )] 792>> DDMCHAN FIX "OPTIONAL" FIX FIX)] 915>> DDMCHAN FIX "OPTIONAL" FIX )] 1231>> DDMCHAN WORD)] 1305>> DDMCHAN)] 1492>> ]>> DDMCHAN ]>> "OPTIONAL" FIX FIX)] 1578>> DDMCHAN ]> > "OPTIONAL" FIX )] 1703>> DDMCHAN)] 1856>> DDMCHAN FIX)] 1976>> DDMCHAN FIX)] 2065>> DDMCHAN FIX FIX)] 2102>> "******************** PRIMITIVE FILE/DATA UTILITIES ********************" DDMCHAN FIX FIX FIX )] 2143>> ]>> DDMCHAN WORD )] 2240>> > DDMCHAN FIX)] 2390>> > DDMCHAN FIX )] 2435>> ]>> DDMCHAN ]>> FIX "OPTIONAL" ) ] 2478>> ]>> DDMCHAN ]>> FIX)] 2634>> DDMCHAN)] 2662>> ]>> FIX FIX < UVECTOR [REST FIX]>)] 2750>> "OPTIONAL" FIX)] 2869>>