FC18: Converted to choco taste pig numbers

This commit is contained in:
Willem Cazander 2025-09-05 16:13:02 +02:00
parent badf68fc25
commit 0699d23c52
25 changed files with 1314 additions and 864 deletions

View file

@ -312,7 +312,7 @@ public enum FourCornerDotCake {
// =========== Define digital document structures
//FC_TXTBLK_64 <== LAST cake slice to have "external" defined words for display
// - FC_F4TXT0001_SP
// - FC_F4TXT0001_SP // <= FC18, FC6 => esc seq (note in 6 bit display char-ROM first few chars are none candy letters)
// - commentTXT start + stop + comment to end of line ?
// - commentDOC start + stop + anno ???
// - decimal seperator (. or ,)
@ -345,7 +345,7 @@ public enum FourCornerDotCake {
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
// =========== Allow big sand worms to be called with walking the sand
/// Sand walk steps for calling up a sand worm
FC_SANDWALK_12(0x02F000, 4096, "Sand walk octals to call the olgoi khorkhoi"),
@ -356,94 +356,92 @@ public enum FourCornerDotCake {
/// With the ESC_SAND_WALKER preamble the binary octal mime-type information must be send first.
FC_SANDWORM_15(0x030000, 32768, "Sand octal spice of the olgoi khorkhoi"),
// =========== Allow big math with new counting rods integer types
/// 16x256=4096+1020 cake points to embed base2 number types
FC_BA2U0016_SEL0(0x038000, 2, "Embed number unsigned 16 bit select"),
FC_BA2U0016_BANK(0x038002, 256, "Embed number unsigned 16 bit bank"),
FC_BA2U0032_SEL0(0x038102, 4, "Embed number unsigned 32 bit select"),
FC_BA2U0032_BANK(0x038106, 256, "Embed number unsigned 32 bit bank"),
FC_BA2U0064_SEL0(0x038206, 8, "Embed number unsigned 64 bit select"),
FC_BA2U0064_BANK(0x03820E, 256, "Embed number unsigned 64 bit bank"),
FC_BA2U0128_SEL0(0x03830E, 16, "Embed number unsigned 128 bit select"),
FC_BA2U0128_BANK(0x03831E, 256, "Embed number unsigned 128 bit bank"),
FC_BA2U0256_SEL0(0x03841E, 32, "Embed number unsigned 256 bit select"),
FC_BA2U0256_BANK(0x03843E, 256, "Embed number unsigned 256 bit bank"),
FC_BA2U0512_SEL0(0x03853E, 64, "Embed number unsigned 512 bit select"),
FC_BA2U0512_BANK(0x03857E, 256, "Embed number unsigned 512 bit bank"),
FC_BA2U1024_SEL0(0x03867E, 128, "Embed number unsigned 1024 bit select"),
FC_BA2U1024_BANK(0x0386FE, 256, "Embed number unsigned 1024 bit bank"),
FC_BA2U2048_SEL0(0x0387FE, 256, "Embed number unsigned 2048 bit select"),
FC_BA2U2048_BANK(0x0388FE, 256, "Embed number unsigned 2048 bit bank"),
FC_BA2I0016_SEL0(0x0389FE, 2, "Embed number signed 16 bit select"),
FC_BA2I0016_BANK(0x038A00, 256, "Embed number signed 16 bit bank"),
FC_BA2I0032_SEL0(0x038B00, 4, "Embed number signed 32 bit select"),
FC_BA2I0032_BANK(0x038B04, 256, "Embed number signed 32 bit bank"),
FC_BA2I0064_SEL0(0x038C04, 8, "Embed number signed 64 bit select"),
FC_BA2I0064_BANK(0x038C0C, 256, "Embed number signed 64 bit bank"),
FC_BA2I0128_SEL0(0x038D0C, 16, "Embed number signed 128 bit select"),
FC_BA2I0128_BANK(0x038D1C, 256, "Embed number signed 128 bit bank"),
FC_BA2I0256_SEL0(0x038E1C, 32, "Embed number signed 256 bit select"),
FC_BA2I0256_BANK(0x038E3C, 256, "Embed number signed 256 bit bank"),
FC_BA2I0512_SEL0(0x038F3C, 64, "Embed number signed 512 bit select"),
FC_BA2I0512_BANK(0x038F7C, 256, "Embed number signed 512 bit bank"),
FC_BA2I1024_SEL0(0x03907C, 128, "Embed number signed 1024 bit select"),
FC_BA2I1024_BANK(0x0390FC, 256, "Embed number signed 1024 bit bank"),
FC_BA2I2048_SEL0(0x0391FC, 256, "Embed number signed 2048 bit select"),
FC_BA2I2048_BANK(0x0392FC, 256, "Embed number signed 2048 bit bank"),
FC_BA2L0016_SEL0(0x038000, 2, "Number lego 16 bit select"),
FC_BA2L0016_BANK(0x038002, 256, "Number lego 16 bit bank"),
FC_BA2L0032_SEL0(0x038102, 4, "Number lego 32 bit select"),
FC_BA2L0032_BANK(0x038106, 256, "Number lego 32 bit bank"),
FC_BA2L0064_SEL0(0x038206, 8, "Number lego 64 bit select"),
FC_BA2L0064_BANK(0x03820E, 256, "Number lego 64 bit bank"),
FC_BA2L0128_SEL0(0x03830E, 16, "Number lego 128 bit select"),
FC_BA2L0128_BANK(0x03831E, 256, "Number lego 128 bit bank"),
FC_BA2L0256_SEL0(0x03841E, 32, "Number lego 256 bit select"),
FC_BA2L0256_BANK(0x03843E, 256, "Number lego 256 bit bank"),
FC_BA2L0512_SEL0(0x03853E, 64, "Number lego 512 bit select"),
FC_BA2L0512_BANK(0x03857E, 256, "Number lego 512 bit bank"),
FC_BA2L1024_SEL0(0x03867E, 128, "Number lego 1024 bit select"),
FC_BA2L1024_BANK(0x0386FE, 256, "Number lego 1024 bit bank"),
FC_BA2L2048_SEL0(0x0387FE, 256, "Number lego 2048 bit select"),
FC_BA2L2048_BANK(0x0388FE, 256, "Number lego 2048 bit bank"),
FC_BA2I0016_SEL0(0x0389FE, 2, "Number integer 16 bit select"),
FC_BA2I0016_BANK(0x038A00, 256, "Number integer 16 bit bank"),
FC_BA2I0032_SEL0(0x038B00, 4, "Number integer 32 bit select"),
FC_BA2I0032_BANK(0x038B04, 256, "Number integer 32 bit bank"),
FC_BA2I0064_SEL0(0x038C04, 8, "Number integer 64 bit select"),
FC_BA2I0064_BANK(0x038C0C, 256, "Number integer 64 bit bank"),
FC_BA2I0128_SEL0(0x038D0C, 16, "Number integer 128 bit select"),
FC_BA2I0128_BANK(0x038D1C, 256, "Number integer 128 bit bank"),
FC_BA2I0256_SEL0(0x038E1C, 32, "Number integer 256 bit select"),
FC_BA2I0256_BANK(0x038E3C, 256, "Number integer 256 bit bank"),
FC_BA2I0512_SEL0(0x038F3C, 64, "Number integer 512 bit select"),
FC_BA2I0512_BANK(0x038F7C, 256, "Number integer 512 bit bank"),
FC_BA2I1024_SEL0(0x03907C, 128, "Number integer 1024 bit select"),
FC_BA2I1024_BANK(0x0390FC, 256, "Number integer 1024 bit bank"),
FC_BA2I2048_SEL0(0x0391FC, 256, "Number integer 2048 bit select"),
FC_BA2I2048_BANK(0x0392FC, 256, "Number integer 2048 bit bank"),
/// 16x512=8192+1020 cake points to embed base8 number types
FC_BA8U0018_SEL0(0x0393FC, 2, "Embed number unsigned 18 bit select"),
FC_BA8U0018_BANK(0x0393FE, 512, "Embed number unsigned 18 bit bank"),
FC_BA8U0036_SEL0(0x0395FE, 4, "Embed number unsigned 36 bit select"),
FC_BA8U0036_BANK(0x039602, 512, "Embed number unsigned 36 bit bank"),
FC_BA8U0072_SEL0(0x039802, 8, "Embed number unsigned 72 bit select"),
FC_BA8U0072_BANK(0x03980A, 512, "Embed number unsigned 72 bit bank"),
FC_BA8U0144_SEL0(0x039A0A, 16, "Embed number unsigned 144 bit select"),
FC_BA8U0144_BANK(0x039A1A, 512, "Embed number unsigned 144 bit bank"),
FC_BA8U0288_SEL0(0x039C1A, 32, "Embed number unsigned 288 bit select"),
FC_BA8U0288_BANK(0x039C3A, 512, "Embed number unsigned 288 bit bank"),
FC_BA8U0576_SEL0(0x039E3A, 64, "Embed number unsigned 576 bit select"),
FC_BA8U0576_BANK(0x039E7A, 512, "Embed number unsigned 576 bit bank"),
FC_BA8U1152_SEL0(0x03A07A, 128, "Embed number unsigned 1152 bit select"),
FC_BA8U1152_BANK(0x03A0FA, 512, "Embed number unsigned 1152 bit bank"),
FC_BA8U2304_SEL0(0x03A2FA, 256, "Embed number unsigned 2304 bit select"),
FC_BA8U2304_BANK(0x03A3FA, 512, "Embed number unsigned 2304 bit bank"),
FC_BA8I0018_SEL0(0x03A5FA, 2, "Embed number signed 18 bit select"),
FC_BA8I0018_BANK(0x03A5FC, 512, "Embed number signed 18 bit bank"),
FC_BA8I0036_SEL0(0x03A7FC, 4, "Embed number signed 36 bit select"),
FC_BA8I0036_BANK(0x03A800, 512, "Embed number signed 36 bit bank"),
FC_BA8I0072_SEL0(0x03AA00, 8, "Embed number signed 72 bit select"),
FC_BA8I0072_BANK(0x03AA08, 512, "Embed number signed 72 bit bank"),
FC_BA8I0144_SEL0(0x03AC08, 16, "Embed number signed 144 bit select"),
FC_BA8I0144_BANK(0x03AC18, 512, "Embed number signed 144 bit bank"),
FC_BA8I0288_SEL0(0x03AE18, 32, "Embed number signed 288 bit select"),
FC_BA8I0288_BANK(0x03AE38, 512, "Embed number signed 288 bit bank"),
FC_BA8I0576_SEL0(0x03B038, 64, "Embed number signed 576 bit select"),
FC_BA8I0576_BANK(0x03B078, 512, "Embed number signed 576 bit bank"),
FC_BA8I1152_SEL0(0x03B278, 128, "Embed number signed 1152 bit select"),
FC_BA8I1152_BANK(0x03B2F8, 512, "Embed number signed 1152 bit bank"),
FC_BA8I2304_SEL0(0x03B4F8, 256, "Embed number signed 2304 bit select"),
FC_BA8I2304_BANK(0x03B5F8, 512, "Embed number signed 2304 bit bank"),
FC_BA8L0018_SEL0(0x0393FC, 2, "Number lego 18 bit select"),
FC_BA8L0018_BANK(0x0393FE, 512, "Number lego 18 bit bank"),
FC_BA8L0036_SEL0(0x0395FE, 4, "Number lego 36 bit select"),
FC_BA8L0036_BANK(0x039602, 512, "Number lego 36 bit bank"),
FC_BA8L0072_SEL0(0x039802, 8, "Number lego 72 bit select"),
FC_BA8L0072_BANK(0x03980A, 512, "Number lego 72 bit bank"),
FC_BA8L0144_SEL0(0x039A0A, 16, "Number lego 144 bit select"),
FC_BA8L0144_BANK(0x039A1A, 512, "Number lego 144 bit bank"),
FC_BA8L0288_SEL0(0x039C1A, 32, "Number lego 288 bit select"),
FC_BA8L0288_BANK(0x039C3A, 512, "Number lego 288 bit bank"),
FC_BA8L0576_SEL0(0x039E3A, 64, "Number lego 576 bit select"),
FC_BA8L0576_BANK(0x039E7A, 512, "Number lego 576 bit bank"),
FC_BA8L1152_SEL0(0x03A07A, 128, "Number lego 1152 bit select"),
FC_BA8L1152_BANK(0x03A0FA, 512, "Number lego 1152 bit bank"),
FC_BA8L2304_SEL0(0x03A2FA, 256, "Number lego 2304 bit select"),
FC_BA8L2304_BANK(0x03A3FA, 512, "Number lego 2304 bit bank"),
// =========== Allow big terminators to learn a computer math
FC_BA8C0018_SEL0(0x03A5FA, 2, "Number choco 18 bit select"),
FC_BA8C0018_BANK(0x03A5FC, 512, "Number choco 18 bit bank"),
FC_BA8C0036_SEL0(0x03A7FC, 4, "Number choco 36 bit select"),
FC_BA8C0036_BANK(0x03A800, 512, "Number choco 36 bit bank"),
FC_BA8C0072_SEL0(0x03AA00, 8, "Number choco 72 bit select"),
FC_BA8C0072_BANK(0x03AA08, 512, "Number choco 72 bit bank"),
FC_BA8C0144_SEL0(0x03AC08, 16, "Number choco 144 bit select"),
FC_BA8C0144_BANK(0x03AC18, 512, "Number choco 144 bit bank"),
FC_BA8C0288_SEL0(0x03AE18, 32, "Number choco 288 bit select"),
FC_BA8C0288_BANK(0x03AE38, 512, "Number choco 288 bit bank"),
FC_BA8C0576_SEL0(0x03B038, 64, "Number choco 576 bit select"),
FC_BA8C0576_BANK(0x03B078, 512, "Number choco 576 bit bank"),
FC_BA8C1152_SEL0(0x03B278, 128, "Number choco 1152 bit select"),
FC_BA8C1152_BANK(0x03B2F8, 512, "Number choco 1152 bit bank"),
FC_BA8C2304_SEL0(0x03B4F8, 256, "Number choco 2304 bit select"),
FC_BA8C2304_BANK(0x03B5F8, 512, "Number choco 2304 bit bank"),
/// 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"),
// =========== Allow big math with new counting rods fraction types
FC_DEC576_SEL0(0x03C858, 48, "Embed number 576 bit base 10 decimal select"),
FC_DEC576_BANK(0x03C888, 4096, "Embed number 576 bit base 10 decimal bank"),
FC_E503M72_SEL0(0x03D888, 48, "Embed number 576 bit binary floating point select"),
FC_E503M72_BANK(0x03D8B8, 4096, "Embed number 576 bit binary floating point bank"),
//FC_Q503F72_SEL0(0x03D888, 48, "Embed number 576 bit binary fixed point select"),
//FC_Q503F72_BANK(0x03D8B8, 4096, "Embed number 576 bit binary fixed point bank"),
FC_RATIONAL4608_SEL0(0x03B7F8, 384, "Number choco pigs 4608 bit rational fraction select"),
FC_RATIONAL4608_BANK(0x03B978, 4096, "Number choco pigs 4608 bit rational fraction bank"),
FC_DECIMAL2304_SEL0(0x03C978, 192, "Number choco pig 2304 bit decimal point select"),
FC_DECIMAL2304_BANK(0x03CA38, 4096, "Number choco pig 2304 bit decimal point bank"),
FC_FLOAT2304_SEL0(0x03DA38, 192, "Number choco pig 2304 bit floating point select"),
FC_FLOAT2304_BANK(0x03DAF8, 4096, "Number choco pig 2304 bit floating point bank"),
FC_FIXED2304_SEL0(0x03EAF8, 192, "Number choco pig 2304 bit fixed point select"),
FC_FIXED2304_BANK(0x03EBB8, 4096, "Number choco pig 2304 bit fixed point bank"),
__RESERVED_FREE(0x03E8B8, 0x3F000 - 0x03E8B8),
// =========== Allow adult escape sequences
__RESERVED_ESC(0x03F000, 4096 - 27),
__RESERVED_ESC(0x03FBB8, 0x03FFE5 - 0x03FBB8),
FC_DEC2701_PX0(0x03FFE5, 27, FCDotDEC2701DashPX0.values(), "Direct or Escaped Control"),
;
private static final FourCornerDotCake[] VALUES = values();
@ -561,7 +559,13 @@ public enum FourCornerDotCake {
if (idx <= FC_CLK1K_Z.ordinal()) {
return FourCornerDotCakeTower.TXT_KODES;
}
return FourCornerDotCakeTower.TXT_EMBEDS;
if (idx <= FC_SANDWORM_15.ordinal()) {
return FourCornerDotCakeTower.TXT_EMBEDS;
}
if (idx <= FC_FIXED2304_BANK.ordinal()) {
return FourCornerDotCakeTower.TXT_NCR;
}
return FourCornerDotCakeTower.TXT_ESC;
}
public String nameSpec() {

View file

@ -37,6 +37,8 @@ public enum FourCornerDotCakeTower {
TXT_INDEX("Normal text words"),
TXT_KODES("Special koder words"),
TXT_EMBEDS("Embedded data words"),
TXT_NCR("Embedded new counting rods"),
TXT_ESC("Embedded escape sequences"),
;
private static final FourCornerDotCakeTower[] VALUES = values();
private final String nameNice;

View file

@ -29,7 +29,7 @@ import org.x4o.fc18.cake2.FourCornerX00PetitVideCoinCarneFrapper;
import org.x4o.fc18.cake2.FourCornerX00PetitVideCoinCarneFrapperRetrait;
///
/// "FC.CDC1604-P6" Four Corner Core Data Cake has 27 pie slice number systems "Packed" for MATH and BASIC letters.
/// "FC.CDC1604-P6" Four Corner Control Data Character have 27 pie slice number systems "Packed" for MATH and BASIC letters.
///
/// This is used as the first 64 word numbers of the china four corner method, and acts like ascii glue for adult 18 bit computers.
///
@ -43,7 +43,7 @@ public enum FCDotCDC1604DashP6 implements FourCornerDotColleZero33 {
// |_\/ @ABC DEFG HIJK
// LMNO PQRS TUVW XYZ&
/// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers.
/// This compatibility indicator is not a candy letter but a control data character string termination code.
_NUL('\u0000'),
/// Goto direct escaped control with sequence of 3 escapes on 6 bit systems.

View file

@ -25,7 +25,6 @@ package org.x4o.fc18.cake2.zero33.dec1;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.Optional;
import org.x4o.fc18.cake2.FourCornerX06BaklavaPointSequence;
import org.x4o.fc18.cake2.FourCornerX08MuffinPointSequence;
@ -78,13 +77,13 @@ public enum FCDotCMD5401Dash2D implements FourCornerX06BaklavaPointSequence, Fou
return muffinPointSequence();
}
static public Optional<FCDotCMD5401Dash2D> valueOfCDC(int cdcPoint) {
static public FCDotCMD5401Dash2D valueOfCDC(int cdcPoint) {
for (FCDotCMD5401Dash2D value : values()) {
if (value.selector.baklavaPointDotIndex() == cdcPoint) {
return Optional.of(value);
return value;
}
}
return Optional.empty();
return null;
}
static public int valuesLength() {