2021-04-15 07:27:20 +00:00
|
|
|
package com.bytezone.diskbrowser.prodos.write;
|
|
|
|
|
2021-05-14 02:19:32 +00:00
|
|
|
import static com.bytezone.diskbrowser.utilities.Utility.unsignedShort;
|
2021-04-16 03:50:28 +00:00
|
|
|
import static com.bytezone.diskbrowser.utilities.Utility.writeShort;
|
2021-04-15 07:27:20 +00:00
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------------//
|
|
|
|
public class VolumeDirectoryHeader extends DirectoryHeader
|
|
|
|
// -----------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
int bitMapPointer = 0x06;
|
|
|
|
int totalBlocks;
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
2021-05-03 21:24:08 +00:00
|
|
|
public VolumeDirectoryHeader (ProdosDisk disk, int ptr)
|
2021-04-15 07:27:20 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
2021-05-03 21:24:08 +00:00
|
|
|
super (disk, ptr);
|
2021-04-15 07:27:20 +00:00
|
|
|
|
|
|
|
storageType = (byte) 0x0F;
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
@Override
|
|
|
|
void read ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
super.read ();
|
|
|
|
|
2021-05-14 02:19:32 +00:00
|
|
|
bitMapPointer = unsignedShort (buffer, ptr + 0x23);
|
|
|
|
totalBlocks = unsignedShort (buffer, ptr + 0x25);
|
2021-04-15 07:27:20 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
@Override
|
|
|
|
void write ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
super.write ();
|
|
|
|
|
2021-04-16 03:50:28 +00:00
|
|
|
writeShort (buffer, ptr + 0x23, bitMapPointer);
|
|
|
|
writeShort (buffer, ptr + 0x25, totalBlocks);
|
2021-04-15 07:27:20 +00:00
|
|
|
}
|
|
|
|
|
2021-04-27 11:26:09 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
@Override
|
|
|
|
String toText ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
return String.format ("%-29s %04X %04X", super.toText (), totalBlocks, bitMapPointer);
|
|
|
|
}
|
|
|
|
|
2021-04-15 07:27:20 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
@Override
|
|
|
|
public String toString ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
StringBuilder text = new StringBuilder ();
|
|
|
|
|
|
|
|
text.append (UNDERLINE);
|
|
|
|
text.append ("Volume Directory Header\n");
|
|
|
|
text.append (UNDERLINE);
|
|
|
|
text.append (super.toString ());
|
2021-04-25 08:14:14 +00:00
|
|
|
text.append (String.format ("Bitmap pointer ... %02X%n", bitMapPointer));
|
2021-04-15 07:27:20 +00:00
|
|
|
text.append (String.format ("Total blocks ..... %d%n", totalBlocks));
|
|
|
|
text.append (UNDERLINE);
|
|
|
|
|
|
|
|
return text.toString ();
|
|
|
|
}
|
|
|
|
}
|