public DisasmViewer(AddressSpace Mem, M6502 Cpu) { // Setup form InitializeComponent(); mem = Mem; CPU = Cpu; // Setup Addresses startAddress = 0; endAddress = startAddress; if (followPC) { startAddress = CPU.PC; } // Create disassembler object dasm = new M6502DASM(mem, CPU); // Setup drawing objects NormalFontBrush = new SolidBrush(Color.Black); CurAddressBrush = new SolidBrush(Color.Yellow); NormalFont = new Font("Courier New", 10); // Setup bitmap gr = new System.Drawing.Bitmap(376, 400); g = Graphics.FromImage(gr); }
private void ShowDisassembly() { byte[] data = new byte[lDisk.SectorSize * sectorsToBoot]; byte[] sec; for (int i = 0; i <= sectorsToBoot - 1; i++) { sec = lDisk.ReadSector(i + 1); sec.CopyTo(data, i * lDisk.SectorSize); } M6502DASM disasm = new M6502DASM(data, loadAddress - 3); UIDisassembly.Text = disasm.Disassemble(); }
public LineAsm(AddressSpace Mem, M6502 Cpu) { // Setup form InitializeComponent(); mem = Mem; CPU = Cpu; // Create assembler and disassembler objects dasm = new M6502DASM(mem, CPU); asm = new Assembler(); // Init form fields txtLine.Text = ""; txtAddr.Text = "1000"; }
public void DisassembleBinaryLoadFile(BinaryLoadFile file, string destFileName) { StreamWriter sw = new StreamWriter(destFileName); StringBuilder s; BinaryLoadSegment seg = new BinaryLoadSegment(); for (int i = 0; i <= file.SegmentCount - 1; i++) { seg = file.Segment(i); s = new StringBuilder(); s.Append(string.Format("Segment {0}",i)); s.Append(string.Format(", Start Address: {0}" ,seg.StartAddress)); s.Append(string.Format(", End Address: {0}",seg.EndAddress)); sw.WriteLine(s.ToString()); sw.WriteLine(""); disAsm = new M6502DASM(seg.Data, seg.StartAddress); sw.Write(disAsm.Disassemble()); } sw.Close(); }
public DisAsmView(byte[] data) { dat = data; disasm = new M6502DASM(dat, 0); // Setup drawing objects NormalFontBrush = new SolidBrush(Color.Black); NormalFont = new Font("Courier New", 10); // Setup bitmap gr = new System.Drawing.Bitmap(100, 100); g = Graphics.FromImage(gr); //Determine the size of the text SizeF size; size = g.MeasureString("00 ", NormalFont); LineHeight = (int)Math.Ceiling(size.Height); DataWidth = (int)Math.Ceiling(size.Width); size = g.MeasureString("0000:", NormalFont); AddrWidth = (int)Math.Ceiling(size.Width); }
private void cbSegments_SelectedIndexChanged(System.Object sender, System.EventArgs e) { BinaryLoadSegment seg; seg = _file.Segment(cbSegments.SelectedIndex); M6502DASM disasm = new M6502DASM(seg.Data, seg.StartAddress); txtDisasm.Text = disasm.Disassemble(); }