2015-06-01 09:35:51 +00:00
|
|
|
package com.bytezone.diskbrowser.prodos;
|
|
|
|
|
|
|
|
import com.bytezone.diskbrowser.disk.AbstractSector;
|
|
|
|
import com.bytezone.diskbrowser.disk.Disk;
|
2016-07-17 04:41:04 +00:00
|
|
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
2016-02-24 21:11:14 +00:00
|
|
|
import com.bytezone.diskbrowser.utilities.HexFormatter;
|
2015-06-01 09:35:51 +00:00
|
|
|
|
|
|
|
class ProdosIndexSector extends AbstractSector
|
|
|
|
{
|
2016-02-28 07:17:58 +00:00
|
|
|
private final String name;
|
2015-06-01 09:35:51 +00:00
|
|
|
|
2016-07-17 04:41:04 +00:00
|
|
|
ProdosIndexSector (String name, Disk disk, byte[] buffer, DiskAddress diskAddress)
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
2016-07-17 04:41:04 +00:00
|
|
|
super (disk, buffer, diskAddress);
|
2015-06-01 09:35:51 +00:00
|
|
|
this.name = name;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String createText ()
|
|
|
|
{
|
2017-04-22 06:31:25 +00:00
|
|
|
StringBuilder text = getHeader ("Prodos Index Block : " + name);
|
2015-06-01 09:35:51 +00:00
|
|
|
|
|
|
|
for (int i = 0; i < 256; i++)
|
|
|
|
{
|
2017-04-22 06:31:25 +00:00
|
|
|
text.append (
|
|
|
|
String.format ("%02X %02X %02X", i, buffer[i], buffer[i + 256]));
|
2015-06-01 09:35:51 +00:00
|
|
|
if (buffer[i] != 0 || buffer[i + 256] != 0)
|
2017-04-22 06:31:25 +00:00
|
|
|
text.append (String.format (" %s%n",
|
|
|
|
"block " + HexFormatter.intValue (buffer[i], buffer[i + 256])));
|
2015-06-01 09:35:51 +00:00
|
|
|
else
|
|
|
|
text.append ("\n");
|
|
|
|
}
|
2017-04-22 06:31:25 +00:00
|
|
|
|
2015-06-01 09:35:51 +00:00
|
|
|
if (text.length () > 0)
|
|
|
|
text.deleteCharAt (text.length () - 1);
|
2017-04-22 06:31:25 +00:00
|
|
|
|
2015-06-01 09:35:51 +00:00
|
|
|
return text.toString ();
|
|
|
|
}
|
|
|
|
}
|