public AsmService() { _asmReader = new AsmReader(@"s:\source\repos\Robotron_2084\Disassemblies\Robotron (Apple).asm"); _addressByLabel = _asmReader.AddressByLabelDictionary(); _labelByAddress = _asmReader.LabelByAddressDictionary(); _asmLineByAddress = _asmReader.AsmLineByAddressDictionary(); }
static void Main(string[] args) { /* * using (var reader = new StreamReader( @"s:\source\repos\Robotron_2084\VirtuRoX\tmp\MemoryOperations.csv" )) * using (var csv = new CsvReader( reader, Thread.CurrentThread.CurrentCulture )) { * _records = csv.GetRecords<RecordedMemoryOperation>().ToList(); * } * * var bla = _records.GroupBy( info => info.Address ).Select( group => new Tuple<int, int>( group.Key, group.Count() ) ).OrderBy( x => x.Item1 ); * _dict = bla.ToDictionary( x => x.Item1 ); * Console.WriteLine( _dict.Count ); * object[,] res = GetReadCounts( 224, 32 ); * Console.WriteLine( _dict.ToString() ); * return; */ /* * AsmLinesWindow wnd1 = new AsmLinesWindow(); * wnd1.ShowDialog(); * return; */ Parser.Default.ParseArguments <Options>(args) .WithParsed <Options>(o => { ConsoleTraceListener tracer = new ConsoleTraceListener(); Trace.Listeners.Add(tracer); Trace.WriteLine("Main() start"); AsmReader reader = new AsmReader(@"s:\source\repos\Robotron_2084\Disassemblies\Robotron (Apple).asm"); //reader.Test1(); Trace.WriteLine($"Running workbench{(o.Breakpoints ? "with" : "without")} breakpoints: -b {o.Breakpoints}"); using (_machineOperator = new MachineOperator()) { if (o.Breakpoints) { // _machineOperator.OnPaused += MachineOperator_OnPaused; _workbench = new Workbench(_machineOperator, o); } else { _machineOperator.OnLoaded += ( MachineOperator mo ) => mo.LoadStateFromFile(mo.BlaBin); } //Form1 frm = new Form1(); //frm.Populate(); //frm.Show(); _machineOperator.ShowDialog(); } Trace.WriteLine("Main() end"); Trace.Flush(); Trace.Listeners.Remove(tracer); tracer.Close(); Trace.Close(); }); }
public AsmLinesWindow() { InitializeComponent(); AsmReader = new AsmReader(@"s:\source\repos\Robotron_2084\Disassemblies\Robotron (Apple).asm"); PopulateListbox(); listBox.ItemsSource = _items; listBox.SelectedIndex = 0; listBox.Focus(); CreateKeyboardShortcuts(); }
public XlWorkbench() { _reader = new AsmReader(@"s:\source\repos\Robotron_2084\Disassemblies\Robotron (Apple).asm"); using (var reader = new StreamReader(@"s:\source\repos\Robotron_2084\VirtuRoX\tmp\MemoryOperations.csv")) using (var csv = new CsvReader(reader, Thread.CurrentThread.CurrentCulture)) { _records = csv.GetRecords <RecordedMemoryOperation>().ToList(); } _readsByAddress = _records .Where(info => info.Type == RecordedOperationType.Read) .GroupBy(info => info.Address) .ToDictionary(group => group.Key, group => group.ToList()); _readCountsByAddress = _records .Where(info => info.Type == RecordedOperationType.Read) .GroupBy(info => info.Address) .Select(group => new Tuple <int, int>(group.Key, group.Count())) .OrderBy(x => x.Item1) .ToDictionary(x => x.Item1); _writeCountsByAddress = _records .Where(info => info.Type == RecordedOperationType.Write) .GroupBy(info => info.Address) .Select(group => new Tuple <int, int>(group.Key, group.Count())) .OrderBy(x => x.Item1) .ToDictionary(x => x.Item1); using (var reader = new StreamReader(@"s:\source\repos\Robotron_2084\VirtuRoX\tmp\ExecutedOperations.csv")) using (var csv = new CsvReader(reader, Thread.CurrentThread.CurrentCulture)) { _executed = csv.GetRecords <RecordedExecutedOperation>().ToList(); } _executedCountsByAddress = _executed .Where(info => info.Type == RecordedOperationType.Executed) .GroupBy(info => info.OpcodeRPC) .Select(group => new Tuple <int, int>(group.Key, group.Count())) .OrderBy(x => x.Item1) .ToDictionary(x => x.Item1); }