dmolony-DiskBrowser/src/com/bytezone/diskbrowser/prodos/write/VolumeDirectoryHeader.java

70 lines
2.3 KiB
Java
Raw Normal View History

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 ();
}
}