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