MPlay driver module
-------------------
v3.22 18/2/24

Implementation is as the ESP documentation except as follows.

SWI's:

MIDIPlay_File: only "load file to memory" supported
      r0 = 0,  load file to memory
      
MIDIPlay_Info:   fully supported plus,
      additional return value,
      r4 = address of lyrics data structure
          r4 + 0 = size of lyrics circular char buffer
          r4 + 4 = read buffer index
          r4 + 8 = write buffer index
          r4 + 12 = char buffer start
          
  The buffer contains the most recent output, i.e. oldest
  characters are lost on overflow. It is empty when
  read = write.
  
The followind swi's are not implemented:
MIDIPlay_Player
MIDIPlay_Pattern
MIDIPlay_PatternParameter
MIDIPlay_PatternPlay
MIDIPlay_PatternEvent
MIDIPlay_Test
MIDIPlay_Event
MIDIPlay_Text


Additional command:

 Syntax: MidiPlayer [-option [-option ...]]
 
 Options:
   -t<x> x = tempo in percent, (10..1000)
   -p<x> x = pitch transpose in semitones (-12..+12)
   -i display information
   
 Following options are used for testing
   -o open log file in the current directory
   -c close log file
   -d<x> x = the sum of the following values
     1 = log swi calls
     2 = log midi messages
     4 = log lyrics text
     8 = log main function calls
    16 = -i provides detailed timing info
