code: def new_data(self, mem, addr, data):
          
          done = False
          if mem.id == self.id:
              if addr == LocoMemory.MEM_LOCO_INFO:
                  self.nr_of_anchors = data[0]
                  if self.nr_of_anchors == 0:
                      done = True
                  else:
                      self.anchor_data = \
                          [AnchorData() for _ in range(self.nr_of_anchors)]
                      self._request_page(0)
              else:
                  page = int((addr - LocoMemory.MEM_LOCO_ANCHOR_BASE) /
                             LocoMemory.MEM_LOCO_ANCHOR_PAGE_SIZE)
  
                  self.anchor_data[page].set_from_mem_data(data)
  
                  next_page = page + 1
                  if next_page < self.nr_of_anchors:
                      self._request_page(next_page)
                  else:
                      done = True
  
          if done:
              self.valid = True
              if self._update_finished_cb:
                  self._update_finished_cb(self)
                  self._update_finished_cb = None
docs: Callback for when new memory data has been fetched