2020-02-09 13:13:33 +00:00
|
|
|
package com.bytezone.diskbrowser.prodos;
|
|
|
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
import com.bytezone.diskbrowser.disk.DiskAddress;
|
|
|
|
import com.bytezone.diskbrowser.gui.DataSource;
|
2021-04-27 11:26:09 +00:00
|
|
|
import com.bytezone.diskbrowser.utilities.Utility;;
|
2020-02-09 13:13:33 +00:00
|
|
|
|
|
|
|
// -----------------------------------------------------------------------------------//
|
2021-04-27 11:26:09 +00:00
|
|
|
public class SubDirectoryHeader extends DirectoryHeader
|
2020-02-09 13:13:33 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
private final int parentPointer;
|
|
|
|
private final int parentSequence;
|
|
|
|
private final int parentSize;
|
|
|
|
|
2021-04-27 11:26:09 +00:00
|
|
|
private final int blockNo;
|
|
|
|
|
2020-02-09 13:13:33 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2021-04-27 11:26:09 +00:00
|
|
|
SubDirectoryHeader (ProdosDisk parentDisk, byte[] entryBuffer, FileEntry parent,
|
|
|
|
int blockNo)
|
2020-02-09 13:13:33 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
2021-04-27 11:26:09 +00:00
|
|
|
super (parentDisk, entryBuffer, blockNo, 1);
|
|
|
|
|
2020-02-09 13:13:33 +00:00
|
|
|
this.parentDirectory = parent.parentDirectory;
|
2021-04-27 11:26:09 +00:00
|
|
|
this.blockNo = blockNo;
|
2020-02-09 13:13:33 +00:00
|
|
|
|
2021-05-19 08:13:17 +00:00
|
|
|
parentPointer = Utility.getShort (entryBuffer, 35);
|
2020-02-09 13:13:33 +00:00
|
|
|
parentSequence = entryBuffer[37] & 0xFF;
|
|
|
|
parentSize = entryBuffer[38] & 0xFF;
|
|
|
|
|
|
|
|
if (false)
|
|
|
|
System.out.printf ("", parentPointer, parentSequence, parentSize);
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
@Override
|
|
|
|
public DataSource getDataSource ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
// should this return a directory listing?
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
@Override
|
|
|
|
public List<DiskAddress> getSectors ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
|
2021-04-27 11:26:09 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
public int getBlockNo ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
return blockNo;
|
|
|
|
}
|
|
|
|
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
@Override
|
|
|
|
public String getText ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
return String.format ("%s %04X:%02X", super.getText (), parentPointer,
|
|
|
|
parentSequence);
|
|
|
|
}
|
|
|
|
|
2020-02-09 13:13:33 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
@Override
|
|
|
|
public String toString ()
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
{
|
|
|
|
String locked = (access == 0x01) ? "*" : " ";
|
|
|
|
return String.format (" %s%-40s %15s", locked, "/" + name,
|
2021-04-17 07:33:27 +00:00
|
|
|
created.format (ProdosDisk.df));
|
2020-02-09 13:13:33 +00:00
|
|
|
}
|
2015-06-01 09:35:51 +00:00
|
|
|
}
|