home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 9 / FreshFishVol9-CD2.bin / bbs / util / appvm-0.9.lha / AppVM / README < prev    next >
Text File  |  1994-05-29  |  5KB  |  136 lines

  1. *************************************************************************
  2. *                                    *
  3. *    Conditions of use                APPVM 1.0    *
  4. *    -----------------                ---------    *
  5. *                                    *
  6. *    This program has been provided for the enjoyment of the masses.    *
  7. *    It is Public Domain.                        *
  8. *    Since the author doesn't ask for anything in return, the user    *
  9. *    will accept the following conditions:                *
  10. *                                    *
  11. *    1) In no case whatsoever shall the author be liable for any    *
  12. *       damages, losses etc... due to the use of this program.    *
  13. *    2) Distribution of the program is only allowed subject to the    *
  14. *       following restrictions:                    *
  15. *                                    *
  16. *    2.a) No file part of this distribution will be omitted or    *
  17. *         modified in any way.                    *
  18. *    2.b) None of the files which are part of this distribution    *
  19. *         should be stored on environmentally unfriendly media.    *
  20. *         (e.g. paper! (listings, faxes))                *
  21. *                                    *
  22. *                    Laurence Vanhelsuwé        *
  23. *                    29-APR-92            *
  24. *                                    *
  25. *************************************************************************
  26.  
  27. Program Title : APPVM (APPlication Virtual Memory)    (Version 1.0)
  28. -----------------------
  29. Author : Laurence Vanhelsuwé
  30. ----------------------------
  31.  
  32.  
  33. 1. Requirements/Installation:
  34.    --------------------------
  35.  
  36.     This version of APPVM requires the 68030 because it uses its
  37.     on-chip MMU heavily.
  38.     Owners of 68020+68851 based systems should write to me if they
  39.     want support for their configuration.
  40.     In addition to this hardware requirement APPVM also requires
  41.     hard disk "swap space"; typically 10 Mb at least.
  42.  
  43.  
  44. 2. How to use it:
  45.    --------------
  46.  
  47.     Add a line in your startup-sequence or user-startup like:
  48.  
  49.         RUN APPVM 20 T:SWAP.SYS
  50.  
  51.     This would load the virtual memory manager, create a 20 MEGABYTE
  52.     file in the T: directory and patch the system.
  53.  
  54.     Once APPVM signals it's READY via the welcome message on the console,
  55.     other programs are invited to start using the enhanced
  56.  
  57.         - AllocMem() and FreeMem()
  58.         - Read() and Write()
  59.  
  60.     calls which support the new Virtual Memory.
  61.  
  62. 3. APPVM: it's uses.
  63.    -----------------
  64.  
  65.     As the name suggests, APPVM is a virtual memory system for application
  66.     programs.
  67.  
  68.     In other words, the system isn't allowed to "see" any VM pointers
  69.     returned by AllocMem(). The exception are the functions listed above.
  70.  
  71.     This version also limits the number of programs using VM at the same
  72.     time to .... 1 (one).
  73.  
  74.     Apart from that, any program which successfully receives a non-zero
  75.     return from AllocMem() when specifying the new memory class MEMF_VM
  76.     can address a block of memory as large as that managed by APPVM which
  77.     is determined by the megabytes argument when starting up APPVM.
  78.  
  79. 4. Internals:
  80.    ----------
  81.  
  82.     All VM pointers returned by AllocMem() have bit 31 set.
  83.  
  84.     For example: $80000000 points to Virtual Memory, not Physical RAM !
  85.  
  86. 5. APPVM Limitations/Warnings:
  87.    ---------------------------
  88.  
  89.     Since this program was an exercise, and never aimed to produce a real-
  90.     world product, APPVM has a serious limitation: it only services one Task
  91.     at a time.
  92.     If a certain Task is the first to do a VM AllocMem(), then all others
  93.     will be barred from using VM until the previous one has released its
  94.     block of Virtual Memory space.
  95.  
  96. 6. History:
  97.    --------
  98.  
  99.     This version was written as an exercise to prove some Commodore
  100.     software engineer wrong. He thought doing real MMU-assisted virtual
  101.     memory on the Amiga was impossible. Well, it ain't of course !
  102.  
  103.     In my programs I don't like messing about with functions like getch(),
  104.     readln() or any similar inefficiencies... instead I prefer to load
  105.     files in their entireties and process them at lightning speed while
  106.     they're in RAM.
  107.     Obviously this is not a generic solution which works in all situations
  108.     but nevertheless one that does wonders to one's own little set-up
  109.     provided you've got a couple of megabytes in your machine.
  110.     One of my programs (called WFR) does a word frequency scan using this
  111.     "file cacheing" method.
  112.     One day I wanted to create a huge word list to enhance my spelling
  113.     checker by giving WFR a 20Mb text file off one of the CDTV Encyclopedia
  114.     titles... just to remember that my WFR wouldn't handle that kind of file
  115.     size.
  116.     Too stubborn to change it to use buffered loading of chunks, I thought
  117.     of writing a true virtual memory system so my WFR could still do the
  118.     job virtually unmodified (just change one AllocMem argument).
  119.  
  120.     So I wrote APPVM... just to find that WFR accesses memory in such a
  121.     random way that disk thrashing still brings my WFR to its knees.
  122.     So in the end I still had to modify WFR's internals! (bloody computers).
  123.  
  124. 7. Credits:
  125.    --------
  126.  
  127.     Any comments, ideas or bug reports? 
  128.     My name and address are:
  129.     
  130.     Laurence Vanhelsuwé
  131.     Christinastraat 105
  132.     B-8400 Oostende
  133.     BELGIUM
  134.  
  135.                             Enjoy !
  136.