/**
  \example sdcard3.cpp 

  This fairly complicated sketch demonstrates streaming disk I/O via a
  simple packet protocol.  It supports initializing an SD card on any
  face, setting the current block number, and performing buffered
  reads and writes to sequential addresses on the card.

  Here, first I initialized to the east with 'ie', then set the block
  number to 20000, then wrote some data with 'w' packets, and finally
  read it back with 'r' packets.

  \code
  ie
  Ln 241.416 Card has 7563000 blocks
  b20000
  wNow we can blast data into the disk just about
  w as fast as we can send packets.  Let's
  w do a sync now, to make sure everything's stashed safely..
  s
  b20000
  r
  L:Now we can blast data into the d
  r
  L:isk just about as fast as we can
  r
  L: send packets.  Let's do a sync 
  r
  L:now, to make sure everything's s
  r
  L:tashed safely..[00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00][00]
  \endcode

  In that example, I did a 'sync' between the writing and reading, but
  that wasn't strictly necessary -- the ensuing reads would have
  worked without it -- but if I'd done, say, another 'ie' instead
  without syncing, some or all (in this case, all) of my writes would
  have been lost.

  Note also that when I read beyond what I'd written, I got 'null
  bytes', which this sketch printed as '[00]' because of the handy '#'
  flag provided in the '%\#c' printf format.  If your disk has already
  been used for data storage, you might see any values there instead.

 */
