2015-06-01 09:35:51 +00:00
|
|
|
package com.bytezone.diskbrowser.disk;
|
|
|
|
|
|
|
|
public class AppleDiskAddress implements DiskAddress
|
|
|
|
{
|
|
|
|
private final int block;
|
|
|
|
private final int track;
|
|
|
|
private final int sector;
|
|
|
|
public final Disk owner;
|
|
|
|
|
2016-07-17 22:35:18 +00:00
|
|
|
public AppleDiskAddress (Disk owner, int block)
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
|
|
|
this.owner = owner;
|
|
|
|
this.block = block;
|
|
|
|
int sectorsPerTrack = owner.getSectorsPerTrack ();
|
|
|
|
this.track = block / sectorsPerTrack;
|
|
|
|
this.sector = block % sectorsPerTrack;
|
|
|
|
}
|
|
|
|
|
2016-07-17 22:35:18 +00:00
|
|
|
public AppleDiskAddress (Disk owner, int track, int sector)
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
|
|
|
this.owner = owner;
|
|
|
|
this.track = track;
|
|
|
|
this.sector = sector;
|
|
|
|
this.block = track * owner.getSectorsPerTrack () + sector;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public String toString ()
|
|
|
|
{
|
|
|
|
return String.format ("[Block=%3d, Track=%2d, Sector=%2d]", block, track, sector);
|
|
|
|
}
|
|
|
|
|
2016-03-24 00:17:09 +00:00
|
|
|
@Override
|
2015-06-01 09:35:51 +00:00
|
|
|
public int compareTo (DiskAddress that)
|
|
|
|
{
|
|
|
|
return this.block - that.getBlock ();
|
|
|
|
}
|
|
|
|
|
2016-07-17 22:42:44 +00:00
|
|
|
@Override
|
|
|
|
public boolean matches (DiskAddress that)
|
|
|
|
{
|
|
|
|
return this.block == that.getBlock ();
|
|
|
|
}
|
|
|
|
|
2016-03-24 00:17:09 +00:00
|
|
|
@Override
|
2015-06-01 09:35:51 +00:00
|
|
|
public int getBlock ()
|
|
|
|
{
|
|
|
|
return block;
|
|
|
|
}
|
|
|
|
|
2016-03-24 00:17:09 +00:00
|
|
|
@Override
|
2015-06-01 09:35:51 +00:00
|
|
|
public int getSector ()
|
|
|
|
{
|
|
|
|
return sector;
|
|
|
|
}
|
|
|
|
|
2016-03-24 00:17:09 +00:00
|
|
|
@Override
|
2015-06-01 09:35:51 +00:00
|
|
|
public int getTrack ()
|
|
|
|
{
|
|
|
|
return track;
|
|
|
|
}
|
|
|
|
|
2016-03-24 00:17:09 +00:00
|
|
|
@Override
|
2015-06-01 09:35:51 +00:00
|
|
|
public Disk getDisk ()
|
|
|
|
{
|
|
|
|
return owner;
|
|
|
|
}
|
|
|
|
}
|