boot sector bug

This commit is contained in:
Denis Molony 2015-12-13 21:02:16 +11:00
parent 58ca769c62
commit 2914bf699f
3 changed files with 13 additions and 13 deletions

View File

@ -1,3 +1,3 @@
#Build Number for ANT. Do not edit! #Build Number for ANT. Do not edit!
#Mon Aug 31 19:34:22 AEST 2015 #Sun Dec 13 21:01:46 AEDT 2015
build.number=630 build.number=631

View File

@ -24,7 +24,7 @@ public class BootSector extends AbstractSector
// The first byte in the buffer is the number of sectors to read in (minus 1) // The first byte in the buffer is the number of sectors to read in (minus 1)
int sectors = buffer[0] & 0xFF; int sectors = buffer[0] & 0xFF;
// System.out.printf ("Sectors to read : %d%n", (sectors + 1)); // System.out.printf ("Sectors to read : %d%n", (sectors + 1));
if (sectors > 0) if (sectors > 0 && sectors < 10) // probably not what I think it is
{ {
int bufferSize = buffer.length * (sectors + 1); int bufferSize = buffer.length * (sectors + 1);
byte[] newBuffer = new byte[bufferSize]; byte[] newBuffer = new byte[bufferSize];

View File

@ -63,7 +63,7 @@ public abstract class AbstractSector implements DataSource
text.append (title + newLine2); text.append (title + newLine2);
text.append ("Offset Value Description" + newLine); text.append ("Offset Value Description" + newLine);
text.append ("======= =========== " text.append ("======= =========== "
+ "===============================================================" + newLine); + "===============================================================" + newLine);
return text; return text;
} }
@ -86,16 +86,17 @@ public abstract class AbstractSector implements DataSource
switch (size) switch (size)
{ {
case 1: case 1:
text.append (String text.append (String.format ("%03X %02X %s%n", offset, b[offset],
.format ("%03X %02X %s%n", offset, b[offset], desc)); desc));
break; break;
case 2: case 2:
text.append (String.format ("%03X-%03X %02X %02X %s%n", offset, offset + 1, text.append (String.format ("%03X-%03X %02X %02X %s%n", offset,
b[offset], b[offset + 1], desc)); offset + 1, b[offset], b[offset + 1], desc));
break; break;
case 3: case 3:
text.append (String.format ("%03X-%03X %02X %02X %02X %s%n", offset, text.append (String.format ("%03X-%03X %02X %02X %02X %s%n", offset,
offset + 2, b[offset], b[offset + 1], b[offset + 2], desc)); offset + 2, b[offset], b[offset + 1], b[offset + 2],
desc));
break; break;
case 4: case 4:
text.append (String.format ("%03X-%03X %02X %02X %02X %02X %s%n", offset, text.append (String.format ("%03X-%03X %02X %02X %02X %02X %s%n", offset,
@ -108,16 +109,15 @@ public abstract class AbstractSector implements DataSource
} }
protected void addTextAndDecimal (StringBuilder text, byte[] b, int offset, int size, protected void addTextAndDecimal (StringBuilder text, byte[] b, int offset, int size,
String desc) String desc)
{ {
if (size == 1) if (size == 1)
desc += " (" + (b[offset] & 0xFF) + ")"; desc += " (" + (b[offset] & 0xFF) + ")";
else if (size == 2) else if (size == 2)
desc += " (" + ((b[offset + 1] & 0xFF) * 256 + (b[offset] & 0xFF)) + ")"; desc += " (" + ((b[offset + 1] & 0xFF) * 256 + (b[offset] & 0xFF)) + ")";
else if (size == 3) else if (size == 3)
desc += desc += String.format (" (%,d)", ((b[offset + 2] & 0xFF) * 65536)
String.format (" (%,d)", ((b[offset + 2] & 0xFF) * 65536) + ((b[offset + 1] & 0xFF) * 256) + (b[offset] & 0xFF));
+ ((b[offset + 1] & 0xFF) * 256) + (b[offset] & 0xFF));
addText (text, b, offset, size, desc); addText (text, b, offset, size, desc);
} }
} }