home *** CD-ROM | disk | FTP | other *** search
/ RISC DISC 2 / RISC_DISC_2.iso / pd_share / comms / hamradio / dire / Docs / MemphisMan < prev   
Encoding:
Text File  |  1994-04-12  |  4.7 KB  |  134 lines

  1. Memphis: Early capital of ancient Egypt, on W. bank of Nile S. of Cairo.
  2.  
  3. About MemFS 1.08
  4. ================
  5.  
  6. * 1.08 fixes openout and dir not empty problems with riscos 3.
  7.  
  8. Provides a dynamically resizeable ramdisc by using the system sprite area
  9. for storage. (In sprites so its compatible with other users, but sadly not
  10. those who *SNew)
  11.  
  12. Up to 30 character file names (beware old filer 10-char bug).
  13.  
  14. Automatic creation of directories in path of a created file.
  15.  
  16. Automatically grows and shrinks sprite area, but this can only happen when
  17. the system allows. It never goes smaller than the configured spritesize, and
  18. only shrinks when deleting, so you can drag it large to make space before
  19. operations during which it cannot grow. This means *COPY, principally, since
  20. that claims all free memory during its operation.
  21.  
  22. Transparently uses links created by !Links>=0.52 within MemFS.
  23.  
  24. >Ideal for use as a scrap device - NB in fact !Run sets Wimp$Scrap onto it.
  25. +---
  26. : Oh no it isn't
  27. +---
  28.  
  29. Pretty minimal memory overhead:
  30. 64 bytes sprite and file header per object
  31. name length + 4 rounded up to word per directory entry.
  32.  
  33. Start by running the memfs application, then use it like the ramdisc, except
  34. it can be resized with stuff in.
  35.  
  36. I am pretty sure that this works, but there may well still be bugs, so
  37. please don't commit irreplaceable data to it!
  38.  
  39.  
  40.  
  41. Technical
  42.  
  43. A nearly full riscos file system, supports everything except (I think): 
  44. * Wildcarded: *access, *info, *fileinfo, Open
  45. * options, disc names. 
  46. * URD(&) - easy to do if demand, but I morally disapprove.
  47. * Does not sort *CAT/*EX output
  48.  
  49. The error message "Lost inode" means that MemFS was unable to find a sprite
  50. it expected to. It will use any file structure that it finds already present
  51. when it is loaded, so if you want you can save the entire contents with
  52. *ssave, and load it again with *sload.      
  53.  
  54. The memfs and memfsfiler modules should work ok when loaded outside the
  55. Wimp, and behave as a standard fs/filer pair. The filer needs a sprite
  56. called memfs in the wimp sprite pool. Of course, it will be difficult to
  57. extend the sprite area when anything is running in single tasking mode.
  58.  
  59. Massively suboptimal algorithms. Entire sprite area is moved down when files
  60. are deleted, unsorted directories are searched linearly :-(
  61.  
  62.  
  63.  
  64.  
  65.  
  66. Dedications
  67.  
  68. This project was written in C and produced using the FSinC stuff from Jon
  69. Roach of Acorn, as heavily hacked by me.
  70.  
  71. The idea of using the sprite area as a dynamic method of allocating space
  72. came to Nicko Van Someren, in a flash of insight during a conversation we
  73. had. This was several months after I had given up on an attempt at this
  74. using the ramfs dynamic area due to the evil that riscos perpetrates when
  75. one calls ChangeDynamic area on that, and settled for the horrible solution
  76. of the RMA, which would never shrink.
  77.  
  78. It is dedicated to debugging via printf :-(
  79.  
  80. Distribution:
  81.  
  82. This software may be freely redistributed, so long as only a reasonable
  83. copying or media charge is made, and all files I distribute are included. I
  84. retain copyright to the code. Commercial (including magazine) distribution,
  85. or distributing modified versions of this please contact me - I am normally
  86. happy for it to be reused in other free software, but like to avoid deviant
  87. versions of mine causing trouble.
  88.  
  89. I am not asking for money, but if you like and use it I would be surprised
  90. and amazed by any contributions, and you will receive a disc with latest
  91. versions on. (>£5, say)
  92.  
  93. Me:
  94.  
  95. Brian.Brunswick@cl.cam.ac.uk
  96.  
  97. or
  98.  
  99. Brian Brunswick
  100. Fairview
  101. Avenue des Hirondelles
  102. Pool-in-WharfeDale
  103. Leeds
  104. LS21 1EY
  105. UK
  106. 0532 843737
  107.  
  108. +---
  109. : Postscript
  110. :
  111. : I must admit, Memphis is *quite* nice. BUT it should N-E-V-E-R
  112. : be used as a scrap device. The reasons are listed below...
  113. :
  114. : 1) Applications such as !Paint save your work in the scrap
  115. :    directory if they crash. If you're using a volatile filing
  116. :    system such as Memphis (or RAMFS for that matter) as your
  117. :    scrap directory you won't be able to retreve them if the
  118. :    system hangs.
  119. : 2) Many applications (such as !Dire) use the scrap directory as
  120. :    an equivalent to virtual memory, mainly because the data they
  121. :    handle will probably be larger than the amount of RAM free.
  122. :    If you've got your Scrap directory as Memphis (or RAMFS) you're
  123. :    restricting these apps.
  124. : 3) Speed benefits are minimal - few applications use the scrap
  125. :    directory in a way which will slow the machine down noticably.
  126. : 4) Memphis does not handle some fundamental file operations
  127. :    correctly. I haven't pinpointed them yet, but they're enough
  128. :    to make Dire barf, and it only uses standard Clib routines.
  129. :
  130. : I have modified the !Run file so the scrap directory will no
  131. : longer be set to memphis.
  132. :
  133. : Tony Howat, April 1994.
  134. +---