2015-06-01 09:35:51 +00:00
|
|
|
package com.bytezone.diskbrowser.applefile;
|
|
|
|
|
2019-11-01 23:29:36 +00:00
|
|
|
import java.awt.image.DataBuffer;
|
|
|
|
|
2018-08-18 03:24:22 +00:00
|
|
|
// Found on Pascal disks
|
2019-11-02 06:56:06 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
2019-11-01 23:29:36 +00:00
|
|
|
public class Charset extends CharacterList
|
2019-11-02 06:56:06 +00:00
|
|
|
// -----------------------------------------------------------------------------------//
|
2015-06-01 09:35:51 +00:00
|
|
|
{
|
2019-11-01 23:29:36 +00:00
|
|
|
private static final int charsX = 16;
|
|
|
|
|
2019-11-02 06:56:06 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2016-12-17 22:07:55 +00:00
|
|
|
public Charset (String name, byte[] buffer)
|
2019-11-02 06:56:06 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2016-12-17 22:07:55 +00:00
|
|
|
{
|
2019-11-09 13:23:30 +00:00
|
|
|
super (name, buffer);
|
2015-06-01 09:35:51 +00:00
|
|
|
|
2019-11-09 13:23:30 +00:00
|
|
|
int ptr = 0;
|
|
|
|
|
|
|
|
while (ptr < buffer.length)
|
|
|
|
{
|
|
|
|
characters.add (new CharsetCharacter (buffer, ptr));
|
|
|
|
ptr += sizeY;
|
|
|
|
}
|
|
|
|
|
|
|
|
buildImage (borderX, borderY, gapX, gapY, sizeX, sizeY, charsX);
|
2019-11-01 23:29:36 +00:00
|
|
|
}
|
|
|
|
|
2019-11-02 06:56:06 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-11-01 23:29:36 +00:00
|
|
|
class CharsetCharacter extends Character
|
2019-11-02 06:56:06 +00:00
|
|
|
// ---------------------------------------------------------------------------------//
|
2019-11-01 23:29:36 +00:00
|
|
|
{
|
2019-11-02 06:56:06 +00:00
|
|
|
// -------------------------------------------------------------------------------//
|
2019-11-01 23:29:36 +00:00
|
|
|
public CharsetCharacter (byte[] buffer, int ptr)
|
2019-11-02 06:56:06 +00:00
|
|
|
// -------------------------------------------------------------------------------//
|
2019-11-01 23:29:36 +00:00
|
|
|
{
|
2019-11-09 13:23:30 +00:00
|
|
|
super (sizeX, sizeY);
|
|
|
|
|
2019-11-01 23:29:36 +00:00
|
|
|
DataBuffer dataBuffer = image.getRaster ().getDataBuffer ();
|
|
|
|
int element = 0;
|
2019-11-03 05:49:01 +00:00
|
|
|
ptr += sizeY; // start at the end and move backwards
|
2019-11-01 23:29:36 +00:00
|
|
|
|
2019-11-03 05:49:01 +00:00
|
|
|
for (int i = 0; i < sizeY; i++)
|
2019-11-01 23:29:36 +00:00
|
|
|
{
|
2019-11-03 05:49:01 +00:00
|
|
|
int value = buffer[--ptr] & 0xFF;
|
2019-11-01 23:29:36 +00:00
|
|
|
for (int j = 0; j < sizeX; j++)
|
|
|
|
{
|
|
|
|
dataBuffer.setElem (element++, (value & 0x01) == 0 ? 0 : 0xFF);
|
|
|
|
value >>>= 1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2015-06-01 09:35:51 +00:00
|
|
|
}
|