Index: MemoryWindow.java =================================================================== RCS file: /cvs/frysk/frysk-gui/frysk/gui/memory/MemoryWindow.java,v retrieving revision 1.44 diff -u -r1.44 MemoryWindow.java --- MemoryWindow.java 28 Aug 2007 06:05:19 -0000 1.44 +++ MemoryWindow.java 30 Aug 2007 03:35:59 -0000 @@ -53,6 +53,7 @@ import org.gnu.gtk.Button; import org.gnu.gtk.CellRenderer; import org.gnu.gtk.CellRendererText; +import org.gnu.pango.FontDescription; import org.gnu.gtk.DataColumn; import org.gnu.gtk.DataColumnDouble; import org.gnu.gtk.DataColumnObject; @@ -325,6 +326,8 @@ this.bitsCombo.setActive(currentFormat + 1); this.memoryView = (TreeView) this.glade.getWidget("memoryView"); + FontDescription fontDesc = new FontDescription("monospace 10"); + memoryView.setFont(fontDesc); this.bitsCombo.showAll(); this.diss = new Disassembler(myTask.getMemory()); @@ -652,10 +655,16 @@ { for (int i = 0; i < b.length; i++) { - bin = bin + Integer.toBinaryString(b[i] & 0xff); - oct = oct + Integer.toOctalString(b[i] & 0xff); + String str = Integer.toBinaryString(b[i] & 0xff); + while (str.length() < 8) + str = "0"+str; + bin = bin + str; hex = hex + Integer.toHexString(b[i] & 0xff); + if ((b[i] & 0xff)==0) + hex = hex + "0"; } + BigInteger bihex = new BigInteger(hex, 16); + oct = bihex.toString(8); } else { @@ -668,10 +677,24 @@ int diff = bin.length() % BYTE_BITS; if (diff != 0) bin = padBytes(bin, false, diff); + int length = (int)Math.pow(2, currentFormat + 3); + + while (bin.length() < length) + { + bin = "0" + bin; + } + while (oct.length() < (length/3 + 1)) + { + oct = "0" + oct; + } + while (hex.length() < length/4 ) + { + hex = "0" + hex; + } /* Little endian first */ this.model.setValue(iter, (DataColumnString) cols[1], bin); - this.model.setValue(iter, (DataColumnString) cols[3], oct); + this.model.setValue(iter, (DataColumnString) cols[3], "0"+oct); this.model.setValue(iter, (DataColumnString) cols[5], dec); this.model.setValue(iter, (DataColumnString) cols[7], "0x" + hex); @@ -687,9 +710,21 @@ dec = bi.toString(10); else dec = bii.toString(10); - + + while (bin2.length() < length) + { + bin2 = "0" + bin2; + } + while (oct.length() < (length/3 + 1)) + { + oct = "0" + oct; + } + while (hex.length() < length/4 ) + { + hex = "0" + hex; + } this.model.setValue(iter, (DataColumnString) cols[2], bin2); - this.model.setValue(iter, (DataColumnString) cols[4], oct); + this.model.setValue(iter, (DataColumnString) cols[4], "0"+oct); this.model.setValue(iter, (DataColumnString) cols[6], dec); this.model.setValue(iter, (DataColumnString) cols[8], "0x" + hex);