Quick-Start
-----------
Use
> make
to create executables (*.bin) to the working directory.
Use
> make bins
to create boot images (also named *.bin) into the code/ subdirectory.


TODO:
- Redo control so that SD card does not need to be reinitialized and
  the number of files checked for each file.
- Make a SCI-controlled version with a delete file function
- play in alphabetic order, by directories?
- ff and rewind
- use a separate buffer for ReadDiskSector() (Like in Panu's version)

20111102
- recorder: free space cache did not check if card is changed!
- MMC/SD initialization now more in-spec
- card ID is now read to detect card change
- free space is cached to speed up start of recording
- mp3 quantizer fix (for 13-16kHz band), checks/fixes channel swap

20110928
- Only every second byte was endFillByte. (fixed)
- Recorder: both mono and stereo now create MP3 files.
	    (Mono was WAV for debugging purposes.)
20110920
- recorder: created file suffix changes between .mp3, .ogg and .wav
	    depending on the encoding format used.
- recorder: RIFF WAV size fields are now updated
- recorder: file creation date default value set to 0
- cleaned out unused functions and asm files
- ReadDiskSectorTo() takes a buffer parameter
- recorder: uses GPIO6-DREQ jumped to select between mono mic and stereo
	    line-in modes for recording. (Remember to also switch jumper
	    between JP18 / JP20.)
- recorder: caches free card space start and size, so it does not need to
	    be determined separately for all recordings (taking time).

20110819
- recorder: configuration for different formats added, buffer management
	    rewritten, wav header generation removed (comes from the data
	    stream automatically now).
- recorder: creates valid files, i.e. uses the correct end-encoding procedure
	    and saves with one-byte granularity.

20110713
- vs1063 version, main loop updated

20100128
- Timeout added to ReadDiskSector(), which now returns block unchanged in
  timeout condition.
- HandleDir() now memset:s stream_buffer before calling
  ReadDiskSector(), so it will return if card is removed.

