Exemple #1
0
        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();
    }
Exemple #3
0
        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();
	}