public override void ReadSource(SymSource aSource, TSynchronicity aSynchronicity) { SymbolSource source = (SymbolSource)aSource; // SymbolFileData data = source.ExcavateData(); SymbolFileReader reader = new SymbolFileReader(source, data); reader.Read(aSynchronicity); }
public override void Main(Z80DasmArgs args) { WriteInfoMessage("Disassembling ~Cyan~{0}~R~", args.InputBinaryFile); var symbolFile = Path.ChangeExtension( Path.GetFullPath(args.InputBinaryFile.FullName), "symbols"); Dictionary <ushort, string> symbols; if (File.Exists(symbolFile)) { WriteSuccessMessage("Found symbol file ~Cyan~{0}~R~", symbolFile); symbols = SymbolFileReader.Read(symbolFile); } else { WriteInfoMessage("Could not find symbol file for binary"); symbols = new Dictionary <ushort, string>(); } string dasm; using (var reader = new BinaryReader(args.InputBinaryFile.OpenRead())) { var disassembler = new Z80Disassembler(reader, symbols); var instructions = disassembler.Disassemble(); dasm = new Z80AssemblyFormatter(symbols).Format(instructions); } if (!string.IsNullOrEmpty(args.OutputDisassemblyFile)) { WriteInfoMessage( "Writing disassembled instructions to ~Cyan~{0}~R~", args.OutputDisassemblyFile); File.WriteAllText(args.OutputDisassemblyFile, dasm); } else { Cli.WriteLine(Cli.Escape(dasm)); } WriteSuccessMessage("Done"); }