AMPLE modules in new system releases

Allan Gardner
There have been several hints, tips and enquiries recently regarding the latest releases of Hybrid Technology system discs where some of the modules are combined into one file with the name M.!SYSTEM.
I have encountered several problems:
- the Watford DFS (1.44) is not compatible with building a system disc from an issue disc, although it is perfectly alright once the system has been built
- the C.PREPARE file which I had previously modified to use Shadow RAM was no longer compatible with the modules M.INT, M.M5, M.M4, M.EW, M.MENU, M.FX1A and M.INS1 which are now 'lumped' into M.!SYSTEM
- with M.!SYSTEM you cannot leave any of the above modules (e.g. M.M4 or M.MENU) out of the system to save memory
- Martijn van der Mei's excellent utility (AMPLINEX 021) to allow AMPLE modules to be held in Sideways RAM appears to accept the combined module, but does not subsequently work.
Clearly something radical was called for, so I set about trying to break down M.!SYSTEM into its constituent modules.
Firstly, I analysed all of the modules I had, scattered around several system discs, ranging from a Music 5000 Release 1 to the latest Music 5000-4D-3, (which includes the M.M5 and M.MIX modules for the Music 3000 expander). I was thus able to find the latest versions of each module and which ones had not changed since they were available separately (before M.!SYSTEM).
Then, armed with a memory editor, I was able to identify the individual modules within M.!SYSTEM (not too easy if you have not got an individual copy with the same version number) and then save them back to disc.
I now have a system disc with all of the individual modules (including the three from AMPLE Toolbox) available separately for custom installation.
A short BASIC program was used to separate the modules from M.!SYSTEM and this is shown below (and a copy is included on this disc).
10 HIMEM=TOP+&200 : I%=HIMEM
20 PRINT"Loading.. M.!SYSTEM at ";~I%
30 OSCLI("LOAD M.!SYSTEM "+STR$~(I%))
40 REPEAT
50 Names$="M."+$I%
60 Start$=" "+STR$~(HIMEM+?(I%+7)+ ?(I%+8)*&100)
70 End$=" "+STR$~(HIMEM+?(I%+16)+ ?(I%+17)*&100)
80 A$=Names$+Start$+End$+" 10 0"
90 PRINT"Saving.. "A$
100 OSCLI("SAVE "+A$)
110 I%=I%+9
120 UNTIL !I%=0
130 END
Once I had a disc which contained every module it was a simple job to write a BASIC start-up program to provide a menu of the likely combinations of modules I would need:
10 MODE7
20 PRINT'"Hybrid Technology Music System"
30 PRINT'"1. Basic M5000 System"
40 PRINT'"2. Basic M4000 System"
50 PRINT'"3. M5000 System with Text Editor"
60 PRINT'"4. M4000 System with Text Editor"
70 PRINT'"5. M5000 System with Mode 7 Editor"
80 PRINT'"6. M4000 System with Mode 7 Editor"
90 PRINT'"7. M5000 System with UTILS"
100 PRINT'"8. M4000 System with UTILS"
105 PRINT'"9. M5000 Minimum System"
110 PRINT'"(please note all options"
111 PRINT" support M3000 expander)"
112 REM only if you have M3000 versions of M5 & MIX
120 PRINT'"Please select (1-9) ";
130 A=GET:IF A=13 THEN A=49
140 A=A-48:IF A<1 OR A>9 THEN 10
150 PRINT;A
160 FOR I=1 TO A
170 READ F$
180 NEXT
190 A$="EXEC "+F$
200 OSCLI A$
210 END
220 DATA M5000,M4000,M5000T,M4000T
230 DATA M50007,M40007,M5000U,M4000U
240 DATA M5000M
An EXEC file for all of the modules was written (based on the original !BOOT file of early copies of the system disc), and then several copies were saved on to disc with various modules REMmed out (with %).
The basic start-up program then merely *EXECs the relevant option file. For instance, the example below was used for the 'normal' Music 5000 start-up.
*BASIC
*/C.PREP R S K
*FX 202,48
*FX118
*AMPLE
*TV0,1
":0.M." MPREFIX
"INT" INSTALL
"M5" INSTALL
% "M4" INSTALL
"EW" INSTALL
"MENU" INSTALL
"FX1A" INSTALL
"INS1" INSTALL
% "TEDIT" INSTALL
% "IEDIT" INSTALL
% "UTILS" INSTALL
MAIN
Other EXEC files have M4, TEDIT etc. included and one is a minimized system having MENU and MAIN removed.
Thus I am now able to use any of the modules at will and be able to use Shadow RAM, and all from one disc.

Related file on this disc:
U.ModuSep - BASIC program to separate the individual modules from the M.!SYSTEM file.
Note that before running this program you must have a disc containing the M.!SYSTEM file in the default drive and enough space on the disc to write out the seven resulting module files.

Published in AMPLINEX 024, January 1992