コード例 #1
0
        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);
        }
コード例 #2
0
 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("");
 }