mirror of
https://github.com/dmolony/DiskBrowser.git
synced 2025-02-20 04:29:02 +00:00
char rom change
This commit is contained in:
parent
f7d831880c
commit
aa911ee543
@ -26,27 +26,22 @@ public class CharacterRom extends AbstractFile
|
|||||||
int sizeX = buffer[5] & 0xFF;
|
int sizeX = buffer[5] & 0xFF;
|
||||||
int sizeY = buffer[6] & 0xFF;
|
int sizeY = buffer[6] & 0xFF;
|
||||||
|
|
||||||
int gapX = 4;
|
int gapX = 2;
|
||||||
int gapY = 4;
|
int gapY = 2;
|
||||||
int marginX = 2;
|
int marginX = 2;
|
||||||
int marginY = 2;
|
int marginY = 2;
|
||||||
int heading = 20;
|
int heading = 15;
|
||||||
|
|
||||||
image = new BufferedImage (8 * (sizeX + gapX), 12 * (sizeY + gapY) + heading,
|
image = new BufferedImage (16 * (sizeX + gapX) + 2 * marginX - gapX,
|
||||||
BufferedImage.TYPE_BYTE_GRAY);
|
6 * (sizeY + gapY) + 2 * marginY - gapY + heading, BufferedImage.TYPE_BYTE_GRAY);
|
||||||
Graphics2D g2d = image.createGraphics ();
|
Graphics2D g2d = image.createGraphics ();
|
||||||
g2d.setComposite (AlphaComposite.getInstance (AlphaComposite.SRC_OVER, (float) 1.0));
|
g2d.setComposite (AlphaComposite.getInstance (AlphaComposite.SRC_OVER, (float) 1.0));
|
||||||
|
|
||||||
int x = marginX;
|
int x = marginX;
|
||||||
int y = marginY;
|
int y = marginY + heading;
|
||||||
int count = 0;
|
int count = 0;
|
||||||
int ptr = 256;
|
int ptr = 256;
|
||||||
|
|
||||||
Font font = Platform.getFont (FontType.SANS_SERIF, 10);
|
|
||||||
g2d.setFont (font);
|
|
||||||
g2d.drawString (description, x, y + 10);
|
|
||||||
y += heading;
|
|
||||||
|
|
||||||
while (ptr < buffer.length)
|
while (ptr < buffer.length)
|
||||||
{
|
{
|
||||||
Character character = new Character (buffer, ptr);
|
Character character = new Character (buffer, ptr);
|
||||||
@ -55,12 +50,28 @@ public class CharacterRom extends AbstractFile
|
|||||||
|
|
||||||
g2d.drawImage (character.image, x, y, null);
|
g2d.drawImage (character.image, x, y, null);
|
||||||
x += sizeX + gapX;
|
x += sizeX + gapX;
|
||||||
if (++count % 8 == 0)
|
if (++count % 16 == 0)
|
||||||
{
|
{
|
||||||
x = marginX;
|
x = marginX;
|
||||||
y += sizeY + gapY;
|
y += sizeY + gapY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
y = marginY;
|
||||||
|
x = marginX;
|
||||||
|
Font font = Platform.getFont (FontType.SANS_SERIF, 10);
|
||||||
|
g2d.setFont (font);
|
||||||
|
|
||||||
|
for (int i = 0; i < description.length (); i++)
|
||||||
|
{
|
||||||
|
int pos = description.charAt (i);
|
||||||
|
if (pos == 0)
|
||||||
|
break;
|
||||||
|
Character character = characters.get (pos - 32);
|
||||||
|
g2d.drawImage (character.image, x, y, null);
|
||||||
|
x += sizeX;
|
||||||
|
}
|
||||||
|
|
||||||
g2d.dispose ();
|
g2d.dispose ();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,7 +98,7 @@ public class CharacterRom extends AbstractFile
|
|||||||
|
|
||||||
public static boolean isRom (byte[] buffer)
|
public static boolean isRom (byte[] buffer)
|
||||||
{
|
{
|
||||||
if (buffer.length < 4)
|
if (buffer.length != 0x400)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
// no idea what these mean
|
// no idea what these mean
|
||||||
|
@ -77,6 +77,7 @@ class MC3470
|
|||||||
int inPtr = offset; // keep offset in case we have to loop around
|
int inPtr = offset; // keep offset in case we have to loop around
|
||||||
final int max = offset + bytesUsed;
|
final int max = offset + bytesUsed;
|
||||||
finished = false;
|
finished = false;
|
||||||
|
int zeroBits = 0;
|
||||||
|
|
||||||
while (inPtr < max && !finished)
|
while (inPtr < max && !finished)
|
||||||
{
|
{
|
||||||
@ -89,7 +90,17 @@ class MC3470
|
|||||||
{
|
{
|
||||||
value <<= 1;
|
value <<= 1;
|
||||||
if ((b & mask) != 0)
|
if ((b & mask) != 0)
|
||||||
|
{
|
||||||
value |= 0x01;
|
value |= 0x01;
|
||||||
|
zeroBits = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
++zeroBits;
|
||||||
|
if (zeroBits > 2)
|
||||||
|
System.out.printf (zeroBits + " consecutive zeroes @ %d/%d %s%n",
|
||||||
|
diskSectors.size (), dataPtr, currentState);
|
||||||
|
}
|
||||||
|
|
||||||
if ((value & 0x80) != 0) // value is not valid until the hi-bit is set
|
if ((value & 0x80) != 0) // value is not valid until the hi-bit is set
|
||||||
{
|
{
|
||||||
@ -121,6 +132,7 @@ class MC3470
|
|||||||
{
|
{
|
||||||
inPtr = offset;
|
inPtr = offset;
|
||||||
restarted = true;
|
restarted = true;
|
||||||
|
System.out.println ("wrapping around");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -176,7 +176,7 @@ public class WozFile
|
|||||||
NibbleTrack nibbleTrack = mc3470.getNibbleTrack (buffer, ptr, bytesUsed, bitCount);
|
NibbleTrack nibbleTrack = mc3470.getNibbleTrack (buffer, ptr, bytesUsed, bitCount);
|
||||||
nibbleTracks.add (nibbleTrack);
|
nibbleTracks.add (nibbleTrack);
|
||||||
}
|
}
|
||||||
System.out.println (HexFormatter.format (nibbleTracks.get (0).buffer));
|
System.out.println (HexFormatter.format (nibbleTracks.get (2).buffer));
|
||||||
}
|
}
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------------//
|
// ---------------------------------------------------------------------------------//
|
||||||
|
Loading…
x
Reference in New Issue
Block a user