<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def request_system_code(self):
 """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`. """

        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)]