using System.Collections.Generic;
using System.ComponentModel;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Text.RegularExpressions;
using Visio = Microsoft.Office.Interop.Visio;
namespace WindowsFormsApplication4
public partial class Form1 : Form
string all_text, line_str, op_name_str, op_des_str;
Boolean startFlow = false;
public string HEX2ASCII(string hex)
string res = String.Empty;
if ((hex != "0D050123" ) && (hex != "0D850123") && (hex != "0D0790AB") && (hex != "0D8790AB")
&& (hex != "FE00710D") && (hex != "FD00510D") && (hex != "0D4790AB") && (hex != "50A63809") && (hex != "54A63809") && (hex != "5CA63809"))
for (int a = 0; a < hex.Length; a = a + 2)
if ((hex != "0A") && (hex != "0X0A") && (hex != "0x0a"))
string Char2Convert = hex.Substring(a, 2);
if ((Char2Convert != "0A") && (Char2Convert != " #") && (Char2Convert != "#13#"))
int n = Convert.ToInt32(Char2Convert, 16);
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
private void button8_Click(object sender, EventArgs e)
MessageBox.Show(" Dr. Reza Ghorbani\n Dr. Morteza Shafiei\n Dr.Roghayeh Aghazadeh\n Mr.Mostafa.Azad \n Mr.Mojtaba Farzaneh \n \n \t July & August 2023 \t Version 2.0.5.4" +
"", "About Software Group", MessageBoxButtons.OK);
private void timer1_Tick(object sender, EventArgs e)
pictureBox2.Visible = false;
private void Form1_Load(object sender, EventArgs e)
private void button9_Click(object sender, EventArgs e)
button9.BackColor = Color.Yellow;
openFileDialog1.Filter = "Text Files|*.Hex";
openFileDialog1.FileName = String.Empty;
DialogResult result = openFileDialog1.ShowDialog();
if (result == DialogResult.OK)
Stream fs = openFileDialog1.OpenFile();
StreamReader reader = new StreamReader(fs);
richTextBox1.Text = reader.ReadToEnd();
all_text = richTextBox1.Text;
richTextBox1.Text = all_text;
all_text = Regex.Replace(all_text, @"\s+", "");
all_text = Regex.Replace(all_text, @"\n+", "");
button9.BackColor = Color.LightGray;
private void checkBox2_CheckStateChanged(object sender, EventArgs e)
richTextBox1.Visible = !richTextBox1.Visible;
private void button10_Click(object sender, EventArgs e)
private void button5_Click(object sender, EventArgs e)
richTextBox4.Visible = false;
progressBar1.Maximum = linenum;
label1.Text = linenum.ToString();
for (int i = 0; i<= 100; i++)
richTextBox4.Visible = true;
private void button4_Click(object sender, EventArgs e)
private void openFileDialog1_FileOk(object sender, CancelEventArgs e)
private void button1_Click(object sender, EventArgs e)
richTextBox2.Visible = false;
button1.BackColor = Color.Yellow;
openFileDialog1.Filter = "Text Files|*.txt";
openFileDialog1.FileName = String.Empty;
DialogResult result = openFileDialog1.ShowDialog();
richTextBox1.Visible = false;
if (result == DialogResult.OK)
Stream fs = openFileDialog1.OpenFile();
StreamReader reader = new StreamReader(fs);
richTextBox1.Text = reader.ReadToEnd();
all_text = richTextBox1.Text;
button1.BackColor = Color.LightGray;
private void button2_Click(object sender, EventArgs e)
if (richTextBox2.Text != "")
richTextBox1.Text = richTextBox2.Text;
richTextBox1.BackColor = Color.Black;
richTextBox1.ForeColor = Color.White;
button2.BackColor = Color.Yellow;
all_text = richTextBox1.Text;
all_text = Regex.Replace(all_text, @"\s+", "");
all_text = Regex.Replace(all_text, @"\n+", "");
String[] ToTall_Code = new String[I/8];
progressBar1.Maximum = I;
richTextBox4.Visible = false;
k = Convert.ToInt32(textBox2.Text, 16);
for (i = 0; i < I - 8; i += 8)
if (contt == true) break;
line_str = all_text.Substring(i, 8);
line_hex_Code = line_str;
line_str = Convert.ToString(Convert.ToInt32(line_str, 16), 2).PadLeft(32, '0');
uint num = uint.Parse(line_hex_Code, System.Globalization.NumberStyles.AllowHexSpecifier);
byte[] floatVals = BitConverter.GetBytes(num);
float f = BitConverter.ToSingle(floatVals, 0);
string floatnum = Convert.ToString(f);
switch (line_str.Substring(0, 6))
switch (line_str.Substring(6, 5))
op_name_str = "tweqi"; break;
op_name_str = "twnei"; break;
op_name_str = "twlti"; break;
op_name_str = "twlei"; break;
op_name_str = "twgti"; break;
op_name_str = "twgei"; break;
op_name_str = "twllti"; break;
op_name_str = "twllei"; break;
op_name_str = "twlgti"; break;
op_name_str = "twlgei"; break;
op_name_str = "twi"; break;
op_name_str = "mulli"; break;
op_name_str = "subfic"; break;
if (line_str.Substring(9, 2) == "00")
op_name_str = "cmpli"; break;
if (line_str.Substring(9, 2) == "00")
op_name_str = "cmpi"; break;
op_name_str = "addic"; break;
op_name_str = "addic."; break;
op_name_str = "addi"; break;
op_name_str = "addis"; break;
switch (line_str.Substring(30, 2))
switch (line_str.Substring(6, 10))
op_name_str = "beq"; break;
op_name_str = "bne"; break;
op_name_str = "blt"; break;
op_name_str = "ble"; break;
op_name_str = "bgt"; break;
op_name_str = "bge"; break;
op_name_str = "bc"; break;
switch (line_str.Substring(6, 10))
op_name_str = "beq"; break;
op_name_str = "bne"; break;
op_name_str = "blt"; break;
op_name_str = "ble"; break;
op_name_str = "bgt"; break;
op_name_str = "bge"; break;
op_name_str = "bca"; break;
switch (line_str.Substring(6, 10))
op_name_str = "beql"; break;
op_name_str = "bnel"; break;
op_name_str = "bltl"; break;
op_name_str = "blel"; break;
op_name_str = "bgtl"; break;
op_name_str = "bgel"; break;
op_name_str = "bcl"; break;
switch (line_str.Substring(6, 10))
op_name_str = "beql"; break;
op_name_str = "bnel"; break;
op_name_str = "bltl"; break;
op_name_str = "blel"; break;
op_name_str = "bgtl"; break;
op_name_str = "bgel"; break;
op_name_str = "bcla"; break;
if (line_str.Substring(6, 26) == "00000000000000000000000010")
op_name_str = "sc"; break;
switch (line_str.Substring(30, 2))
op_name_str = "b"; break;
op_name_str = "ba"; break;
op_name_str = "bl"; break;
op_name_str = "bla"; break;
switch (line_str.Substring(21, 11))
if (line_str.Substring(9, 2) + line_str.Substring(14, 7) == "000000000")
op_name_str = "mcrf"; break;
if (line_str.Substring(16, 5) == "00000")
switch (line_str.Substring(6, 10))
op_name_str = "beqlr"; break;
op_name_str = "bnelr"; break;
op_name_str = "bltlr"; break;
op_name_str = "blelr"; break;
op_name_str = "bgtlr"; break;
op_name_str = "bgelr"; break;
op_name_str = "bclr"; break;
if (line_str.Substring(16, 5) == "00000")
switch (line_str.Substring(6, 10))
op_name_str = "beqlrl"; break;
op_name_str = "bnelrl"; break;
op_name_str = "bltlrl"; break;
op_name_str = "blelrl"; break;
op_name_str = "bgtlrl"; break;
op_name_str = "bgelrl"; break;
op_name_str = "bclrl"; break;
op_name_str = "crnor"; break;
if (line_str.Substring(6, 15) == "000000000000000")
op_name_str = "rfi"; break;
op_name_str = "crandc"; break;
if (line_str.Substring(6, 15) == "000000000000000")
op_name_str = "isync"; break;
op_name_str = "crxor"; break;
op_name_str = "crnand"; break;
op_name_str = "crand"; break;
op_name_str = "creqv"; break;
op_name_str = "crorc"; break;
op_name_str = "cror"; break;
if (line_str.Substring(16, 5) == "00000")
switch (line_str.Substring(6, 10))
op_name_str = "beqctr"; break;
op_name_str = "bnectr"; break;
op_name_str = "bltctr"; break;
op_name_str = "blectr"; break;
op_name_str = "bgtctr"; break;
op_name_str = "bgectr"; break;
op_name_str = "bcctr"; break;
if (line_str.Substring(16, 5) == "00000")
switch (line_str.Substring(6, 10))
op_name_str = "beqctrl"; break;
op_name_str = "bnectrl"; break;
op_name_str = "bltctrl"; break;
op_name_str = "blectrl"; break;
op_name_str = "bgtctrl"; break;
op_name_str = "bgectrl"; break;
op_name_str = "bcctrl"; break;
if (line_str.Substring(31, 1) == "0")
else if (line_str.Substring(31, 1) == "1")
if (line_str.Substring(31, 1) == "0")
else if (line_str.Substring(31, 1) == "1")
if (line_str.Substring(31, 1) == "0")
else if (line_str.Substring(31, 1) == "1")
op_name_str = "ori"; break;
op_name_str = "oris"; break;
op_name_str = "xori"; break;
op_name_str = "xoris"; break;
op_name_str = "andi."; break;
op_name_str = "andis."; break;
switch (line_str.Substring(21, 11))
if (line_str.Substring(9, 2) == "00")
op_name_str = "cmp"; break;
switch (line_str.Substring(6, 5))
op_name_str = "tweq"; break;
op_name_str = "twne"; break;
op_name_str = "twlt"; break;
op_name_str = "twle"; break;
op_name_str = "twgt"; break;
op_name_str = "twge"; break;
op_name_str = "twllt"; break;
op_name_str = "twlle"; break;
op_name_str = "twlgt"; break;
op_name_str = "twlge"; break;
op_name_str = "trap"; break;
op_name_str = "tw"; break;
op_name_str = "subfc"; break;
op_name_str = "subfc."; break;
op_name_str = "subfco"; break;
op_name_str = "subfco."; break;
op_name_str = "addc"; break;
op_name_str = "addc."; break;
op_name_str = "addco"; break;
op_name_str = "addco."; break;
op_name_str = "mulhwu"; break;
op_name_str = "mulhwu."; break;
if (line_str.Substring(11, 10) == "0000000000")
op_name_str = "mfcr"; break;
op_name_str = "lwarx"; break;
op_name_str = "lwzx"; break;
op_name_str = "slw"; break;
op_name_str = "slw."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "cntlzw"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "cntlzw."; break;
op_name_str = "and"; break;
op_name_str = "and."; break;
if (line_str.Substring(9, 2) == "00")
op_name_str = "cmpl"; break;
op_name_str = "subf"; break;
op_name_str = "subf."; break;
op_name_str = "subfo"; break;
op_name_str = "subfo."; break;
if (line_str.Substring(6, 5) == "00000")
op_name_str = "dcbst"; break;
op_name_str = "lwzux"; break;
op_name_str = "andc"; break;
op_name_str = "andc."; break;
op_name_str = "mulhw"; break;
op_name_str = "mulhw."; break;
if (line_str.Substring(11, 10) == "0000000000")
op_name_str = "mfmsr"; break;
if (line_str.Substring(6, 5) == "00000")
op_name_str = "dcbf"; break;
op_name_str = "lbzx"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "neg"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "neg."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "nego"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "nego."; break;
op_name_str = "lbzux"; break;
op_name_str = "nor"; break;
op_name_str = "nor."; break;
op_name_str = "subfe"; break;
op_name_str = "subfe."; break;
op_name_str = "subfeo"; break;
op_name_str = "subfeo."; break;
op_name_str = "adde"; break;
op_name_str = "adde."; break;
op_name_str = "addeo"; break;
op_name_str = "addeo."; break;
if (line_str.Substring(11, 1) + line_str.Substring(20, 1) == "00")
op_name_str = "mtcrf"; break;
if (line_str.Substring(11, 10) == "0000000000")
op_name_str = "mtmsr"; break;
op_name_str = "stwcx."; break;
op_name_str = "stwux"; break;
op_name_str = "stwx"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "subfze"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "subfze."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "subfzeo"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "subfzeo."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "addze"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "addze."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "addzeo"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "addzeo."; break;
if (line_str.Substring(11, 1) + line_str.Substring(16, 5) == "000000")
op_name_str = "mtsr"; break;
op_name_str = "stbx"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "subfme"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "subfme."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "subfmeo"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "subfmeo."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "addme"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "addme."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "addmeo"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "addmeo."; break;
op_name_str = "mullw"; break;
op_name_str = "mullw."; break;
op_name_str = "mullwo"; break;
op_name_str = "mullwo."; break;
if (line_str.Substring(11, 5) == "00000")
op_name_str = "mtsrin"; break;
if (line_str.Substring(6, 5) == "00000")
op_name_str = "dcbtst"; break;
op_name_str = "stbux"; break;
op_name_str = "add"; break;
op_name_str = "add."; break;
op_name_str = "addo"; break;
op_name_str = "addo."; break;
if (line_str.Substring(6, 5) == "00000")
op_name_str = "dcbt"; break;
op_name_str = "lhzx"; break;
op_name_str = "eqv"; break;
op_name_str = "eqv."; break;
if (line_str.Substring(6, 5) + line_str.Substring(11, 5) == "0000000000")
op_name_str = "tlbie"; break;
op_name_str = "eciwx"; break;
op_name_str = "lhzux"; break;
op_name_str = "xor"; break;
op_name_str = "xor."; break;
switch (line_str.Substring(11, 10))
op_name_str = "mfxer"; break;
op_name_str = "mflr"; break;
op_name_str = "mfctr"; break;
op_name_str = "mfdsisr"; break;
op_name_str = "mfdar"; break;
op_name_str = "mfdec"; break;
op_name_str = "mfsdr1"; break;
op_name_str = "mfsrr0"; break;
op_name_str = "mfsrr1"; break;
op_name_str = "mfsprg0"; break;
op_name_str = "mfsprg1"; break;
op_name_str = "mfsprg2"; break;
op_name_str = "mfsprg3"; break;
op_name_str = "mfear"; break;
op_name_str = "mftbl"; break;
op_name_str = "mftbu"; break;
op_name_str = "mfpvr"; break;
op_name_str = "mfibat0u"; break;
op_name_str = "mfibat0l"; break;
op_name_str = "mfibat1u"; break;
op_name_str = "mfibat1l"; break;
op_name_str = "mfibat2u"; break;
op_name_str = "mfibat2l"; break;
op_name_str = "mfibat3u"; break;
op_name_str = "mfibat3l"; break;
op_name_str = "mfdbat0u"; break;
op_name_str = "mfdbat0l"; break;
op_name_str = "mfdbat1u"; break;
op_name_str = "mfdbat1l"; break;
op_name_str = "mfdbat2u"; break;
op_name_str = "mfdbat2l"; break;
op_name_str = "mfdbat3u"; break;
op_name_str = "mfdbat3l"; break;
op_name_str = "mfdabr"; break;
op_name_str = "mfspr"; break;
op_name_str = "lhax"; break;
switch (line_str.Substring(11, 10))
op_name_str = "mftbl"; break;
op_name_str = "mftbu"; break;
op_name_str = "mftb"; break;
op_name_str = "lhaux"; break;
op_name_str = "sthx"; break;
op_name_str = "orc"; break;
op_name_str = "orc."; break;
op_name_str = "ecowx"; break;
op_name_str = "sthux"; break;
op_name_str = "or"; break;
op_name_str = "or."; break;
op_name_str = "divwu"; break;
op_name_str = "divwu."; break;
op_name_str = "divwuo"; break;
op_name_str = "divwuo."; break;
switch (line_str.Substring(11, 10))
op_name_str = "mtxer"; break;
op_name_str = "mtlr"; break;
op_name_str = "mtctr"; break;
op_name_str = "mtdsisr"; break;
op_name_str = "mtdar"; break;
op_name_str = "mtdec"; break;
op_name_str = "mtsdr1"; break;
op_name_str = "mtsrr0"; break;
op_name_str = "mtsrr1"; break;
op_name_str = "mtsprg0"; break;
op_name_str = "mtsprg1"; break;
op_name_str = "mtsprg2"; break;
op_name_str = "mtsprg3"; break;
op_name_str = "mtear"; break;
op_name_str = "mttbl"; break;
op_name_str = "mttbu"; break;
op_name_str = "mtibat0u"; break;
op_name_str = "mtibat0l"; break;
op_name_str = "mtibat1u"; break;
op_name_str = "mtibat1l"; break;
op_name_str = "mtibat2u"; break;
op_name_str = "mtibat2l"; break;
op_name_str = "mtibat3u"; break;
op_name_str = "mtibat3l"; break;
op_name_str = "mtdbat0u"; break;
op_name_str = "mtdbat0l"; break;
op_name_str = "mtdbat1u"; break;
op_name_str = "mtdbat1l"; break;
op_name_str = "mtdbat2u"; break;
op_name_str = "mtdbat2l"; break;
op_name_str = "mtdbat3u"; break;
op_name_str = "mtdbat3l"; break;
op_name_str = "mtdabr"; break;
op_name_str = "mtspr"; break;
if (line_str.Substring(6, 5) == "00000")
op_name_str = "dcbi"; break;
op_name_str = "nand"; break;
op_name_str = "nand."; break;
op_name_str = "divw"; break;
op_name_str = "divw."; break;
op_name_str = "divwo"; break;
op_name_str = "divwo."; break;
if (line_str.Substring(9, 12) == "000000000000")
op_name_str = "mcrxr"; break;
op_name_str = "lswx"; break;
op_name_str = "lwbrx"; break;
op_name_str = "lfsx"; break;
op_name_str = "srw"; break;
op_name_str = "srw."; break;
if (line_str.Substring(6, 15) == "000000000000000")
op_name_str = "tlbsync"; break;
op_name_str = "lfsux"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "mfsr"; break;
op_name_str = "lswi"; break;
if (line_str.Substring(6, 15) == "000000000000000")
op_name_str = "sync"; break;
op_name_str = "lfdx"; break;
op_name_str = "lfdux"; break;
if (line_str.Substring(11, 5) == "00000")
op_name_str = "mfsrin"; break;
op_name_str = "stswx"; break;
op_name_str = "stwbrx"; break;
op_name_str = "stfsx"; break;
op_name_str = "stfsux"; break;
op_name_str = "stswi"; break;
op_name_str = "stfdx"; break;
op_name_str = "stfdux"; break;
op_name_str = "lhbrx"; break;
op_name_str = "sraw"; break;
op_name_str = "sraw."; break;
op_name_str = "srawi"; break;
op_name_str = "srawi."; break;
if (line_str.Substring(6, 15) == "000000000000000")
op_name_str = "eieio"; break;
op_name_str = "sthbrx"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "extsh"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "extsh."; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "extsb"; break;
if (line_str.Substring(16, 5) == "00000")
op_name_str = "extsb."; break;
if (line_str.Substring(6, 10) == "0000000000")
op_name_str = "tlbld"; break;
if (line_str.Substring(6, 5) == "00000")
op_name_str = "icbi"; break;
op_name_str = "stfiwx"; break;
if (line_str.Substring(6, 10) == "0000000000")
op_name_str = "tlbli"; break;
if (line_str.Substring(6, 5) == "00000")
op_name_str = "dcbz"; break;
op_name_str = "lwz"; break;
op_name_str = "lwzu"; break;
op_name_str = "lbz"; break;
op_name_str = "lbzu"; break;
op_name_str = "stw"; break;
op_name_str = "stwu"; break;
op_name_str = "stb"; break;
op_name_str = "stbu"; break;
op_name_str = "lhz"; break;
op_name_str = "lhzu"; break;
op_name_str = "lha"; break;
op_name_str = "lhau"; break;
op_name_str = "sth"; break;
op_name_str = "sthu"; break;
op_name_str = "lmw"; break;
op_name_str = "stmw"; break;
op_name_str = "lfs"; break;
op_name_str = "lfsu"; break;
op_name_str = "lfd"; break;
op_name_str = "lfdu"; break;
op_name_str = "stfs"; break;
op_name_str = "stfsu"; break;
op_name_str = "stfd"; break;
op_name_str = "stfdu"; break;
switch (line_str.Substring(26, 6))
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if ((line_str.Substring(11, 5) == "00000") && (line_str.Substring(21, 5) == "00000"))
if ((line_str.Substring(11, 5) == "00000") && (line_str.Substring(21, 5) == "00000"))
if (line_str.Substring(16, 5) == "00000")
if (line_str.Substring(16, 5) == "00000")
op_name_str = "fmsubs"; break;
op_name_str = "fmsubs."; break;
op_name_str = "fmadds"; break;
op_name_str = "fmadds."; break;
op_name_str = "fnmsubs"; break;
op_name_str = "fnmsubs."; break;
op_name_str = "fnmadds"; break;
op_name_str = "fnmadds."; break;
switch (line_str.Substring(21, 11))
if (line_str.Substring(9, 2) == "00")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(9, 2) == "00")
if (line_str.Substring(11, 10) == "0000000000")
if (line_str.Substring(11, 10) == "0000000000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if ((line_str.Substring(14, 7) == "0000000") && (line_str.Substring(9, 2) == "00"))
if (line_str.Substring(11, 10) == "0000000000")
if (line_str.Substring(11, 10) == "0000000000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if ((line_str.Substring(9, 7) == "0000000") && (line_str.Substring(20, 1) == "0"))
if ((line_str.Substring(9, 7) == "0000000") && (line_str.Substring(20, 1) == "0"))
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 5) == "00000")
if (line_str.Substring(11, 10) == "0000000000")
if (line_str.Substring(11, 10) == "0000000000")
if ((line_str.Substring(6, 1) == "0") && (line_str.Substring(15, 1) == "0"))
if ((line_str.Substring(6, 1) == "0") && (line_str.Substring(15, 1) == "0"))
switch (line_str.Substring(26, 6))
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
if (line_str.Substring(21, 5) == "00000")
op_name_str = "fsel"; break;
op_name_str = "fsel."; break;
if (line_str.Substring(16, 5) == "00000")
if (line_str.Substring(16, 5) == "00000")
if ((line_str.Substring(21, 5) == "00000") && (line_str.Substring(11, 5) == "00000"))
if ((line_str.Substring(21, 5) == "00000") && (line_str.Substring(11, 5) == "00000"))
op_name_str = "frsqrte.";
op_name_str = "fmsub"; break;
op_name_str = "fmsub."; break;
op_name_str = "fmadd"; break;
op_name_str = "fmadd."; break;
op_name_str = "fnmsub"; break;
op_name_str = "fnmsub."; break;
op_name_str = "fnmadd"; break;
op_name_str = "fnmadd."; break;
ToTall_Code[linenum] = ToTall_Code[linenum] + "0x" + k.ToString("X").PadLeft(8, '0')+":" + "\t" + op_name_str + " ";
op_des_str = Prt.InstDescriptionFlow(op_name_str, line_str, k);
ToTall_Code[linenum] = ToTall_Code[linenum] + op_des_str + "\t"+ "Float:" + floatnum +";"+ "\t" + line_hex_Code + ";" + "\t" + "Asci: " + HEX2ASCII(line_hex_Code);
ToTall_Code[linenum] = ToTall_Code[linenum] + "No Description" + "\t" + "Float:" + floatnum + ";" + "\t" + line_hex_Code + ";" + "\t" + "Asci: " + HEX2ASCII(line_hex_Code) ;
ToTall_Code[linenum] = ToTall_Code[linenum] + "0x" + k.ToString("X").PadLeft(8, '0') + "\t" + line_hex_Code + "\t" + "No Match;" + "\t" + "Float:" + floatnum + ";" + "\t" + line_hex_Code +";"+ "\t" + "Asci: " + HEX2ASCII(line_hex_Code);
progressBar1.Value = progressBar1.Maximum;
richTextBox4.Visible = true;
string _Path = @"C:\temp\Untitled.txt";
SaveFileDialog SFD = new SaveFileDialog();
DialogResult result = SFD.ShowDialog();
if (string.IsNullOrEmpty(SFD.FileName))
else if (result == DialogResult.OK)
File.WriteAllLines(SFD.FileName, ToTall_Code);
if (checkBox1.Checked == true)
System.Diagnostics.Process.Start("Notepad.exe", SFD.FileName);
richTextBox1.BackColor = Color.White;
richTextBox1.ForeColor = Color.Black;
button2.BackColor = Color.LightGray;
private void button3_Click(object sender, EventArgs e)
string _Path = @"C:\temp\Untitled.txt";
SaveFileDialog SFD = new SaveFileDialog();
DialogResult result = SFD.ShowDialog();
progressBar1.Maximum = linenum;
if (string.IsNullOrEmpty(SFD.FileName))
else if (result == DialogResult.OK)
StreamWriter SW = new StreamWriter(SFD.FileName);
for (int iii = 0; iii <= linenum; iii++)
progressBar1.Value = iii;
SW.WriteLine(ToTall_Code2);
System.Diagnostics.Process.Start("Notepad.exe", SFD.FileName);
MessageBox.Show("Successfully Saved" +
"", "Save Proccess Ended", MessageBoxButtons.OK);
public static string sgnext(string bit, int N)
return String.Concat(Enumerable.Repeat(Convert.ToString(Convert.ToInt32(bit, 2) * 0xF, 16), N)).ToUpper(); ;
public static string SgnExtTot(string bits, int N_tot)
int N_ext = N_tot - bits.Length / 4;
return ("0xs" + String.Concat(Enumerable.Repeat(Convert.ToString(Convert.ToInt32(bits.Substring(0, 1), 2) * 0xF, 16), N_ext)).ToUpper() + Convert.ToString(Convert.ToInt32(bits, 2), 16).PadLeft(N_tot - N_ext, '0').ToUpper());
public static int TarAdd(string bits, int kk)
if (bits.Substring(1,1) == "1")
bdbin = "1111111111111111" + bits + "00";
bd = kk - 4 + Convert.ToInt32(bdbin, 2);
bdbin = "0000000000000000" + bits + "00";
bd = kk - 4 + Convert.ToInt32(bdbin, 2);
public static int InstFault1(RichTextBox target, int k)
target.Text = target.Text + "0x" + k.ToString("X").PadLeft(6, '0') + ":\t" + "Invalid" + ";\n";
public static int InstName(RichTextBox target, int k, string inst_name)
target.Text = target.Text + "0x" + k.ToString("X").PadLeft(6, '0') + ":\t" + inst_name + "\t";
public static string r0def(int input)
string inn = Convert.ToString(input);
{ return ("r" + inn + " + "); }
public static string InstDescriptionFlow(string inst_name, string inst_bin, int kk)
desc = "r" + Convert.ToString(Convert.ToUInt16(inst_bin.Substring(6, 5), 2)) +" = " + r0def(Convert.ToUInt16(inst_bin.Substring(11, 5), 2)) + string.Concat(Prt.SgnExtTot(inst_bin.Substring(16, 16), 4), "0000");
desc="EA"+ "=" + r0def(Convert.ToUInt16(inst_bin.Substring(11, 5), 2)) + Prt.SgnExtTot(inst_bin.Substring(16, 16), 4);
desc= "r"+ Convert.ToString(Convert.ToUInt16(inst_bin.Substring(6, 5), 2))+"="+r0def(Convert.ToUInt32(inst_bin.Substring(11, 5), 2))+ Convert.ToString(Convert.ToUInt32(inst_bin.Substring(16, 5), 2));
desc="EA"+ Convert.ToString(Convert.ToUInt16(inst_bin.Substring(6, 5), 2)) +"="+ r0def(Convert.ToUInt16(inst_bin.Substring(11, 5), 2)) +Prt.SgnExtTot(inst_bin.Substring(16, 16), 4);
desc="r"+Convert.ToString(Convert.ToUInt16(inst_bin.Substring(6, 3), 2));