!BOOT files, modules and memory

Richard Bettis

One of the main drawbacks of the Hybrid Music System is the limited memory of the BBC micro. A lot of memory is taken up by the Studio 5000 modules all of which may not be necessary. Some modules, once loaded, cannot be removed - these are known as 'fixed-only'. Other modules can be removed, saving memory, depending on how they were loaded.

If they were loaded via INSTALL, they cannot be later removed. If, however, they were loaded via MLOAD, they can be removed later via MDELETE, or by loading a program which does not require them.

The standard system disc !BOOT file loads several modules into memory using INSTALL. This means that some of these modules, which are not 'fixed-only', cannot be removed even if they are not required.

In order to get the most free memory with any particular setup, therefore, only the necessary modules should be INSTALLed. On loading, all programs will 'call up' any modules they require, and these will be removed when the next program is loaded. But without the basic modules required by all programs there will be a lot of noisy and tedious disc accesses as each new program MLOADs the modules it requires.

Because of this, a !BOOT system should INSTALL all the modules in constant use, and ONLY those modules. In my setup, this has led to a number of different !BOOT discs: one for the Music 5000 alone, one for the Music 4000, one for the Music 2000 (all as supplied by Hybrid), and even at one time a disc which INSTALLed Notepad and the Mixing Desk for setting up mixes without lots of disc accesses.

Now I have rationalised the system, and only have one disc, which contains all the modules I have, but with a menu system for booting up the system I want at the time.

The main !BOOT file looks like this:

*BASIC MODE 7 CHAIN"!MENU"

where !MENU is the following BASIC program:

10 *FX18

20 *FX15

30 MODE7

40 PRINTTAB(0,5)"Hybrid Music System"''''

50 PRINTTAB(10)"1) with MIDI Module"

60 PRINTTAB(10)"2) without MIDI"

70 PRINTTAB(10)"3) without M4000 keyboard"

80 PRINTTAB(10)"4) with only MIDI module"

90 REPEATPRINTTAB(0,18)"Which system?";:A$=INKEY$(10)

100 UNTILVAL(A$)>0 ANDVAL(A$)<5

110 OP=VAL(A$)

120 PRINTOP

130 ON OP GOTO 140,160,180,200

140 *EXEC !M2BOOT

150 STOP

160 *EXEC !M4BOOT

170 STOP

180 *EXEC !M5BOOT

190 STOP

200 *EXEC !M2ONLY

210 STOP

The required system for that session is then chosen, and the appropriate file *EXECed.

The files are the original !BOOT files from my various other system discs, shown below.

!M5BOOT

*BASIC

*/C.PREPARE R K

*FX 202,48

*FX 118

*KEY 0 |"A.MPLINEX|"LOADRUN|M

*AMPLE

% Studio 5000 ... M5 only !BOOT

":0.M." MPREFIX

"INT" INSTALL

"M5" INSTALL

"EW" INSTALL

"MENU" INSTALL

"FX1A" INSTALL

"INS1" INSTALL

MAIN

!M4BOOT

*BASIC

*/C.PREPARE R K

*FX 202,48

*FX 118

*AMPLE

% Studio 5000 ... M5 & M4 !BOOT

":0.M." MPREFIX

"INT" INSTALL

"M4" INSTALL

"M5" INSTALL

"EW" INSTALL

"MENU" INSTALL

"FX1A" INSTALL

"INS1" INSTALL

MAIN

!M2BOOT

*BASIC

*/C.PREPARE R K

*FX 202,48

*FX 118

*AMPLE % Studio 5000-2 Release 2

":0.M." MPREFIX

"INT" INSTALL

"M2" INSTALL

"M4" INSTALL % Optional

"M5" INSTALL

"EW" INSTALL

"MENU" INSTALL

"FX1A" INSTALL

"INS1" INSTALL

READY 8 VOICES MIDIV 1 MIDILINE

&B0 MIDIOUT % Kill EMT-10

124 MIDIOUT % OMNI ON mode

0 MIDIOUT % (Send Mode 1)

MAIN

Note: the Music 5000 only module is used almost exclusively with AMPLINEX, and hence the 'f0' key is programmed to LOAD and RUN "A.MPLINEX".

I also have a Yamaha EMT-10 Expander in my MIDI set-up (a nice sampled piano for the money...) which powers up receiving on all MIDI channels; hence the little program segment at the end of the Music 2000 boot-up.

The file for final menu option - !M2ONLY - is the same as !M2BOOT but does not INSTALL the Music 5000 sound modules (EW and INS1). This is for when I am only using MIDI sound sources.

I hope this technique may be of use to all those who are suffering, as I was, from a surfeit of discs all labelled 'xxxx System Disc'. Now I only have to remember which program disc that tune was on...