Home » Personal collection » Acorn hard disk » apps » sound » !S.Tracker/STDocs4.07

!S.Tracker/STDocs4.07

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn hard disk » apps » sound
Filename: !S.Tracker/STDocs4.07
Read OK:
File size: A685 bytes
Load address: 0000
Exec address: 0000
File contents
!S/Tracker (Soundtracker/Tracker module music player)
-----------------------------------------------------

Version 4.07 (24 Jan 1991)

Originally written by Hugo Fiennes and Fabrice Mercier [(c) The Serial Port]
SWI interface and other bits added by Matt Farrow

 Feel free to use this module in any p.d. demos or programs etc., and for
inclusion with commercial programs if needed (but let us know first!!)
 Much time and effort has been spent on developing this module (for no
commercial gain), and it would be a courtesy if you could credit the authors
whenever you use it, and inform us if you intend to distribute it on a large
scale.

 The !S/Tracker application is a P.D. application, and may be freely copied
if nothing more than the cost of a disc and a small amount for the trouble is
charged, but it must be distributed with all the files complete and unchanged
(with the possible exception of the 'STDocsX/XX' file).


 Overview
 --------
  The module exists principally to support the multi-tasking playing of
both the Serial Port Tracker and amiga Sound/Protracker music module formats.
  Via either a full command line interface, or using SWI's (with desktop
front-ends if desired), a whole range of operations can be performed (such
as setting the stereo position; fading in and fading out; playing sound
effects; changing the sample quality; monitoring the state of each channel,
etc.).
  As mentioned earlier, the module will play (and automatically detect) 
several different formats:

   1) Archimedes Tracker - A full implementation differing from the original
           routines only in ways which are an improvement (ie. volume slides
           of 1 don't cause distortion).
             Tracker tunes are not converted in any way when they are loaded,
           and so are preserved in memory (suitable for editing).
   2) Amiga formats (soundtracker 15/31 inst, protracker) -
           From version 4.06 onwards these are replayed as accurately as
           possible (including volumes), with the unimplemented commands
           being 5-7, 9, E (mostly unused or h/w dependent anyway).
             When an amiga format tune is loaded, it is converted before
           being played (the pattern data is converted into Tracker format
           data, except any volume or slide commands are preserved).
           You should not, therefore, save soundtracker tunes while they are
           playing or in pause mode, but if they have been 'MemoryLoad'ed
           they will be converted back after a *PlayStop etc. (but any
           instruments out of range [32-36] etc. will be ignored/mis-
           converted).

  This documentation was written to accompany the !S/Tracker application
containing the latest Trackermodule ('PM') and not much else (this was so
that file lengths could be kept down and the module made reasonably easy to
distribute). It was intended that 3rd party PD writers could write their own
front-ends for the module and keep the interfaces 'clean' so that it is a 
simple task to keep up with changes in the Tracker format, for example, by
just replacing the module in the application directory.


                               
                                              


DOCUMENTATION OF * COMMANDS AND SWI's
-------------------------------------

*PlayMod     - Loads into memory and starts to play the specified Tracker or
               Soundtracker module, determining automatically which format it
               is.

               Syntax: *PlayMod <filename>
         



*PlayPause   - Will pause the currently playing tune (kills all sound immed-
               iately) but retains the soundtracker/tracker module in memory.
               The tune can be restarted with a *PlayStart command.

               Syntax: *PlayPause




*PlayStart   - Will resume playing a tune after a *PlayPause command.

               Syntax: *PlayStart

 


*PlayPos     - Will set the current position in the sequence table, or if no
               parameter is given, will simply return the current position.

               Syntax: *PlayPos [<0-127>]

                


*PlaySamples - Will list all the samples associated with the currently
               installed music module. 

               Syntax: *PlaySamples



*PlaySpeed   - Will change the sample playback rate and therefore vary the
               approximate amount of CPU time taken up by the playroutine.
               Currently, the only four options are:
                       0 - normal sample rate
                       1 - half sample rate
                       2 - normal sample rate (for VIDC enhancers)
                       3 - half sample rate (for VIDC enhancers)
               If option 1 or 3 is selected, the sample quality is reduced,
               but 8 channel tunes will take up only a little more time than
               4 channel tunes originally.
                 The function of *PlaySpeed is duplicated by the SWI
               'Tracker_Speed' (see later).

               Syntax: *PlaySpeed <0|1|2|3>




*PlayStatus  - Will print information about the current tune module loaded
               
               Syntax: *PlayStatus




*PlayStereo  - Controls the stereo settings while the older format sound-
               tracker modules are playing (the stereo is fixed on an Amiga),
               and will switch between five possible settings to cater for
               most configurations:
                   0 - Slightly off-centre left and right (normal)
                   1 - Fully left and right (amiga-style)
                   2 - Fully left
                   3 - Fully right
                   4 - Don't alter stereo settings
                          (normally alters settings when a tune is loaded                               and when it plays a tracker stereo command - see
                           SWI Tracker_Stereo)

               Syntax: *PlayStereo <0|1|2|3>




*PlayStop    - Will stop and kill the currently playing tune module,
               removing it from memory.

               Syntax: *PlayStop


               

*PlayVolume  - Changes the overall loudness of any tunes playing. The scale
               is logarithmic and goes from 1 (silent) to 127 (full volume).
               *PlayVolume with no parameters displays the current volume.

               Syntax: *PlayVolume [<0-127>]





SWI COMMANDS
------------
Several SWI commands have been added to the module in order to simplify the
task of adding soundtracker/tracker music to your demos etc. (especially
multi-tasking situations). These provide all of the facilities offered by
the various * commands, but also allow a more detailed control of some of the
module's features.
All the SWI's remain in SVC mode, and do not alter the interrupt status.
I think most are re-entrant, except those which use system SWI's (load, play,
stop etc.), so avoid calling them from interrupts if you can avoid it.

The SWI chunk number given here (&43200) is an officially recognised chunk
number issued by Acorn.


-----------------------------------------------------------------------------
Tracker_Version        (SWI &43200)
-----------------------------------------------------------------------------

On Entry:  -

On Exit :  R0 = version number*100  (ie. for V1.23 = 123)

Use this call to ensure that the trackermodule installed is a recent enough
version to support the SWI's you wish to use. Versions 4.00 onwards incorpor-
ate the SWI's.




-----------------------------------------------------------------------------
Tracker_Load           (SWI &43201)
-----------------------------------------------------------------------------

On Entry:  R0 = pointer to filename of soundtracker/tracker module

On Exit :  R0 preserved

This call will claim memory from the RMA and load the specified tune module,
initialise the sound system, and set the playroutine in pause mode.
You must then use the SWI Tracker_Play to start the tune playing.
The command *PlayMod calls this routine, and then the SWI Tracker_Play.

An error will be generated if the module cannot be loaded or not enough
memory can be claimed.




-----------------------------------------------------------------------------
Tracker_MemoryLoad     (SWI &43202)
-----------------------------------------------------------------------------

On Entry:  R0 = pointer to first word of soundtracker/tracker module in
                memory (NB must be word-aligned)
           R1 = length of module in bytes

On Exit :  R0 and R1 preserved

This call can be used by a non-multitasking application to specify an area
of memory as a tune module, and thereby remove the need for a seperate file
to hold a tune, and there is no need to claim a large amount of RMA space.
Once this SWI is called, the module will be treated as if it was loaded in
the module's own workspace.
 Important: You must tell the trackermodule to forget the module if the
memory will be overwritten, otherwise the module may crash.
(*PlayStop or Tracker_Stop SWI)

NB This call will not work for programs running under the desktop if the
   module is loaded in user memory.

   When a soundtracker module is loaded, the pattern data is converted to
   Tracker format data (except for volumes which remain 0-64), so 
   for the purposes of editing, as long as Tracker_Read/WriteSampleTable are
   used, the module can be considered as a Tracker module. When SWI
   Tracker_Stop/*PlayStop is called, the data is converted back.



-----------------------------------------------------------------------------
Tracker_Play           (SWI &43203)
-----------------------------------------------------------------------------

On Entry:  -

On Exit :  -

This call will restart a tune after it has been paused or loaded with the
Tracker_Load SWI.





-----------------------------------------------------------------------------
Tracker_Stop           (SWI &43204)
-----------------------------------------------------------------------------

On Entry:  -

On Exit :  -

This performs the same actions as *PlayStop
Using *PlayStop or this SWI is the only way to get the trackermodule to
release the memory taken up by the tune module, or to force it to forget the
address of a module if it has been loaded with the 'Tracker_MemoryLoad' SWI.
If the module is soundtracker and has been loaded with Tracker_MemoryLoad,
calling this SWI or *PlayStop will convert the data back to the original
format.



-----------------------------------------------------------------------------
Tracker_Pause          (SWI &43205)
-----------------------------------------------------------------------------

On Entry:  -

On Exit :  -

This performs the same actions as *PlayPause





-----------------------------------------------------------------------------
Tracker_Stereo         (SWI &43206)
-----------------------------------------------------------------------------

On Entry:  R0 = Stereo setting (0-4) or -1 to read current setting

On Exit :  If R0>=0 on entry: R0 preserved
   
           If R0=-1 on entry: R0 = current PlayStereo setting
                              R1 = pointer to 8-byte stereo position table
                           

This performs the same actions as *PlayStereo, with R0 passed as a parameter.
If R0 is set to 4 on entry, then the stereo settings will be unaltered
whenever a module is loaded or killed, and disables any stereo commands in
tracker modules. This is to allow interfacing programs to provide their own
stereo options, or to allow adjustment to the stereo positions while tracker
tunes are playing (which have default stereo settings stored as part of the
tune).
 Alternatively, if R0=-1 on entry, R0 will be the last parameter passed to
this SWI or the *PlayStereo command, and R1 points to an 8-byte table (one
byte per channel) which is updated every time either a tune starts; this SWI
or *PlayStereo is called with a parameter of 0-3; or if a stereo command is
executed in a Tracker tune. The byte will be in the range of 1-7 (where 1 is
full left, 7 is full right, and 4 is centre). Some Tracker tunes may contain
stereo settings out of range.



-----------------------------------------------------------------------------
Tracker_SetPos         (SWI &43207)
-----------------------------------------------------------------------------

On Entry:  R0 = New sequence position (0-127 max)
           R1 = Event (0-63 max)

On Exit :  R0 preserved

This performs the same actions as *PlayPos, except that the event with the
pattern can be specified (0-63 normally). If an event number higher than the
number of events in the current pattern is specified, the pattern will begin
at event 0.

If there is no tune currently loaded, an error is generated.





-----------------------------------------------------------------------------
Tracker_ReadPos        (SWI &43208)
-----------------------------------------------------------------------------

On Entry:  -

On Exit :  R0 = Current position in sequence table (0-127 max)
           R1 = Current position in pattern (0-63 max)
           R2 = Maximum position in sequence table

This performs the same actions as *PlayPos with no parameters, but also
returns the current position in the current pattern (in case some applic-
ations need to synchronize events with the tune being played).





-----------------------------------------------------------------------------
Tracker_PlayNote       (SWI &43209)
-----------------------------------------------------------------------------

On Entry:  R0 = Sound channel to sound note on (1-8 max)
           R1 = Tracker format note number (1-36)
           R2 = Sample to play (1-36)
           R3 = Volume (0-255) [Tracker volume even if soundtracker tune
                                                                   loaded].
On Exit :  R0-R3 preserved
           If tune not paused then C flag set otherwise C flag cleared.

If there is no tune loaded, an error will be generated.

It plays one of the samples which are part of the paused tune at a given
pitch (1=low, 36=high) and volume (0=silent, 255=loud). If any of the values
are out of range, an error will be reported.
The number of sound channels that can be used depends on the module loaded
(soundtracker modules will always use 4 voices, whereas Tracker modules can
use up to 8).
Use the Tracker_TuneInfo SWI to find out the maximum number of voices if you
intend to play more than one note at a time.
NB This call should be avoided if possible, unless the purpose is to hear
   each sample seperately.





-----------------------------------------------------------------------------
Tracker_TuneInfo       (SWI &4320A)
-----------------------------------------------------------------------------

On Entry:  -

On Exit :  R0 = Sequence table length (1-128)
           R1 = Number of voices (1-8)
           R2 = Current speed (1-15)
           R3 = Pointer to tune name (terminated by 0, max length 32 chars)
           R4 = Pointer to author's name (0 terminated, max length 32 chars)
                or zero if soundtracker format module (not applicable)
           R5 = Address of currently loaded tune module
           
           If the tune is paused, the C flag is set, otherwise the C flag is
           cleared.

           If there is no tune loaded, R0 is set to zero, and R1-R5 are
           preserved.
                                                                   

This call provides miscellaneous information about the tune currently loaded.

You should not need to directly access the tune module (using the address
passed in R5), because all information is available via the various SWI's,
and soundtracker format modules will have been converted partially to Tracker
format when loaded (and therefore in an unknown format). This information is
provided if, for example, multi-tasking players/editors need to know if the
tune currently playing is running from ordinary RMA, or the player's/editor's
own workspace.


                   



-----------------------------------------------------------------------------
Tracker_SoundInfo      (SWI &4320B)
-----------------------------------------------------------------------------

On Entry:  R0 = Pointer to word-aligned 256 byte block to hold sound data

On Exit :  R0 preserved
              
           if the tune is paused, the C flag will be set, otherwise the C
           flag will be cleared.

If there is no tune loaded an error will be generated.

This call is only provided for advanced uses of the trackermodule, and
involves information of a highly technical nature. It is advised that you
do not use this call if you can avoid it.

The call will transfer the current contents of the sound voice info table
to the location pointed to by R0. 256 bytes (64 words) will be transferred
in total (8 words per sound channel), regardless of the number of voices
actually active.

When a note is played and then ends, word 6 of the appropriate channel is
zeroed. The sound routines will only try and play the sample if this word is
non-zero.

When a tune is paused, the block is saved and overwritten with zeros. When
the tune is restarted, the old contents are restored, so that the samples
will continue to play from the same point.

 The format of the table is as follows:-

Word  Offset       Sound channel 1...
0     +0      The current pitch accumulator. (shift right 16 bits to get the
              actual byte offset into the sample being played).

1     +4      The current pitch increment (added to accumulator after every
              byte filled). This is obtained using internal tables given the
              sample period (word 7)

2     +8      The sample loop offset (given in bytes). When the routine
              reaches the end of a sample or the sample length, the accumul-
              ator is loaded with this value shifted left 16 bits (ie. to
              give a byte offset). If this is a zero value, the sample will
              stop instead of looping.

3     +12     The sample length / repeat length (in bytes). The routine
              checks every 4 bytes filled to see if the current accumulator
              exceeds this value when shifted right 16 bits. (See above)

4     +16     The sample number (1-36).

5     +20     The current volume (0-255). This value is subtracted from every
              byte filled, therefore 0 = maximum volume and 255 = silent.
              NB This is the reverse of the normal volume command.

6     +24     This is the tracker format note number of the sample being
              played (1-36, 1=C octave 1 36=B octave 3). The arpeggio command
              makes use of this word. If this word is zero, no sound will be
              played.

7     +28     This is a copy of the sample period (from which the pitch
              increment value is calculated), and is used by the portamento
              commands. The range of the sample period is from 1 to hex &400
              (although the portamento commands have smaller limits in
              practice).

8     +32     Word 0 of sound channel 2...

9     +36     Word 1 of sound channel 2...  etc. 
     
    -> word 8 of sound channel 8





-----------------------------------------------------------------------------
Tracker_ReadSampleTable   (SWI &4320C)
-----------------------------------------------------------------------------

On Entry:  R0 = Sample number (1-36)

On Exit :  R0 preserved
           R1 = Pointer to sample name (0-terminated, max length 22 chars) 
           R2 = Sample volume (0-255, 255=maximum volume, 0=silent)
                              (or 0-64 [soundtracker], 64=max vol.) 
           R3 = Sample length (bytes)
           R4 = Repeat offset (bytes)
           R5 = Repeat length (bytes)
           R6 = Address of raw sample data

This call returns all relevant information about the specified sample. 

If there is no tune loaded, an error will be generated.

If the sample number is out of range (for example, if reading sample 16 on a
15-instrument module), R1 and R6 will point to a zero, and R2-R5 will contain
a zero.

                                                  

-----------------------------------------------------------------------------
Tracker_WriteSampleTable  (SWI &43213)
-----------------------------------------------------------------------------

On Entry:  R0 = Sample number (1-36)
           R1 = New sample volume (0-255/0-64) or -1 to leave unchanged.
           R2 = Repeat offset (bytes) or -1 to leave unchanged.
           R3 = Repeat length (bytes) or -1 to leave unchanged.

 You should use this SWI if you wish to alter the sample data without needing
to know the relevant module format. Sample length is not alterable, because
the occasions when this is necessary (eg. loading new sample in) need
direct manipulation of the module in memory anyway, and problems occur when
the sample length is set above the actual length.
 Versions between 3.00 and 4.05 copied the sample information into a more
convenient format when the module was initialised, and so altering the data
directly would have had no effect (causing problems for editors which needed
to do this..).
 Should you wish to alter any other aspect of the module directly which might
affect the playroutine (ie. number of voices), you should call
'Tracker_UpdateData' (see below..).

 An error is generated if:
* No module is loaded
* The sample number to change exceeds the max. of the format (ie. 15/31/36)
* The relevant information is out of range (ie. vol > [64 or 255])
* A combination of repeat offset and repeat length would cause the player
     to loop outside the sample limit.

 This SWI is part of the locking system.
                                      


-----------------------------------------------------------------------------
Tracker_Lock              (SWI &4320D)
-----------------------------------------------------------------------------

On Entry:  R0 = locking code (passed in R4 to SWI's)

On Exit :  -     


 This SWI and the corresponding Tracker_Unlock SWI are provided to
prevent user intervention with any of the features of the module when this
would be undesirable for any multi-tasking applications using the module 
(for example issuing a *PlayStop command). By calling this SWI, an applic-
ation can gain complete control of the module, but as a result, this feature
must be used carefully, because the module cannot then be unlocked unless
the code specified in the lock SWI is known (and if not, the module must be
re-initialised).
 When the module is locked, calling any commands or SWI's which alter
anything (such as changing the current play position, loading or killing
tunes, playing notes) will cause an error, but SWI's returning information
will function as normal. For the application which is responsible for the
locking to be able to use the affected SWI's, R4 must be set to the locking
code (passed in R0) before any of the affected SWI's is called (no commands
will work even if the locking code is known).
 If the trackermodule is already 'locked' when this SWI is called, an error
will be generated.
 It is advisable to avoid using this call unless absolutely neccessary.
           

The restricted commands are:
*PlayMod, *PlayPause, *PlayStart, *PlayPos, *PlayStereo, *PlayStop,
*PlayVolume.

The restricted SWI's are:                                          
Tracker_Load, Tracker_MemoryLoad, Tracker_Play, Tracker_Stop, Tracker_Stereo,
Tracker_SetPos, Tracker_PlayNote, Tracker_Volume.


           

-----------------------------------------------------------------------------
Tracker_Unlock            (SWI &4320E)
-----------------------------------------------------------------------------

On Entry:  R0 = locking code (specified in Tracker_Lock)

On Exit :  -


 This SWI should be called to unlock the module after it has been locked with
'Tracker_Lock'. If the value passed in R0 is different to the locking code
given in the lock SWI, or the module has not been locked, an error is
generated.




-----------------------------------------------------------------------------
Tracker_MuteChannel       (SWI &4320F)
-----------------------------------------------------------------------------

On Entry:  R0 = channel to mute (1-8)

On Exit :  -


 This SWI allows you to turn off selected channels while leaving all the
other channels unaffected. The channels can be turned back on by using the
'Tracker_RestoreChannel' SWI.
 No error is generated if the channel number is higher than the number of
channels actually being used by the trackermodule.
                                                      


-----------------------------------------------------------------------------
Tracker_RestoreChannel    (SWI &43210)
-----------------------------------------------------------------------------

On Entry:  R0 = channel to turn on (1-8)

On Exit :  -


 This SWI will reverse the effect of a 'Tracker_MuteChannel' SWI, and turn
the selected channel back on.
 No error is generated if the channel number is higher than the number of
channels actually being used by the trackermodule.
                           


-----------------------------------------------------------------------------
Tracker_Speed             (SWI &43211)
-----------------------------------------------------------------------------

On Entry:  R0 = new speed setting (0-3)

On Exit :  -


 This SWI will select the future sample rate and overall pitch to cater for
VIDC enhancers and 8-channel tunes, taking effect immediately if a tune is
currently playing.
 For details of the different options see the command *PlaySpeed.
 This SWI is not included in the locking system because it was only intro-
duced in version 4.04, and some programs may have already been written which
use the locking system but don't control the sample speed/pitch etc.

                                               


-----------------------------------------------------------------------------
Tracker_Volume            (SWI &43212)
-----------------------------------------------------------------------------

On Entry:  R0 = new overall volume (0-127) or -1 to read volume

On Exit :  R0 = old volume


 This SWI will set the overall volume of any tunes playing by subtracting
(254-volume*2) from the volume of any sample playing. This takes effect
immediately, and also affects samples which are in mid-play.
 Calling the SWI with R0=-1 will return the current volume in R0.
 You can use this SWI to provide smooth fade-outs and fade-ins, for example.
 This SWI is part of the locking system.

                                               

-----------------------------------------------------------------------------
Tracker_TranslateVolume   (SWI &43214)
-----------------------------------------------------------------------------

On Entry:  R0 = Soundtracker volume to convert (0-64)

On Exit :  R0 = Logarithmic volume (0-255), 255=max.

This SWI will convert a soundtracker volume (as returned by the SWI
Tracker_ReadSampleTable when a soundtracker tune is playing) into a Tracker
format logarithmic volume (0-255).



-----------------------------------------------------------------------------
Tracker_UpdateData        (SWI &43215)
-----------------------------------------------------------------------------

On Entry:  -

On Exit :  -

This is really an editor SWI which you should call whenever you alter one of
the following, so that the module can update its data:-
 * Number of voices (and therefore pattern length)
 * Sample length/load new sample
 * Music length
 * Stereo settings (Tracker)
                                               

=============================================================================

Note translation table
----------------------

The tracker format note numbers and the notes they refer to are as follows:

no.  note   sample period
---  ----   -------------
1    C -1   &358
2    C#-1   &328
3    D -1   &2FA
4    D#-1   &2D0
5    E -1   &2A6
6    F -1   &280
7    F#-1   &25C
8    G -1   &23A
9    G#-1   &21A
10   A -1   &1FC
11   A#-1   &1E0
12   B -1   &1C5
13   C -2   &1AC
14   C#-2   &194
15   D -2   &17D
16   D#-2   &168
17   E -2   &153
18   F -2   &140
19   F#-2   &12E
20   G -2   &11D
21   G#-2   &10D
22   A -2    &FE
23   A#-2    &F0
24   B -2    &E2
25   C -3    &D6
26   C#-3    &CA
27   D -3    &BE
28   D#-3    &B4
29   E -3    &AA
30   F -3    &A0
31   F#-3    &97
32   G -3    &8F
33   G#-3    &87
34   A -3    &7F
35   A#-3    &78
36   B -3    &71


=============================================================================


Tracker and Soundtracker commands
---------------------------------

 In all tunes, there are special commands which have a type (0-&F for amiga,
0-9 & A-Z for Tracker) and data (usually presented as a hex byte, ie. &XX),
which is sometimes treated as two seperate nibbles (ie. arpeggio).
 A list of the commands found in Tracker/STracker tunes is as follows:

 Command    Effect
 -------    ------
 0 (both)   Arpeggio -
                 note2=base note+(first digit of data) semitones
                 note3= "     " +(second "    "   "  )   "
               Play note3 for one vsync, then note2, base note, note3, note2
               and then the base note to achieve a chord effect (ie. C-2
               with command 0 data '&47' (hex) would play a major
               arpeggio of C-2, E-2, G-2.    If the speed is less than 6,
               the arpeggio will be cut short.
 1 (both)   Pitch slide (portamento up) -
               while the command is playing, DECREMENT the sample period by
               <parameter> (0-15 usually). This has the effect of INCREASING
               the pitch smoothly without restarting the sample. Note that
               the pitch gained by a fixed change to the sample period is not
               constant over the 3 octaves.
 2 (both)   Pitch slide (portamento down) -
               like command 1 but slides the pitch down.
 3 (amiga only)   Portamento -
               Sounds similar to commands 1 & 2, but behaves differently.
               When you use command 3 with a note specified, the note is not
               played, but the pitch of the note is set as the 'goal' of the
               portamento. Then, whenever a command 3 comes up, the pitch is
               automatically slided in the appropriate direction by the value
               last given as a parameter for command 3, until the 'goal' is
               met, and further command 3's will have no effect.
 4 (amiga only)  Vibrato -
               This causes the pitch to rise and fall in a warbling effect.
               The first digit gives the speed of the pitch change (1=slow,
               &F=fast), and the second digit gives the magnitude of the
               vibrato. The vibrato is created by altering the pitch of the
               channel by a sinusoidally varying amount (-ve and +ve).
 5,6,7 (amiga)  Combinations of the volume and pitch slides (Not implemented)
 9 (amiga only) Set sample offset (Not implemented).
 A (amiga)     Volume slide -
               If the first nibble is non-zero, add this value to the current
               volume every vsync, else subtract the second nibble in a
               similar fashion.
 G, H (Tracker) Volume slide up, down -
               These commands are the same as the A command on the amiga, but
               take a byte parameter.
 B (amiga), J (Tracker)  Position jump -
               When this command is met, jump to position <parameter> in 
               song.
 B (Tracker) Break pattern -
               =amiga command D
 C (amiga), V (Tracker)  Set volume -
               Alters the current volume of the channel to the value spec-
               ified (0-64 amiga, 0-255 arc). Volume 0 means mute sound.
 D (amiga), B (Tracker)  Break pattern -
               When this command is encountered, the pattern is ended, and
               the next pattern jumped to.
 E (amiga)   Various commands (ie. h/w filter commands) [Not implemented].
 E (Tracker) Set stereo -
               Set the stereo position (1-7) of the current sound channel
               (1-8).
 F (amiga), S (Tracker)  Set speed -
               Sets the speed (number of vsyncs between events) to <param.>.
    

=============================================================================
                               
Errors
------                                                    

The error numbers and messages which the trackermodule may generate:

No tune loaded        (&43200) - an operation was attempted which requires a
                                 tune to be loaded into memory beforehand
                                 using *PlayMod or SWI Tracker_Load.

Sequence position out of range - The sequence position given with *PlayPos
                      (&43201)   or SWI Tracker_SetPos was higher than the
                                 actual number of patterns in the song.

No room for module    (&43202) - The trackermodule could not claim enough
                                 RMA workspace to load the module. To get
                                 more memory, quit basic to the supervisor
                                 prompt, and retry. If you are using the
                                 desktop instead, remove an application and
                                 retry.

Channel number out of range    - The sound channel number was not a value
                      (&43203)   between 1 and the number of sound channels
                                 used for that particular tune.

Sample number out of range     - The sample number was not within the range
                      (&43204)   of 1-36.

Note number out of range       - The note number was not within the range of
                      (&43205)   1-36.

Volume out of range   (&43206) - The volume was not within the range of 0-255

Module already locked (&43207) - Tracker_Lock was called when the module
                                 was already locked. The module can only be
                                 unlocked when the application in control of
                                 the module issues a Tracker_Unlock SWI.

Unlock failed         (&43208) - Tracker_Unlock was called but either
                                 the wrong locking code was specified, or
                                 the module was not locked at the time.

TrackerModule in use  (&43209) - An attempt was made to execute one of the
                                 restricted commands or SWI's while the
                                 module was locked (see Tracker_Lock)

Speed not implemented (&4320A) - Tracker_Speed was called with R0 outside
                                 the range of values currently accepted.

Bad sample looping    (&4320B) - Values of repeat offset/repeat length would
                                 cause sample to loop outside its limit.

=============================================================================


This module was written for enthusiasts who wish to enjoy the benefits of the
Archimedes sound system in a multi-tasking environment.

Versions 0.00 to 1.xx of the original module were written by Hugo Fiennes
                      allowing the playing of any soundtracker tunes.
Versions 2.00 to 2.xx were written by Fabrice Mercier and Hugo,
                      playing any tracker tunes (with changes/improvements).
Versions 3.00 to 4.07 were written by Matthew Farrow to allow the playing of
                      soundtracker or tracker tunes, with the SWI extension
                      from versions 4.00 onwards.

You can contact Hugo in the following ways:
Voice: UK (0749) 72234 (ask for Hugo)
VodaFone: (0831) 444192
The World of Cryton (bbs) : UK (0749) 679794 (300-2400 - 1 line)
                          : UK (0749) 670030 (300-HST/V32 - 2 lines)
Mail: Prestel 045847608, CIX altman
Burcott Manor, Wells, Somerset, BA5 1NH, UK

Matt Farrow:
Mail: Arcade bbs [081-654 2212] as 'Matthew Farrow' (#483)
                 [081-655 4412]

45 Alleyn Park, Dulwich, London SE21 8AT


=============================================================================

Updates
-------
Version 4.00 (from 3.04)
   - SWI interface added.
   - Volume translations for soundtracker modules performed correctly now (?)
   - Locking system introduced
   - Next pattern line played just after pattern position incremented, not
     just before (so the position doesn't appear to be ahead of the music).
   - Removal of more minor bugs..

Version 4.01
   - Doesn't slow everything down so much when paused
   - Fixed bug in Tracker_PlayNote (concerning channel number)
   - Corrected documentation on Tracker_ReadSampleTable

Version 4.02
   - Added new SWI's 'Tracker_MuteChannel' and 'Tracker_RestoreChannel'
   - Arpeggio command altered to conform with a soundtracker-derivative
        format; I think it's the same as the soundtracker format proper, but
        I can't find any documentation to check this!
   - Fixed bug where if you did a Tracker_PlayNote while the tune was paused,
        it sometimes didn't clear the sound buffers afterwards (buzzing etc.)

Version 4.03
   - I have fixed the Tracker_PlayNote bug from V4.01 now, honest!
   - Fixed problem introduced in V4.02 where doing Tracker_PlayNote while a
        tune was playing sometimes crashed (if the sample was blank)
   - Should crash less often when loading a new tune (no promises!)

Version 4.04
   - Added *PlaySpeed and option to change sample rate (faster 8-channel
        tunes)
   - Provision for VIDC enhancer owners (tunes are normally a perfect fifth
        too high) in the form of *PlaySpeed <2|3>
   - Added Tracker_Speed SWI (same as *PlaySpeed)
   - Module now claims memory in RMA and builds tables as it needs them,
        saving about 12K of disc space.
   - Altered *PlaySamples command to print '-' for sample name if blank (used
        to ignore non-zero samples with blank names)
   - Main interrupt put on TickerV, so this should end problems any multisync
        monitor owners may have had with tunes going too fast etc.

Version 4.05
   - Fixed Tracker_ReadSampleTable (when R0 was out of range [ie. >15/>31] R1
        pointed to an undefined string) so that R1 and R6 will point to a
        zero if the sample number is out of range.
   - Changed command order so that '*Plays.' will do *PlayStatus rather than
        *PlaySamples.
   - Module now installs itself as a sound channel handler (no more of the
        'TrackerVox' voice).
     Effects of this recoding are:-
        *  It's much trickier for programs to sabotage any current tunes, as
           assigning sound voices has no effect (unless the tune is stopped).
        *  Before, samples played simultaneously on different channels were
           sometimes played slightly out of phase (sounded quieter/weird).
           This sometimes still happens, but less often.
        *  Re-configuring the sample rate will not work while a tune is
           playing, so that should be one less thing to go wrong.
   - Slightly changed *Playsamples command to include sample number.
   - Fixed problem with *Playstatus and non-terminated tune names.
   - Altered Tracker_Stereo to return current settings if R0=-1 on entry.
   - Added *PlayVolume/Tracker_Volume to control overall volume.
   version (B)
   - If *PlayStereo 4 was selected, stereo settings were being corrupted when
        the tune was stopped.
   - Tracker 'E' stereo commands caused a crash if *PlayStereo 4 was enabled.

Version 4.06      Major update
   I finally got some decent amiga soundtracker documentation.
   Then I discovered how much I had wrong.. major update needed!
   
   - Soundtracker tunes were being converted wrongly..
        *  Repeat offset now made twice as big.
        *  Volumes above the specified maximum (64) were converted strangely.
           Now out-of-range volumes are set to 64.
   - Accuracy of the sound routines improved to cope with very small looping
        samples which were seemingly pitched wrongly as a result of 4-byte
        accuracy. Accuracy now 1 byte. This may slow things down a tiny bit.
   - Altered the volume system so that soundtracker volumes are as accurate
        as possible (ie. volume slides now slide down the soundtracker (0-64)
        volumes rather than the arc log volumes (0-255), but still keeping
        the same system for tracker tunes. Therefore, if you want the most
        accurate playback of a soundtracker tune, ensure it is in its
        original format.
   - Finally implemented commands 3 (portamento) and 4 (vibrato). If you have
        converted original soundtracker tunes into tracker format, command 4
        will have no effect due to the different volume formats. The vibrato
        effect may not be exactly the same as on the amiga, but it's close
        enough.
   - When soundtracker tunes are SWI 'MemoryLoad'ed, they are converted back
        to the original format when *PlayStop etc. is performed (to allow
        editors to save as soundtracker format). NB Tracker-specific commands
        and out of range instruments etc. are ignored/mis-converted.
   - Tracker_WriteSampleTable introduced to allow transparent access of the
        sample data and independence (almost) of the Tracker format.
   - ** Please Note **   Volumes returned by Tracker_ReadSampleTable while
        soundtracker tunes are loaded are now in the range 0-64. These can
        be converted into tracker volumes using the new
        Tracker_TranslateVolume SWI. *PlaySamples converts the volumes first.
   - SWI Tracker_UpdateData introduced to help editors interface with the
        Trackermodule.
   - Sample data information now read directly in the main routines rather
        than copied when the module is loaded, to enable editors to alter the
        module while playing.
   - On reset, tune continues playing rather than being killed as before.
   - When tune is stopped, the sound system is restored more effectively (ie.
        resetting the sample rate with 8 voices active previously now works -
        eg. when interrupting !Maestro).

Version 4.07
   - Changed command 4 again.. it wasn't bugged, I just changed the specs.
        It seems that some players disagree on what command 4 should be, and
        I'm now implementing it as varying the pitch (as much over as below
        the original pitch).
00000000  21 53 2f 54 72 61 63 6b  65 72 20 28 53 6f 75 6e  |!S/Tracker (Soun|
00000010  64 74 72 61 63 6b 65 72  2f 54 72 61 63 6b 65 72  |dtracker/Tracker|
00000020  20 6d 6f 64 75 6c 65 20  6d 75 73 69 63 20 70 6c  | module music pl|
00000030  61 79 65 72 29 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |ayer).----------|
00000040  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000060  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 0a 56 65 72  |-----------..Ver|
00000070  73 69 6f 6e 20 34 2e 30  37 20 28 32 34 20 4a 61  |sion 4.07 (24 Ja|
00000080  6e 20 31 39 39 31 29 0a  0a 4f 72 69 67 69 6e 61  |n 1991)..Origina|
00000090  6c 6c 79 20 77 72 69 74  74 65 6e 20 62 79 20 48  |lly written by H|
000000a0  75 67 6f 20 46 69 65 6e  6e 65 73 20 61 6e 64 20  |ugo Fiennes and |
000000b0  46 61 62 72 69 63 65 20  4d 65 72 63 69 65 72 20  |Fabrice Mercier |
000000c0  5b 28 63 29 20 54 68 65  20 53 65 72 69 61 6c 20  |[(c) The Serial |
000000d0  50 6f 72 74 5d 0a 53 57  49 20 69 6e 74 65 72 66  |Port].SWI interf|
000000e0  61 63 65 20 61 6e 64 20  6f 74 68 65 72 20 62 69  |ace and other bi|
000000f0  74 73 20 61 64 64 65 64  20 62 79 20 4d 61 74 74  |ts added by Matt|
00000100  20 46 61 72 72 6f 77 0a  0a 20 46 65 65 6c 20 66  | Farrow.. Feel f|
00000110  72 65 65 20 74 6f 20 75  73 65 20 74 68 69 73 20  |ree to use this |
00000120  6d 6f 64 75 6c 65 20 69  6e 20 61 6e 79 20 70 2e  |module in any p.|
00000130  64 2e 20 64 65 6d 6f 73  20 6f 72 20 70 72 6f 67  |d. demos or prog|
00000140  72 61 6d 73 20 65 74 63  2e 2c 20 61 6e 64 20 66  |rams etc., and f|
00000150  6f 72 0a 69 6e 63 6c 75  73 69 6f 6e 20 77 69 74  |or.inclusion wit|
00000160  68 20 63 6f 6d 6d 65 72  63 69 61 6c 20 70 72 6f  |h commercial pro|
00000170  67 72 61 6d 73 20 69 66  20 6e 65 65 64 65 64 20  |grams if needed |
00000180  28 62 75 74 20 6c 65 74  20 75 73 20 6b 6e 6f 77  |(but let us know|
00000190  20 66 69 72 73 74 21 21  29 0a 20 4d 75 63 68 20  | first!!). Much |
000001a0  74 69 6d 65 20 61 6e 64  20 65 66 66 6f 72 74 20  |time and effort |
000001b0  68 61 73 20 62 65 65 6e  20 73 70 65 6e 74 20 6f  |has been spent o|
000001c0  6e 20 64 65 76 65 6c 6f  70 69 6e 67 20 74 68 69  |n developing thi|
000001d0  73 20 6d 6f 64 75 6c 65  20 28 66 6f 72 20 6e 6f  |s module (for no|
000001e0  0a 63 6f 6d 6d 65 72 63  69 61 6c 20 67 61 69 6e  |.commercial gain|
000001f0  29 2c 20 61 6e 64 20 69  74 20 77 6f 75 6c 64 20  |), and it would |
00000200  62 65 20 61 20 63 6f 75  72 74 65 73 79 20 69 66  |be a courtesy if|
00000210  20 79 6f 75 20 63 6f 75  6c 64 20 63 72 65 64 69  | you could credi|
00000220  74 20 74 68 65 20 61 75  74 68 6f 72 73 0a 77 68  |t the authors.wh|
00000230  65 6e 65 76 65 72 20 79  6f 75 20 75 73 65 20 69  |enever you use i|
00000240  74 2c 20 61 6e 64 20 69  6e 66 6f 72 6d 20 75 73  |t, and inform us|
00000250  20 69 66 20 79 6f 75 20  69 6e 74 65 6e 64 20 74  | if you intend t|
00000260  6f 20 64 69 73 74 72 69  62 75 74 65 20 69 74 20  |o distribute it |
00000270  6f 6e 20 61 20 6c 61 72  67 65 0a 73 63 61 6c 65  |on a large.scale|
00000280  2e 0a 0a 20 54 68 65 20  21 53 2f 54 72 61 63 6b  |... The !S/Track|
00000290  65 72 20 61 70 70 6c 69  63 61 74 69 6f 6e 20 69  |er application i|
000002a0  73 20 61 20 50 2e 44 2e  20 61 70 70 6c 69 63 61  |s a P.D. applica|
000002b0  74 69 6f 6e 2c 20 61 6e  64 20 6d 61 79 20 62 65  |tion, and may be|
000002c0  20 66 72 65 65 6c 79 20  63 6f 70 69 65 64 0a 69  | freely copied.i|
000002d0  66 20 6e 6f 74 68 69 6e  67 20 6d 6f 72 65 20 74  |f nothing more t|
000002e0  68 61 6e 20 74 68 65 20  63 6f 73 74 20 6f 66 20  |han the cost of |
000002f0  61 20 64 69 73 63 20 61  6e 64 20 61 20 73 6d 61  |a disc and a sma|
00000300  6c 6c 20 61 6d 6f 75 6e  74 20 66 6f 72 20 74 68  |ll amount for th|
00000310  65 20 74 72 6f 75 62 6c  65 20 69 73 0a 63 68 61  |e trouble is.cha|
00000320  72 67 65 64 2c 20 62 75  74 20 69 74 20 6d 75 73  |rged, but it mus|
00000330  74 20 62 65 20 64 69 73  74 72 69 62 75 74 65 64  |t be distributed|
00000340  20 77 69 74 68 20 61 6c  6c 20 74 68 65 20 66 69  | with all the fi|
00000350  6c 65 73 20 63 6f 6d 70  6c 65 74 65 20 61 6e 64  |les complete and|
00000360  20 75 6e 63 68 61 6e 67  65 64 0a 28 77 69 74 68  | unchanged.(with|
00000370  20 74 68 65 20 70 6f 73  73 69 62 6c 65 20 65 78  | the possible ex|
00000380  63 65 70 74 69 6f 6e 20  6f 66 20 74 68 65 20 27  |ception of the '|
00000390  53 54 44 6f 63 73 58 2f  58 58 27 20 66 69 6c 65  |STDocsX/XX' file|
000003a0  29 2e 0a 0a 0a 20 4f 76  65 72 76 69 65 77 0a 20  |).... Overview. |
000003b0  2d 2d 2d 2d 2d 2d 2d 2d  0a 20 20 54 68 65 20 6d  |--------.  The m|
000003c0  6f 64 75 6c 65 20 65 78  69 73 74 73 20 70 72 69  |odule exists pri|
000003d0  6e 63 69 70 61 6c 6c 79  20 74 6f 20 73 75 70 70  |ncipally to supp|
000003e0  6f 72 74 20 74 68 65 20  6d 75 6c 74 69 2d 74 61  |ort the multi-ta|
000003f0  73 6b 69 6e 67 20 70 6c  61 79 69 6e 67 20 6f 66  |sking playing of|
00000400  0a 62 6f 74 68 20 74 68  65 20 53 65 72 69 61 6c  |.both the Serial|
00000410  20 50 6f 72 74 20 54 72  61 63 6b 65 72 20 61 6e  | Port Tracker an|
00000420  64 20 61 6d 69 67 61 20  53 6f 75 6e 64 2f 50 72  |d amiga Sound/Pr|
00000430  6f 74 72 61 63 6b 65 72  20 6d 75 73 69 63 20 6d  |otracker music m|
00000440  6f 64 75 6c 65 20 66 6f  72 6d 61 74 73 2e 0a 20  |odule formats.. |
00000450  20 56 69 61 20 65 69 74  68 65 72 20 61 20 66 75  | Via either a fu|
00000460  6c 6c 20 63 6f 6d 6d 61  6e 64 20 6c 69 6e 65 20  |ll command line |
00000470  69 6e 74 65 72 66 61 63  65 2c 20 6f 72 20 75 73  |interface, or us|
00000480  69 6e 67 20 53 57 49 27  73 20 28 77 69 74 68 20  |ing SWI's (with |
00000490  64 65 73 6b 74 6f 70 0a  66 72 6f 6e 74 2d 65 6e  |desktop.front-en|
000004a0  64 73 20 69 66 20 64 65  73 69 72 65 64 29 2c 20  |ds if desired), |
000004b0  61 20 77 68 6f 6c 65 20  72 61 6e 67 65 20 6f 66  |a whole range of|
000004c0  20 6f 70 65 72 61 74 69  6f 6e 73 20 63 61 6e 20  | operations can |
000004d0  62 65 20 70 65 72 66 6f  72 6d 65 64 20 28 73 75  |be performed (su|
000004e0  63 68 0a 61 73 20 73 65  74 74 69 6e 67 20 74 68  |ch.as setting th|
000004f0  65 20 73 74 65 72 65 6f  20 70 6f 73 69 74 69 6f  |e stereo positio|
00000500  6e 3b 20 66 61 64 69 6e  67 20 69 6e 20 61 6e 64  |n; fading in and|
00000510  20 66 61 64 69 6e 67 20  6f 75 74 3b 20 70 6c 61  | fading out; pla|
00000520  79 69 6e 67 20 73 6f 75  6e 64 0a 65 66 66 65 63  |ying sound.effec|
00000530  74 73 3b 20 63 68 61 6e  67 69 6e 67 20 74 68 65  |ts; changing the|
00000540  20 73 61 6d 70 6c 65 20  71 75 61 6c 69 74 79 3b  | sample quality;|
00000550  20 6d 6f 6e 69 74 6f 72  69 6e 67 20 74 68 65 20  | monitoring the |
00000560  73 74 61 74 65 20 6f 66  20 65 61 63 68 20 63 68  |state of each ch|
00000570  61 6e 6e 65 6c 2c 0a 65  74 63 2e 29 2e 0a 20 20  |annel,.etc.)..  |
00000580  41 73 20 6d 65 6e 74 69  6f 6e 65 64 20 65 61 72  |As mentioned ear|
00000590  6c 69 65 72 2c 20 74 68  65 20 6d 6f 64 75 6c 65  |lier, the module|
000005a0  20 77 69 6c 6c 20 70 6c  61 79 20 28 61 6e 64 20  | will play (and |
000005b0  61 75 74 6f 6d 61 74 69  63 61 6c 6c 79 20 64 65  |automatically de|
000005c0  74 65 63 74 29 20 0a 73  65 76 65 72 61 6c 20 64  |tect) .several d|
000005d0  69 66 66 65 72 65 6e 74  20 66 6f 72 6d 61 74 73  |ifferent formats|
000005e0  3a 0a 0a 20 20 20 31 29  20 41 72 63 68 69 6d 65  |:..   1) Archime|
000005f0  64 65 73 20 54 72 61 63  6b 65 72 20 2d 20 41 20  |des Tracker - A |
00000600  66 75 6c 6c 20 69 6d 70  6c 65 6d 65 6e 74 61 74  |full implementat|
00000610  69 6f 6e 20 64 69 66 66  65 72 69 6e 67 20 66 72  |ion differing fr|
00000620  6f 6d 20 74 68 65 20 6f  72 69 67 69 6e 61 6c 0a  |om the original.|
00000630  20 20 20 20 20 20 20 20  20 20 20 72 6f 75 74 69  |           routi|
00000640  6e 65 73 20 6f 6e 6c 79  20 69 6e 20 77 61 79 73  |nes only in ways|
00000650  20 77 68 69 63 68 20 61  72 65 20 61 6e 20 69 6d  | which are an im|
00000660  70 72 6f 76 65 6d 65 6e  74 20 28 69 65 2e 20 76  |provement (ie. v|
00000670  6f 6c 75 6d 65 20 73 6c  69 64 65 73 0a 20 20 20  |olume slides.   |
00000680  20 20 20 20 20 20 20 20  6f 66 20 31 20 64 6f 6e  |        of 1 don|
00000690  27 74 20 63 61 75 73 65  20 64 69 73 74 6f 72 74  |'t cause distort|
000006a0  69 6f 6e 29 2e 0a 20 20  20 20 20 20 20 20 20 20  |ion)..          |
000006b0  20 20 20 54 72 61 63 6b  65 72 20 74 75 6e 65 73  |   Tracker tunes|
000006c0  20 61 72 65 20 6e 6f 74  20 63 6f 6e 76 65 72 74  | are not convert|
000006d0  65 64 20 69 6e 20 61 6e  79 20 77 61 79 20 77 68  |ed in any way wh|
000006e0  65 6e 20 74 68 65 79 20  61 72 65 20 6c 6f 61 64  |en they are load|
000006f0  65 64 2c 0a 20 20 20 20  20 20 20 20 20 20 20 61  |ed,.           a|
00000700  6e 64 20 73 6f 20 61 72  65 20 70 72 65 73 65 72  |nd so are preser|
00000710  76 65 64 20 69 6e 20 6d  65 6d 6f 72 79 20 28 73  |ved in memory (s|
00000720  75 69 74 61 62 6c 65 20  66 6f 72 20 65 64 69 74  |uitable for edit|
00000730  69 6e 67 29 2e 0a 20 20  20 32 29 20 41 6d 69 67  |ing)..   2) Amig|
00000740  61 20 66 6f 72 6d 61 74  73 20 28 73 6f 75 6e 64  |a formats (sound|
00000750  74 72 61 63 6b 65 72 20  31 35 2f 33 31 20 69 6e  |tracker 15/31 in|
00000760  73 74 2c 20 70 72 6f 74  72 61 63 6b 65 72 29 20  |st, protracker) |
00000770  2d 0a 20 20 20 20 20 20  20 20 20 20 20 46 72 6f  |-.           Fro|
00000780  6d 20 76 65 72 73 69 6f  6e 20 34 2e 30 36 20 6f  |m version 4.06 o|
00000790  6e 77 61 72 64 73 20 74  68 65 73 65 20 61 72 65  |nwards these are|
000007a0  20 72 65 70 6c 61 79 65  64 20 61 73 20 61 63 63  | replayed as acc|
000007b0  75 72 61 74 65 6c 79 20  61 73 0a 20 20 20 20 20  |urately as.     |
000007c0  20 20 20 20 20 20 70 6f  73 73 69 62 6c 65 20 28  |      possible (|
000007d0  69 6e 63 6c 75 64 69 6e  67 20 76 6f 6c 75 6d 65  |including volume|
000007e0  73 29 2c 20 77 69 74 68  20 74 68 65 20 75 6e 69  |s), with the uni|
000007f0  6d 70 6c 65 6d 65 6e 74  65 64 20 63 6f 6d 6d 61  |mplemented comma|
00000800  6e 64 73 0a 20 20 20 20  20 20 20 20 20 20 20 62  |nds.           b|
00000810  65 69 6e 67 20 35 2d 37  2c 20 39 2c 20 45 20 28  |eing 5-7, 9, E (|
00000820  6d 6f 73 74 6c 79 20 75  6e 75 73 65 64 20 6f 72  |mostly unused or|
00000830  20 68 2f 77 20 64 65 70  65 6e 64 65 6e 74 20 61  | h/w dependent a|
00000840  6e 79 77 61 79 29 2e 0a  20 20 20 20 20 20 20 20  |nyway)..        |
00000850  20 20 20 20 20 57 68 65  6e 20 61 6e 20 61 6d 69  |     When an ami|
00000860  67 61 20 66 6f 72 6d 61  74 20 74 75 6e 65 20 69  |ga format tune i|
00000870  73 20 6c 6f 61 64 65 64  2c 20 69 74 20 69 73 20  |s loaded, it is |
00000880  63 6f 6e 76 65 72 74 65  64 20 62 65 66 6f 72 65  |converted before|
00000890  0a 20 20 20 20 20 20 20  20 20 20 20 62 65 69 6e  |.           bein|
000008a0  67 20 70 6c 61 79 65 64  20 28 74 68 65 20 70 61  |g played (the pa|
000008b0  74 74 65 72 6e 20 64 61  74 61 20 69 73 20 63 6f  |ttern data is co|
000008c0  6e 76 65 72 74 65 64 20  69 6e 74 6f 20 54 72 61  |nverted into Tra|
000008d0  63 6b 65 72 20 66 6f 72  6d 61 74 0a 20 20 20 20  |cker format.    |
000008e0  20 20 20 20 20 20 20 64  61 74 61 2c 20 65 78 63  |       data, exc|
000008f0  65 70 74 20 61 6e 79 20  76 6f 6c 75 6d 65 20 6f  |ept any volume o|
00000900  72 20 73 6c 69 64 65 20  63 6f 6d 6d 61 6e 64 73  |r slide commands|
00000910  20 61 72 65 20 70 72 65  73 65 72 76 65 64 29 2e  | are preserved).|
00000920  0a 20 20 20 20 20 20 20  20 20 20 20 59 6f 75 20  |.           You |
00000930  73 68 6f 75 6c 64 20 6e  6f 74 2c 20 74 68 65 72  |should not, ther|
00000940  65 66 6f 72 65 2c 20 73  61 76 65 20 73 6f 75 6e  |efore, save soun|
00000950  64 74 72 61 63 6b 65 72  20 74 75 6e 65 73 20 77  |dtracker tunes w|
00000960  68 69 6c 65 20 74 68 65  79 20 61 72 65 0a 20 20  |hile they are.  |
00000970  20 20 20 20 20 20 20 20  20 70 6c 61 79 69 6e 67  |         playing|
00000980  20 6f 72 20 69 6e 20 70  61 75 73 65 20 6d 6f 64  | or in pause mod|
00000990  65 2c 20 62 75 74 20 69  66 20 74 68 65 79 20 68  |e, but if they h|
000009a0  61 76 65 20 62 65 65 6e  20 27 4d 65 6d 6f 72 79  |ave been 'Memory|
000009b0  4c 6f 61 64 27 65 64 0a  20 20 20 20 20 20 20 20  |Load'ed.        |
000009c0  20 20 20 74 68 65 79 20  77 69 6c 6c 20 62 65 20  |   they will be |
000009d0  63 6f 6e 76 65 72 74 65  64 20 62 61 63 6b 20 61  |converted back a|
000009e0  66 74 65 72 20 61 20 2a  50 6c 61 79 53 74 6f 70  |fter a *PlayStop|
000009f0  20 65 74 63 2e 20 28 62  75 74 20 61 6e 79 0a 20  | etc. (but any. |
00000a00  20 20 20 20 20 20 20 20  20 20 69 6e 73 74 72 75  |          instru|
00000a10  6d 65 6e 74 73 20 6f 75  74 20 6f 66 20 72 61 6e  |ments out of ran|
00000a20  67 65 20 5b 33 32 2d 33  36 5d 20 65 74 63 2e 20  |ge [32-36] etc. |
00000a30  77 69 6c 6c 20 62 65 20  69 67 6e 6f 72 65 64 2f  |will be ignored/|
00000a40  6d 69 73 2d 0a 20 20 20  20 20 20 20 20 20 20 20  |mis-.           |
00000a50  63 6f 6e 76 65 72 74 65  64 29 2e 0a 0a 20 20 54  |converted)...  T|
00000a60  68 69 73 20 64 6f 63 75  6d 65 6e 74 61 74 69 6f  |his documentatio|
00000a70  6e 20 77 61 73 20 77 72  69 74 74 65 6e 20 74 6f  |n was written to|
00000a80  20 61 63 63 6f 6d 70 61  6e 79 20 74 68 65 20 21  | accompany the !|
00000a90  53 2f 54 72 61 63 6b 65  72 20 61 70 70 6c 69 63  |S/Tracker applic|
00000aa0  61 74 69 6f 6e 0a 63 6f  6e 74 61 69 6e 69 6e 67  |ation.containing|
00000ab0  20 74 68 65 20 6c 61 74  65 73 74 20 54 72 61 63  | the latest Trac|
00000ac0  6b 65 72 6d 6f 64 75 6c  65 20 28 27 50 4d 27 29  |kermodule ('PM')|
00000ad0  20 61 6e 64 20 6e 6f 74  20 6d 75 63 68 20 65 6c  | and not much el|
00000ae0  73 65 20 28 74 68 69 73  20 77 61 73 20 73 6f 0a  |se (this was so.|
00000af0  74 68 61 74 20 66 69 6c  65 20 6c 65 6e 67 74 68  |that file length|
00000b00  73 20 63 6f 75 6c 64 20  62 65 20 6b 65 70 74 20  |s could be kept |
00000b10  64 6f 77 6e 20 61 6e 64  20 74 68 65 20 6d 6f 64  |down and the mod|
00000b20  75 6c 65 20 6d 61 64 65  20 72 65 61 73 6f 6e 61  |ule made reasona|
00000b30  62 6c 79 20 65 61 73 79  20 74 6f 0a 64 69 73 74  |bly easy to.dist|
00000b40  72 69 62 75 74 65 29 2e  20 49 74 20 77 61 73 20  |ribute). It was |
00000b50  69 6e 74 65 6e 64 65 64  20 74 68 61 74 20 33 72  |intended that 3r|
00000b60  64 20 70 61 72 74 79 20  50 44 20 77 72 69 74 65  |d party PD write|
00000b70  72 73 20 63 6f 75 6c 64  20 77 72 69 74 65 20 74  |rs could write t|
00000b80  68 65 69 72 20 6f 77 6e  0a 66 72 6f 6e 74 2d 65  |heir own.front-e|
00000b90  6e 64 73 20 66 6f 72 20  74 68 65 20 6d 6f 64 75  |nds for the modu|
00000ba0  6c 65 20 61 6e 64 20 6b  65 65 70 20 74 68 65 20  |le and keep the |
00000bb0  69 6e 74 65 72 66 61 63  65 73 20 27 63 6c 65 61  |interfaces 'clea|
00000bc0  6e 27 20 73 6f 20 74 68  61 74 20 69 74 20 69 73  |n' so that it is|
00000bd0  20 61 20 0a 73 69 6d 70  6c 65 20 74 61 73 6b 20  | a .simple task |
00000be0  74 6f 20 6b 65 65 70 20  75 70 20 77 69 74 68 20  |to keep up with |
00000bf0  63 68 61 6e 67 65 73 20  69 6e 20 74 68 65 20 54  |changes in the T|
00000c00  72 61 63 6b 65 72 20 66  6f 72 6d 61 74 2c 20 66  |racker format, f|
00000c10  6f 72 20 65 78 61 6d 70  6c 65 2c 20 62 79 0a 6a  |or example, by.j|
00000c20  75 73 74 20 72 65 70 6c  61 63 69 6e 67 20 74 68  |ust replacing th|
00000c30  65 20 6d 6f 64 75 6c 65  20 69 6e 20 74 68 65 20  |e module in the |
00000c40  61 70 70 6c 69 63 61 74  69 6f 6e 20 64 69 72 65  |application dire|
00000c50  63 74 6f 72 79 2e 0a 0a  0a 20 20 20 20 20 20 20  |ctory....       |
00000c60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00000c70  20 20 20 20 20 20 20 20  0a 20 20 20 20 20 20 20  |        .       |
00000c80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00000ca0  20 20 20 20 20 20 20 0a  0a 0a 44 4f 43 55 4d 45  |       ...DOCUME|
00000cb0  4e 54 41 54 49 4f 4e 20  4f 46 20 2a 20 43 4f 4d  |NTATION OF * COM|
00000cc0  4d 41 4e 44 53 20 41 4e  44 20 53 57 49 27 73 0a  |MANDS AND SWI's.|
00000cd0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00000cf0  2d 2d 2d 2d 2d 0a 0a 2a  50 6c 61 79 4d 6f 64 20  |-----..*PlayMod |
00000d00  20 20 20 20 2d 20 4c 6f  61 64 73 20 69 6e 74 6f  |    - Loads into|
00000d10  20 6d 65 6d 6f 72 79 20  61 6e 64 20 73 74 61 72  | memory and star|
00000d20  74 73 20 74 6f 20 70 6c  61 79 20 74 68 65 20 73  |ts to play the s|
00000d30  70 65 63 69 66 69 65 64  20 54 72 61 63 6b 65 72  |pecified Tracker|
00000d40  20 6f 72 0a 20 20 20 20  20 20 20 20 20 20 20 20  | or.            |
00000d50  20 20 20 53 6f 75 6e 64  74 72 61 63 6b 65 72 20  |   Soundtracker |
00000d60  6d 6f 64 75 6c 65 2c 20  64 65 74 65 72 6d 69 6e  |module, determin|
00000d70  69 6e 67 20 61 75 74 6f  6d 61 74 69 63 61 6c 6c  |ing automaticall|
00000d80  79 20 77 68 69 63 68 20  66 6f 72 6d 61 74 20 69  |y which format i|
00000d90  74 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |t.              |
00000da0  20 69 73 2e 0a 0a 20 20  20 20 20 20 20 20 20 20  | is...          |
00000db0  20 20 20 20 20 53 79 6e  74 61 78 3a 20 2a 50 6c  |     Syntax: *Pl|
00000dc0  61 79 4d 6f 64 20 3c 66  69 6c 65 6e 61 6d 65 3e  |ayMod <filename>|
00000dd0  0a 20 20 20 20 20 20 20  20 20 0a 0a 0a 0a 2a 50  |.         ....*P|
00000de0  6c 61 79 50 61 75 73 65  20 20 20 2d 20 57 69 6c  |layPause   - Wil|
00000df0  6c 20 70 61 75 73 65 20  74 68 65 20 63 75 72 72  |l pause the curr|
00000e00  65 6e 74 6c 79 20 70 6c  61 79 69 6e 67 20 74 75  |ently playing tu|
00000e10  6e 65 20 28 6b 69 6c 6c  73 20 61 6c 6c 20 73 6f  |ne (kills all so|
00000e20  75 6e 64 20 69 6d 6d 65  64 2d 0a 20 20 20 20 20  |und immed-.     |
00000e30  20 20 20 20 20 20 20 20  20 20 69 61 74 65 6c 79  |          iately|
00000e40  29 20 62 75 74 20 72 65  74 61 69 6e 73 20 74 68  |) but retains th|
00000e50  65 20 73 6f 75 6e 64 74  72 61 63 6b 65 72 2f 74  |e soundtracker/t|
00000e60  72 61 63 6b 65 72 20 6d  6f 64 75 6c 65 20 69 6e  |racker module in|
00000e70  20 6d 65 6d 6f 72 79 2e  0a 20 20 20 20 20 20 20  | memory..       |
00000e80  20 20 20 20 20 20 20 20  54 68 65 20 74 75 6e 65  |        The tune|
00000e90  20 63 61 6e 20 62 65 20  72 65 73 74 61 72 74 65  | can be restarte|
00000ea0  64 20 77 69 74 68 20 61  20 2a 50 6c 61 79 53 74  |d with a *PlaySt|
00000eb0  61 72 74 20 63 6f 6d 6d  61 6e 64 2e 0a 0a 20 20  |art command...  |
00000ec0  20 20 20 20 20 20 20 20  20 20 20 20 20 53 79 6e  |             Syn|
00000ed0  74 61 78 3a 20 2a 50 6c  61 79 50 61 75 73 65 0a  |tax: *PlayPause.|
00000ee0  0a 0a 0a 0a 2a 50 6c 61  79 53 74 61 72 74 20 20  |....*PlayStart  |
00000ef0  20 2d 20 57 69 6c 6c 20  72 65 73 75 6d 65 20 70  | - Will resume p|
00000f00  6c 61 79 69 6e 67 20 61  20 74 75 6e 65 20 61 66  |laying a tune af|
00000f10  74 65 72 20 61 20 2a 50  6c 61 79 50 61 75 73 65  |ter a *PlayPause|
00000f20  20 63 6f 6d 6d 61 6e 64  2e 0a 0a 20 20 20 20 20  | command...     |
00000f30  20 20 20 20 20 20 20 20  20 20 53 79 6e 74 61 78  |          Syntax|
00000f40  3a 20 2a 50 6c 61 79 53  74 61 72 74 0a 0a 20 0a  |: *PlayStart.. .|
00000f50  0a 0a 2a 50 6c 61 79 50  6f 73 20 20 20 20 20 2d  |..*PlayPos     -|
00000f60  20 57 69 6c 6c 20 73 65  74 20 74 68 65 20 63 75  | Will set the cu|
00000f70  72 72 65 6e 74 20 70 6f  73 69 74 69 6f 6e 20 69  |rrent position i|
00000f80  6e 20 74 68 65 20 73 65  71 75 65 6e 63 65 20 74  |n the sequence t|
00000f90  61 62 6c 65 2c 20 6f 72  20 69 66 20 6e 6f 0a 20  |able, or if no. |
00000fa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 70 61  |              pa|
00000fb0  72 61 6d 65 74 65 72 20  69 73 20 67 69 76 65 6e  |rameter is given|
00000fc0  2c 20 77 69 6c 6c 20 73  69 6d 70 6c 79 20 72 65  |, will simply re|
00000fd0  74 75 72 6e 20 74 68 65  20 63 75 72 72 65 6e 74  |turn the current|
00000fe0  20 70 6f 73 69 74 69 6f  6e 2e 0a 0a 20 20 20 20  | position...    |
00000ff0  20 20 20 20 20 20 20 20  20 20 20 53 79 6e 74 61  |           Synta|
00001000  78 3a 20 2a 50 6c 61 79  50 6f 73 20 5b 3c 30 2d  |x: *PlayPos [<0-|
00001010  31 32 37 3e 5d 0a 0a 20  20 20 20 20 20 20 20 20  |127>]..         |
00001020  20 20 20 20 20 20 20 0a  0a 0a 2a 50 6c 61 79 53  |       ...*PlayS|
00001030  61 6d 70 6c 65 73 20 2d  20 57 69 6c 6c 20 6c 69  |amples - Will li|
00001040  73 74 20 61 6c 6c 20 74  68 65 20 73 61 6d 70 6c  |st all the sampl|
00001050  65 73 20 61 73 73 6f 63  69 61 74 65 64 20 77 69  |es associated wi|
00001060  74 68 20 74 68 65 20 63  75 72 72 65 6e 74 6c 79  |th the currently|
00001070  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00001080  69 6e 73 74 61 6c 6c 65  64 20 6d 75 73 69 63 20  |installed music |
00001090  6d 6f 64 75 6c 65 2e 20  0a 0a 20 20 20 20 20 20  |module. ..      |
000010a0  20 20 20 20 20 20 20 20  20 53 79 6e 74 61 78 3a  |         Syntax:|
000010b0  20 2a 50 6c 61 79 53 61  6d 70 6c 65 73 0a 0a 0a  | *PlaySamples...|
000010c0  0a 2a 50 6c 61 79 53 70  65 65 64 20 20 20 2d 20  |.*PlaySpeed   - |
000010d0  57 69 6c 6c 20 63 68 61  6e 67 65 20 74 68 65 20  |Will change the |
000010e0  73 61 6d 70 6c 65 20 70  6c 61 79 62 61 63 6b 20  |sample playback |
000010f0  72 61 74 65 20 61 6e 64  20 74 68 65 72 65 66 6f  |rate and therefo|
00001100  72 65 20 76 61 72 79 20  74 68 65 0a 20 20 20 20  |re vary the.    |
00001110  20 20 20 20 20 20 20 20  20 20 20 61 70 70 72 6f  |           appro|
00001120  78 69 6d 61 74 65 20 61  6d 6f 75 6e 74 20 6f 66  |ximate amount of|
00001130  20 43 50 55 20 74 69 6d  65 20 74 61 6b 65 6e 20  | CPU time taken |
00001140  75 70 20 62 79 20 74 68  65 20 70 6c 61 79 72 6f  |up by the playro|
00001150  75 74 69 6e 65 2e 0a 20  20 20 20 20 20 20 20 20  |utine..         |
00001160  20 20 20 20 20 20 43 75  72 72 65 6e 74 6c 79 2c  |      Currently,|
00001170  20 74 68 65 20 6f 6e 6c  79 20 66 6f 75 72 20 6f  | the only four o|
00001180  70 74 69 6f 6e 73 20 61  72 65 3a 0a 20 20 20 20  |ptions are:.    |
00001190  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000011a0  20 20 20 30 20 2d 20 6e  6f 72 6d 61 6c 20 73 61  |   0 - normal sa|
000011b0  6d 70 6c 65 20 72 61 74  65 0a 20 20 20 20 20 20  |mple rate.      |
000011c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000011d0  20 31 20 2d 20 68 61 6c  66 20 73 61 6d 70 6c 65  | 1 - half sample|
000011e0  20 72 61 74 65 0a 20 20  20 20 20 20 20 20 20 20  | rate.          |
000011f0  20 20 20 20 20 20 20 20  20 20 20 20 20 32 20 2d  |             2 -|
00001200  20 6e 6f 72 6d 61 6c 20  73 61 6d 70 6c 65 20 72  | normal sample r|
00001210  61 74 65 20 28 66 6f 72  20 56 49 44 43 20 65 6e  |ate (for VIDC en|
00001220  68 61 6e 63 65 72 73 29  0a 20 20 20 20 20 20 20  |hancers).       |
00001230  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001240  33 20 2d 20 68 61 6c 66  20 73 61 6d 70 6c 65 20  |3 - half sample |
00001250  72 61 74 65 20 28 66 6f  72 20 56 49 44 43 20 65  |rate (for VIDC e|
00001260  6e 68 61 6e 63 65 72 73  29 0a 20 20 20 20 20 20  |nhancers).      |
00001270  20 20 20 20 20 20 20 20  20 49 66 20 6f 70 74 69  |         If opti|
00001280  6f 6e 20 31 20 6f 72 20  33 20 69 73 20 73 65 6c  |on 1 or 3 is sel|
00001290  65 63 74 65 64 2c 20 74  68 65 20 73 61 6d 70 6c  |ected, the sampl|
000012a0  65 20 71 75 61 6c 69 74  79 20 69 73 20 72 65 64  |e quality is red|
000012b0  75 63 65 64 2c 0a 20 20  20 20 20 20 20 20 20 20  |uced,.          |
000012c0  20 20 20 20 20 62 75 74  20 38 20 63 68 61 6e 6e  |     but 8 chann|
000012d0  65 6c 20 74 75 6e 65 73  20 77 69 6c 6c 20 74 61  |el tunes will ta|
000012e0  6b 65 20 75 70 20 6f 6e  6c 79 20 61 20 6c 69 74  |ke up only a lit|
000012f0  74 6c 65 20 6d 6f 72 65  20 74 69 6d 65 20 74 68  |tle more time th|
00001300  61 6e 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |an.             |
00001310  20 20 34 20 63 68 61 6e  6e 65 6c 20 74 75 6e 65  |  4 channel tune|
00001320  73 20 6f 72 69 67 69 6e  61 6c 6c 79 2e 0a 20 20  |s originally..  |
00001330  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 54  |               T|
00001340  68 65 20 66 75 6e 63 74  69 6f 6e 20 6f 66 20 2a  |he function of *|
00001350  50 6c 61 79 53 70 65 65  64 20 69 73 20 64 75 70  |PlaySpeed is dup|
00001360  6c 69 63 61 74 65 64 20  62 79 20 74 68 65 20 53  |licated by the S|
00001370  57 49 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |WI.             |
00001380  20 20 27 54 72 61 63 6b  65 72 5f 53 70 65 65 64  |  'Tracker_Speed|
00001390  27 20 28 73 65 65 20 6c  61 74 65 72 29 2e 0a 0a  |' (see later)...|
000013a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 53  |               S|
000013b0  79 6e 74 61 78 3a 20 2a  50 6c 61 79 53 70 65 65  |yntax: *PlaySpee|
000013c0  64 20 3c 30 7c 31 7c 32  7c 33 3e 0a 0a 0a 0a 0a  |d <0|1|2|3>.....|
000013d0  2a 50 6c 61 79 53 74 61  74 75 73 20 20 2d 20 57  |*PlayStatus  - W|
000013e0  69 6c 6c 20 70 72 69 6e  74 20 69 6e 66 6f 72 6d  |ill print inform|
000013f0  61 74 69 6f 6e 20 61 62  6f 75 74 20 74 68 65 20  |ation about the |
00001400  63 75 72 72 65 6e 74 20  74 75 6e 65 20 6d 6f 64  |current tune mod|
00001410  75 6c 65 20 6c 6f 61 64  65 64 0a 20 20 20 20 20  |ule loaded.     |
00001420  20 20 20 20 20 20 20 20  20 20 0a 20 20 20 20 20  |          .     |
00001430  20 20 20 20 20 20 20 20  20 20 53 79 6e 74 61 78  |          Syntax|
00001440  3a 20 2a 50 6c 61 79 53  74 61 74 75 73 0a 0a 0a  |: *PlayStatus...|
00001450  0a 0a 2a 50 6c 61 79 53  74 65 72 65 6f 20 20 2d  |..*PlayStereo  -|
00001460  20 43 6f 6e 74 72 6f 6c  73 20 74 68 65 20 73 74  | Controls the st|
00001470  65 72 65 6f 20 73 65 74  74 69 6e 67 73 20 77 68  |ereo settings wh|
00001480  69 6c 65 20 74 68 65 20  6f 6c 64 65 72 20 66 6f  |ile the older fo|
00001490  72 6d 61 74 20 73 6f 75  6e 64 2d 0a 20 20 20 20  |rmat sound-.    |
000014a0  20 20 20 20 20 20 20 20  20 20 20 74 72 61 63 6b  |           track|
000014b0  65 72 20 6d 6f 64 75 6c  65 73 20 61 72 65 20 70  |er modules are p|
000014c0  6c 61 79 69 6e 67 20 28  74 68 65 20 73 74 65 72  |laying (the ster|
000014d0  65 6f 20 69 73 20 66 69  78 65 64 20 6f 6e 20 61  |eo is fixed on a|
000014e0  6e 20 41 6d 69 67 61 29  2c 0a 20 20 20 20 20 20  |n Amiga),.      |
000014f0  20 20 20 20 20 20 20 20  20 61 6e 64 20 77 69 6c  |         and wil|
00001500  6c 20 73 77 69 74 63 68  20 62 65 74 77 65 65 6e  |l switch between|
00001510  20 66 69 76 65 20 70 6f  73 73 69 62 6c 65 20 73  | five possible s|
00001520  65 74 74 69 6e 67 73 20  74 6f 20 63 61 74 65 72  |ettings to cater|
00001530  20 66 6f 72 0a 20 20 20  20 20 20 20 20 20 20 20  | for.           |
00001540  20 20 20 20 6d 6f 73 74  20 63 6f 6e 66 69 67 75  |    most configu|
00001550  72 61 74 69 6f 6e 73 3a  0a 20 20 20 20 20 20 20  |rations:.       |
00001560  20 20 20 20 20 20 20 20  20 20 20 20 30 20 2d 20  |            0 - |
00001570  53 6c 69 67 68 74 6c 79  20 6f 66 66 2d 63 65 6e  |Slightly off-cen|
00001580  74 72 65 20 6c 65 66 74  20 61 6e 64 20 72 69 67  |tre left and rig|
00001590  68 74 20 28 6e 6f 72 6d  61 6c 29 0a 20 20 20 20  |ht (normal).    |
000015a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 31  |               1|
000015b0  20 2d 20 46 75 6c 6c 79  20 6c 65 66 74 20 61 6e  | - Fully left an|
000015c0  64 20 72 69 67 68 74 20  28 61 6d 69 67 61 2d 73  |d right (amiga-s|
000015d0  74 79 6c 65 29 0a 20 20  20 20 20 20 20 20 20 20  |tyle).          |
000015e0  20 20 20 20 20 20 20 20  20 32 20 2d 20 46 75 6c  |         2 - Ful|
000015f0  6c 79 20 6c 65 66 74 0a  20 20 20 20 20 20 20 20  |ly left.        |
00001600  20 20 20 20 20 20 20 20  20 20 20 33 20 2d 20 46  |           3 - F|
00001610  75 6c 6c 79 20 72 69 67  68 74 0a 20 20 20 20 20  |ully right.     |
00001620  20 20 20 20 20 20 20 20  20 20 20 20 20 20 34 20  |              4 |
00001630  2d 20 44 6f 6e 27 74 20  61 6c 74 65 72 20 73 74  |- Don't alter st|
00001640  65 72 65 6f 20 73 65 74  74 69 6e 67 73 0a 20 20  |ereo settings.  |
00001650  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001660  20 20 20 20 20 20 20 20  28 6e 6f 72 6d 61 6c 6c  |        (normall|
00001670  79 20 61 6c 74 65 72 73  20 73 65 74 74 69 6e 67  |y alters setting|
00001680  73 20 77 68 65 6e 20 61  20 74 75 6e 65 20 69 73  |s when a tune is|
00001690  20 6c 6f 61 64 65 64 20  20 20 20 20 20 20 20 20  | loaded         |
000016a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000016b0  20 20 20 20 20 20 61 6e  64 20 77 68 65 6e 20 69  |      and when i|
000016c0  74 20 70 6c 61 79 73 20  61 20 74 72 61 63 6b 65  |t plays a tracke|
000016d0  72 20 73 74 65 72 65 6f  20 63 6f 6d 6d 61 6e 64  |r stereo command|
000016e0  20 2d 20 73 65 65 0a 20  20 20 20 20 20 20 20 20  | - see.         |
000016f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00001700  20 20 53 57 49 20 54 72  61 63 6b 65 72 5f 53 74  |  SWI Tracker_St|
00001710  65 72 65 6f 29 0a 0a 20  20 20 20 20 20 20 20 20  |ereo)..         |
00001720  20 20 20 20 20 20 53 79  6e 74 61 78 3a 20 2a 50  |      Syntax: *P|
00001730  6c 61 79 53 74 65 72 65  6f 20 3c 30 7c 31 7c 32  |layStereo <0|1|2|
00001740  7c 33 3e 0a 0a 0a 0a 0a  2a 50 6c 61 79 53 74 6f  ||3>.....*PlaySto|
00001750  70 20 20 20 20 2d 20 57  69 6c 6c 20 73 74 6f 70  |p    - Will stop|
00001760  20 61 6e 64 20 6b 69 6c  6c 20 74 68 65 20 63 75  | and kill the cu|
00001770  72 72 65 6e 74 6c 79 20  70 6c 61 79 69 6e 67 20  |rrently playing |
00001780  74 75 6e 65 20 6d 6f 64  75 6c 65 2c 0a 20 20 20  |tune module,.   |
00001790  20 20 20 20 20 20 20 20  20 20 20 20 72 65 6d 6f  |            remo|
000017a0  76 69 6e 67 20 69 74 20  66 72 6f 6d 20 6d 65 6d  |ving it from mem|
000017b0  6f 72 79 2e 0a 0a 20 20  20 20 20 20 20 20 20 20  |ory...          |
000017c0  20 20 20 20 20 53 79 6e  74 61 78 3a 20 2a 50 6c  |     Syntax: *Pl|
000017d0  61 79 53 74 6f 70 0a 0a  0a 20 20 20 20 20 20 20  |ayStop...       |
000017e0  20 20 20 20 20 20 20 20  0a 0a 2a 50 6c 61 79 56  |        ..*PlayV|
000017f0  6f 6c 75 6d 65 20 20 2d  20 43 68 61 6e 67 65 73  |olume  - Changes|
00001800  20 74 68 65 20 6f 76 65  72 61 6c 6c 20 6c 6f 75  | the overall lou|
00001810  64 6e 65 73 73 20 6f 66  20 61 6e 79 20 74 75 6e  |dness of any tun|
00001820  65 73 20 70 6c 61 79 69  6e 67 2e 20 54 68 65 20  |es playing. The |
00001830  73 63 61 6c 65 0a 20 20  20 20 20 20 20 20 20 20  |scale.          |
00001840  20 20 20 20 20 69 73 20  6c 6f 67 61 72 69 74 68  |     is logarith|
00001850  6d 69 63 20 61 6e 64 20  67 6f 65 73 20 66 72 6f  |mic and goes fro|
00001860  6d 20 31 20 28 73 69 6c  65 6e 74 29 20 74 6f 20  |m 1 (silent) to |
00001870  31 32 37 20 28 66 75 6c  6c 20 76 6f 6c 75 6d 65  |127 (full volume|
00001880  29 2e 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |)..             |
00001890  20 20 2a 50 6c 61 79 56  6f 6c 75 6d 65 20 77 69  |  *PlayVolume wi|
000018a0  74 68 20 6e 6f 20 70 61  72 61 6d 65 74 65 72 73  |th no parameters|
000018b0  20 64 69 73 70 6c 61 79  73 20 74 68 65 20 63 75  | displays the cu|
000018c0  72 72 65 6e 74 20 76 6f  6c 75 6d 65 2e 0a 0a 20  |rrent volume... |
000018d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 53 79  |              Sy|
000018e0  6e 74 61 78 3a 20 2a 50  6c 61 79 56 6f 6c 75 6d  |ntax: *PlayVolum|
000018f0  65 20 5b 3c 30 2d 31 32  37 3e 5d 0a 0a 0a 0a 0a  |e [<0-127>].....|
00001900  0a 53 57 49 20 43 4f 4d  4d 41 4e 44 53 0a 2d 2d  |.SWI COMMANDS.--|
00001910  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0a 53 65 76 65 72  |----------.Sever|
00001920  61 6c 20 53 57 49 20 63  6f 6d 6d 61 6e 64 73 20  |al SWI commands |
00001930  68 61 76 65 20 62 65 65  6e 20 61 64 64 65 64 20  |have been added |
00001940  74 6f 20 74 68 65 20 6d  6f 64 75 6c 65 20 69 6e  |to the module in|
00001950  20 6f 72 64 65 72 20 74  6f 20 73 69 6d 70 6c 69  | order to simpli|
00001960  66 79 20 74 68 65 0a 74  61 73 6b 20 6f 66 20 61  |fy the.task of a|
00001970  64 64 69 6e 67 20 73 6f  75 6e 64 74 72 61 63 6b  |dding soundtrack|
00001980  65 72 2f 74 72 61 63 6b  65 72 20 6d 75 73 69 63  |er/tracker music|
00001990  20 74 6f 20 79 6f 75 72  20 64 65 6d 6f 73 20 65  | to your demos e|
000019a0  74 63 2e 20 28 65 73 70  65 63 69 61 6c 6c 79 0a  |tc. (especially.|
000019b0  6d 75 6c 74 69 2d 74 61  73 6b 69 6e 67 20 73 69  |multi-tasking si|
000019c0  74 75 61 74 69 6f 6e 73  29 2e 20 54 68 65 73 65  |tuations). These|
000019d0  20 70 72 6f 76 69 64 65  20 61 6c 6c 20 6f 66 20  | provide all of |
000019e0  74 68 65 20 66 61 63 69  6c 69 74 69 65 73 20 6f  |the facilities o|
000019f0  66 66 65 72 65 64 20 62  79 0a 74 68 65 20 76 61  |ffered by.the va|
00001a00  72 69 6f 75 73 20 2a 20  63 6f 6d 6d 61 6e 64 73  |rious * commands|
00001a10  2c 20 62 75 74 20 61 6c  73 6f 20 61 6c 6c 6f 77  |, but also allow|
00001a20  20 61 20 6d 6f 72 65 20  64 65 74 61 69 6c 65 64  | a more detailed|
00001a30  20 63 6f 6e 74 72 6f 6c  20 6f 66 20 73 6f 6d 65  | control of some|
00001a40  20 6f 66 20 74 68 65 0a  6d 6f 64 75 6c 65 27 73  | of the.module's|
00001a50  20 66 65 61 74 75 72 65  73 2e 0a 41 6c 6c 20 74  | features..All t|
00001a60  68 65 20 53 57 49 27 73  20 72 65 6d 61 69 6e 20  |he SWI's remain |
00001a70  69 6e 20 53 56 43 20 6d  6f 64 65 2c 20 61 6e 64  |in SVC mode, and|
00001a80  20 64 6f 20 6e 6f 74 20  61 6c 74 65 72 20 74 68  | do not alter th|
00001a90  65 20 69 6e 74 65 72 72  75 70 74 20 73 74 61 74  |e interrupt stat|
00001aa0  75 73 2e 0a 49 20 74 68  69 6e 6b 20 6d 6f 73 74  |us..I think most|
00001ab0  20 61 72 65 20 72 65 2d  65 6e 74 72 61 6e 74 2c  | are re-entrant,|
00001ac0  20 65 78 63 65 70 74 20  74 68 6f 73 65 20 77 68  | except those wh|
00001ad0  69 63 68 20 75 73 65 20  73 79 73 74 65 6d 20 53  |ich use system S|
00001ae0  57 49 27 73 20 28 6c 6f  61 64 2c 20 70 6c 61 79  |WI's (load, play|
00001af0  2c 0a 73 74 6f 70 20 65  74 63 2e 29 2c 20 73 6f  |,.stop etc.), so|
00001b00  20 61 76 6f 69 64 20 63  61 6c 6c 69 6e 67 20 74  | avoid calling t|
00001b10  68 65 6d 20 66 72 6f 6d  20 69 6e 74 65 72 72 75  |hem from interru|
00001b20  70 74 73 20 69 66 20 79  6f 75 20 63 61 6e 20 61  |pts if you can a|
00001b30  76 6f 69 64 20 69 74 2e  0a 0a 54 68 65 20 53 57  |void it...The SW|
00001b40  49 20 63 68 75 6e 6b 20  6e 75 6d 62 65 72 20 67  |I chunk number g|
00001b50  69 76 65 6e 20 68 65 72  65 20 28 26 34 33 32 30  |iven here (&4320|
00001b60  30 29 20 69 73 20 61 6e  20 6f 66 66 69 63 69 61  |0) is an officia|
00001b70  6c 6c 79 20 72 65 63 6f  67 6e 69 73 65 64 20 63  |lly recognised c|
00001b80  68 75 6e 6b 0a 6e 75 6d  62 65 72 20 69 73 73 75  |hunk.number issu|
00001b90  65 64 20 62 79 20 41 63  6f 72 6e 2e 0a 0a 0a 2d  |ed by Acorn....-|
00001ba0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001be0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 54 72 61  |------------.Tra|
00001bf0  63 6b 65 72 5f 56 65 72  73 69 6f 6e 20 20 20 20  |cker_Version    |
00001c00  20 20 20 20 28 53 57 49  20 26 34 33 32 30 30 29  |    (SWI &43200)|
00001c10  0a 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.---------------|
00001c20  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001c50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0a 0a  |--------------..|
00001c60  4f 6e 20 45 6e 74 72 79  3a 20 20 2d 0a 0a 4f 6e  |On Entry:  -..On|
00001c70  20 45 78 69 74 20 3a 20  20 52 30 20 3d 20 76 65  | Exit :  R0 = ve|
00001c80  72 73 69 6f 6e 20 6e 75  6d 62 65 72 2a 31 30 30  |rsion number*100|
00001c90  20 20 28 69 65 2e 20 66  6f 72 20 56 31 2e 32 33  |  (ie. for V1.23|
00001ca0  20 3d 20 31 32 33 29 0a  0a 55 73 65 20 74 68 69  | = 123)..Use thi|
00001cb0  73 20 63 61 6c 6c 20 74  6f 20 65 6e 73 75 72 65  |s call to ensure|
00001cc0  20 74 68 61 74 20 74 68  65 20 74 72 61 63 6b 65  | that the tracke|
00001cd0  72 6d 6f 64 75 6c 65 20  69 6e 73 74 61 6c 6c 65  |rmodule installe|
00001ce0  64 20 69 73 20 61 20 72  65 63 65 6e 74 20 65 6e  |d is a recent en|
00001cf0  6f 75 67 68 0a 76 65 72  73 69 6f 6e 20 74 6f 20  |ough.version to |
00001d00  73 75 70 70 6f 72 74 20  74 68 65 20 53 57 49 27  |support the SWI'|
00001d10  73 20 79 6f 75 20 77 69  73 68 20 74 6f 20 75 73  |s you wish to us|
00001d20  65 2e 20 56 65 72 73 69  6f 6e 73 20 34 2e 30 30  |e. Versions 4.00|
00001d30  20 6f 6e 77 61 72 64 73  20 69 6e 63 6f 72 70 6f  | onwards incorpo|
00001d40  72 2d 0a 61 74 65 20 74  68 65 20 53 57 49 27 73  |r-.ate the SWI's|
00001d50  2e 0a 0a 0a 0a 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |......----------|
00001d60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001da0  2d 2d 2d 0a 54 72 61 63  6b 65 72 5f 4c 6f 61 64  |---.Tracker_Load|
00001db0  20 20 20 20 20 20 20 20  20 20 20 28 53 57 49 20  |           (SWI |
00001dc0  26 34 33 32 30 31 29 0a  2d 2d 2d 2d 2d 2d 2d 2d  |&43201).--------|
00001dd0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00001e10  2d 2d 2d 2d 2d 0a 0a 4f  6e 20 45 6e 74 72 79 3a  |-----..On Entry:|
00001e20  20 20 52 30 20 3d 20 70  6f 69 6e 74 65 72 20 74  |  R0 = pointer t|
00001e30  6f 20 66 69 6c 65 6e 61  6d 65 20 6f 66 20 73 6f  |o filename of so|
00001e40  75 6e 64 74 72 61 63 6b  65 72 2f 74 72 61 63 6b  |undtracker/track|
00001e50  65 72 20 6d 6f 64 75 6c  65 0a 0a 4f 6e 20 45 78  |er module..On Ex|
00001e60  69 74 20 3a 20 20 52 30  20 70 72 65 73 65 72 76  |it :  R0 preserv|
00001e70  65 64 0a 0a 54 68 69 73  20 63 61 6c 6c 20 77 69  |ed..This call wi|
00001e80  6c 6c 20 63 6c 61 69 6d  20 6d 65 6d 6f 72 79 20  |ll claim memory |
00001e90  66 72 6f 6d 20 74 68 65  20 52 4d 41 20 61 6e 64  |from the RMA and|
00001ea0  20 6c 6f 61 64 20 74 68  65 20 73 70 65 63 69 66  | load the specif|
00001eb0  69 65 64 20 74 75 6e 65  20 6d 6f 64 75 6c 65 2c  |ied tune module,|
00001ec0  0a 69 6e 69 74 69 61 6c  69 73 65 20 74 68 65 20  |.initialise the |
00001ed0  73 6f 75 6e 64 20 73 79  73 74 65 6d 2c 20 61 6e  |sound system, an|
00001ee0  64 20 73 65 74 20 74 68  65 20 70 6c 61 79 72 6f  |d set the playro|
00001ef0  75 74 69 6e 65 20 69 6e  20 70 61 75 73 65 20 6d  |utine in pause m|
00001f00  6f 64 65 2e 0a 59 6f 75  20 6d 75 73 74 20 74 68  |ode..You must th|
00001f10  65 6e 20 75 73 65 20 74  68 65 20 53 57 49 20 54  |en use the SWI T|
00001f20  72 61 63 6b 65 72 5f 50  6c 61 79 20 74 6f 20 73  |racker_Play to s|
00001f30  74 61 72 74 20 74 68 65  20 74 75 6e 65 20 70 6c  |tart the tune pl|
00001f40  61 79 69 6e 67 2e 0a 54  68 65 20 63 6f 6d 6d 61  |aying..The comma|
00001f50  6e 64 20 2a 50 6c 61 79  4d 6f 64 20 63 61 6c 6c  |nd *PlayMod call|
00001f60  73 20 74 68 69 73 20 72  6f 75 74 69 6e 65 2c 20  |s this routine, |
00001f70  61 6e 64 20 74 68 65 6e  20 74 68 65 20 53 57 49  |and then the SWI|
00001f80  20 54 72 61 63 6b 65 72  5f 50 6c 61 79 2e 0a 0a  | Tracker_Play...|
00001f90  41 6e 20 65 72 72 6f 72  20 77 69 6c 6c 20 62 65  |An error will be|
00001fa0  20 67 65 6e 65 72 61 74  65 64 20 69 66 20 74 68  | generated if th|
00001fb0  65 20 6d 6f 64 75 6c 65  20 63 61 6e 6e 6f 74 20  |e module cannot |
00001fc0  62 65 20 6c 6f 61 64 65  64 20 6f 72 20 6e 6f 74  |be loaded or not|
00001fd0  20 65 6e 6f 75 67 68 0a  6d 65 6d 6f 72 79 20 63  | enough.memory c|
00001fe0  61 6e 20 62 65 20 63 6c  61 69 6d 65 64 2e 0a 0a  |an be claimed...|
00001ff0  0a 0a 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |...-------------|
00002000  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002040  0a 54 72 61 63 6b 65 72  5f 4d 65 6d 6f 72 79 4c  |.Tracker_MemoryL|
00002050  6f 61 64 20 20 20 20 20  28 53 57 49 20 26 34 33  |oad     (SWI &43|
00002060  32 30 32 29 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |202).-----------|
00002070  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000020b0  2d 2d 0a 0a 4f 6e 20 45  6e 74 72 79 3a 20 20 52  |--..On Entry:  R|
000020c0  30 20 3d 20 70 6f 69 6e  74 65 72 20 74 6f 20 66  |0 = pointer to f|
000020d0  69 72 73 74 20 77 6f 72  64 20 6f 66 20 73 6f 75  |irst word of sou|
000020e0  6e 64 74 72 61 63 6b 65  72 2f 74 72 61 63 6b 65  |ndtracker/tracke|
000020f0  72 20 6d 6f 64 75 6c 65  20 69 6e 0a 20 20 20 20  |r module in.    |
00002100  20 20 20 20 20 20 20 20  20 20 20 20 6d 65 6d 6f  |            memo|
00002110  72 79 20 28 4e 42 20 6d  75 73 74 20 62 65 20 77  |ry (NB must be w|
00002120  6f 72 64 2d 61 6c 69 67  6e 65 64 29 0a 20 20 20  |ord-aligned).   |
00002130  20 20 20 20 20 20 20 20  52 31 20 3d 20 6c 65 6e  |        R1 = len|
00002140  67 74 68 20 6f 66 20 6d  6f 64 75 6c 65 20 69 6e  |gth of module in|
00002150  20 62 79 74 65 73 0a 0a  4f 6e 20 45 78 69 74 20  | bytes..On Exit |
00002160  3a 20 20 52 30 20 61 6e  64 20 52 31 20 70 72 65  |:  R0 and R1 pre|
00002170  73 65 72 76 65 64 0a 0a  54 68 69 73 20 63 61 6c  |served..This cal|
00002180  6c 20 63 61 6e 20 62 65  20 75 73 65 64 20 62 79  |l can be used by|
00002190  20 61 20 6e 6f 6e 2d 6d  75 6c 74 69 74 61 73 6b  | a non-multitask|
000021a0  69 6e 67 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |ing application |
000021b0  74 6f 20 73 70 65 63 69  66 79 20 61 6e 20 61 72  |to specify an ar|
000021c0  65 61 0a 6f 66 20 6d 65  6d 6f 72 79 20 61 73 20  |ea.of memory as |
000021d0  61 20 74 75 6e 65 20 6d  6f 64 75 6c 65 2c 20 61  |a tune module, a|
000021e0  6e 64 20 74 68 65 72 65  62 79 20 72 65 6d 6f 76  |nd thereby remov|
000021f0  65 20 74 68 65 20 6e 65  65 64 20 66 6f 72 20 61  |e the need for a|
00002200  20 73 65 70 65 72 61 74  65 20 66 69 6c 65 0a 74  | seperate file.t|
00002210  6f 20 68 6f 6c 64 20 61  20 74 75 6e 65 2c 20 61  |o hold a tune, a|
00002220  6e 64 20 74 68 65 72 65  20 69 73 20 6e 6f 20 6e  |nd there is no n|
00002230  65 65 64 20 74 6f 20 63  6c 61 69 6d 20 61 20 6c  |eed to claim a l|
00002240  61 72 67 65 20 61 6d 6f  75 6e 74 20 6f 66 20 52  |arge amount of R|
00002250  4d 41 20 73 70 61 63 65  2e 0a 4f 6e 63 65 20 74  |MA space..Once t|
00002260  68 69 73 20 53 57 49 20  69 73 20 63 61 6c 6c 65  |his SWI is calle|
00002270  64 2c 20 74 68 65 20 6d  6f 64 75 6c 65 20 77 69  |d, the module wi|
00002280  6c 6c 20 62 65 20 74 72  65 61 74 65 64 20 61 73  |ll be treated as|
00002290  20 69 66 20 69 74 20 77  61 73 20 6c 6f 61 64 65  | if it was loade|
000022a0  64 20 69 6e 0a 74 68 65  20 6d 6f 64 75 6c 65 27  |d in.the module'|
000022b0  73 20 6f 77 6e 20 77 6f  72 6b 73 70 61 63 65 2e  |s own workspace.|
000022c0  0a 20 49 6d 70 6f 72 74  61 6e 74 3a 20 59 6f 75  |. Important: You|
000022d0  20 6d 75 73 74 20 74 65  6c 6c 20 74 68 65 20 74  | must tell the t|
000022e0  72 61 63 6b 65 72 6d 6f  64 75 6c 65 20 74 6f 20  |rackermodule to |
000022f0  66 6f 72 67 65 74 20 74  68 65 20 6d 6f 64 75 6c  |forget the modul|
00002300  65 20 69 66 20 74 68 65  0a 6d 65 6d 6f 72 79 20  |e if the.memory |
00002310  77 69 6c 6c 20 62 65 20  6f 76 65 72 77 72 69 74  |will be overwrit|
00002320  74 65 6e 2c 20 6f 74 68  65 72 77 69 73 65 20 74  |ten, otherwise t|
00002330  68 65 20 6d 6f 64 75 6c  65 20 6d 61 79 20 63 72  |he module may cr|
00002340  61 73 68 2e 0a 28 2a 50  6c 61 79 53 74 6f 70 20  |ash..(*PlayStop |
00002350  6f 72 20 54 72 61 63 6b  65 72 5f 53 74 6f 70 20  |or Tracker_Stop |
00002360  53 57 49 29 0a 0a 4e 42  20 54 68 69 73 20 63 61  |SWI)..NB This ca|
00002370  6c 6c 20 77 69 6c 6c 20  6e 6f 74 20 77 6f 72 6b  |ll will not work|
00002380  20 66 6f 72 20 70 72 6f  67 72 61 6d 73 20 72 75  | for programs ru|
00002390  6e 6e 69 6e 67 20 75 6e  64 65 72 20 74 68 65 20  |nning under the |
000023a0  64 65 73 6b 74 6f 70 20  69 66 20 74 68 65 0a 20  |desktop if the. |
000023b0  20 20 6d 6f 64 75 6c 65  20 69 73 20 6c 6f 61 64  |  module is load|
000023c0  65 64 20 69 6e 20 75 73  65 72 20 6d 65 6d 6f 72  |ed in user memor|
000023d0  79 2e 0a 0a 20 20 20 57  68 65 6e 20 61 20 73 6f  |y...   When a so|
000023e0  75 6e 64 74 72 61 63 6b  65 72 20 6d 6f 64 75 6c  |undtracker modul|
000023f0  65 20 69 73 20 6c 6f 61  64 65 64 2c 20 74 68 65  |e is loaded, the|
00002400  20 70 61 74 74 65 72 6e  20 64 61 74 61 20 69 73  | pattern data is|
00002410  20 63 6f 6e 76 65 72 74  65 64 20 74 6f 0a 20 20  | converted to.  |
00002420  20 54 72 61 63 6b 65 72  20 66 6f 72 6d 61 74 20  | Tracker format |
00002430  64 61 74 61 20 28 65 78  63 65 70 74 20 66 6f 72  |data (except for|
00002440  20 76 6f 6c 75 6d 65 73  20 77 68 69 63 68 20 72  | volumes which r|
00002450  65 6d 61 69 6e 20 30 2d  36 34 29 2c 20 73 6f 20  |emain 0-64), so |
00002460  0a 20 20 20 66 6f 72 20  74 68 65 20 70 75 72 70  |.   for the purp|
00002470  6f 73 65 73 20 6f 66 20  65 64 69 74 69 6e 67 2c  |oses of editing,|
00002480  20 61 73 20 6c 6f 6e 67  20 61 73 20 54 72 61 63  | as long as Trac|
00002490  6b 65 72 5f 52 65 61 64  2f 57 72 69 74 65 53 61  |ker_Read/WriteSa|
000024a0  6d 70 6c 65 54 61 62 6c  65 20 61 72 65 0a 20 20  |mpleTable are.  |
000024b0  20 75 73 65 64 2c 20 74  68 65 20 6d 6f 64 75 6c  | used, the modul|
000024c0  65 20 63 61 6e 20 62 65  20 63 6f 6e 73 69 64 65  |e can be conside|
000024d0  72 65 64 20 61 73 20 61  20 54 72 61 63 6b 65 72  |red as a Tracker|
000024e0  20 6d 6f 64 75 6c 65 2e  20 57 68 65 6e 20 53 57  | module. When SW|
000024f0  49 0a 20 20 20 54 72 61  63 6b 65 72 5f 53 74 6f  |I.   Tracker_Sto|
00002500  70 2f 2a 50 6c 61 79 53  74 6f 70 20 69 73 20 63  |p/*PlayStop is c|
00002510  61 6c 6c 65 64 2c 20 74  68 65 20 64 61 74 61 20  |alled, the data |
00002520  69 73 20 63 6f 6e 76 65  72 74 65 64 20 62 61 63  |is converted bac|
00002530  6b 2e 0a 0a 0a 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |k.....----------|
00002540  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002580  2d 2d 2d 0a 54 72 61 63  6b 65 72 5f 50 6c 61 79  |---.Tracker_Play|
00002590  20 20 20 20 20 20 20 20  20 20 20 28 53 57 49 20  |           (SWI |
000025a0  26 34 33 32 30 33 29 0a  2d 2d 2d 2d 2d 2d 2d 2d  |&43203).--------|
000025b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000025f0  2d 2d 2d 2d 2d 0a 0a 4f  6e 20 45 6e 74 72 79 3a  |-----..On Entry:|
00002600  20 20 2d 0a 0a 4f 6e 20  45 78 69 74 20 3a 20 20  |  -..On Exit :  |
00002610  2d 0a 0a 54 68 69 73 20  63 61 6c 6c 20 77 69 6c  |-..This call wil|
00002620  6c 20 72 65 73 74 61 72  74 20 61 20 74 75 6e 65  |l restart a tune|
00002630  20 61 66 74 65 72 20 69  74 20 68 61 73 20 62 65  | after it has be|
00002640  65 6e 20 70 61 75 73 65  64 20 6f 72 20 6c 6f 61  |en paused or loa|
00002650  64 65 64 20 77 69 74 68  20 74 68 65 0a 54 72 61  |ded with the.Tra|
00002660  63 6b 65 72 5f 4c 6f 61  64 20 53 57 49 2e 0a 0a  |cker_Load SWI...|
00002670  0a 0a 0a 0a 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |....------------|
00002680  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000026c0  2d 0a 54 72 61 63 6b 65  72 5f 53 74 6f 70 20 20  |-.Tracker_Stop  |
000026d0  20 20 20 20 20 20 20 20  20 28 53 57 49 20 26 34  |         (SWI &4|
000026e0  33 32 30 34 29 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |3204).----------|
000026f0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002730  2d 2d 2d 0a 0a 4f 6e 20  45 6e 74 72 79 3a 20 20  |---..On Entry:  |
00002740  2d 0a 0a 4f 6e 20 45 78  69 74 20 3a 20 20 2d 0a  |-..On Exit :  -.|
00002750  0a 54 68 69 73 20 70 65  72 66 6f 72 6d 73 20 74  |.This performs t|
00002760  68 65 20 73 61 6d 65 20  61 63 74 69 6f 6e 73 20  |he same actions |
00002770  61 73 20 2a 50 6c 61 79  53 74 6f 70 0a 55 73 69  |as *PlayStop.Usi|
00002780  6e 67 20 2a 50 6c 61 79  53 74 6f 70 20 6f 72 20  |ng *PlayStop or |
00002790  74 68 69 73 20 53 57 49  20 69 73 20 74 68 65 20  |this SWI is the |
000027a0  6f 6e 6c 79 20 77 61 79  20 74 6f 20 67 65 74 20  |only way to get |
000027b0  74 68 65 20 74 72 61 63  6b 65 72 6d 6f 64 75 6c  |the trackermodul|
000027c0  65 20 74 6f 0a 72 65 6c  65 61 73 65 20 74 68 65  |e to.release the|
000027d0  20 6d 65 6d 6f 72 79 20  74 61 6b 65 6e 20 75 70  | memory taken up|
000027e0  20 62 79 20 74 68 65 20  74 75 6e 65 20 6d 6f 64  | by the tune mod|
000027f0  75 6c 65 2c 20 6f 72 20  74 6f 20 66 6f 72 63 65  |ule, or to force|
00002800  20 69 74 20 74 6f 20 66  6f 72 67 65 74 20 74 68  | it to forget th|
00002810  65 0a 61 64 64 72 65 73  73 20 6f 66 20 61 20 6d  |e.address of a m|
00002820  6f 64 75 6c 65 20 69 66  20 69 74 20 68 61 73 20  |odule if it has |
00002830  62 65 65 6e 20 6c 6f 61  64 65 64 20 77 69 74 68  |been loaded with|
00002840  20 74 68 65 20 27 54 72  61 63 6b 65 72 5f 4d 65  | the 'Tracker_Me|
00002850  6d 6f 72 79 4c 6f 61 64  27 20 53 57 49 2e 0a 49  |moryLoad' SWI..I|
00002860  66 20 74 68 65 20 6d 6f  64 75 6c 65 20 69 73 20  |f the module is |
00002870  73 6f 75 6e 64 74 72 61  63 6b 65 72 20 61 6e 64  |soundtracker and|
00002880  20 68 61 73 20 62 65 65  6e 20 6c 6f 61 64 65 64  | has been loaded|
00002890  20 77 69 74 68 20 54 72  61 63 6b 65 72 5f 4d 65  | with Tracker_Me|
000028a0  6d 6f 72 79 4c 6f 61 64  2c 0a 63 61 6c 6c 69 6e  |moryLoad,.callin|
000028b0  67 20 74 68 69 73 20 53  57 49 20 6f 72 20 2a 50  |g this SWI or *P|
000028c0  6c 61 79 53 74 6f 70 20  77 69 6c 6c 20 63 6f 6e  |layStop will con|
000028d0  76 65 72 74 20 74 68 65  20 64 61 74 61 20 62 61  |vert the data ba|
000028e0  63 6b 20 74 6f 20 74 68  65 20 6f 72 69 67 69 6e  |ck to the origin|
000028f0  61 6c 0a 66 6f 72 6d 61  74 2e 0a 0a 0a 0a 2d 2d  |al.format.....--|
00002900  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002940  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 54 72 61 63  |-----------.Trac|
00002950  6b 65 72 5f 50 61 75 73  65 20 20 20 20 20 20 20  |ker_Pause       |
00002960  20 20 20 28 53 57 49 20  26 34 33 32 30 35 29 0a  |   (SWI &43205).|
00002970  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000029b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0a 0a 4f  |-------------..O|
000029c0  6e 20 45 6e 74 72 79 3a  20 20 2d 0a 0a 4f 6e 20  |n Entry:  -..On |
000029d0  45 78 69 74 20 3a 20 20  2d 0a 0a 54 68 69 73 20  |Exit :  -..This |
000029e0  70 65 72 66 6f 72 6d 73  20 74 68 65 20 73 61 6d  |performs the sam|
000029f0  65 20 61 63 74 69 6f 6e  73 20 61 73 20 2a 50 6c  |e actions as *Pl|
00002a00  61 79 50 61 75 73 65 0a  0a 0a 0a 0a 0a 2d 2d 2d  |ayPause......---|
00002a10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002a50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0a 54 72 61 63 6b  |----------.Track|
00002a60  65 72 5f 53 74 65 72 65  6f 20 20 20 20 20 20 20  |er_Stereo       |
00002a70  20 20 28 53 57 49 20 26  34 33 32 30 36 29 0a 2d  |  (SWI &43206).-|
00002a80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002ac0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 0a 4f 6e  |------------..On|
00002ad0  20 45 6e 74 72 79 3a 20  20 52 30 20 3d 20 53 74  | Entry:  R0 = St|
00002ae0  65 72 65 6f 20 73 65 74  74 69 6e 67 20 28 30 2d  |ereo setting (0-|
00002af0  34 29 20 6f 72 20 2d 31  20 74 6f 20 72 65 61 64  |4) or -1 to read|
00002b00  20 63 75 72 72 65 6e 74  20 73 65 74 74 69 6e 67  | current setting|
00002b10  0a 0a 4f 6e 20 45 78 69  74 20 3a 20 20 49 66 20  |..On Exit :  If |
00002b20  52 30 3e 3d 30 20 6f 6e  20 65 6e 74 72 79 3a 20  |R0>=0 on entry: |
00002b30  52 30 20 70 72 65 73 65  72 76 65 64 0a 20 20 20  |R0 preserved.   |
00002b40  0a 20 20 20 20 20 20 20  20 20 20 20 49 66 20 52  |.           If R|
00002b50  30 3d 2d 31 20 6f 6e 20  65 6e 74 72 79 3a 20 52  |0=-1 on entry: R|
00002b60  30 20 3d 20 63 75 72 72  65 6e 74 20 50 6c 61 79  |0 = current Play|
00002b70  53 74 65 72 65 6f 20 73  65 74 74 69 6e 67 0a 20  |Stereo setting. |
00002b80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002b90  20 20 20 20 20 20 20 20  20 20 20 20 20 52 31 20  |             R1 |
00002ba0  3d 20 70 6f 69 6e 74 65  72 20 74 6f 20 38 2d 62  |= pointer to 8-b|
00002bb0  79 74 65 20 73 74 65 72  65 6f 20 70 6f 73 69 74  |yte stereo posit|
00002bc0  69 6f 6e 20 74 61 62 6c  65 0a 20 20 20 20 20 20  |ion table.      |
00002bd0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00002be0  20 20 20 20 20 0a 0a 54  68 69 73 20 70 65 72 66  |     ..This perf|
00002bf0  6f 72 6d 73 20 74 68 65  20 73 61 6d 65 20 61 63  |orms the same ac|
00002c00  74 69 6f 6e 73 20 61 73  20 2a 50 6c 61 79 53 74  |tions as *PlaySt|
00002c10  65 72 65 6f 2c 20 77 69  74 68 20 52 30 20 70 61  |ereo, with R0 pa|
00002c20  73 73 65 64 20 61 73 20  61 20 70 61 72 61 6d 65  |ssed as a parame|
00002c30  74 65 72 2e 0a 49 66 20  52 30 20 69 73 20 73 65  |ter..If R0 is se|
00002c40  74 20 74 6f 20 34 20 6f  6e 20 65 6e 74 72 79 2c  |t to 4 on entry,|
00002c50  20 74 68 65 6e 20 74 68  65 20 73 74 65 72 65 6f  | then the stereo|
00002c60  20 73 65 74 74 69 6e 67  73 20 77 69 6c 6c 20 62  | settings will b|
00002c70  65 20 75 6e 61 6c 74 65  72 65 64 0a 77 68 65 6e  |e unaltered.when|
00002c80  65 76 65 72 20 61 20 6d  6f 64 75 6c 65 20 69 73  |ever a module is|
00002c90  20 6c 6f 61 64 65 64 20  6f 72 20 6b 69 6c 6c 65  | loaded or kille|
00002ca0  64 2c 20 61 6e 64 20 64  69 73 61 62 6c 65 73 20  |d, and disables |
00002cb0  61 6e 79 20 73 74 65 72  65 6f 20 63 6f 6d 6d 61  |any stereo comma|
00002cc0  6e 64 73 20 69 6e 0a 74  72 61 63 6b 65 72 20 6d  |nds in.tracker m|
00002cd0  6f 64 75 6c 65 73 2e 20  54 68 69 73 20 69 73 20  |odules. This is |
00002ce0  74 6f 20 61 6c 6c 6f 77  20 69 6e 74 65 72 66 61  |to allow interfa|
00002cf0  63 69 6e 67 20 70 72 6f  67 72 61 6d 73 20 74 6f  |cing programs to|
00002d00  20 70 72 6f 76 69 64 65  20 74 68 65 69 72 20 6f  | provide their o|
00002d10  77 6e 0a 73 74 65 72 65  6f 20 6f 70 74 69 6f 6e  |wn.stereo option|
00002d20  73 2c 20 6f 72 20 74 6f  20 61 6c 6c 6f 77 20 61  |s, or to allow a|
00002d30  64 6a 75 73 74 6d 65 6e  74 20 74 6f 20 74 68 65  |djustment to the|
00002d40  20 73 74 65 72 65 6f 20  70 6f 73 69 74 69 6f 6e  | stereo position|
00002d50  73 20 77 68 69 6c 65 20  74 72 61 63 6b 65 72 0a  |s while tracker.|
00002d60  74 75 6e 65 73 20 61 72  65 20 70 6c 61 79 69 6e  |tunes are playin|
00002d70  67 20 28 77 68 69 63 68  20 68 61 76 65 20 64 65  |g (which have de|
00002d80  66 61 75 6c 74 20 73 74  65 72 65 6f 20 73 65 74  |fault stereo set|
00002d90  74 69 6e 67 73 20 73 74  6f 72 65 64 20 61 73 20  |tings stored as |
00002da0  70 61 72 74 20 6f 66 20  74 68 65 0a 74 75 6e 65  |part of the.tune|
00002db0  29 2e 0a 20 41 6c 74 65  72 6e 61 74 69 76 65 6c  |).. Alternativel|
00002dc0  79 2c 20 69 66 20 52 30  3d 2d 31 20 6f 6e 20 65  |y, if R0=-1 on e|
00002dd0  6e 74 72 79 2c 20 52 30  20 77 69 6c 6c 20 62 65  |ntry, R0 will be|
00002de0  20 74 68 65 20 6c 61 73  74 20 70 61 72 61 6d 65  | the last parame|
00002df0  74 65 72 20 70 61 73 73  65 64 20 74 6f 0a 74 68  |ter passed to.th|
00002e00  69 73 20 53 57 49 20 6f  72 20 74 68 65 20 2a 50  |is SWI or the *P|
00002e10  6c 61 79 53 74 65 72 65  6f 20 63 6f 6d 6d 61 6e  |layStereo comman|
00002e20  64 2c 20 61 6e 64 20 52  31 20 70 6f 69 6e 74 73  |d, and R1 points|
00002e30  20 74 6f 20 61 6e 20 38  2d 62 79 74 65 20 74 61  | to an 8-byte ta|
00002e40  62 6c 65 20 28 6f 6e 65  0a 62 79 74 65 20 70 65  |ble (one.byte pe|
00002e50  72 20 63 68 61 6e 6e 65  6c 29 20 77 68 69 63 68  |r channel) which|
00002e60  20 69 73 20 75 70 64 61  74 65 64 20 65 76 65 72  | is updated ever|
00002e70  79 20 74 69 6d 65 20 65  69 74 68 65 72 20 61 20  |y time either a |
00002e80  74 75 6e 65 20 73 74 61  72 74 73 3b 20 74 68 69  |tune starts; thi|
00002e90  73 20 53 57 49 0a 6f 72  20 2a 50 6c 61 79 53 74  |s SWI.or *PlaySt|
00002ea0  65 72 65 6f 20 69 73 20  63 61 6c 6c 65 64 20 77  |ereo is called w|
00002eb0  69 74 68 20 61 20 70 61  72 61 6d 65 74 65 72 20  |ith a parameter |
00002ec0  6f 66 20 30 2d 33 3b 20  6f 72 20 69 66 20 61 20  |of 0-3; or if a |
00002ed0  73 74 65 72 65 6f 20 63  6f 6d 6d 61 6e 64 20 69  |stereo command i|
00002ee0  73 0a 65 78 65 63 75 74  65 64 20 69 6e 20 61 20  |s.executed in a |
00002ef0  54 72 61 63 6b 65 72 20  74 75 6e 65 2e 20 54 68  |Tracker tune. Th|
00002f00  65 20 62 79 74 65 20 77  69 6c 6c 20 62 65 20 69  |e byte will be i|
00002f10  6e 20 74 68 65 20 72 61  6e 67 65 20 6f 66 20 31  |n the range of 1|
00002f20  2d 37 20 28 77 68 65 72  65 20 31 20 69 73 0a 66  |-7 (where 1 is.f|
00002f30  75 6c 6c 20 6c 65 66 74  2c 20 37 20 69 73 20 66  |ull left, 7 is f|
00002f40  75 6c 6c 20 72 69 67 68  74 2c 20 61 6e 64 20 34  |ull right, and 4|
00002f50  20 69 73 20 63 65 6e 74  72 65 29 2e 20 53 6f 6d  | is centre). Som|
00002f60  65 20 54 72 61 63 6b 65  72 20 74 75 6e 65 73 20  |e Tracker tunes |
00002f70  6d 61 79 20 63 6f 6e 74  61 69 6e 0a 73 74 65 72  |may contain.ster|
00002f80  65 6f 20 73 65 74 74 69  6e 67 73 20 6f 75 74 20  |eo settings out |
00002f90  6f 66 20 72 61 6e 67 65  2e 0a 0a 0a 0a 2d 2d 2d  |of range.....---|
00002fa0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00002fe0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 0a 54 72 61 63 6b  |----------.Track|
00002ff0  65 72 5f 53 65 74 50 6f  73 20 20 20 20 20 20 20  |er_SetPos       |
00003000  20 20 28 53 57 49 20 26  34 33 32 30 37 29 0a 2d  |  (SWI &43207).-|
00003010  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003050  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 0a 4f 6e  |------------..On|
00003060  20 45 6e 74 72 79 3a 20  20 52 30 20 3d 20 4e 65  | Entry:  R0 = Ne|
00003070  77 20 73 65 71 75 65 6e  63 65 20 70 6f 73 69 74  |w sequence posit|
00003080  69 6f 6e 20 28 30 2d 31  32 37 20 6d 61 78 29 0a  |ion (0-127 max).|
00003090  20 20 20 20 20 20 20 20  20 20 20 52 31 20 3d 20  |           R1 = |
000030a0  45 76 65 6e 74 20 28 30  2d 36 33 20 6d 61 78 29  |Event (0-63 max)|
000030b0  0a 0a 4f 6e 20 45 78 69  74 20 3a 20 20 52 30 20  |..On Exit :  R0 |
000030c0  70 72 65 73 65 72 76 65  64 0a 0a 54 68 69 73 20  |preserved..This |
000030d0  70 65 72 66 6f 72 6d 73  20 74 68 65 20 73 61 6d  |performs the sam|
000030e0  65 20 61 63 74 69 6f 6e  73 20 61 73 20 2a 50 6c  |e actions as *Pl|
000030f0  61 79 50 6f 73 2c 20 65  78 63 65 70 74 20 74 68  |ayPos, except th|
00003100  61 74 20 74 68 65 20 65  76 65 6e 74 20 77 69 74  |at the event wit|
00003110  68 20 74 68 65 0a 70 61  74 74 65 72 6e 20 63 61  |h the.pattern ca|
00003120  6e 20 62 65 20 73 70 65  63 69 66 69 65 64 20 28  |n be specified (|
00003130  30 2d 36 33 20 6e 6f 72  6d 61 6c 6c 79 29 2e 20  |0-63 normally). |
00003140  49 66 20 61 6e 20 65 76  65 6e 74 20 6e 75 6d 62  |If an event numb|
00003150  65 72 20 68 69 67 68 65  72 20 74 68 61 6e 20 74  |er higher than t|
00003160  68 65 0a 6e 75 6d 62 65  72 20 6f 66 20 65 76 65  |he.number of eve|
00003170  6e 74 73 20 69 6e 20 74  68 65 20 63 75 72 72 65  |nts in the curre|
00003180  6e 74 20 70 61 74 74 65  72 6e 20 69 73 20 73 70  |nt pattern is sp|
00003190  65 63 69 66 69 65 64 2c  20 74 68 65 20 70 61 74  |ecified, the pat|
000031a0  74 65 72 6e 20 77 69 6c  6c 20 62 65 67 69 6e 0a  |tern will begin.|
000031b0  61 74 20 65 76 65 6e 74  20 30 2e 0a 0a 49 66 20  |at event 0...If |
000031c0  74 68 65 72 65 20 69 73  20 6e 6f 20 74 75 6e 65  |there is no tune|
000031d0  20 63 75 72 72 65 6e 74  6c 79 20 6c 6f 61 64 65  | currently loade|
000031e0  64 2c 20 61 6e 20 65 72  72 6f 72 20 69 73 20 67  |d, an error is g|
000031f0  65 6e 65 72 61 74 65 64  2e 0a 0a 0a 0a 0a 0a 2d  |enerated.......-|
00003200  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003240  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 54 72 61  |------------.Tra|
00003250  63 6b 65 72 5f 52 65 61  64 50 6f 73 20 20 20 20  |cker_ReadPos    |
00003260  20 20 20 20 28 53 57 49  20 26 34 33 32 30 38 29  |    (SWI &43208)|
00003270  0a 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.---------------|
00003280  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000032b0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0a 0a  |--------------..|
000032c0  4f 6e 20 45 6e 74 72 79  3a 20 20 2d 0a 0a 4f 6e  |On Entry:  -..On|
000032d0  20 45 78 69 74 20 3a 20  20 52 30 20 3d 20 43 75  | Exit :  R0 = Cu|
000032e0  72 72 65 6e 74 20 70 6f  73 69 74 69 6f 6e 20 69  |rrent position i|
000032f0  6e 20 73 65 71 75 65 6e  63 65 20 74 61 62 6c 65  |n sequence table|
00003300  20 28 30 2d 31 32 37 20  6d 61 78 29 0a 20 20 20  | (0-127 max).   |
00003310  20 20 20 20 20 20 20 20  52 31 20 3d 20 43 75 72  |        R1 = Cur|
00003320  72 65 6e 74 20 70 6f 73  69 74 69 6f 6e 20 69 6e  |rent position in|
00003330  20 70 61 74 74 65 72 6e  20 28 30 2d 36 33 20 6d  | pattern (0-63 m|
00003340  61 78 29 0a 20 20 20 20  20 20 20 20 20 20 20 52  |ax).           R|
00003350  32 20 3d 20 4d 61 78 69  6d 75 6d 20 70 6f 73 69  |2 = Maximum posi|
00003360  74 69 6f 6e 20 69 6e 20  73 65 71 75 65 6e 63 65  |tion in sequence|
00003370  20 74 61 62 6c 65 0a 0a  54 68 69 73 20 70 65 72  | table..This per|
00003380  66 6f 72 6d 73 20 74 68  65 20 73 61 6d 65 20 61  |forms the same a|
00003390  63 74 69 6f 6e 73 20 61  73 20 2a 50 6c 61 79 50  |ctions as *PlayP|
000033a0  6f 73 20 77 69 74 68 20  6e 6f 20 70 61 72 61 6d  |os with no param|
000033b0  65 74 65 72 73 2c 20 62  75 74 20 61 6c 73 6f 0a  |eters, but also.|
000033c0  72 65 74 75 72 6e 73 20  74 68 65 20 63 75 72 72  |returns the curr|
000033d0  65 6e 74 20 70 6f 73 69  74 69 6f 6e 20 69 6e 20  |ent position in |
000033e0  74 68 65 20 63 75 72 72  65 6e 74 20 70 61 74 74  |the current patt|
000033f0  65 72 6e 20 28 69 6e 20  63 61 73 65 20 73 6f 6d  |ern (in case som|
00003400  65 20 61 70 70 6c 69 63  2d 0a 61 74 69 6f 6e 73  |e applic-.ations|
00003410  20 6e 65 65 64 20 74 6f  20 73 79 6e 63 68 72 6f  | need to synchro|
00003420  6e 69 7a 65 20 65 76 65  6e 74 73 20 77 69 74 68  |nize events with|
00003430  20 74 68 65 20 74 75 6e  65 20 62 65 69 6e 67 20  | the tune being |
00003440  70 6c 61 79 65 64 29 2e  0a 0a 0a 0a 0a 0a 2d 2d  |played).......--|
00003450  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003490  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 54 72 61 63  |-----------.Trac|
000034a0  6b 65 72 5f 50 6c 61 79  4e 6f 74 65 20 20 20 20  |ker_PlayNote    |
000034b0  20 20 20 28 53 57 49 20  26 34 33 32 30 39 29 0a  |   (SWI &43209).|
000034c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003500  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0a 0a 4f  |-------------..O|
00003510  6e 20 45 6e 74 72 79 3a  20 20 52 30 20 3d 20 53  |n Entry:  R0 = S|
00003520  6f 75 6e 64 20 63 68 61  6e 6e 65 6c 20 74 6f 20  |ound channel to |
00003530  73 6f 75 6e 64 20 6e 6f  74 65 20 6f 6e 20 28 31  |sound note on (1|
00003540  2d 38 20 6d 61 78 29 0a  20 20 20 20 20 20 20 20  |-8 max).        |
00003550  20 20 20 52 31 20 3d 20  54 72 61 63 6b 65 72 20  |   R1 = Tracker |
00003560  66 6f 72 6d 61 74 20 6e  6f 74 65 20 6e 75 6d 62  |format note numb|
00003570  65 72 20 28 31 2d 33 36  29 0a 20 20 20 20 20 20  |er (1-36).      |
00003580  20 20 20 20 20 52 32 20  3d 20 53 61 6d 70 6c 65  |     R2 = Sample|
00003590  20 74 6f 20 70 6c 61 79  20 28 31 2d 33 36 29 0a  | to play (1-36).|
000035a0  20 20 20 20 20 20 20 20  20 20 20 52 33 20 3d 20  |           R3 = |
000035b0  56 6f 6c 75 6d 65 20 28  30 2d 32 35 35 29 20 5b  |Volume (0-255) [|
000035c0  54 72 61 63 6b 65 72 20  76 6f 6c 75 6d 65 20 65  |Tracker volume e|
000035d0  76 65 6e 20 69 66 20 73  6f 75 6e 64 74 72 61 63  |ven if soundtrac|
000035e0  6b 65 72 20 74 75 6e 65  0a 20 20 20 20 20 20 20  |ker tune.       |
000035f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00003620  20 20 20 20 20 20 20 20  20 20 20 20 6c 6f 61 64  |            load|
00003630  65 64 5d 2e 0a 4f 6e 20  45 78 69 74 20 3a 20 20  |ed]..On Exit :  |
00003640  52 30 2d 52 33 20 70 72  65 73 65 72 76 65 64 0a  |R0-R3 preserved.|
00003650  20 20 20 20 20 20 20 20  20 20 20 49 66 20 74 75  |           If tu|
00003660  6e 65 20 6e 6f 74 20 70  61 75 73 65 64 20 74 68  |ne not paused th|
00003670  65 6e 20 43 20 66 6c 61  67 20 73 65 74 20 6f 74  |en C flag set ot|
00003680  68 65 72 77 69 73 65 20  43 20 66 6c 61 67 20 63  |herwise C flag c|
00003690  6c 65 61 72 65 64 2e 0a  0a 49 66 20 74 68 65 72  |leared...If ther|
000036a0  65 20 69 73 20 6e 6f 20  74 75 6e 65 20 6c 6f 61  |e is no tune loa|
000036b0  64 65 64 2c 20 61 6e 20  65 72 72 6f 72 20 77 69  |ded, an error wi|
000036c0  6c 6c 20 62 65 20 67 65  6e 65 72 61 74 65 64 2e  |ll be generated.|
000036d0  0a 0a 49 74 20 70 6c 61  79 73 20 6f 6e 65 20 6f  |..It plays one o|
000036e0  66 20 74 68 65 20 73 61  6d 70 6c 65 73 20 77 68  |f the samples wh|
000036f0  69 63 68 20 61 72 65 20  70 61 72 74 20 6f 66 20  |ich are part of |
00003700  74 68 65 20 70 61 75 73  65 64 20 74 75 6e 65 20  |the paused tune |
00003710  61 74 20 61 20 67 69 76  65 6e 0a 70 69 74 63 68  |at a given.pitch|
00003720  20 28 31 3d 6c 6f 77 2c  20 33 36 3d 68 69 67 68  | (1=low, 36=high|
00003730  29 20 61 6e 64 20 76 6f  6c 75 6d 65 20 28 30 3d  |) and volume (0=|
00003740  73 69 6c 65 6e 74 2c 20  32 35 35 3d 6c 6f 75 64  |silent, 255=loud|
00003750  29 2e 20 49 66 20 61 6e  79 20 6f 66 20 74 68 65  |). If any of the|
00003760  20 76 61 6c 75 65 73 0a  61 72 65 20 6f 75 74 20  | values.are out |
00003770  6f 66 20 72 61 6e 67 65  2c 20 61 6e 20 65 72 72  |of range, an err|
00003780  6f 72 20 77 69 6c 6c 20  62 65 20 72 65 70 6f 72  |or will be repor|
00003790  74 65 64 2e 0a 54 68 65  20 6e 75 6d 62 65 72 20  |ted..The number |
000037a0  6f 66 20 73 6f 75 6e 64  20 63 68 61 6e 6e 65 6c  |of sound channel|
000037b0  73 20 74 68 61 74 20 63  61 6e 20 62 65 20 75 73  |s that can be us|
000037c0  65 64 20 64 65 70 65 6e  64 73 20 6f 6e 20 74 68  |ed depends on th|
000037d0  65 20 6d 6f 64 75 6c 65  20 6c 6f 61 64 65 64 0a  |e module loaded.|
000037e0  28 73 6f 75 6e 64 74 72  61 63 6b 65 72 20 6d 6f  |(soundtracker mo|
000037f0  64 75 6c 65 73 20 77 69  6c 6c 20 61 6c 77 61 79  |dules will alway|
00003800  73 20 75 73 65 20 34 20  76 6f 69 63 65 73 2c 20  |s use 4 voices, |
00003810  77 68 65 72 65 61 73 20  54 72 61 63 6b 65 72 20  |whereas Tracker |
00003820  6d 6f 64 75 6c 65 73 20  63 61 6e 0a 75 73 65 20  |modules can.use |
00003830  75 70 20 74 6f 20 38 29  2e 0a 55 73 65 20 74 68  |up to 8)..Use th|
00003840  65 20 54 72 61 63 6b 65  72 5f 54 75 6e 65 49 6e  |e Tracker_TuneIn|
00003850  66 6f 20 53 57 49 20 74  6f 20 66 69 6e 64 20 6f  |fo SWI to find o|
00003860  75 74 20 74 68 65 20 6d  61 78 69 6d 75 6d 20 6e  |ut the maximum n|
00003870  75 6d 62 65 72 20 6f 66  20 76 6f 69 63 65 73 20  |umber of voices |
00003880  69 66 20 79 6f 75 0a 69  6e 74 65 6e 64 20 74 6f  |if you.intend to|
00003890  20 70 6c 61 79 20 6d 6f  72 65 20 74 68 61 6e 20  | play more than |
000038a0  6f 6e 65 20 6e 6f 74 65  20 61 74 20 61 20 74 69  |one note at a ti|
000038b0  6d 65 2e 0a 4e 42 20 54  68 69 73 20 63 61 6c 6c  |me..NB This call|
000038c0  20 73 68 6f 75 6c 64 20  62 65 20 61 76 6f 69 64  | should be avoid|
000038d0  65 64 20 69 66 20 70 6f  73 73 69 62 6c 65 2c 20  |ed if possible, |
000038e0  75 6e 6c 65 73 73 20 74  68 65 20 70 75 72 70 6f  |unless the purpo|
000038f0  73 65 20 69 73 20 74 6f  20 68 65 61 72 0a 20 20  |se is to hear.  |
00003900  20 65 61 63 68 20 73 61  6d 70 6c 65 20 73 65 70  | each sample sep|
00003910  65 72 61 74 65 6c 79 2e  0a 0a 0a 0a 0a 0a 2d 2d  |erately.......--|
00003920  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003960  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 54 72 61 63  |-----------.Trac|
00003970  6b 65 72 5f 54 75 6e 65  49 6e 66 6f 20 20 20 20  |ker_TuneInfo    |
00003980  20 20 20 28 53 57 49 20  26 34 33 32 30 41 29 0a  |   (SWI &4320A).|
00003990  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000039d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0a 0a 4f  |-------------..O|
000039e0  6e 20 45 6e 74 72 79 3a  20 20 2d 0a 0a 4f 6e 20  |n Entry:  -..On |
000039f0  45 78 69 74 20 3a 20 20  52 30 20 3d 20 53 65 71  |Exit :  R0 = Seq|
00003a00  75 65 6e 63 65 20 74 61  62 6c 65 20 6c 65 6e 67  |uence table leng|
00003a10  74 68 20 28 31 2d 31 32  38 29 0a 20 20 20 20 20  |th (1-128).     |
00003a20  20 20 20 20 20 20 52 31  20 3d 20 4e 75 6d 62 65  |      R1 = Numbe|
00003a30  72 20 6f 66 20 76 6f 69  63 65 73 20 28 31 2d 38  |r of voices (1-8|
00003a40  29 0a 20 20 20 20 20 20  20 20 20 20 20 52 32 20  |).           R2 |
00003a50  3d 20 43 75 72 72 65 6e  74 20 73 70 65 65 64 20  |= Current speed |
00003a60  28 31 2d 31 35 29 0a 20  20 20 20 20 20 20 20 20  |(1-15).         |
00003a70  20 20 52 33 20 3d 20 50  6f 69 6e 74 65 72 20 74  |  R3 = Pointer t|
00003a80  6f 20 74 75 6e 65 20 6e  61 6d 65 20 28 74 65 72  |o tune name (ter|
00003a90  6d 69 6e 61 74 65 64 20  62 79 20 30 2c 20 6d 61  |minated by 0, ma|
00003aa0  78 20 6c 65 6e 67 74 68  20 33 32 20 63 68 61 72  |x length 32 char|
00003ab0  73 29 0a 20 20 20 20 20  20 20 20 20 20 20 52 34  |s).           R4|
00003ac0  20 3d 20 50 6f 69 6e 74  65 72 20 74 6f 20 61 75  | = Pointer to au|
00003ad0  74 68 6f 72 27 73 20 6e  61 6d 65 20 28 30 20 74  |thor's name (0 t|
00003ae0  65 72 6d 69 6e 61 74 65  64 2c 20 6d 61 78 20 6c  |erminated, max l|
00003af0  65 6e 67 74 68 20 33 32  20 63 68 61 72 73 29 0a  |ength 32 chars).|
00003b00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00003b10  6f 72 20 7a 65 72 6f 20  69 66 20 73 6f 75 6e 64  |or zero if sound|
00003b20  74 72 61 63 6b 65 72 20  66 6f 72 6d 61 74 20 6d  |tracker format m|
00003b30  6f 64 75 6c 65 20 28 6e  6f 74 20 61 70 70 6c 69  |odule (not appli|
00003b40  63 61 62 6c 65 29 0a 20  20 20 20 20 20 20 20 20  |cable).         |
00003b50  20 20 52 35 20 3d 20 41  64 64 72 65 73 73 20 6f  |  R5 = Address o|
00003b60  66 20 63 75 72 72 65 6e  74 6c 79 20 6c 6f 61 64  |f currently load|
00003b70  65 64 20 74 75 6e 65 20  6d 6f 64 75 6c 65 0a 20  |ed tune module. |
00003b80  20 20 20 20 20 20 20 20  20 20 0a 20 20 20 20 20  |          .     |
00003b90  20 20 20 20 20 20 49 66  20 74 68 65 20 74 75 6e  |      If the tun|
00003ba0  65 20 69 73 20 70 61 75  73 65 64 2c 20 74 68 65  |e is paused, the|
00003bb0  20 43 20 66 6c 61 67 20  69 73 20 73 65 74 2c 20  | C flag is set, |
00003bc0  6f 74 68 65 72 77 69 73  65 20 74 68 65 20 43 20  |otherwise the C |
00003bd0  66 6c 61 67 20 69 73 0a  20 20 20 20 20 20 20 20  |flag is.        |
00003be0  20 20 20 63 6c 65 61 72  65 64 2e 0a 0a 20 20 20  |   cleared...   |
00003bf0  20 20 20 20 20 20 20 20  49 66 20 74 68 65 72 65  |        If there|
00003c00  20 69 73 20 6e 6f 20 74  75 6e 65 20 6c 6f 61 64  | is no tune load|
00003c10  65 64 2c 20 52 30 20 69  73 20 73 65 74 20 74 6f  |ed, R0 is set to|
00003c20  20 7a 65 72 6f 2c 20 61  6e 64 20 52 31 2d 52 35  | zero, and R1-R5|
00003c30  20 61 72 65 0a 20 20 20  20 20 20 20 20 20 20 20  | are.           |
00003c40  70 72 65 73 65 72 76 65  64 2e 0a 20 20 20 20 20  |preserved..     |
00003c50  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00003c80  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0a 0a  |              ..|
00003c90  54 68 69 73 20 63 61 6c  6c 20 70 72 6f 76 69 64  |This call provid|
00003ca0  65 73 20 6d 69 73 63 65  6c 6c 61 6e 65 6f 75 73  |es miscellaneous|
00003cb0  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 20 61 62 6f  | information abo|
00003cc0  75 74 20 74 68 65 20 74  75 6e 65 20 63 75 72 72  |ut the tune curr|
00003cd0  65 6e 74 6c 79 20 6c 6f  61 64 65 64 2e 0a 0a 59  |ently loaded...Y|
00003ce0  6f 75 20 73 68 6f 75 6c  64 20 6e 6f 74 20 6e 65  |ou should not ne|
00003cf0  65 64 20 74 6f 20 64 69  72 65 63 74 6c 79 20 61  |ed to directly a|
00003d00  63 63 65 73 73 20 74 68  65 20 74 75 6e 65 20 6d  |ccess the tune m|
00003d10  6f 64 75 6c 65 20 28 75  73 69 6e 67 20 74 68 65  |odule (using the|
00003d20  20 61 64 64 72 65 73 73  0a 70 61 73 73 65 64 20  | address.passed |
00003d30  69 6e 20 52 35 29 2c 20  62 65 63 61 75 73 65 20  |in R5), because |
00003d40  61 6c 6c 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |all information |
00003d50  69 73 20 61 76 61 69 6c  61 62 6c 65 20 76 69 61  |is available via|
00003d60  20 74 68 65 20 76 61 72  69 6f 75 73 20 53 57 49  | the various SWI|
00003d70  27 73 2c 0a 61 6e 64 20  73 6f 75 6e 64 74 72 61  |'s,.and soundtra|
00003d80  63 6b 65 72 20 66 6f 72  6d 61 74 20 6d 6f 64 75  |cker format modu|
00003d90  6c 65 73 20 77 69 6c 6c  20 68 61 76 65 20 62 65  |les will have be|
00003da0  65 6e 20 63 6f 6e 76 65  72 74 65 64 20 70 61 72  |en converted par|
00003db0  74 69 61 6c 6c 79 20 74  6f 20 54 72 61 63 6b 65  |tially to Tracke|
00003dc0  72 0a 66 6f 72 6d 61 74  20 77 68 65 6e 20 6c 6f  |r.format when lo|
00003dd0  61 64 65 64 20 28 61 6e  64 20 74 68 65 72 65 66  |aded (and theref|
00003de0  6f 72 65 20 69 6e 20 61  6e 20 75 6e 6b 6e 6f 77  |ore in an unknow|
00003df0  6e 20 66 6f 72 6d 61 74  29 2e 20 54 68 69 73 20  |n format). This |
00003e00  69 6e 66 6f 72 6d 61 74  69 6f 6e 20 69 73 0a 70  |information is.p|
00003e10  72 6f 76 69 64 65 64 20  69 66 2c 20 66 6f 72 20  |rovided if, for |
00003e20  65 78 61 6d 70 6c 65 2c  20 6d 75 6c 74 69 2d 74  |example, multi-t|
00003e30  61 73 6b 69 6e 67 20 70  6c 61 79 65 72 73 2f 65  |asking players/e|
00003e40  64 69 74 6f 72 73 20 6e  65 65 64 20 74 6f 20 6b  |ditors need to k|
00003e50  6e 6f 77 20 69 66 20 74  68 65 0a 74 75 6e 65 20  |now if the.tune |
00003e60  63 75 72 72 65 6e 74 6c  79 20 70 6c 61 79 69 6e  |currently playin|
00003e70  67 20 69 73 20 72 75 6e  6e 69 6e 67 20 66 72 6f  |g is running fro|
00003e80  6d 20 6f 72 64 69 6e 61  72 79 20 52 4d 41 2c 20  |m ordinary RMA, |
00003e90  6f 72 20 74 68 65 20 70  6c 61 79 65 72 27 73 2f  |or the player's/|
00003ea0  65 64 69 74 6f 72 27 73  0a 6f 77 6e 20 77 6f 72  |editor's.own wor|
00003eb0  6b 73 70 61 63 65 2e 0a  0a 0a 20 20 20 20 20 20  |kspace....      |
00003ec0  20 20 20 20 20 20 20 20  20 20 20 20 20 0a 0a 0a  |             ...|
00003ed0  0a 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.---------------|
00003ee0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003f10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0a 54  |--------------.T|
00003f20  72 61 63 6b 65 72 5f 53  6f 75 6e 64 49 6e 66 6f  |racker_SoundInfo|
00003f30  20 20 20 20 20 20 28 53  57 49 20 26 34 33 32 30  |      (SWI &4320|
00003f40  42 29 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |B).-------------|
00003f50  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00003f90  0a 0a 4f 6e 20 45 6e 74  72 79 3a 20 20 52 30 20  |..On Entry:  R0 |
00003fa0  3d 20 50 6f 69 6e 74 65  72 20 74 6f 20 77 6f 72  |= Pointer to wor|
00003fb0  64 2d 61 6c 69 67 6e 65  64 20 32 35 36 20 62 79  |d-aligned 256 by|
00003fc0  74 65 20 62 6c 6f 63 6b  20 74 6f 20 68 6f 6c 64  |te block to hold|
00003fd0  20 73 6f 75 6e 64 20 64  61 74 61 0a 0a 4f 6e 20  | sound data..On |
00003fe0  45 78 69 74 20 3a 20 20  52 30 20 70 72 65 73 65  |Exit :  R0 prese|
00003ff0  72 76 65 64 0a 20 20 20  20 20 20 20 20 20 20 20  |rved.           |
00004000  20 20 20 0a 20 20 20 20  20 20 20 20 20 20 20 69  |   .           i|
00004010  66 20 74 68 65 20 74 75  6e 65 20 69 73 20 70 61  |f the tune is pa|
00004020  75 73 65 64 2c 20 74 68  65 20 43 20 66 6c 61 67  |used, the C flag|
00004030  20 77 69 6c 6c 20 62 65  20 73 65 74 2c 20 6f 74  | will be set, ot|
00004040  68 65 72 77 69 73 65 20  74 68 65 20 43 0a 20 20  |herwise the C.  |
00004050  20 20 20 20 20 20 20 20  20 66 6c 61 67 20 77 69  |         flag wi|
00004060  6c 6c 20 62 65 20 63 6c  65 61 72 65 64 2e 0a 0a  |ll be cleared...|
00004070  49 66 20 74 68 65 72 65  20 69 73 20 6e 6f 20 74  |If there is no t|
00004080  75 6e 65 20 6c 6f 61 64  65 64 20 61 6e 20 65 72  |une loaded an er|
00004090  72 6f 72 20 77 69 6c 6c  20 62 65 20 67 65 6e 65  |ror will be gene|
000040a0  72 61 74 65 64 2e 0a 0a  54 68 69 73 20 63 61 6c  |rated...This cal|
000040b0  6c 20 69 73 20 6f 6e 6c  79 20 70 72 6f 76 69 64  |l is only provid|
000040c0  65 64 20 66 6f 72 20 61  64 76 61 6e 63 65 64 20  |ed for advanced |
000040d0  75 73 65 73 20 6f 66 20  74 68 65 20 74 72 61 63  |uses of the trac|
000040e0  6b 65 72 6d 6f 64 75 6c  65 2c 20 61 6e 64 0a 69  |kermodule, and.i|
000040f0  6e 76 6f 6c 76 65 73 20  69 6e 66 6f 72 6d 61 74  |nvolves informat|
00004100  69 6f 6e 20 6f 66 20 61  20 68 69 67 68 6c 79 20  |ion of a highly |
00004110  74 65 63 68 6e 69 63 61  6c 20 6e 61 74 75 72 65  |technical nature|
00004120  2e 20 49 74 20 69 73 20  61 64 76 69 73 65 64 20  |. It is advised |
00004130  74 68 61 74 20 79 6f 75  0a 64 6f 20 6e 6f 74 20  |that you.do not |
00004140  75 73 65 20 74 68 69 73  20 63 61 6c 6c 20 69 66  |use this call if|
00004150  20 79 6f 75 20 63 61 6e  20 61 76 6f 69 64 20 69  | you can avoid i|
00004160  74 2e 0a 0a 54 68 65 20  63 61 6c 6c 20 77 69 6c  |t...The call wil|
00004170  6c 20 74 72 61 6e 73 66  65 72 20 74 68 65 20 63  |l transfer the c|
00004180  75 72 72 65 6e 74 20 63  6f 6e 74 65 6e 74 73 20  |urrent contents |
00004190  6f 66 20 74 68 65 20 73  6f 75 6e 64 20 76 6f 69  |of the sound voi|
000041a0  63 65 20 69 6e 66 6f 20  74 61 62 6c 65 0a 74 6f  |ce info table.to|
000041b0  20 74 68 65 20 6c 6f 63  61 74 69 6f 6e 20 70 6f  | the location po|
000041c0  69 6e 74 65 64 20 74 6f  20 62 79 20 52 30 2e 20  |inted to by R0. |
000041d0  32 35 36 20 62 79 74 65  73 20 28 36 34 20 77 6f  |256 bytes (64 wo|
000041e0  72 64 73 29 20 77 69 6c  6c 20 62 65 20 74 72 61  |rds) will be tra|
000041f0  6e 73 66 65 72 72 65 64  0a 69 6e 20 74 6f 74 61  |nsferred.in tota|
00004200  6c 20 28 38 20 77 6f 72  64 73 20 70 65 72 20 73  |l (8 words per s|
00004210  6f 75 6e 64 20 63 68 61  6e 6e 65 6c 29 2c 20 72  |ound channel), r|
00004220  65 67 61 72 64 6c 65 73  73 20 6f 66 20 74 68 65  |egardless of the|
00004230  20 6e 75 6d 62 65 72 20  6f 66 20 76 6f 69 63 65  | number of voice|
00004240  73 0a 61 63 74 75 61 6c  6c 79 20 61 63 74 69 76  |s.actually activ|
00004250  65 2e 0a 0a 57 68 65 6e  20 61 20 6e 6f 74 65 20  |e...When a note |
00004260  69 73 20 70 6c 61 79 65  64 20 61 6e 64 20 74 68  |is played and th|
00004270  65 6e 20 65 6e 64 73 2c  20 77 6f 72 64 20 36 20  |en ends, word 6 |
00004280  6f 66 20 74 68 65 20 61  70 70 72 6f 70 72 69 61  |of the appropria|
00004290  74 65 20 63 68 61 6e 6e  65 6c 20 69 73 0a 7a 65  |te channel is.ze|
000042a0  72 6f 65 64 2e 20 54 68  65 20 73 6f 75 6e 64 20  |roed. The sound |
000042b0  72 6f 75 74 69 6e 65 73  20 77 69 6c 6c 20 6f 6e  |routines will on|
000042c0  6c 79 20 74 72 79 20 61  6e 64 20 70 6c 61 79 20  |ly try and play |
000042d0  74 68 65 20 73 61 6d 70  6c 65 20 69 66 20 74 68  |the sample if th|
000042e0  69 73 20 77 6f 72 64 20  69 73 0a 6e 6f 6e 2d 7a  |is word is.non-z|
000042f0  65 72 6f 2e 0a 0a 57 68  65 6e 20 61 20 74 75 6e  |ero...When a tun|
00004300  65 20 69 73 20 70 61 75  73 65 64 2c 20 74 68 65  |e is paused, the|
00004310  20 62 6c 6f 63 6b 20 69  73 20 73 61 76 65 64 20  | block is saved |
00004320  61 6e 64 20 6f 76 65 72  77 72 69 74 74 65 6e 20  |and overwritten |
00004330  77 69 74 68 20 7a 65 72  6f 73 2e 20 57 68 65 6e  |with zeros. When|
00004340  0a 74 68 65 20 74 75 6e  65 20 69 73 20 72 65 73  |.the tune is res|
00004350  74 61 72 74 65 64 2c 20  74 68 65 20 6f 6c 64 20  |tarted, the old |
00004360  63 6f 6e 74 65 6e 74 73  20 61 72 65 20 72 65 73  |contents are res|
00004370  74 6f 72 65 64 2c 20 73  6f 20 74 68 61 74 20 74  |tored, so that t|
00004380  68 65 20 73 61 6d 70 6c  65 73 0a 77 69 6c 6c 20  |he samples.will |
00004390  63 6f 6e 74 69 6e 75 65  20 74 6f 20 70 6c 61 79  |continue to play|
000043a0  20 66 72 6f 6d 20 74 68  65 20 73 61 6d 65 20 70  | from the same p|
000043b0  6f 69 6e 74 2e 0a 0a 20  54 68 65 20 66 6f 72 6d  |oint... The form|
000043c0  61 74 20 6f 66 20 74 68  65 20 74 61 62 6c 65 20  |at of the table |
000043d0  69 73 20 61 73 20 66 6f  6c 6c 6f 77 73 3a 2d 0a  |is as follows:-.|
000043e0  0a 57 6f 72 64 20 20 4f  66 66 73 65 74 20 20 20  |.Word  Offset   |
000043f0  20 20 20 20 53 6f 75 6e  64 20 63 68 61 6e 6e 65  |    Sound channe|
00004400  6c 20 31 2e 2e 2e 0a 30  20 20 20 20 20 2b 30 20  |l 1....0     +0 |
00004410  20 20 20 20 20 54 68 65  20 63 75 72 72 65 6e 74  |     The current|
00004420  20 70 69 74 63 68 20 61  63 63 75 6d 75 6c 61 74  | pitch accumulat|
00004430  6f 72 2e 20 28 73 68 69  66 74 20 72 69 67 68 74  |or. (shift right|
00004440  20 31 36 20 62 69 74 73  20 74 6f 20 67 65 74 20  | 16 bits to get |
00004450  74 68 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |the.            |
00004460  20 20 61 63 74 75 61 6c  20 62 79 74 65 20 6f 66  |  actual byte of|
00004470  66 73 65 74 20 69 6e 74  6f 20 74 68 65 20 73 61  |fset into the sa|
00004480  6d 70 6c 65 20 62 65 69  6e 67 20 70 6c 61 79 65  |mple being playe|
00004490  64 29 2e 0a 0a 31 20 20  20 20 20 2b 34 20 20 20  |d)...1     +4   |
000044a0  20 20 20 54 68 65 20 63  75 72 72 65 6e 74 20 70  |   The current p|
000044b0  69 74 63 68 20 69 6e 63  72 65 6d 65 6e 74 20 28  |itch increment (|
000044c0  61 64 64 65 64 20 74 6f  20 61 63 63 75 6d 75 6c  |added to accumul|
000044d0  61 74 6f 72 20 61 66 74  65 72 20 65 76 65 72 79  |ator after every|
000044e0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 62  |.              b|
000044f0  79 74 65 20 66 69 6c 6c  65 64 29 2e 20 54 68 69  |yte filled). Thi|
00004500  73 20 69 73 20 6f 62 74  61 69 6e 65 64 20 75 73  |s is obtained us|
00004510  69 6e 67 20 69 6e 74 65  72 6e 61 6c 20 74 61 62  |ing internal tab|
00004520  6c 65 73 20 67 69 76 65  6e 20 74 68 65 0a 20 20  |les given the.  |
00004530  20 20 20 20 20 20 20 20  20 20 20 20 73 61 6d 70  |            samp|
00004540  6c 65 20 70 65 72 69 6f  64 20 28 77 6f 72 64 20  |le period (word |
00004550  37 29 0a 0a 32 20 20 20  20 20 2b 38 20 20 20 20  |7)..2     +8    |
00004560  20 20 54 68 65 20 73 61  6d 70 6c 65 20 6c 6f 6f  |  The sample loo|
00004570  70 20 6f 66 66 73 65 74  20 28 67 69 76 65 6e 20  |p offset (given |
00004580  69 6e 20 62 79 74 65 73  29 2e 20 57 68 65 6e 20  |in bytes). When |
00004590  74 68 65 20 72 6f 75 74  69 6e 65 0a 20 20 20 20  |the routine.    |
000045a0  20 20 20 20 20 20 20 20  20 20 72 65 61 63 68 65  |          reache|
000045b0  73 20 74 68 65 20 65 6e  64 20 6f 66 20 61 20 73  |s the end of a s|
000045c0  61 6d 70 6c 65 20 6f 72  20 74 68 65 20 73 61 6d  |ample or the sam|
000045d0  70 6c 65 20 6c 65 6e 67  74 68 2c 20 74 68 65 20  |ple length, the |
000045e0  61 63 63 75 6d 75 6c 2d  0a 20 20 20 20 20 20 20  |accumul-.       |
000045f0  20 20 20 20 20 20 20 61  74 6f 72 20 69 73 20 6c  |       ator is l|
00004600  6f 61 64 65 64 20 77 69  74 68 20 74 68 69 73 20  |oaded with this |
00004610  76 61 6c 75 65 20 73 68  69 66 74 65 64 20 6c 65  |value shifted le|
00004620  66 74 20 31 36 20 62 69  74 73 20 28 69 65 2e 20  |ft 16 bits (ie. |
00004630  74 6f 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |to.             |
00004640  20 67 69 76 65 20 61 20  62 79 74 65 20 6f 66 66  | give a byte off|
00004650  73 65 74 29 2e 20 49 66  20 74 68 69 73 20 69 73  |set). If this is|
00004660  20 61 20 7a 65 72 6f 20  76 61 6c 75 65 2c 20 74  | a zero value, t|
00004670  68 65 20 73 61 6d 70 6c  65 20 77 69 6c 6c 0a 20  |he sample will. |
00004680  20 20 20 20 20 20 20 20  20 20 20 20 20 73 74 6f  |             sto|
00004690  70 20 69 6e 73 74 65 61  64 20 6f 66 20 6c 6f 6f  |p instead of loo|
000046a0  70 69 6e 67 2e 0a 0a 33  20 20 20 20 20 2b 31 32  |ping...3     +12|
000046b0  20 20 20 20 20 54 68 65  20 73 61 6d 70 6c 65 20  |     The sample |
000046c0  6c 65 6e 67 74 68 20 2f  20 72 65 70 65 61 74 20  |length / repeat |
000046d0  6c 65 6e 67 74 68 20 28  69 6e 20 62 79 74 65 73  |length (in bytes|
000046e0  29 2e 20 54 68 65 20 72  6f 75 74 69 6e 65 0a 20  |). The routine. |
000046f0  20 20 20 20 20 20 20 20  20 20 20 20 20 63 68 65  |             che|
00004700  63 6b 73 20 65 76 65 72  79 20 34 20 62 79 74 65  |cks every 4 byte|
00004710  73 20 66 69 6c 6c 65 64  20 74 6f 20 73 65 65 20  |s filled to see |
00004720  69 66 20 74 68 65 20 63  75 72 72 65 6e 74 20 61  |if the current a|
00004730  63 63 75 6d 75 6c 61 74  6f 72 0a 20 20 20 20 20  |ccumulator.     |
00004740  20 20 20 20 20 20 20 20  20 65 78 63 65 65 64 73  |         exceeds|
00004750  20 74 68 69 73 20 76 61  6c 75 65 20 77 68 65 6e  | this value when|
00004760  20 73 68 69 66 74 65 64  20 72 69 67 68 74 20 31  | shifted right 1|
00004770  36 20 62 69 74 73 2e 20  28 53 65 65 20 61 62 6f  |6 bits. (See abo|
00004780  76 65 29 0a 0a 34 20 20  20 20 20 2b 31 36 20 20  |ve)..4     +16  |
00004790  20 20 20 54 68 65 20 73  61 6d 70 6c 65 20 6e 75  |   The sample nu|
000047a0  6d 62 65 72 20 28 31 2d  33 36 29 2e 0a 0a 35 20  |mber (1-36)...5 |
000047b0  20 20 20 20 2b 32 30 20  20 20 20 20 54 68 65 20  |    +20     The |
000047c0  63 75 72 72 65 6e 74 20  76 6f 6c 75 6d 65 20 28  |current volume (|
000047d0  30 2d 32 35 35 29 2e 20  54 68 69 73 20 76 61 6c  |0-255). This val|
000047e0  75 65 20 69 73 20 73 75  62 74 72 61 63 74 65 64  |ue is subtracted|
000047f0  20 66 72 6f 6d 20 65 76  65 72 79 0a 20 20 20 20  | from every.    |
00004800  20 20 20 20 20 20 20 20  20 20 62 79 74 65 20 66  |          byte f|
00004810  69 6c 6c 65 64 2c 20 74  68 65 72 65 66 6f 72 65  |illed, therefore|
00004820  20 30 20 3d 20 6d 61 78  69 6d 75 6d 20 76 6f 6c  | 0 = maximum vol|
00004830  75 6d 65 20 61 6e 64 20  32 35 35 20 3d 20 73 69  |ume and 255 = si|
00004840  6c 65 6e 74 2e 0a 20 20  20 20 20 20 20 20 20 20  |lent..          |
00004850  20 20 20 20 4e 42 20 54  68 69 73 20 69 73 20 74  |    NB This is t|
00004860  68 65 20 72 65 76 65 72  73 65 20 6f 66 20 74 68  |he reverse of th|
00004870  65 20 6e 6f 72 6d 61 6c  20 76 6f 6c 75 6d 65 20  |e normal volume |
00004880  63 6f 6d 6d 61 6e 64 2e  0a 0a 36 20 20 20 20 20  |command...6     |
00004890  2b 32 34 20 20 20 20 20  54 68 69 73 20 69 73 20  |+24     This is |
000048a0  74 68 65 20 74 72 61 63  6b 65 72 20 66 6f 72 6d  |the tracker form|
000048b0  61 74 20 6e 6f 74 65 20  6e 75 6d 62 65 72 20 6f  |at note number o|
000048c0  66 20 74 68 65 20 73 61  6d 70 6c 65 20 62 65 69  |f the sample bei|
000048d0  6e 67 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |ng.             |
000048e0  20 70 6c 61 79 65 64 20  28 31 2d 33 36 2c 20 31  | played (1-36, 1|
000048f0  3d 43 20 6f 63 74 61 76  65 20 31 20 33 36 3d 42  |=C octave 1 36=B|
00004900  20 6f 63 74 61 76 65 20  33 29 2e 20 54 68 65 20  | octave 3). The |
00004910  61 72 70 65 67 67 69 6f  20 63 6f 6d 6d 61 6e 64  |arpeggio command|
00004920  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 6d  |.              m|
00004930  61 6b 65 73 20 75 73 65  20 6f 66 20 74 68 69 73  |akes use of this|
00004940  20 77 6f 72 64 2e 20 49  66 20 74 68 69 73 20 77  | word. If this w|
00004950  6f 72 64 20 69 73 20 7a  65 72 6f 2c 20 6e 6f 20  |ord is zero, no |
00004960  73 6f 75 6e 64 20 77 69  6c 6c 20 62 65 0a 20 20  |sound will be.  |
00004970  20 20 20 20 20 20 20 20  20 20 20 20 70 6c 61 79  |            play|
00004980  65 64 2e 0a 0a 37 20 20  20 20 20 2b 32 38 20 20  |ed...7     +28  |
00004990  20 20 20 54 68 69 73 20  69 73 20 61 20 63 6f 70  |   This is a cop|
000049a0  79 20 6f 66 20 74 68 65  20 73 61 6d 70 6c 65 20  |y of the sample |
000049b0  70 65 72 69 6f 64 20 28  66 72 6f 6d 20 77 68 69  |period (from whi|
000049c0  63 68 20 74 68 65 20 70  69 74 63 68 0a 20 20 20  |ch the pitch.   |
000049d0  20 20 20 20 20 20 20 20  20 20 20 69 6e 63 72 65  |           incre|
000049e0  6d 65 6e 74 20 76 61 6c  75 65 20 69 73 20 63 61  |ment value is ca|
000049f0  6c 63 75 6c 61 74 65 64  29 2c 20 61 6e 64 20 69  |lculated), and i|
00004a00  73 20 75 73 65 64 20 62  79 20 74 68 65 20 70 6f  |s used by the po|
00004a10  72 74 61 6d 65 6e 74 6f  0a 20 20 20 20 20 20 20  |rtamento.       |
00004a20  20 20 20 20 20 20 20 63  6f 6d 6d 61 6e 64 73 2e  |       commands.|
00004a30  20 54 68 65 20 72 61 6e  67 65 20 6f 66 20 74 68  | The range of th|
00004a40  65 20 73 61 6d 70 6c 65  20 70 65 72 69 6f 64 20  |e sample period |
00004a50  69 73 20 66 72 6f 6d 20  31 20 74 6f 20 68 65 78  |is from 1 to hex|
00004a60  20 26 34 30 30 0a 20 20  20 20 20 20 20 20 20 20  | &400.          |
00004a70  20 20 20 20 28 61 6c 74  68 6f 75 67 68 20 74 68  |    (although th|
00004a80  65 20 70 6f 72 74 61 6d  65 6e 74 6f 20 63 6f 6d  |e portamento com|
00004a90  6d 61 6e 64 73 20 68 61  76 65 20 73 6d 61 6c 6c  |mands have small|
00004aa0  65 72 20 6c 69 6d 69 74  73 20 69 6e 0a 20 20 20  |er limits in.   |
00004ab0  20 20 20 20 20 20 20 20  20 20 20 70 72 61 63 74  |           pract|
00004ac0  69 63 65 29 2e 0a 0a 38  20 20 20 20 20 2b 33 32  |ice)...8     +32|
00004ad0  20 20 20 20 20 57 6f 72  64 20 30 20 6f 66 20 73  |     Word 0 of s|
00004ae0  6f 75 6e 64 20 63 68 61  6e 6e 65 6c 20 32 2e 2e  |ound channel 2..|
00004af0  2e 0a 0a 39 20 20 20 20  20 2b 33 36 20 20 20 20  |...9     +36    |
00004b00  20 57 6f 72 64 20 31 20  6f 66 20 73 6f 75 6e 64  | Word 1 of sound|
00004b10  20 63 68 61 6e 6e 65 6c  20 32 2e 2e 2e 20 20 65  | channel 2...  e|
00004b20  74 63 2e 20 0a 20 20 20  20 20 0a 20 20 20 20 2d  |tc. .     .    -|
00004b30  3e 20 77 6f 72 64 20 38  20 6f 66 20 73 6f 75 6e  |> word 8 of soun|
00004b40  64 20 63 68 61 6e 6e 65  6c 20 38 0a 0a 0a 0a 0a  |d channel 8.....|
00004b50  0a 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.---------------|
00004b60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004b90  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0a 54  |--------------.T|
00004ba0  72 61 63 6b 65 72 5f 52  65 61 64 53 61 6d 70 6c  |racker_ReadSampl|
00004bb0  65 54 61 62 6c 65 20 20  20 28 53 57 49 20 26 34  |eTable   (SWI &4|
00004bc0  33 32 30 43 29 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |320C).----------|
00004bd0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004c10  2d 2d 2d 0a 0a 4f 6e 20  45 6e 74 72 79 3a 20 20  |---..On Entry:  |
00004c20  52 30 20 3d 20 53 61 6d  70 6c 65 20 6e 75 6d 62  |R0 = Sample numb|
00004c30  65 72 20 28 31 2d 33 36  29 0a 0a 4f 6e 20 45 78  |er (1-36)..On Ex|
00004c40  69 74 20 3a 20 20 52 30  20 70 72 65 73 65 72 76  |it :  R0 preserv|
00004c50  65 64 0a 20 20 20 20 20  20 20 20 20 20 20 52 31  |ed.           R1|
00004c60  20 3d 20 50 6f 69 6e 74  65 72 20 74 6f 20 73 61  | = Pointer to sa|
00004c70  6d 70 6c 65 20 6e 61 6d  65 20 28 30 2d 74 65 72  |mple name (0-ter|
00004c80  6d 69 6e 61 74 65 64 2c  20 6d 61 78 20 6c 65 6e  |minated, max len|
00004c90  67 74 68 20 32 32 20 63  68 61 72 73 29 20 0a 20  |gth 22 chars) . |
00004ca0  20 20 20 20 20 20 20 20  20 20 52 32 20 3d 20 53  |          R2 = S|
00004cb0  61 6d 70 6c 65 20 76 6f  6c 75 6d 65 20 28 30 2d  |ample volume (0-|
00004cc0  32 35 35 2c 20 32 35 35  3d 6d 61 78 69 6d 75 6d  |255, 255=maximum|
00004cd0  20 76 6f 6c 75 6d 65 2c  20 30 3d 73 69 6c 65 6e  | volume, 0=silen|
00004ce0  74 29 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |t).             |
00004cf0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00004d00  20 28 6f 72 20 30 2d 36  34 20 5b 73 6f 75 6e 64  | (or 0-64 [sound|
00004d10  74 72 61 63 6b 65 72 5d  2c 20 36 34 3d 6d 61 78  |tracker], 64=max|
00004d20  20 76 6f 6c 2e 29 20 0a  20 20 20 20 20 20 20 20  | vol.) .        |
00004d30  20 20 20 52 33 20 3d 20  53 61 6d 70 6c 65 20 6c  |   R3 = Sample l|
00004d40  65 6e 67 74 68 20 28 62  79 74 65 73 29 0a 20 20  |ength (bytes).  |
00004d50  20 20 20 20 20 20 20 20  20 52 34 20 3d 20 52 65  |         R4 = Re|
00004d60  70 65 61 74 20 6f 66 66  73 65 74 20 28 62 79 74  |peat offset (byt|
00004d70  65 73 29 0a 20 20 20 20  20 20 20 20 20 20 20 52  |es).           R|
00004d80  35 20 3d 20 52 65 70 65  61 74 20 6c 65 6e 67 74  |5 = Repeat lengt|
00004d90  68 20 28 62 79 74 65 73  29 0a 20 20 20 20 20 20  |h (bytes).      |
00004da0  20 20 20 20 20 52 36 20  3d 20 41 64 64 72 65 73  |     R6 = Addres|
00004db0  73 20 6f 66 20 72 61 77  20 73 61 6d 70 6c 65 20  |s of raw sample |
00004dc0  64 61 74 61 0a 0a 54 68  69 73 20 63 61 6c 6c 20  |data..This call |
00004dd0  72 65 74 75 72 6e 73 20  61 6c 6c 20 72 65 6c 65  |returns all rele|
00004de0  76 61 6e 74 20 69 6e 66  6f 72 6d 61 74 69 6f 6e  |vant information|
00004df0  20 61 62 6f 75 74 20 74  68 65 20 73 70 65 63 69  | about the speci|
00004e00  66 69 65 64 20 73 61 6d  70 6c 65 2e 20 0a 0a 49  |fied sample. ..I|
00004e10  66 20 74 68 65 72 65 20  69 73 20 6e 6f 20 74 75  |f there is no tu|
00004e20  6e 65 20 6c 6f 61 64 65  64 2c 20 61 6e 20 65 72  |ne loaded, an er|
00004e30  72 6f 72 20 77 69 6c 6c  20 62 65 20 67 65 6e 65  |ror will be gene|
00004e40  72 61 74 65 64 2e 0a 0a  49 66 20 74 68 65 20 73  |rated...If the s|
00004e50  61 6d 70 6c 65 20 6e 75  6d 62 65 72 20 69 73 20  |ample number is |
00004e60  6f 75 74 20 6f 66 20 72  61 6e 67 65 20 28 66 6f  |out of range (fo|
00004e70  72 20 65 78 61 6d 70 6c  65 2c 20 69 66 20 72 65  |r example, if re|
00004e80  61 64 69 6e 67 20 73 61  6d 70 6c 65 20 31 36 20  |ading sample 16 |
00004e90  6f 6e 20 61 0a 31 35 2d  69 6e 73 74 72 75 6d 65  |on a.15-instrume|
00004ea0  6e 74 20 6d 6f 64 75 6c  65 29 2c 20 52 31 20 61  |nt module), R1 a|
00004eb0  6e 64 20 52 36 20 77 69  6c 6c 20 70 6f 69 6e 74  |nd R6 will point|
00004ec0  20 74 6f 20 61 20 7a 65  72 6f 2c 20 61 6e 64 20  | to a zero, and |
00004ed0  52 32 2d 52 35 20 77 69  6c 6c 20 63 6f 6e 74 61  |R2-R5 will conta|
00004ee0  69 6e 0a 61 20 7a 65 72  6f 2e 0a 0a 20 20 20 20  |in.a zero...    |
00004ef0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00004f10  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0a 0a  |              ..|
00004f20  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004f60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0a 54 72  |-------------.Tr|
00004f70  61 63 6b 65 72 5f 57 72  69 74 65 53 61 6d 70 6c  |acker_WriteSampl|
00004f80  65 54 61 62 6c 65 20 20  28 53 57 49 20 26 34 33  |eTable  (SWI &43|
00004f90  32 31 33 29 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |213).-----------|
00004fa0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00004fe0  2d 2d 0a 0a 4f 6e 20 45  6e 74 72 79 3a 20 20 52  |--..On Entry:  R|
00004ff0  30 20 3d 20 53 61 6d 70  6c 65 20 6e 75 6d 62 65  |0 = Sample numbe|
00005000  72 20 28 31 2d 33 36 29  0a 20 20 20 20 20 20 20  |r (1-36).       |
00005010  20 20 20 20 52 31 20 3d  20 4e 65 77 20 73 61 6d  |    R1 = New sam|
00005020  70 6c 65 20 76 6f 6c 75  6d 65 20 28 30 2d 32 35  |ple volume (0-25|
00005030  35 2f 30 2d 36 34 29 20  6f 72 20 2d 31 20 74 6f  |5/0-64) or -1 to|
00005040  20 6c 65 61 76 65 20 75  6e 63 68 61 6e 67 65 64  | leave unchanged|
00005050  2e 0a 20 20 20 20 20 20  20 20 20 20 20 52 32 20  |..           R2 |
00005060  3d 20 52 65 70 65 61 74  20 6f 66 66 73 65 74 20  |= Repeat offset |
00005070  28 62 79 74 65 73 29 20  6f 72 20 2d 31 20 74 6f  |(bytes) or -1 to|
00005080  20 6c 65 61 76 65 20 75  6e 63 68 61 6e 67 65 64  | leave unchanged|
00005090  2e 0a 20 20 20 20 20 20  20 20 20 20 20 52 33 20  |..           R3 |
000050a0  3d 20 52 65 70 65 61 74  20 6c 65 6e 67 74 68 20  |= Repeat length |
000050b0  28 62 79 74 65 73 29 20  6f 72 20 2d 31 20 74 6f  |(bytes) or -1 to|
000050c0  20 6c 65 61 76 65 20 75  6e 63 68 61 6e 67 65 64  | leave unchanged|
000050d0  2e 0a 0a 20 59 6f 75 20  73 68 6f 75 6c 64 20 75  |... You should u|
000050e0  73 65 20 74 68 69 73 20  53 57 49 20 69 66 20 79  |se this SWI if y|
000050f0  6f 75 20 77 69 73 68 20  74 6f 20 61 6c 74 65 72  |ou wish to alter|
00005100  20 74 68 65 20 73 61 6d  70 6c 65 20 64 61 74 61  | the sample data|
00005110  20 77 69 74 68 6f 75 74  20 6e 65 65 64 69 6e 67  | without needing|
00005120  0a 74 6f 20 6b 6e 6f 77  20 74 68 65 20 72 65 6c  |.to know the rel|
00005130  65 76 61 6e 74 20 6d 6f  64 75 6c 65 20 66 6f 72  |evant module for|
00005140  6d 61 74 2e 20 53 61 6d  70 6c 65 20 6c 65 6e 67  |mat. Sample leng|
00005150  74 68 20 69 73 20 6e 6f  74 20 61 6c 74 65 72 61  |th is not altera|
00005160  62 6c 65 2c 20 62 65 63  61 75 73 65 0a 74 68 65  |ble, because.the|
00005170  20 6f 63 63 61 73 69 6f  6e 73 20 77 68 65 6e 20  | occasions when |
00005180  74 68 69 73 20 69 73 20  6e 65 63 65 73 73 61 72  |this is necessar|
00005190  79 20 28 65 67 2e 20 6c  6f 61 64 69 6e 67 20 6e  |y (eg. loading n|
000051a0  65 77 20 73 61 6d 70 6c  65 20 69 6e 29 20 6e 65  |ew sample in) ne|
000051b0  65 64 0a 64 69 72 65 63  74 20 6d 61 6e 69 70 75  |ed.direct manipu|
000051c0  6c 61 74 69 6f 6e 20 6f  66 20 74 68 65 20 6d 6f  |lation of the mo|
000051d0  64 75 6c 65 20 69 6e 20  6d 65 6d 6f 72 79 20 61  |dule in memory a|
000051e0  6e 79 77 61 79 2c 20 61  6e 64 20 70 72 6f 62 6c  |nyway, and probl|
000051f0  65 6d 73 20 6f 63 63 75  72 20 77 68 65 6e 0a 74  |ems occur when.t|
00005200  68 65 20 73 61 6d 70 6c  65 20 6c 65 6e 67 74 68  |he sample length|
00005210  20 69 73 20 73 65 74 20  61 62 6f 76 65 20 74 68  | is set above th|
00005220  65 20 61 63 74 75 61 6c  20 6c 65 6e 67 74 68 2e  |e actual length.|
00005230  0a 20 56 65 72 73 69 6f  6e 73 20 62 65 74 77 65  |. Versions betwe|
00005240  65 6e 20 33 2e 30 30 20  61 6e 64 20 34 2e 30 35  |en 3.00 and 4.05|
00005250  20 63 6f 70 69 65 64 20  74 68 65 20 73 61 6d 70  | copied the samp|
00005260  6c 65 20 69 6e 66 6f 72  6d 61 74 69 6f 6e 20 69  |le information i|
00005270  6e 74 6f 20 61 20 6d 6f  72 65 0a 63 6f 6e 76 65  |nto a more.conve|
00005280  6e 69 65 6e 74 20 66 6f  72 6d 61 74 20 77 68 65  |nient format whe|
00005290  6e 20 74 68 65 20 6d 6f  64 75 6c 65 20 77 61 73  |n the module was|
000052a0  20 69 6e 69 74 69 61 6c  69 73 65 64 2c 20 61 6e  | initialised, an|
000052b0  64 20 73 6f 20 61 6c 74  65 72 69 6e 67 20 74 68  |d so altering th|
000052c0  65 20 64 61 74 61 0a 64  69 72 65 63 74 6c 79 20  |e data.directly |
000052d0  77 6f 75 6c 64 20 68 61  76 65 20 68 61 64 20 6e  |would have had n|
000052e0  6f 20 65 66 66 65 63 74  20 28 63 61 75 73 69 6e  |o effect (causin|
000052f0  67 20 70 72 6f 62 6c 65  6d 73 20 66 6f 72 20 65  |g problems for e|
00005300  64 69 74 6f 72 73 20 77  68 69 63 68 20 6e 65 65  |ditors which nee|
00005310  64 65 64 0a 74 6f 20 64  6f 20 74 68 69 73 2e 2e  |ded.to do this..|
00005320  29 2e 0a 20 53 68 6f 75  6c 64 20 79 6f 75 20 77  |).. Should you w|
00005330  69 73 68 20 74 6f 20 61  6c 74 65 72 20 61 6e 79  |ish to alter any|
00005340  20 6f 74 68 65 72 20 61  73 70 65 63 74 20 6f 66  | other aspect of|
00005350  20 74 68 65 20 6d 6f 64  75 6c 65 20 64 69 72 65  | the module dire|
00005360  63 74 6c 79 20 77 68 69  63 68 20 6d 69 67 68 74  |ctly which might|
00005370  0a 61 66 66 65 63 74 20  74 68 65 20 70 6c 61 79  |.affect the play|
00005380  72 6f 75 74 69 6e 65 20  28 69 65 2e 20 6e 75 6d  |routine (ie. num|
00005390  62 65 72 20 6f 66 20 76  6f 69 63 65 73 29 2c 20  |ber of voices), |
000053a0  79 6f 75 20 73 68 6f 75  6c 64 20 63 61 6c 6c 0a  |you should call.|
000053b0  27 54 72 61 63 6b 65 72  5f 55 70 64 61 74 65 44  |'Tracker_UpdateD|
000053c0  61 74 61 27 20 28 73 65  65 20 62 65 6c 6f 77 2e  |ata' (see below.|
000053d0  2e 29 2e 0a 0a 20 41 6e  20 65 72 72 6f 72 20 69  |.)... An error i|
000053e0  73 20 67 65 6e 65 72 61  74 65 64 20 69 66 3a 0a  |s generated if:.|
000053f0  2a 20 4e 6f 20 6d 6f 64  75 6c 65 20 69 73 20 6c  |* No module is l|
00005400  6f 61 64 65 64 0a 2a 20  54 68 65 20 73 61 6d 70  |oaded.* The samp|
00005410  6c 65 20 6e 75 6d 62 65  72 20 74 6f 20 63 68 61  |le number to cha|
00005420  6e 67 65 20 65 78 63 65  65 64 73 20 74 68 65 20  |nge exceeds the |
00005430  6d 61 78 2e 20 6f 66 20  74 68 65 20 66 6f 72 6d  |max. of the form|
00005440  61 74 20 28 69 65 2e 20  31 35 2f 33 31 2f 33 36  |at (ie. 15/31/36|
00005450  29 0a 2a 20 54 68 65 20  72 65 6c 65 76 61 6e 74  |).* The relevant|
00005460  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 20 69 73 20  | information is |
00005470  6f 75 74 20 6f 66 20 72  61 6e 67 65 20 28 69 65  |out of range (ie|
00005480  2e 20 76 6f 6c 20 3e 20  5b 36 34 20 6f 72 20 32  |. vol > [64 or 2|
00005490  35 35 5d 29 0a 2a 20 41  20 63 6f 6d 62 69 6e 61  |55]).* A combina|
000054a0  74 69 6f 6e 20 6f 66 20  72 65 70 65 61 74 20 6f  |tion of repeat o|
000054b0  66 66 73 65 74 20 61 6e  64 20 72 65 70 65 61 74  |ffset and repeat|
000054c0  20 6c 65 6e 67 74 68 20  77 6f 75 6c 64 20 63 61  | length would ca|
000054d0  75 73 65 20 74 68 65 20  70 6c 61 79 65 72 0a 20  |use the player. |
000054e0  20 20 20 20 74 6f 20 6c  6f 6f 70 20 6f 75 74 73  |    to loop outs|
000054f0  69 64 65 20 74 68 65 20  73 61 6d 70 6c 65 20 6c  |ide the sample l|
00005500  69 6d 69 74 2e 0a 0a 20  54 68 69 73 20 53 57 49  |imit... This SWI|
00005510  20 69 73 20 70 61 72 74  20 6f 66 20 74 68 65 20  | is part of the |
00005520  6c 6f 63 6b 69 6e 67 20  73 79 73 74 65 6d 2e 0a  |locking system..|
00005530  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00005550  20 20 20 20 20 20 0a 0a  0a 2d 2d 2d 2d 2d 2d 2d  |      ...-------|
00005560  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000055a0  2d 2d 2d 2d 2d 2d 0a 54  72 61 63 6b 65 72 5f 4c  |------.Tracker_L|
000055b0  6f 63 6b 20 20 20 20 20  20 20 20 20 20 20 20 20  |ock             |
000055c0  20 28 53 57 49 20 26 34  33 32 30 44 29 0a 2d 2d  | (SWI &4320D).--|
000055d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005610  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 0a 4f 6e 20  |-----------..On |
00005620  45 6e 74 72 79 3a 20 20  52 30 20 3d 20 6c 6f 63  |Entry:  R0 = loc|
00005630  6b 69 6e 67 20 63 6f 64  65 20 28 70 61 73 73 65  |king code (passe|
00005640  64 20 69 6e 20 52 34 20  74 6f 20 53 57 49 27 73  |d in R4 to SWI's|
00005650  29 0a 0a 4f 6e 20 45 78  69 74 20 3a 20 20 2d 20  |)..On Exit :  - |
00005660  20 20 20 20 0a 0a 0a 20  54 68 69 73 20 53 57 49  |    ... This SWI|
00005670  20 61 6e 64 20 74 68 65  20 63 6f 72 72 65 73 70  | and the corresp|
00005680  6f 6e 64 69 6e 67 20 54  72 61 63 6b 65 72 5f 55  |onding Tracker_U|
00005690  6e 6c 6f 63 6b 20 53 57  49 20 61 72 65 20 70 72  |nlock SWI are pr|
000056a0  6f 76 69 64 65 64 20 74  6f 0a 70 72 65 76 65 6e  |ovided to.preven|
000056b0  74 20 75 73 65 72 20 69  6e 74 65 72 76 65 6e 74  |t user intervent|
000056c0  69 6f 6e 20 77 69 74 68  20 61 6e 79 20 6f 66 20  |ion with any of |
000056d0  74 68 65 20 66 65 61 74  75 72 65 73 20 6f 66 20  |the features of |
000056e0  74 68 65 20 6d 6f 64 75  6c 65 20 77 68 65 6e 20  |the module when |
000056f0  74 68 69 73 0a 77 6f 75  6c 64 20 62 65 20 75 6e  |this.would be un|
00005700  64 65 73 69 72 61 62 6c  65 20 66 6f 72 20 61 6e  |desirable for an|
00005710  79 20 6d 75 6c 74 69 2d  74 61 73 6b 69 6e 67 20  |y multi-tasking |
00005720  61 70 70 6c 69 63 61 74  69 6f 6e 73 20 75 73 69  |applications usi|
00005730  6e 67 20 74 68 65 20 6d  6f 64 75 6c 65 20 0a 28  |ng the module .(|
00005740  66 6f 72 20 65 78 61 6d  70 6c 65 20 69 73 73 75  |for example issu|
00005750  69 6e 67 20 61 20 2a 50  6c 61 79 53 74 6f 70 20  |ing a *PlayStop |
00005760  63 6f 6d 6d 61 6e 64 29  2e 20 42 79 20 63 61 6c  |command). By cal|
00005770  6c 69 6e 67 20 74 68 69  73 20 53 57 49 2c 20 61  |ling this SWI, a|
00005780  6e 20 61 70 70 6c 69 63  2d 0a 61 74 69 6f 6e 20  |n applic-.ation |
00005790  63 61 6e 20 67 61 69 6e  20 63 6f 6d 70 6c 65 74  |can gain complet|
000057a0  65 20 63 6f 6e 74 72 6f  6c 20 6f 66 20 74 68 65  |e control of the|
000057b0  20 6d 6f 64 75 6c 65 2c  20 62 75 74 20 61 73 20  | module, but as |
000057c0  61 20 72 65 73 75 6c 74  2c 20 74 68 69 73 20 66  |a result, this f|
000057d0  65 61 74 75 72 65 0a 6d  75 73 74 20 62 65 20 75  |eature.must be u|
000057e0  73 65 64 20 63 61 72 65  66 75 6c 6c 79 2c 20 62  |sed carefully, b|
000057f0  65 63 61 75 73 65 20 74  68 65 20 6d 6f 64 75 6c  |ecause the modul|
00005800  65 20 63 61 6e 6e 6f 74  20 74 68 65 6e 20 62 65  |e cannot then be|
00005810  20 75 6e 6c 6f 63 6b 65  64 20 75 6e 6c 65 73 73  | unlocked unless|
00005820  0a 74 68 65 20 63 6f 64  65 20 73 70 65 63 69 66  |.the code specif|
00005830  69 65 64 20 69 6e 20 74  68 65 20 6c 6f 63 6b 20  |ied in the lock |
00005840  53 57 49 20 69 73 20 6b  6e 6f 77 6e 20 28 61 6e  |SWI is known (an|
00005850  64 20 69 66 20 6e 6f 74  2c 20 74 68 65 20 6d 6f  |d if not, the mo|
00005860  64 75 6c 65 20 6d 75 73  74 20 62 65 0a 72 65 2d  |dule must be.re-|
00005870  69 6e 69 74 69 61 6c 69  73 65 64 29 2e 0a 20 57  |initialised).. W|
00005880  68 65 6e 20 74 68 65 20  6d 6f 64 75 6c 65 20 69  |hen the module i|
00005890  73 20 6c 6f 63 6b 65 64  2c 20 63 61 6c 6c 69 6e  |s locked, callin|
000058a0  67 20 61 6e 79 20 63 6f  6d 6d 61 6e 64 73 20 6f  |g any commands o|
000058b0  72 20 53 57 49 27 73 20  77 68 69 63 68 20 61 6c  |r SWI's which al|
000058c0  74 65 72 0a 61 6e 79 74  68 69 6e 67 20 28 73 75  |ter.anything (su|
000058d0  63 68 20 61 73 20 63 68  61 6e 67 69 6e 67 20 74  |ch as changing t|
000058e0  68 65 20 63 75 72 72 65  6e 74 20 70 6c 61 79 20  |he current play |
000058f0  70 6f 73 69 74 69 6f 6e  2c 20 6c 6f 61 64 69 6e  |position, loadin|
00005900  67 20 6f 72 20 6b 69 6c  6c 69 6e 67 0a 74 75 6e  |g or killing.tun|
00005910  65 73 2c 20 70 6c 61 79  69 6e 67 20 6e 6f 74 65  |es, playing note|
00005920  73 29 20 77 69 6c 6c 20  63 61 75 73 65 20 61 6e  |s) will cause an|
00005930  20 65 72 72 6f 72 2c 20  62 75 74 20 53 57 49 27  | error, but SWI'|
00005940  73 20 72 65 74 75 72 6e  69 6e 67 20 69 6e 66 6f  |s returning info|
00005950  72 6d 61 74 69 6f 6e 0a  77 69 6c 6c 20 66 75 6e  |rmation.will fun|
00005960  63 74 69 6f 6e 20 61 73  20 6e 6f 72 6d 61 6c 2e  |ction as normal.|
00005970  20 46 6f 72 20 74 68 65  20 61 70 70 6c 69 63 61  | For the applica|
00005980  74 69 6f 6e 20 77 68 69  63 68 20 69 73 20 72 65  |tion which is re|
00005990  73 70 6f 6e 73 69 62 6c  65 20 66 6f 72 20 74 68  |sponsible for th|
000059a0  65 0a 6c 6f 63 6b 69 6e  67 20 74 6f 20 62 65 20  |e.locking to be |
000059b0  61 62 6c 65 20 74 6f 20  75 73 65 20 74 68 65 20  |able to use the |
000059c0  61 66 66 65 63 74 65 64  20 53 57 49 27 73 2c 20  |affected SWI's, |
000059d0  52 34 20 6d 75 73 74 20  62 65 20 73 65 74 20 74  |R4 must be set t|
000059e0  6f 20 74 68 65 20 6c 6f  63 6b 69 6e 67 0a 63 6f  |o the locking.co|
000059f0  64 65 20 28 70 61 73 73  65 64 20 69 6e 20 52 30  |de (passed in R0|
00005a00  29 20 62 65 66 6f 72 65  20 61 6e 79 20 6f 66 20  |) before any of |
00005a10  74 68 65 20 61 66 66 65  63 74 65 64 20 53 57 49  |the affected SWI|
00005a20  27 73 20 69 73 20 63 61  6c 6c 65 64 20 28 6e 6f  |'s is called (no|
00005a30  20 63 6f 6d 6d 61 6e 64  73 0a 77 69 6c 6c 20 77  | commands.will w|
00005a40  6f 72 6b 20 65 76 65 6e  20 69 66 20 74 68 65 20  |ork even if the |
00005a50  6c 6f 63 6b 69 6e 67 20  63 6f 64 65 20 69 73 20  |locking code is |
00005a60  6b 6e 6f 77 6e 29 2e 0a  20 49 66 20 74 68 65 20  |known).. If the |
00005a70  74 72 61 63 6b 65 72 6d  6f 64 75 6c 65 20 69 73  |trackermodule is|
00005a80  20 61 6c 72 65 61 64 79  20 27 6c 6f 63 6b 65 64  | already 'locked|
00005a90  27 20 77 68 65 6e 20 74  68 69 73 20 53 57 49 20  |' when this SWI |
00005aa0  69 73 20 63 61 6c 6c 65  64 2c 20 61 6e 20 65 72  |is called, an er|
00005ab0  72 6f 72 0a 77 69 6c 6c  20 62 65 20 67 65 6e 65  |ror.will be gene|
00005ac0  72 61 74 65 64 2e 0a 20  49 74 20 69 73 20 61 64  |rated.. It is ad|
00005ad0  76 69 73 61 62 6c 65 20  74 6f 20 61 76 6f 69 64  |visable to avoid|
00005ae0  20 75 73 69 6e 67 20 74  68 69 73 20 63 61 6c 6c  | using this call|
00005af0  20 75 6e 6c 65 73 73 20  61 62 73 6f 6c 75 74 65  | unless absolute|
00005b00  6c 79 20 6e 65 63 63 65  73 73 61 72 79 2e 0a 20  |ly neccessary.. |
00005b10  20 20 20 20 20 20 20 20  20 20 0a 0a 54 68 65 20  |          ..The |
00005b20  72 65 73 74 72 69 63 74  65 64 20 63 6f 6d 6d 61  |restricted comma|
00005b30  6e 64 73 20 61 72 65 3a  0a 2a 50 6c 61 79 4d 6f  |nds are:.*PlayMo|
00005b40  64 2c 20 2a 50 6c 61 79  50 61 75 73 65 2c 20 2a  |d, *PlayPause, *|
00005b50  50 6c 61 79 53 74 61 72  74 2c 20 2a 50 6c 61 79  |PlayStart, *Play|
00005b60  50 6f 73 2c 20 2a 50 6c  61 79 53 74 65 72 65 6f  |Pos, *PlayStereo|
00005b70  2c 20 2a 50 6c 61 79 53  74 6f 70 2c 0a 2a 50 6c  |, *PlayStop,.*Pl|
00005b80  61 79 56 6f 6c 75 6d 65  2e 0a 0a 54 68 65 20 72  |ayVolume...The r|
00005b90  65 73 74 72 69 63 74 65  64 20 53 57 49 27 73 20  |estricted SWI's |
00005ba0  61 72 65 3a 20 20 20 20  20 20 20 20 20 20 20 20  |are:            |
00005bb0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00005bc0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 0a 54  |              .T|
00005bd0  72 61 63 6b 65 72 5f 4c  6f 61 64 2c 20 54 72 61  |racker_Load, Tra|
00005be0  63 6b 65 72 5f 4d 65 6d  6f 72 79 4c 6f 61 64 2c  |cker_MemoryLoad,|
00005bf0  20 54 72 61 63 6b 65 72  5f 50 6c 61 79 2c 20 54  | Tracker_Play, T|
00005c00  72 61 63 6b 65 72 5f 53  74 6f 70 2c 20 54 72 61  |racker_Stop, Tra|
00005c10  63 6b 65 72 5f 53 74 65  72 65 6f 2c 0a 54 72 61  |cker_Stereo,.Tra|
00005c20  63 6b 65 72 5f 53 65 74  50 6f 73 2c 20 54 72 61  |cker_SetPos, Tra|
00005c30  63 6b 65 72 5f 50 6c 61  79 4e 6f 74 65 2c 20 54  |cker_PlayNote, T|
00005c40  72 61 63 6b 65 72 5f 56  6f 6c 75 6d 65 2e 0a 0a  |racker_Volume...|
00005c50  0a 20 20 20 20 20 20 20  20 20 20 20 0a 0a 2d 2d  |.           ..--|
00005c60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005ca0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 54 72 61 63  |-----------.Trac|
00005cb0  6b 65 72 5f 55 6e 6c 6f  63 6b 20 20 20 20 20 20  |ker_Unlock      |
00005cc0  20 20 20 20 20 20 28 53  57 49 20 26 34 33 32 30  |      (SWI &4320|
00005cd0  45 29 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |E).-------------|
00005ce0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005d20  0a 0a 4f 6e 20 45 6e 74  72 79 3a 20 20 52 30 20  |..On Entry:  R0 |
00005d30  3d 20 6c 6f 63 6b 69 6e  67 20 63 6f 64 65 20 28  |= locking code (|
00005d40  73 70 65 63 69 66 69 65  64 20 69 6e 20 54 72 61  |specified in Tra|
00005d50  63 6b 65 72 5f 4c 6f 63  6b 29 0a 0a 4f 6e 20 45  |cker_Lock)..On E|
00005d60  78 69 74 20 3a 20 20 2d  0a 0a 0a 20 54 68 69 73  |xit :  -... This|
00005d70  20 53 57 49 20 73 68 6f  75 6c 64 20 62 65 20 63  | SWI should be c|
00005d80  61 6c 6c 65 64 20 74 6f  20 75 6e 6c 6f 63 6b 20  |alled to unlock |
00005d90  74 68 65 20 6d 6f 64 75  6c 65 20 61 66 74 65 72  |the module after|
00005da0  20 69 74 20 68 61 73 20  62 65 65 6e 20 6c 6f 63  | it has been loc|
00005db0  6b 65 64 20 77 69 74 68  0a 27 54 72 61 63 6b 65  |ked with.'Tracke|
00005dc0  72 5f 4c 6f 63 6b 27 2e  20 49 66 20 74 68 65 20  |r_Lock'. If the |
00005dd0  76 61 6c 75 65 20 70 61  73 73 65 64 20 69 6e 20  |value passed in |
00005de0  52 30 20 69 73 20 64 69  66 66 65 72 65 6e 74 20  |R0 is different |
00005df0  74 6f 20 74 68 65 20 6c  6f 63 6b 69 6e 67 20 63  |to the locking c|
00005e00  6f 64 65 0a 67 69 76 65  6e 20 69 6e 20 74 68 65  |ode.given in the|
00005e10  20 6c 6f 63 6b 20 53 57  49 2c 20 6f 72 20 74 68  | lock SWI, or th|
00005e20  65 20 6d 6f 64 75 6c 65  20 68 61 73 20 6e 6f 74  |e module has not|
00005e30  20 62 65 65 6e 20 6c 6f  63 6b 65 64 2c 20 61 6e  | been locked, an|
00005e40  20 65 72 72 6f 72 20 69  73 0a 67 65 6e 65 72 61  | error is.genera|
00005e50  74 65 64 2e 0a 0a 0a 0a  0a 2d 2d 2d 2d 2d 2d 2d  |ted......-------|
00005e60  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005ea0  2d 2d 2d 2d 2d 2d 0a 54  72 61 63 6b 65 72 5f 4d  |------.Tracker_M|
00005eb0  75 74 65 43 68 61 6e 6e  65 6c 20 20 20 20 20 20  |uteChannel      |
00005ec0  20 28 53 57 49 20 26 34  33 32 30 46 29 0a 2d 2d  | (SWI &4320F).--|
00005ed0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00005f10  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 0a 4f 6e 20  |-----------..On |
00005f20  45 6e 74 72 79 3a 20 20  52 30 20 3d 20 63 68 61  |Entry:  R0 = cha|
00005f30  6e 6e 65 6c 20 74 6f 20  6d 75 74 65 20 28 31 2d  |nnel to mute (1-|
00005f40  38 29 0a 0a 4f 6e 20 45  78 69 74 20 3a 20 20 2d  |8)..On Exit :  -|
00005f50  0a 0a 0a 20 54 68 69 73  20 53 57 49 20 61 6c 6c  |... This SWI all|
00005f60  6f 77 73 20 79 6f 75 20  74 6f 20 74 75 72 6e 20  |ows you to turn |
00005f70  6f 66 66 20 73 65 6c 65  63 74 65 64 20 63 68 61  |off selected cha|
00005f80  6e 6e 65 6c 73 20 77 68  69 6c 65 20 6c 65 61 76  |nnels while leav|
00005f90  69 6e 67 20 61 6c 6c 20  74 68 65 0a 6f 74 68 65  |ing all the.othe|
00005fa0  72 20 63 68 61 6e 6e 65  6c 73 20 75 6e 61 66 66  |r channels unaff|
00005fb0  65 63 74 65 64 2e 20 54  68 65 20 63 68 61 6e 6e  |ected. The chann|
00005fc0  65 6c 73 20 63 61 6e 20  62 65 20 74 75 72 6e 65  |els can be turne|
00005fd0  64 20 62 61 63 6b 20 6f  6e 20 62 79 20 75 73 69  |d back on by usi|
00005fe0  6e 67 20 74 68 65 0a 27  54 72 61 63 6b 65 72 5f  |ng the.'Tracker_|
00005ff0  52 65 73 74 6f 72 65 43  68 61 6e 6e 65 6c 27 20  |RestoreChannel' |
00006000  53 57 49 2e 0a 20 4e 6f  20 65 72 72 6f 72 20 69  |SWI.. No error i|
00006010  73 20 67 65 6e 65 72 61  74 65 64 20 69 66 20 74  |s generated if t|
00006020  68 65 20 63 68 61 6e 6e  65 6c 20 6e 75 6d 62 65  |he channel numbe|
00006030  72 20 69 73 20 68 69 67  68 65 72 20 74 68 61 6e  |r is higher than|
00006040  20 74 68 65 20 6e 75 6d  62 65 72 20 6f 66 0a 63  | the number of.c|
00006050  68 61 6e 6e 65 6c 73 20  61 63 74 75 61 6c 6c 79  |hannels actually|
00006060  20 62 65 69 6e 67 20 75  73 65 64 20 62 79 20 74  | being used by t|
00006070  68 65 20 74 72 61 63 6b  65 72 6d 6f 64 75 6c 65  |he trackermodule|
00006080  2e 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00006090  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000060b0  20 20 20 20 20 20 20 20  0a 0a 0a 2d 2d 2d 2d 2d  |        ...-----|
000060c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006100  2d 2d 2d 2d 2d 2d 2d 2d  0a 54 72 61 63 6b 65 72  |--------.Tracker|
00006110  5f 52 65 73 74 6f 72 65  43 68 61 6e 6e 65 6c 20  |_RestoreChannel |
00006120  20 20 20 28 53 57 49 20  26 34 33 32 31 30 29 0a  |   (SWI &43210).|
00006130  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006170  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 0a 0a 4f  |-------------..O|
00006180  6e 20 45 6e 74 72 79 3a  20 20 52 30 20 3d 20 63  |n Entry:  R0 = c|
00006190  68 61 6e 6e 65 6c 20 74  6f 20 74 75 72 6e 20 6f  |hannel to turn o|
000061a0  6e 20 28 31 2d 38 29 0a  0a 4f 6e 20 45 78 69 74  |n (1-8)..On Exit|
000061b0  20 3a 20 20 2d 0a 0a 0a  20 54 68 69 73 20 53 57  | :  -... This SW|
000061c0  49 20 77 69 6c 6c 20 72  65 76 65 72 73 65 20 74  |I will reverse t|
000061d0  68 65 20 65 66 66 65 63  74 20 6f 66 20 61 20 27  |he effect of a '|
000061e0  54 72 61 63 6b 65 72 5f  4d 75 74 65 43 68 61 6e  |Tracker_MuteChan|
000061f0  6e 65 6c 27 20 53 57 49  2c 20 61 6e 64 20 74 75  |nel' SWI, and tu|
00006200  72 6e 0a 74 68 65 20 73  65 6c 65 63 74 65 64 20  |rn.the selected |
00006210  63 68 61 6e 6e 65 6c 20  62 61 63 6b 20 6f 6e 2e  |channel back on.|
00006220  0a 20 4e 6f 20 65 72 72  6f 72 20 69 73 20 67 65  |. No error is ge|
00006230  6e 65 72 61 74 65 64 20  69 66 20 74 68 65 20 63  |nerated if the c|
00006240  68 61 6e 6e 65 6c 20 6e  75 6d 62 65 72 20 69 73  |hannel number is|
00006250  20 68 69 67 68 65 72 20  74 68 61 6e 20 74 68 65  | higher than the|
00006260  20 6e 75 6d 62 65 72 20  6f 66 0a 63 68 61 6e 6e  | number of.chann|
00006270  65 6c 73 20 61 63 74 75  61 6c 6c 79 20 62 65 69  |els actually bei|
00006280  6e 67 20 75 73 65 64 20  62 79 20 74 68 65 20 74  |ng used by the t|
00006290  72 61 63 6b 65 72 6d 6f  64 75 6c 65 2e 0a 20 20  |rackermodule..  |
000062a0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000062b0  20 20 20 20 20 20 20 20  20 0a 0a 0a 2d 2d 2d 2d  |         ...----|
000062c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006300  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 54 72 61 63 6b 65  |---------.Tracke|
00006310  72 5f 53 70 65 65 64 20  20 20 20 20 20 20 20 20  |r_Speed         |
00006320  20 20 20 20 28 53 57 49  20 26 34 33 32 31 31 29  |    (SWI &43211)|
00006330  0a 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |.---------------|
00006340  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006370  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 0a 0a  |--------------..|
00006380  4f 6e 20 45 6e 74 72 79  3a 20 20 52 30 20 3d 20  |On Entry:  R0 = |
00006390  6e 65 77 20 73 70 65 65  64 20 73 65 74 74 69 6e  |new speed settin|
000063a0  67 20 28 30 2d 33 29 0a  0a 4f 6e 20 45 78 69 74  |g (0-3)..On Exit|
000063b0  20 3a 20 20 2d 0a 0a 0a  20 54 68 69 73 20 53 57  | :  -... This SW|
000063c0  49 20 77 69 6c 6c 20 73  65 6c 65 63 74 20 74 68  |I will select th|
000063d0  65 20 66 75 74 75 72 65  20 73 61 6d 70 6c 65 20  |e future sample |
000063e0  72 61 74 65 20 61 6e 64  20 6f 76 65 72 61 6c 6c  |rate and overall|
000063f0  20 70 69 74 63 68 20 74  6f 20 63 61 74 65 72 20  | pitch to cater |
00006400  66 6f 72 0a 56 49 44 43  20 65 6e 68 61 6e 63 65  |for.VIDC enhance|
00006410  72 73 20 61 6e 64 20 38  2d 63 68 61 6e 6e 65 6c  |rs and 8-channel|
00006420  20 74 75 6e 65 73 2c 20  74 61 6b 69 6e 67 20 65  | tunes, taking e|
00006430  66 66 65 63 74 20 69 6d  6d 65 64 69 61 74 65 6c  |ffect immediatel|
00006440  79 20 69 66 20 61 20 74  75 6e 65 20 69 73 0a 63  |y if a tune is.c|
00006450  75 72 72 65 6e 74 6c 79  20 70 6c 61 79 69 6e 67  |urrently playing|
00006460  2e 0a 20 46 6f 72 20 64  65 74 61 69 6c 73 20 6f  |.. For details o|
00006470  66 20 74 68 65 20 64 69  66 66 65 72 65 6e 74 20  |f the different |
00006480  6f 70 74 69 6f 6e 73 20  73 65 65 20 74 68 65 20  |options see the |
00006490  63 6f 6d 6d 61 6e 64 20  2a 50 6c 61 79 53 70 65  |command *PlaySpe|
000064a0  65 64 2e 0a 20 54 68 69  73 20 53 57 49 20 69 73  |ed.. This SWI is|
000064b0  20 6e 6f 74 20 69 6e 63  6c 75 64 65 64 20 69 6e  | not included in|
000064c0  20 74 68 65 20 6c 6f 63  6b 69 6e 67 20 73 79 73  | the locking sys|
000064d0  74 65 6d 20 62 65 63 61  75 73 65 20 69 74 20 77  |tem because it w|
000064e0  61 73 20 6f 6e 6c 79 20  69 6e 74 72 6f 2d 0a 64  |as only intro-.d|
000064f0  75 63 65 64 20 69 6e 20  76 65 72 73 69 6f 6e 20  |uced in version |
00006500  34 2e 30 34 2c 20 61 6e  64 20 73 6f 6d 65 20 70  |4.04, and some p|
00006510  72 6f 67 72 61 6d 73 20  6d 61 79 20 68 61 76 65  |rograms may have|
00006520  20 61 6c 72 65 61 64 79  20 62 65 65 6e 20 77 72  | already been wr|
00006530  69 74 74 65 6e 20 77 68  69 63 68 0a 75 73 65 20  |itten which.use |
00006540  74 68 65 20 6c 6f 63 6b  69 6e 67 20 73 79 73 74  |the locking syst|
00006550  65 6d 20 62 75 74 20 64  6f 6e 27 74 20 63 6f 6e  |em but don't con|
00006560  74 72 6f 6c 20 74 68 65  20 73 61 6d 70 6c 65 20  |trol the sample |
00006570  73 70 65 65 64 2f 70 69  74 63 68 20 65 74 63 2e  |speed/pitch etc.|
00006580  0a 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |..              |
00006590  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000065b0  20 0a 0a 0a 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  | ...------------|
000065c0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006600  2d 0a 54 72 61 63 6b 65  72 5f 56 6f 6c 75 6d 65  |-.Tracker_Volume|
00006610  20 20 20 20 20 20 20 20  20 20 20 20 28 53 57 49  |            (SWI|
00006620  20 26 34 33 32 31 32 29  0a 2d 2d 2d 2d 2d 2d 2d  | &43212).-------|
00006630  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006670  2d 2d 2d 2d 2d 2d 0a 0a  4f 6e 20 45 6e 74 72 79  |------..On Entry|
00006680  3a 20 20 52 30 20 3d 20  6e 65 77 20 6f 76 65 72  |:  R0 = new over|
00006690  61 6c 6c 20 76 6f 6c 75  6d 65 20 28 30 2d 31 32  |all volume (0-12|
000066a0  37 29 20 6f 72 20 2d 31  20 74 6f 20 72 65 61 64  |7) or -1 to read|
000066b0  20 76 6f 6c 75 6d 65 0a  0a 4f 6e 20 45 78 69 74  | volume..On Exit|
000066c0  20 3a 20 20 52 30 20 3d  20 6f 6c 64 20 76 6f 6c  | :  R0 = old vol|
000066d0  75 6d 65 0a 0a 0a 20 54  68 69 73 20 53 57 49 20  |ume... This SWI |
000066e0  77 69 6c 6c 20 73 65 74  20 74 68 65 20 6f 76 65  |will set the ove|
000066f0  72 61 6c 6c 20 76 6f 6c  75 6d 65 20 6f 66 20 61  |rall volume of a|
00006700  6e 79 20 74 75 6e 65 73  20 70 6c 61 79 69 6e 67  |ny tunes playing|
00006710  20 62 79 20 73 75 62 74  72 61 63 74 69 6e 67 0a  | by subtracting.|
00006720  28 32 35 34 2d 76 6f 6c  75 6d 65 2a 32 29 20 66  |(254-volume*2) f|
00006730  72 6f 6d 20 74 68 65 20  76 6f 6c 75 6d 65 20 6f  |rom the volume o|
00006740  66 20 61 6e 79 20 73 61  6d 70 6c 65 20 70 6c 61  |f any sample pla|
00006750  79 69 6e 67 2e 20 54 68  69 73 20 74 61 6b 65 73  |ying. This takes|
00006760  20 65 66 66 65 63 74 0a  69 6d 6d 65 64 69 61 74  | effect.immediat|
00006770  65 6c 79 2c 20 61 6e 64  20 61 6c 73 6f 20 61 66  |ely, and also af|
00006780  66 65 63 74 73 20 73 61  6d 70 6c 65 73 20 77 68  |fects samples wh|
00006790  69 63 68 20 61 72 65 20  69 6e 20 6d 69 64 2d 70  |ich are in mid-p|
000067a0  6c 61 79 2e 0a 20 43 61  6c 6c 69 6e 67 20 74 68  |lay.. Calling th|
000067b0  65 20 53 57 49 20 77 69  74 68 20 52 30 3d 2d 31  |e SWI with R0=-1|
000067c0  20 77 69 6c 6c 20 72 65  74 75 72 6e 20 74 68 65  | will return the|
000067d0  20 63 75 72 72 65 6e 74  20 76 6f 6c 75 6d 65 20  | current volume |
000067e0  69 6e 20 52 30 2e 0a 20  59 6f 75 20 63 61 6e 20  |in R0.. You can |
000067f0  75 73 65 20 74 68 69 73  20 53 57 49 20 74 6f 20  |use this SWI to |
00006800  70 72 6f 76 69 64 65 20  73 6d 6f 6f 74 68 20 66  |provide smooth f|
00006810  61 64 65 2d 6f 75 74 73  20 61 6e 64 20 66 61 64  |ade-outs and fad|
00006820  65 2d 69 6e 73 2c 20 66  6f 72 20 65 78 61 6d 70  |e-ins, for examp|
00006830  6c 65 2e 0a 20 54 68 69  73 20 53 57 49 20 69 73  |le.. This SWI is|
00006840  20 70 61 72 74 20 6f 66  20 74 68 65 20 6c 6f 63  | part of the loc|
00006850  6b 69 6e 67 20 73 79 73  74 65 6d 2e 0a 0a 20 20  |king system...  |
00006860  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006880  20 20 20 20 20 20 20 20  20 20 20 20 20 0a 0a 2d  |             ..-|
00006890  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
000068d0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 0a 54 72 61  |------------.Tra|
000068e0  63 6b 65 72 5f 54 72 61  6e 73 6c 61 74 65 56 6f  |cker_TranslateVo|
000068f0  6c 75 6d 65 20 20 20 28  53 57 49 20 26 34 33 32  |lume   (SWI &432|
00006900  31 34 29 0a 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |14).------------|
00006910  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006950  2d 0a 0a 4f 6e 20 45 6e  74 72 79 3a 20 20 52 30  |-..On Entry:  R0|
00006960  20 3d 20 53 6f 75 6e 64  74 72 61 63 6b 65 72 20  | = Soundtracker |
00006970  76 6f 6c 75 6d 65 20 74  6f 20 63 6f 6e 76 65 72  |volume to conver|
00006980  74 20 28 30 2d 36 34 29  0a 0a 4f 6e 20 45 78 69  |t (0-64)..On Exi|
00006990  74 20 3a 20 20 52 30 20  3d 20 4c 6f 67 61 72 69  |t :  R0 = Logari|
000069a0  74 68 6d 69 63 20 76 6f  6c 75 6d 65 20 28 30 2d  |thmic volume (0-|
000069b0  32 35 35 29 2c 20 32 35  35 3d 6d 61 78 2e 0a 0a  |255), 255=max...|
000069c0  54 68 69 73 20 53 57 49  20 77 69 6c 6c 20 63 6f  |This SWI will co|
000069d0  6e 76 65 72 74 20 61 20  73 6f 75 6e 64 74 72 61  |nvert a soundtra|
000069e0  63 6b 65 72 20 76 6f 6c  75 6d 65 20 28 61 73 20  |cker volume (as |
000069f0  72 65 74 75 72 6e 65 64  20 62 79 20 74 68 65 20  |returned by the |
00006a00  53 57 49 0a 54 72 61 63  6b 65 72 5f 52 65 61 64  |SWI.Tracker_Read|
00006a10  53 61 6d 70 6c 65 54 61  62 6c 65 20 77 68 65 6e  |SampleTable when|
00006a20  20 61 20 73 6f 75 6e 64  74 72 61 63 6b 65 72 20  | a soundtracker |
00006a30  74 75 6e 65 20 69 73 20  70 6c 61 79 69 6e 67 29  |tune is playing)|
00006a40  20 69 6e 74 6f 20 61 20  54 72 61 63 6b 65 72 0a  | into a Tracker.|
00006a50  66 6f 72 6d 61 74 20 6c  6f 67 61 72 69 74 68 6d  |format logarithm|
00006a60  69 63 20 76 6f 6c 75 6d  65 20 28 30 2d 32 35 35  |ic volume (0-255|
00006a70  29 2e 0a 0a 0a 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |).....----------|
00006a80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006ac0  2d 2d 2d 0a 54 72 61 63  6b 65 72 5f 55 70 64 61  |---.Tracker_Upda|
00006ad0  74 65 44 61 74 61 20 20  20 20 20 20 20 20 28 53  |teData        (S|
00006ae0  57 49 20 26 34 33 32 31  35 29 0a 2d 2d 2d 2d 2d  |WI &43215).-----|
00006af0  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
*
00006b30  2d 2d 2d 2d 2d 2d 2d 2d  0a 0a 4f 6e 20 45 6e 74  |--------..On Ent|
00006b40  72 79 3a 20 20 2d 0a 0a  4f 6e 20 45 78 69 74 20  |ry:  -..On Exit |
00006b50  3a 20 20 2d 0a 0a 54 68  69 73 20 69 73 20 72 65  |:  -..This is re|
00006b60  61 6c 6c 79 20 61 6e 20  65 64 69 74 6f 72 20 53  |ally an editor S|
00006b70  57 49 20 77 68 69 63 68  20 79 6f 75 20 73 68 6f  |WI which you sho|
00006b80  75 6c 64 20 63 61 6c 6c  20 77 68 65 6e 65 76 65  |uld call wheneve|
00006b90  72 20 79 6f 75 20 61 6c  74 65 72 20 6f 6e 65 20  |r you alter one |
00006ba0  6f 66 0a 74 68 65 20 66  6f 6c 6c 6f 77 69 6e 67  |of.the following|
00006bb0  2c 20 73 6f 20 74 68 61  74 20 74 68 65 20 6d 6f  |, so that the mo|
00006bc0  64 75 6c 65 20 63 61 6e  20 75 70 64 61 74 65 20  |dule can update |
00006bd0  69 74 73 20 64 61 74 61  3a 2d 0a 20 2a 20 4e 75  |its data:-. * Nu|
00006be0  6d 62 65 72 20 6f 66 20  76 6f 69 63 65 73 20 28  |mber of voices (|
00006bf0  61 6e 64 20 74 68 65 72  65 66 6f 72 65 20 70 61  |and therefore pa|
00006c00  74 74 65 72 6e 20 6c 65  6e 67 74 68 29 0a 20 2a  |ttern length). *|
00006c10  20 53 61 6d 70 6c 65 20  6c 65 6e 67 74 68 2f 6c  | Sample length/l|
00006c20  6f 61 64 20 6e 65 77 20  73 61 6d 70 6c 65 0a 20  |oad new sample. |
00006c30  2a 20 4d 75 73 69 63 20  6c 65 6e 67 74 68 0a 20  |* Music length. |
00006c40  2a 20 53 74 65 72 65 6f  20 73 65 74 74 69 6e 67  |* Stereo setting|
00006c50  73 20 28 54 72 61 63 6b  65 72 29 0a 20 20 20 20  |s (Tracker).    |
00006c60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00006c80  20 20 20 20 20 20 20 20  20 20 20 0a 0a 3d 3d 3d  |           ..===|
00006c90  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00006cd0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 0a 0a 4e 6f 74 65  |==========..Note|
00006ce0  20 74 72 61 6e 73 6c 61  74 69 6f 6e 20 74 61 62  | translation tab|
00006cf0  6c 65 0a 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |le.-------------|
00006d00  2d 2d 2d 2d 2d 2d 2d 2d  2d 0a 0a 54 68 65 20 74  |---------..The t|
00006d10  72 61 63 6b 65 72 20 66  6f 72 6d 61 74 20 6e 6f  |racker format no|
00006d20  74 65 20 6e 75 6d 62 65  72 73 20 61 6e 64 20 74  |te numbers and t|
00006d30  68 65 20 6e 6f 74 65 73  20 74 68 65 79 20 72 65  |he notes they re|
00006d40  66 65 72 20 74 6f 20 61  72 65 20 61 73 20 66 6f  |fer to are as fo|
00006d50  6c 6c 6f 77 73 3a 0a 0a  6e 6f 2e 20 20 6e 6f 74  |llows:..no.  not|
00006d60  65 20 20 20 73 61 6d 70  6c 65 20 70 65 72 69 6f  |e   sample perio|
00006d70  64 0a 2d 2d 2d 20 20 2d  2d 2d 2d 20 20 20 2d 2d  |d.---  ----   --|
00006d80  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 0a 31 20 20 20  |-----------.1   |
00006d90  20 43 20 2d 31 20 20 20  26 33 35 38 0a 32 20 20  | C -1   &358.2  |
00006da0  20 20 43 23 2d 31 20 20  20 26 33 32 38 0a 33 20  |  C#-1   &328.3 |
00006db0  20 20 20 44 20 2d 31 20  20 20 26 32 46 41 0a 34  |   D -1   &2FA.4|
00006dc0  20 20 20 20 44 23 2d 31  20 20 20 26 32 44 30 0a  |    D#-1   &2D0.|
00006dd0  35 20 20 20 20 45 20 2d  31 20 20 20 26 32 41 36  |5    E -1   &2A6|
00006de0  0a 36 20 20 20 20 46 20  2d 31 20 20 20 26 32 38  |.6    F -1   &28|
00006df0  30 0a 37 20 20 20 20 46  23 2d 31 20 20 20 26 32  |0.7    F#-1   &2|
00006e00  35 43 0a 38 20 20 20 20  47 20 2d 31 20 20 20 26  |5C.8    G -1   &|
00006e10  32 33 41 0a 39 20 20 20  20 47 23 2d 31 20 20 20  |23A.9    G#-1   |
00006e20  26 32 31 41 0a 31 30 20  20 20 41 20 2d 31 20 20  |&21A.10   A -1  |
00006e30  20 26 31 46 43 0a 31 31  20 20 20 41 23 2d 31 20  | &1FC.11   A#-1 |
00006e40  20 20 26 31 45 30 0a 31  32 20 20 20 42 20 2d 31  |  &1E0.12   B -1|
00006e50  20 20 20 26 31 43 35 0a  31 33 20 20 20 43 20 2d  |   &1C5.13   C -|
00006e60  32 20 20 20 26 31 41 43  0a 31 34 20 20 20 43 23  |2   &1AC.14   C#|
00006e70  2d 32 20 20 20 26 31 39  34 0a 31 35 20 20 20 44  |-2   &194.15   D|
00006e80  20 2d 32 20 20 20 26 31  37 44 0a 31 36 20 20 20  | -2   &17D.16   |
00006e90  44 23 2d 32 20 20 20 26  31 36 38 0a 31 37 20 20  |D#-2   &168.17  |
00006ea0  20 45 20 2d 32 20 20 20  26 31 35 33 0a 31 38 20  | E -2   &153.18 |
00006eb0  20 20 46 20 2d 32 20 20  20 26 31 34 30 0a 31 39  |  F -2   &140.19|
00006ec0  20 20 20 46 23 2d 32 20  20 20 26 31 32 45 0a 32  |   F#-2   &12E.2|
00006ed0  30 20 20 20 47 20 2d 32  20 20 20 26 31 31 44 0a  |0   G -2   &11D.|
00006ee0  32 31 20 20 20 47 23 2d  32 20 20 20 26 31 30 44  |21   G#-2   &10D|
00006ef0  0a 32 32 20 20 20 41 20  2d 32 20 20 20 20 26 46  |.22   A -2    &F|
00006f00  45 0a 32 33 20 20 20 41  23 2d 32 20 20 20 20 26  |E.23   A#-2    &|
00006f10  46 30 0a 32 34 20 20 20  42 20 2d 32 20 20 20 20  |F0.24   B -2    |
00006f20  26 45 32 0a 32 35 20 20  20 43 20 2d 33 20 20 20  |&E2.25   C -3   |
00006f30  20 26 44 36 0a 32 36 20  20 20 43 23 2d 33 20 20  | &D6.26   C#-3  |
00006f40  20 20 26 43 41 0a 32 37  20 20 20 44 20 2d 33 20  |  &CA.27   D -3 |
00006f50  20 20 20 26 42 45 0a 32  38 20 20 20 44 23 2d 33  |   &BE.28   D#-3|
00006f60  20 20 20 20 26 42 34 0a  32 39 20 20 20 45 20 2d  |    &B4.29   E -|
00006f70  33 20 20 20 20 26 41 41  0a 33 30 20 20 20 46 20  |3    &AA.30   F |
00006f80  2d 33 20 20 20 20 26 41  30 0a 33 31 20 20 20 46  |-3    &A0.31   F|
00006f90  23 2d 33 20 20 20 20 26  39 37 0a 33 32 20 20 20  |#-3    &97.32   |
00006fa0  47 20 2d 33 20 20 20 20  26 38 46 0a 33 33 20 20  |G -3    &8F.33  |
00006fb0  20 47 23 2d 33 20 20 20  20 26 38 37 0a 33 34 20  | G#-3    &87.34 |
00006fc0  20 20 41 20 2d 33 20 20  20 20 26 37 46 0a 33 35  |  A -3    &7F.35|
00006fd0  20 20 20 41 23 2d 33 20  20 20 20 26 37 38 0a 33  |   A#-3    &78.3|
00006fe0  36 20 20 20 42 20 2d 33  20 20 20 20 26 37 31 0a  |6   B -3    &71.|
00006ff0  0a 0a 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |..==============|
00007000  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00007030  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 0a  |===============.|
00007040  0a 0a 54 72 61 63 6b 65  72 20 61 6e 64 20 53 6f  |..Tracker and So|
00007050  75 6e 64 74 72 61 63 6b  65 72 20 63 6f 6d 6d 61  |undtracker comma|
00007060  6e 64 73 0a 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |nds.------------|
00007070  2d 2d 2d 2d 2d 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |----------------|
00007080  2d 2d 2d 2d 2d 0a 0a 20  49 6e 20 61 6c 6c 20 74  |-----.. In all t|
00007090  75 6e 65 73 2c 20 74 68  65 72 65 20 61 72 65 20  |unes, there are |
000070a0  73 70 65 63 69 61 6c 20  63 6f 6d 6d 61 6e 64 73  |special commands|
000070b0  20 77 68 69 63 68 20 68  61 76 65 20 61 20 74 79  | which have a ty|
000070c0  70 65 20 28 30 2d 26 46  20 66 6f 72 20 61 6d 69  |pe (0-&F for ami|
000070d0  67 61 2c 0a 30 2d 39 20  26 20 41 2d 5a 20 66 6f  |ga,.0-9 & A-Z fo|
000070e0  72 20 54 72 61 63 6b 65  72 29 20 61 6e 64 20 64  |r Tracker) and d|
000070f0  61 74 61 20 28 75 73 75  61 6c 6c 79 20 70 72 65  |ata (usually pre|
00007100  73 65 6e 74 65 64 20 61  73 20 61 20 68 65 78 20  |sented as a hex |
00007110  62 79 74 65 2c 20 69 65  2e 20 26 58 58 29 2c 0a  |byte, ie. &XX),.|
00007120  77 68 69 63 68 20 69 73  20 73 6f 6d 65 74 69 6d  |which is sometim|
00007130  65 73 20 74 72 65 61 74  65 64 20 61 73 20 74 77  |es treated as tw|
00007140  6f 20 73 65 70 65 72 61  74 65 20 6e 69 62 62 6c  |o seperate nibbl|
00007150  65 73 20 28 69 65 2e 20  61 72 70 65 67 67 69 6f  |es (ie. arpeggio|
00007160  29 2e 0a 20 41 20 6c 69  73 74 20 6f 66 20 74 68  |).. A list of th|
00007170  65 20 63 6f 6d 6d 61 6e  64 73 20 66 6f 75 6e 64  |e commands found|
00007180  20 69 6e 20 54 72 61 63  6b 65 72 2f 53 54 72 61  | in Tracker/STra|
00007190  63 6b 65 72 20 74 75 6e  65 73 20 69 73 20 61 73  |cker tunes is as|
000071a0  20 66 6f 6c 6c 6f 77 73  3a 0a 0a 20 43 6f 6d 6d  | follows:.. Comm|
000071b0  61 6e 64 20 20 20 20 45  66 66 65 63 74 0a 20 2d  |and    Effect. -|
000071c0  2d 2d 2d 2d 2d 2d 20 20  20 20 2d 2d 2d 2d 2d 2d  |------    ------|
000071d0  0a 20 30 20 28 62 6f 74  68 29 20 20 20 41 72 70  |. 0 (both)   Arp|
000071e0  65 67 67 69 6f 20 2d 0a  20 20 20 20 20 20 20 20  |eggio -.        |
000071f0  20 20 20 20 20 20 20 20  20 6e 6f 74 65 32 3d 62  |         note2=b|
00007200  61 73 65 20 6e 6f 74 65  2b 28 66 69 72 73 74 20  |ase note+(first |
00007210  64 69 67 69 74 20 6f 66  20 64 61 74 61 29 20 73  |digit of data) s|
00007220  65 6d 69 74 6f 6e 65 73  0a 20 20 20 20 20 20 20  |emitones.       |
00007230  20 20 20 20 20 20 20 20  20 20 6e 6f 74 65 33 3d  |          note3=|
00007240  20 22 20 20 20 20 20 22  20 2b 28 73 65 63 6f 6e  | "     " +(secon|
00007250  64 20 22 20 20 20 20 22  20 20 20 22 20 20 29 20  |d "    "   "  ) |
00007260  20 20 22 0a 20 20 20 20  20 20 20 20 20 20 20 20  |  ".            |
00007270  20 20 20 50 6c 61 79 20  6e 6f 74 65 33 20 66 6f  |   Play note3 fo|
00007280  72 20 6f 6e 65 20 76 73  79 6e 63 2c 20 74 68 65  |r one vsync, the|
00007290  6e 20 6e 6f 74 65 32 2c  20 62 61 73 65 20 6e 6f  |n note2, base no|
000072a0  74 65 2c 20 6e 6f 74 65  33 2c 20 6e 6f 74 65 32  |te, note3, note2|
000072b0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000072c0  61 6e 64 20 74 68 65 6e  20 74 68 65 20 62 61 73  |and then the bas|
000072d0  65 20 6e 6f 74 65 20 74  6f 20 61 63 68 69 65 76  |e note to achiev|
000072e0  65 20 61 20 63 68 6f 72  64 20 65 66 66 65 63 74  |e a chord effect|
000072f0  20 28 69 65 2e 20 43 2d  32 0a 20 20 20 20 20 20  | (ie. C-2.      |
00007300  20 20 20 20 20 20 20 20  20 77 69 74 68 20 63 6f  |         with co|
00007310  6d 6d 61 6e 64 20 30 20  64 61 74 61 20 27 26 34  |mmand 0 data '&4|
00007320  37 27 20 28 68 65 78 29  20 77 6f 75 6c 64 20 70  |7' (hex) would p|
00007330  6c 61 79 20 61 20 6d 61  6a 6f 72 0a 20 20 20 20  |lay a major.    |
00007340  20 20 20 20 20 20 20 20  20 20 20 61 72 70 65 67  |           arpeg|
00007350  67 69 6f 20 6f 66 20 43  2d 32 2c 20 45 2d 32 2c  |gio of C-2, E-2,|
00007360  20 47 2d 32 2e 20 20 20  20 49 66 20 74 68 65 20  | G-2.    If the |
00007370  73 70 65 65 64 20 69 73  20 6c 65 73 73 20 74 68  |speed is less th|
00007380  61 6e 20 36 2c 0a 20 20  20 20 20 20 20 20 20 20  |an 6,.          |
00007390  20 20 20 20 20 74 68 65  20 61 72 70 65 67 67 69  |     the arpeggi|
000073a0  6f 20 77 69 6c 6c 20 62  65 20 63 75 74 20 73 68  |o will be cut sh|
000073b0  6f 72 74 2e 0a 20 31 20  28 62 6f 74 68 29 20 20  |ort.. 1 (both)  |
000073c0  20 50 69 74 63 68 20 73  6c 69 64 65 20 28 70 6f  | Pitch slide (po|
000073d0  72 74 61 6d 65 6e 74 6f  20 75 70 29 20 2d 0a 20  |rtamento up) -. |
000073e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 77 68  |              wh|
000073f0  69 6c 65 20 74 68 65 20  63 6f 6d 6d 61 6e 64 20  |ile the command |
00007400  69 73 20 70 6c 61 79 69  6e 67 2c 20 44 45 43 52  |is playing, DECR|
00007410  45 4d 45 4e 54 20 74 68  65 20 73 61 6d 70 6c 65  |EMENT the sample|
00007420  20 70 65 72 69 6f 64 20  62 79 0a 20 20 20 20 20  | period by.     |
00007430  20 20 20 20 20 20 20 20  20 20 3c 70 61 72 61 6d  |          <param|
00007440  65 74 65 72 3e 20 28 30  2d 31 35 20 75 73 75 61  |eter> (0-15 usua|
00007450  6c 6c 79 29 2e 20 54 68  69 73 20 68 61 73 20 74  |lly). This has t|
00007460  68 65 20 65 66 66 65 63  74 20 6f 66 20 49 4e 43  |he effect of INC|
00007470  52 45 41 53 49 4e 47 0a  20 20 20 20 20 20 20 20  |REASING.        |
00007480  20 20 20 20 20 20 20 74  68 65 20 70 69 74 63 68  |       the pitch|
00007490  20 73 6d 6f 6f 74 68 6c  79 20 77 69 74 68 6f 75  | smoothly withou|
000074a0  74 20 72 65 73 74 61 72  74 69 6e 67 20 74 68 65  |t restarting the|
000074b0  20 73 61 6d 70 6c 65 2e  20 4e 6f 74 65 20 74 68  | sample. Note th|
000074c0  61 74 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |at.             |
000074d0  20 20 74 68 65 20 70 69  74 63 68 20 67 61 69 6e  |  the pitch gain|
000074e0  65 64 20 62 79 20 61 20  66 69 78 65 64 20 63 68  |ed by a fixed ch|
000074f0  61 6e 67 65 20 74 6f 20  74 68 65 20 73 61 6d 70  |ange to the samp|
00007500  6c 65 20 70 65 72 69 6f  64 20 69 73 20 6e 6f 74  |le period is not|
00007510  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00007520  63 6f 6e 73 74 61 6e 74  20 6f 76 65 72 20 74 68  |constant over th|
00007530  65 20 33 20 6f 63 74 61  76 65 73 2e 0a 20 32 20  |e 3 octaves.. 2 |
00007540  28 62 6f 74 68 29 20 20  20 50 69 74 63 68 20 73  |(both)   Pitch s|
00007550  6c 69 64 65 20 28 70 6f  72 74 61 6d 65 6e 74 6f  |lide (portamento|
00007560  20 64 6f 77 6e 29 20 2d  0a 20 20 20 20 20 20 20  | down) -.       |
00007570  20 20 20 20 20 20 20 20  6c 69 6b 65 20 63 6f 6d  |        like com|
00007580  6d 61 6e 64 20 31 20 62  75 74 20 73 6c 69 64 65  |mand 1 but slide|
00007590  73 20 74 68 65 20 70 69  74 63 68 20 64 6f 77 6e  |s the pitch down|
000075a0  2e 0a 20 33 20 28 61 6d  69 67 61 20 6f 6e 6c 79  |.. 3 (amiga only|
000075b0  29 20 20 20 50 6f 72 74  61 6d 65 6e 74 6f 20 2d  |)   Portamento -|
000075c0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000075d0  53 6f 75 6e 64 73 20 73  69 6d 69 6c 61 72 20 74  |Sounds similar t|
000075e0  6f 20 63 6f 6d 6d 61 6e  64 73 20 31 20 26 20 32  |o commands 1 & 2|
000075f0  2c 20 62 75 74 20 62 65  68 61 76 65 73 20 64 69  |, but behaves di|
00007600  66 66 65 72 65 6e 74 6c  79 2e 0a 20 20 20 20 20  |fferently..     |
00007610  20 20 20 20 20 20 20 20  20 20 57 68 65 6e 20 79  |          When y|
00007620  6f 75 20 75 73 65 20 63  6f 6d 6d 61 6e 64 20 33  |ou use command 3|
00007630  20 77 69 74 68 20 61 20  6e 6f 74 65 20 73 70 65  | with a note spe|
00007640  63 69 66 69 65 64 2c 20  74 68 65 20 6e 6f 74 65  |cified, the note|
00007650  20 69 73 20 6e 6f 74 0a  20 20 20 20 20 20 20 20  | is not.        |
00007660  20 20 20 20 20 20 20 70  6c 61 79 65 64 2c 20 62  |       played, b|
00007670  75 74 20 74 68 65 20 70  69 74 63 68 20 6f 66 20  |ut the pitch of |
00007680  74 68 65 20 6e 6f 74 65  20 69 73 20 73 65 74 20  |the note is set |
00007690  61 73 20 74 68 65 20 27  67 6f 61 6c 27 20 6f 66  |as the 'goal' of|
000076a0  20 74 68 65 0a 20 20 20  20 20 20 20 20 20 20 20  | the.           |
000076b0  20 20 20 20 70 6f 72 74  61 6d 65 6e 74 6f 2e 20  |    portamento. |
000076c0  54 68 65 6e 2c 20 77 68  65 6e 65 76 65 72 20 61  |Then, whenever a|
000076d0  20 63 6f 6d 6d 61 6e 64  20 33 20 63 6f 6d 65 73  | command 3 comes|
000076e0  20 75 70 2c 20 74 68 65  20 70 69 74 63 68 20 69  | up, the pitch i|
000076f0  73 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |s.              |
00007700  20 61 75 74 6f 6d 61 74  69 63 61 6c 6c 79 20 73  | automatically s|
00007710  6c 69 64 65 64 20 69 6e  20 74 68 65 20 61 70 70  |lided in the app|
00007720  72 6f 70 72 69 61 74 65  20 64 69 72 65 63 74 69  |ropriate directi|
00007730  6f 6e 20 62 79 20 74 68  65 20 76 61 6c 75 65 0a  |on by the value.|
00007740  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 6c  |               l|
00007750  61 73 74 20 67 69 76 65  6e 20 61 73 20 61 20 70  |ast given as a p|
00007760  61 72 61 6d 65 74 65 72  20 66 6f 72 20 63 6f 6d  |arameter for com|
00007770  6d 61 6e 64 20 33 2c 20  75 6e 74 69 6c 20 74 68  |mand 3, until th|
00007780  65 20 27 67 6f 61 6c 27  20 69 73 0a 20 20 20 20  |e 'goal' is.    |
00007790  20 20 20 20 20 20 20 20  20 20 20 6d 65 74 2c 20  |           met, |
000077a0  61 6e 64 20 66 75 72 74  68 65 72 20 63 6f 6d 6d  |and further comm|
000077b0  61 6e 64 20 33 27 73 20  77 69 6c 6c 20 68 61 76  |and 3's will hav|
000077c0  65 20 6e 6f 20 65 66 66  65 63 74 2e 0a 20 34 20  |e no effect.. 4 |
000077d0  28 61 6d 69 67 61 20 6f  6e 6c 79 29 20 20 56 69  |(amiga only)  Vi|
000077e0  62 72 61 74 6f 20 2d 0a  20 20 20 20 20 20 20 20  |brato -.        |
000077f0  20 20 20 20 20 20 20 54  68 69 73 20 63 61 75 73  |       This caus|
00007800  65 73 20 74 68 65 20 70  69 74 63 68 20 74 6f 20  |es the pitch to |
00007810  72 69 73 65 20 61 6e 64  20 66 61 6c 6c 20 69 6e  |rise and fall in|
00007820  20 61 20 77 61 72 62 6c  69 6e 67 20 65 66 66 65  | a warbling effe|
00007830  63 74 2e 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ct..            |
00007840  20 20 20 54 68 65 20 66  69 72 73 74 20 64 69 67  |   The first dig|
00007850  69 74 20 67 69 76 65 73  20 74 68 65 20 73 70 65  |it gives the spe|
00007860  65 64 20 6f 66 20 74 68  65 20 70 69 74 63 68 20  |ed of the pitch |
00007870  63 68 61 6e 67 65 20 28  31 3d 73 6c 6f 77 2c 0a  |change (1=slow,.|
00007880  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 26  |               &|
00007890  46 3d 66 61 73 74 29 2c  20 61 6e 64 20 74 68 65  |F=fast), and the|
000078a0  20 73 65 63 6f 6e 64 20  64 69 67 69 74 20 67 69  | second digit gi|
000078b0  76 65 73 20 74 68 65 20  6d 61 67 6e 69 74 75 64  |ves the magnitud|
000078c0  65 20 6f 66 20 74 68 65  0a 20 20 20 20 20 20 20  |e of the.       |
000078d0  20 20 20 20 20 20 20 20  76 69 62 72 61 74 6f 2e  |        vibrato.|
000078e0  20 54 68 65 20 76 69 62  72 61 74 6f 20 69 73 20  | The vibrato is |
000078f0  63 72 65 61 74 65 64 20  62 79 20 61 6c 74 65 72  |created by alter|
00007900  69 6e 67 20 74 68 65 20  70 69 74 63 68 20 6f 66  |ing the pitch of|
00007910  20 74 68 65 0a 20 20 20  20 20 20 20 20 20 20 20  | the.           |
00007920  20 20 20 20 63 68 61 6e  6e 65 6c 20 62 79 20 61  |    channel by a|
00007930  20 73 69 6e 75 73 6f 69  64 61 6c 6c 79 20 76 61  | sinusoidally va|
00007940  72 79 69 6e 67 20 61 6d  6f 75 6e 74 20 28 2d 76  |rying amount (-v|
00007950  65 20 61 6e 64 20 2b 76  65 29 2e 0a 20 35 2c 36  |e and +ve).. 5,6|
00007960  2c 37 20 28 61 6d 69 67  61 29 20 20 43 6f 6d 62  |,7 (amiga)  Comb|
00007970  69 6e 61 74 69 6f 6e 73  20 6f 66 20 74 68 65 20  |inations of the |
00007980  76 6f 6c 75 6d 65 20 61  6e 64 20 70 69 74 63 68  |volume and pitch|
00007990  20 73 6c 69 64 65 73 20  28 4e 6f 74 20 69 6d 70  | slides (Not imp|
000079a0  6c 65 6d 65 6e 74 65 64  29 0a 20 39 20 28 61 6d  |lemented). 9 (am|
000079b0  69 67 61 20 6f 6e 6c 79  29 20 53 65 74 20 73 61  |iga only) Set sa|
000079c0  6d 70 6c 65 20 6f 66 66  73 65 74 20 28 4e 6f 74  |mple offset (Not|
000079d0  20 69 6d 70 6c 65 6d 65  6e 74 65 64 29 2e 0a 20  | implemented).. |
000079e0  41 20 28 61 6d 69 67 61  29 20 20 20 20 20 56 6f  |A (amiga)     Vo|
000079f0  6c 75 6d 65 20 73 6c 69  64 65 20 2d 0a 20 20 20  |lume slide -.   |
00007a00  20 20 20 20 20 20 20 20  20 20 20 20 49 66 20 74  |            If t|
00007a10  68 65 20 66 69 72 73 74  20 6e 69 62 62 6c 65 20  |he first nibble |
00007a20  69 73 20 6e 6f 6e 2d 7a  65 72 6f 2c 20 61 64 64  |is non-zero, add|
00007a30  20 74 68 69 73 20 76 61  6c 75 65 20 74 6f 20 74  | this value to t|
00007a40  68 65 20 63 75 72 72 65  6e 74 0a 20 20 20 20 20  |he current.     |
00007a50  20 20 20 20 20 20 20 20  20 20 76 6f 6c 75 6d 65  |          volume|
00007a60  20 65 76 65 72 79 20 76  73 79 6e 63 2c 20 65 6c  | every vsync, el|
00007a70  73 65 20 73 75 62 74 72  61 63 74 20 74 68 65 20  |se subtract the |
00007a80  73 65 63 6f 6e 64 20 6e  69 62 62 6c 65 20 69 6e  |second nibble in|
00007a90  20 61 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  | a.             |
00007aa0  20 20 73 69 6d 69 6c 61  72 20 66 61 73 68 69 6f  |  similar fashio|
00007ab0  6e 2e 0a 20 47 2c 20 48  20 28 54 72 61 63 6b 65  |n.. G, H (Tracke|
00007ac0  72 29 20 56 6f 6c 75 6d  65 20 73 6c 69 64 65 20  |r) Volume slide |
00007ad0  75 70 2c 20 64 6f 77 6e  20 2d 0a 20 20 20 20 20  |up, down -.     |
00007ae0  20 20 20 20 20 20 20 20  20 20 54 68 65 73 65 20  |          These |
00007af0  63 6f 6d 6d 61 6e 64 73  20 61 72 65 20 74 68 65  |commands are the|
00007b00  20 73 61 6d 65 20 61 73  20 74 68 65 20 41 20 63  | same as the A c|
00007b10  6f 6d 6d 61 6e 64 20 6f  6e 20 74 68 65 20 61 6d  |ommand on the am|
00007b20  69 67 61 2c 20 62 75 74  0a 20 20 20 20 20 20 20  |iga, but.       |
00007b30  20 20 20 20 20 20 20 20  74 61 6b 65 20 61 20 62  |        take a b|
00007b40  79 74 65 20 70 61 72 61  6d 65 74 65 72 2e 0a 20  |yte parameter.. |
00007b50  42 20 28 61 6d 69 67 61  29 2c 20 4a 20 28 54 72  |B (amiga), J (Tr|
00007b60  61 63 6b 65 72 29 20 20  50 6f 73 69 74 69 6f 6e  |acker)  Position|
00007b70  20 6a 75 6d 70 20 2d 0a  20 20 20 20 20 20 20 20  | jump -.        |
00007b80  20 20 20 20 20 20 20 57  68 65 6e 20 74 68 69 73  |       When this|
00007b90  20 63 6f 6d 6d 61 6e 64  20 69 73 20 6d 65 74 2c  | command is met,|
00007ba0  20 6a 75 6d 70 20 74 6f  20 70 6f 73 69 74 69 6f  | jump to positio|
00007bb0  6e 20 3c 70 61 72 61 6d  65 74 65 72 3e 20 69 6e  |n <parameter> in|
00007bc0  20 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  | .              |
00007bd0  20 73 6f 6e 67 2e 0a 20  42 20 28 54 72 61 63 6b  | song.. B (Track|
00007be0  65 72 29 20 42 72 65 61  6b 20 70 61 74 74 65 72  |er) Break patter|
00007bf0  6e 20 2d 0a 20 20 20 20  20 20 20 20 20 20 20 20  |n -.            |
00007c00  20 20 20 3d 61 6d 69 67  61 20 63 6f 6d 6d 61 6e  |   =amiga comman|
00007c10  64 20 44 0a 20 43 20 28  61 6d 69 67 61 29 2c 20  |d D. C (amiga), |
00007c20  56 20 28 54 72 61 63 6b  65 72 29 20 20 53 65 74  |V (Tracker)  Set|
00007c30  20 76 6f 6c 75 6d 65 20  2d 0a 20 20 20 20 20 20  | volume -.      |
00007c40  20 20 20 20 20 20 20 20  20 41 6c 74 65 72 73 20  |         Alters |
00007c50  74 68 65 20 63 75 72 72  65 6e 74 20 76 6f 6c 75  |the current volu|
00007c60  6d 65 20 6f 66 20 74 68  65 20 63 68 61 6e 6e 65  |me of the channe|
00007c70  6c 20 74 6f 20 74 68 65  20 76 61 6c 75 65 20 73  |l to the value s|
00007c80  70 65 63 2d 0a 20 20 20  20 20 20 20 20 20 20 20  |pec-.           |
00007c90  20 20 20 20 69 66 69 65  64 20 28 30 2d 36 34 20  |    ified (0-64 |
00007ca0  61 6d 69 67 61 2c 20 30  2d 32 35 35 20 61 72 63  |amiga, 0-255 arc|
00007cb0  29 2e 20 56 6f 6c 75 6d  65 20 30 20 6d 65 61 6e  |). Volume 0 mean|
00007cc0  73 20 6d 75 74 65 20 73  6f 75 6e 64 2e 0a 20 44  |s mute sound.. D|
00007cd0  20 28 61 6d 69 67 61 29  2c 20 42 20 28 54 72 61  | (amiga), B (Tra|
00007ce0  63 6b 65 72 29 20 20 42  72 65 61 6b 20 70 61 74  |cker)  Break pat|
00007cf0  74 65 72 6e 20 2d 0a 20  20 20 20 20 20 20 20 20  |tern -.         |
00007d00  20 20 20 20 20 20 57 68  65 6e 20 74 68 69 73 20  |      When this |
00007d10  63 6f 6d 6d 61 6e 64 20  69 73 20 65 6e 63 6f 75  |command is encou|
00007d20  6e 74 65 72 65 64 2c 20  74 68 65 20 70 61 74 74  |ntered, the patt|
00007d30  65 72 6e 20 69 73 20 65  6e 64 65 64 2c 20 61 6e  |ern is ended, an|
00007d40  64 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |d.              |
00007d50  20 74 68 65 20 6e 65 78  74 20 70 61 74 74 65 72  | the next patter|
00007d60  6e 20 6a 75 6d 70 65 64  20 74 6f 2e 0a 20 45 20  |n jumped to.. E |
00007d70  28 61 6d 69 67 61 29 20  20 20 56 61 72 69 6f 75  |(amiga)   Variou|
00007d80  73 20 63 6f 6d 6d 61 6e  64 73 20 28 69 65 2e 20  |s commands (ie. |
00007d90  68 2f 77 20 66 69 6c 74  65 72 20 63 6f 6d 6d 61  |h/w filter comma|
00007da0  6e 64 73 29 20 5b 4e 6f  74 20 69 6d 70 6c 65 6d  |nds) [Not implem|
00007db0  65 6e 74 65 64 5d 2e 0a  20 45 20 28 54 72 61 63  |ented].. E (Trac|
00007dc0  6b 65 72 29 20 53 65 74  20 73 74 65 72 65 6f 20  |ker) Set stereo |
00007dd0  2d 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |-.              |
00007de0  20 53 65 74 20 74 68 65  20 73 74 65 72 65 6f 20  | Set the stereo |
00007df0  70 6f 73 69 74 69 6f 6e  20 28 31 2d 37 29 20 6f  |position (1-7) o|
00007e00  66 20 74 68 65 20 63 75  72 72 65 6e 74 20 73 6f  |f the current so|
00007e10  75 6e 64 20 63 68 61 6e  6e 65 6c 0a 20 20 20 20  |und channel.    |
00007e20  20 20 20 20 20 20 20 20  20 20 20 28 31 2d 38 29  |           (1-8)|
00007e30  2e 0a 20 46 20 28 61 6d  69 67 61 29 2c 20 53 20  |.. F (amiga), S |
00007e40  28 54 72 61 63 6b 65 72  29 20 20 53 65 74 20 73  |(Tracker)  Set s|
00007e50  70 65 65 64 20 2d 0a 20  20 20 20 20 20 20 20 20  |peed -.         |
00007e60  20 20 20 20 20 20 53 65  74 73 20 74 68 65 20 73  |      Sets the s|
00007e70  70 65 65 64 20 28 6e 75  6d 62 65 72 20 6f 66 20  |peed (number of |
00007e80  76 73 79 6e 63 73 20 62  65 74 77 65 65 6e 20 65  |vsyncs between e|
00007e90  76 65 6e 74 73 29 20 74  6f 20 3c 70 61 72 61 6d  |vents) to <param|
00007ea0  2e 3e 2e 0a 20 20 20 20  0a 0a 3d 3d 3d 3d 3d 3d  |.>..    ..======|
00007eb0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00007ef0  3d 3d 3d 3d 3d 3d 3d 0a  20 20 20 20 20 20 20 20  |=======.        |
00007f00  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00007f10  20 20 20 20 20 20 20 0a  45 72 72 6f 72 73 0a 2d  |       .Errors.-|
00007f20  2d 2d 2d 2d 2d 20 20 20  20 20 20 20 20 20 20 20  |-----           |
00007f30  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00007f50  20 20 20 20 20 20 20 20  20 0a 0a 54 68 65 20 65  |         ..The e|
00007f60  72 72 6f 72 20 6e 75 6d  62 65 72 73 20 61 6e 64  |rror numbers and|
00007f70  20 6d 65 73 73 61 67 65  73 20 77 68 69 63 68 20  | messages which |
00007f80  74 68 65 20 74 72 61 63  6b 65 72 6d 6f 64 75 6c  |the trackermodul|
00007f90  65 20 6d 61 79 20 67 65  6e 65 72 61 74 65 3a 0a  |e may generate:.|
00007fa0  0a 4e 6f 20 74 75 6e 65  20 6c 6f 61 64 65 64 20  |.No tune loaded |
00007fb0  20 20 20 20 20 20 20 28  26 34 33 32 30 30 29 20  |       (&43200) |
00007fc0  2d 20 61 6e 20 6f 70 65  72 61 74 69 6f 6e 20 77  |- an operation w|
00007fd0  61 73 20 61 74 74 65 6d  70 74 65 64 20 77 68 69  |as attempted whi|
00007fe0  63 68 20 72 65 71 75 69  72 65 73 20 61 0a 20 20  |ch requires a.  |
00007ff0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008000  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 74  |               t|
00008010  75 6e 65 20 74 6f 20 62  65 20 6c 6f 61 64 65 64  |une to be loaded|
00008020  20 69 6e 74 6f 20 6d 65  6d 6f 72 79 20 62 65 66  | into memory bef|
00008030  6f 72 65 68 61 6e 64 0a  20 20 20 20 20 20 20 20  |orehand.        |
00008040  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008050  20 20 20 20 20 20 20 20  20 75 73 69 6e 67 20 2a  |         using *|
00008060  50 6c 61 79 4d 6f 64 20  6f 72 20 53 57 49 20 54  |PlayMod or SWI T|
00008070  72 61 63 6b 65 72 5f 4c  6f 61 64 2e 0a 0a 53 65  |racker_Load...Se|
00008080  71 75 65 6e 63 65 20 70  6f 73 69 74 69 6f 6e 20  |quence position |
00008090  6f 75 74 20 6f 66 20 72  61 6e 67 65 20 2d 20 54  |out of range - T|
000080a0  68 65 20 73 65 71 75 65  6e 63 65 20 70 6f 73 69  |he sequence posi|
000080b0  74 69 6f 6e 20 67 69 76  65 6e 20 77 69 74 68 20  |tion given with |
000080c0  2a 50 6c 61 79 50 6f 73  0a 20 20 20 20 20 20 20  |*PlayPos.       |
000080d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 28  |               (|
000080e0  26 34 33 32 30 31 29 20  20 20 6f 72 20 53 57 49  |&43201)   or SWI|
000080f0  20 54 72 61 63 6b 65 72  5f 53 65 74 50 6f 73 20  | Tracker_SetPos |
00008100  77 61 73 20 68 69 67 68  65 72 20 74 68 61 6e 20  |was higher than |
00008110  74 68 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |the.            |
00008120  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008130  20 20 20 20 20 61 63 74  75 61 6c 20 6e 75 6d 62  |     actual numb|
00008140  65 72 20 6f 66 20 70 61  74 74 65 72 6e 73 20 69  |er of patterns i|
00008150  6e 20 74 68 65 20 73 6f  6e 67 2e 0a 0a 4e 6f 20  |n the song...No |
00008160  72 6f 6f 6d 20 66 6f 72  20 6d 6f 64 75 6c 65 20  |room for module |
00008170  20 20 20 28 26 34 33 32  30 32 29 20 2d 20 54 68  |   (&43202) - Th|
00008180  65 20 74 72 61 63 6b 65  72 6d 6f 64 75 6c 65 20  |e trackermodule |
00008190  63 6f 75 6c 64 20 6e 6f  74 20 63 6c 61 69 6d 20  |could not claim |
000081a0  65 6e 6f 75 67 68 0a 20  20 20 20 20 20 20 20 20  |enough.         |
000081b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000081c0  20 20 20 20 20 20 20 20  52 4d 41 20 77 6f 72 6b  |        RMA work|
000081d0  73 70 61 63 65 20 74 6f  20 6c 6f 61 64 20 74 68  |space to load th|
000081e0  65 20 6d 6f 64 75 6c 65  2e 20 54 6f 20 67 65 74  |e module. To get|
000081f0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00008200  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008210  20 20 6d 6f 72 65 20 6d  65 6d 6f 72 79 2c 20 71  |  more memory, q|
00008220  75 69 74 20 62 61 73 69  63 20 74 6f 20 74 68 65  |uit basic to the|
00008230  20 73 75 70 65 72 76 69  73 6f 72 0a 20 20 20 20  | supervisor.    |
00008240  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008250  20 20 20 20 20 20 20 20  20 20 20 20 20 70 72 6f  |             pro|
00008260  6d 70 74 2c 20 61 6e 64  20 72 65 74 72 79 2e 20  |mpt, and retry. |
00008270  49 66 20 79 6f 75 20 61  72 65 20 75 73 69 6e 67  |If you are using|
00008280  20 74 68 65 0a 20 20 20  20 20 20 20 20 20 20 20  | the.           |
00008290  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000082a0  20 20 20 20 20 20 64 65  73 6b 74 6f 70 20 69 6e  |      desktop in|
000082b0  73 74 65 61 64 2c 20 72  65 6d 6f 76 65 20 61 6e  |stead, remove an|
000082c0  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 61 6e 64  | application and|
000082d0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000082e0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000082f0  20 20 72 65 74 72 79 2e  0a 0a 43 68 61 6e 6e 65  |  retry...Channe|
00008300  6c 20 6e 75 6d 62 65 72  20 6f 75 74 20 6f 66 20  |l number out of |
00008310  72 61 6e 67 65 20 20 20  20 2d 20 54 68 65 20 73  |range    - The s|
00008320  6f 75 6e 64 20 63 68 61  6e 6e 65 6c 20 6e 75 6d  |ound channel num|
00008330  62 65 72 20 77 61 73 20  6e 6f 74 20 61 20 76 61  |ber was not a va|
00008340  6c 75 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |lue.            |
00008350  20 20 20 20 20 20 20 20  20 20 28 26 34 33 32 30  |          (&4320|
00008360  33 29 20 20 20 62 65 74  77 65 65 6e 20 31 20 61  |3)   between 1 a|
00008370  6e 64 20 74 68 65 20 6e  75 6d 62 65 72 20 6f 66  |nd the number of|
00008380  20 73 6f 75 6e 64 20 63  68 61 6e 6e 65 6c 73 0a  | sound channels.|
00008390  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
000083b0  20 75 73 65 64 20 66 6f  72 20 74 68 61 74 20 70  | used for that p|
000083c0  61 72 74 69 63 75 6c 61  72 20 74 75 6e 65 2e 0a  |articular tune..|
000083d0  0a 53 61 6d 70 6c 65 20  6e 75 6d 62 65 72 20 6f  |.Sample number o|
000083e0  75 74 20 6f 66 20 72 61  6e 67 65 20 20 20 20 20  |ut of range     |
000083f0  2d 20 54 68 65 20 73 61  6d 70 6c 65 20 6e 75 6d  |- The sample num|
00008400  62 65 72 20 77 61 73 20  6e 6f 74 20 77 69 74 68  |ber was not with|
00008410  69 6e 20 74 68 65 20 72  61 6e 67 65 0a 20 20 20  |in the range.   |
00008420  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008430  20 20 20 28 26 34 33 32  30 34 29 20 20 20 6f 66  |   (&43204)   of|
00008440  20 31 2d 33 36 2e 0a 0a  4e 6f 74 65 20 6e 75 6d  | 1-36...Note num|
00008450  62 65 72 20 6f 75 74 20  6f 66 20 72 61 6e 67 65  |ber out of range|
00008460  20 20 20 20 20 20 20 2d  20 54 68 65 20 6e 6f 74  |       - The not|
00008470  65 20 6e 75 6d 62 65 72  20 77 61 73 20 6e 6f 74  |e number was not|
00008480  20 77 69 74 68 69 6e 20  74 68 65 20 72 61 6e 67  | within the rang|
00008490  65 20 6f 66 0a 20 20 20  20 20 20 20 20 20 20 20  |e of.           |
000084a0  20 20 20 20 20 20 20 20  20 20 20 28 26 34 33 32  |           (&432|
000084b0  30 35 29 20 20 20 31 2d  33 36 2e 0a 0a 56 6f 6c  |05)   1-36...Vol|
000084c0  75 6d 65 20 6f 75 74 20  6f 66 20 72 61 6e 67 65  |ume out of range|
000084d0  20 20 20 28 26 34 33 32  30 36 29 20 2d 20 54 68  |   (&43206) - Th|
000084e0  65 20 76 6f 6c 75 6d 65  20 77 61 73 20 6e 6f 74  |e volume was not|
000084f0  20 77 69 74 68 69 6e 20  74 68 65 20 72 61 6e 67  | within the rang|
00008500  65 20 6f 66 20 30 2d 32  35 35 0a 0a 4d 6f 64 75  |e of 0-255..Modu|
00008510  6c 65 20 61 6c 72 65 61  64 79 20 6c 6f 63 6b 65  |le already locke|
00008520  64 20 28 26 34 33 32 30  37 29 20 2d 20 54 72 61  |d (&43207) - Tra|
00008530  63 6b 65 72 5f 4c 6f 63  6b 20 77 61 73 20 63 61  |cker_Lock was ca|
00008540  6c 6c 65 64 20 77 68 65  6e 20 74 68 65 20 6d 6f  |lled when the mo|
00008550  64 75 6c 65 0a 20 20 20  20 20 20 20 20 20 20 20  |dule.           |
00008560  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008570  20 20 20 20 20 20 77 61  73 20 61 6c 72 65 61 64  |      was alread|
00008580  79 20 6c 6f 63 6b 65 64  2e 20 54 68 65 20 6d 6f  |y locked. The mo|
00008590  64 75 6c 65 20 63 61 6e  20 6f 6e 6c 79 20 62 65  |dule can only be|
000085a0  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
000085b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000085c0  20 20 75 6e 6c 6f 63 6b  65 64 20 77 68 65 6e 20  |  unlocked when |
000085d0  74 68 65 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |the application |
000085e0  69 6e 20 63 6f 6e 74 72  6f 6c 20 6f 66 0a 20 20  |in control of.  |
000085f0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008600  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 74  |               t|
00008610  68 65 20 6d 6f 64 75 6c  65 20 69 73 73 75 65 73  |he module issues|
00008620  20 61 20 54 72 61 63 6b  65 72 5f 55 6e 6c 6f 63  | a Tracker_Unloc|
00008630  6b 20 53 57 49 2e 0a 0a  55 6e 6c 6f 63 6b 20 66  |k SWI...Unlock f|
00008640  61 69 6c 65 64 20 20 20  20 20 20 20 20 20 28 26  |ailed         (&|
00008650  34 33 32 30 38 29 20 2d  20 54 72 61 63 6b 65 72  |43208) - Tracker|
00008660  5f 55 6e 6c 6f 63 6b 20  77 61 73 20 63 61 6c 6c  |_Unlock was call|
00008670  65 64 20 62 75 74 20 65  69 74 68 65 72 0a 20 20  |ed but either.  |
00008680  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008690  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 74  |               t|
000086a0  68 65 20 77 72 6f 6e 67  20 6c 6f 63 6b 69 6e 67  |he wrong locking|
000086b0  20 63 6f 64 65 20 77 61  73 20 73 70 65 63 69 66  | code was specif|
000086c0  69 65 64 2c 20 6f 72 0a  20 20 20 20 20 20 20 20  |ied, or.        |
000086d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000086e0  20 20 20 20 20 20 20 20  20 74 68 65 20 6d 6f 64  |         the mod|
000086f0  75 6c 65 20 77 61 73 20  6e 6f 74 20 6c 6f 63 6b  |ule was not lock|
00008700  65 64 20 61 74 20 74 68  65 20 74 69 6d 65 2e 0a  |ed at the time..|
00008710  0a 54 72 61 63 6b 65 72  4d 6f 64 75 6c 65 20 69  |.TrackerModule i|
00008720  6e 20 75 73 65 20 20 28  26 34 33 32 30 39 29 20  |n use  (&43209) |
00008730  2d 20 41 6e 20 61 74 74  65 6d 70 74 20 77 61 73  |- An attempt was|
00008740  20 6d 61 64 65 20 74 6f  20 65 78 65 63 75 74 65  | made to execute|
00008750  20 6f 6e 65 20 6f 66 20  74 68 65 0a 20 20 20 20  | one of the.    |
00008760  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008770  20 20 20 20 20 20 20 20  20 20 20 20 20 72 65 73  |             res|
00008780  74 72 69 63 74 65 64 20  63 6f 6d 6d 61 6e 64 73  |tricted commands|
00008790  20 6f 72 20 53 57 49 27  73 20 77 68 69 6c 65 20  | or SWI's while |
000087a0  74 68 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |the.            |
000087b0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000087c0  20 20 20 20 20 6d 6f 64  75 6c 65 20 77 61 73 20  |     module was |
000087d0  6c 6f 63 6b 65 64 20 28  73 65 65 20 54 72 61 63  |locked (see Trac|
000087e0  6b 65 72 5f 4c 6f 63 6b  29 0a 0a 53 70 65 65 64  |ker_Lock)..Speed|
000087f0  20 6e 6f 74 20 69 6d 70  6c 65 6d 65 6e 74 65 64  | not implemented|
00008800  20 28 26 34 33 32 30 41  29 20 2d 20 54 72 61 63  | (&4320A) - Trac|
00008810  6b 65 72 5f 53 70 65 65  64 20 77 61 73 20 63 61  |ker_Speed was ca|
00008820  6c 6c 65 64 20 77 69 74  68 20 52 30 20 6f 75 74  |lled with R0 out|
00008830  73 69 64 65 0a 20 20 20  20 20 20 20 20 20 20 20  |side.           |
00008840  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008850  20 20 20 20 20 20 74 68  65 20 72 61 6e 67 65 20  |      the range |
00008860  6f 66 20 76 61 6c 75 65  73 20 63 75 72 72 65 6e  |of values curren|
00008870  74 6c 79 20 61 63 63 65  70 74 65 64 2e 0a 0a 42  |tly accepted...B|
00008880  61 64 20 73 61 6d 70 6c  65 20 6c 6f 6f 70 69 6e  |ad sample loopin|
00008890  67 20 20 20 20 28 26 34  33 32 30 42 29 20 2d 20  |g    (&4320B) - |
000088a0  56 61 6c 75 65 73 20 6f  66 20 72 65 70 65 61 74  |Values of repeat|
000088b0  20 6f 66 66 73 65 74 2f  72 65 70 65 61 74 20 6c  | offset/repeat l|
000088c0  65 6e 67 74 68 20 77 6f  75 6c 64 0a 20 20 20 20  |ength would.    |
000088d0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
000088e0  20 20 20 20 20 20 20 20  20 20 20 20 20 63 61 75  |             cau|
000088f0  73 65 20 73 61 6d 70 6c  65 20 74 6f 20 6c 6f 6f  |se sample to loo|
00008900  70 20 6f 75 74 73 69 64  65 20 69 74 73 20 6c 69  |p outside its li|
00008910  6d 69 74 2e 0a 0a 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |mit...==========|
00008920  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00008960  3d 3d 3d 0a 0a 0a 54 68  69 73 20 6d 6f 64 75 6c  |===...This modul|
00008970  65 20 77 61 73 20 77 72  69 74 74 65 6e 20 66 6f  |e was written fo|
00008980  72 20 65 6e 74 68 75 73  69 61 73 74 73 20 77 68  |r enthusiasts wh|
00008990  6f 20 77 69 73 68 20 74  6f 20 65 6e 6a 6f 79 20  |o wish to enjoy |
000089a0  74 68 65 20 62 65 6e 65  66 69 74 73 20 6f 66 20  |the benefits of |
000089b0  74 68 65 0a 41 72 63 68  69 6d 65 64 65 73 20 73  |the.Archimedes s|
000089c0  6f 75 6e 64 20 73 79 73  74 65 6d 20 69 6e 20 61  |ound system in a|
000089d0  20 6d 75 6c 74 69 2d 74  61 73 6b 69 6e 67 20 65  | multi-tasking e|
000089e0  6e 76 69 72 6f 6e 6d 65  6e 74 2e 0a 0a 56 65 72  |nvironment...Ver|
000089f0  73 69 6f 6e 73 20 30 2e  30 30 20 74 6f 20 31 2e  |sions 0.00 to 1.|
00008a00  78 78 20 6f 66 20 74 68  65 20 6f 72 69 67 69 6e  |xx of the origin|
00008a10  61 6c 20 6d 6f 64 75 6c  65 20 77 65 72 65 20 77  |al module were w|
00008a20  72 69 74 74 65 6e 20 62  79 20 48 75 67 6f 20 46  |ritten by Hugo F|
00008a30  69 65 6e 6e 65 73 0a 20  20 20 20 20 20 20 20 20  |iennes.         |
00008a40  20 20 20 20 20 20 20 20  20 20 20 20 20 61 6c 6c  |             all|
00008a50  6f 77 69 6e 67 20 74 68  65 20 70 6c 61 79 69 6e  |owing the playin|
00008a60  67 20 6f 66 20 61 6e 79  20 73 6f 75 6e 64 74 72  |g of any soundtr|
00008a70  61 63 6b 65 72 20 74 75  6e 65 73 2e 0a 56 65 72  |acker tunes..Ver|
00008a80  73 69 6f 6e 73 20 32 2e  30 30 20 74 6f 20 32 2e  |sions 2.00 to 2.|
00008a90  78 78 20 77 65 72 65 20  77 72 69 74 74 65 6e 20  |xx were written |
00008aa0  62 79 20 46 61 62 72 69  63 65 20 4d 65 72 63 69  |by Fabrice Merci|
00008ab0  65 72 20 61 6e 64 20 48  75 67 6f 2c 0a 20 20 20  |er and Hugo,.   |
00008ac0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008ad0  20 20 20 70 6c 61 79 69  6e 67 20 61 6e 79 20 74  |   playing any t|
00008ae0  72 61 63 6b 65 72 20 74  75 6e 65 73 20 28 77 69  |racker tunes (wi|
00008af0  74 68 20 63 68 61 6e 67  65 73 2f 69 6d 70 72 6f  |th changes/impro|
00008b00  76 65 6d 65 6e 74 73 29  2e 0a 56 65 72 73 69 6f  |vements)..Versio|
00008b10  6e 73 20 33 2e 30 30 20  74 6f 20 34 2e 30 37 20  |ns 3.00 to 4.07 |
00008b20  77 65 72 65 20 77 72 69  74 74 65 6e 20 62 79 20  |were written by |
00008b30  4d 61 74 74 68 65 77 20  46 61 72 72 6f 77 20 74  |Matthew Farrow t|
00008b40  6f 20 61 6c 6c 6f 77 20  74 68 65 20 70 6c 61 79  |o allow the play|
00008b50  69 6e 67 20 6f 66 0a 20  20 20 20 20 20 20 20 20  |ing of.         |
00008b60  20 20 20 20 20 20 20 20  20 20 20 20 20 73 6f 75  |             sou|
00008b70  6e 64 74 72 61 63 6b 65  72 20 6f 72 20 74 72 61  |ndtracker or tra|
00008b80  63 6b 65 72 20 74 75 6e  65 73 2c 20 77 69 74 68  |cker tunes, with|
00008b90  20 74 68 65 20 53 57 49  20 65 78 74 65 6e 73 69  | the SWI extensi|
00008ba0  6f 6e 0a 20 20 20 20 20  20 20 20 20 20 20 20 20  |on.             |
00008bb0  20 20 20 20 20 20 20 20  20 66 72 6f 6d 20 76 65  |         from ve|
00008bc0  72 73 69 6f 6e 73 20 34  2e 30 30 20 6f 6e 77 61  |rsions 4.00 onwa|
00008bd0  72 64 73 2e 0a 0a 59 6f  75 20 63 61 6e 20 63 6f  |rds...You can co|
00008be0  6e 74 61 63 74 20 48 75  67 6f 20 69 6e 20 74 68  |ntact Hugo in th|
00008bf0  65 20 66 6f 6c 6c 6f 77  69 6e 67 20 77 61 79 73  |e following ways|
00008c00  3a 0a 56 6f 69 63 65 3a  20 55 4b 20 28 30 37 34  |:.Voice: UK (074|
00008c10  39 29 20 37 32 32 33 34  20 28 61 73 6b 20 66 6f  |9) 72234 (ask fo|
00008c20  72 20 48 75 67 6f 29 0a  56 6f 64 61 46 6f 6e 65  |r Hugo).VodaFone|
00008c30  3a 20 28 30 38 33 31 29  20 34 34 34 31 39 32 0a  |: (0831) 444192.|
00008c40  54 68 65 20 57 6f 72 6c  64 20 6f 66 20 43 72 79  |The World of Cry|
00008c50  74 6f 6e 20 28 62 62 73  29 20 3a 20 55 4b 20 28  |ton (bbs) : UK (|
00008c60  30 37 34 39 29 20 36 37  39 37 39 34 20 28 33 30  |0749) 679794 (30|
00008c70  30 2d 32 34 30 30 20 2d  20 31 20 6c 69 6e 65 29  |0-2400 - 1 line)|
00008c80  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00008c90  20 20 20 20 20 20 20 20  20 20 20 3a 20 55 4b 20  |           : UK |
00008ca0  28 30 37 34 39 29 20 36  37 30 30 33 30 20 28 33  |(0749) 670030 (3|
00008cb0  30 30 2d 48 53 54 2f 56  33 32 20 2d 20 32 20 6c  |00-HST/V32 - 2 l|
00008cc0  69 6e 65 73 29 0a 4d 61  69 6c 3a 20 50 72 65 73  |ines).Mail: Pres|
00008cd0  74 65 6c 20 30 34 35 38  34 37 36 30 38 2c 20 43  |tel 045847608, C|
00008ce0  49 58 20 61 6c 74 6d 61  6e 0a 42 75 72 63 6f 74  |IX altman.Burcot|
00008cf0  74 20 4d 61 6e 6f 72 2c  20 57 65 6c 6c 73 2c 20  |t Manor, Wells, |
00008d00  53 6f 6d 65 72 73 65 74  2c 20 42 41 35 20 31 4e  |Somerset, BA5 1N|
00008d10  48 2c 20 55 4b 0a 0a 4d  61 74 74 20 46 61 72 72  |H, UK..Matt Farr|
00008d20  6f 77 3a 0a 4d 61 69 6c  3a 20 41 72 63 61 64 65  |ow:.Mail: Arcade|
00008d30  20 62 62 73 20 5b 30 38  31 2d 36 35 34 20 32 32  | bbs [081-654 22|
00008d40  31 32 5d 20 61 73 20 27  4d 61 74 74 68 65 77 20  |12] as 'Matthew |
00008d50  46 61 72 72 6f 77 27 20  28 23 34 38 33 29 0a 20  |Farrow' (#483). |
00008d60  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
00008d70  5b 30 38 31 2d 36 35 35  20 34 34 31 32 5d 0a 0a  |[081-655 4412]..|
00008d80  34 35 20 41 6c 6c 65 79  6e 20 50 61 72 6b 2c 20  |45 Alleyn Park, |
00008d90  44 75 6c 77 69 63 68 2c  20 4c 6f 6e 64 6f 6e 20  |Dulwich, London |
00008da0  53 45 32 31 20 38 41 54  0a 0a 0a 3d 3d 3d 3d 3d  |SE21 8AT...=====|
00008db0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
*
00008df0  3d 3d 3d 3d 3d 3d 3d 3d  0a 0a 55 70 64 61 74 65  |========..Update|
00008e00  73 0a 2d 2d 2d 2d 2d 2d  2d 0a 56 65 72 73 69 6f  |s.-------.Versio|
00008e10  6e 20 34 2e 30 30 20 28  66 72 6f 6d 20 33 2e 30  |n 4.00 (from 3.0|
00008e20  34 29 0a 20 20 20 2d 20  53 57 49 20 69 6e 74 65  |4).   - SWI inte|
00008e30  72 66 61 63 65 20 61 64  64 65 64 2e 0a 20 20 20  |rface added..   |
00008e40  2d 20 56 6f 6c 75 6d 65  20 74 72 61 6e 73 6c 61  |- Volume transla|
00008e50  74 69 6f 6e 73 20 66 6f  72 20 73 6f 75 6e 64 74  |tions for soundt|
00008e60  72 61 63 6b 65 72 20 6d  6f 64 75 6c 65 73 20 70  |racker modules p|
00008e70  65 72 66 6f 72 6d 65 64  20 63 6f 72 72 65 63 74  |erformed correct|
00008e80  6c 79 20 6e 6f 77 20 28  3f 29 0a 20 20 20 2d 20  |ly now (?).   - |
00008e90  4c 6f 63 6b 69 6e 67 20  73 79 73 74 65 6d 20 69  |Locking system i|
00008ea0  6e 74 72 6f 64 75 63 65  64 0a 20 20 20 2d 20 4e  |ntroduced.   - N|
00008eb0  65 78 74 20 70 61 74 74  65 72 6e 20 6c 69 6e 65  |ext pattern line|
00008ec0  20 70 6c 61 79 65 64 20  6a 75 73 74 20 61 66 74  | played just aft|
00008ed0  65 72 20 70 61 74 74 65  72 6e 20 70 6f 73 69 74  |er pattern posit|
00008ee0  69 6f 6e 20 69 6e 63 72  65 6d 65 6e 74 65 64 2c  |ion incremented,|
00008ef0  20 6e 6f 74 0a 20 20 20  20 20 6a 75 73 74 20 62  | not.     just b|
00008f00  65 66 6f 72 65 20 28 73  6f 20 74 68 65 20 70 6f  |efore (so the po|
00008f10  73 69 74 69 6f 6e 20 64  6f 65 73 6e 27 74 20 61  |sition doesn't a|
00008f20  70 70 65 61 72 20 74 6f  20 62 65 20 61 68 65 61  |ppear to be ahea|
00008f30  64 20 6f 66 20 74 68 65  20 6d 75 73 69 63 29 2e  |d of the music).|
00008f40  0a 20 20 20 2d 20 52 65  6d 6f 76 61 6c 20 6f 66  |.   - Removal of|
00008f50  20 6d 6f 72 65 20 6d 69  6e 6f 72 20 62 75 67 73  | more minor bugs|
00008f60  2e 2e 0a 0a 56 65 72 73  69 6f 6e 20 34 2e 30 31  |....Version 4.01|
00008f70  0a 20 20 20 2d 20 44 6f  65 73 6e 27 74 20 73 6c  |.   - Doesn't sl|
00008f80  6f 77 20 65 76 65 72 79  74 68 69 6e 67 20 64 6f  |ow everything do|
00008f90  77 6e 20 73 6f 20 6d 75  63 68 20 77 68 65 6e 20  |wn so much when |
00008fa0  70 61 75 73 65 64 0a 20  20 20 2d 20 46 69 78 65  |paused.   - Fixe|
00008fb0  64 20 62 75 67 20 69 6e  20 54 72 61 63 6b 65 72  |d bug in Tracker|
00008fc0  5f 50 6c 61 79 4e 6f 74  65 20 28 63 6f 6e 63 65  |_PlayNote (conce|
00008fd0  72 6e 69 6e 67 20 63 68  61 6e 6e 65 6c 20 6e 75  |rning channel nu|
00008fe0  6d 62 65 72 29 0a 20 20  20 2d 20 43 6f 72 72 65  |mber).   - Corre|
00008ff0  63 74 65 64 20 64 6f 63  75 6d 65 6e 74 61 74 69  |cted documentati|
00009000  6f 6e 20 6f 6e 20 54 72  61 63 6b 65 72 5f 52 65  |on on Tracker_Re|
00009010  61 64 53 61 6d 70 6c 65  54 61 62 6c 65 0a 0a 56  |adSampleTable..V|
00009020  65 72 73 69 6f 6e 20 34  2e 30 32 0a 20 20 20 2d  |ersion 4.02.   -|
00009030  20 41 64 64 65 64 20 6e  65 77 20 53 57 49 27 73  | Added new SWI's|
00009040  20 27 54 72 61 63 6b 65  72 5f 4d 75 74 65 43 68  | 'Tracker_MuteCh|
00009050  61 6e 6e 65 6c 27 20 61  6e 64 20 27 54 72 61 63  |annel' and 'Trac|
00009060  6b 65 72 5f 52 65 73 74  6f 72 65 43 68 61 6e 6e  |ker_RestoreChann|
00009070  65 6c 27 0a 20 20 20 2d  20 41 72 70 65 67 67 69  |el'.   - Arpeggi|
00009080  6f 20 63 6f 6d 6d 61 6e  64 20 61 6c 74 65 72 65  |o command altere|
00009090  64 20 74 6f 20 63 6f 6e  66 6f 72 6d 20 77 69 74  |d to conform wit|
000090a0  68 20 61 20 73 6f 75 6e  64 74 72 61 63 6b 65 72  |h a soundtracker|
000090b0  2d 64 65 72 69 76 61 74  69 76 65 0a 20 20 20 20  |-derivative.    |
000090c0  20 20 20 20 66 6f 72 6d  61 74 3b 20 49 20 74 68  |    format; I th|
000090d0  69 6e 6b 20 69 74 27 73  20 74 68 65 20 73 61 6d  |ink it's the sam|
000090e0  65 20 61 73 20 74 68 65  20 73 6f 75 6e 64 74 72  |e as the soundtr|
000090f0  61 63 6b 65 72 20 66 6f  72 6d 61 74 20 70 72 6f  |acker format pro|
00009100  70 65 72 2c 20 62 75 74  0a 20 20 20 20 20 20 20  |per, but.       |
00009110  20 49 20 63 61 6e 27 74  20 66 69 6e 64 20 61 6e  | I can't find an|
00009120  79 20 64 6f 63 75 6d 65  6e 74 61 74 69 6f 6e 20  |y documentation |
00009130  74 6f 20 63 68 65 63 6b  20 74 68 69 73 21 0a 20  |to check this!. |
00009140  20 20 2d 20 46 69 78 65  64 20 62 75 67 20 77 68  |  - Fixed bug wh|
00009150  65 72 65 20 69 66 20 79  6f 75 20 64 69 64 20 61  |ere if you did a|
00009160  20 54 72 61 63 6b 65 72  5f 50 6c 61 79 4e 6f 74  | Tracker_PlayNot|
00009170  65 20 77 68 69 6c 65 20  74 68 65 20 74 75 6e 65  |e while the tune|
00009180  20 77 61 73 20 70 61 75  73 65 64 2c 0a 20 20 20  | was paused,.   |
00009190  20 20 20 20 20 69 74 20  73 6f 6d 65 74 69 6d 65  |     it sometime|
000091a0  73 20 64 69 64 6e 27 74  20 63 6c 65 61 72 20 74  |s didn't clear t|
000091b0  68 65 20 73 6f 75 6e 64  20 62 75 66 66 65 72 73  |he sound buffers|
000091c0  20 61 66 74 65 72 77 61  72 64 73 20 28 62 75 7a  | afterwards (buz|
000091d0  7a 69 6e 67 20 65 74 63  2e 29 0a 0a 56 65 72 73  |zing etc.)..Vers|
000091e0  69 6f 6e 20 34 2e 30 33  0a 20 20 20 2d 20 49 20  |ion 4.03.   - I |
000091f0  68 61 76 65 20 66 69 78  65 64 20 74 68 65 20 54  |have fixed the T|
00009200  72 61 63 6b 65 72 5f 50  6c 61 79 4e 6f 74 65 20  |racker_PlayNote |
00009210  62 75 67 20 66 72 6f 6d  20 56 34 2e 30 31 20 6e  |bug from V4.01 n|
00009220  6f 77 2c 20 68 6f 6e 65  73 74 21 0a 20 20 20 2d  |ow, honest!.   -|
00009230  20 46 69 78 65 64 20 70  72 6f 62 6c 65 6d 20 69  | Fixed problem i|
00009240  6e 74 72 6f 64 75 63 65  64 20 69 6e 20 56 34 2e  |ntroduced in V4.|
00009250  30 32 20 77 68 65 72 65  20 64 6f 69 6e 67 20 54  |02 where doing T|
00009260  72 61 63 6b 65 72 5f 50  6c 61 79 4e 6f 74 65 20  |racker_PlayNote |
00009270  77 68 69 6c 65 20 61 0a  20 20 20 20 20 20 20 20  |while a.        |
00009280  74 75 6e 65 20 77 61 73  20 70 6c 61 79 69 6e 67  |tune was playing|
00009290  20 73 6f 6d 65 74 69 6d  65 73 20 63 72 61 73 68  | sometimes crash|
000092a0  65 64 20 28 69 66 20 74  68 65 20 73 61 6d 70 6c  |ed (if the sampl|
000092b0  65 20 77 61 73 20 62 6c  61 6e 6b 29 0a 20 20 20  |e was blank).   |
000092c0  2d 20 53 68 6f 75 6c 64  20 63 72 61 73 68 20 6c  |- Should crash l|
000092d0  65 73 73 20 6f 66 74 65  6e 20 77 68 65 6e 20 6c  |ess often when l|
000092e0  6f 61 64 69 6e 67 20 61  20 6e 65 77 20 74 75 6e  |oading a new tun|
000092f0  65 20 28 6e 6f 20 70 72  6f 6d 69 73 65 73 21 29  |e (no promises!)|
00009300  0a 0a 56 65 72 73 69 6f  6e 20 34 2e 30 34 0a 20  |..Version 4.04. |
00009310  20 20 2d 20 41 64 64 65  64 20 2a 50 6c 61 79 53  |  - Added *PlayS|
00009320  70 65 65 64 20 61 6e 64  20 6f 70 74 69 6f 6e 20  |peed and option |
00009330  74 6f 20 63 68 61 6e 67  65 20 73 61 6d 70 6c 65  |to change sample|
00009340  20 72 61 74 65 20 28 66  61 73 74 65 72 20 38 2d  | rate (faster 8-|
00009350  63 68 61 6e 6e 65 6c 0a  20 20 20 20 20 20 20 20  |channel.        |
00009360  74 75 6e 65 73 29 0a 20  20 20 2d 20 50 72 6f 76  |tunes).   - Prov|
00009370  69 73 69 6f 6e 20 66 6f  72 20 56 49 44 43 20 65  |ision for VIDC e|
00009380  6e 68 61 6e 63 65 72 20  6f 77 6e 65 72 73 20 28  |nhancer owners (|
00009390  74 75 6e 65 73 20 61 72  65 20 6e 6f 72 6d 61 6c  |tunes are normal|
000093a0  6c 79 20 61 20 70 65 72  66 65 63 74 20 66 69 66  |ly a perfect fif|
000093b0  74 68 0a 20 20 20 20 20  20 20 20 74 6f 6f 20 68  |th.        too h|
000093c0  69 67 68 29 20 69 6e 20  74 68 65 20 66 6f 72 6d  |igh) in the form|
000093d0  20 6f 66 20 2a 50 6c 61  79 53 70 65 65 64 20 3c  | of *PlaySpeed <|
000093e0  32 7c 33 3e 0a 20 20 20  2d 20 41 64 64 65 64 20  |2|3>.   - Added |
000093f0  54 72 61 63 6b 65 72 5f  53 70 65 65 64 20 53 57  |Tracker_Speed SW|
00009400  49 20 28 73 61 6d 65 20  61 73 20 2a 50 6c 61 79  |I (same as *Play|
00009410  53 70 65 65 64 29 0a 20  20 20 2d 20 4d 6f 64 75  |Speed).   - Modu|
00009420  6c 65 20 6e 6f 77 20 63  6c 61 69 6d 73 20 6d 65  |le now claims me|
00009430  6d 6f 72 79 20 69 6e 20  52 4d 41 20 61 6e 64 20  |mory in RMA and |
00009440  62 75 69 6c 64 73 20 74  61 62 6c 65 73 20 61 73  |builds tables as|
00009450  20 69 74 20 6e 65 65 64  73 20 74 68 65 6d 2c 0a  | it needs them,.|
00009460  20 20 20 20 20 20 20 20  73 61 76 69 6e 67 20 61  |        saving a|
00009470  62 6f 75 74 20 31 32 4b  20 6f 66 20 64 69 73 63  |bout 12K of disc|
00009480  20 73 70 61 63 65 2e 0a  20 20 20 2d 20 41 6c 74  | space..   - Alt|
00009490  65 72 65 64 20 2a 50 6c  61 79 53 61 6d 70 6c 65  |ered *PlaySample|
000094a0  73 20 63 6f 6d 6d 61 6e  64 20 74 6f 20 70 72 69  |s command to pri|
000094b0  6e 74 20 27 2d 27 20 66  6f 72 20 73 61 6d 70 6c  |nt '-' for sampl|
000094c0  65 20 6e 61 6d 65 20 69  66 20 62 6c 61 6e 6b 20  |e name if blank |
000094d0  28 75 73 65 64 0a 20 20  20 20 20 20 20 20 74 6f  |(used.        to|
000094e0  20 69 67 6e 6f 72 65 20  6e 6f 6e 2d 7a 65 72 6f  | ignore non-zero|
000094f0  20 73 61 6d 70 6c 65 73  20 77 69 74 68 20 62 6c  | samples with bl|
00009500  61 6e 6b 20 6e 61 6d 65  73 29 0a 20 20 20 2d 20  |ank names).   - |
00009510  4d 61 69 6e 20 69 6e 74  65 72 72 75 70 74 20 70  |Main interrupt p|
00009520  75 74 20 6f 6e 20 54 69  63 6b 65 72 56 2c 20 73  |ut on TickerV, s|
00009530  6f 20 74 68 69 73 20 73  68 6f 75 6c 64 20 65 6e  |o this should en|
00009540  64 20 70 72 6f 62 6c 65  6d 73 20 61 6e 79 20 6d  |d problems any m|
00009550  75 6c 74 69 73 79 6e 63  0a 20 20 20 20 20 20 20  |ultisync.       |
00009560  20 6d 6f 6e 69 74 6f 72  20 6f 77 6e 65 72 73 20  | monitor owners |
00009570  6d 61 79 20 68 61 76 65  20 68 61 64 20 77 69 74  |may have had wit|
00009580  68 20 74 75 6e 65 73 20  67 6f 69 6e 67 20 74 6f  |h tunes going to|
00009590  6f 20 66 61 73 74 20 65  74 63 2e 0a 0a 56 65 72  |o fast etc...Ver|
000095a0  73 69 6f 6e 20 34 2e 30  35 0a 20 20 20 2d 20 46  |sion 4.05.   - F|
000095b0  69 78 65 64 20 54 72 61  63 6b 65 72 5f 52 65 61  |ixed Tracker_Rea|
000095c0  64 53 61 6d 70 6c 65 54  61 62 6c 65 20 28 77 68  |dSampleTable (wh|
000095d0  65 6e 20 52 30 20 77 61  73 20 6f 75 74 20 6f 66  |en R0 was out of|
000095e0  20 72 61 6e 67 65 20 5b  69 65 2e 20 3e 31 35 2f  | range [ie. >15/|
000095f0  3e 33 31 5d 20 52 31 0a  20 20 20 20 20 20 20 20  |>31] R1.        |
00009600  70 6f 69 6e 74 65 64 20  74 6f 20 61 6e 20 75 6e  |pointed to an un|
00009610  64 65 66 69 6e 65 64 20  73 74 72 69 6e 67 29 20  |defined string) |
00009620  73 6f 20 74 68 61 74 20  52 31 20 61 6e 64 20 52  |so that R1 and R|
00009630  36 20 77 69 6c 6c 20 70  6f 69 6e 74 20 74 6f 20  |6 will point to |
00009640  61 0a 20 20 20 20 20 20  20 20 7a 65 72 6f 20 69  |a.        zero i|
00009650  66 20 74 68 65 20 73 61  6d 70 6c 65 20 6e 75 6d  |f the sample num|
00009660  62 65 72 20 69 73 20 6f  75 74 20 6f 66 20 72 61  |ber is out of ra|
00009670  6e 67 65 2e 0a 20 20 20  2d 20 43 68 61 6e 67 65  |nge..   - Change|
00009680  64 20 63 6f 6d 6d 61 6e  64 20 6f 72 64 65 72 20  |d command order |
00009690  73 6f 20 74 68 61 74 20  27 2a 50 6c 61 79 73 2e  |so that '*Plays.|
000096a0  27 20 77 69 6c 6c 20 64  6f 20 2a 50 6c 61 79 53  |' will do *PlayS|
000096b0  74 61 74 75 73 20 72 61  74 68 65 72 20 74 68 61  |tatus rather tha|
000096c0  6e 0a 20 20 20 20 20 20  20 20 2a 50 6c 61 79 53  |n.        *PlayS|
000096d0  61 6d 70 6c 65 73 2e 0a  20 20 20 2d 20 4d 6f 64  |amples..   - Mod|
000096e0  75 6c 65 20 6e 6f 77 20  69 6e 73 74 61 6c 6c 73  |ule now installs|
000096f0  20 69 74 73 65 6c 66 20  61 73 20 61 20 73 6f 75  | itself as a sou|
00009700  6e 64 20 63 68 61 6e 6e  65 6c 20 68 61 6e 64 6c  |nd channel handl|
00009710  65 72 20 28 6e 6f 20 6d  6f 72 65 20 6f 66 20 74  |er (no more of t|
00009720  68 65 0a 20 20 20 20 20  20 20 20 27 54 72 61 63  |he.        'Trac|
00009730  6b 65 72 56 6f 78 27 20  76 6f 69 63 65 29 2e 0a  |kerVox' voice)..|
00009740  20 20 20 20 20 45 66 66  65 63 74 73 20 6f 66 20  |     Effects of |
00009750  74 68 69 73 20 72 65 63  6f 64 69 6e 67 20 61 72  |this recoding ar|
00009760  65 3a 2d 0a 20 20 20 20  20 20 20 20 2a 20 20 49  |e:-.        *  I|
00009770  74 27 73 20 6d 75 63 68  20 74 72 69 63 6b 69 65  |t's much trickie|
00009780  72 20 66 6f 72 20 70 72  6f 67 72 61 6d 73 20 74  |r for programs t|
00009790  6f 20 73 61 62 6f 74 61  67 65 20 61 6e 79 20 63  |o sabotage any c|
000097a0  75 72 72 65 6e 74 20 74  75 6e 65 73 2c 20 61 73  |urrent tunes, as|
000097b0  0a 20 20 20 20 20 20 20  20 20 20 20 61 73 73 69  |.           assi|
000097c0  67 6e 69 6e 67 20 73 6f  75 6e 64 20 76 6f 69 63  |gning sound voic|
000097d0  65 73 20 68 61 73 20 6e  6f 20 65 66 66 65 63 74  |es has no effect|
000097e0  20 28 75 6e 6c 65 73 73  20 74 68 65 20 74 75 6e  | (unless the tun|
000097f0  65 20 69 73 20 73 74 6f  70 70 65 64 29 2e 0a 20  |e is stopped).. |
00009800  20 20 20 20 20 20 20 2a  20 20 42 65 66 6f 72 65  |       *  Before|
00009810  2c 20 73 61 6d 70 6c 65  73 20 70 6c 61 79 65 64  |, samples played|
00009820  20 73 69 6d 75 6c 74 61  6e 65 6f 75 73 6c 79 20  | simultaneously |
00009830  6f 6e 20 64 69 66 66 65  72 65 6e 74 20 63 68 61  |on different cha|
00009840  6e 6e 65 6c 73 20 77 65  72 65 0a 20 20 20 20 20  |nnels were.     |
00009850  20 20 20 20 20 20 73 6f  6d 65 74 69 6d 65 73 20  |      sometimes |
00009860  70 6c 61 79 65 64 20 73  6c 69 67 68 74 6c 79 20  |played slightly |
00009870  6f 75 74 20 6f 66 20 70  68 61 73 65 20 28 73 6f  |out of phase (so|
00009880  75 6e 64 65 64 20 71 75  69 65 74 65 72 2f 77 65  |unded quieter/we|
00009890  69 72 64 29 2e 0a 20 20  20 20 20 20 20 20 20 20  |ird)..          |
000098a0  20 54 68 69 73 20 73 6f  6d 65 74 69 6d 65 73 20  | This sometimes |
000098b0  73 74 69 6c 6c 20 68 61  70 70 65 6e 73 2c 20 62  |still happens, b|
000098c0  75 74 20 6c 65 73 73 20  6f 66 74 65 6e 2e 0a 20  |ut less often.. |
000098d0  20 20 20 20 20 20 20 2a  20 20 52 65 2d 63 6f 6e  |       *  Re-con|
000098e0  66 69 67 75 72 69 6e 67  20 74 68 65 20 73 61 6d  |figuring the sam|
000098f0  70 6c 65 20 72 61 74 65  20 77 69 6c 6c 20 6e 6f  |ple rate will no|
00009900  74 20 77 6f 72 6b 20 77  68 69 6c 65 20 61 20 74  |t work while a t|
00009910  75 6e 65 20 69 73 0a 20  20 20 20 20 20 20 20 20  |une is.         |
00009920  20 20 70 6c 61 79 69 6e  67 2c 20 73 6f 20 74 68  |  playing, so th|
00009930  61 74 20 73 68 6f 75 6c  64 20 62 65 20 6f 6e 65  |at should be one|
00009940  20 6c 65 73 73 20 74 68  69 6e 67 20 74 6f 20 67  | less thing to g|
00009950  6f 20 77 72 6f 6e 67 2e  0a 20 20 20 2d 20 53 6c  |o wrong..   - Sl|
00009960  69 67 68 74 6c 79 20 63  68 61 6e 67 65 64 20 2a  |ightly changed *|
00009970  50 6c 61 79 73 61 6d 70  6c 65 73 20 63 6f 6d 6d  |Playsamples comm|
00009980  61 6e 64 20 74 6f 20 69  6e 63 6c 75 64 65 20 73  |and to include s|
00009990  61 6d 70 6c 65 20 6e 75  6d 62 65 72 2e 0a 20 20  |ample number..  |
000099a0  20 2d 20 46 69 78 65 64  20 70 72 6f 62 6c 65 6d  | - Fixed problem|
000099b0  20 77 69 74 68 20 2a 50  6c 61 79 73 74 61 74 75  | with *Playstatu|
000099c0  73 20 61 6e 64 20 6e 6f  6e 2d 74 65 72 6d 69 6e  |s and non-termin|
000099d0  61 74 65 64 20 74 75 6e  65 20 6e 61 6d 65 73 2e  |ated tune names.|
000099e0  0a 20 20 20 2d 20 41 6c  74 65 72 65 64 20 54 72  |.   - Altered Tr|
000099f0  61 63 6b 65 72 5f 53 74  65 72 65 6f 20 74 6f 20  |acker_Stereo to |
00009a00  72 65 74 75 72 6e 20 63  75 72 72 65 6e 74 20 73  |return current s|
00009a10  65 74 74 69 6e 67 73 20  69 66 20 52 30 3d 2d 31  |ettings if R0=-1|
00009a20  20 6f 6e 20 65 6e 74 72  79 2e 0a 20 20 20 2d 20  | on entry..   - |
00009a30  41 64 64 65 64 20 2a 50  6c 61 79 56 6f 6c 75 6d  |Added *PlayVolum|
00009a40  65 2f 54 72 61 63 6b 65  72 5f 56 6f 6c 75 6d 65  |e/Tracker_Volume|
00009a50  20 74 6f 20 63 6f 6e 74  72 6f 6c 20 6f 76 65 72  | to control over|
00009a60  61 6c 6c 20 76 6f 6c 75  6d 65 2e 0a 20 20 20 76  |all volume..   v|
00009a70  65 72 73 69 6f 6e 20 28  42 29 0a 20 20 20 2d 20  |ersion (B).   - |
00009a80  49 66 20 2a 50 6c 61 79  53 74 65 72 65 6f 20 34  |If *PlayStereo 4|
00009a90  20 77 61 73 20 73 65 6c  65 63 74 65 64 2c 20 73  | was selected, s|
00009aa0  74 65 72 65 6f 20 73 65  74 74 69 6e 67 73 20 77  |tereo settings w|
00009ab0  65 72 65 20 62 65 69 6e  67 20 63 6f 72 72 75 70  |ere being corrup|
00009ac0  74 65 64 20 77 68 65 6e  0a 20 20 20 20 20 20 20  |ted when.       |
00009ad0  20 74 68 65 20 74 75 6e  65 20 77 61 73 20 73 74  | the tune was st|
00009ae0  6f 70 70 65 64 2e 0a 20  20 20 2d 20 54 72 61 63  |opped..   - Trac|
00009af0  6b 65 72 20 27 45 27 20  73 74 65 72 65 6f 20 63  |ker 'E' stereo c|
00009b00  6f 6d 6d 61 6e 64 73 20  63 61 75 73 65 64 20 61  |ommands caused a|
00009b10  20 63 72 61 73 68 20 69  66 20 2a 50 6c 61 79 53  | crash if *PlayS|
00009b20  74 65 72 65 6f 20 34 20  77 61 73 20 65 6e 61 62  |tereo 4 was enab|
00009b30  6c 65 64 2e 0a 0a 56 65  72 73 69 6f 6e 20 34 2e  |led...Version 4.|
00009b40  30 36 20 20 20 20 20 20  4d 61 6a 6f 72 20 75 70  |06      Major up|
00009b50  64 61 74 65 0a 20 20 20  49 20 66 69 6e 61 6c 6c  |date.   I finall|
00009b60  79 20 67 6f 74 20 73 6f  6d 65 20 64 65 63 65 6e  |y got some decen|
00009b70  74 20 61 6d 69 67 61 20  73 6f 75 6e 64 74 72 61  |t amiga soundtra|
00009b80  63 6b 65 72 20 64 6f 63  75 6d 65 6e 74 61 74 69  |cker documentati|
00009b90  6f 6e 2e 0a 20 20 20 54  68 65 6e 20 49 20 64 69  |on..   Then I di|
00009ba0  73 63 6f 76 65 72 65 64  20 68 6f 77 20 6d 75 63  |scovered how muc|
00009bb0  68 20 49 20 68 61 64 20  77 72 6f 6e 67 2e 2e 20  |h I had wrong.. |
00009bc0  6d 61 6a 6f 72 20 75 70  64 61 74 65 20 6e 65 65  |major update nee|
00009bd0  64 65 64 21 0a 20 20 20  0a 20 20 20 2d 20 53 6f  |ded!.   .   - So|
00009be0  75 6e 64 74 72 61 63 6b  65 72 20 74 75 6e 65 73  |undtracker tunes|
00009bf0  20 77 65 72 65 20 62 65  69 6e 67 20 63 6f 6e 76  | were being conv|
00009c00  65 72 74 65 64 20 77 72  6f 6e 67 6c 79 2e 2e 0a  |erted wrongly...|
00009c10  20 20 20 20 20 20 20 20  2a 20 20 52 65 70 65 61  |        *  Repea|
00009c20  74 20 6f 66 66 73 65 74  20 6e 6f 77 20 6d 61 64  |t offset now mad|
00009c30  65 20 74 77 69 63 65 20  61 73 20 62 69 67 2e 0a  |e twice as big..|
00009c40  20 20 20 20 20 20 20 20  2a 20 20 56 6f 6c 75 6d  |        *  Volum|
00009c50  65 73 20 61 62 6f 76 65  20 74 68 65 20 73 70 65  |es above the spe|
00009c60  63 69 66 69 65 64 20 6d  61 78 69 6d 75 6d 20 28  |cified maximum (|
00009c70  36 34 29 20 77 65 72 65  20 63 6f 6e 76 65 72 74  |64) were convert|
00009c80  65 64 20 73 74 72 61 6e  67 65 6c 79 2e 0a 20 20  |ed strangely..  |
00009c90  20 20 20 20 20 20 20 20  20 4e 6f 77 20 6f 75 74  |         Now out|
00009ca0  2d 6f 66 2d 72 61 6e 67  65 20 76 6f 6c 75 6d 65  |-of-range volume|
00009cb0  73 20 61 72 65 20 73 65  74 20 74 6f 20 36 34 2e  |s are set to 64.|
00009cc0  0a 20 20 20 2d 20 41 63  63 75 72 61 63 79 20 6f  |.   - Accuracy o|
00009cd0  66 20 74 68 65 20 73 6f  75 6e 64 20 72 6f 75 74  |f the sound rout|
00009ce0  69 6e 65 73 20 69 6d 70  72 6f 76 65 64 20 74 6f  |ines improved to|
00009cf0  20 63 6f 70 65 20 77 69  74 68 20 76 65 72 79 20  | cope with very |
00009d00  73 6d 61 6c 6c 20 6c 6f  6f 70 69 6e 67 0a 20 20  |small looping.  |
00009d10  20 20 20 20 20 20 73 61  6d 70 6c 65 73 20 77 68  |      samples wh|
00009d20  69 63 68 20 77 65 72 65  20 73 65 65 6d 69 6e 67  |ich were seeming|
00009d30  6c 79 20 70 69 74 63 68  65 64 20 77 72 6f 6e 67  |ly pitched wrong|
00009d40  6c 79 20 61 73 20 61 20  72 65 73 75 6c 74 20 6f  |ly as a result o|
00009d50  66 20 34 2d 62 79 74 65  0a 20 20 20 20 20 20 20  |f 4-byte.       |
00009d60  20 61 63 63 75 72 61 63  79 2e 20 41 63 63 75 72  | accuracy. Accur|
00009d70  61 63 79 20 6e 6f 77 20  31 20 62 79 74 65 2e 20  |acy now 1 byte. |
00009d80  54 68 69 73 20 6d 61 79  20 73 6c 6f 77 20 74 68  |This may slow th|
00009d90  69 6e 67 73 20 64 6f 77  6e 20 61 20 74 69 6e 79  |ings down a tiny|
00009da0  20 62 69 74 2e 0a 20 20  20 2d 20 41 6c 74 65 72  | bit..   - Alter|
00009db0  65 64 20 74 68 65 20 76  6f 6c 75 6d 65 20 73 79  |ed the volume sy|
00009dc0  73 74 65 6d 20 73 6f 20  74 68 61 74 20 73 6f 75  |stem so that sou|
00009dd0  6e 64 74 72 61 63 6b 65  72 20 76 6f 6c 75 6d 65  |ndtracker volume|
00009de0  73 20 61 72 65 20 61 73  20 61 63 63 75 72 61 74  |s are as accurat|
00009df0  65 0a 20 20 20 20 20 20  20 20 61 73 20 70 6f 73  |e.        as pos|
00009e00  73 69 62 6c 65 20 28 69  65 2e 20 76 6f 6c 75 6d  |sible (ie. volum|
00009e10  65 20 73 6c 69 64 65 73  20 6e 6f 77 20 73 6c 69  |e slides now sli|
00009e20  64 65 20 64 6f 77 6e 20  74 68 65 20 73 6f 75 6e  |de down the soun|
00009e30  64 74 72 61 63 6b 65 72  20 28 30 2d 36 34 29 0a  |dtracker (0-64).|
00009e40  20 20 20 20 20 20 20 20  76 6f 6c 75 6d 65 73 20  |        volumes |
00009e50  72 61 74 68 65 72 20 74  68 61 6e 20 74 68 65 20  |rather than the |
00009e60  61 72 63 20 6c 6f 67 20  76 6f 6c 75 6d 65 73 20  |arc log volumes |
00009e70  28 30 2d 32 35 35 29 2c  20 62 75 74 20 73 74 69  |(0-255), but sti|
00009e80  6c 6c 20 6b 65 65 70 69  6e 67 0a 20 20 20 20 20  |ll keeping.     |
00009e90  20 20 20 74 68 65 20 73  61 6d 65 20 73 79 73 74  |   the same syst|
00009ea0  65 6d 20 66 6f 72 20 74  72 61 63 6b 65 72 20 74  |em for tracker t|
00009eb0  75 6e 65 73 2e 20 54 68  65 72 65 66 6f 72 65 2c  |unes. Therefore,|
00009ec0  20 69 66 20 79 6f 75 20  77 61 6e 74 20 74 68 65  | if you want the|
00009ed0  20 6d 6f 73 74 0a 20 20  20 20 20 20 20 20 61 63  | most.        ac|
00009ee0  63 75 72 61 74 65 20 70  6c 61 79 62 61 63 6b 20  |curate playback |
00009ef0  6f 66 20 61 20 73 6f 75  6e 64 74 72 61 63 6b 65  |of a soundtracke|
00009f00  72 20 74 75 6e 65 2c 20  65 6e 73 75 72 65 20 69  |r tune, ensure i|
00009f10  74 20 69 73 20 69 6e 20  69 74 73 0a 20 20 20 20  |t is in its.    |
00009f20  20 20 20 20 6f 72 69 67  69 6e 61 6c 20 66 6f 72  |    original for|
00009f30  6d 61 74 2e 0a 20 20 20  2d 20 46 69 6e 61 6c 6c  |mat..   - Finall|
00009f40  79 20 69 6d 70 6c 65 6d  65 6e 74 65 64 20 63 6f  |y implemented co|
00009f50  6d 6d 61 6e 64 73 20 33  20 28 70 6f 72 74 61 6d  |mmands 3 (portam|
00009f60  65 6e 74 6f 29 20 61 6e  64 20 34 20 28 76 69 62  |ento) and 4 (vib|
00009f70  72 61 74 6f 29 2e 20 49  66 20 79 6f 75 20 68 61  |rato). If you ha|
00009f80  76 65 0a 20 20 20 20 20  20 20 20 63 6f 6e 76 65  |ve.        conve|
00009f90  72 74 65 64 20 6f 72 69  67 69 6e 61 6c 20 73 6f  |rted original so|
00009fa0  75 6e 64 74 72 61 63 6b  65 72 20 74 75 6e 65 73  |undtracker tunes|
00009fb0  20 69 6e 74 6f 20 74 72  61 63 6b 65 72 20 66 6f  | into tracker fo|
00009fc0  72 6d 61 74 2c 20 63 6f  6d 6d 61 6e 64 20 34 0a  |rmat, command 4.|
00009fd0  20 20 20 20 20 20 20 20  77 69 6c 6c 20 68 61 76  |        will hav|
00009fe0  65 20 6e 6f 20 65 66 66  65 63 74 20 64 75 65 20  |e no effect due |
00009ff0  74 6f 20 74 68 65 20 64  69 66 66 65 72 65 6e 74  |to the different|
0000a000  20 76 6f 6c 75 6d 65 20  66 6f 72 6d 61 74 73 2e  | volume formats.|
0000a010  20 54 68 65 20 76 69 62  72 61 74 6f 0a 20 20 20  | The vibrato.   |
0000a020  20 20 20 20 20 65 66 66  65 63 74 20 6d 61 79 20  |     effect may |
0000a030  6e 6f 74 20 62 65 20 65  78 61 63 74 6c 79 20 74  |not be exactly t|
0000a040  68 65 20 73 61 6d 65 20  61 73 20 6f 6e 20 74 68  |he same as on th|
0000a050  65 20 61 6d 69 67 61 2c  20 62 75 74 20 69 74 27  |e amiga, but it'|
0000a060  73 20 63 6c 6f 73 65 0a  20 20 20 20 20 20 20 20  |s close.        |
0000a070  65 6e 6f 75 67 68 2e 0a  20 20 20 2d 20 57 68 65  |enough..   - Whe|
0000a080  6e 20 73 6f 75 6e 64 74  72 61 63 6b 65 72 20 74  |n soundtracker t|
0000a090  75 6e 65 73 20 61 72 65  20 53 57 49 20 27 4d 65  |unes are SWI 'Me|
0000a0a0  6d 6f 72 79 4c 6f 61 64  27 65 64 2c 20 74 68 65  |moryLoad'ed, the|
0000a0b0  79 20 61 72 65 20 63 6f  6e 76 65 72 74 65 64 20  |y are converted |
0000a0c0  62 61 63 6b 0a 20 20 20  20 20 20 20 20 74 6f 20  |back.        to |
0000a0d0  74 68 65 20 6f 72 69 67  69 6e 61 6c 20 66 6f 72  |the original for|
0000a0e0  6d 61 74 20 77 68 65 6e  20 2a 50 6c 61 79 53 74  |mat when *PlaySt|
0000a0f0  6f 70 20 65 74 63 2e 20  69 73 20 70 65 72 66 6f  |op etc. is perfo|
0000a100  72 6d 65 64 20 28 74 6f  20 61 6c 6c 6f 77 0a 20  |rmed (to allow. |
0000a110  20 20 20 20 20 20 20 65  64 69 74 6f 72 73 20 74  |       editors t|
0000a120  6f 20 73 61 76 65 20 61  73 20 73 6f 75 6e 64 74  |o save as soundt|
0000a130  72 61 63 6b 65 72 20 66  6f 72 6d 61 74 29 2e 20  |racker format). |
0000a140  4e 42 20 54 72 61 63 6b  65 72 2d 73 70 65 63 69  |NB Tracker-speci|
0000a150  66 69 63 20 63 6f 6d 6d  61 6e 64 73 0a 20 20 20  |fic commands.   |
0000a160  20 20 20 20 20 61 6e 64  20 6f 75 74 20 6f 66 20  |     and out of |
0000a170  72 61 6e 67 65 20 69 6e  73 74 72 75 6d 65 6e 74  |range instrument|
0000a180  73 20 65 74 63 2e 20 61  72 65 20 69 67 6e 6f 72  |s etc. are ignor|
0000a190  65 64 2f 6d 69 73 2d 63  6f 6e 76 65 72 74 65 64  |ed/mis-converted|
0000a1a0  2e 0a 20 20 20 2d 20 54  72 61 63 6b 65 72 5f 57  |..   - Tracker_W|
0000a1b0  72 69 74 65 53 61 6d 70  6c 65 54 61 62 6c 65 20  |riteSampleTable |
0000a1c0  69 6e 74 72 6f 64 75 63  65 64 20 74 6f 20 61 6c  |introduced to al|
0000a1d0  6c 6f 77 20 74 72 61 6e  73 70 61 72 65 6e 74 20  |low transparent |
0000a1e0  61 63 63 65 73 73 20 6f  66 20 74 68 65 0a 20 20  |access of the.  |
0000a1f0  20 20 20 20 20 20 73 61  6d 70 6c 65 20 64 61 74  |      sample dat|
0000a200  61 20 61 6e 64 20 69 6e  64 65 70 65 6e 64 65 6e  |a and independen|
0000a210  63 65 20 28 61 6c 6d 6f  73 74 29 20 6f 66 20 74  |ce (almost) of t|
0000a220  68 65 20 54 72 61 63 6b  65 72 20 66 6f 72 6d 61  |he Tracker forma|
0000a230  74 2e 0a 20 20 20 2d 20  2a 2a 20 50 6c 65 61 73  |t..   - ** Pleas|
0000a240  65 20 4e 6f 74 65 20 2a  2a 20 20 20 56 6f 6c 75  |e Note **   Volu|
0000a250  6d 65 73 20 72 65 74 75  72 6e 65 64 20 62 79 20  |mes returned by |
0000a260  54 72 61 63 6b 65 72 5f  52 65 61 64 53 61 6d 70  |Tracker_ReadSamp|
0000a270  6c 65 54 61 62 6c 65 20  77 68 69 6c 65 0a 20 20  |leTable while.  |
0000a280  20 20 20 20 20 20 73 6f  75 6e 64 74 72 61 63 6b  |      soundtrack|
0000a290  65 72 20 74 75 6e 65 73  20 61 72 65 20 6c 6f 61  |er tunes are loa|
0000a2a0  64 65 64 20 61 72 65 20  6e 6f 77 20 69 6e 20 74  |ded are now in t|
0000a2b0  68 65 20 72 61 6e 67 65  20 30 2d 36 34 2e 20 54  |he range 0-64. T|
0000a2c0  68 65 73 65 20 63 61 6e  0a 20 20 20 20 20 20 20  |hese can.       |
0000a2d0  20 62 65 20 63 6f 6e 76  65 72 74 65 64 20 69 6e  | be converted in|
0000a2e0  74 6f 20 74 72 61 63 6b  65 72 20 76 6f 6c 75 6d  |to tracker volum|
0000a2f0  65 73 20 75 73 69 6e 67  20 74 68 65 20 6e 65 77  |es using the new|
0000a300  0a 20 20 20 20 20 20 20  20 54 72 61 63 6b 65 72  |.        Tracker|
0000a310  5f 54 72 61 6e 73 6c 61  74 65 56 6f 6c 75 6d 65  |_TranslateVolume|
0000a320  20 53 57 49 2e 20 2a 50  6c 61 79 53 61 6d 70 6c  | SWI. *PlaySampl|
0000a330  65 73 20 63 6f 6e 76 65  72 74 73 20 74 68 65 20  |es converts the |
0000a340  76 6f 6c 75 6d 65 73 20  66 69 72 73 74 2e 0a 20  |volumes first.. |
0000a350  20 20 2d 20 53 57 49 20  54 72 61 63 6b 65 72 5f  |  - SWI Tracker_|
0000a360  55 70 64 61 74 65 44 61  74 61 20 69 6e 74 72 6f  |UpdateData intro|
0000a370  64 75 63 65 64 20 74 6f  20 68 65 6c 70 20 65 64  |duced to help ed|
0000a380  69 74 6f 72 73 20 69 6e  74 65 72 66 61 63 65 20  |itors interface |
0000a390  77 69 74 68 20 74 68 65  0a 20 20 20 20 20 20 20  |with the.       |
0000a3a0  20 54 72 61 63 6b 65 72  6d 6f 64 75 6c 65 2e 0a  | Trackermodule..|
0000a3b0  20 20 20 2d 20 53 61 6d  70 6c 65 20 64 61 74 61  |   - Sample data|
0000a3c0  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 20 6e 6f 77  | information now|
0000a3d0  20 72 65 61 64 20 64 69  72 65 63 74 6c 79 20 69  | read directly i|
0000a3e0  6e 20 74 68 65 20 6d 61  69 6e 20 72 6f 75 74 69  |n the main routi|
0000a3f0  6e 65 73 20 72 61 74 68  65 72 0a 20 20 20 20 20  |nes rather.     |
0000a400  20 20 20 74 68 61 6e 20  63 6f 70 69 65 64 20 77  |   than copied w|
0000a410  68 65 6e 20 74 68 65 20  6d 6f 64 75 6c 65 20 69  |hen the module i|
0000a420  73 20 6c 6f 61 64 65 64  2c 20 74 6f 20 65 6e 61  |s loaded, to ena|
0000a430  62 6c 65 20 65 64 69 74  6f 72 73 20 74 6f 20 61  |ble editors to a|
0000a440  6c 74 65 72 20 74 68 65  0a 20 20 20 20 20 20 20  |lter the.       |
0000a450  20 6d 6f 64 75 6c 65 20  77 68 69 6c 65 20 70 6c  | module while pl|
0000a460  61 79 69 6e 67 2e 0a 20  20 20 2d 20 4f 6e 20 72  |aying..   - On r|
0000a470  65 73 65 74 2c 20 74 75  6e 65 20 63 6f 6e 74 69  |eset, tune conti|
0000a480  6e 75 65 73 20 70 6c 61  79 69 6e 67 20 72 61 74  |nues playing rat|
0000a490  68 65 72 20 74 68 61 6e  20 62 65 69 6e 67 20 6b  |her than being k|
0000a4a0  69 6c 6c 65 64 20 61 73  20 62 65 66 6f 72 65 2e  |illed as before.|
0000a4b0  0a 20 20 20 2d 20 57 68  65 6e 20 74 75 6e 65 20  |.   - When tune |
0000a4c0  69 73 20 73 74 6f 70 70  65 64 2c 20 74 68 65 20  |is stopped, the |
0000a4d0  73 6f 75 6e 64 20 73 79  73 74 65 6d 20 69 73 20  |sound system is |
0000a4e0  72 65 73 74 6f 72 65 64  20 6d 6f 72 65 20 65 66  |restored more ef|
0000a4f0  66 65 63 74 69 76 65 6c  79 20 28 69 65 2e 0a 20  |fectively (ie.. |
0000a500  20 20 20 20 20 20 20 72  65 73 65 74 74 69 6e 67  |       resetting|
0000a510  20 74 68 65 20 73 61 6d  70 6c 65 20 72 61 74 65  | the sample rate|
0000a520  20 77 69 74 68 20 38 20  76 6f 69 63 65 73 20 61  | with 8 voices a|
0000a530  63 74 69 76 65 20 70 72  65 76 69 6f 75 73 6c 79  |ctive previously|
0000a540  20 6e 6f 77 20 77 6f 72  6b 73 20 2d 0a 20 20 20  | now works -.   |
0000a550  20 20 20 20 20 65 67 2e  20 77 68 65 6e 20 69 6e  |     eg. when in|
0000a560  74 65 72 72 75 70 74 69  6e 67 20 21 4d 61 65 73  |terrupting !Maes|
0000a570  74 72 6f 29 2e 0a 0a 56  65 72 73 69 6f 6e 20 34  |tro)...Version 4|
0000a580  2e 30 37 0a 20 20 20 2d  20 43 68 61 6e 67 65 64  |.07.   - Changed|
0000a590  20 63 6f 6d 6d 61 6e 64  20 34 20 61 67 61 69 6e  | command 4 again|
0000a5a0  2e 2e 20 69 74 20 77 61  73 6e 27 74 20 62 75 67  |.. it wasn't bug|
0000a5b0  67 65 64 2c 20 49 20 6a  75 73 74 20 63 68 61 6e  |ged, I just chan|
0000a5c0  67 65 64 20 74 68 65 20  73 70 65 63 73 2e 0a 20  |ged the specs.. |
0000a5d0  20 20 20 20 20 20 20 49  74 20 73 65 65 6d 73 20  |       It seems |
0000a5e0  74 68 61 74 20 73 6f 6d  65 20 70 6c 61 79 65 72  |that some player|
0000a5f0  73 20 64 69 73 61 67 72  65 65 20 6f 6e 20 77 68  |s disagree on wh|
0000a600  61 74 20 63 6f 6d 6d 61  6e 64 20 34 20 73 68 6f  |at command 4 sho|
0000a610  75 6c 64 20 62 65 2c 20  61 6e 64 0a 20 20 20 20  |uld be, and.    |
0000a620  20 20 20 20 49 27 6d 20  6e 6f 77 20 69 6d 70 6c  |    I'm now impl|
0000a630  65 6d 65 6e 74 69 6e 67  20 69 74 20 61 73 20 76  |ementing it as v|
0000a640  61 72 79 69 6e 67 20 74  68 65 20 70 69 74 63 68  |arying the pitch|
0000a650  20 28 61 73 20 6d 75 63  68 20 6f 76 65 72 20 61  | (as much over a|
0000a660  73 20 62 65 6c 6f 77 0a  20 20 20 20 20 20 20 20  |s below.        |
0000a670  74 68 65 20 6f 72 69 67  69 6e 61 6c 20 70 69 74  |the original pit|
0000a680  63 68 29 2e 0a                                    |ch)..|
0000a685