Switch greek to have less specials and added all the ball symbols

This commit is contained in:
Willem Cazander 2025-01-17 03:28:40 +01:00
parent c97fd0f44c
commit 900c136374
10 changed files with 172 additions and 170 deletions

View file

@ -179,8 +179,8 @@ public class FourCornerUnicodeDisplay {
FourCornerX00PetitVidePoints[] videPoints = slice.getVidePoints();
if (slice.isExternWord()) {
String fcQName = slice.qname();
String key = fcQName + "." + Integer.toString(offset);
String nameSpec = slice.nameSpec();
String key = nameSpec + "." + Integer.toString(offset);
String value = null;
if (value != null) {
output.append(value);

View file

@ -95,25 +95,20 @@ public enum FourCornerDotCake {
// =========== Allow small terminators to take over 6 bit main frame computers
/// Character Dough Cake
FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values()),
FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values(), "Character Dough Cake"),
FC_DEC0127_PX0(64, 27, FCDotDEC0127DashPX0.values(), "Direct or Escaped Control"),
/// Direct or Escaped Control
FC_DEC0127_PX0(64, 27, FCDotDEC0127DashPX0.values()),
/// Array Programming Language
FC_APL0127_P7A(91, 27, FCDotAPL0127DashP7A.values()),
FC_APL0127_P7B(118, 27, FCDotAPL0127DashP7B.values()),
FC_APL0127_P7C(145, 27, FCDotAPL0127DashP7C.values()),
/// Block Your Display
FC_BYD0127_P7D(172, 27, FCDotBYD0127DashP7D.values()),
FC_BYD0127_P7E(199, 27, FCDotBYD0127DashP7E.values()),
FC_BYD0127_P7F(226, 27, FCDotBYD0127DashP7F.values()),
FC_APL0127_P7A(91, 27, FCDotAPL0127DashP7A.values(), "Array Programming Language P7A"),
FC_APL0127_P7B(118, 27, FCDotAPL0127DashP7B.values(), "Array Programming Language P7B"),
FC_APL0127_P7C(145, 27, FCDotAPL0127DashP7C.values(), "Array Programming Language P7C"),
FC_BYD0127_P7D(172, 27, FCDotBYD0127DashP7D.values(), "Block Your Display P7D"),
FC_BYD0127_P7E(199, 27, FCDotBYD0127DashP7E.values(), "Block Your Display P7E"),
FC_BYD0127_P7F(226, 27, FCDotBYD0127DashP7F.values(), "Block Your Display P7F"),
/// Mind the gap, for retro metro, mini maxi mosi members
/// NOTE: MSX 0xFF is the cursor (TODO: move to BYD)
__MIND_THE_GAP8(253, 3),
__MIND_THE_GAP8(253, 3, "Mind the gap, for 8 bit systems"),
// =========== Allow pie terminators for symbols without escaping
@ -189,9 +184,8 @@ public enum FourCornerDotCake {
// =========== Allow end-user select rendering of data gram packet per context
/// Interim Byte Mode, embed raw Hex 8 bit Data
/// Allow HEX to be displayed in Greek/Korean/Inuktitut/etc symbols.
FC_IBM1616_H8(1024, 256),
FC_IBM1616_H8(1024, 256, "Interim Byte Mode, embed raw Hex 8 bit Data"),
/// Reserved for future data grams use
__RESERVED_DATAGRAMS(1280, 1445-1280),
@ -206,34 +200,27 @@ public enum FourCornerDotCake {
//FC_XXX0106_S6(1434, 6),
//FC_XXX0105_S5(1440, 5),
/// Direct Nuclear Air strike for quadratonic values
FC_DNA0104_S4(1445, 4),
/// Natural X-state Phasing for tri-state or high impedance (Hi-Z) signals
FC_NXP0103_S3(1449, 3),
/// Binary Model Word encoding for bit 0 and bit 1 notation
FC_BMW0102_S2(1452, 2),
/// Application Methodoums Decimals, normal decimal numbers 0-9
FC_AMD0110_SA(1454, 10),
FC_DNA0104_S4(1445, 4, "Direct Nuclear Air strike for quadratonic values"),
FC_NXP0103_S3(1449, 3, "Natural X-state Phasing for tri-state or high impedance (Hi-Z) signals"),
FC_BMW0102_S2(1452, 2, "Binary Model Word encoding for bit 0 and bit 1 notation"),
FC_AMD0110_SA(1454, 10, "Application Methodoums Decimals, normal numbers"),
/// Octal Character Encoding in Hinari 3 bit
FC_OCE0801_H3(1464, 8),
/// Octal Character Encoding in Hinari 6 bit
FC_OCE0808_H6(1472, 64),
/// Octal Character Encoding in Hinari 9 bit
FC_OCE0864_H9(1536, 512),
FC_OCE0801_H3(1464, 8, "Octal Character Encoding in Hinari 3 bit"),
FC_OCE0808_H6(1472, 64, "Octal Character Encoding in Hinari 6 bit"),
FC_OCE0864_H9(1536, 512, "Octal Character Encoding in Hinari 9 bit"),
// =========== Allow visible password as words in text
/// Burroughs Informative Passwords, 2048 from a random 0039 seed sheet.
/// You only need one "word" and the terminator pie "curve" type for the grow factors and an "offset" number.
/// That allows a start point in nowhere which than creates 12 or 24 or many more BIP secure number fragments.
FC_BIP0039_2K(2048, 2048),
FC_BIP0039_2K(2048, 2048, "Burroughs Informative Passwords"),
// =========== Allow FileName/Variable/Class/Method/etc/etc to spelled correctly in any language
/// China Four Corner words with FIXED meaning for abstract translations, to make code without letters.
/// 4 or 5 decimals come from four corner index 0000.0 = 00000 = first word index = "head" = ""
FC_WORDS(4096, 100000),
FC_WORDS(4096, 100000, "Four Corner Words"),
/// Reserved four corner extra words
__RESERVED_WORDS(4096+100000, 131072-100000-4096), // fc end = 2^17-1
@ -270,43 +257,60 @@ public enum FourCornerDotCake {
FC_CLK1K_AMP(131072 + (1024*26), 1024),
/// Align unicode
__RESERVED_CLKSP(1 + FC_CLK1K_AMP.getStop(), 0x27000 - FC_CLK1K_AMP.getStop() - 1),
__RESERVED_CLKSP(1 + FC_CLK1K_AMP.getStop(), 0x27000 - FC_CLK1K_AMP.getStop() - 1, "Reserved for CLKSP"),
// =========== Allow more data grams for legacy unicode and next generation unicode
/// Support lower 11 bit of unicode to be encoded with one cake point.
FC_UNI2K_11(0x27000, 2048),
FC_UNI2K_11(0x27000, 2048, "Unicode page point"),
/// Optional select for the 11 bit half word, to get full 21 bit unicode-one point.
FC_UNI2K_22(0x27800, 2048),
FC_UNI2K_22(0x27800, 2048, "Unicode page select"),
/// MUST Prefix with __ESC18_NETHER, than pack big indian octals per 5, which is 15 bit data in one 18 bit cake point.
/// This can encode dark text data like icons, bitmap images or vector images and unicode4D/etc.
FC_NETHER(0x28000, 32768),
FC_NETHER(0x28000, 32768, "Dark octal data"),
// =========== Allow big terminators to learn a computer math
/// New Counting Rods, Select an 9 bit denominator to use.
/// Divided in 64 nine bit banks, to select up to 576 bit denominator.
FC_NCR1632_XD(0x30000, 32768),
FC_NCR1632_XD(0x30000, 32768, "New Counting Rods X-denominator"),
/// New Counting Rods, Use one or more 9 bit numerator values.
/// Divided in 64 nine bit banks, to select up to 576 bit numerator.
/// NOTE: Every lowest (512) numerator trigger a fraction.
FC_NCR1632_XN(0x38000, 32768),
FC_NCR1632_XN(0x38000, 32768, "New Counting Rods X-Numerator"),
;
private final int start;
private final int stop;
private final String nameSpec;
private final String description;
private final FourCornerX00PetitVidePoints[] videPoints;
private static final FourCornerDotCake[] VALUES = values();
private FourCornerDotCake(int start, int size) {
this(start, size, new FourCornerX00PetitVidePoints[] {});
this(start, size, new FourCornerX00PetitVidePoints[] {}, null);
}
private FourCornerDotCake(int start, int size, String description) {
this(start, size, new FourCornerX00PetitVidePoints[] {}, description);
}
private FourCornerDotCake(int start, int size, FourCornerX00PetitVidePoints[] videPoints) {
this(start, size, videPoints, null);
}
private FourCornerDotCake(int start, int size, FourCornerX00PetitVidePoints[] videPoints, String description) {
this.start = start;
this.stop = start + size - 1;
this.videPoints = videPoints;
this.description = description==null?"":description;
String name = name();
if (!name.startsWith("_")) {
name = name.replaceFirst("FC_", "FC.");
name = name.replaceAll("_", "-");
}
this.nameSpec = name;
}
public int getStart() {
@ -346,14 +350,12 @@ public enum FourCornerDotCake {
return true;
}
public String qname() {
String name = name();
if (name.startsWith("_")) {
return name;
}
name = name.replaceFirst("FC_", "FC.");
name = name.replaceAll("_", "-");
return name;
public String nameSpec() {
return nameSpec;
}
public String description() {
return description;
}
public FourCornerX00PetitVidePoints[] getVidePoints() {

View file

@ -38,12 +38,12 @@ import org.x4o.fc18.cake2.zero33.FCDotDEC0127DashPX0;
*/
public enum FCDotPIE9CDash06 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints {
NXX_01(' '),
NXX_02(' '),
NXX_03(' '),
NXX_04(' '),
NXX_05(' '),
NXX_06(' '),
NXX_1('⌽'), // = FROM APL
NXX_2('⊖'), // = FROM APL
NXX_3('⍉'), // = FROM APL
NXX_4('⌀'),
NXX_5('⊗'), // = FROM APL
NXX_6('⊗'), // = FROM APL
;
private final int[] codePoints;

View file

@ -38,32 +38,30 @@ import org.x4o.fc18.cake2.zero33.FCDotDEC0127DashPX0;
*/
public enum FCDotPIE9CDash24 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints {
// Lower case greek from MSX KANJI KuTen-632 and KuTen-648
LOW_ALPHA('α'), // = FROM APL
LOW_BETA('β'),
LOW_GAMMA('γ'),
LOW_DELTA('δ'),
LOW_EPSILON('ε'),
LOW_ZETA('ζ'),
LOW_ETA('η'),
LOW_THETA('θ'),
LOW_IOTA('ι'), // = FROM APL
LOW_KAPPA('κ'),
LOW_LAMBDA('λ'),
LOW_MU('μ'),
LOW_NU('ν'),
LOW_XI('ξ'),
LOW_OMICRON('ο'),
LOW_PI('π'),
LOW_RHO('ρ'), // = FROM APL
LOW_SIGMA('σ'),
LOW_TAU('τ'),
LOW_UPSILON('υ'),
LOW_PHI('φ'),
LOW_CHI('χ'),
LOW_PSI('ψ'),
LOW_OMEGA('ω'), // = FROM APL
UBARLOW_ALPHA('α', '\u0332'), // = FROM APL
UBARLOW_BETA('β', '\u0332'),
UBARLOW_GAMMA('γ', '\u0332'),
UBARLOW_DELTA('δ', '\u0332'),
UBARLOW_EPSILON('ε', '\u0332'), // = FROM APL
UBARLOW_ZETA('ζ', '\u0332'),
UBARLOW_ETA('η', '\u0332'),
UBARLOW_THETA('θ', '\u0332'),
UBARLOW_IOTA('ι', '\u0332'), // = FROM APL
UBARLOW_KAPPA('κ', '\u0332'),
UBARLOW_LAMBDA('λ', '\u0332'),
UBARLOW_MU('μ', '\u0332'),
UBARLOW_NU('ν', '\u0332'),
UBARLOW_XI('ξ', '\u0332'),
UBARLOW_OMICRON('ο', '\u0332'),
UBARLOW_PI('π', '\u0332'),
UBARLOW_RHO('ρ', '\u0332'),
UBARLOW_SIGMA('σ', '\u0332'),
UBARLOW_TAU('τ', '\u0332'),
UBARLOW_UPSILON('υ', '\u0332'),
UBARLOW_PHI('φ', '\u0332'),
UBARLOW_CHI('χ', '\u0332'),
UBARLOW_PSI('ψ', '\u0332'),
UBARLOW_OMEGA('ω', '\u0332'), // = FROM APL
;
private final int[] codePoints;

View file

@ -38,31 +38,33 @@ import org.x4o.fc18.cake2.zero33.FCDotDEC0127DashPX0;
*/
public enum FCDotPIE9CDash25 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints {
UBARLOW_ALPHA('α', '\u0332'), // = FROM APL
UBARLOW_BETA('β', '\u0332'),
UBARLOW_GAMMA('γ', '\u0332'),
UBARLOW_DELTA('δ', '\u0332'),
UBARLOW_EPSILON('ε', '\u0332'), // = FROM APL
UBARLOW_ZETA('ζ', '\u0332'),
UBARLOW_ETA('η', '\u0332'),
UBARLOW_THETA('θ', '\u0332'),
UBARLOW_IOTA('ι', '\u0332'), // = FROM APL
UBARLOW_KAPPA('κ', '\u0332'),
UBARLOW_LAMBDA('λ', '\u0332'),
UBARLOW_MU('μ', '\u0332'),
UBARLOW_NU('ν', '\u0332'),
UBARLOW_XI('ξ', '\u0332'),
UBARLOW_OMICRON('ο', '\u0332'),
UBARLOW_PI('π', '\u0332'),
UBARLOW_RHO('ρ', '\u0332'),
UBARLOW_SIGMA('σ', '\u0332'),
UBARLOW_TAU('τ', '\u0332'),
UBARLOW_UPSILON('υ', '\u0332'),
UBARLOW_PHI('φ', '\u0332'),
UBARLOW_CHI('χ', '\u0332'),
UBARLOW_PSI('ψ', '\u0332'),
UBARLOW_OMEGA('ω', '\u0332'), // = FROM APL
APL_REMARK('⍝', '\u0332'), // NEW FOR APL (underbar tombstone)
// Lower case greek from MSX KANJI KuTen-632 and KuTen-648
LOW_ALPHA('α'), // = FROM APL
LOW_BETA('β'),
LOW_GAMMA('γ'),
LOW_DELTA('δ'),
LOW_EPSILON('ε'),
LOW_ZETA('ζ'),
LOW_ETA('η'),
LOW_THETA('θ'),
LOW_IOTA('ι'), // = FROM APL
LOW_KAPPA('κ'),
LOW_LAMBDA('λ'),
LOW_MU('μ'),
LOW_NU('ν'),
LOW_XI('ξ'),
LOW_OMICRON('ο'),
LOW_PI('π'),
LOW_RHO('ρ'), // = FROM APL
LOW_SIGMA('σ'),
LOW_TAU('τ'),
LOW_UPSILON('υ'),
LOW_PHI('φ'),
LOW_CHI('χ'),
LOW_PSI('ψ'),
LOW_OMEGA('ω'), // = FROM APL
APL_REMARK('⍝'), // = FROM APL
;
private final int[] codePoints;

View file

@ -38,13 +38,13 @@ import org.x4o.fc18.cake2.zero33.FCDotDEC0127DashPX0;
*/
public enum FCDotPIE9DDash07 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints {
NXX_0(' '),
NXX_4(' '),
NXX_5(' '),
NXX_6(' '),
NXX_7(' '),
NXX_8(' '),
NXX_9(' '),
NXX_01(' '),
NXX_02(' '),
NXX_03(' '),
NXX_04(' '),
NXX_05(' '),
NXX_06(' '),
NXX_07(' '),
;
private final int[] codePoints;

View file

@ -38,32 +38,30 @@ import org.x4o.fc18.cake2.zero33.FCDotDEC0127DashPX0;
*/
public enum FCDotPIE9DDash24 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints {
// Upper case greek from MSX KANJI KuTen-600 and 616
ALPHA('Α'),
BETA('Β'),
GAMMA('Γ'),
DELTA('Δ'),
EPSILON('Ε'),
ZETA('Ζ'),
ETA('Η'),
THETA('Θ'),
IOTA('Ι'),
KAPPA('Κ'),
LAMBDA('Λ'),
MU('Μ'),
NU('Ν'),
XI('Ξ'),
OMICRON('Ο'),
PI('Π'),
RHO('Ρ'),
SIGMA('Σ'),
TAU('Τ'),
UPSILON('Υ'),
PHI('Φ'),
CHI('Χ'),
PSI('Ψ'),
OMEGA('Ω'),
NXX_01(0x1D6A8),
NXX_02(0x1D6A9),
NXX_03(0x1D6AA),
NXX_04(0x1D6AB),
NXX_05(0x1D6AC),
NXX_06(0x1D6AD),
NXX_07(0x1D6AE),
NXX_08(0x1D6AF),
NXX_09(0x1D6B0),
NXX_10(0x1D6B1),
NXX_11(0x1D6B2),
NXX_12(0x1D6B3),
NXX_13(0x1D6B4),
NXX_14(0x1D6B5),
NXX_15(0x1D6B6),
NXX_16(0x1D6B7),
NXX_17(0x1D6B8),
NXX_18(0x1D6BA), // GAP because 0x1D6B9 is low case letter
NXX_19(0x1D6BB),
NXX_20(0x1D6BC),
NXX_21(0x1D6BD),
NXX_22(0x1D6BE),
NXX_23(0x1D6BF),
NXX_24(0x1D6C0),
;
private final int[] codePoints;

View file

@ -38,31 +38,33 @@ import org.x4o.fc18.cake2.zero33.FCDotDEC0127DashPX0;
*/
public enum FCDotPIE9DDash25 implements FourCornerX06BaklavaPoints, FourCornerX08MuffinPoints, FourCornerX18CakePoints, FourCornerX21CodePoints {
NXX_01(0x1D6A8),
NXX_02(0x1D6A9),
NXX_03(0x1D6AA),
NXX_04(0x1D6AB),
NXX_05(0x1D6AC),
NXX_06(0x1D6AD),
NXX_07(0x1D6AE),
NXX_08(0x1D6AF),
NXX_09(0x1D6B0),
NXX_10(0x1D6B1),
NXX_11(0x1D6B2),
NXX_12(0x1D6B3),
NXX_13(0x1D6B4),
NXX_14(0x1D6B5),
NXX_15(0x1D6B6),
NXX_16(0x1D6B7),
NXX_17(0x1D6B8),
NXX_18(0x1D6BA), // GAP because 0x1D6B9 is low case letter
NXX_19(0x1D6BB),
NXX_20(0x1D6BC),
NXX_21(0x1D6BD),
NXX_22(0x1D6BE),
NXX_23(0x1D6BF),
NXX_24(0x1D6C0),
NXX_25('⍝'), // FROM APL (upgraded to a bold tombstone)
// Upper case greek from MSX KANJI KuTen-600 and 616
ALPHA('Α'),
BETA('Β'),
GAMMA('Γ'),
DELTA('Δ'),
EPSILON('Ε'),
ZETA('Ζ'),
ETA('Η'),
THETA('Θ'),
IOTA('Ι'),
KAPPA('Κ'),
LAMBDA('Λ'),
MU('Μ'),
NU('Ν'),
XI('Ξ'),
OMICRON('Ο'),
PI('Π'),
RHO('Ρ'),
SIGMA('Σ'),
TAU('Τ'),
UPSILON('Υ'),
PHI('Φ'),
CHI('Χ'),
PSI('Ψ'),
OMEGA('Ω'),
NXX_25('∇'), // = FROM APL
;
private final int[] codePoints;

View file

@ -266,9 +266,9 @@ public class FourCornerZionStenoLexer {
@Override
public void process(FourCornerZionStenoLexer lexer, int idxFirst, int idxLast) {
List<Integer> offsets = lexer.input.subList(idxFirst, idxLast + 1); // List.subList is an exclusive "indexTo" argument
for (int i = 0; i < offsets.size(); i++) {
offsets.set(i, offsets.get(i) - blockStart);
List<Integer> offsets = new ArrayList<>();
for (int i = idxFirst; i <= idxLast; i++) {
offsets.add(lexer.input.get(i) - blockStart);
}
lexer.handler.strobeWords(cakeSlice, offsets);
}

View file

@ -180,7 +180,7 @@ public class FourCornerWriteExampleMD {
for (FourCornerDotCake v : FourCornerDotCake.values()) {
buf.append("<tr>");
buf.append("<td>" + v.qname() + "</td>");
buf.append("<td>" + v.nameSpec() + "</td>");
buf.append(String.format("<td>%06X</td>", v.getStart()));
buf.append(String.format("<td>%06X</td>", v.getStop()));
buf.append("<td>" + v.getLength() + "</td>");
@ -269,7 +269,7 @@ public class FourCornerWriteExampleMD {
private void writePIE(StringBuilder buf, FourCornerDotCake slice) {
buf.append("<tr>");
buf.append("<td>");
buf.append(slice.qname());
buf.append(slice.nameSpec());
buf.append("</td>");
for (int i=0; i<27;i++) {
if (i >= slice.getLength()) {