Memphis 3

Memphis: Early capital of ancient Egypt, on W. bank of Nile S. of Cairo, & Tennessee USA on Mississippi, Martin Luther King assassinated 1968.

About MemFS 3.02

Memphis 3 is a fully-featured, dynamically resizing RAM-based filing system for RISC OS 3.5+. Its main features are:

* No limit to size of disc (memory permitting).

* Uses a Dynamic Area to store files, which automatically grows and shrinks as files are added/deleted.

* Filenames can be up to 63 characters in length.

* Provides an icon on the icon bar like the RamFS Filer.

* Icon bar has configuration window, with options saved in 'Choices'.

* Files can be saved directly to the iconbar icon from applications.

* The disc can be saved (as a spritefile) upon quit, and automatically reloaded when Memphis is next used.

* Disc can be used as a scrap device.

* Memphis can be set to imitate the built-in RamFS, so programs that write to 'RAM::RamDisc0.$' will save to Memphis instead.

* A single module 'MemFS' provides the low-level filing system support and desktop front-end.

Requirements

Memphis 3 requires a RISC OS computer running 3.5 or later. It has been tested successfully on Select, Iyonix and VirtualRPC. The module is fully 32 bit clean, but since it is linked with StubsG it does NOT require the 32 bit Shared C Library to be loaded on non-Iyonix machines.

Usage

Double clicking on the !Memphis3 icon will install an icon onto the left-hand side of the iconbar. Click Select on this icon to open a filer window of the root directory (by default 'Mem::Memphis.$'). This can then be treated in exactly the same way as a normal filer window.

To see how much memory is taken up by the disc, open the Tasks window and look for the Dynamic Area called 'Memphis'. This cannot be resized manually. Memphis does not create its Dynamic Area until the filer window is opened, or a disc operation (such as setting the Memphis Scrap directory) is performed.

Clicking Menu on the Memphis icon opens a menu with four options. 'Info' leads to a window showing the version number and date of Memphis. 'Choices...' has the same effect as Adjust on the iconbar icon (see Configuration below). 'Free' displays the amount of free memory in a standard Interactive Free window. 'Quit' has the same effect as choosing quit from the Task Manager menu (in the Tasks window) for the task 'Memphis Filer'. If there is data in the filing system, a warning and chance to cancel the quit is given (unless you have chosen to save to disc on quit). Quitting the filer kills the MemFS module, fully removing the Memphis filing system and its data.

Click Adjust to open the configuration window (see below).

Files can be saved from an application's 'save as' dialogue box to the Memphis icon, and these files will be saved in the Memphis root directory. Files or directories can be dragged from any Filer directory display to the icon, and will be copied (or moved with Shift held down) into the Memphis root directory. By default the options are Verbose and Newer; to change these you must edit the 'Config' file in 'Choices.Memphis'.

Memphis can safely be run as part of the boot sequence (even in PreDesk). It is recommended that it is run after !Scrap has been booted, so that Scrap can be reset to the harddrive should Memphis be quit (assuming you have the option to reset Scrap activated).

Configuration

The configuration window should be fairly self-explanatory, but each option is detailed here.

Disc Name:

This is the name given to the disc and the text used under the icon. By default it is 'Memphis'. If the disc name is blank, the root filer window is 'Mem:$' and the text under the icon is 'Mem'.

Maximum size of Dynamic Area:

Dynamic Areas are allocated a fixed amount of memory from the address space. While the address space (4GB) is considerably more than the physical amount of memory in the machine, it is not infinite. Therefore if you know that you will never need a RAM disc bigger than 100MB, it is probably best to set this as your maximum. This option will not take effect until a new Dynamic Area is created (either with a quit/reload of the 'Kill DA' option).

Minimum amount of free memory:

The value of the Next and Free slider bars on the Task gives the amount of unused memory in the machine. This option allows you to limit growth of the Memphis Dynamic Area when the amount falls below the set value. Attempted writes to the disc will then fail.

Share disc:

This option allows you share the entire Memphis disc over a network with other machines running Access. The name used for the share is the name of the Memphis disc. If ShareFS/Share+ is not loaded, or if there is a name clash, this option will become unset. The two options to the right allow you to make the share protected, and give it its own icon.

Disable RamFS:

Usually when the 'RAM disc' slider is dragged from a zero value up, it starts the RamFS module and filer. This option prevents this from happening. If there is a RAM disc active (not empty) then the RAM filing system is not removed.

Make Memphis imitate RamFS:

This option changes the path used in the directory display from 'Mem:' to 'RAM:'. This allows code which is hardwired to write temporary files to 'RAM:$' to use Memphis instead. It works simply by setting RAM$Path to 'Mem:'. Filer windows opened by the Memphis Filer will be prefixed with 'RAM:' and if the disc name is blank, the text under the icon will be 'RAM'.

Set Memphis as Scrap directory:

Selecting this will have the same effect as physically copying !Scrap into the Memphis disc and then running it. Be aware that some applications do not like having Scrap being reset during a session, so it might be best to set this option if no other applications are running, or with Memphis in your boot sequence. If this option is on when Memphis is quit, or is turned off mid-session, then the location of Scrap is reset to what it was when Memphis was started.

Save/Load disc on Quit/Start:

Memphis allows the dumping of the contents of its Dynamic Area into a Sprite file, which is saved in Choices as 'Memphis.MemDisc'. This is then loaded back when Memphis is restarted. If the disc is empty, nothing is saved and any existing disc is left intact. If the save is successful, no warning is given about losing data (since none will be lost). The save should only be unsuccessful if the existing MemDisc has been deliberately locked. If you only choose OK (and not Save) then the disc will be saved, but not reloaded, since the configuration option to reload was not saved. To get around this you need to save with the option ticked, check there is nothing in the disc, quit Memphis, and then reload.

Disable warning messages:

Tick this only if you are confident you will never quit Memphis with valuable unsaved data or use Ctrl-Shift-F12 accidentally.

For the following four options a Select click closes the configuration window:

Kill DA:

This button allows you to remove the Memphis Dynamic Area, either to recognise a change the maximum value or to allow other programs to access the address space. For example PhotoDesk requires its DA in low memory, low memory is allocated first. Therefore you should kill the area and then load PhotoDesk before performing any file operations with Memphis (such as opening its Filer window). If you have Scrap reset to Memphis, press OK after loading the program you want in the low DA address space in order to re-create the Scrap directory.

Save:

The setting of Choices is used to save the configuration (allowing per-user under Select). If Choices has not been set, then the !Memphis application directory is used. This is a text file called 'Memphis.Config', which (if present) is automatically loaded at startup. The position on the icon bar (the icon priority) can only be changed by manual editing of the Config file.

Cancel:

Updates the window to ignore any changes made since OK/Save.

OK:

Updates the configuration of Memphis from the window selections. Save/Load disc (see note above) and size of Dynamic Area are not immediately affected, only when Memphis is quit or its DA is killed respectively.

Choices File

The choices file contains two options that can only be changed by manual alteration, however most users will probably not wish to alter these. The 'CopyOpts:' field sets the options for drags to the Memphis icon. It is a bitfield, the bits have meanings as follows (set = on): 0 - verbose, 1 - confirm, 2 - force, 3 - newer, 8 - open dir on copy, 9 - open dir on save. So to verbosely copy only if newer and open the destination directory, use 265 (this is the default). The 'IconPriority:' field sets the position of the icon on the iconbar. It is a 32 bit unsigned hexadecimal number with higher values meaning further left. Default is 3F000000 (same position as RamFS), a value of 57000000 is between the Apps folder and drive icons on RISC OS 4.

Conflicts

Messenger Pro - with Scrap reset occasionally crashes and has to exit when saving from the editor while composing an email. Reportedly fine without Scrap reset.

PhotoDesk - doesn't recognise Scrap being reset after it is loaded. Probably best not to use Memphis as Scrap for PhotoDesk's virtual memory in case it runs out causing a crash. Can either cancel Reset Scrap option before loading PhotoDesk, or alter PhotoDesk's !Run file to make PhotoDesk$VMdir point to a permanent disc-based location.

InterGif - grabs all available memory for its processing, so Memphis cannot expand its Dynamic Area should you choose to save the output there. Solved in 6.16.

Direction - when Memphis is quit and the CSD is Mem:<something> the next time you try to view a command prompt the machine dies horribly. The built-in RAM disc has the same problem so I guess Direction must be at fault. Fixed in my rewrite: http://www.richardspencer.freeuk.com/direction2/

Pluto - creates a directory called 'Pluto' inside Memphis' root directory, which it uses for temporary files. This feature is detailed in Pluto's documentation.

Nahavo - Seems to cause problems with Memphis and Interactive Free, so don't choose 'Free' from the iconbar menu when running both.

Credits

Memphis up to version 2.00 was written by Brian Brunswick incorporating Acorn's FSinC library courtesy of Jon Roach. Versions up to 2.11 were by Nick Smith. The first 32 bit version (2.13) was released by Dave Ruck. Version 3.00 (see changes) was developed by Richard Spencer. Grateful thanks to Hauke Wegner and Jérôme Mathevet for the German and French resources.

Disclaimer

While this software is distributed in the hope that it will be useful and function correctly, it comes with no warranty, nor admission for liability in the case of data loss or damage caused through its use or misuse.

Contact

I doubt former authors will want to take responsibility for Memphis now, and their contact details are probably out of date so no point reproducing them here. I am interested in suggestions for enhancements to the front-end as well as stability patches for the underlying Filing System.

Homepage: http://www.richardspencer.freeuk.com/memphis3/

Email: richardspencer@freeuk.com

International Resources

This program uses a utility called 'SetResPath' to set the language directory used for its resources. For Memphis to use the German resources a German Territory must be active, or '*Country Germany' set or the system variable 'Memphis$Language' set to 'German'. SetResPath is distributed under the GPL and may be incorporated into other software.

Changes

Version 2.13 [32bit] to 3.00

- Major change is to use a Dynamic Area up to the physical amount of RAM in the machine (in theory, see 3.02), instead of the System Sprite area which was limited to 16MB.

- Friendly messages when Dynamic Area cannot be grown.

- File delete now shrinks area using ticker.

- Fixed FS information word (twice).

- Maximum filename length now 63 chars (was 30).

- Fixed *Free and interactive Free.

- Removed dependence upon RISC_OSLib.

- Internationalised the module.

- The Memphis Filer has been re-written from scratch and incorporated into the MemFS module.

- All options set from the configuration window are new.

3.00 to 3.01

- Page size for inode allocations increased - no more pauses when copying lots of large files in the same directory to Memphis

3.01 to 3.02

- Added Email and Web buttons to info window.

- Added functionality to share the Memphis disc over an Access network.

- Fixed problem with OS DA clamps. Now the disc can really be >128meg.

- Filer windows only close with the config when disc name/RamFS imitation flag has changed

- Fixed Interactive Free code a bit more, although probably not necessary.