From 1d36a710718c846734bc8ebc4a0f8a284f6c964a Mon Sep 17 00:00:00 2001 From: Andreas Skyman <skymandr@fripost.org> Date: Sat, 6 Feb 2021 11:10:23 +0000 Subject: [PATCH] Added Colemak (UK) keyboard layout Detail: Added a new layout.ColemakUK Updated makefiles, and Source files with new target and dependency Added DrawFile describing the layout Admin: Tested on IOMDHAL under RPCEmu and BCM2835 on Pi 3B and 1. Version 1.00. Tagged as 'IntKey-1_00' --- GNUmakefile | 3 +- Layouts/ColemakUK,aff | Bin 0 -> 55924 bytes Makefile | 2 +- Source/IntKeyBody | 8 +- Source/IntKeyMod | 1 + Source/KeyStruct | 1 + VersionASM | 15 +- VersionNum | 24 +-- layout/ColemakUK | 482 ++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 509 insertions(+), 27 deletions(-) create mode 100644 Layouts/ColemakUK,aff create mode 100644 layout/ColemakUK diff --git a/GNUmakefile b/GNUmakefile index 8584a89..dd43437 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -37,7 +37,8 @@ NCCFLAGS = -I${APCSExportDir}/Lib -c -DUNIX LAYOUTS = UK.s Italy.s Spain.s France.s Germany.s Esperanto.s Greece.s \ Swed-Finl.s Denmark.s Norway.s Iceland.s Turkey.s Russia.s \ Israel.s LatinAm.s Belgium.s Netherlands.s Japan.s \ - Switzerland.s Wales.s USA.s DvorakUK.s DvorakUSA.s + Switzerland.s Wales.s USA.s DvorakUK.s DvorakUSA.s ColemakUK.s \ + Pandora.s ${ROM_OBJECT}: ${LAYOUTS} ${LAYOUTS}: keygen diff --git a/Layouts/ColemakUK,aff b/Layouts/ColemakUK,aff new file mode 100644 index 0000000000000000000000000000000000000000..90849f2bd1352321a81d6c78339ed9fc19262763 GIT binary patch literal 55924 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 Ldh#WC!0i74FX3Df literal 0 HcmV?d00001 diff --git a/Makefile b/Makefile index c60849c..27afd48 100644 --- a/Makefile +++ b/Makefile @@ -52,7 +52,7 @@ LAYOUTS = UK.s Italy.s Spain.s France.s Germany.s Esperanto.s Greece.s \ Swed-Finl.s Denmark.s Norway.s Iceland.s Turkey.s Russia.s \ Israel.s LatinAm.s Belgium.s Netherlands.s Japan.s \ Switzerland.s Wales.s USA.s Korea.s Korea2.s Taiwan.s \ - DvorakUK.s DvorakUSA.s Pandora.s + DvorakUK.s DvorakUSA.s ColemakUK.s Pandora.s ${ROM_OBJECT}: ${LAYOUTS} ${LAYOUTS}: keygen diff --git a/Source/IntKeyBody b/Source/IntKeyBody index 849adfd..cc69566 100644 --- a/Source/IntKeyBody +++ b/Source/IntKeyBody @@ -135,6 +135,7 @@ Country_ISO9 * 88 Country_DvorakUK * 70 Country_DvorakUSA * 71 +Country_ColemakUK * 72 MACRO IKT $A, $B, $C, $D, $E, $F, $G, $H @@ -380,7 +381,7 @@ A1Key_Die Entry ServiceTable ASSERT Service_Reset < Service_International - ASSERT Service_International < Service_KeyHandler + ASSERT Service_International < Service_KeyHandler DCD 0 ; flags DCD Service2 - Module_BaseAddr DCD Service_Reset @@ -495,7 +496,7 @@ SetUpKeyStructureAndHandlerIfUs Entry "r0,r1" BEQ %FT07 MOV r1, r0 MOV r0, #13 - SWI XOS_ReadSysInfo + SWI XOS_ReadSysInfo BVS %FT50 MOV r0, r1 07 @@ -782,6 +783,7 @@ IDDTable & 9944, Country_DvorakUK & 991, Country_DvorakUSA + & 19244, Country_ColemakUK ; 192 is &C0 & 1001, Country_ISO1 & 1002, Country_ISO2 @@ -1230,7 +1232,7 @@ FindFN ROUT ADD R3, R0, R8 TST R1, #KeyHandler_Flag_Wide BNE FindFNWide - + LDRB R8, [R3], #1 ; R8 = number of FN entries TEQ R8, #0 BEQ NoFN diff --git a/Source/IntKeyMod b/Source/IntKeyMod index 9754f89..c2af233 100644 --- a/Source/IntKeyMod +++ b/Source/IntKeyMod @@ -53,6 +53,7 @@ GetOther SETS "GET Swed-Finl.s" GET Taiwan.s GET DvorakUK.s GET DvorakUSA.s + GET ColemakUK.s GET Pandora.s ] END diff --git a/Source/KeyStruct b/Source/KeyStruct index 53db883..94c1c6e 100644 --- a/Source/KeyStruct +++ b/Source/KeyStruct @@ -45,6 +45,7 @@ KeyStructureTable_PC GetStruct Taiwan, PC, 54 GetStruct DvorakUK, PC, 70 GetStruct DvorakUSA, PC, 71 + GetStruct ColemakUK, PC, 72 DCD -1,KeyStructPC1-KeyStructureTable_PC diff --git a/VersionASM b/VersionASM index 9652932..3758b32 100644 --- a/VersionASM +++ b/VersionASM @@ -1,6 +1,5 @@ ; ; This file is automatically maintained by srccommit, do not edit manually. -; Last processed by srccommit version: 1.1. ; GBLS Module_MajorVersion GBLA Module_Version @@ -10,14 +9,12 @@ GBLS Module_ApplicationDate GBLS Module_HelpVersion GBLS Module_ComponentName - GBLS Module_ComponentPath -Module_MajorVersion SETS "0.99" -Module_Version SETA 99 +Module_MajorVersion SETS "1.00" +Module_Version SETA 100 Module_MinorVersion SETS "" -Module_Date SETS "21 Jan 2018" -Module_ApplicationDate SETS "21-Jan-18" +Module_Date SETS "06 Feb 2021" +Module_ApplicationDate SETS "06-Feb-21" Module_ComponentName SETS "IntKey" -Module_ComponentPath SETS "castle/RiscOS/Sources/Internat/IntKey" -Module_FullVersion SETS "0.99" -Module_HelpVersion SETS "0.99 (21 Jan 2018)" +Module_FullVersion SETS "1.00" +Module_HelpVersion SETS "1.00 (06 Feb 2021)" END diff --git a/VersionNum b/VersionNum index 9a18ca8..f6807c5 100644 --- a/VersionNum +++ b/VersionNum @@ -1,23 +1,21 @@ -/* (0.99) +/* (1.00) * * This file is automatically maintained by srccommit, do not edit manually. - * Last processed by srccommit version: 1.1. * */ -#define Module_MajorVersion_CMHG 0.99 -#define Module_MinorVersion_CMHG -#define Module_Date_CMHG 21 Jan 2018 +#define Module_MajorVersion_CMHG 1.00 +#define Module_MinorVersion_CMHG +#define Module_Date_CMHG 06 Feb 2021 -#define Module_MajorVersion "0.99" -#define Module_Version 99 +#define Module_MajorVersion "1.00" +#define Module_Version 100 #define Module_MinorVersion "" -#define Module_Date "21 Jan 2018" +#define Module_Date "06 Feb 2021" -#define Module_ApplicationDate "21-Jan-18" +#define Module_ApplicationDate "06-Feb-21" #define Module_ComponentName "IntKey" -#define Module_ComponentPath "castle/RiscOS/Sources/Internat/IntKey" -#define Module_FullVersion "0.99" -#define Module_HelpVersion "0.99 (21 Jan 2018)" -#define Module_LibraryVersionInfo "0:99" +#define Module_FullVersion "1.00" +#define Module_HelpVersion "1.00 (06 Feb 2021)" +#define Module_LibraryVersionInfo "1:0" diff --git a/layout/ColemakUK b/layout/ColemakUK new file mode 100644 index 0000000..698e649 --- /dev/null +++ b/layout/ColemakUK @@ -0,0 +1,482 @@ +# Layout originally converted by keyconvert +# +# Default alphabet: Latin1 +# Extra key 1D not fitted +# Extra key 4D fitted +# Extra key 6E not fitted +# Enter key in UK position +# +# 1D tweaked to match 4D + +$Country 72 + +$Layer 0 + +%Include inc.Invariant + +10 +GRAVE ACCENT +NOT SIGN +- +- +VERTICAL LINE +BROKEN BAR +- +- +11 +DIGIT ONE +EXCLAMATION MARK +FUNCTION KEY CTRL-A +FUNCTION KEY CTRL-A +INVERTED EXCLAMATION MARK +SUPERSCRIPT ONE +- +- +12 +DIGIT TWO +QUOTATION MARK +FUNCTION KEY CTRL-B +FUNCTION KEY CTRL-B +SUPERSCRIPT TWO +DOUBLE LOW-9 QUOTATION MARK +- +- +13 +DIGIT THREE +POUND SIGN +FUNCTION KEY CTRL-C +FUNCTION KEY CTRL-C +SUPERSCRIPT THREE +CURRENCY SIGN +- +- +14 +DIGIT FOUR +DOLLAR SIGN +FUNCTION KEY CTRL-D +FUNCTION KEY CTRL-D +EURO SIGN +PER MILLE SIGN +- +- +15 +DIGIT FIVE +PERCENT SIGN +FUNCTION KEY CTRL-E +FUNCTION KEY CTRL-E +EURO SIGN +YEN SIGN +- +- +16 +DIGIT SIX +CIRCUMFLEX ACCENT +FUNCTION KEY CTRL-^ +FUNCTION KEY CTRL-^ +{LATIN SMALL LETTER H WITH STROKE +}LATIN CAPITAL LETTER H WITH STROKE +- +- +17 +DIGIT SEVEN +AMPERSAND +FUNCTION KEY CTRL-G +FUNCTION KEY CTRL-G +{LATIN SMALL LETTER ETH +}LATIN CAPITAL LETTER ETH +- +- +18 +DIGIT EIGHT +ASTERISK +FUNCTION KEY CTRL-H +FUNCTION KEY CTRL-H +{LATIN SMALL LETTER THORN +}LATIN CAPITAL LETTER THORN +- +- +19 +DIGIT NINE +LEFT PARENTHESIS +FUNCTION KEY CTRL-I +FUNCTION KEY CTRL-I +LEFT SINGLE QUOTATION MARK +LEFT DOUBLE QUOTATION MARK +- +- +1A +DIGIT ZERO +RIGHT PARENTHESIS +FUNCTION KEY CTRL-@ +FUNCTION KEY CTRL-@ +RIGHT SINGLE QUOTATION MARK +RIGHT DOUBLE QUOTATION MARK +- +- +1B +HYPHEN-MINUS +LOW LINE +FUNCTION KEY CTRL-_ +FUNCTION KEY CTRL-_ +EN DASH +EM DASH +- +- +1C +EQUALS SIGN +PLUS SIGN +- +- +MULTIPLICATION SIGN +DIVISION SIGN +- +- +1D +REVERSE SOLIDUS +VERTICAL LINE +FUNCTION KEY CTRL-\ +FUNCTION KEY CTRL-\ +MIDDLE DOT +- +- +- +27 +[LATIN SMALL LETTER Q +]LATIN CAPITAL LETTER Q +FUNCTION KEY CTRL-Q +FUNCTION KEY CTRL-Q +{LATIN SMALL LETTER A WITH DIAERESIS +}LATIN CAPITAL LETTER A WITH DIAERESIS +- +- +28 +[LATIN SMALL LETTER W +]LATIN CAPITAL LETTER W +FUNCTION KEY CTRL-W +FUNCTION KEY CTRL-W +{LATIN SMALL LETTER A WITH RING ABOVE +}LATIN CAPITAL LETTER A WITH RING ABOVE +- +- +29 +[LATIN SMALL LETTER F +]LATIN CAPITAL LETTER F +FUNCTION KEY CTRL-F +FUNCTION KEY CTRL-F +{LATIN SMALL LETTER A WITH TILDE +}LATIN CAPITAL LETTER A WITH TILDE +- +- +2A +[LATIN SMALL LETTER P +]LATIN CAPITAL LETTER P +FUNCTION KEY CTRL-P +FUNCTION KEY CTRL-P +{LATIN SMALL LETTER O WITH STROKE +}LATIN CAPITAL LETTER O WITH STROKE +- +- +2B +[LATIN SMALL LETTER G +]LATIN CAPITAL LETTER G +FUNCTION KEY CTRL-G +FUNCTION KEY CTRL-G +DEAD KEY OGONEK +DEAD KEY TILDE +- +- +2C +[LATIN SMALL LETTER J +]LATIN CAPITAL LETTER J +FUNCTION KEY CTRL-J +FUNCTION KEY CTRL-J +{LATIN SMALL LETTER D WITH STROKE +}LATIN CAPITAL LETTER D WITH STROKE +- +- +2D +[LATIN SMALL LETTER L +]LATIN CAPITAL LETTER L +FUNCTION KEY CTRL-L +FUNCTION KEY CTRL-L +{LATIN SMALL LETTER L WITH STROKE +}LATIN CAPITAL LETTER L WITH STROKE +- +- +2E +[LATIN SMALL LETTER U +]LATIN CAPITAL LETTER U +FUNCTION KEY CTRL-U +FUNCTION KEY CTRL-U +{LATIN SMALL LETTER U WITH ACUTE +}LATIN CAPITAL LETTER U WITH ACUTE +- +- +2F +[LATIN SMALL LETTER Y +]LATIN CAPITAL LETTER Y +FUNCTION KEY CTRL-Y +FUNCTION KEY CTRL-Y +{LATIN SMALL LETTER U WITH DIAERESIS +}LATIN CAPITAL LETTER U WITH DIAERESIS +- +- +30 +SEMICOLON +COLON +- +- +{LATIN SMALL LETTER O WITH DIAERESIS +}LATIN CAPITAL LETTER O WITH DIAERESIS +- +- +31 +LEFT SQUARE BRACKET +LEFT CURLY BRACKET +FUNCTION KEY CTRL-[ +FUNCTION KEY CTRL-[ +LEFT-POINTING DOUBLE ANGLE QUOTATION MARK +SINGLE LEFT-POINTING ANGLE QUOTATION MARK +- +- +32 +RIGHT SQUARE BRACKET +RIGHT CURLY BRACKET +FUNCTION KEY CTRL-] +FUNCTION KEY CTRL-] +RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK +SINGLE RIGHT-POINTING ANGLE QUOTATION MARK +- +- +33 +NUMBER SIGN +TILDE +- +- +DEAD KEY GRAVE ACCENT +DEAD KEY BREVE +- +- +3C +[LATIN SMALL LETTER A +]LATIN CAPITAL LETTER A +FUNCTION KEY CTRL-A +FUNCTION KEY CTRL-A +{LATIN SMALL LETTER A WITH ACUTE +}LATIN CAPITAL LETTER A WITH ACUTE +- +- +3D +[LATIN SMALL LETTER R +]LATIN CAPITAL LETTER R +FUNCTION KEY CTRL-R +FUNCTION KEY CTRL-R +DEAD KEY GRAVE ACCENT +REGISTERED SIGN +- +- +3E +[LATIN SMALL LETTER S +]LATIN CAPITAL LETTER S +FUNCTION KEY CTRL-S +FUNCTION KEY CTRL-S +LATIN SMALL LETTER SHARP S +SECTION SIGN +- +- +3F +[LATIN SMALL LETTER T +]LATIN CAPITAL LETTER T +FUNCTION KEY CTRL-T +FUNCTION KEY CTRL-T +DEAD KEY ACUTE ACCENT +- +- +- +40 +[LATIN SMALL LETTER D +]LATIN CAPITAL LETTER D +FUNCTION KEY CTRL-D +FUNCTION KEY CTRL-D +DEAD KEY DIAERESIS +HORIZONTAL ELLIPSIS +- +- +41 +[LATIN SMALL LETTER H +]LATIN CAPITAL LETTER H +FUNCTION KEY CTRL-H +FUNCTION KEY CTRL-H +DEAD KEY CARON +TILDE +- +- +42 +[LATIN SMALL LETTER N +]LATIN CAPITAL LETTER N +FUNCTION KEY CTRL-N +FUNCTION KEY CTRL-N +{LATIN SMALL LETTER N WITH TILDE +}LATIN CAPITAL LETTER N WITH TILDE +- +- +43 +[LATIN SMALL LETTER E +]LATIN CAPITAL LETTER E +FUNCTION KEY CTRL-E +FUNCTION KEY CTRL-E +{LATIN SMALL LETTER E WITH ACUTE +}LATIN CAPITAL LETTER E WITH ACUTE +- +- +44 +[LATIN SMALL LETTER I +]LATIN CAPITAL LETTER I +FUNCTION KEY CTRL-I +FUNCTION KEY CTRL-I +{LATIN SMALL LETTER I WITH ACUTE +}LATIN CAPITAL LETTER I WITH ACUTE +- +- +45 +[LATIN SMALL LETTER O +]LATIN CAPITAL LETTER O +FUNCTION KEY CTRL-O +FUNCTION KEY CTRL-O +{LATIN SMALL LETTER O WITH ACUTE +}LATIN CAPITAL LETTER O WITH ACUTE +- +- +46 +APOSTROPHE +COMMERCIAL AT +FUNCTION KEY CTRL-@ +FUNCTION KEY CTRL-@ +DEAD KEY CIRCUMFLEX ACCENT +DEAD KEY CARON +- +- +4D +REVERSE SOLIDUS +VERTICAL LINE +FUNCTION KEY CTRL-\ +FUNCTION KEY CTRL-\ +MIDDLE DOT +BROKEN BAR +- +- +4E +[LATIN SMALL LETTER Z +]LATIN CAPITAL LETTER Z +FUNCTION KEY CTRL-Z +FUNCTION KEY CTRL-Z +{LATIN SMALL LETTER AE +}LATIN CAPITAL LETTER AE +- +- +4F +[LATIN SMALL LETTER X +]LATIN CAPITAL LETTER X +FUNCTION KEY CTRL-X +FUNCTION KEY CTRL-X +DEAD KEY CIRCUMFLEX ACCENT +DEAD KEY CARON +- +- +50 +[LATIN SMALL LETTER C +]LATIN CAPITAL LETTER C +FUNCTION KEY CTRL-C +FUNCTION KEY CTRL-C +{LATIN SMALL LETTER C WITH CEDILLA +}LATIN CAPITAL LETTER C WITH CEDILLA +- +- +51 +[LATIN SMALL LETTER V +]LATIN CAPITAL LETTER V +FUNCTION KEY CTRL-V +FUNCTION KEY CTRL-V +{LATIN SMALL LIGATURE OE +}LATIN CAPITAL LIGATURE OE +- +- +52 +[LATIN SMALL LETTER B +]LATIN CAPITAL LETTER B +FUNCTION KEY CTRL-B +FUNCTION KEY CTRL-B +DEAD KEY BREVE +TILDE +- +- +53 +[LATIN SMALL LETTER K +]LATIN CAPITAL LETTER K +FUNCTION KEY CTRL-K +FUNCTION KEY CTRL-K +DEAD KEY RING ABOVE +DEGREE SIGN +- +- +54 +[LATIN SMALL LETTER M +]LATIN CAPITAL LETTER M +FUNCTION KEY CTRL-M +FUNCTION KEY CTRL-M +DEAD KEY MACRON +MICRO SIGN +- +- +55 +COMMA +LESS-THAN SIGN +- +- +DEAD KEY CEDILLA +DEAD KEY TILDE +- +- +56 +FULL STOP +GREATER-THAN SIGN +- +- +DEAD KEY DOT ABOVE +HORIZONTAL ELLIPSIS +- +- +57 +SOLIDUS +QUESTION MARK +- +- +INVERTED QUESTION MARK +TILDE +- +- +5F +SPACE +SPACE +SPACE +SPACE +NO-BREAK SPACE +NO-BREAK SPACE +- +- +# Remap Caps Lock to Backspace +5D +FUNCTION KEY BACKSPACE +FUNCTION KEY DELETE +- +- +SPECIAL KEY CAPS LOCK +SPECIAL KEY SHIFT-CAPS LOCK +- +- + +%Include @ExtraKeys@ + +$EndLayer + +%Include @FNKey@ -- GitLab