home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / utilities / utilsm / memphis / !Memphis / !Help < prev    next >
Text File  |  1993-09-10  |  11KB  |  240 lines

  1. Memphis: Early capital of ancient Egypt, on W. bank of Nile S. of Cairo.
  2.        & Tennessee USA on Mississippi, Martin Luther King assassinated 1968.
  3.  
  4. About MemFS 2.08
  5. ================
  6.  
  7. Memphis is a replacement RAM-based filing system (with lots of knobs on!)
  8. that uses the System Sprite area rather than the RAM disc area. In
  9. particular it provides;
  10.  
  11. * Provides a dynamically resizeable ramdisc by using the system sprite area
  12.   for storage. (In sprites so it's compatible with other users)
  13.  
  14. * Up to 30 character file names (beware old filer 10-char bug).
  15.  
  16. * 2.00 has a new storage scheme, that can use a slave filing system
  17.   instead of the Sprite area. Try Filer_Opendir Mem#adfs;;4.$.MemDisc:$
  18.   Note the semicolons - they are important. This is useful if you need
  19.   to use long file names or many files in a directory. Notice that
  20.   it may take memfs up to 3 seconds after use before the disc is updated.
  21.   Each file is compressed by the Acorn "Squash" module in ROM.
  22.   *** Note that 2.xx is incompatible with previous versions, so discard any
  23.   saved sprite areas you may have.
  24.  
  25. * Filer now has a quit menu á la RO3 ramfsfiler, and files can be dropped
  26.   into it directly (from an application saveas box or from filer)
  27.  
  28. * Automatic creation of directories in path of a created file.
  29.  
  30. * Automatically grows and shrinks sprite area, but this can only happen when
  31.   the system allows. It only shrinks down enough to leave the configured
  32.   spritesize free, and only shrinks when deleting, so you can drag it large
  33.   to make space before operations during which it cannot grow. This means
  34.   *COPY, principally, since that claims all free memory during its operation.
  35.  
  36. It is ideal for use as a scrap device - this is not set by default in the
  37. !Run file, but users who want this feature can easily enable it by editing
  38. the !Run file.
  39.  
  40. Start by running the memfs application, then use it like the ramdisc, except
  41. it can be resized with stuff in. It will not work under RISCOS 2.
  42.  
  43. I am pretty sure that this works, but there may well still be bugs, so
  44. please don't commit irreplaceable data to it!
  45.  
  46. Technical
  47. =========
  48.  
  49. A nearly full riscos file system, supports everything except (I think): 
  50. * Wildcarded: *access, *info, *fileinfo, Open
  51. * options, disc names. 
  52. * URD(&) - easy to do if demand, but I morally disapprove.
  53. * Does not sort *CAT/*EX output
  54.  
  55. The error message "Lost inode" means that MemFS was unable to find a sprite
  56. it expected to. It will use any file structure that it finds already present
  57. when it is loaded, so if you want you can save the entire contents with
  58. *ssave, and load it again with *sload.      
  59.  
  60. The memfs and memfsfiler modules should work ok when loaded outside the
  61. Wimp, and behave as a standard fs/filer pair. The filer needs a sprite
  62. called memfs in the wimp sprite pool. Of course, it will be difficult to
  63. extend the sprite area when anything is running in single tasking mode.
  64.  
  65. Some suboptimal algorithms. Unsorted directories are searched linearly :-(
  66.  
  67. The sources-distribution of memfs comes with 'FSLib' which is an ALF
  68. library that provides a very easy interface for writing FileSwitch filing
  69. systems. See FSLib docs for more details.
  70.  
  71. Data Format
  72. ===========
  73.  
  74. This information is only provided to allow you to recover mangled data in
  75. extremis. Each file or directory gets an inode number>0. An inode is found
  76. either in the sprite mfsXXXXXXXX (XXX the number in hex) or if memfs is
  77. hosted, in a file <specialfield>,.X,.X,.X,.X (XXX the number base 32).
  78. Directories are composed of 512 byte pages, each page filled with inode
  79. number/0-terminated name pairs, each word aligned, all except the last
  80. terminated by -3. Inode 0 is special, and holds the properties of all other
  81. inodes. It is a table of entries, each 6 words: load, exec, length,
  82. allocated, attr, parentinode. Entry 0 has parentinode indicating a chain of
  83. free inodes linked by then parentinode entries.
  84.  
  85. Dedications
  86. ===========
  87.  
  88. This project was written in C and produced using the FSinC stuff from Jon
  89. Roach of Acorn, as heavily hacked by me.
  90.  
  91. The idea of using the sprite area as a dynamic method of allocating space
  92. came to Nicko Van Someren, in a flash of insight during a conversation we
  93. had. This was several months after I had given up on an attempt at this
  94. using the ramfs dynamic area due to the evil that riscos perpetrates when
  95. one calls ChangeDynamic area on that, and settled for the horrible solution
  96. of the RMA, which would never shrink.
  97.  
  98. It is dedicated to debugging via printf :-(
  99.  
  100. Reporting problems:
  101. ==================
  102.  
  103. Please read this BEFORE sending me any reports of problems! With a complex
  104. (and buggy!) program like !Memphis, I get a fair few email messages of the
  105. form "I ran your !Memphis, and it didn't work - what am I doing wrong?"
  106.  
  107. PLEASE don't send me such unhelpful comments! Really, I need to know as much
  108. of the following as you can provide in the initial email;
  109.  
  110. * Your machine - model, memory, harddisc (interface), version of RISC OS,
  111.   other hardware or software that may be interfering with !Memphis.
  112. * If you were using a slave filing system, what was that filing system?
  113. * Version number of !Memphis
  114. * Exactly what you did from machine switch on until memfs failed to work
  115.   as expected
  116. * Exactly what happened - eg, did the machine crash completely with the
  117.   mouse pointer stopping ?
  118. * And ideally, the source file and changes required to fix the problem ;-) 
  119.   Obviously if you are not an experienced programmer you can't do this.
  120.  
  121. Distribution:
  122. ============
  123.  
  124. This software may be freely redistributed, so long as only a reasonable
  125. copying or media charge is made, and all files I distribute are included. I
  126. retain copyright to the code. Commercial (including magazine) distribution,
  127. or distributing modified versions of this please contact me - I am normally
  128. happy for it to be reused in other free software, but like to avoid deviant
  129. versions of mine causing trouble.
  130.  
  131. I am not asking for money, but if you like and use it I would be surprised
  132. and amazed by any contributions, and you will receive a disc with latest
  133. versions on. (>£10, say)
  134.  
  135. Brian Brunswick                              brian@aleph1.co.uk (Internet)
  136. Fairview                                  OR Brian.Brunswick@cl.cam.ac.uk          
  137. Avenue des Hirondelles
  138. Pool-in-WharfeDale
  139. Leeds
  140. LS21 1EY
  141. UK
  142. 0532 843737
  143.  
  144. Versions later than 2.00:
  145. ========================
  146.  
  147. Because Brian is now out 'in the real world' I (Nick Smith) am acting as a
  148. first line of support for !Memphis. I have tidied it up from the v2 beta
  149. release to the public release version, and will improve the program as I get
  150. feed back from users, etc. In particular I've done masses of work on the 
  151. desktop filer application. Currently, Brian wrote 90% of the actual software -
  152. so send him all that money in gratitude !
  153.  
  154. Please email or snail-mail me comments, bug reports, requests for new 
  155. features, etc. and I will hopefully have the time to deal with them. If you
  156. make any modifications to the code, please send them to me rather than 
  157. giving out copies - I would like to coordinate new releases. Thanks.
  158.  
  159. I can be contacted at the following address, at least until Jul '94 ;
  160.  
  161. N.A. Smith                                   nas20@cus.cam.ac.uk (Internet)
  162. Churchill College
  163. Cambridge
  164. CB3 0DS                 
  165.  
  166. Revision history:
  167. ================
  168.  
  169. Modifications to v2.00 (02-Sep-92) [bdb betarelease]
  170.   - Lots of new (broken) features added :-(
  171.  
  172. Modifications to v2.01 (30-Mar-93)
  173.   - Improved documention; added installation instructions, updated info,
  174.     added revision history, etc
  175.   - removed compilation dependency on having brian's harddrive 8-)
  176.   - did some slightly better !Sprites, with !Sprites22
  177.  
  178. Modifications to v2.02 (04-Apr-93)
  179.   - Large amount of work done to filer (no separate history) Loads of
  180.     new features, including; info dbox, create dbox for easy creation
  181.     of memdisc files on disc (uses dragasprite!), doesn't do *snew
  182.     upon quit anymore but just deletes memfs sprite files, filer windows
  183.     closed when memfsfiler quit, desktop save support (saves spritearea
  184.     to scrap file inside !Memphis), can adjust click on menu, etc ...
  185.   - MemFSFiler made RO 2.00 incompatible, but it is wor