private void assembleButton_Click(object sender, EventArgs e) { string game = GetChosenGame(); if (textFile == null || binaryFile == null) { MessageBox.Show("Choose both files"); } else if (!File.Exists(textFile)) { MessageBox.Show("Text file doesn't exist."); } else if (!Nintenlord.Event_Assembler.Core.Program.CodesLoaded) { MessageBox.Show("Raws not loaded"); } else { #if DEBUG lastMessages = new StringWriter(); var messageLog = new TextWriterMessageLog(lastMessages); Core.Program.Assemble(textFile, binaryFile, game, messageLog); PrintAll(messageLog); #else assemblyBackgroundWorker.RunWorkerAsync(Tuple.Create(textFile, binaryFile, game)); #endif } }
void MainForm_KeyDown(object sender, KeyEventArgs e) { if (e.Control && e.Alt && (e.KeyCode == Keys.P)) { lastMessages = new StringWriter(); var messageLog = new TextWriterMessageLog(lastMessages); Core.Program.Preprocess(textFile, binaryFile, GetChosenGame(), messageLog); PrintAll(messageLog); } }
private void disassembleButton_Click(object sender, EventArgs e) { string game = GetChosenGame(); DisassemblyMode mode = GetChosenMode(); if (textFile == null || binaryFile == null) { MessageBox.Show("Choose both files"); } else if (!File.Exists(binaryFile)) { MessageBox.Show("ROM file doesn't exist."); } else if (!Nintenlord.Event_Assembler.Core.Program.CodesLoaded) { MessageBox.Show("Raws not loaded"); } else { #if DEBUG lastMessages = new StringWriter(); var messageLog = new TextWriterMessageLog(lastMessages); Priority priority; if (mode == DisassemblyMode.Block || mode == DisassemblyMode.ToEnd) { if (!GetPriority(out priority)) { return; } } else { priority = Priority.none; } Core.Program.Disassemble(binaryFile, textFile, game, this.checkBoxEnder.Checked, mode, (int)OffsetControl.Value, priority, (int)LengthControl.Value, messageLog); PrintAll(messageLog); #else disassemblyBackgroundWorker.RunWorkerAsync(Tuple.Create(binaryFile, textFile, game, (int)OffsetControl.Value, (int)LengthControl.Value, mode, this.checkBoxEnder.Checked)); #endif } }
private static int Main(string[] args) { TextWriterMessageLog writerMessageLog = new TextWriterMessageLog(Console.Error); StreamWriter logWriter = null; if ((Program.RunConfig = ReadProgramArguments(args, (ILog)writerMessageLog)) != null) { if (Program.RunConfig.errorFile != null) { logWriter = new StreamWriter(Program.RunConfig.errorFile); writerMessageLog.Writer = logWriter; } // doc generation does raw loading on its own, load in a standard manner for everything else if (Program.RunConfig.execType != ProgramRunConfig.RunExecType.GenDoc) { Program.LoadCodes(false); } switch (Program.RunConfig.execType) { case ProgramRunConfig.RunExecType.GenDoc: Program.MakeDoc( Program.RunConfig.outputFile, Program.RunConfig.rawsFolder, Program.RunConfig.rawsExtension, Program.RunConfig.isDirectory, Program.RunConfig.docHeader, Program.RunConfig.docFooter ); break; case ProgramRunConfig.RunExecType.GenPNHighlight: try { HighlightingHelper.GetProgrammersNotepadlanguageDoc( (IEnumerable <EACodeLanguage>)Program.Languages.Values, Program.RunConfig.outputFile ); } catch (Exception e) { writerMessageLog.AddError(e.Message); } break; case ProgramRunConfig.RunExecType.GenNppHighlight: throw new NotImplementedException(); case ProgramRunConfig.RunExecType.Disassemble: Program.Disassemble((ILog)writerMessageLog); break; case ProgramRunConfig.RunExecType.Assemble: Program.Assemble((ILog)writerMessageLog); break; } } int exitStatus = 0; if (writerMessageLog.ErrorCount != 0) { exitStatus = 1; } if (Program.RunConfig == null || !Program.RunConfig.quiet) { writerMessageLog.PrintAll(); } writerMessageLog.Clear(); if (logWriter != null) { logWriter.Dispose(); } return(exitStatus); }
public MainForm() { InitializeComponent(); this.OffsetControl.Maximum = 0x20000000; this.LengthControl.Maximum = 0x20000000; this.MinimumSize = this.Size; #if DEBUG this.KeyPreview = true; this.KeyDown += new KeyEventHandler(MainForm_KeyDown); #endif this.Move += new EventHandler((x, y) => FormHelpers.ClingToScreenEndges(x as Form, 20)); this.Load += new EventHandler(MainForm_Load); this.assemblyBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler( (sender, args) => { lastMessages = new StringWriter(); var messageLog = new TextWriterMessageLog(lastMessages); var tuple = args.Argument as Tuple <string, string, string>; #if DEBUG try { #endif Core.Program.Assemble(tuple.Item1, tuple.Item2, tuple.Item3, messageLog); #if DEBUG } catch (Exception e) { messageLog.AddError("Exception: " + e.ToString()); } #endif args.Result = messageLog; }); this.assemblyBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler( (sender, args) => PrintAll(args.Result as MessageLog)); this.disassemblyBackgroundWorker.DoWork += new System.ComponentModel.DoWorkEventHandler( (sender, args) => { lastMessages = new StringWriter(); var messageLog = new TextWriterMessageLog(lastMessages); var tuple = args.Argument as Tuple <string, string, string, int, int, DisassemblyMode, bool>; Priority priority; if (tuple.Item6 == DisassemblyMode.Block || tuple.Item6 == DisassemblyMode.ToEnd) { if (!GetPriority(out priority)) { return; } } else { priority = Priority.none; } try { Core.Program.Disassemble(tuple.Item1, tuple.Item2, tuple.Item3, tuple.Item7, tuple.Item6, tuple.Item4, priority, tuple.Item5, messageLog); } catch (Exception e) { messageLog.AddError("Exception: " + e.ToString()); } args.Result = messageLog; }); this.disassemblyBackgroundWorker.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler( (sender, args) => PrintAll(args.Result as MessageLog)); }