code: function(modes, callback) {
      if (modes.length != 8) {
        throw "Invalid decode mode array";
      }
      this._decodeModes = modes;
      this._shiftOut(MAX7219._Registers.DecodeMode, this.encodeByte(modes), callback);
    }
docs: Sets this controller's decode mode, specifying how the segments controlled
  by the MAX7219 are set on/off.
  
  When no-decode is selected, data bits correspond to the segments directly.
  When decode mode is selected, certain symbols (only 0-9, E, H, L, P, and -)
  are encoded in a specific way. This is useful for BCD 7 segment displays.
  
  @param array modes
  An array of decode/no-decode modes for each digit.
  E.g., to set decode mode for digits 0–3 and no-decode for 4–7,
  modes would be [1,1,1,1,0,0,0,0].
  
  @param function callback [optional]
  Invoked once the write to the SPI device finishes.