Reversed UNI block, moved NCR down to have single block of word numbers

This commit is contained in:
Willem Cazander 2025-01-12 06:27:42 +01:00
parent ebcacb0a75
commit 0a0c1b05e9
6 changed files with 49 additions and 55 deletions

View file

@ -156,61 +156,61 @@ public enum FourCornerDotCake {
/// Reserved four corner extra words
__RESERVED_WORDS(4096+100000, 131072-100000-4096), // fc end = 2^17-1
// =========== 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(131072, 32768),
/// 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(131072+32768, 32768),
// =========== Allow digital language constructs to be constants
/// Code Language Keywords for VHDL/C++ and Java/etc which allows a user to load a custom word dictionary.
/// TODO: Add a few more sources and do a few dedup alias rename sessions AND abbr... unpacking + aliasses
FC_CLK1K_A(196608 + (1024*0), 1024), // start at "2^17+2^16"
FC_CLK1K_B(196608 + (1024*1), 1024),
FC_CLK1K_C(196608 + (1024*2), 1024),
FC_CLK1K_D(196608 + (1024*3), 1024),
FC_CLK1K_E(196608 + (1024*4), 1024),
FC_CLK1K_F(196608 + (1024*5), 1024),
FC_CLK1K_G(196608 + (1024*6), 1024),
FC_CLK1K_H(196608 + (1024*7), 1024),
FC_CLK1K_I(196608 + (1024*8), 1024),
FC_CLK1K_J(196608 + (1024*9), 1024),
FC_CLK1K_K(196608 + (1024*10), 1024),
FC_CLK1K_L(196608 + (1024*11), 1024),
FC_CLK1K_M(196608 + (1024*12), 1024),
FC_CLK1K_N(196608 + (1024*13), 1024),
FC_CLK1K_O(196608 + (1024*14), 1024),
FC_CLK1K_P(196608 + (1024*15), 1024),
FC_CLK1K_Q(196608 + (1024*16), 1024),
FC_CLK1K_R(196608 + (1024*17), 1024),
FC_CLK1K_S(196608 + (1024*18), 1024),
FC_CLK1K_T(196608 + (1024*19), 1024),
FC_CLK1K_U(196608 + (1024*20), 1024),
FC_CLK1K_V(196608 + (1024*21), 1024),
FC_CLK1K_W(196608 + (1024*22), 1024),
FC_CLK1K_X(196608 + (1024*23), 1024),
FC_CLK1K_Y(196608 + (1024*24), 1024),
FC_CLK1K_Z(196608 + (1024*25), 1024),
FC_CLK1K_AMP(196608 + (1024*26), 1024),
FC_CLK1K_A(131072 + (1024*0), 1024), // start at "2^17+2^16"
FC_CLK1K_B(131072 + (1024*1), 1024),
FC_CLK1K_C(131072 + (1024*2), 1024),
FC_CLK1K_D(131072 + (1024*3), 1024),
FC_CLK1K_E(131072 + (1024*4), 1024),
FC_CLK1K_F(131072 + (1024*5), 1024),
FC_CLK1K_G(131072 + (1024*6), 1024),
FC_CLK1K_H(131072 + (1024*7), 1024),
FC_CLK1K_I(131072 + (1024*8), 1024),
FC_CLK1K_J(131072 + (1024*9), 1024),
FC_CLK1K_K(131072 + (1024*10), 1024),
FC_CLK1K_L(131072 + (1024*11), 1024),
FC_CLK1K_M(131072 + (1024*12), 1024),
FC_CLK1K_N(131072 + (1024*13), 1024),
FC_CLK1K_O(131072 + (1024*14), 1024),
FC_CLK1K_P(131072 + (1024*15), 1024),
FC_CLK1K_Q(131072 + (1024*16), 1024),
FC_CLK1K_R(131072 + (1024*17), 1024),
FC_CLK1K_S(131072 + (1024*18), 1024),
FC_CLK1K_T(131072 + (1024*19), 1024),
FC_CLK1K_U(131072 + (1024*20), 1024),
FC_CLK1K_V(131072 + (1024*21), 1024),
FC_CLK1K_W(131072 + (1024*22), 1024),
FC_CLK1K_X(131072 + (1024*23), 1024),
FC_CLK1K_Y(131072 + (1024*24), 1024),
FC_CLK1K_Z(131072 + (1024*25), 1024),
FC_CLK1K_AMP(131072 + (1024*26), 1024),
/// Align unicode
__RESERVED_CLKSP(1 + FC_CLK1K_AMP.getStop(), 0x37000 - FC_CLK1K_AMP.getStop() - 1),
__RESERVED_CLKSP(1 + FC_CLK1K_AMP.getStop(), 0x27000 - FC_CLK1K_AMP.getStop() - 1),
// =========== Allow more data grams for legacy unicode and next generation unicode
/// Optional select for the 11 bit half word, to get full 21 bit unicode-one point.
FC_UNI2K_22(0x37000, 2048),
/// Support lower 11 bit of unicode to be encoded with one cake point.
FC_UNI2K_11(0x37800, 2048),
FC_UNI2K_11(0x27000, 2048),
/// Optional select for the 11 bit half word, to get full 21 bit unicode-one point.
FC_UNI2K_22(0x27800, 2048),
/// 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(0x38000, 32768),
FC_NETHER(0x28000, 32768),
// =========== 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),
/// 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),
;
private final int start;
@ -258,13 +258,7 @@ public enum FourCornerDotCake {
if (idx < FC_IBM1616_H8.ordinal()) {
return false;
}
if (idx == FC_NCR1632_XD.ordinal()) {
return false;
}
if (idx == FC_NCR1632_XN.ordinal()) {
return false;
}
if (idx >= FC_UNI2K_22.ordinal()) {
if (idx >= FC_UNI2K_11.ordinal()) {
return false;
}
return true;

View file

@ -46,7 +46,7 @@ public class FourCornerUnicodeDisplay {
private boolean handleEscape = true;
private String renderSeperator = null;
private FourCornerUnicodeDisplay(boolean failUnsupported, boolean handleEscape, String renderSeperator) {
public FourCornerUnicodeDisplay(boolean failUnsupported, boolean handleEscape, String renderSeperator) {
this.failUnsupported = failUnsupported;
this.handleEscape = handleEscape;
this.renderSeperator = renderSeperator;

View file

@ -28,7 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
/// "FC.APL1604-S6" Four Corner A Programming Language symbols cake slice of cake points.
/// "FC.APL1604-P8L" Four Corner A Programming Language symbols cake slice of cake points.
///
/// @author Willem Cazander
/// @version 1.0 Jan 1, 2025

View file

@ -28,7 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
import org.x4o.o2o.fc18.FourCornerX21CodePoints;
/// "FC.BYD1604-C6" Four Corner Block Your Display terminal application.
/// "FC.BYD1604-P8H" Four Corner Block Your Display terminal application.
///
/// @author Willem Cazander
/// @version 1.0 Jan 1, 2025

View file

@ -28,7 +28,7 @@ import org.x4o.o2o.fc18.FourCornerX08MuffinPoints;
import org.x4o.o2o.fc18.FourCornerX18CakePoints;
/**
* "FC.DEC1604-E2" Four Corner dot Direct or Escaped Control in grid of 16 by 04 of dashed Escape codes V2.
* "FC.DEC1604-P7" Four Corner dot Direct or Escaped Control in grid of 16 by 04 of dashed Escape codes V2.
*
* A 6 bit computer use the __ESC6 to use these 64 control codes.
*

View file

@ -291,11 +291,11 @@ public class FourCornerZionStenoLexer {
@Override
public ScanResult scan() {
if (cakePoint < FourCornerDotCake.FC_UNI2K_22.getStart() || cakePoint > FourCornerDotCake.FC_UNI2K_11.getStop()) {
if (cakePoint < FourCornerDotCake.FC_UNI2K_11.getStart() || cakePoint > FourCornerDotCake.FC_UNI2K_22.getStop()) {
return ScanResult.NEXT;
}
List<Integer> result = new ArrayList<>();
ScanResult status = safeReadCakePoints(FourCornerDotCake.FC_UNI2K_22.getStart(), FourCornerDotCake.FC_UNI2K_11.getStop(), result);
ScanResult status = safeReadCakePoints(FourCornerDotCake.FC_UNI2K_11.getStart(), FourCornerDotCake.FC_UNI2K_22.getStop(), result);
if (!result.isEmpty()) {
handlePoints(result); // mix of the two unicode blocks pages
}