mirror of
https://github.com/dmolony/DiskBrowser.git
synced 2024-09-27 09:55:28 +00:00
65 lines
1.5 KiB
Java
65 lines
1.5 KiB
Java
package com.bytezone.diskbrowser.nib;
|
|
|
|
import java.io.BufferedInputStream;
|
|
import java.io.File;
|
|
import java.io.FileInputStream;
|
|
import java.io.IOException;
|
|
|
|
public class NibFile
|
|
{
|
|
// private final Nibblizer nibbler;
|
|
|
|
public final File file;
|
|
int tracks;
|
|
int actualTracks;
|
|
|
|
final byte[] diskBuffer = new byte[4096 * 35];
|
|
|
|
// .nib files are 232,960 bytes
|
|
// 6,656 bytes x 35 tracks (0x1A00)
|
|
|
|
// add 'nib' to Utility.suffixes to allow nib files to be selected
|
|
|
|
public NibFile (File file)
|
|
{
|
|
this.file = file;
|
|
byte[] trackBuffer = new byte[6656];
|
|
// nibbler = new Nibblizer (file);
|
|
|
|
try
|
|
{
|
|
BufferedInputStream in = new BufferedInputStream (new FileInputStream (file));
|
|
|
|
byte[] test = { (byte) 0xD5, (byte) 0xAA, (byte) 0xB5 };
|
|
for (int i = 0; i < 35; i++)
|
|
{
|
|
in.read (trackBuffer);
|
|
int offset = 0;
|
|
while (true)
|
|
{
|
|
offset = Nibblizer.findBytes (trackBuffer, offset, test);
|
|
if (offset < 0)
|
|
break;
|
|
System.out.printf ("found at %04X%n", offset);
|
|
++offset;
|
|
}
|
|
break; // just examine the first track
|
|
}
|
|
|
|
in.close ();
|
|
}
|
|
catch (IOException e)
|
|
{
|
|
e.printStackTrace ();
|
|
}
|
|
}
|
|
|
|
// ---------------------------------------------------------------------------------//
|
|
// getDiskBuffer
|
|
// ---------------------------------------------------------------------------------//
|
|
|
|
public byte[] getDiskBuffer ()
|
|
{
|
|
return diskBuffer;
|
|
}
|
|
} |