diff --git a/lib/ac-api/src/main/java/com/webcodepro/applecommander/util/AppleUtil.java b/lib/ac-api/src/main/java/com/webcodepro/applecommander/util/AppleUtil.java index 438dd28..b78ebde 100644 --- a/lib/ac-api/src/main/java/com/webcodepro/applecommander/util/AppleUtil.java +++ b/lib/ac-api/src/main/java/com/webcodepro/applecommander/util/AppleUtil.java @@ -43,12 +43,6 @@ public class AppleUtil { */ private static final int BYTES_PER_LINE = 16; - /** - * This is the ASCII space character as used by the Apple ][. - * The high bit is off. - */ - private static final int APPLE_SPACE = 0x20; - /** * Bit masks used for the bit shifting or testing operations. */ @@ -582,11 +576,11 @@ public class AppleUtil { int index = offset+a; if (index < bytes.length) { char ch = (char) (bytes[index] & 0x7f); - if ((byte)ch >= (byte)APPLE_SPACE) { - printer.print(ch); - } else { - printer.print('.'); - } + if (Character.isISOControl(ch)) { + printer.print('.'); + } else { + printer.print(ch); + } } else { printer.print(' '); } diff --git a/lib/ac-api/src/test/java/com/webcodepro/applecommander/util/AppleUtilTest.java b/lib/ac-api/src/test/java/com/webcodepro/applecommander/util/AppleUtilTest.java index 09bbafc..63e11be 100644 --- a/lib/ac-api/src/test/java/com/webcodepro/applecommander/util/AppleUtilTest.java +++ b/lib/ac-api/src/test/java/com/webcodepro/applecommander/util/AppleUtilTest.java @@ -19,6 +19,7 @@ */ package com.webcodepro.applecommander.util; +import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; @@ -113,4 +114,26 @@ public class AppleUtilTest { // Confirm that these disks are identical: assertTrue(AppleUtil.disksEqualByBlock(prodosDiskDosOrder, prodosDiskNibbleOrder)); } + + @Test + public void testGetHexDump_expectedWidth() { + final int expectedWidth = 76; + + // Setup an array of all byte values + byte[] data = new byte[256]; + for (int i=0; i assertTrue(Integer.toString(i), i >= ' ')); + } + } + } }