FC18: Shift BYD and added LUA P7D slice to fill with candy

This commit is contained in:
Willem Cazander 2025-09-01 14:26:46 +02:00
parent f93d447ba3
commit 379aef296d
11 changed files with 239 additions and 132 deletions

View file

@ -30,9 +30,10 @@ import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7A; import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7A;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7B; import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7B;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7C; import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7C;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7D; import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7D;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7E; import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7E;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7F; import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7F;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7G;
import org.x4o.maisdoc.flake.MaisDocContentCss; import org.x4o.maisdoc.flake.MaisDocContentCss;
import org.x4o.maisdoc.flake.MaisDocContentWriter; import org.x4o.maisdoc.flake.MaisDocContentWriter;
import org.x4o.maisdoc.model.MaisDocPage; import org.x4o.maisdoc.model.MaisDocPage;
@ -74,15 +75,16 @@ public class FCDocPageWriterCandy implements MaisDocPageWriter, FCDocSegmentWrit
writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7A, v -> FCDotLUA0127DashP7A.valueOf(v).codePointDotIndex()); writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7A, v -> FCDotLUA0127DashP7A.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7B, v -> FCDotLUA0127DashP7B.valueOf(v).codePointDotIndex()); writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7B, v -> FCDotLUA0127DashP7B.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7C, v -> FCDotLUA0127DashP7C.valueOf(v).codePointDotIndex()); writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7C, v -> FCDotLUA0127DashP7C.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_LUA0127_P7D, v -> FCDotLUA0127DashP7D.valueOf(v).codePointDotIndex());
} }
} }
try (ContentCloseable content = writer.docPageContent()) { try (ContentCloseable content = writer.docPageContent()) {
String xSpec = FourCornerDotCake.FC_BYD0127_P7D.nameSpec().replaceAll("P7D", "P7x"); String xSpec = FourCornerDotCake.FC_BYD0127_P7E.nameSpec().replaceAll("P7E", "P7x");
try (ContentCloseable table = writer.docTable(xSpec, null, MaisDocContentCss.overviewSummary)) { try (ContentCloseable table = writer.docTable(xSpec, null, MaisDocContentCss.overviewSummary)) {
writeTableBoxHeaderNumeric(writer, 28, true); writeTableBoxHeaderNumeric(writer, 28, true);
writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7D, v -> FCDotBYD0127DashP7D.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7E, v -> FCDotBYD0127DashP7E.valueOf(v).codePointDotIndex()); writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7E, v -> FCDotBYD0127DashP7E.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7F, v -> FCDotBYD0127DashP7F.valueOf(v).codePointDotIndex()); writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7F, v -> FCDotBYD0127DashP7F.valueOf(v).codePointDotIndex());
writeP7x(writer, FourCornerDotCake.FC_BYD0127_P7G, v -> FCDotBYD0127DashP7G.valueOf(v).codePointDotIndex());
} }
} }
try (ContentCloseable content = writer.docPageContent()) { try (ContentCloseable content = writer.docPageContent()) {

View file

@ -130,9 +130,10 @@ import org.x4o.fc18.cake2.pie9d.FCDotPIE9DDash27;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7A; import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7A;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7B; import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7B;
import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7C; import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7C;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7D; import org.x4o.fc18.cake2.zero33.FCDotLUA0127DashP7D;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7E; import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7E;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7F; import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7F;
import org.x4o.fc18.cake2.zero33.FCDotBYD0127DashP7G;
import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6; import org.x4o.fc18.cake2.zero33.FCDotCDC1604DashP6;
import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0; import org.x4o.fc18.cake2.zero33.dec1.FCDotDEC2701DashPX0;
@ -145,16 +146,15 @@ public enum FourCornerDotCake {
// =========== Allow small terminators to take over 6 bit main frame computers // =========== Allow small terminators to take over 6 bit main frame computers
FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values(), "Character Dough Cake"), FC_CDC1604_P6(0, 64, FCDotCDC1604DashP6.values(), "Character Dough Cake"),
__FREE_DEC(64, 27),
//FC_DEC2701_PX0(64, 27, FCDotDEC2701DashPX0.values(), "Direct or Escaped Control"),
FC_LUA0127_P7A(91, 27, FCDotLUA0127DashP7A.values(), "Local Union Alphabet P7A"), FC_LUA0127_P7A(64, 27, FCDotLUA0127DashP7A.values(), "Local Union Alphabet P7A"),
FC_LUA0127_P7B(118, 27, FCDotLUA0127DashP7B.values(), "Local Union Alphabet P7B"), FC_LUA0127_P7B(91, 27, FCDotLUA0127DashP7B.values(), "Local Union Alphabet P7B"),
FC_LUA0127_P7C(145, 27, FCDotLUA0127DashP7C.values(), "Local Union Alphabet P7C"), FC_LUA0127_P7C(118, 27, FCDotLUA0127DashP7C.values(), "Local Union Alphabet P7C"),
FC_LUA0127_P7D(145, 27, FCDotLUA0127DashP7D.values(), "Local Union Alphabet P7D"),
FC_BYD0127_P7D(172, 27, FCDotBYD0127DashP7D.values(), "Block Your Display P7D"), FC_BYD0127_P7E(172, 27, FCDotBYD0127DashP7E.values(), "Block Your Display P7D"),
FC_BYD0127_P7E(199, 27, FCDotBYD0127DashP7E.values(), "Block Your Display P7E"), FC_BYD0127_P7F(199, 27, FCDotBYD0127DashP7F.values(), "Block Your Display P7E"),
FC_BYD0127_P7F(226, 27, FCDotBYD0127DashP7F.values(), "Block Your Display P7F"), FC_BYD0127_P7G(226, 27, FCDotBYD0127DashP7G.values(), "Block Your Display P7F"),
/// Mind the gap, for retro metro, mini maxi mosi members /// Mind the gap, for retro metro, mini maxi mosi members
/// NOTE: MSX 0xFF is the cursor (TODO: move to BYD) /// NOTE: MSX 0xFF is the cursor (TODO: move to BYD)

View file

@ -28,43 +28,40 @@ import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerDotColleZero33; import org.x4o.fc18.cake2.FourCornerDotColleZero33;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
/// "FC.BYD0127-P7E" Four Corner Block Your Display terminal application. /// "FC.BYD0127-P7D" Four Corner Block Your Display terminal application.
/// ///
/// @author Willem Cazander /// @author Willem Cazander
/// @version 1.0 Jan 1, 2025 /// @version 1.0 Jan 1, 2025
/// ///
public enum FCDotBYD0127DashP7E implements FourCornerDotColleZero33 { public enum FCDotBYD0127DashP7E implements FourCornerDotColleZero33 {
BOX1_01('─'), BOX2_01('═'),
BOX1_02('│'), BOX2_02('║'),
BOX1_03('┄'), BOX2_03('╒'),
BOX1_04('┆'), BOX2_04('╓'),
BOX1_05('┈'), BOX2_05('╔'),
BOX1_06('┊'), BOX2_06('╕'),
BOX1_07('┌'), BOX2_07('╖'),
BOX1_08('┐'), BOX2_08('╗'),
BOX1_09('└'), BOX2_09('╘'),
BOX1_10('┘'), BOX2_10('╙'),
BOX1_11('├'), BOX2_11('╚'),
BOX1_12('┤'), BOX2_12('╛'),
BOX1_13('┬'), BOX2_13('╜'),
BOX1_14('┴'), BOX2_14('╝'),
BOX1_15('┼'), BOX2_15('╞'),
BOX1_16('╌'), BOX2_16('╟'),
BOX1_17('╎'), BOX2_17('╠'),
BOX2_18('╡'),
BOX1_18('╵'), BOX2_19('╢'),
BOX1_19('╷'), BOX2_20('╣'),
BOX1_20('╴'), BOX2_21('╤'),
BOX1_21('╶'), BOX2_22('╥'),
BOX2_23('╦'),
BOX2_22('╪'), BOX2_24('╧'),
BOX2_23('╫'), BOX2_25('╨'),
BOX2_24('╬'), BOX2_26('╩'),
BLK3_27('▀'),
BLK3_25('░'),
BLK3_26('▒'),
BLK3_27('▓'),
; ;
static final private FCDotBYD0127DashP7E[] VALUES = values(); // values() is slow method static final private FCDotBYD0127DashP7E[] VALUES = values(); // values() is slow method

View file

@ -28,43 +28,43 @@ import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerDotColleZero33; import org.x4o.fc18.cake2.FourCornerDotColleZero33;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
/// "FC.BYD0127-P7F" Four Corner Block Your Display terminal application. /// "FC.BYD0127-P7E" Four Corner Block Your Display terminal application.
/// ///
/// @author Willem Cazander /// @author Willem Cazander
/// @version 1.0 Jan 1, 2025 /// @version 1.0 Jan 1, 2025
/// ///
public enum FCDotBYD0127DashP7F implements FourCornerDotColleZero33 { public enum FCDotBYD0127DashP7F implements FourCornerDotColleZero33 {
BLK1_01('▁'), BOX1_01('─'),
BLK1_02('▂'), BOX1_02('│'),
BLK1_03('▃'), BOX1_03('┄'),
BLK1_04('▄'), BOX1_04('┆'),
BLK1_05('▅'), BOX1_05('┈'),
BLK1_06('▆'), BOX1_06('┊'),
BLK1_07('▇'), BOX1_07('┌'),
BLK1_08('█'), BOX1_08('┐'),
BLK1_09('▉'), BOX1_09('└'),
BLK1_10('▊'), BOX1_10('┘'),
BLK1_11('▋'), BOX1_11('├'),
BLK1_12('▌'), BOX1_12('┤'),
BLK1_13('▍'), BOX1_13('┬'),
BLK1_14('▎'), BOX1_14('┴'),
BLK1_15('▏'), BOX1_15('┼'),
BOX1_16('╌'),
BOX1_17('╎'),
BLK2_16('▔'), BOX1_18('╵'),
BLK2_17('╏'), BOX1_19('╷'),
BLK1_18('▕'), BOX1_20('╴'),
BLK1_19('▐'), BOX1_21('╶'),
BOX3_20('╭'), BOX2_22('╪'),
BOX3_21('╮'), BOX2_23('╫'),
BOX3_22('╰'), BOX2_24('╬'),
BOX3_23('╯'),
BLK2_24('▛'), BLK3_25('░'),
BLK2_25('▜'), BLK3_26('▒'),
BLK2_26('▙'), BLK3_27('▓'),
BLK2_27('▟'),
; ;
static final private FCDotBYD0127DashP7F[] VALUES = values(); // values() is slow method static final private FCDotBYD0127DashP7F[] VALUES = values(); // values() is slow method

View file

@ -28,57 +28,60 @@ import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerDotColleZero33; import org.x4o.fc18.cake2.FourCornerDotColleZero33;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8; import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
/// "FC.BYD0127-P7D" Four Corner Block Your Display terminal application. /// "FC.BYD0127-P7F" Four Corner Block Your Display terminal application.
/// ///
/// @author Willem Cazander /// @author Willem Cazander
/// @version 1.0 Jan 1, 2025 /// @version 1.0 Jan 1, 2025
/// ///
public enum FCDotBYD0127DashP7D implements FourCornerDotColleZero33 { public enum FCDotBYD0127DashP7G implements FourCornerDotColleZero33 {
BOX2_01('═'), BLK1_01('▁'),
BOX2_02('║'), BLK1_02('▂'),
BOX2_03('╒'), BLK1_03('▃'),
BOX2_04('╓'), BLK1_04('▄'),
BOX2_05('╔'), BLK1_05('▅'),
BOX2_06('╕'), BLK1_06('▆'),
BOX2_07('╖'), BLK1_07('▇'),
BOX2_08('╗'), BLK1_08('█'),
BOX2_09('╘'), BLK1_09('▉'),
BOX2_10('╙'), BLK1_10('▊'),
BOX2_11('╚'), BLK1_11('▋'),
BOX2_12('╛'), BLK1_12('▌'),
BOX2_13('╜'), BLK1_13('▍'),
BOX2_14('╝'), BLK1_14('▎'),
BOX2_15('╞'), BLK1_15('▏'),
BOX2_16('╟'),
BOX2_17('╠'), BLK2_16('▔'),
BOX2_18('╡'), BLK2_17('╏'),
BOX2_19('╢'), BLK1_18('▕'),
BOX2_20('╣'), BLK1_19('▐'),
BOX2_21('╤'),
BOX2_22('╥'), BOX3_20('╭'),
BOX2_23('╦'), BOX3_21('╮'),
BOX2_24('╧'), BOX3_22('╰'),
BOX2_25('╨'), BOX3_23('╯'),
BOX2_26('╩'),
BLK3_27('▀'), BLK2_24('▛'),
BLK2_25('▜'),
BLK2_26('▙'),
BLK2_27('▟'),
; ;
static final private FCDotBYD0127DashP7D[] VALUES = values(); // values() is slow method static final private FCDotBYD0127DashP7G[] VALUES = values(); // values() is slow method
private final int codePoint; private final int codePoint;
private FCDotBYD0127DashP7D(int codePoint) { private FCDotBYD0127DashP7G(int codePoint) {
this.codePoint = codePoint; this.codePoint = codePoint;
} }
@Override @Override
public List<Integer> baklavaPointSequence() { public List<Integer> baklavaPointSequence() {
return FCDotINC0801DashP8.INC_BYD0127_P7D.baklavaPointsE16(ordinal()); return FCDotINC0801DashP8.INC_BYD0127_P7G.baklavaPointsE16(ordinal());
} }
@Override @Override
public int cakePointDotIndex() { public int cakePointDotIndex() {
return FourCornerDotCake.FC_BYD0127_P7D.getStart() + ordinal(); return FourCornerDotCake.FC_BYD0127_P7G.getStart() + ordinal();
} }
@Override @Override
@ -90,7 +93,7 @@ public enum FCDotBYD0127DashP7D implements FourCornerDotColleZero33 {
return VALUES.length; return VALUES.length;
} }
static public FCDotBYD0127DashP7D valueOf(int idx) { static public FCDotBYD0127DashP7G valueOf(int idx) {
return VALUES[idx]; return VALUES[idx];
} }
} }

View file

@ -73,7 +73,7 @@ public enum FCDotLUA0127DashP7C implements FourCornerDotColleZero33 {
@Override @Override
public List<Integer> baklavaPointSequence() { public List<Integer> baklavaPointSequence() {
return FCDotINC0801DashP8.INC_LUA0127_P7A.baklavaPointsE16(ordinal()); return FCDotINC0801DashP8.INC_LUA0127_P7C.baklavaPointsE16(ordinal());
} }
@Override @Override

View file

@ -0,0 +1,96 @@
/*
* Copyright (c) 2004-2014, Willem Cazander
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification, are permitted provided
* that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice, this list of conditions and the
* following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and
* the following disclaimer in the documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
* OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
* TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package org.x4o.fc18.cake2.zero33;
import java.util.List;
import org.x4o.fc18.cake2.FourCornerDotCake;
import org.x4o.fc18.cake2.FourCornerDotColleZero33;
import org.x4o.fc18.cake2.zero33.dec1.FCDotINC0801DashP8;
/// "FC.LUA0127-P7D" Four Corner Local Union Alphabet symbols cake slice of cake points.
///
/// @author Willem Cazander
/// @version 1.0 Sep 1, 2025
///
public enum FCDotLUA0127DashP7D implements FourCornerDotColleZero33 {
NXX_01(' '),
NXX_02(' '),
NXX_03(' '),
NXX_04(' '),
NXX_05(' '),
NXX_06(' '),
NXX_07(' '),
NXX_08(' '),
NXX_09(' '),
NXX_10(' '),
NXX_11(' '),
NXX_12(' '),
NXX_13(' '),
NXX_14(' '),
NXX_15(' '),
NXX_16(' '),
NXX_17(' '),
NXX_18(' '),
NXX_19(' '),
NXX_20(' '),
NXX_21(' '),
NXX_22(' '),
NXX_23(' '),
NXX_24(' '),
NXX_25(' '),
NXX_26(' '),
NXX_27(' '),
;
static final private FCDotLUA0127DashP7D[] VALUES = values(); // values() is slow method
private final int codePoint;
private FCDotLUA0127DashP7D(int codePoint) {
this.codePoint = codePoint;
}
@Override
public List<Integer> baklavaPointSequence() {
return FCDotINC0801DashP8.INC_LUA0127_P7D.baklavaPointsE16(ordinal());
}
@Override
public int cakePointDotIndex() {
return FourCornerDotCake.FC_LUA0127_P7D.getStart() + ordinal();
}
@Override
public int codePointDotIndex() {
return codePoint;
}
static public int valuesLength() {
return VALUES.length;
}
static public FCDotLUA0127DashP7D valueOf(int idx) {
return VALUES[idx];
}
}

View file

@ -54,8 +54,8 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
INC_LUA0127_P7C(FourCornerDotCake.FC_LUA0127_P7C), INC_LUA0127_P7C(FourCornerDotCake.FC_LUA0127_P7C),
/// ¡¿¿ /// ¡¿¿
/// Select BYD page 7D mode. /// Select LUA page 7D mode.
INC_BYD0127_P7D(FourCornerDotCake.FC_BYD0127_P7D), INC_LUA0127_P7D(FourCornerDotCake.FC_LUA0127_P7D),
/// ¿¡¿ /// ¿¡¿
/// Select BYD page 7E mode. /// Select BYD page 7E mode.
@ -66,8 +66,10 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
INC_BYD0127_P7F(FourCornerDotCake.FC_BYD0127_P7F), INC_BYD0127_P7F(FourCornerDotCake.FC_BYD0127_P7F),
/// ¿¡¡ /// ¿¡¡
/// Select italic mode. /// Select BYD page 7G mode.
INC_PIE9D_27(FourCornerDotCake.FC_PIE9D_27), INC_BYD0127_P7G(FourCornerDotCake.FC_BYD0127_P7G),
// Select italic mode.
//INC_PIE9D_27(FourCornerDotCake.FC_PIE9D_27),
/// ¿¿¿ /// ¿¿¿
// Select lower case mode. // Select lower case mode.
@ -86,7 +88,10 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
@Override @Override
public List<Integer> baklavaPointSequence() { public List<Integer> baklavaPointSequence() {
return FCDotCDC1604DashP6.pepper3SequenceWritePoints(ordinal()); List<Integer> result = new ArrayList<>();
result.addAll(FCDotDEC2701DashPX0.ESC68_INC0801_P8.baklavaPointSequence());
result.addAll(FCDotCDC1604DashP6.pepper3SequenceWritePoints(ordinal()));
return result;
} }
@Override @Override
@ -101,7 +106,7 @@ public enum FCDotINC0801DashP8 implements FourCornerX06BaklavaPointSequence, Fou
public List<Integer> baklavaPointsE16(int offset) { public List<Integer> baklavaPointsE16(int offset) {
List<Integer> result = new ArrayList<>(); List<Integer> result = new ArrayList<>();
result.addAll(FCDotDEC2701DashPX0.ESC68_INC0801_P8.baklavaPointSequence()); //result.addAll(FCDotDEC2701DashPX0.ESC68_INC0801_P8.baklavaPointSequence());
result.addAll(baklavaPointSequence()); result.addAll(baklavaPointSequence());
result.add(FCDotCDC1604DashP6.NX01_A.ordinal() + offset); result.add(FCDotCDC1604DashP6.NX01_A.ordinal() + offset);
//result.add(FCDotCDC1604DashP6.SEQ_SALAH__EXCLAMATION.cakePointDotIndex()); // TODO: add api layer snake for head //result.add(FCDotCDC1604DashP6.SEQ_SALAH__EXCLAMATION.cakePointDotIndex()); // TODO: add api layer snake for head

View file

@ -809,6 +809,9 @@ public class FourCornerZionStenoLexer {
lexer.decModeReset(); lexer.decModeReset();
return true; // end E10 mode, so no print return true; // end E10 mode, so no print
} }
if (lexer.cdcDECModeInc == null) {
lexer.cdcDECModeInc = FCDotINC0801DashP8.valueOf(0);
}
FourCornerDotCake displayCake = lexer.cdcDECModeInc.displayCake(); FourCornerDotCake displayCake = lexer.cdcDECModeInc.displayCake();
if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > displayCake.getLength() - 1 + FCDotCDC1604DashP6.NX01_A.ordinal()) { if (cdcPoint < FCDotCDC1604DashP6.NX01_A.ordinal() || cdcPoint > displayCake.getLength() - 1 + FCDotCDC1604DashP6.NX01_A.ordinal()) {
lexer.decModeReset(); lexer.decModeReset();

View file

@ -179,12 +179,12 @@ public class FourCornerUnicodeDisplayTest {
@Test @Test
public void testDecIncText() throws Exception { public void testDecIncText() throws Exception {
List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>(); List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>();
cdc.add(FCDotDEC2701DashPX0.ESC68_INC0801_P8); //cdc.add(FCDotDEC2701DashPX0.ESC68_INC0801_P8);
cdc.add(FCDotINC0801DashP8.INC_PIE9D_27); //cdc.add(FCDotINC0801DashP8.INC_PIE9D_27);
cdc.add(FCDotCDC1604DashP6.NX08_H); //cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O); //cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I); //cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotINC0801DashP8.INC_BYD0127_P7D); cdc.add(FCDotINC0801DashP8.INC_BYD0127_P7E);
cdc.add(FCDotCDC1604DashP6.NX08_H); cdc.add(FCDotCDC1604DashP6.NX08_H);
cdc.add(FCDotCDC1604DashP6.NX15_O); cdc.add(FCDotCDC1604DashP6.NX15_O);
cdc.add(FCDotCDC1604DashP6.NX09_I); cdc.add(FCDotCDC1604DashP6.NX09_I);
@ -194,7 +194,8 @@ public class FourCornerUnicodeDisplayTest {
cdc.add(FCDotCDC1604DashP6.NX09_I); cdc.add(FCDotCDC1604DashP6.NX09_I);
cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION); cdc.add(FCDotCDC1604DashP6._SALAH_EXCLAMATION);
Assertions.assertEquals("𝘩𝘰𝘪╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); // Assertions.assertEquals("𝘩𝘰𝘪╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
Assertions.assertEquals("╗╞╘hoi", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
} }
@Test @Test

View file

@ -42,16 +42,16 @@ public class FCDotBYDTest {
@Test @Test
public void testValuesLength() throws Exception { public void testValuesLength() throws Exception {
Assertions.assertEquals(27, FCDotBYD0127DashP7D.valuesLength());
Assertions.assertEquals(27, FCDotBYD0127DashP7E.valuesLength()); Assertions.assertEquals(27, FCDotBYD0127DashP7E.valuesLength());
Assertions.assertEquals(27, FCDotBYD0127DashP7F.valuesLength()); Assertions.assertEquals(27, FCDotBYD0127DashP7F.valuesLength());
Assertions.assertEquals(27, FCDotBYD0127DashP7G.valuesLength());
} }
@Test @Test
public void testValues() throws Exception { public void testValues() throws Exception {
boolean duplicate = false; boolean duplicate = false;
Map<Integer,FCDotBYD0127DashP7D> global = new HashMap<>(); Map<Integer,FCDotBYD0127DashP7E> global = new HashMap<>();
for (FCDotBYD0127DashP7D v : FCDotBYD0127DashP7D.values()) { for (FCDotBYD0127DashP7E v : FCDotBYD0127DashP7E.values()) {
Assertions.assertNotNull(v); Assertions.assertNotNull(v);
if (global.containsKey(v.codePointDotIndex())) { if (global.containsKey(v.codePointDotIndex())) {
duplicate = true; duplicate = true;
@ -66,14 +66,14 @@ public class FCDotBYDTest {
@Test @Test
public void testDisplay() throws Exception { public void testDisplay() throws Exception {
List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>(); List<FourCornerX06BaklavaPointSequence> cdc = new ArrayList<>();
cdc.add(FCDotBYD0127DashP7D.BOX2_01); cdc.add(FCDotBYD0127DashP7E.BOX2_01);
cdc.add(FCDotBYD0127DashP7D.BOX2_02); cdc.add(FCDotBYD0127DashP7E.BOX2_02);
cdc.add(FCDotBYD0127DashP7D.BOX2_02); cdc.add(FCDotBYD0127DashP7E.BOX2_02);
cdc.add(FCDotBYD0127DashP7D.BOX2_01); cdc.add(FCDotBYD0127DashP7E.BOX2_01);
cdc.add(FCDotBYD0127DashP7E.BOX1_01); cdc.add(FCDotBYD0127DashP7F.BOX1_01);
cdc.add(FCDotBYD0127DashP7E.BOX1_03); cdc.add(FCDotBYD0127DashP7F.BOX1_03);
cdc.add(FCDotBYD0127DashP7E.BOX1_03); cdc.add(FCDotBYD0127DashP7F.BOX1_03);
cdc.add(FCDotBYD0127DashP7E.BOX1_07); cdc.add(FCDotBYD0127DashP7F.BOX1_07);
Assertions.assertEquals("═║║═─┄┄┌", FourCornerUnicodeDisplay.text().renderFromX06(cdc)); Assertions.assertEquals("═║║═─┄┄┌", FourCornerUnicodeDisplay.text().renderFromX06(cdc));
} }