From d088fe28b22ab14227ba1144e99ad7a7e99e0aa6 Mon Sep 17 00:00:00 2001 From: Willem Date: Wed, 1 Jan 2025 21:26:15 +0100 Subject: [PATCH] Added APL and BYD support --- .../org/x4o/o2o/fc18/FourCornerDotCake.java | 9 +- .../o2o/fc18/FourCornerUnicodeDisplay.java | 2 +- .../x4o/o2o/fc18/FourCornerUnicodeImport.java | 4 +- .../o2o/fc18/FourCornerX06BaklavaPoint.java | 33 +++ .../o2o/fc18/FourCornerX08MuffinPoint.java | 33 +++ ...Point.java => FourCornerX18CakePoint.java} | 3 +- .../x4o/o2o/fc18/FourCornerX21CodePoint.java | 33 +++ .../x4o/o2o/fc18/clk9p/FCDotCLKSource.java | 4 + .../fc18/clk9p/FCDotCLKSourceCakePoint.java | 4 +- .../o2o/fc18/zero33/FCDotAMD0110DashA4.java | 4 +- .../o2o/fc18/zero33/FCDotAPL1604DashS6.java | 263 ++++++++++++++++++ .../o2o/fc18/zero33/FCDotBMW0102DashD1.java | 8 +- .../o2o/fc18/zero33/FCDotBYD1604DashC6.java | 148 ++++++++++ .../o2o/fc18/zero33/FCDotCDC1604DashP6.java | 28 +- .../o2o/fc18/zero33/FCDotDEC1604DashE6.java | 54 +++- .../o2o/fc18/zero33/FCDotIBM1616DashD8.java | 4 +- .../o2o/fc18/zero33/FCDotNCR1632Dash0F.java | 4 +- .../o2o/fc18/zero33/FCDotNCR1632Dash0M.java | 4 +- .../o2o/fc18/zero33/FCDotNCR1632Dash1T.java | 4 +- .../o2o/fc18/zero33/FCDotNCR1632Dash1V.java | 4 +- .../o2o/fc18/zero33/FCDotOCE0801DashH3.java | 4 +- .../o2o/fc18/zero33/FCDotOCE0808DashH6.java | 4 +- .../o2o/fc18/zero33/FCDotOCE0864DashH9.java | 4 +- .../fc18/zero33/FCDotAPL1604DashS6Test.java | 55 ++++ .../fc18/zero33/FCDotBYD1604DashC6Test.java | 55 ++++ .../fc18/zero33/FCDotCDC1604DashP6Test.java | 6 +- 26 files changed, 724 insertions(+), 54 deletions(-) create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoint.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoint.java rename nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/{FourCornerDotCakePoint.java => FourCornerX18CakePoint.java} (95%) create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoint.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6.java create mode 100644 nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6.java create mode 100644 nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6Test.java create mode 100644 nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6Test.java diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCake.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCake.java index e848de2..11d4f12 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCake.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCake.java @@ -24,7 +24,6 @@ package org.x4o.o2o.fc18; import java.util.Optional; -/// /// The dot cake index of four corner 18 bit words in cake slices which holds the cake points. /// /// @author Willem Cazander @@ -37,10 +36,10 @@ public enum FourCornerDotCake { FC_CDC1604_P6(0, 64), /// Direct or Escaped Control FC_DEC1604_E6(64, 64), - /// Reserved for future 6 bit cake - __RESERVED_1604_EXT1(128, 64), - /// Reserved for future 6 bit cake - __RESERVED_1604_EXT2(192, 64), + /// A Programming Language + FC_APL1604_S6(128, 64), + /// Block Your Display + FC_BYD1604_C6(192, 64), // =========== Allow end-user select rendering of data gram packet per context diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplay.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplay.java index df4dd81..b9231a5 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplay.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeDisplay.java @@ -125,7 +125,7 @@ public class FourCornerUnicodeDisplay { if (numberMode == null) { prevLetter = cdcPoint >= FCDotCDC1604DashP6.NX01_A.ordinal(); if (cdcPoint < FCDotCDC1604DashP6.length()) { - byte ch = FCDotCDC1604DashP6.indexOf(cdcPoint).asciiByte(); + int ch = FCDotCDC1604DashP6.indexOf(cdcPoint).codePoint(); if (renderCasing) { if (toUpper) { toUpper = false; diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeImport.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeImport.java index ff0e515..cefff0e 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeImport.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerUnicodeImport.java @@ -79,7 +79,7 @@ public class FourCornerUnicodeImport { continue; } for (FCDotCDC1604DashP6 v : cdcChars) { - if (v.asciiByte() == codePoint) { + if (v.codePoint() == codePoint) { result.add(v); found = true; cdcNumberTerminator = null; @@ -112,7 +112,7 @@ public class FourCornerUnicodeImport { String codePointStr = Character.toString(codePoint); for (FCDotCDC1604DashP6 v : cdcChars) { if (convertLowerCase) { - byte codePointLower = (byte) Character.toLowerCase(v.asciiByte()); + byte codePointLower = (byte) Character.toLowerCase(v.codePoint()); if (codePointLower == codePoint) { result.add(v); found = true; diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoint.java new file mode 100644 index 0000000..8022269 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX06BaklavaPoint.java @@ -0,0 +1,33 @@ +/* + * 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.o2o.fc18; + +/// Number index retriever for four corner baklava points. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +public interface FourCornerX06BaklavaPoint { + + /// One baklava piece weights 52 gram + int baklavaPoint(); +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoint.java new file mode 100644 index 0000000..8d39615 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX08MuffinPoint.java @@ -0,0 +1,33 @@ +/* + * 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.o2o.fc18; + +/// Number index retriever for four corner muffin points. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +public interface FourCornerX08MuffinPoint { + + /// One muffin piece weights 111 gram + int muffinPoint(); +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCakePoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoint.java similarity index 95% rename from nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCakePoint.java rename to nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoint.java index e70d989..7f7c138 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerDotCakePoint.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX18CakePoint.java @@ -26,7 +26,8 @@ package org.x4o.o2o.fc18; /// /// @author Willem Cazander /// @version 1.0 Dec 28, 2024 -public interface FourCornerDotCakePoint { +public interface FourCornerX18CakePoint { + /// One cake piece weights 800 gram int cakePoint(); } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoint.java new file mode 100644 index 0000000..ec213ec --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/FourCornerX21CodePoint.java @@ -0,0 +1,33 @@ +/* + * 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.o2o.fc18; + +/// Number index retriever for four corner 21 bit code points. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +public interface FourCornerX21CodePoint { + + /// One code point weights ~1234 gram + int codePoint(); +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSource.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSource.java index 57f7a44..71e54e6 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSource.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSource.java @@ -39,6 +39,10 @@ public enum FCDotCLKSource implements FCDotCLKSourceLookup { RUST, PYTHON, ES6, + //APL_DYADIC + //APL_MONADIC + //APL_CIRCLE + //APL_CMD //BASIC, //BASIC_MSX, // = disk-basic + msx stuff //BASIC_MPI, // MPI-2 for BASIC diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoint.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoint.java index 7e02d74..fbd8ac9 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoint.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/clk9p/FCDotCLKSourceCakePoint.java @@ -24,7 +24,7 @@ package org.x4o.o2o.fc18.clk9p; import java.util.Optional; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * Adds CLK source lookup support to an cake point. @@ -33,7 +33,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public interface FCDotCLKSourceCakePoint extends FourCornerDotCakePoint { +public interface FCDotCLKSourceCakePoint extends FourCornerX18CakePoint { FCDotCLKSourceLookup[] getLookups(); diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashA4.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashA4.java index f26c15e..d208d81 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashA4.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAMD0110DashA4.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.AMD0110-A4" Four Corner Application Methodoums Decimals @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 31, 2024 */ -public enum FCDotAMD0110DashA4 implements FourCornerDotCakePoint { +public enum FCDotAMD0110DashA4 implements FourCornerX18CakePoint { /// Shorthand for zero T001_NXX_001, /// Shorthand for one diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6.java new file mode 100644 index 0000000..3295e99 --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6.java @@ -0,0 +1,263 @@ +/* + * 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.o2o.fc18.zero33; + +import org.x4o.o2o.fc18.FourCornerDotCake; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoint; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX21CodePoint; + +/// "FC.APL1604-S6" Four Corner A Programming Language symbols cake slice of cake points. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +/// +public enum FCDotAPL1604DashS6 implements FourCornerX06BaklavaPoint, FourCornerX08MuffinPoint, FourCornerX18CakePoint, FourCornerX21CodePoint { + + /// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers. + __NUL_APL('\u0000'), + + // see https://en.wikipedia.org/wiki/Digital_encoding_of_APL_symbols + + /// SL010000 + UP_STILE('⌈'), + /// SL020000 + DOWN_STILE('⌊'), + /// SL030000 + DEL('∇'), + /// SL040000 + DEL_TILDE('⍫'), + /// SL050000 + DEL_STILE('⍒'), + /// SL060000 + DELTA('∆'), + /// SL070000 + DELTA_STILE('⍋'), + /// SL080000 + CIRCLE('○'), + /// SL090000 + CIRCLE_STILE('⌽'), + /// SL100000 + CIRCLE_SLOPE('⍉'), + /// SL110000 + CIRCLE_STAR('⍟'), + /// SL120000 + CIRCLE_BAR('⊖'), + /// SL130000 + QUAD_QUOTE('⍞'), + /// SL140000 + QUAD_DIVIDE('⌹'), + /// SL150000 + SLASH_BAR('⌿'), + /// SL160000 + SLOPE_BAR('⍀'), + /// SL170000 + UP_CARET_TILDE('⍲'), + /// SL180000 + DOWN_CARET_TILDE('⍱'), + /// SL190000 + DOWN_TACK_JOT('⍎'), + /// SL200000 + UP_TACK_JOT('⍕'), + /// SL210000 + UP_SHOE_NULL('⍝'), + /// SL220000 + UP_TACK('⊤'), + /// SL230000 + DOWN_TACK('⊥'), + /// SL240000 + IBEAM_TACK('⌶'), + /// SL250000 + JOT('∘'), + /// SL260000 + SQUISH_QUAD('⌷'), + /// SL270000 + QUAD_JOT('⌻'), + /// SL280000 + QUAD_SLOPE('⍂'), + + // SL290000 = Ampersand Underbar is on 6 bit = FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_LL + FCDotCDC1604DashP6.NX27_AMPERSAND + // SL300000 = Equals underbar is on 6 bit = FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_LL + FCDotCDC1604DashP6._EQUALS + // SL310000 = OUT Symbol = Not used by IBM ? + + /// SL320000 + DIAERESIS_DOT('∵'), + + // SL330000 = Delta underbar is on 6 bit = FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_LL + FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_APL + FCDotAPL1604DashS6.DELTA + + /// SL340000 + LEFT_TACK('⊢'), + /// SL350000 + RIGHT_TACK('⊣'), + /// SL360000 + QUAD('⎕'), + /// SL370000 + LESS_GREATER('⋄'), + + // SL380000 = Stile = FCDotCDC1604DashP6.BAR_VERTICAL + // SL390000 = undefined + + /// SL400000 + UP_SHOE('∩'), + /// SL410000 + DOWN_SHOE('∪'), + /// SL420000 + LEFT_SHOE('⊂'), + /// SL430000 + RIGHT_SHOE('⊃'), + + // SL440000 = Underbar = FCDotCDC1604DashP6.BAR_UNDER + + /// SL450000 + DIAERESIS('¨'), + + // SL460000 = Tilde = FCDotCDC1604DashP6._TILDE + // SL470000 = undefined + + /// SL480000 + CIRCLE_PLUS('⊕'), + /// SL490000 + CIRCLE_TIMES('⊗'), + /// SL500000 + DOWN_CARET('∨'), + /// SL510000 + UP_CARET('∧'), + + // SL520000 = Less than = FCDotCDC1604DashP6.TAG_COMPARE_LEFT + // SL530000 = Greater than = FCDotCDC1604DashP6.TAG_COMPARE_RIGHT + + /// SL540000 + DIVIDE('÷'), + /// SL550000 + TIMES('×'), + /// SL560000 + NOT_GREATER('≤'), + /// SL570000 + NOT_LESS('≥'), + + // SL580000 = Quote Dot = FCDotCDC1604DashP6._EXCLAMATION + + /// SL590000 + LEFT_ARROW('←'), + /// SL600000 + RIGHT_ARROW('→'), + /// SL610000 + UP_ARROW('↑'), + /// SL620000 + DOWN_ARROW('↓'), + + /// SL630000 + OVERBAR('‾'), + + // SL640000 = Slope = FCDotCDC1604DashP6.BAR_V_LEFT + // SL650000 = Star = FCDotCDC1604DashP6._ASTERISK + // SL660000 = Quota = FCDotCDC1604DashP6._APOSTROPHE + // SL670000 = Left Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_LEFT + // SL680000 = Right Parenthesis = FCDotCDC1604DashP6.TAG_ROUND_RIGHT + // SL690000 = Bar = FCDotCDC1604DashP6._MINUS + // SL700000 = Query = FCDotCDC1604DashP6._QUESTION + + /// SL710000 + ALPHA('⍺'), + /// SL720000 + EPSILON('∊'), + /// SL730000 + IOTA('⍳'), + /// SL740000 + RHO('⍴'), + /// SL750000 + OMEGA('⍵'), + + // SL760000 = Slash = FCDotCDC1604DashP6.BAR_V_RIGHT + // SL770000 = Left Bracket = FCDotCDC1604DashP6.TAG_SQUARE_LEFT + // SL780000 = Right Bracket = FCDotCDC1604DashP6.TAG_SQUARE_RIGHT + // SL790000 = Plus = FCDotCDC1604DashP6._PLUS + // SL800000 = Semicolon = FCDotCDC1604DashP6._SEMICOLON + // SL810000 = Equal = FCDotCDC1604DashP6._EQUALS + + /// SL820000 + NOT_EQUAL('≠'), + + // SL830000 = Colon = FCDotCDC1604DashP6._COLON + // SL840000 = Dot = FCDotCDC1604DashP6._DOT + // SL850000 = Comma = FCDotCDC1604DashP6._COMMA + + // SL860000 = Iota Underbar + // SL870000 = Epsilon Underbar + // On 6 bit: + // FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_LL + FCDotCDC1604DashP6.__ESC + FCDotDEC1604DashE6.__ESC_APL + FCDotAPL1604DashS6.EPSILON + // On 8 or 18 bit: + // FCDotDEC1604DashE6.__ESC_LL + FCDotAPL1604DashS6.EPSILON + + // ----------- END APL + + /// Lambda symbol + LAMBDA('λ'), // Greek Capital Letter Lambda + /// Phi symbol + PHI('Φ'), // Greek Capital Letter Phi + /// A Euler's Number symbol + AEN('ӕ'), // Cyrillic Small Ligature A Ie + /// One pi has symbol of 2T + PI_1('π'), // Greek Small Letter Pi + /// Two pi has symbol of 1T + PI_2('τ'), // Greek Capital Letter Tau + /// Three pi has symbol of 3T + PI_3('Ѧ'), // Cyrillic Capital Letter Little Yus + ; + + static final private FCDotAPL1604DashS6[] VALUES = values(); // values() is slow method + private final int codePoint; + + private FCDotAPL1604DashS6(char codePoint) { + this.codePoint = codePoint; + } + + @Override + public int baklavaPoint() { + return ordinal(); + } + + @Override + public int muffinPoint() { + return cakePoint(); + } + + @Override + public int cakePoint() { + return FourCornerDotCake.FC_APL1604_S6.getStart() + ordinal(); + } + + @Override + public int codePoint() { + return codePoint; + } + + static public int length() { + return VALUES.length; + } + + static public FCDotAPL1604DashS6 indexOf(int idx) { + return VALUES[idx]; + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBMW0102DashD1.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBMW0102DashD1.java index 3e423ef..89c4bb1 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBMW0102DashD1.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBMW0102DashD1.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.BMW0102-D1" Four Corner Binary Model Word encoding. @@ -31,9 +31,9 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 31, 2024 */ -public enum FCDotBMW0102DashD1 implements FourCornerDotCakePoint { - NXX_001, - NXX_002, +public enum FCDotBMW0102DashD1 implements FourCornerX18CakePoint { + T002_NXX_001, + T002_NXX_002, ; @Override diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6.java new file mode 100644 index 0000000..734745d --- /dev/null +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6.java @@ -0,0 +1,148 @@ +/* + * 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.o2o.fc18.zero33; + +import org.x4o.o2o.fc18.FourCornerDotCake; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoint; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX21CodePoint; + +/// "FC.BYD1604-C6" Four Corner Block Your Display terminal application. +/// +/// @author Willem Cazander +/// @version 1.0 Jan 1, 2025 +/// +public enum FCDotBYD1604DashC6 implements FourCornerX06BaklavaPoint, FourCornerX08MuffinPoint, FourCornerX18CakePoint, FourCornerX21CodePoint { + + /// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers. + __NUL_BYD('\u0000'), + + // 32 chars are CP/M Plus aligned + + BOX2_1('╧'), + BOX2_2('╟'), + BOX2_3('╚'), + BOX2_4('╤'), + BOX2_5('║'), + BOX2_6('╔'), + BOX2_7('╠'), + BOX2_8('╢'), + BOX2_9('╝'), + BOX2_A('═'), + BOX2_B('╩'), + BOX2_C('╗'), + BOX2_D('╣'), + BOX2_E('╦'), + BOX2_F('╬'), + + /// this index is free in CP/M+, but here is the bi-cross glue from unicode "Box Drawing" char: 0x256A + BOX1_0('╪'), + BOX1_1('╵'), + BOX1_2('╶'), + BOX1_3('└'), + BOX1_4('╷'), + BOX1_5('│'), + BOX1_6('┌'), + BOX1_7('├'), + BOX1_8('╴'), + BOX1_9('┘'), + BOX1_A('─'), + BOX1_B('┴'), + BOX1_C('┐'), + BOX1_D('┤'), + BOX1_E('┬'), + BOX1_F('┼'), + + // 32 chars aligned with unicode "Block Elements" + + U2580('▀'), + U2581('▁'), + U2582('▂'), + U2583('▃'), + U2584('▄'), + U2585('▅'), + U2586('▆'), + U2587('▇'), + U2588('█'), + U2589('▉'), + U258A('▊'), + U258B('▋'), + U258C('▌'), + U258D('▍'), + U258E('▎'), + U258F('▏'), + + U2590('▐'), + U2591('░'), + U2592('▒'), + U2593('▓'), + U2594('▔'), + U2595('▕'), + U2596('▖'), + U2597('▗'), + U2598('▘'), + U2599('▙'), + U259A('▚'), + U259B('▛'), + U259C('▜'), + U259D('▝'), + U259E('▞'), + U259F('▟'), + ; + + static final private FCDotBYD1604DashC6[] VALUES = values(); // values() is slow method + private final int codePoint; + + private FCDotBYD1604DashC6(char codePoint) { + this.codePoint = codePoint; + } + + @Override + public int baklavaPoint() { + return ordinal(); + } + + @Override + public int muffinPoint() { + return cakePoint(); + } + + @Override + public int cakePoint() { + return FourCornerDotCake.FC_BYD1604_C6.getStart() + ordinal(); + } + + @Override + public int codePoint() { + return codePoint; + } + + static public int length() { + return VALUES.length; + } + + static public FCDotBYD1604DashC6 indexOf(int idx) { + return VALUES[idx]; + } +} diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6.java index 77b3249..c750ed5 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6.java @@ -23,7 +23,10 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoint; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; +import org.x4o.o2o.fc18.FourCornerX21CodePoint; /// /// "FC.CDC1604-P6" Four Corner Core Data Cake has 27 pie slice number systems "Packed" for MATH and BASIC letters. @@ -38,7 +41,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; /// @author Willem Cazander /// @version 1.0 Dec 22, 2024 /// -public enum FCDotCDC1604DashP6 implements FourCornerDotCakePoint { +public enum FCDotCDC1604DashP6 implements FourCornerX06BaklavaPoint, FourCornerX08MuffinPoint, FourCornerX18CakePoint, FourCornerX21CodePoint { // [__NUL][__PIE][__GLUE][__ESC] [__LINE][__SPACE]?! {[(< }])> // ~+-* ,.:; '"`^ =#$% // |_\/ @ABC DEFG HIJK @@ -125,19 +128,21 @@ public enum FCDotCDC1604DashP6 implements FourCornerDotCakePoint { NX27_AMPERSAND('&'), ; - static final private FCDotCDC1604DashP6[] VALUES = values(); - private final byte asciiByte; + static final private FCDotCDC1604DashP6[] VALUES = values(); // values() is slow method + private final int codePoint; private FCDotCDC1604DashP6(char codePoint) { - this.asciiByte = (byte) codePoint; + this.codePoint = codePoint; } - public byte cdcByte() { - return (byte) ordinal(); + @Override + public int baklavaPoint() { + return ordinal(); } - public byte asciiByte() { - return asciiByte; + @Override + public int muffinPoint() { + return cakePoint(); } @Override @@ -145,6 +150,11 @@ public enum FCDotCDC1604DashP6 implements FourCornerDotCakePoint { return FourCornerDotCake.FC_CDC1604_P6.getStart() + ordinal(); } + @Override + public int codePoint() { + return codePoint; + } + static public int length() { return VALUES.length; } diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashE6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashE6.java index 2aef10f..8714f91 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashE6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotDEC1604DashE6.java @@ -23,7 +23,9 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX06BaklavaPoint; +import org.x4o.o2o.fc18.FourCornerX08MuffinPoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.DEC1604-E2" Four Corner dot Direct or Escaped Control in grid of 16 by 04 of dashed Escape codes V2. @@ -39,23 +41,34 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 24, 2024 */ -public enum FCDotDEC1604DashE6 implements FourCornerDotCakePoint { - RESERVED___NUL, - RESERVED___PIE, +public enum FCDotDEC1604DashE6 implements FourCornerX06BaklavaPoint, FourCornerX08MuffinPoint, FourCornerX18CakePoint { + + /// Indicator for termination of pussy strings, which is the compatibility duel octal, with the CDC 1604 computers. + __NUL_DEC, + /// On 6 bit escape to the APL baklava. + __ESC6_APL, + /// Escape the next next 6 bit cake slice. (undefined) RESERVED___GLUE, - /// Duel escape to 18 bit four corner on 6 and 8 bit systems. + /// On 6/8 bit escape to 18 bit four corner. /// Stream six octals per cake point in NX01 to NX08, until any out of range P6, thus ending with __ESC - __ESC_18, - RESERVED__LINE, - RESERVED__SPACE, + __ESC6_FC18, + // "low line" escape for next single letter A-Z. + /// These were produced on APL printing terminals by over-striking a straight capital letter with an underscore character. + /// Example a̲b̲c̲/A̲B̲C̲ + __ESC_LL, + /// "low line spaced" also called a "macron below" escape for next single letter A-Z. + /// Example a̱ḇc̱/A̱ḆC̱ + __ESC_LLSP, UNDEFINED__QUESTION, UNDEFINED__EXCLAMATION, UNDEFINED__TAG_CURLY_LEFT, + /// C1 char [ = CSI = Control Sequence Introducer UNDEFINED__TAG_SQUARE_LEFT, UNDEFINED__TAG_ROUND_LEFT, UNDEFINED__TAG_COMPARE_LEFT, UNDEFINED__TAG_CURLY_RIGHT, + /// C1 char ] = OSC = Operating System Command UNDEFINED__TAG_SQUARE_RIGHT, UNDEFINED__TAG_ROUND_RIGHT, UNDEFINED__TAG_COMPARE_RIGHT, @@ -70,13 +83,16 @@ public enum FCDotDEC1604DashE6 implements FourCornerDotCakePoint { UNDEFINED___APOSTROPHE, UNDEFINED___QUOTATION, UNDEFINED___BACKTICK, + /// C1 char ^ = PM = Privacy Message UNDEFINED___CARET, UNDEFINED___EQUALS, UNDEFINED___HASH, UNDEFINED___DOLLAR, UNDEFINED___PERCENT, UNDEFINED__BAR_VERTICAL, + /// C1 char _ = APC = Application Program Command UNDEFINED__BAR_UNDER, + /// C1 char \ = ST = String Terminator UNDEFINED__BAR_V_LEFT, UNDEFINED__BAR_V_RIGHT, UNDEFINED___AT, @@ -86,15 +102,24 @@ public enum FCDotDEC1604DashE6 implements FourCornerDotCakePoint { UNDEFINED__NX04_D, UNDEFINED__NX05_E, UNDEFINED__NX06_F, + /// C0 char G = BEL = Bell, 0x07 UNDEFINED__NX07_G, + /// C0 char H = BS = Backspace UNDEFINED__NX08_H, + /// C0 char I = HT = Tab UNDEFINED__NX09_I, + /// C0 char J = LF = Line Feed UNDEFINED__NX10_J, UNDEFINED__NX11_K, + /// C0 char L = FF = Form Feed UNDEFINED__NX12_L, + /// C0 char M = CR = Carriage Return UNDEFINED__NX13_M, + /// C1 char N = SS2 = Single Shift Two UNDEFINED__NX14_N, + /// C1 char O = SS3 = Single Shift Three UNDEFINED__NX15_O, + /// C1 char P = DCS = Device Control String UNDEFINED__NX16_P, UNDEFINED__NX17_Q, UNDEFINED__NX18_R, @@ -103,6 +128,7 @@ public enum FCDotDEC1604DashE6 implements FourCornerDotCakePoint { UNDEFINED__NX21_U, UNDEFINED__NX22_V, UNDEFINED__NX23_W, + /// C1 char X = SOS = Start Of String UNDEFINED__NX24_X, UNDEFINED__NX25_Y, UNDEFINED__NX26_Z, @@ -138,11 +164,21 @@ public enum FCDotDEC1604DashE6 implements FourCornerDotCakePoint { // TODO: full new impl+cleanup of ANSI-NG for 6 bit real computer terminals !?! ; - static final private FCDotDEC1604DashE6[] VALUES = values(); + static final private FCDotDEC1604DashE6[] VALUES = values(); // values() is slow method private FCDotDEC1604DashE6() { } + @Override + public int baklavaPoint() { + return ordinal(); + } + + @Override + public int muffinPoint() { + return cakePoint(); + } + @Override public int cakePoint() { return FourCornerDotCake.FC_DEC1604_E6.getStart() + ordinal(); diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotIBM1616DashD8.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotIBM1616DashD8.java index 0b1fceb..c4a8864 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotIBM1616DashD8.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotIBM1616DashD8.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.IBM1616-D8" Four Corner Interim Byte Mode, embed raw 8 bit Data @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotIBM1616DashD8 implements FourCornerDotCakePoint { +public enum FCDotIBM1616DashD8 implements FourCornerX18CakePoint { NXX_001, NXX_002, NXX_003, diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0F.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0F.java index 6803998..e77f19f 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0F.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0F.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.NCR1632-0F" Four Corner New Counting Rods optional flags. @@ -31,7 +31,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 31, 2024 */ -public enum FCDotNCR1632Dash0F implements FourCornerDotCakePoint { +public enum FCDotNCR1632Dash0F implements FourCornerX18CakePoint { /// Reserved TODO: Check if we need 1PI/2PI/3PI/NaN minus in 4D and maybe replace math symbols from P6 to here.. RESERVED, diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0M.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0M.java index b2381ca..5ddb268 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0M.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash0M.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.NCR1632-0M" Four Corner New Counting Rods terminator pie multiplier. @@ -31,7 +31,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 31, 2024 */ -public enum FCDotNCR1632Dash0M implements FourCornerDotCakePoint { +public enum FCDotNCR1632Dash0M implements FourCornerX18CakePoint { NXX_001, NXX_002, NXX_003, diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1T.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1T.java index c08888a..a226f90 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1T.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1T.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.NCR1632-1T" Four Corner New Counting Rods selects the Terminator pie. @@ -31,7 +31,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotNCR1632Dash1T implements FourCornerDotCakePoint { +public enum FCDotNCR1632Dash1T implements FourCornerX18CakePoint { NXX_001, NXX_002, NXX_003, diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1V.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1V.java index f6d8797..7aaea69 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1V.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotNCR1632Dash1V.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.NCR1632-1V" Four Corner New Counting Rods One Value of a terminator slice. @@ -31,7 +31,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotNCR1632Dash1V implements FourCornerDotCakePoint { +public enum FCDotNCR1632Dash1V implements FourCornerX18CakePoint { NXX_001, NXX_002, NXX_003, diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0801DashH3.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0801DashH3.java index 34ffa6b..4600a43 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0801DashH3.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0801DashH3.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.OCE0801-H3" Four Corner Octal Character Encoding in Hinari 3 bit. @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotOCE0801DashH3 implements FourCornerDotCakePoint { +public enum FCDotOCE0801DashH3 implements FourCornerX18CakePoint { NXX_001, NXX_002, NXX_003, diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0808DashH6.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0808DashH6.java index 13e97e4..6ebb28f 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0808DashH6.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0808DashH6.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.OCE0808-H6" Four Corner Octal Character Encoding in Hinari 6 bit. @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotOCE0808DashH6 implements FourCornerDotCakePoint { +public enum FCDotOCE0808DashH6 implements FourCornerX18CakePoint { NXX_001, NXX_002, NXX_003, diff --git a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0864DashH9.java b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0864DashH9.java index 3ee3054..9bef4ee 100644 --- a/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0864DashH9.java +++ b/nx01-x4o-o2o/src/main/java/org/x4o/o2o/fc18/zero33/FCDotOCE0864DashH9.java @@ -23,7 +23,7 @@ package org.x4o.o2o.fc18.zero33; import org.x4o.o2o.fc18.FourCornerDotCake; -import org.x4o.o2o.fc18.FourCornerDotCakePoint; +import org.x4o.o2o.fc18.FourCornerX18CakePoint; /** * "FC.OCE0864-H9" Four Corner Octal Character Encoding in Hinari 9 bit. @@ -32,7 +32,7 @@ import org.x4o.o2o.fc18.FourCornerDotCakePoint; * @author Willem Cazander * @version 1.0 Dec 30, 2024 */ -public enum FCDotOCE0864DashH9 implements FourCornerDotCakePoint { +public enum FCDotOCE0864DashH9 implements FourCornerX18CakePoint { NXX_001, NXX_002, NXX_003, diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6Test.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6Test.java new file mode 100644 index 0000000..889c054 --- /dev/null +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotAPL1604DashS6Test.java @@ -0,0 +1,55 @@ +/* + * 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.o2o.fc18.zero33; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +/** + * Tests FCDotAPL1604DashS6 encoding. + * + * @author Willem Cazander + * @version 1.0 Jan 1, 2025 + */ +public class FCDotAPL1604DashS6Test { + + @Test + public void testValues() throws Exception { + Assertions.assertEquals(64, FCDotAPL1604DashS6.length()); + boolean duplicate = false; + Map global = new HashMap<>(); + for (FCDotAPL1604DashS6 v : FCDotAPL1604DashS6.values()) { + Assertions.assertNotNull(v); + if (global.containsKey(v.codePoint())) { + duplicate = true; + break; + } + global.put(v.codePoint(), v); + } + Assertions.assertTrue(global.size() > 1); + Assertions.assertFalse(duplicate, "Duplicate ascii core value detected"); + } +} diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6Test.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6Test.java new file mode 100644 index 0000000..024adab --- /dev/null +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotBYD1604DashC6Test.java @@ -0,0 +1,55 @@ +/* + * 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.o2o.fc18.zero33; + +import java.util.HashMap; +import java.util.Map; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +/** + * Tests FCDotBYD1604DashC6 encoding. + * + * @author Willem Cazander + * @version 1.0 Dec 30, 2024 + */ +public class FCDotBYD1604DashC6Test { + + @Test + public void testValues() throws Exception { + Assertions.assertEquals(64, FCDotBYD1604DashC6.length()); + boolean duplicate = false; + Map global = new HashMap<>(); + for (FCDotBYD1604DashC6 v : FCDotBYD1604DashC6.values()) { + Assertions.assertNotNull(v); + if (global.containsKey(v.codePoint())) { + duplicate = true; + break; + } + global.put(v.codePoint(), v); + } + Assertions.assertTrue(global.size() > 1); + Assertions.assertFalse(duplicate, "Duplicate ascii core value detected"); + } +} diff --git a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6Test.java b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6Test.java index 0873411..fd9428f 100644 --- a/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6Test.java +++ b/nx01-x4o-o2o/src/test/java/org/x4o/o2o/fc18/zero33/FCDotCDC1604DashP6Test.java @@ -40,14 +40,14 @@ public class FCDotCDC1604DashP6Test { public void testValues() throws Exception { Assertions.assertEquals(64, FCDotCDC1604DashP6.length()); boolean duplicate = false; - Map global = new HashMap<>(); + Map global = new HashMap<>(); for (FCDotCDC1604DashP6 v : FCDotCDC1604DashP6.values()) { Assertions.assertNotNull(v); - if (global.containsKey(v.asciiByte())) { + if (global.containsKey(v.codePoint())) { duplicate = true; break; } - global.put(v.asciiByte(), v); + global.put(v.codePoint(), v); } Assertions.assertTrue(global.size() > 1); Assertions.assertFalse(duplicate, "Duplicate ascii core value detected");