dmolony-DiskBrowser/src/com/bytezone/diskbrowser/applefile/BootSector.java

44 lines
1.1 KiB
Java
Raw Normal View History

2015-06-01 09:35:51 +00:00
package com.bytezone.diskbrowser.applefile;
import com.bytezone.diskbrowser.disk.AbstractSector;
import com.bytezone.diskbrowser.disk.Disk;
public class BootSector extends AbstractSector
{
AssemblerProgram assembler;
String name; // DOS or Prodos
public BootSector (Disk disk, byte[] buffer, String name)
{
super (disk, buffer);
this.name = name;
}
@Override
public String createText ()
{
StringBuilder text = new StringBuilder ();
if (assembler == null)
{
2015-12-16 02:14:05 +00:00
int flag = buffer[0] & 0xFF;
if (flag == 1) // apple II
assembler = new AssemblerProgram (name + " Boot Loader", buffer, 0x00, 1);
else // apple III (SOS)
2015-06-01 09:35:51 +00:00
{
2015-12-16 02:14:05 +00:00
byte[] newBuffer = new byte[buffer.length * 2];
2015-06-01 09:35:51 +00:00
System.arraycopy (buffer, 0, newBuffer, 0, buffer.length);
2015-12-16 02:14:05 +00:00
byte[] buf = disk.readSector (1);
System.arraycopy (buf, 0, newBuffer, buf.length, buf.length);
2015-06-01 09:35:51 +00:00
buffer = newBuffer;
2015-12-13 20:19:57 +00:00
assembler = new AssemblerProgram (name + " Boot Loader", buffer, 0x00, 0);
2015-12-16 02:14:05 +00:00
}
2015-06-01 09:35:51 +00:00
}
text.append (assembler.getText ());
return text.toString ();
}
}