==============================================================================
THE FILES:

The files that you MUST include in your makefile/project are..

PLAYER.CPP    = The actual music player
LOADER.CPP    = The loader for all supported formats
GUS.CPP       = GUS routines - converted from GUS.ASM.  You could link in
                GUS.ASM but there is no speed difference.
FMOD.H        = Main Header - must have this
FTYPES.H      = typedefs for structures etc.

The files that arent nescessary:

(FMOD.CPP)    = The fmod interface.. this isnt needed as you could write
                your own interface.. see below on the skeleton needed to
                play a tune.

==============================================================================
BUILDING:

To build FMOD, just run the batch file specific to your compiler//

MAKE_WC       = Build system under Watcom C++, tested on WC++ 10.0 (pmode)
MAKE_TC       = Build system under Turbo C++, tested on TC++ 3.0   (real mode)
MAKE_BC       = Build system under Borland C++, tested on BC++ 4.0 (real mode)

Each of these batch files contains a simple call to MAKE (or WMAKE), invoking 
the make files supplied.

FMOD.WC       = Make file for Watcom C++
FMOD.BC       = Make file for Borland C++
FMOD.TC       = Make file for Turbo C++

I have tested each build under the 3 different compilers and they all worked
perfectly. 

==============================================================================
FMOD.PRJ:

FMOD.PRJ is also supplied for Turbo C++'s IDE.  The directories will always 
be  different on your system so change the directories in the 
Options|Directories section of the menu.

==============================================================================
SKELETON INTERFACE:

Instead of using fmod.cpp you can make your own interface with just these few
simple commands.

#include <conio.h>
#include <stdlib.h>
#include "fmod.h"

void main() {
    Base = 0x240;                                       // your base address.
    gusdram = GUSFindMem();                             // find GUS dram
    if (LoadSong("", filename, 0) > 0) exit(1);         // load song 
    GUSReset(FM.channels);                              // reset GUS
    PlayMOD();                                          // start song!
    getch();                                            // do whatever 
    StopMOD();                                          // stop song/free mem
}

You also have to make a project/make file or similair and include the files:

- GUS.CPP/GUS.ASM       = GUS Source Code, pick one of thsese but they are
                          identical speed wise.
- LOADER.CPP            = Loader Source Code
- PLAYER.CPP            = Runtime Music System Code

==============================================================================
LOADSONG:

* LoadSong has a few other parameters I put in for my fmod interface.
  -  "" contains the actual path.  Empty quotes means the current path.
  - Next is the pure file name (this could also contain the path if you like)
  - The next parameter is if there are wildcards or not.  0 = no, 1 = yes.

The reason for this is if there are wildcards, it will not try and perform 
any autoextension detection, and if there are no wildcards, it will try and 
perform an autoextension detection.

"FM.playing" says if a song is currently playing or not.  0 = no, 1 = yes.

Check FMOD.H for the other variables.  Treat most of the variables as READ
ONLY.  Writing to some of these variables could be disasterous (ie setting
the order number to something outside the song length).  I did not hide the
variables away in their respective sources, not making them public, becuase 
I think every variable should be accessible to the interface.

==============================================================================
PMODEW:

Remember to link in PMODEW.EXE with your watcom code if you want it to be a 
Pmode/W application (the make file is already prepared for this), and to 
include the PMODEW.LNK supplied with pmode/w inside the WLSYSTEM.LNK file in 
the watcom \BINB directory.  (i.e. cut and paste it in with all the other 
entries).

==============================================================================
(FM stands for FireLight Module incidentely - the internal format)

End
