private void AssembleButton_Click(object sender, EventArgs e)
        {
            if (SourceFilePathTextBox.Text == string.Empty)
            {
                SaveFileDialog.Filter   = "asm file (*.asm)|*.asm";
                SaveFileDialog.FileName = "";
                if (SaveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    sourcepath = SaveFileDialog.FileName;
                    SourceFilePathTextBox.Text = sourcepath;
                }
            }

            StreamWriter sw = new StreamWriter(sourcepath, false);

            for (int i = 0; i < SourceRichTextBox.Lines.Length; i++)
            {
                sw.WriteLine(SourceRichTextBox.Lines[i]);
            }
            sw.Close();
            OutputRichTextBox.Text = "";

            int[] intarray = new int [1];
            MIPS246.Core.Assembler.Assembler assembler = new MIPS246.Core.Assembler.Assembler(sourcepath, outputpath);
            if (assembler.DoAssemble() == true)
            {
                for (int i = 0; i < assembler.CodeList.Count; i++)
                {
                    assembler.CodeList[i].Machine_Code.CopyTo(intarray, 0);
                    if (HEXRadioButton.Checked == false)
                    {
                        OutputRichTextBox.Text += "0x" + String.Format("{0:X8}", assembler.CodeList[i].Address) + ":\t" + string.Format("{0:x}", Convert.ToString(intarray[0], 2)).PadLeft(32, '0') + "\r\n";
                    }
                    else
                    {
                        OutputRichTextBox.Text += "0x" + String.Format("{0:X8}", assembler.CodeList[i].Address) + ":\t" + "0x" + string.Format("{0:x}", Convert.ToString(intarray[0], 16)).PadLeft(8, '0') + "\r\n";
                    }
                }

                if (isOutputFile == true)
                {
                    assembler.Output(isOutputCOE, outputpath, false);
                }
            }
            else
            {
                OutputRichTextBox.Text = assembler.Error.ToString();
            }
        }
    public static string SaveTargetCode(string sourceCode, string displayFormat, string outputFormat)
    {
        string output   = "";
        string fileName = Guid.NewGuid().ToString();
        bool   isHEX;

        MIPS246.Core.Assembler.Assembler assembler = new MIPS246.Core.Assembler.Assembler(sourceCode);
        if (outputFormat == "BIN")
        {
            isHEX = false;
        }
        else
        {
            isHEX = true;
        }

        if (assembler.DoAssemble() == true)
        {
            if (outputFormat == "TXT")
            {
                fileName += ".txt";
                assembler.Output(false, HttpContext.Current.Server.MapPath("~") + "/AssemblerOutput/" + fileName, isHEX);
            }
            else
            {
                fileName += ".coe";
                assembler.Output(true, HttpContext.Current.Server.MapPath("~") + "/AssemblerOutput/" + fileName, isHEX);
            }
        }
        else
        {
            output = assembler.Error.ToString();
        }

        return(fileName);
    }
        private void AssembleButton_Click(object sender, EventArgs e)
        {
            if (SourceFilePathTextBox.Text == string.Empty)
            {
                SaveFileDialog.Filter = "asm file (*.asm)|*.asm";
                SaveFileDialog.FileName = "";
                if (SaveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    sourcepath = SaveFileDialog.FileName;
                    SourceFilePathTextBox.Text = sourcepath;
                }
            }

            StreamWriter sw = new StreamWriter(sourcepath, false);
            for (int i = 0; i < SourceRichTextBox.Lines.Length; i++)
            {
                sw.WriteLine(SourceRichTextBox.Lines[i]);
            }
            sw.Close();
            OutputRichTextBox.Text = "";

            int[] intarray=new int [1];
            MIPS246.Core.Assembler.Assembler assembler = new MIPS246.Core.Assembler.Assembler(sourcepath, outputpath);
            if (assembler.DoAssemble() == true)
            {
                for (int i = 0; i < assembler.CodeList.Count; i++)
                {
                    assembler.CodeList[i].Machine_Code.CopyTo(intarray,0);
                    if (HEXRadioButton.Checked == false)
                    {
                        OutputRichTextBox.Text += "0x" + String.Format("{0:X8}", assembler.CodeList[i].Address) + ":\t"  + string.Format("{0:x}", Convert.ToString(intarray[0], 2)).PadLeft(32, '0') + "\r\n";
                    }
                    else
                    {
                        OutputRichTextBox.Text += "0x" + String.Format("{0:X8}", assembler.CodeList[i].Address) + ":\t" + "0x" + string.Format("{0:x}", Convert.ToString(intarray[0], 16)).PadLeft(8, '0') + "\r\n";
                    }
                }

                if (isOutputFile == true)
                {
                    assembler.Output(isOutputCOE, outputpath, false);
                }
            }
            else
            {
                OutputRichTextBox.Text = assembler.Error.ToString();
            }
        }
Exemple #4
0
        private void OutputFileButton_Click(object sender, EventArgs e)
        {
            SaveFileDialog.Filter   = "Text file (*.txt)|*.txt|Coe File (*.coe)|*.coe";
            SaveFileDialog.FileName = defaultFileName;
            if (SaveFileDialog.ShowDialog() == DialogResult.OK)
            {
                OutputPathTextBox.Text = SaveFileDialog.FileName;

                AssembleButton_Click(null, null);

                if (Path.GetExtension(SaveFileDialog.FileName) == ".coe")
                {
                    isOutputCOE = true;
                }
                else
                {
                    isOutputCOE = false;
                }
                outputpath = SaveFileDialog.FileName;
            }
            else
            {
                OutputPathTextBox.Text = string.Empty;
            }

            if (OutputPathTextBox.Text == string.Empty)
            {
                return;
            }
            else
            {
                outputpath = OutputPathTextBox.Text;
                if (isOutputFile == true)
                {
                    assembler.Output(isOutputCOE, outputpath, HEXRadioButton.Checked);
                }
            }
        }
        private void AssembleButton_Click(object sender, EventArgs e)
        {
            if (SourceFilePathTextBox.Text == string.Empty)
            {
                SaveFileDialog.Filter = "asm file (*.asm)|*.asm";
                SaveFileDialog.FileName = "";
                if (SaveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    sourcepath = SaveFileDialog.FileName;
                    SourceFilePathTextBox.Text = sourcepath;
                }
                else
                {
                    sourcepath = @"c:\windows\temp\temp.asm";
                    SourceFilePathTextBox.Text = sourcepath;
                }
            }

            StreamWriter sw = new StreamWriter(sourcepath, false);
            for (int i = 0; i < SourceRichTextBox.Lines.Length; i++)
            {
                sw.WriteLine(SourceRichTextBox.Lines[i]);
            }
            sw.Close();
            OutputRichTextBox.Text = "";

            bool[] boolArray = new bool[32];
            outputpath = OutputPathTextBox.Text;
            assembler = new MIPS246.Core.Assembler.Assembler(sourcepath, outputpath);
            if (assembler.DoAssemble() == true)
            {
                for (int i = 0; i < assembler.CodeList.Count; i++)
                {
                    assembler.CodeList[i].Machine_Code.CopyTo(boolArray,0);
                    if (HEXRadioButton.Checked == false)
                    {
                        OutputRichTextBox.Text += "0x" + String.Format("{0:X8}", assembler.CodeList[i].Address) + ":\t";
                        for (int j = 0; j < 32; j++)
                        {
                            if (boolArray[j] == true)
                            {
                                OutputRichTextBox.Text += "1";
                            }
                            else
                            {
                                OutputRichTextBox.Text += "0";
                            }
                        }
                        OutputRichTextBox.Text += "\r\n";
                    }
                    else
                    {
                        OutputRichTextBox.Text += "0x" + String.Format("{0:X8}", assembler.CodeList[i].Address) + ":\t";
                        OutputRichTextBox.Text += FormatHex(boolArray);
                        OutputRichTextBox.Text += "\r\n";
                    }
                }

                if (isOutputFile == true)
                {
                    assembler.Output(isOutputCOE, outputpath, HEXRadioButton.Checked);
                }
            }
            else
            {
                OutputRichTextBox.Text = assembler.Error.ToString();
            }
        }
Exemple #6
0
        private void AssembleButton_Click(object sender, EventArgs e)
        {
            if (SourceFilePathTextBox.Text == string.Empty)
            {
                SaveFileDialog.Filter   = "asm file (*.asm)|*.asm";
                SaveFileDialog.FileName = "";
                if (SaveFileDialog.ShowDialog() == DialogResult.OK)
                {
                    sourcepath = SaveFileDialog.FileName;
                    SourceFilePathTextBox.Text = sourcepath;
                }
                else
                {
                    sourcepath = @"c:\windows\temp\temp.asm";
                    SourceFilePathTextBox.Text = sourcepath;
                }
            }

            StreamWriter sw = new StreamWriter(sourcepath, false);

            for (int i = 0; i < SourceRichTextBox.Lines.Length; i++)
            {
                sw.WriteLine(SourceRichTextBox.Lines[i]);
            }
            sw.Close();
            OutputRichTextBox.Text = "";

            bool[] boolArray = new bool[32];
            outputpath = OutputPathTextBox.Text;
            assembler  = new MIPS246.Core.Assembler.Assembler(sourcepath, outputpath);
            if (assembler.DoAssemble() == true)
            {
                for (int i = 0; i < assembler.CodeList.Count; i++)
                {
                    assembler.CodeList[i].Machine_Code.CopyTo(boolArray, 0);
                    if (HEXRadioButton.Checked == false)
                    {
                        OutputRichTextBox.Text += "0x" + String.Format("{0:X8}", assembler.CodeList[i].Address) + ":\t";
                        for (int j = 0; j < 32; j++)
                        {
                            if (boolArray[j] == true)
                            {
                                OutputRichTextBox.Text += "1";
                            }
                            else
                            {
                                OutputRichTextBox.Text += "0";
                            }
                        }
                        OutputRichTextBox.Text += "\r\n";
                    }
                    else
                    {
                        OutputRichTextBox.Text += "0x" + String.Format("{0:X8}", assembler.CodeList[i].Address) + ":\t";
                        OutputRichTextBox.Text += FormatHex(boolArray);
                        OutputRichTextBox.Text += "\r\n";
                    }
                }

                if (isOutputFile == true)
                {
                    assembler.Output(isOutputCOE, outputpath, HEXRadioButton.Checked);
                }
            }
            else
            {
                OutputRichTextBox.Text = assembler.Error.ToString();
            }
        }
    public static string SaveTargetCode(string sourceCode, string displayFormat, string outputFormat)
    {
        string output = "";
        string fileName = Guid.NewGuid().ToString();
        bool isHEX;
        MIPS246.Core.Assembler.Assembler assembler = new MIPS246.Core.Assembler.Assembler(sourceCode);
        if(outputFormat=="BIN")
        {
            isHEX=false;
        }
        else
        {
            isHEX=true;
        }

        if (assembler.DoAssemble() == true)
        {

            if (outputFormat == "TXT")
            {
                fileName += ".txt";
                assembler.Output(false, HttpContext.Current.Server.MapPath("~") + "/AssemblerOutput/" + fileName, isHEX);
            }
            else
            {
                fileName += ".coe";
                assembler.Output(true, HttpContext.Current.Server.MapPath("~") + "/AssemblerOutput/" + fileName, isHEX);
            }
        }
        else
        {
            output = assembler.Error.ToString();
        }

        return fileName;
    }