FC18: Redone binary number encodings
This commit is contained in:
parent
46d305b5aa
commit
e790e89dd7
18 changed files with 1271 additions and 914 deletions
|
|
@ -308,50 +308,149 @@ public enum FourCornerDotCake {
|
|||
FC_CLK1K_Y(131072 + (1024*24), 1024, FCDotCLK1KDashY.values()),
|
||||
FC_CLK1K_Z(131072 + (1024*25), 1024, FCDotCLK1KDashZ.values()),
|
||||
|
||||
// =========== Define digital numbers and document structures and sandworms
|
||||
// =========== Define digital document structures
|
||||
|
||||
/// Number signed 144 bit integer
|
||||
FC_NUM_INT144(0x026800, 384, "Number of 144 bit integer"),
|
||||
/// Number signed 144 bit base 10 decimal
|
||||
FC_NUM_DEC144(0x026980, 384, "Number of 144 bit base 10 decimal"),
|
||||
/// Number signed 144 bit base 2 float
|
||||
FC_NUM_FP144(0x026B00, 384, "Number of 144 bit base 2 float"),
|
||||
//FC_TXTBLK_64 <== LAST cake slice to have "external" defined words for display
|
||||
// - FC_F4TXT0001_SP
|
||||
// - commentTXT start + stop + comment to end of line ?
|
||||
// - commentDOC start + stop + anno ???
|
||||
// - decimal seperator (. or ,)
|
||||
// - number group seperator (_)
|
||||
// - number neg sign (-)
|
||||
// - ??? tag start (<) + tag (>) + etc for custom xdbx textual view with "external" words
|
||||
/// but char in CDC will also use CJK symbols, than we don't need this but only for;'
|
||||
// - etc so that adult mode can use pie-- letters, see SourceGlyph.java
|
||||
|
||||
// mmm move F4 flags here ? as SP is "external" but NL is not, (todo: add SP+NL white space display words)
|
||||
|
||||
/// Reserved Flag4 Structures
|
||||
__RESERVED_F4(0x026C80, 0x026DBE - 0x026C80, "Reserved for F4 structures"),
|
||||
__RESERVED_F4(0x026800, 0x026DBE - 0x026800, "Reserved for F4 structures"),
|
||||
|
||||
/// Tele Type Ytructure00 zero one Nether Line
|
||||
FC_F4TTY0001_NL(0x026DBE, 1, FCDotF4TTY0001DashNL.values(), "Flag4 TTY00 zero one Nether Line"),
|
||||
|
||||
/// Tele teXt Terminator zero one Spanish Peace
|
||||
/// The "normal" space, An undefined UWU points to here, as that is a custom space like tab space.
|
||||
/// See: https://www.ibm.com/docs/en/db2/11.5?topic=uce-code-page-coded-character-set-identifier-ccsid-numbers-unicode-graphic-data
|
||||
FC_F4TXT0001_SP(0x026DBF, 1, FCDotF4TXT0001DashSP.values(), "Flag4 TXT00 zero one Spanish Peace"),
|
||||
|
||||
__F4_FREE(0x026DC0, 0x02CC00 - 0x026DC0),
|
||||
|
||||
/// free
|
||||
__RESERVED_XDBX(0x026DC0, 64, "free"),
|
||||
__RESERVED_XDBX(0x02CC00, 512, "free"),
|
||||
//FC_XDBX0064_DOC(0x026DC0, 64, "Flag4 Doctype usage header flags."),
|
||||
|
||||
/// XML4 has fixed size limits to have stable complexity
|
||||
FC_XDBX0512_NS(0x026E00, 512, "XML4 StringID of Namespace"),
|
||||
FC_XDBX2048_ATTR(0x027000, 2048, "XML4 StringID of Attribute"),
|
||||
FC_XDBX2048_TAG(0x027800, 2048, "XML4 StringID of Element"),
|
||||
FC_XDBX0512_NS(0x02CE00, 512, "XML4 StringID of Namespace"),
|
||||
FC_XDBX2048_ATTR(0x02D000, 4096, "XML4 StringID of Attribute"),
|
||||
FC_XDBX2048_TAG(0x02E000, 4096, "XML4 StringID of Element"),
|
||||
|
||||
// =========== Allow big sand worms and sand dunes filled the freman
|
||||
|
||||
/// Sand walk steps for calling up a sand worm
|
||||
FC_SANDWALK_12(0x02F000, 4096, "Sand walk octals to call the olgoi khorkhoi"),
|
||||
/// Sand worm embedded 15 bit octal data stream
|
||||
/// To escape the question of undefined behavior, we define it as dark nether space, so we can see it in C++
|
||||
/// Undefined octal data which are packed big indian octals per 5, which is a 15 bit data gram in one 18 bit cake point.
|
||||
/// This can encode sand worm text data like icons, bitmap images or vector images and unicode4D/etc like HolyC of TempleOS.
|
||||
/// With the ESC_SAND_WALKER preamble the binary octal mime-type information must be send first.
|
||||
FC_SANDWORM_15(0x28000, 32768, "Sand octals of olgoi khorkhoi"),
|
||||
FC_SANDWORM_15(0x030000, 32768, "Sand octal spice of the olgoi khorkhoi"),
|
||||
|
||||
/// 16x256=4096+1020 cake points to embed base2 number types
|
||||
FC_BA2U0016_SEL0(0x038000, 2, "Embed number unsiged 16 bit select"),
|
||||
FC_BA2U0016_BANK(0x038002, 256, "Embed number unsiged 16 bit bank"),
|
||||
FC_BA2U0032_SEL0(0x038102, 4, "Embed number unsiged 32 bit select"),
|
||||
FC_BA2U0032_BANK(0x038106, 256, "Embed number unsiged 32 bit bank"),
|
||||
FC_BA2U0064_SEL0(0x038206, 8, "Embed number unsiged 64 bit select"),
|
||||
FC_BA2U0064_BANK(0x03820E, 256, "Embed number unsiged 64 bit bank"),
|
||||
FC_BA2U0128_SEL0(0x03830E, 16, "Embed number unsiged 128 bit select"),
|
||||
FC_BA2U0128_BANK(0x03831E, 256, "Embed number unsiged 128 bit bank"),
|
||||
FC_BA2U0256_SEL0(0x03841E, 32, "Embed number unsiged 256 bit select"),
|
||||
FC_BA2U0256_BANK(0x03843E, 256, "Embed number unsiged 256 bit bank"),
|
||||
FC_BA2U0512_SEL0(0x03853E, 64, "Embed number unsiged 512 bit select"),
|
||||
FC_BA2U0512_BANK(0x03857E, 256, "Embed number unsiged 512 bit bank"),
|
||||
FC_BA2U1024_SEL0(0x03867E, 128, "Embed number unsiged 1024 bit select"),
|
||||
FC_BA2U1024_BANK(0x0386FE, 256, "Embed number unsiged 1024 bit bank"),
|
||||
FC_BA2U2048_SEL0(0x0387FE, 256, "Embed number unsiged 2048 bit select"),
|
||||
FC_BA2U2048_BANK(0x0388FE, 256, "Embed number unsiged 2048 bit bank"),
|
||||
FC_BA2I0016_SEL0(0x0389FE, 2, "Embed number siged 16 bit select"),
|
||||
FC_BA2I0016_BANK(0x038A00, 256, "Embed number siged 16 bit bank"),
|
||||
FC_BA2I0032_SEL0(0x038B00, 4, "Embed number siged 32 bit select"),
|
||||
FC_BA2I0032_BANK(0x038B04, 256, "Embed number siged 32 bit bank"),
|
||||
FC_BA2I0064_SEL0(0x038C04, 8, "Embed number siged 64 bit select"),
|
||||
FC_BA2I0064_BANK(0x038C0C, 256, "Embed number siged 64 bit bank"),
|
||||
FC_BA2I0128_SEL0(0x038D0C, 16, "Embed number siged 128 bit select"),
|
||||
FC_BA2I0128_BANK(0x038D1C, 256, "Embed number siged 128 bit bank"),
|
||||
FC_BA2I0256_SEL0(0x038E1C, 32, "Embed number siged 256 bit select"),
|
||||
FC_BA2I0256_BANK(0x038E3C, 256, "Embed number siged 256 bit bank"),
|
||||
FC_BA2I0512_SEL0(0x038F3C, 64, "Embed number siged 512 bit select"),
|
||||
FC_BA2I0512_BANK(0x038F7C, 256, "Embed number siged 512 bit bank"),
|
||||
FC_BA2I1024_SEL0(0x03907C, 128, "Embed number siged 1024 bit select"),
|
||||
FC_BA2I1024_BANK(0x0390FC, 256, "Embed number siged 1024 bit bank"),
|
||||
FC_BA2I2048_SEL0(0x0391FC, 256, "Embed number siged 2048 bit select"),
|
||||
FC_BA2I2048_BANK(0x0392FC, 256, "Embed number siged 2048 bit bank"),
|
||||
|
||||
/// 16x512=8192+1020 cake points to embed base8 number types
|
||||
FC_BA8U0018_SEL0(0x0393FC, 2, "Embed number unsiged 18 bit select"),
|
||||
FC_BA8U0018_BANK(0x0393FE, 512, "Embed number unsiged 18 bit bank"),
|
||||
FC_BA8U0036_SEL0(0x0395FE, 4, "Embed number unsiged 36 bit select"),
|
||||
FC_BA8U0036_BANK(0x039602, 512, "Embed number unsiged 36 bit bank"),
|
||||
FC_BA8U0072_SEL0(0x039802, 8, "Embed number unsiged 72 bit select"),
|
||||
FC_BA8U0072_BANK(0x03980A, 512, "Embed number unsiged 72 bit bank"),
|
||||
FC_BA8U0144_SEL0(0x039A0A, 16, "Embed number unsiged 144 bit select"),
|
||||
FC_BA8U0144_BANK(0x039A1A, 512, "Embed number unsiged 144 bit bank"),
|
||||
FC_BA8U0288_SEL0(0x039C1A, 32, "Embed number unsiged 288 bit select"),
|
||||
FC_BA8U0288_BANK(0x039C3A, 512, "Embed number unsiged 288 bit bank"),
|
||||
FC_BA8U0576_SEL0(0x039E3A, 64, "Embed number unsiged 576 bit select"),
|
||||
FC_BA8U0576_BANK(0x039E7A, 512, "Embed number unsiged 576 bit bank"),
|
||||
FC_BA8U1152_SEL0(0x03A07A, 128, "Embed number unsiged 1152 bit select"),
|
||||
FC_BA8U1152_BANK(0x03A0FA, 512, "Embed number unsiged 1152 bit bank"),
|
||||
FC_BA8U2304_SEL0(0x03A2FA, 256, "Embed number unsiged 2304 bit select"),
|
||||
FC_BA8U2304_BANK(0x03A3FA, 512, "Embed number unsiged 2304 bit bank"),
|
||||
FC_BA8I0018_SEL0(0x03A5FA, 2, "Embed number siged 18 bit select"),
|
||||
FC_BA8I0018_BANK(0x03A5FC, 512, "Embed number siged 18 bit bank"),
|
||||
FC_BA8I0036_SEL0(0x03A7FC, 4, "Embed number siged 36 bit select"),
|
||||
FC_BA8I0036_BANK(0x03A800, 512, "Embed number siged 36 bit bank"),
|
||||
FC_BA8I0072_SEL0(0x03AA00, 8, "Embed number siged 72 bit select"),
|
||||
FC_BA8I0072_BANK(0x03AA08, 512, "Embed number siged 72 bit bank"),
|
||||
FC_BA8I0144_SEL0(0x03AC08, 16, "Embed number siged 144 bit select"),
|
||||
FC_BA8I0144_BANK(0x03AC18, 512, "Embed number siged 144 bit bank"),
|
||||
FC_BA8I0288_SEL0(0x03AE18, 32, "Embed number siged 288 bit select"),
|
||||
FC_BA8I0288_BANK(0x03AE38, 512, "Embed number siged 288 bit bank"),
|
||||
FC_BA8I0576_SEL0(0x03B038, 64, "Embed number siged 576 bit select"),
|
||||
FC_BA8I0576_BANK(0x03B078, 512, "Embed number siged 576 bit bank"),
|
||||
FC_BA8I1152_SEL0(0x03B278, 128, "Embed number siged 1152 bit select"),
|
||||
FC_BA8I1152_BANK(0x03B2F8, 512, "Embed number siged 1152 bit bank"),
|
||||
FC_BA8I2304_SEL0(0x03B4F8, 256, "Embed number siged 2304 bit select"),
|
||||
FC_BA8I2304_BANK(0x03B5F8, 512, "Embed number siged 2304 bit bank"),
|
||||
|
||||
// =========== 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_DEN(0x30000, 32768, "New Counting Rods 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_NUM(0x38000, 32768, "New Counting Rods Numerator"),
|
||||
/// New Counting Rods, Select one of 48 numerator pages to use.
|
||||
FC_NCR1632_SEL0N(0x03B7F8, 48, "New Counting Rods Numerator Select"),
|
||||
/// New Counting Rods, Select one of 48 denominator pages to use.
|
||||
FC_NCR1632_SEL1D(0x03B828, 48, "New Counting Rods Denominator Select"),
|
||||
/// New Counting Rods fractions of two 576 bit numbers
|
||||
/// Divided in 48 paged banks of 12 bit
|
||||
FC_NCR1632_BANK(0x03B858, 4096, "New Counting Rods Page octals"),
|
||||
|
||||
/// Number signed 576 bit base 10 decimal select
|
||||
FC_DEC576_SEL0(0x03C858, 48, "Number of 576 bit base 10 decimal select"),
|
||||
/// Number signed 576 bit base 10 decimal
|
||||
FC_DEC576_BANK(0x03C888, 4096, "Number of 576 bit base 10 decimal octals"),
|
||||
|
||||
/// Number signed 576 bit base 2 float select
|
||||
FC_E503M72_SEL0(0x03D888, 48, "Number of 576 bit base 10 decimal select"),
|
||||
/// Number signed 576 bit base 2 float
|
||||
FC_E503M72_BANK(0x03D8B8, 4096, "Number of 576 bit base 10 decimal octals"),
|
||||
|
||||
|
||||
|
||||
__RESERVED_FREE(0x03E8B8, 0x3F000 - 0x03E8B8),
|
||||
|
||||
__RESERVED_ESC(0x03F000, 4096),
|
||||
|
||||
// // 4096
|
||||
//FC_DEC2701_PX0
|
||||
;
|
||||
private static final FourCornerDotCake[] VALUES = values();
|
||||
private final int start;
|
||||
|
|
@ -436,6 +535,9 @@ public enum FourCornerDotCake {
|
|||
|
||||
public boolean isExternWord() {
|
||||
int idx = ordinal();
|
||||
if (idx == FC_F4TXT0001_SP.ordinal()) {
|
||||
return true;
|
||||
}
|
||||
if (idx <= FC_PIE9D_27.ordinal()) {
|
||||
return false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -70,14 +70,12 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo
|
|||
|
||||
/// _ESC6_X1 _ESC6_X3 _ESC6_X3 = 9
|
||||
/// Content type prolog 8 doctype modes of document
|
||||
/// * 6 bit pure mainframe mode
|
||||
/// * 6 bit with vt06+candy
|
||||
/// * 6 bit with vt06+candy+NCR+grams
|
||||
/// * 6 bit with vt06+candy+NCR+grams+worms
|
||||
/// * 18 bit only xdbx strict adult structure
|
||||
/// * 18 bit only xdbx sweaty candy structure
|
||||
/// * 18 bit simple adult mode (no xdbx, no worms)
|
||||
/// * 18 bit full range (default, no limits on cake points used)
|
||||
/// * FC6 pure mainframe mode + VT06
|
||||
/// * FC6+ has candy
|
||||
/// * FC18 Candlelier
|
||||
/// * FC18 Candlelier adult mode (zero FC6+)
|
||||
/// * FC18 TempleScrolls
|
||||
/// * FC18 TempleScrolls adult mode (zero FC6+)
|
||||
//ESC_PROLOG_DOCTYPE
|
||||
__ESC_RESERVED_A9,
|
||||
|
||||
|
|
@ -124,12 +122,7 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo
|
|||
ESC68_INC0801_P8,
|
||||
|
||||
/// _ESC6_X2 _ESC6_X3 _ESC6_X2 = 17
|
||||
/// Select packed new counting rods fraction for 6 and 8 bit systems.
|
||||
/// NX01-NX08 are octal values
|
||||
/// NUM: NY01 = page MSB, NY02 = page LSB, NY03 = value MSB, NY04 = value CSB, NY05 = value LSB
|
||||
/// DEN: NY06 = page MSB, NY07 = page LSB, NY08 = value MSB, NY09 = value CSB, NY10 = value LSB
|
||||
/// and and and must end with !
|
||||
ESC68_NCR,
|
||||
__ESC_RESERVED_B8,
|
||||
|
||||
/// _ESC6_X2 _ESC6_X3 _ESC6_X3 = 18
|
||||
__ESC_RESERVED_B9,
|
||||
|
|
@ -153,8 +146,7 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo
|
|||
__ESC_RESERVED_C5,
|
||||
|
||||
/// _ESC6_X3 _ESC6_X2 _ESC6_X3 = 24
|
||||
/// Command for octal mime-type information sequence of sand walker.
|
||||
ESC_SAND_WALKER,
|
||||
__ESC_RESERVED_C6,
|
||||
|
||||
/// _ESC6_X3 _ESC6_X3 _ESC6_X1 = 25
|
||||
/// Command for embedded octal sand worm for 6 or 8 bit systems.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue