Music 5000 and a hard disk

Bryan Anslow
Note that although the reason for writing this article was the need to change Richard Bettis' !MENU program, (Features, AMPLINEX 015) for a hard disk, it may be of use to anyone with the new '!SYSTEM' type of Hybrid software release.

Setting up

Prompted by the purchase of a hard drive for my Master 128, I needed to re-organise the many floppies which had various versions of Music 5000 software with and without the Music 4000, Music 3000 and Music 2000 add-ons, not to mention the AMPLE Toolbox utilities and vast amounts of Music 5000 programs obtained from various sources.
Fortunately, help was at hand from the !MENU program and !BOOT files which appeared in AMPLINEX 015. Now, as I recently obtained a software upgrade from Hybrid, and have a BBC Master, things are not quite as they were when that previous article appeared.
The 'M' directory contains only one file called !SYSTEM and the 'C' directory contains everything else: ROM image, loader etc.
Even when the Music 2000 and Music 3000 code is installed, it is just absorbed into the existing files and is not visible externally, only the sizes of the files change.
I decided, therefore, to create a directory for each system: M50 for the old Music 5000-1 (which I still use sometimes), M54 for the Studio 5000-4, M53 for the Studio 5000-4 plus Music 3000, M52 for the Studio 5000-4 plus Music 2000 and M51 for the Studio 5000-4 plus Music 2000 plus Music 3000, each with their own 'C' and 'M' sub-directories. Note that the short directory names are required as the MPREFIX command will only accept a maximum of 9 characters.
I have even set up a directory for good old AMPLE BCE, having renamed the AMPLE file to 'BAMPLE' to prevent conflicts with the AMPLE ROM.
Then, having copied all of my music and instrument files (obtained from AMPLINEX, Hybrid, Telesoftware, etc.) all to the same disk, things really seemed to be more manageable.
Using the !MENU program as a basis, I wrote a new version which would display an endless number of menu selections. When a menu item is selected, a directory 'path' which is associated with it is switched to, and a !BOOT file in that directory is *EXECed. The menu names and directory paths are held as DATA statements within the program, making it extremely easy to add, delete or move entries within the menu.
This can obviously be extended to almost any software, as most software arrives with a !BOOT file, or one can easily be written to run a particular package. If a package does not have an *EXECable !BOOT but, for example, a *RUNable !BOOT, then it is a simple matter to rename the supplied !BOOT to !RBOOT and write an *EXECable !BOOT to *RUN !RBOOT.

In operation

Loading of system software and music programs is now extremely quick and almost silent. Just as though everything was resident and ready for use.
Switching between, for instance, AMPLE Nucleus and AMPLE BCE is a breeze. Before it was a case of searching for the disc in an enormous pile.
The ribbon cable of the hard disk fits into the 1Mhz Bus, ahead of the Hybrid boxes. However, it seems to cause little problem to the Music 5000/3000/2000 hardware, even while doing a directory change for instance. Commands like *FREE and *MAP seem to blow AMPLE away though, requiring a re-boot to sort things out.
Sometimes, doing a *MOUNT4 to access a floppy, especially when the Wordwise Plus and Printmaster ROMs are present, causes AMPLE to switch to the Edit ROM, even when it is 'unplugged'.
AMPLE BCE programs, especially those which use 'Preset1' (which I have always found to be a bit sensitive), do slow down a bit, or sometimes a lot, when any access of the hard drive is done.
Otherwise, everything seems to be running fine at the moment, although now I have received AMPLINEX 024, I am investigating the possibility of using the program to separate out the various parts of the !SYSTEM module, and re-vamp some of the !BOOT files.
With the capability to store so much data on a hard disk, it is essential to organise the directories so that a logical structure is formed. I even, periodically, run the Welcome disc 'EXALL' program and direct the output to a floppy disk. This was extremely useful a couple of weeks ago when the archive utility overwrote the first &70 sectors of the disk, corrupting the root directory and making all of the data inaccessible.
I had to use a disc sector editor to rebuild it from the disk addresses in the 'EXALL' listing. In this way I managed to copy about 90% of the data to floppies using the Welcome disc 'COPYDIR' utility, then re-format the hard disk and copy it all back, again with 'COPYDIR'. All I need now is enough floppy discs to archive it without corrupting anything again.
Some files
The !BOOT file which is in the root directory and which is *EXECed at switch on is:
*MOUNT0
*DIR $
CHAIN"!MENU"
The boot file in the M5000-1 directory is:
*BASIC
*/C.PREPARE R S K
*FX 202,48
*FX 118
*AMPLE
% Release 1
"$.M50.M." MPREFIX
"INT" INSTALL
"M5" INSTALL
"EW" INSTALL
"MENU" INSTALL
"FX1A" INSTALL
"INS1" INSTALL
*DIR $.MSAMP
MAIN
The !BOOT file in the 5000-4 directory (which is similar to those in the other 'Studio' directories) is:
*BASIC
*/C.PREPARE R S K
*AMPLE
% Studio 5000-4M Release 2
"$.M54.M." MPREFIX
*/C.INSTALL
MAIN
*DIR $.MSAMP

Related file on this disc:
F.!Menu - BASIC program to allow choice of AMPLE system set-up

Published in AMPLINEX 026, May 1992