SoundControl module provides

* *MixVolume <system> <category> <index> <mute> <gain>
  
  system: only 0 defined so far (on-board sound output system)
  category: -1 = speaker
            -2 = headphones
            -3 = line out (not used on Iyonix)
            -4 = aux out (a header on the board)
            0 = system audio
            1 = mic
            2 = line in
            3 = aux in [index 0 usually CD-ROM]
  index: allows eg multiple CD sources
  mute: 0 / 1
  gain (signed int): dB * 16

* SWI SoundCtrl_ExamineMixer (&50000)
  In:   r0 = system
        r1 -> word-aligned block
        r2 = block size (may be 0)
  Out: block filled with as many as poss of following blocks:
         byte pos  content
         0-1       flags: bit 0 set => fixed
                          bit 1 set => mono
                          bit 2 set => muted by default
         2-3       category
         4-7       minimum gain (dB*16)
         8-11      maximum gain (dB*16)
         12-15     minimum step size/granularity (dB*16)
        
        r0,r1 preserved
        r2 decremented by number of bytes needed for complete description
           (ie if 0 on entry, now holds negative of buffer size required)
        r3 = individual block size (bytes) - will be a multiple of 4
        r4 = number of blocks placed in buffer
  Should be called twice, first to determine buffer size, then to fill in buffer.
  This is to allow block to be enlarged in future.
  Currently, valid block sizes are 4 bytes and 16 bytes.

* SWI SoundCtrl_SetMix (&50001) is equivalent SWI to *MixVolume
  r0 = system
  r1 = category
  r2 = channel index
  r3 = mute (0/1)
  r4 = gain (dB*16)

* SWI SoundCtrl_GetMix (&50002)
  r0 = system
  r1 = category
  r2 = channel index
  on exit:
  r3 = mute (0/1)
  r4 = gain (dB*16)
