dmolony-DiskBrowser/src/com/bytezone/diskbrowser/nib/NibFile.java

65 lines
1.5 KiB
Java
Raw Normal View History

2018-08-17 01:20:00 +00:00
package com.bytezone.diskbrowser.nib;
2016-11-29 21:27:44 +00:00
import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
2018-08-17 01:20:00 +00:00
public class NibFile
2016-11-29 21:27:44 +00:00
{
2016-12-04 02:33:21 +00:00
// private final Nibblizer nibbler;
2016-11-29 21:27:44 +00:00
2018-08-17 01:20:00 +00:00
public final File file;
2016-11-29 21:27:44 +00:00
int tracks;
int actualTracks;
2018-08-17 01:20:00 +00:00
final byte[] diskBuffer = new byte[4096 * 35];
2016-11-29 21:27:44 +00:00
// .nib files are 232,960 bytes
// 6,656 bytes x 35 tracks (0x1A00)
2018-06-08 12:14:19 +00:00
// add 'nib' to Utility.suffixes to allow nib files to be selected
2016-12-01 13:25:41 +00:00
2018-08-13 09:17:05 +00:00
public NibFile (File file)
2016-11-29 21:27:44 +00:00
{
this.file = file;
2016-12-01 13:25:41 +00:00
byte[] trackBuffer = new byte[6656];
2016-12-04 02:33:21 +00:00
// nibbler = new Nibblizer (file);
2016-12-03 08:20:01 +00:00
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);
int offset = 0;
while (true)
{
2016-12-04 02:33:21 +00:00
offset = Nibblizer.findBytes (trackBuffer, offset, test);
2016-12-01 13:25:41 +00:00
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 ();
}
}
2018-08-17 01:20:00 +00:00
// ---------------------------------------------------------------------------------//
// getDiskBuffer
// ---------------------------------------------------------------------------------//
public byte[] getDiskBuffer ()
{
return diskBuffer;
}
2016-11-29 21:27:44 +00:00
}