code: def request_system_code(self):
          
          log.debug("request system code list")
          a, e = self.pmm[3] & 7, self.pmm[3] >> 6
          timeout = max(302E-6 * (a + 1) * 4**e, 0.002)
          data = self.send_cmd_recv_rsp(0x0C, '', timeout, check_status=False)
          if len(data) != 1 + data[0] * 2:
              log.debug("insufficient data received from tag")
              raise tt3.Type3TagCommandError(tt3.DATA_SIZE_ERROR)
          return [unpack(">H", data[i:i+2])[0] for i in range(1, len(data), 2)]
docs: Return all system codes that are registered in the card.
  
          A card has one or more system codes that correspond to logical
          partitions (systems). Each system has a system code that could
          be used in a polling command to activate that system. The
          system codes responded by the card are returned as a list of
          16-bit integers. ::
  
              for system_code in tag.request_system_code():
                  print("System {0:04X}".format(system_code))
  
          Command execution errors raise :exc:`~nfc.tag.TagCommandError`.