dmolony-DiskBrowser/src/com/bytezone/diskbrowser/disk/NibDisk.java

57 lines
1.3 KiB
Java
Raw Normal View History

2016-11-29 21:27:44 +00:00
package com.bytezone.diskbrowser.disk;
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class NibDisk
{
2016-12-03 08:20:01 +00:00
private final Nibblizer nibbler;
2016-11-29 21:27:44 +00:00
final File file;
int tracks;
int actualTracks;
final byte[] buffer = new byte[4096 * 35];
// .nib files are 232,960 bytes
// 6,656 bytes x 35 tracks (0x1A00)
2016-12-01 13:25:41 +00:00
// add 'nib' to TreeBuilder to allow nib files to be selected
2016-11-29 21:27:44 +00:00
public NibDisk (File file)
{
this.file = file;
2016-12-01 13:25:41 +00:00
byte[] trackBuffer = new byte[6656];
2016-12-03 08:20:01 +00:00
nibbler = new Nibblizer (file);
2016-11-29 21:27:44 +00:00
try
{
BufferedInputStream in = new BufferedInputStream (new FileInputStream (file));
2016-12-01 13:25:41 +00:00
byte[] test = { (byte) 0xD5, (byte) 0xAA, (byte) 0xB5 };
2016-11-29 21:27:44 +00:00
for (int i = 0; i < 35; i++)
{
2016-12-01 13:25:41 +00:00
in.read (trackBuffer);
// System.out.println (HexFormatter.format (trackBuffer));
int offset = 0;
while (true)
{
offset = nibbler.findBytes (trackBuffer, offset, test);
if (offset < 0)
break;
System.out.printf ("found at %04X%n", offset);
++offset;
}
break; // just examine the first track
2016-11-29 21:27:44 +00:00
}
in.close ();
}
catch (IOException e)
{
e.printStackTrace ();
}
}
}