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

55 lines
2.0 KiB
Java
Raw Normal View History

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;
import java.util.ArrayList;
import java.util.List;
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;
private static final int charsY = 8;
List<Character> characters = new ArrayList<> ();
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-01 23:29:36 +00:00
super (name, buffer, charsX, charsY);
2016-12-17 22:07:55 +00:00
}
2015-06-01 09:35:51 +00:00
2019-11-02 06:56:06 +00:00
// ---------------------------------------------------------------------------------//
2019-11-01 23:29:36 +00:00
@Override
Character createCharacter (byte[] buffer, int ptr)
2019-11-02 06:56:06 +00:00
// ---------------------------------------------------------------------------------//
2019-11-01 23:29:36 +00:00
{
return new CharsetCharacter (buffer, ptr);
}
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
{
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
}