AddFromString() public method

public AddFromString ( int address, string hexData ) : void
address int
hexData string
return void
示例#1
0
        public static Memory ReadHexFile(string filename)
        {
            if (!File.Exists(filename))
            {
                throw new InvalidOperationException("File does not exist!");
            }

            int    baseAddress = 0;
            Memory memory      = new Memory();

            foreach (string line in File.ReadAllLines(filename))
            {
                if (line[0] != ':')
                {
                    throw new InvalidOperationException("File does not look like a valid Hex file...");
                }

                byte lenght  = byte.Parse(line.Substring(1, 2), NumberStyles.HexNumber);
                int  address = int.Parse(line.Substring(3, 4), NumberStyles.HexNumber);
                byte recType = byte.Parse(line.Substring(7, 2), NumberStyles.HexNumber);

                if (recType == 0x00) // data record
                {
                    memory.AddFromString(baseAddress | address, line.Substring(9, lenght * 2));
                }

                if (recType == 0x01) // end of record
                {
                    break;
                }

                if (recType == 0x04) // extended address
                {
                    baseAddress   = int.Parse(line.Substring(9, 4), NumberStyles.HexNumber);
                    baseAddress <<= 16;
                }
            }
            return(memory);
        }