private List <Symbol.Label> symbol_loader(String path) { List <Symbol.Label> tmp = new List <Symbol.Label>(); if (File.Exists(path)) { using (StreamReader symbolFileReader = new StreamReader(File.OpenRead(path))) { Regex r = new Regex(@"(\d+):([a-f0-9]+)\s(.+)", RegexOptions.IgnoreCase); while (!symbolFileReader.EndOfStream) { String s = symbolFileReader.ReadLine(); if (r.IsMatch(s)) { GroupCollection gc = r.Match(s).Groups; Symbol.Label label = new Symbol.Label(); if (byte.TryParse(gc[1].Value, NumberStyles.HexNumber, CultureInfo.CurrentCulture, out byte b)) { label.bank = b; } if (ushort.TryParse(gc[2].Value, NumberStyles.HexNumber, CultureInfo.CurrentCulture, out ushort a)) { label.address = a; } label.description = gc[3].Value; tmp.Add(label); } } } } return(tmp); }
private String getLabelForAddress(byte mbc, ushort address) { //look for symbol label Symbol.Label sl = labels.Find(s => s.address == address); if (sl != null) { return(sl.description); } return(""); }