def reset(self):
        """ Initial state
        """
        self.regs = {}
        self.stack = []
        self.mem = defaultdict(new_tmp_val)  # Dict of label -> value in memory

        for i in 'abcdefhl':
            self.regs[i] = new_tmp_val()  # Initial unknown state
            self.regs["%s'" % i] = new_tmp_val()

        self.regs['ixh'] = new_tmp_val()
        self.regs['ixl'] = new_tmp_val()
        self.regs['iyh'] = new_tmp_val()
        self.regs['iyl'] = new_tmp_val()
        self.regs['sp'] = new_tmp_val()
        self.regs['r'] = new_tmp_val()
        self.regs['i'] = new_tmp_val()

        self.regs['af'] = new_tmp_val()
        self.regs['bc'] = new_tmp_val()
        self.regs['de'] = new_tmp_val()
        self.regs['hl'] = new_tmp_val()

        self.regs['ix'] = new_tmp_val()
        self.regs['iy'] = new_tmp_val()

        self.regs["af'"] = new_tmp_val()
        self.regs["bc'"] = new_tmp_val()
        self.regs["de'"] = new_tmp_val()
        self.regs["hl'"] = new_tmp_val()

        self._16bit = {'b': 'bc', 'c': 'bc', 'd': 'de', 'e': 'de', 'h': 'hl', 'l': 'hl',
                       "b'": "bc'", "c'": "bc'", "d'": "de'", "e'": "de'", "h'": "hl'", "l'": "hl'",
                       'ixy': 'ix', 'ixl': 'ix', 'iyh': 'iy', 'iyl': 'iy', 'a': 'af', "a'": "af'",
                       'f': 'af', "f'": "af'"}

        self.reset_flags()