this.radio1B = new System.Windows.Forms.RadioButton();\r
this.textValue = new System.Windows.Forms.TextBox();\r
this.textHex = new System.Windows.Forms.TextBox();\r
+ this.buttonLsh = new System.Windows.Forms.Button();\r
+ this.buttonRsh = new System.Windows.Forms.Button();\r
+ this.buttonInc = new System.Windows.Forms.Button();\r
+ this.buttonDec = new System.Windows.Forms.Button();\r
+ this.buttonClr = new System.Windows.Forms.Button();\r
+ this.buttonNot = new System.Windows.Forms.Button();\r
this.bits0 = new Fugashi.BitSwitches4();\r
this.bits4 = new Fugashi.BitSwitches4();\r
this.bits8 = new Fugashi.BitSwitches4();\r
this.textHex.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;\r
this.textHex.TextChanged += new System.EventHandler(this.textHex_TextChanged);\r
// \r
+ // buttonLsh\r
+ // \r
+ this.buttonLsh.Location = new System.Drawing.Point(28, 103);\r
+ this.buttonLsh.Margin = new System.Windows.Forms.Padding(2);\r
+ this.buttonLsh.Name = "buttonLsh";\r
+ this.buttonLsh.Size = new System.Drawing.Size(44, 28);\r
+ this.buttonLsh.TabIndex = 107;\r
+ this.buttonLsh.Text = "&Lsh";\r
+ this.buttonLsh.UseVisualStyleBackColor = true;\r
+ this.buttonLsh.Click += new System.EventHandler(this.buttonLsh_Click);\r
+ // \r
+ // buttonRsh\r
+ // \r
+ this.buttonRsh.Location = new System.Drawing.Point(76, 103);\r
+ this.buttonRsh.Margin = new System.Windows.Forms.Padding(2);\r
+ this.buttonRsh.Name = "buttonRsh";\r
+ this.buttonRsh.Size = new System.Drawing.Size(44, 28);\r
+ this.buttonRsh.TabIndex = 108;\r
+ this.buttonRsh.Text = "&Rsh";\r
+ this.buttonRsh.UseVisualStyleBackColor = true;\r
+ this.buttonRsh.Click += new System.EventHandler(this.buttonRsh_Click);\r
+ // \r
+ // buttonInc\r
+ // \r
+ this.buttonInc.Location = new System.Drawing.Point(124, 103);\r
+ this.buttonInc.Margin = new System.Windows.Forms.Padding(2);\r
+ this.buttonInc.Name = "buttonInc";\r
+ this.buttonInc.Size = new System.Drawing.Size(44, 28);\r
+ this.buttonInc.TabIndex = 109;\r
+ this.buttonInc.Text = "&Inc";\r
+ this.buttonInc.UseVisualStyleBackColor = true;\r
+ this.buttonInc.Click += new System.EventHandler(this.buttonInc_Click);\r
+ // \r
+ // buttonDec\r
+ // \r
+ this.buttonDec.Location = new System.Drawing.Point(172, 103);\r
+ this.buttonDec.Margin = new System.Windows.Forms.Padding(2);\r
+ this.buttonDec.Name = "buttonDec";\r
+ this.buttonDec.Size = new System.Drawing.Size(44, 28);\r
+ this.buttonDec.TabIndex = 110;\r
+ this.buttonDec.Text = "&Dec";\r
+ this.buttonDec.UseVisualStyleBackColor = true;\r
+ this.buttonDec.Click += new System.EventHandler(this.buttonDec_Click);\r
+ // \r
+ // buttonClr\r
+ // \r
+ this.buttonClr.Location = new System.Drawing.Point(220, 103);\r
+ this.buttonClr.Margin = new System.Windows.Forms.Padding(2);\r
+ this.buttonClr.Name = "buttonClr";\r
+ this.buttonClr.Size = new System.Drawing.Size(44, 28);\r
+ this.buttonClr.TabIndex = 111;\r
+ this.buttonClr.Text = "&Clr";\r
+ this.buttonClr.UseVisualStyleBackColor = true;\r
+ this.buttonClr.Click += new System.EventHandler(this.buttonClr_Click);\r
+ // \r
+ // buttonNot\r
+ // \r
+ this.buttonNot.Location = new System.Drawing.Point(268, 103);\r
+ this.buttonNot.Margin = new System.Windows.Forms.Padding(2);\r
+ this.buttonNot.Name = "buttonNot";\r
+ this.buttonNot.Size = new System.Drawing.Size(44, 28);\r
+ this.buttonNot.TabIndex = 112;\r
+ this.buttonNot.Text = "&Not";\r
+ this.buttonNot.UseVisualStyleBackColor = true;\r
+ this.buttonNot.Click += new System.EventHandler(this.buttonNot_Click);\r
+ // \r
// bits0\r
// \r
this.bits0.Location = new System.Drawing.Point(459, 168);\r
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;\r
this.BackColor = System.Drawing.SystemColors.Window;\r
this.ClientSize = new System.Drawing.Size(550, 284);\r
+ this.Controls.Add(this.buttonNot);\r
+ this.Controls.Add(this.buttonClr);\r
+ this.Controls.Add(this.buttonDec);\r
+ this.Controls.Add(this.buttonInc);\r
+ this.Controls.Add(this.buttonRsh);\r
+ this.Controls.Add(this.buttonLsh);\r
this.Controls.Add(this.bits0);\r
this.Controls.Add(this.bits4);\r
this.Controls.Add(this.bits8);\r
private BitSwitches4 bits52;\r
private BitSwitches4 bits56;\r
private BitSwitches4 bits60;\r
+ private System.Windows.Forms.Button buttonLsh;\r
+ private System.Windows.Forms.Button buttonRsh;\r
+ private System.Windows.Forms.Button buttonInc;\r
+ private System.Windows.Forms.Button buttonDec;\r
+ private System.Windows.Forms.Button buttonClr;\r
+ private System.Windows.Forms.Button buttonNot;\r
}\r
}\r
\r
Font mono = new Font(FontFamily.GenericMonospace, textHex.Font.Size);\r
textHex.Font = mono;\r
textValue.Font = mono;\r
- BitChanged(null, null);\r
}\r
\r
private void radioUint_CheckedChanged(object sender, EventArgs e)\r
{\r
if (radioUint.Checked)\r
{\r
- UpdateUint(GetBytes());\r
+ UpdateValue(GetBytes());\r
}\r
}\r
\r
{\r
if (radioInt.Checked)\r
{\r
- UpdateInt(GetBytes());\r
+ UpdateValue(GetBytes());\r
}\r
}\r
\r
radio4B.Checked = true;\r
}\r
SetForFloatingPoint(radio8B.Checked);\r
- UpdateFloat(GetBytes());\r
+ UpdateValue(GetBytes());\r
}\r
else\r
{\r
{\r
radioUint.Checked = true;\r
radio4B.Checked = true;\r
+ BitChanged(null, null);\r
}\r
\r
private void SetForFloatingPoint(bool isDouble)\r
\r
private byte[] GetBytes()\r
{\r
- byte[] b = new Byte[length];\r
+ byte[] b = new Byte[8];\r
int i = 0;\r
- for (int j = 0; j < length; ++j)\r
+ for (int j = 0; j < 8; ++j)\r
{\r
b[j] = 0;\r
i += 8;\r
return b;\r
}\r
\r
+ private long ToInt64(byte[] bytes)\r
+ {\r
+ switch (length)\r
+ {\r
+ case 1:\r
+ return (sbyte)bytes[0];\r
+ case 2:\r
+ return BitConverter.ToInt16(bytes, 0);\r
+ case 4:\r
+ return BitConverter.ToInt32(bytes, 0);\r
+ case 8:\r
+ return BitConverter.ToInt64(bytes, 0);\r
+ }\r
+ return 0;\r
+ }\r
+\r
+ private ulong ToUInt64(byte[] bytes)\r
+ {\r
+ switch (length)\r
+ {\r
+ case 1:\r
+ return bytes[0];\r
+ case 2:\r
+ return BitConverter.ToUInt16(bytes, 0);\r
+ case 4:\r
+ return BitConverter.ToUInt32(bytes, 0);\r
+ case 8:\r
+ return BitConverter.ToUInt64(bytes, 0);\r
+ }\r
+ return 0;\r
+ }\r
+\r
private void radio8B_CheckedChanged(object sender, EventArgs e)\r
{\r
if (radio8B.Checked)\r
{\r
if (radioUint.Checked)\r
{\r
- UpdateUint(bytes);\r
+ textValue.Text = ToUInt64(bytes).ToString();\r
}\r
else if (radioInt.Checked)\r
{\r
- UpdateInt(bytes);\r
+ textValue.Text = ToInt64(bytes).ToString();\r
}\r
else if (radioFloat.Checked)\r
{\r
- UpdateFloat(bytes);\r
- }\r
- }\r
-\r
- private void UpdateUint(byte[] bytes)\r
- {\r
- ulong value = 0;\r
- switch (length)\r
- {\r
- case 1:\r
- value = bytes[0]; \r
- break;\r
- case 2:\r
- value = BitConverter.ToUInt16(bytes, 0);\r
- break;\r
- case 4:\r
- value = BitConverter.ToUInt32(bytes, 0);\r
- break;\r
- case 8:\r
- value = BitConverter.ToUInt64(bytes, 0);\r
- break;\r
- }\r
- textValue.Text = value.ToString();\r
- }\r
-\r
- private void UpdateInt(byte[] bytes)\r
- {\r
- long value = 0;\r
- switch (length)\r
- {\r
- case 1:\r
- value = (sbyte)bytes[0];\r
- break;\r
- case 2:\r
- value = BitConverter.ToInt16(bytes, 0);\r
- break;\r
- case 4:\r
- value = BitConverter.ToInt32(bytes, 0);\r
- break;\r
- case 8:\r
- value = BitConverter.ToInt64(bytes, 0);\r
- break;\r
- }\r
- textValue.Text = value.ToString();\r
- }\r
-\r
- private void UpdateFloat(byte[] bytes)\r
- {\r
- if (length == 4)\r
- {\r
- float value = BitConverter.ToSingle(bytes, 0);\r
- textValue.Text = value.ToString("g8");\r
- }\r
- else\r
- {\r
- double value = BitConverter.ToDouble(bytes, 0);\r
- textValue.Text = value.ToString("g17");\r
+ if (length == 4)\r
+ {\r
+ float value = BitConverter.ToSingle(bytes, 0);\r
+ textValue.Text = value.ToString("g8");\r
+ }\r
+ else\r
+ {\r
+ double value = BitConverter.ToDouble(bytes, 0);\r
+ textValue.Text = value.ToString("g17");\r
+ }\r
}\r
}\r
\r
textHex.Text = "";\r
for (int i = length - 1; i >= 0; --i)\r
{\r
- textHex.Text += bytes[i].ToString("X2");\r
+ textHex.Text += bytes[i].ToString("X2");\r
}\r
}\r
\r
}\r
}\r
\r
+ private void UpdateAll(byte[] bytes)\r
+ {\r
+ UpdateBits(bytes);\r
+ UpdateValue(bytes);\r
+ UpdateHex(bytes);\r
+ }\r
+\r
private void textHex_TextChanged(object sender, EventArgs e)\r
{\r
if (!textHex.Focused)\r
private void textValue_TextChanged(object sender, EventArgs e)\r
{\r
string text = textValue.Text;\r
- if (!textValue.Focused && e == EventArgs.Empty)\r
+ if (!textValue.Focused && sender != null)\r
{\r
return;\r
}\r
UpdateHex(b);\r
}\r
\r
+ private void buttonInc_Click(object sender, EventArgs e)\r
+ {\r
+ if (radioFloat.Checked)\r
+ {\r
+\r
+ }\r
+ else\r
+ {\r
+ ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+ UpdateAll(BitConverter.GetBytes(++value));\r
+ }\r
+ }\r
+ private void buttonDec_Click(object sender, EventArgs e)\r
+ {\r
+ if (radioFloat.Checked)\r
+ {\r
+\r
+ }\r
+ else\r
+ {\r
+ ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+ UpdateAll(BitConverter.GetBytes(--value));\r
+ }\r
+ }\r
+\r
+ private void buttonClr_Click(object sender, EventArgs e)\r
+ {\r
+ UpdateAll(BitConverter.GetBytes((ulong)0));\r
+ }\r
+\r
+ private void buttonNot_Click(object sender, EventArgs e)\r
+ {\r
+ ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+ UpdateAll(BitConverter.GetBytes(~value));\r
+ }\r
+\r
+ private void buttonLsh_Click(object sender, EventArgs e)\r
+ {\r
+ ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+ UpdateAll(BitConverter.GetBytes(value << 1));\r
+ }\r
+\r
+ private void buttonRsh_Click(object sender, EventArgs e)\r
+ {\r
+ if (radioInt.Checked)\r
+ {\r
+ long value = ToInt64(GetBytes());\r
+ UpdateAll(BitConverter.GetBytes(value >> 1));\r
+ }\r
+ else\r
+ {\r
+ ulong value = BitConverter.ToUInt64(GetBytes(), 0);\r
+ UpdateAll(BitConverter.GetBytes(value >> 1));\r
+ }\r
+ }\r
+\r
+\r
}\r
}\r