FC18: Small change in CDC1604 removes i like letter for a classic typo

This commit is contained in:
Willem Cazander 2025-09-06 12:35:27 +02:00
parent 0f9e5fcc6d
commit 774331cefc
8 changed files with 50 additions and 50 deletions

View file

@ -133,7 +133,7 @@ final public class FourCornerRecipe {
}
}
if (isSixBit) {
out.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.cakePointDotIndex()); // fixme improve: see FourCornerDotCollePie9.baklavaPointsPIE9C
out.add(FCDotCDC1604DashP6._SALAH_INTERROBANG.cakePointDotIndex()); // fixme improve: see FourCornerDotCollePie9.baklavaPointsPIE9C
}
return out;
}

View file

@ -87,7 +87,7 @@ public class FourCornerUnicodeImport {
}
static public FourCornerUnicodeImport lossy() {
return new FourCornerUnicodeImport(true, true, false, List.of(FCDotCDC1604DashP6._RAKA_QUESTION)); // TODO: change
return new FourCornerUnicodeImport(true, true, false, List.of(FCDotCDC1604DashP6._RAKA_UPNEXT_QUESTION)); // TODO: change
}
public List<Integer> convertToInt18(String text) {

View file

@ -38,7 +38,7 @@ import org.x4o.fc18.cake2.FourCornerX00PetitVideCoinCarneFrapperRetrait;
/// @version 1.0 Dec 22, 2024
///
public enum FCDotCDC1604DashP6 implements FourCornerDotColleZero33 {
// [__NUL][_ESC6_X1][_ESC6_X2][_ESC6_X3] !?¡¿ <>[] (){}
// [__NUL][_ESC6_X1][_ESC6_X2][_ESC6_X3] ¿!? <>[] (){}
// ~+-* ,.:; '"`^ =#$%
// |_\/ @ABC DEFG HIJK
// LMNO PQRS TUVW XYZ&
@ -52,13 +52,13 @@ public enum FCDotCDC1604DashP6 implements FourCornerDotColleZero33 {
_ESC6_X3('\u0003'),
/// End of argumented escape sequence prayer.
_SALAH_EXCLAMATION('!'), // TODO: INTERROBANG('‽')
_SALAH_INTERROBANG('‽'),
/// Next argument separator for escape sequences.
_RAKA_QUESTION('?'), // TODO: DOWNUP_QUESTION('¿')
_RAKA_UPNEXT_QUESTION('¿'),
/// Use 3 pepper marks, to spice up the escape sequences.
_PEPPER_DOWNUP_EXCLAMATION('¡'), // TODO: EXCLAMATION('!')
_PEPPER_DOWNUP_QUESTION('¿'), // TODO: QUESTION('?')
_PEPPER_EXCLAMATION('!'),
_PEPPER_QUESTION('?'),
/// Special Argument Lexer Token, to season escape sequences.
/// For examples in ESC68_PIE; Move to left pie.
@ -212,13 +212,13 @@ public enum FCDotCDC1604DashP6 implements FourCornerDotColleZero33 {
}
static public boolean isEscapePepper(int cakePoint) {
return cakePoint == _PEPPER_DOWNUP_EXCLAMATION.cakePointDotIndex() || cakePoint == _PEPPER_DOWNUP_QUESTION.cakePointDotIndex();
return cakePoint == _PEPPER_EXCLAMATION.cakePointDotIndex() || cakePoint == _PEPPER_QUESTION.cakePointDotIndex();
}
static public int pepper3SequenceRead(FCDotCDC1604DashP6 msb, FCDotCDC1604DashP6 csb, FCDotCDC1604DashP6 lsb) {
int c1 = msb == FCDotCDC1604DashP6._PEPPER_DOWNUP_EXCLAMATION?0:1;
int c2 = csb == FCDotCDC1604DashP6._PEPPER_DOWNUP_EXCLAMATION?0:1;
int c3 = lsb == FCDotCDC1604DashP6._PEPPER_DOWNUP_EXCLAMATION?0:1;
int c1 = msb == FCDotCDC1604DashP6._PEPPER_EXCLAMATION?0:1;
int c2 = csb == FCDotCDC1604DashP6._PEPPER_EXCLAMATION?0:1;
int c3 = lsb == FCDotCDC1604DashP6._PEPPER_EXCLAMATION?0:1;
return (c1 << 2) + (c2 << 1) + (c3 << 0);
}
@ -228,9 +228,9 @@ public enum FCDotCDC1604DashP6 implements FourCornerDotColleZero33 {
static public List<FCDotCDC1604DashP6> pepper3SequenceWrite(int mode) {
return List.of(
((mode >> 2) & 0b1)==0?_PEPPER_DOWNUP_EXCLAMATION:_PEPPER_DOWNUP_QUESTION,
((mode >> 1) & 0b1)==0?_PEPPER_DOWNUP_EXCLAMATION:_PEPPER_DOWNUP_QUESTION,
((mode >> 0) & 0b1)==0?_PEPPER_DOWNUP_EXCLAMATION:_PEPPER_DOWNUP_QUESTION
((mode >> 2) & 0b1)==0?_PEPPER_EXCLAMATION:_PEPPER_QUESTION,
((mode >> 1) & 0b1)==0?_PEPPER_EXCLAMATION:_PEPPER_QUESTION,
((mode >> 0) & 0b1)==0?_PEPPER_EXCLAMATION:_PEPPER_QUESTION
);
}
}

View file

@ -42,7 +42,7 @@ import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
*/
public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, FourCornerX08MuffinPointSequence, FourCornerX18CakePointDotIndex {
// =========== External escape sequence, who MUST terminate with !
// =========== External escape sequence, who MUST terminate with
/// _ESC6_X1 _ESC6_X1 _ESC6_X1 = 1
ESC_USER_1,
@ -82,7 +82,7 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo
// =========== Internal escape sequence, to embed symbols,fractions and adult texts.
/// _ESC6_X2 _ESC6_X1 _ESC6_X1 = 10
/// Embed data gram codes with pepper and salt in text and end with !
/// Embed data gram codes with pepper and salt in text and end with
/// In the above 9 "user" escapes and in ESC_VT06 this can be used without this prefix to switch.
ESC_DEC0801_E10,
@ -99,26 +99,26 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo
/// Select packed pie 9C terminator symbol on 6 and 8 bit systems.
/// NX_xx = pie candy printing
/// NY_yy = pie ring selector
/// ¡ = one ring up
/// ¿ = one ring down
/// ! = one ring up
/// ? = one ring down
/// < = goto 9C left cake
/// > = goto 9D right cake
/// out of range or ! or ? = end mode
/// out of range or or ¿ = end mode
ESC68_2PIE9C,
/// _ESC6_X2 _ESC6_X2 _ESC6_X3 = 15
/// Select packed pie 9D terminator symbol on 6 and 8 bit systems.
/// NX_xx = pie candy printing
/// NY_yy = pie ring selector
/// ¡ = one ring up
/// ¿ = one ring down
/// ! = one ring up
/// ? = one ring down
/// < = goto 9C left cake
/// > = goto 9D right cake
/// out of range or ! or ? = end mode
/// out of range or or ¿ = end mode
ESC68_2PIE9D,
/// _ESC6_X2 _ESC6_X3 _ESC6_X1 = 16
/// Embed symbol mode starts in CDC, use sequence of 3 UPDOWN letters to select mode and end with !
/// Embed symbol mode starts in CDC, use sequence of 3 UPDOWN letters to select mode and end with
ESC68_INC0801_P8,
/// _ESC6_X2 _ESC6_X3 _ESC6_X2 = 17
@ -153,7 +153,7 @@ public enum FCDotDEC2701DashPX0 implements FourCornerX06BaklavaPointSequence, Fo
ESC68_SAND_WORM,
/// _ESC6_X3 _ESC6_X3 _ESC6_X2 = 26
/// Virtual Typewriter 0ctal Six bit control sequences with argumented commands which MUST end with !
/// Virtual Typewriter 0ctal Six bit control sequences with argumented commands which MUST end with
ESC_VT06,
/// _ESC6_X3 _ESC6_X3 _ESC6_X3 = 27

View file

@ -287,11 +287,11 @@ public class FourCornerZionStenoGrapher {
while (walkItr.hasNext()) {
outAdd(FCDotCDC1604DashP6.NX01_A.cakePointDotIndex() + walkItr.next().ordinal());
}
outAdd(FCDotCDC1604DashP6._RAKA_QUESTION.cakePointDotIndex());
outAdd(FCDotCDC1604DashP6._RAKA_UPNEXT_QUESTION.cakePointDotIndex());
while (spiceItr.hasNext()) {
outAdd(FCDotCDC1604DashP6.NX01_A.cakePointDotIndex() + spiceItr.next().ordinal());
}
outAdd(FCDotCDC1604DashP6._SALAH_EXCLAMATION.cakePointDotIndex());
outAdd(FCDotCDC1604DashP6._SALAH_INTERROBANG.cakePointDotIndex());
} else {
while (walkItr.hasNext()) {
int bitValue12 = 0;
@ -349,10 +349,10 @@ public class FourCornerZionStenoGrapher {
while (argu.hasNext()) {
outAddAll(argu.next());
if (argu.hasNext()) {
outAdd(FCDotCDC1604DashP6._RAKA_QUESTION.baklavaPointDotIndex());
outAdd(FCDotCDC1604DashP6._RAKA_UPNEXT_QUESTION.baklavaPointDotIndex());
}
}
outAdd(FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex());
outAdd(FCDotCDC1604DashP6._SALAH_INTERROBANG.baklavaPointDotIndex());
outFlush();
}

View file

@ -746,7 +746,7 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
lexer.cdcDECModeInc = FCDotINC0801DashP8.valueOf(readEscapePepper3(lexer));
return true;
}
if (FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex() == cdcPoint) {
if (FCDotCDC1604DashP6._SALAH_INTERROBANG.baklavaPointDotIndex() == cdcPoint) {
lexer.decModeReset();
return true; // end E10 mode, so no print
}
@ -769,7 +769,7 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
lexer.cdcDECModeE10 = FCDotDEC0801DashE10.valueOf(readEscapePepper3(lexer));
return true;
}
if (FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex() == cdcPoint) {
if (FCDotCDC1604DashP6._SALAH_INTERROBANG.baklavaPointDotIndex() == cdcPoint) {
lexer.decModeReset();
return true; // end E10 mode, so no print
}
@ -835,23 +835,23 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
if (cdcPoint >= FCDotCDC1604DashP6.NY27_SQUARE_LEFT.ordinal() && cdcPoint <= FCDotCDC1604DashP6.NY01_AT.ordinal()) {
lexer.cdcDECModePie = FCDotCDC1604DashP6.NY01_AT.ordinal() - cdcPoint; // goto relative
return true; // swallow button
} else if (cdcPoint == FCDotCDC1604DashP6._PEPPER_DOWNUP_EXCLAMATION.ordinal()) {
} else if (cdcPoint == FCDotCDC1604DashP6._PEPPER_EXCLAMATION.ordinal()) {
if (lexer.cdcDECModePie < 26) {
lexer.cdcDECModePie++;
}
return true; // eat the up pepper
} else if (cdcPoint == FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION.ordinal()) {
} else if (cdcPoint == FCDotCDC1604DashP6._PEPPER_QUESTION.ordinal()) {
if (lexer.cdcDECModePie > 0) {
lexer.cdcDECModePie--;
}
return true; // eat the down pepper
return true; // eat the down salt
} else if (cdcPoint == FCDotCDC1604DashP6._SALT_COMPARE_LEFT.ordinal()) {
lexer.cdcDECModePieAlt = false;
return true; // eat the left salt
} else if (cdcPoint == FCDotCDC1604DashP6._SALT_COMPARE_RIGHT.ordinal()) {
lexer.cdcDECModePieAlt = true;
return true; // eat the right salt
} else if (cdcPoint == FCDotCDC1604DashP6._SALAH_EXCLAMATION.ordinal() || cdcPoint == FCDotCDC1604DashP6._RAKA_QUESTION.ordinal()) {
} else if (cdcPoint == FCDotCDC1604DashP6._SALAH_INTERROBANG.ordinal() || cdcPoint == FCDotCDC1604DashP6._RAKA_UPNEXT_QUESTION.ordinal()) {
lexer.decModeReset();
return true; // eat salah and end mode
}
@ -886,11 +886,11 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
lexer.cdcDECScanIndex--;
return true;
}
if (FCDotCDC1604DashP6._SALAH_EXCLAMATION.ordinal() == cdcPoint) {
if (FCDotCDC1604DashP6._SALAH_INTERROBANG.ordinal() == cdcPoint) {
result.add(argu);
return true;
}
if (FCDotCDC1604DashP6._RAKA_QUESTION.ordinal() == cdcPoint) {
if (FCDotCDC1604DashP6._RAKA_UPNEXT_QUESTION.ordinal() == cdcPoint) {
result.add(argu);
argu = new ArrayList<>();
lexer.cdcDECScanIndex++;
@ -910,11 +910,11 @@ public class FourCornerZionStenoLexer implements FourCornerZionStenoPetroglyphs
boolean sandWalker = true;
while (lexer.cdcDECScanIndex <= lexer.cdcDECScanIndexEnd) {
int cdcPoint = lexer.input.get(lexer.cdcDECScanIndex);
if (cdcPoint == FCDotCDC1604DashP6._RAKA_QUESTION.ordinal()) {
if (cdcPoint == FCDotCDC1604DashP6._RAKA_UPNEXT_QUESTION.ordinal()) {
sandWalker = false;
continue;
}
if (cdcPoint == FCDotCDC1604DashP6._SALAH_EXCLAMATION.ordinal()) {
if (cdcPoint == FCDotCDC1604DashP6._SALAH_INTERROBANG.ordinal()) {
lexer.handler.strobeSandWorm(sandWalk, sandSpice);
return true;
}

View file

@ -148,19 +148,19 @@ public class FourCornerUnicodeDisplayTest {
cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION); // goto up FC.PIE9D-26
cdc.add(FCDotCDC1604DashP6._PEPPER_QUESTION); // goto up FC.PIE9D-26
cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION); // goto up FC.PIE9D-25
cdc.add(FCDotCDC1604DashP6._PEPPER_QUESTION); // goto up FC.PIE9D-25
cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotCDC1604DashP6._PEPPER_DOWNUP_QUESTION); // goto up FC.PIE9D-24
cdc.add(FCDotCDC1604DashP6._PEPPER_QUESTION); // goto up FC.PIE9D-24
cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
cdc.add(FCDotCDC1604DashP6._SALAH_INTERROBANG);
Assertions.assertEquals("θ̲ο̲ι̲θοιhoih̲o̲i̲𝘩𝘰𝘪𝐇𝐎𝐈ΘΟΙ𝚯𝚶𝚰", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
}
@ -171,7 +171,7 @@ public class FourCornerUnicodeDisplayTest {
cdc.add(FCDotPIE9DDash10.BOLD_DECIMAL_1);
cdc.add(FCDotPIE9DDash10.BOLD_DECIMAL_2);
cdc.add(FCDotPIE9DDash10.BOLD_DECIMAL_3);
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
cdc.add(FCDotCDC1604DashP6._SALAH_INTERROBANG);
Assertions.assertEquals("𝟏𝟐𝟑", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
}
@ -192,7 +192,7 @@ public class FourCornerUnicodeDisplayTest {
cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
cdc.add(FCDotCDC1604DashP6._SALAH_INTERROBANG);
// Assertions.assertEquals("𝘩𝘰𝘪╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
Assertions.assertEquals("╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
@ -206,7 +206,7 @@ public class FourCornerUnicodeDisplayTest {
cdc.add(FCDotCDC1604DashP6.NX08_H); // H
cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10);
cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1);
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
cdc.add(FCDotCDC1604DashP6._SALAH_INTERROBANG);
cdc.add(FCDotCDC1604DashP6.NX15_O); // O
cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10);
cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1);
@ -215,14 +215,14 @@ public class FourCornerUnicodeDisplayTest {
cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10);
cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1);
cdc.add(FCDotCDC1604DashP6.NX01_A); // T001__ONE
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
cdc.add(FCDotCDC1604DashP6._SALAH_INTERROBANG);
cdc.add(FCDotCDC1604DashP6.NX08_H); // HOI
cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotDEC2701DashPX0.ESC_DEC0801_E10);
cdc.add(FCDotDEC0801DashE10.E10_UWU0101_S1);
cdc.add(FCDotCDC1604DashP6.NX02_B); // B
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION); // with ! as we droped out of escape mode by B being to large
cdc.add(FCDotCDC1604DashP6._SALAH_INTERROBANG); // with ! as we droped out of escape mode by B being to large
Assertions.assertEquals("HOIT001__ONEHOIB!", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
}

View file

@ -45,9 +45,9 @@ public class FCDotVT06Test {
List<Integer> cdc = new ArrayList<>();
cdc.addAll(VTDash06DotZeroACursor.VT_CURSOR_GOTO.baklavaPointSequence());
cdc.addAll(FourCornerRecipe.toDecimalsX06(123)); // TODO: fix these are the wrong, we need to use the txt grams version
cdc.add(FCDotCDC1604DashP6._RAKA_QUESTION.baklavaPointDotIndex());
cdc.add(FCDotCDC1604DashP6._RAKA_UPNEXT_QUESTION.baklavaPointDotIndex());
cdc.addAll(FourCornerRecipe.toDecimalsX06(456));
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex());
cdc.add(FCDotCDC1604DashP6._SALAH_INTERROBANG.baklavaPointDotIndex());
Assertions.assertEquals("␘␘␇AG␇␇␇^BCD?␇␇␇^EFG!", FourCornerUnicodeDisplay.raw().renderFromInt18(cdc));
// TODO: Fix lexer embedded escapes, and display external with single unicode escape sign
@ -59,7 +59,7 @@ public class FCDotVT06Test {
List<Integer> cdc = new ArrayList<>();
cdc.addAll(VTDash06DotZeroCClear.VT_CLEAR_TOP.baklavaPointSequence());
cdc.addAll(FourCornerRecipe.toDecimalsX06(5));
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION.baklavaPointDotIndex());
cdc.add(FCDotCDC1604DashP6._SALAH_INTERROBANG.baklavaPointDotIndex());
Assertions.assertEquals("␘␘␇CA␇␇␇^F!", FourCornerUnicodeDisplay.raw().renderFromInt18(cdc));
}