Please enable JavaScript to view this site.

A-Shell Development History

851.1

(UNIX) MIAME.INI now supports MMAPLIST=<fspec> to allow you to specify a list of files that should automatically be memory mapped whenever they are opened. <fspec> should be a fully qualified filespec (although it may contain environment variables using the %ENVVAR% syntax). The specified file should contain a list of AMOS-style or native filespecs, one per line, for the files you want to automatically memory map. Blank lines are ignored, and anything after a # is treated as a comment. Ersatz devices are allowed. For example:

  #List of files to be memory mapped

c:\vm\miame\dsk0\100005\myfile.dat # native allowed

MYAPP:MYDATA.DAT    # ersatz allowed

DSK0:MYIDX.DAT[100,5]  # standard AMOS allowed

 

The above list specifies three files to be memory mapped whenever they are opened. Note that AMOS specifications are recommended over native ones since they are not sensitive to changes in the device definitions. In the example above, the device where MYAPP: is could be redefined without having to change the MYAPP: reference in this file. But if c:\vm\miame was relocated to d:\vm\miame, you would have to remember to also edit this file to fix the native filespec.

Memory mapping gives you much better file i/o throughput, at the cost of more memory usage. It works best on files that have a lot of access relative to their size (XCALL SERCH index files are a particularly good example.) There are other ways to memory map files (using ASFLAG.SBR or by loading the files directly into memory and using OPTIONS=AUTO_MEMOPEN in the MIAME.INI file. This method has the advantage of being entirely independent of your application, allowing you to tune your system or just experiment with memory mapping, without making any changes to the application itself.

851.2

XCALL ASFLAG,256 turns off memory mapping (overriding the MMAPLIST in the MIAME.INI) for any files subsequently opened in the current program.

851.2

MMAP.LIT introduced. Allows you to display the current list of files to be memory mapped (i.e. from the MMAPLIST), or to load a new list of files. Use MMAP /? to display syntax.