code: def write(self, block_address, data):
          
          buf = []
          buf.append(self.act_write)
          buf.append(block_address)
          crc = self.calculate_crc(buf)
          buf.append(crc[0])
          buf.append(crc[1])
          (error, back_data, back_length) = self.card_write(self.mode_transrec, buf)
          if not(back_length == 4) or not((back_data[0] & 0x0F) == 0x0A):
              error = True
  
          if not error:
              buf_w = []
              for i in range(16):
                  buf_w.append(data[i])
  
              crc = self.calculate_crc(buf_w)
              buf_w.append(crc[0])
              buf_w.append(crc[1])
              (error, back_data, back_length) = self.card_write(self.mode_transrec, buf_w)
              if not(back_length == 4) or not((back_data[0] & 0x0F) == 0x0A):
                  error = True
  
          return error
docs: Writes data to block. You should be authenticated before calling write.
          Returns error state.