def add_ti_txt(self, lines, overwrite=False):
        """Add given TI-TXT string `lines`. Set `overwrite` to ``True`` to
        allow already added data to be overwritten.

        """

        address = None
        eof_found = False

        for line in StringIO(lines):
            # Abort if data is found after end of file.
            if eof_found:
                raise Error("bad file terminator")

            line = line.strip()

            if len(line) < 1:
                raise Error("bad line length")

            if line[0] == 'q':
                eof_found = True
            elif line[0] == '@':
                try:
                    address = int(line[1:], 16)
                except ValueError:
                    raise Error("bad section address")
            else:
                # Try to decode the data.
                try:
                    data = bytearray(binascii.unhexlify(line.replace(' ', '')))
                except (TypeError, binascii.Error):
                    raise Error("bad data")

                size = len(data)

                # Check that there are correct number of bytes per
                # line. There should TI_TXT_BYTES_PER_LINE. Only
                # exception is last line of section which may be
                # shorter.
                if size > TI_TXT_BYTES_PER_LINE:
                    raise Error("bad line length")

                if address is None:
                    raise Error("missing section address")

                self._segments.add(_Segment(address,
                                            address + size,
                                            data,
                                            self.word_size_bytes),
                                   overwrite)

                if size == TI_TXT_BYTES_PER_LINE:
                    address += size
                else:
                    address = None

        if not eof_found:
            raise Error("missing file terminator")
def add_ti_txt ( self , lines , overwrite = False ) : address = None eof_found = False for line in StringIO ( lines ) : if eof_found : raise Error ( "bad file terminator" ) line = line . strip ( ) if len ( line ) < 1 : raise Error ( "bad line length" ) if line [ 0 ] == 'q' : eof_found = True elif line [ 0 ] == '@' : try : address = int ( line [ 1 : ] , 16 ) except ValueError : raise Error ( "bad section address" ) else : try : data = bytearray ( binascii . unhexlify ( line . replace ( ' ' , '' ) ) ) except ( TypeError , binascii . Error ) : raise Error ( "bad data" ) size = len ( data ) if size > TI_TXT_BYTES_PER_LINE : raise Error ( "bad line length" ) if address is None : raise Error ( "missing section address" ) self . _segments . add ( _Segment ( address , address + size , data , self . word_size_bytes ) , overwrite ) if size == TI_TXT_BYTES_PER_LINE : address += size else : address = None if not eof_found : raise Error ( "missing file terminator" )
Add given TI-TXT string `lines`. Set `overwrite` to ``True`` to
        allow already added data to be overwritten.