At the start of the music bank, AMOS Professional stores offsets to the various components of the music.
Header dc.l Next_Bank dc.l Length_Of_Bank + 16 dc.l Number_Of_The_Bank dc.w Flag dc.w Free_For_Future dc.b "Music " * 8 Letters Start: dc.l Instruments_Start * Offset to first instrument dc.l Musics_Start * Offset to first music dc.l Patterns_Start * Offset to first pattern dc.l 0 * Free for future! * The Instrument part Instruments: dc.w Number_Of_Instruments * For each instrument (.inst represents the number of the instrument) * Repeat REPT Number_Of_Instruments * Offset to sample attack part dc.l Attack.inst_Instruments * Offset to instrument loop. If there is no loop, this points to a null sample at the start dc.l Loop.inst Instruments * Length of the samples, in words (ready to Doke into the circuitry) dc.w Attack_Length.inst dc.w Loop_Length.inst * Volume level dc.w Volume.inst dc.w Total_length.inst * Name of the instrument in Ascii dc.b Name_Of_Instrument_In_16_Bytes ENDR * Until Last instrument * End of instrument definitions * Now comes the null sample dc.w 0,0 * And the sample data for each instrument, one after another * Repeat for every instrument REPT Number_Of_Instruments Attack.inst: dcb.b Sample ... *Sample data for attack * If a loop is defined: Loop.inst: dcb.b Sample ... * Loop sample goes here ENDR * Until Last Instrument *