AMPLE Modules – an investigation

Kevin Doyle
When you select to use the Mixing Desk or Notepad from the Studio 5000 Main Menu you are loading in AMPLE programs - but they are different from the programs which you write yourself. Mixing Desk and Notepad are MODULES which means that they are 'extended' AMPLE programs which are relocatable in memory.
By 'extended' I mean that they are written in a form of AMPLE using facilities not (yet) available to AMPLE Nucleus users. For example, the programs make extensive use of subroutines which can only be achieved indirectly in AMPLE Nucleus through the calling of one word by another. In the modules, subroutines are contained within words and are called by direct memory references within a single word making them more efficient, though more complex to write.
The modules also use special features which allow them direct control of all the musical parameters such as pitch, tempo, and amplitude.
It is because the modules use these extra facilities which have no user- available equivalent, that you cannot display the definitions for the modules as you can with your own programs.
One of the important features of the modules is their relocatability. All memory references (such as those used in calling subroutines) are relative to the start of the module - therefore the actual location of the module is irrelevant.
This relocatability allows modules to be loaded into or discarded from memory without affecting other modules or the user's program and the consequent memory shuffling accounts for the short gap which can be noticed before a module is loaded from the Main Menu.
The modules supplied with the Studio 5000 are:
M.ATOS – (converts AMPLE to Staff notation)
M.EW – (envelope and waveform definitions)
M.FX1A – (effects such as Echo and Slide)
M.INS1 – (instrument definitions)
M.INT – (initialises system)
M.M5 – (sub-mix utility)
M.MENU – (Studio 5000 Main Menu)
M.MIX – (Mixing Desk)
M.PAD – (Notepad)
M.STAFF – (Staff Editor)
The first module (ATOS) is called by the Staff editor when a new word is loaded into it. The next 7 are normally installed on start-up of AMPLE by the !boot file. The last three (MIX, PAD and STAFF) are normally selected via the Main Menu as required.
You can see which of these are installed on your machine at any time by typing
MCAT
which displays the resident modules and their status. Their status is shown by 3 codes after the module name.
The meaning of these, and the numbers before them is obscure and other than the letters 'F' or 'T' signifying that the module is fixed or temporary (of which more later) I am open to suggestions from other users.
To see what words are included (and therefore made available by) each module you can use the word MSHOW. This acts like the more familiar SHOW, except that you must specify a resident module. For example,
"FX1A" MSHOW
will give
Autopan  Echo   FX1A   Len PLAY   Perc   Slide
some of which will be familiar. A look at the contents of all the standard modules will reveal quite a few mystery words!
Earlier, I mentioned 'fixed' modules. The distinction here is between modules which can be discarded and reloaded as required by the user, and those which once loaded cannot be removed.
If you use the Main Menu to load the modules such as Notepad and Mixing Desk then you will know that one thing drives out another - that is, if you load Notepad and then try loading Mixing Desk you will find that Notepad has gone.
This happens because both these modules are 'temporary' rather than 'fixed' and the Main Menu automatically discards any temporary modules to make the maximum space available before loading anything else. This can sometimes prove irritating if you want to have both to hand.
To get round this you can use the MLOAD command directly. So, to load Notepad you can type
"PAD" MLOAD
the same command as displayed when you select Notepad from the Main Menu. The difference is that other temporary programs are not automatically discarded, so you can retain as many as your available memory will allow.
If you then wish to discard one of the modules you have loaded in this way you can use the MDELETE command, for example,
"PAD" MDELETE
which frees the memory used by the module.
It is possible to go one stage further and turn a temporary module into a fixed one - but beware, because there is then no way to discard it other than reloading the system from scratch. The command INSTALL instead of MLOAD will load the module and make it fixed. So,
"PAD" INSTALL
will load and fix the Notepad module. Now any attempt to use MDELETE to discard it will produce the error
! Fixed module
and you will see the suffix 'F' in place of the 'T' after the module when using MCAT.

Published in AMPLINEX 001, September 1987