br Julian Griffin OSL
  | 
 
	  | : | 
	 
	
	  c ╔═════════════════════════════════════════════════════════════════╗
 
c ║              The Phonic Alphabet (TPA) Keyboard.                ║
 
c ╚═════════════════════════════════════════════════════════════════╝
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ This keyboard provides a complete set of TPA markups and graphemes.
 
c │ Simple markups are entered by pressing these keys twice after Latin Letter:
 
c │    )   For a Arch.                NB Press twice after a double letter grapheme.
 
c │    _   For a Bar.                 NB Press twice after a single vowel or double letter grapheme.
 
c │    *   For a Silent 'x'.          NB Press twice after a Latin letter.
 
c │    _   For a Grapheme input Mode. NB Use at the start of a Page, Line, or Cell.
 
c │    =   For a Superscript Overlay. NB Press twice after a Latin letter to strick it out.
 
c │        . . . . . . . . . . . . . . . Press Once  between two Latin letters to Strickout and add phonic clue.
 
c │    `   For a Shwa '`'.            NB Press twice after a single or double letter vowel.
 
c │    ^   For a low pointer.         NB Not part of TPA, but can be useful to identify a letter.
 
c │
 
c │ The TPA Keyboard is designed to work seamlessly with the TPA fonts.
 
c │ Fonts without the Unicode TPA Private Use Area will function but will be unable to access the TPA graphemes.
 
c │
 
c │ Contact ThePhonicAlphabet.uk for the latest imformation.
 
c ╘══════════════════════════════════════════════════════════════════
 
 
c Documentation Builder DRAFT.
 
c Default mode is MuM. These are the symbols that are valid in this mode.
 
c . All Letter, Punctuation, symbol, or Number is valid in this mode.
 
c . a,      e,  i,      o, oo,             sh, th, u   + __ ↔ A_,     E_, I_,     O_, oo_,             sh_, th_ U_
 
c . ar, ch, er, ir, ng, oo,    or, ow, oy, sh, th, ur, + )) ↔ ar, ch, er, ir, ng, oo,      or, ow, oy, sh,  th, ur
 
c . Any Latin letter                                   + ** ↔ Cross 'x' above Latin letter for Silent letters.
 
c . Any Latin letter                                   + == ↔ Latin letter struckout.
 
c . Any Latin letter + '=' + TPA Grapheme                   ↔ Latin letter struckout + Superscript TPA phonic clue above.
 
c . Any Latin vowel or 2 Latin vowels                  + `` ↔ Latin vowel(s) + Shwa '`'
 
c . Any Latin letter                                   + ^^ ↔ Latin letter with an upwards arrow below the letter.
 
c .
 
c . GiM: '_' at the beginning of a: Page, Line, Cell, will start Grapheme input Mode (GiM).
 
c . In this mode the only valid keys are 'a' to 'z', '-', & Space.
 
c . However, if selecting graphemes from a menu, numbers upto and including the options can be used.
 
c .    NB Numbers do not for any part of a TPA Construction!
 
c . When GiM is active and no Graphemes entered,  a second '_', Esc, or Enter; will close GiM.
 
c . When GiM is active and Graphemes are entered:
 
c .    a second '_', Tab, or Enter; will keep TPA construction & close GiM.
 
c .    a Space  ' ' will be added to the TPA construction. Only one if valid.
 
c .    a Hyphen '-' will be added to the TPA construction. Only one if valid.
 
c .       If Space or Hypen is entered after one another, they will switch from ' '  ↔  '-'.
 
c .
 
c . When GiM is active and Graphemes are entered:
 
c .    Del will delete the entire TPA Construction; upto 31 graphemes long. A second Del is an error.
 
c .    Esc will delete the entire TPA Construction; upto 31 graphemes long. A second Esc will close GiM.
 
c .
 
c . Menus display a list of opptions for grapheme selection. They only accept numbers upto the number of options.
 
c .    And no other keys are valid.
 
c .
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ There are a number of blocks in the keyboard definition like this one.         ▌
 
c ▐ They hold issues that require resolution before TPA Keyboard can be published. ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ The TPA keyboard definition consists of Six main sections:
 
c │    1. Header                    – Global settings and configuration.
 
c │    2. Flag definitions          - Used in the keyboard definition.
 
c │    3. Menu Handler              – Looks after all menu functionality.
 
c │    4. Grapheme input Mode (GiM) – Controls TPA construction input.
 
c │    5. MarkUp Mode         (MuM) – Enables TPA markup of standard Latin text.
 
c │    6. Constants definition      – Holds all the stored constants used in the keyboard definition.
 
c │
 
c │ Processing train is: Menu Handler -> GiM -> MuM.
 
c ╘══════════════════════════════════════════════════════════════════
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ TPA Keyboard Header Settings
 
    Store(&VERSION)          '9.0'
 
    Store(&Name)             'TPA Keyboard'
 
    Store(©RIGHT)        '©The Phonic Alphabet 2016'
 
    Store(&KEYBOARDVERSION) '3.001'
 
store(&LANGUAGE) 'x0809'
 
store(&WINDOWSLANGUAGES) 'x0809'
 
    Store(ÐNOLOGUECODE)   'Eng'
 
    Store(&MESSAGE)          'This keyboard is freely redistributable.'
 
store(&BITMAP) 'TPA 2.000.ico'
 
    Store(&MnemonicLayout)   '1' c Make keyboard independent of user's keyboard layout.
 
c ╘══════════════════════════════════════════════════════════════════
 
 
c ╔═════════════════════════════════════════════════════════════════╗
 
c ║ All the Flags the keybpoard definition uses.                    ║
 
c ╚═════════════════════════════════════════════════════════════════╝
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ The 'GiMFlag' indicates if the Grapheme input Mode (GiM) is active.
 
c │    If 'OFF' (Default) Normal Latin Text and TPA Markup is in active.
 
c │    If 'On'  TPA GiM is in use, so only a very limited set of keys are valid.
 
c └──────────────────────────────────────────────────────────────────
 
    Store(GiMFlag) 'Off' c Normal Latin Text - Recommended.
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ The 'ManuFlag' indicates if menus are used for grapheme selcetion.
 
c │    If 'Yes' (Default) Menus & modifiers are used to enter graphemes.
 
c │    If 'No'  Only modifiers are used to enter graphemes, for skilled users.
 
c └──────────────────────────────────────────────────────────────────
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ THIS IS A BODGE UNTIL CONFIGUATION CODE CAN ADDED.              ▌
 
    Store(MenuFlag) 'No' c 'Yes' or 'No'; Yes is the default.      ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c ╔═════════════════════════════════════════════════════════════════╗
 
    Begin Unicode > Use(MenuHandler)                              c ║
 
c ╚═════════════════════════════════════════════════════════════════╝
 
 
Group(MenuHandler) c Context Only
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ Check if one of the menus active.
 
c │   If so, jump to the appropriate Menu Handler Group.
 
c │   If not, pass processing to (GiM).
 
c ├──────────────────────────────────────────────────────────────────
 
c │ This Group is only called by the UStoUK Group.
 
c └──────────────────────────────────────────────────────────────────
 
    Outs(a_Menu) > Use(a_Menu)
 
    Outs(c_Menu) > Use(c_Menu)
 
    Outs(e_Menu) > Use(e_Menu)
 
    Outs(i_Menu) > Use(i_Menu)
 
    Outs(n_Menu) > Use(n_Menu)
 
    Outs(o_Menu) > Use(o_Menu)
 
    Outs(s_Menu) > Use(s_Menu)
 
    Outs(t_Menu) > Use(t_Menu)
 
    Outs(u_Menu) > Use(u_Menu)
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ If no menu is in the Context, pass processing to the GiM group.
 
    Nomatch > Use(GiM)
 
 
c │ End of MenuHandler
 
c └─────────────────────────────────────────────────────────────────┘
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ All the Groups below, a_Menu ... to ... u_Menu, are the menu handlers
 
c │   For each Latin letter that has a menu: a, c, e, i, n, o, s, t, & u.
 
c │ These Groups list the options for the user to select the appropriate grapheme.
 
c ├──────────────────────────────────────────────────────────────────
 
c │ Each Group performs the same set of actiones for each menu but for a different Latin letter.
 
c │   1   If GiMFlag is Off:  Output the grapheme,
 
c │       then call the Collapse Group, to collapse the text and create the TPA clue (superscript) markup.
 
c │   1.1 If [K_BKSP] or [K_ESC] is pressed, the menu is cancelled.
 
c │       The 'nul' absorbs the Backspace key to stop it deleting the character to the left of the menu.
 
c │
 
c │   2   If GiMFlag is On: Output the grapheme, the TPAglue, and the TPAcursor symbol.
 
c │   2.1 If [K_BKSP] or [K_ESC] is pressed, the menu is cancelled and TPA cursor is replaced.
 
c │
 
c │   3   If an invalid choice is made, call Group(MenuErrHandler).
 
c ├──────────────────────────────────────────────────────────────────
 
c │ These Groups are only called from the MenuHandler Group.
 
c └──────────────────────────────────────────────────────────────────
 
Group(a_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices3)   > Index(a_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices3)   > Index(a_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(a_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(a_err) Use(MenuErrHandler)
 
    Nomatch              > dk(a_err) Use(MenuErrHandler)
 
c ├─────────────────────────────────────────────────────────────────┤
 
Group(c_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices3)   > Index(c_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices3)   > Index(c_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(c_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(c_err) Use(MenuErrHandler)
 
    Nomatch              > dk(c_err) Use(MenuErrHandler)
 
c ├─────────────────────────────────────────────────────────────────┤
 
Group(e_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices3)   > Index(e_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices3)   > Index(e_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(e_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(e_err) Use(MenuErrHandler)
 
    Nomatch              > dk(e_err) Use(MenuErrHandler)
 
c ├─────────────────────────────────────────────────────────────────┤
 
Group(i_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices3)   > Index(i_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices3)   > Index(i_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(i_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(i_err) Use(MenuErrHandler)
 
    Nomatch              > dk(i_err) Use(MenuErrHandler)
 
c ├─────────────────────────────────────────────────────────────────┤
 
Group(n_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices2)   > Index(n_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices2)   > Index(n_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(n_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(n_err) Use(MenuErrHandler)
 
    Nomatch              > dk(n_err) Use(MenuErrHandler)
 
c ├─────────────────────────────────────────────────────────────────┤
 
Group(o_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices7)   > Index(o_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices7)   > Index(o_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(o_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(o_err) Use(MenuErrHandler)
 
    Nomatch              > dk(o_err) Use(MenuErrHandler)
 
c ├─────────────────────────────────────────────────────────────────┤
 
Group(s_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices3)   > Index(s_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices3)   > Index(s_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(s_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(s_err) Use(MenuErrHandler)
 
    Nomatch              > dk(s_err) Use(MenuErrHandler)
 
c ├─────────────────────────────────────────────────────────────────┤
 
Group(t_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices3)   > Index(t_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices3)   > Index(t_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(t_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(t_err) Use(MenuErrHandler)
 
    Nomatch              > dk(t_err) Use(MenuErrHandler)
 
c ├─────────────────────────────────────────────────────────────────┤
 
Group(u_Menu) using keys
 
    If(GiMFlag = 'Off') + Any(Choices3)   > Index(u_Char, 2) Use(Collapse)
 
    If(GiMFlag = 'On' ) + Any(Choices3)   > Index(u_Char, 2) $TPAglue $TPAcursor
 
    If(GiMFlag = 'Off') + Any(MenuCancel) > nul
 
    If(GiMFlag = 'On' ) + Any(MenuCancel) > $TPAcursor
 
 
    + Any(TextEffectors) > dk(u_err) Use(MenuErrHandler)
 
    + Any(CursorKeys)    > dk(u_err) Use(MenuErrHandler)
 
    Nomatch              > dk(u_err) Use(MenuErrHandler)
 
 
c │ End of the menu handler Groups
 
c └─────────────────────────────────────────────────────────────────┘
 
 
Group(Collapse) c Context Only
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ Convert the Latin text (eg a=b) to the Latin letter that has the
 
c │    TPA strickout & TPA superscript clue graphemes coprrectly positioned.
 
c ├──────────────────────────────────────────────────────────────────
 
c │ This Group is only called from the menu handler Groups; a_Menu ... to ... u_Menu.
 
c └──────────────────────────────────────────────────────────────────
 
c _ a, a_, ar, b, ch, d
 
    Any(LatinLetter) $StrickoutKey U+F001 > Context(1) Index(Strickout,1) Index(Sup_a,1)   c │ a
 
    Any(LatinLetter) $StrickoutKey U+F002 > Context(1) Index(Strickout,1) Index(Sup_A_,1)  c │ A_
 
    Any(LatinLetter) $StrickoutKey U+F003 > Context(1) Index(Strickout,1) Index(Sup_ar,1)  c │ ar
 
    Any(LatinLetter) $StrickoutKey U+F004 > Context(1) Index(Strickout,1) Index(Sup_b,1)   c │ b
 
    Any(LatinLetter) $StrickoutKey U+F006 > Context(1) Index(Strickout,1) Index(Sup_ch,1)  c │ ch 
 
    Any(LatinLetter) $StrickoutKey U+F007 > Context(1) Index(Strickout,1) Index(Sup_d,1)   c │ d
 
c _ e, e_, er, f, g, h
 
    Any(LatinLetter) $StrickoutKey U+F008 > Context(1) Index(Strickout,1) Index(Sup_e,1)   c │ e
 
    Any(LatinLetter) $StrickoutKey U+F009 > Context(1) Index(Strickout,1) Index(Sup_E_,1)  c │ E_
 
    Any(LatinLetter) $StrickoutKey U+F010 > Context(1) Index(Strickout,1) Index(Sup_er,1)  c │ er
 
    Any(LatinLetter) $StrickoutKey U+F011 > Context(1) Index(Strickout,1) Index(Sup_f,1)   c │ f
 
    Any(LatinLetter) $StrickoutKey U+F012 > Context(1) Index(Strickout,1) Index(Sup_g,1)   c │ g
 
    Any(LatinLetter) $StrickoutKey U+F013 > Context(1) Index(Strickout,1) Index(Sup_h,1)   c │ h
 
c _ i, i_, ir, j, k, l, m, n, ng
 
    Any(LatinLetter) $StrickoutKey U+F014 > Context(1) Index(Strickout,1) Index(Sup_i,1)   c │ i
 
    Any(LatinLetter) $StrickoutKey U+F015 > Context(1) Index(Strickout,1) Index(Sup_I_,1)  c │ I_
 
    Any(LatinLetter) $StrickoutKey U+F016 > Context(1) Index(Strickout,1) Index(Sup_ir,1)  c │ ir
 
    Any(LatinLetter) $StrickoutKey U+F017 > Context(1) Index(Strickout,1) Index(Sup_j,1)   c │ j
 
    Any(LatinLetter) $StrickoutKey U+F018 > Context(1) Index(Strickout,1) Index(Sup_k,1)   c │ k
 
    Any(LatinLetter) $StrickoutKey U+F019 > Context(1) Index(Strickout,1) Index(Sup_l,1)   c │ l
 
    Any(LatinLetter) $StrickoutKey U+F020 > Context(1) Index(Strickout,1) Index(Sup_m,1)   c │ m
 
    Any(LatinLetter) $StrickoutKey U+F021 > Context(1) Index(Strickout,1) Index(Sup_n,1)   c │ n
 
    Any(LatinLetter) $StrickoutKey U+F022 > Context(1) Index(Strickout,1) Index(Sup_ng,1)  c │ ng
 
c _ o, o_, oo, oo_, or, ow, oy
 
    Any(LatinLetter) $StrickoutKey U+F023 > Context(1) Index(Strickout,1) Index(Sup_o,1)   c │ o
 
    Any(LatinLetter) $StrickoutKey U+F024 > Context(1) Index(Strickout,1) Index(Sup_O_,1)  c │ O_
 
    Any(LatinLetter) $StrickoutKey U+F025 > Context(1) Index(Strickout,1) Index(Sup_oo,1)  c │ oo
 
    Any(LatinLetter) $StrickoutKey U+F026 > Context(1) Index(Strickout,1) Index(Sup_oo_,1) c │ oo_
 
    Any(LatinLetter) $StrickoutKey U+F027 > Context(1) Index(Strickout,1) Index(Sup_or,1)  c │ or
 
    Any(LatinLetter) $StrickoutKey U+F028 > Context(1) Index(Strickout,1) Index(Sup_ow,1)  c │ ow
 
    Any(LatinLetter) $StrickoutKey U+F029 > Context(1) Index(Strickout,1) Index(Sup_oy,1)  c │ oy 
 
c _ p, q, r, s, sh, sh_, t th, th_
 
    Any(LatinLetter) $StrickoutKey U+F030 > Context(1) Index(Strickout,1) Index(Sup_p,1)   c │ p
 
    Any(LatinLetter) $StrickoutKey U+F031 > Context(1) Index(Strickout,1) Index(Sup_q,1)   c │ q
 
    Any(LatinLetter) $StrickoutKey U+F032 > Context(1) Index(Strickout,1) Index(Sup_r,1)   c │ r
 
    Any(LatinLetter) $StrickoutKey U+F033 > Context(1) Index(Strickout,1) Index(Sup_s,1)   c │ s
 
    Any(LatinLetter) $StrickoutKey U+F034 > Context(1) Index(Strickout,1) Index(Sup_sh,1)  c │ sh 
 
    Any(LatinLetter) $StrickoutKey U+F035 > Context(1) Index(Strickout,1) Index(Sup_sh_,1) c │ sh_  
 
    Any(LatinLetter) $StrickoutKey U+F036 > Context(1) Index(Strickout,1) Index(Sup_t,1)   c │ t
 
    Any(LatinLetter) $StrickoutKey U+F037 > Context(1) Index(Strickout,1) Index(Sup_th,1)  c │ th 
 
    Any(LatinLetter) $StrickoutKey U+F038 > Context(1) Index(Strickout,1) Index(Sup_th_,1) c │ th_
 
c _ u, u_, ur, v, w, x, y, z
 
    Any(LatinLetter) $StrickoutKey U+F039 > Context(1) Index(Strickout,1) Index(Sup_u,1)   c │ u
 
    Any(LatinLetter) $StrickoutKey U+F040 > Context(1) Index(Strickout,1) Index(Sup_U_,1)  c │ u_
 
    Any(LatinLetter) $StrickoutKey U+F041 > Context(1) Index(Strickout,1) Index(Sup_ur,1)  c │ ur 
 
    Any(LatinLetter) $StrickoutKey U+F042 > Context(1) Index(Strickout,1) Index(Sup_v,1)   c │ v
 
    Any(LatinLetter) $StrickoutKey U+F043 > Context(1) Index(Strickout,1) Index(Sup_w,1)   c │ w
 
    Any(LatinLetter) $StrickoutKey U+F044 > Context(1) Index(Strickout,1) Index(Sup_x,1)   c │ x
 
    Any(LatinLetter) $StrickoutKey U+F045 > Context(1) Index(Strickout,1) Index(Sup_y,1)   c │ y
 
    Any(LatinLetter) $StrickoutKey U+F046 > Context(1) Index(Strickout,1) Index(Sup_z,1)   c │ z
 
 
c │ End of Collapse
 
c └─────────────────────────────────────────────────────────────────┘
 
 
Group(MenuErrHandler) c Context Only
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ MenuErrHandler matches error markers to redisplay the appropriate
 
c │ menu and Beep to signal an error.
 
c ├──────────────────────────────────────────────────────────────────
 
c │ This Group is only called from the menu handler Groups; a_Menu ... to ... u_Menu.
 
c └──────────────────────────────────────────────────────────────────
 
    dk(a_err) > Outs(a_Menu) Beep
 
    dk(c_err) > Outs(c_Menu) Beep
 
    dk(e_err) > Outs(e_Menu) Beep
 
    dk(i_err) > Outs(i_Menu) Beep
 
    dk(n_err) > Outs(n_Menu) Beep
 
    dk(o_err) > Outs(o_Menu) Beep
 
    dk(s_err) > Outs(s_Menu) Beep
 
    dk(t_err) > Outs(t_Menu) Beep
 
    dk(u_err) > Outs(u_Menu) Beep
 
 
c │ End of MenuErrHandler
 
c └─────────────────────────────────────────────────────────────────┘
 
c Processing complete, return to listening for a key press.
 
 
c □■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□
 
Group(GiM) Using Keys
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ If user wishe to enter a TPA Construction, Grapheme input Mode (GiM) needs to be started.
 
c │ If Grapheme Key pressed at the start of Page, Line, or Cell, Set GiMFlag flag to 'Yes'.
 
c │
 
c │ If GiMFlag is active,     Process all keys in relation to GiM requirements.
 
c │ If GiMFlag is not active, Pass processing to the MuM Group.
 
c ├──────────────────────────────────────────────────────────────────
 
c │ This Group is called from the MenuHandler Group.
 
c └──────────────────────────────────────────────────────────────────
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ Initiate TPA Grapheme input Mode (GiM).
 
    nul + $GrahemeKey > $TPAcursor Set(GiMFlag = 'On')
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ The 'nul' in the Rule above does not fire at the start of a     ▌
 
c ▐ line. It does fire at the start of a Page or Cell in Word 2007. ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ If GiM is not active pass processing to MuM.
 
    If(GiMFlag  = 'Off') + Any(AllGlyphs) > Use(MuM)
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ NB The following Rules are only used when the GiMFlag flag is 'Yes'
 
c │ Although the GiMFlag could be tested in each Rule. This would be essentially
 
c │    superfluous as the: TPA Graphemes, Glue, Space, & Hypen only ever
 
c │    appear to the left of the text cursor when in Grapheme input Mode (GiM).
 
c │    To test both the flag and these symbols would be a tautology;
 
c │    and having these keys in the context allows them to be easily deleted as needed.
 
c └──────────────────────────────────────────────────────────────────
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ However, Esc does not work as expected.                                  ▌
 
c ▐   If(GiMFlag = 'On') + nul $TPAcursor + [K_ESC]   > Set(GiMFlag = 'Off') ▌
 
c ▐ But the line below does work.                                            ▌
 
c ▐   If(GiMFlag = 'On') + nul $TPAcursor + [K_ENTER] > Set(GiMFlag = 'Off') ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Close GiM; if no graphemes entered; remove TPA Cursor and set GiMFlag 'Off'.
 
    nul $TPAcursor + $GrahemeKey > Set(GiMFlag = 'Off')
 
    nul $TPAcursor + [K_ESC]     > Set(GiMFlag = 'Off')
 
    nul $TPAcursor + [K_ENTER]   > Set(GiMFlag = 'Off')
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Close GiM; keep TPA Construction, Clean out Glue & Cursor, and set GiMFlag 'Off'.
 
    Any(TPApunctuation) $TPAcursor + $GrahemeKey > Set(GiMFlag = 'Off')
 
    Any(TPApunctuation) $TPAcursor + [K_TAB]     > Set(GiMFlag = 'Off')
 
    Any(TPApunctuation) $TPAcursor + [K_ENTER]   > Set(GiMFlag = 'Off')
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ TPA Space.
 
    $TPAglue  $TPAcursor + ' ' > $TPAspace $TPAcursor      c Add a TPA Space to the GiM string.
 
    $TPAspace $TPAcursor + ' ' > $TPAspace $TPAcursor Beep c Only one TPA Space is valid so replace contexct.
 
    '-'       $TPAcursor + ' ' > $TPAspace $TPAcursor      c Swap Hypen for TPA Space.
 
    nul       $TPAcursor + ' ' >           $TPAcursor Beep c TPA Space is not valid at the start of a construction.
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Hyphen. [TPA uses the standard Latin hypen.]
 
    $TPAglue  $TPAcursor + '-' > '-' $TPAcursor      c Add a Hypen to the GiM string.
 
    '-'       $TPAcursor + '-' > '-' $TPAcursor Beep c Only one Hyphen is valid.
 
    $TPAspace $TPAcursor + '-' > '-' $TPAcursor      c Swap TPAspace for Hypen.
 
    nul       $TPAcursor + '-' >     $TPAcursor Beep c Hypen is not valid at the start of a construction.
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Backspace allows a TPA construction to be edited by stepping backwards through it.
 
c │ Delete the Glue, Space, or Hypen and the Grapheme, then replace TPA Cursor.
 
    $TPAglue  $TPAcursor + [K_BKSP] > Use(GiMcloseEdit) $TPAcursor
 
    $TPAspace $TPAcursor + [K_BKSP] > $TPAglue          $TPAcursor c Replace TPA Space with TPA glue.
 
    '-'       $TPAcursor + [K_BKSP] > $TPAglue          $TPAcursor c Replace   Hypen   with TPA glue.
 
    nul       $TPAcursor + [K_BKSP] > nul $TPAcursor    Beep       c Backspace is not valid at the start of a construction.
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ NB The line 4 above gives the warnings below.                             ▌
 
c ▐    Warning 209E: A rule with use() statements in the                      ▌
 
c ▐       output should not have other content following the use() statements ▌
 
c ▐                                                                           ▌
 
c ▐ But I can see no other way to achieve what this line does.                ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ The DEL or ESC key removes the entire TPA construction, upto 31 graphemes in length.
 
c │ [32 or 64 appears to be the upper limit of the Windows/Keyman keyboard buffer.]
 
c │ Each next Rule removes one extra Grapheme & Punctuation set.
 
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐           There must be a better way to do this!          ▌
 
c ▐           I tried to recursively calling a Group,         ▌
 
c ▐           but I could not get it to work.                 ▌
 
c ▐           Perhaps a new command would be useful:          ▌
 
c ▐              Multi(Any(List1) Any(List2), #)              ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
    $TPAcursor + Any(Redo) > $TPAcursor Beep c Del at the start of a Page, Line, or Cell is not valid.
 
    Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
    Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) Any(TPAgrapheme) Any(TPApunctuation) $TPAcursor + Any(Redo) > $TPAcursor
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Menu Grapheme selection in GiM.
 
c │    If MenuFlag is 'Yes', these Rules display menus for grapheme selection.
 
c │ Only lowercase Latin letters are used to display menus.
 
c │    This allows the modifier key entry (below) to still function.
 
    If(MenuFlag = 'Yes') $TPAcursor +  ['A']  > Outs(a_Menu) c a  A_ ar
 
    If(MenuFlag = 'Yes') $TPAcursor + Any(cC) > Outs(c_Menu) c ch k  s
 
    If(MenuFlag = 'Yes') $TPAcursor +  ['E']  > Outs(e_Menu) c e  E_ er
 
    If(MenuFlag = 'Yes') $TPAcursor +  ['I']  > Outs(i_Menu) c i  I_ ir
 
    If(MenuFlag = 'Yes') $TPAcursor + Any(nN) > Outs(n_Menu) c n  ng
 
    If(MenuFlag = 'Yes') $TPAcursor +  ['O']  > Outs(o_Menu) c o  O_ oo oo_ or ow oy
 
    If(MenuFlag = 'Yes') $TPAcursor + Any(sS) > Outs(s_Menu) c s  sh sh_
 
    If(MenuFlag = 'Yes') $TPAcursor + Any(tT) > Outs(t_Menu) c t  th th_
 
    If(MenuFlag = 'Yes') $TPAcursor +  ['U']  > Outs(u_Menu) c u  U_ ur
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Modifier-key for grapheme selection in GiM.
 
c │    If MenuFlag is 'No' Use modifier keys to enter graphemes.
 
c │ NB Commented out lines below show what was used before the MenuFlag code was added.
 
    If(MenuFlag != 'Yes') $TPAcursor + ['A'] > U+F001 $TPAglue $TPAcursor c a
 
    If(MenuFlag != 'Yes') $TPAcursor + ['E'] > U+F008 $TPAglue $TPAcursor c e
 
    If(MenuFlag != 'Yes') $TPAcursor + ['I'] > U+F014 $TPAglue $TPAcursor c i
 
    If(MenuFlag != 'Yes') $TPAcursor + ['O'] > U+F023 $TPAglue $TPAcursor c o
 
    If(MenuFlag != 'Yes') $TPAcursor + ['U'] > U+F039 $TPAglue $TPAcursor c u
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ These Rules emit all the graphemes in TPA by use of modifier keys.
 
c │ The Modifier Keys function whether or not the GiMFlag is 'Yes' or 'No'
 
c │ NB Only 'oo', 'sh', & 'th' need the modifiers [RALT] & [RCTRL RALT].
 
c │    For consistancy 'ar', 'ch', 'er', 'ir', 'ng', 'or', 'ow', 'oy', & 'ur' have been given a
 
c │    [RCTRL RALT]; which is the same as the [RALT] Rule for that letter.
 
c │ NB Starred '*' Rules are duplicates of one another, eg [RALT 'A'] & [RCTRL RALT 'A'] emit the same grapheme.
 
c _ $TPAcursor + [                 'A'] > U+F001 $TPAglue $TPAcursor c a
 
    $TPAcursor + [SHIFT            'A'] > U+F002 $TPAglue $TPAcursor c A_
 
    $TPAcursor + [      LCTRL LALT 'A'] > U+F003 $TPAglue $TPAcursor c ar  *
 
    $TPAcursor + [      RCTRL LALT 'A'] > U+F003 $TPAglue $TPAcursor c ar  *
 
    $TPAcursor + [      LCTRL RALT 'A'] > U+F003 $TPAglue $TPAcursor c ar  *
 
    $TPAcursor + [      RCTRL RALT 'A'] > U+F003 $TPAglue $TPAcursor c ar  *
 
    $TPAcursor + Any(bB)                > U+F004 $TPAglue $TPAcursor c b
 
    $TPAcursor + Any(cC)                > U+F006 $TPAglue $TPAcursor c ch  *
 
    $TPAcursor + [      LCTRL LALT 'C'] > U+F006 $TPAglue $TPAcursor c ch  *
 
    $TPAcursor + [      RCTRL LALT 'C'] > U+F006 $TPAglue $TPAcursor c ch  *
 
    $TPAcursor + [      LCTRL RALT 'C'] > U+F006 $TPAglue $TPAcursor c ch  *
 
    $TPAcursor + [      RCTRL RALT 'C'] > U+F006 $TPAglue $TPAcursor c ch  *
 
    $TPAcursor + Any(dD)                > U+F007 $TPAglue $TPAcursor c d
 
 
c _ $TPAcursor + [                 'E'] > U+F008 $TPAglue $TPAcursor c e
 
    $TPAcursor + [SHIFT            'E'] > U+F009 $TPAglue $TPAcursor c E_
 
    $TPAcursor + [      LCTRL LALT 'E'] > U+F010 $TPAglue $TPAcursor c er  *
 
    $TPAcursor + [      RCTRL LALT 'E'] > U+F010 $TPAglue $TPAcursor c er  *
 
    $TPAcursor + [      LCTRL RALT 'E'] > U+F010 $TPAglue $TPAcursor c er  *
 
    $TPAcursor + [      RCTRL RALT 'E'] > U+F010 $TPAglue $TPAcursor c er  *
 
    $TPAcursor + Any(fF)                > U+F011 $TPAglue $TPAcursor c f
 
    $TPAcursor + Any(Gg)                > U+F012 $TPAglue $TPAcursor c g
 
    $TPAcursor + Any(Hh)                > U+F013 $TPAglue $TPAcursor c h
 
 
c _ $TPAcursor + [                 'I'] > U+F014 $TPAglue $TPAcursor c i
 
    $TPAcursor + [SHIFT            'I'] > U+F015 $TPAglue $TPAcursor c I_
 
    $TPAcursor + [      LCTRL LALT 'I'] > U+F016 $TPAglue $TPAcursor c ir  *
 
    $TPAcursor + [      RCTRL LALT 'I'] > U+F016 $TPAglue $TPAcursor c ir  *
 
    $TPAcursor + [      LCTRL RALT 'I'] > U+F016 $TPAglue $TPAcursor c ir  *
 
    $TPAcursor + [      RCTRL RALT 'I'] > U+F016 $TPAglue $TPAcursor c ir  *
 
    $TPAcursor + Any(jJ)                > U+F017 $TPAglue $TPAcursor c j
 
    $TPAcursor + Any(kK)                > U+F018 $TPAglue $TPAcursor c k
 
    $TPAcursor + Any(lL)                > U+F019 $TPAglue $TPAcursor c l
 
    $TPAcursor + Any(mM)                > U+F020 $TPAglue $TPAcursor c m
 
    $TPAcursor + Any(nN)                > U+F021 $TPAglue $TPAcursor c n
 
    $TPAcursor + [      LCTRL LALT 'N'] > U+F022 $TPAglue $TPAcursor c ng  *
 
    $TPAcursor + [      RCTRL LALT 'N'] > U+F022 $TPAglue $TPAcursor c ng  *
 
    $TPAcursor + [      LCTRL RALT 'N'] > U+F022 $TPAglue $TPAcursor c ng  *
 
    $TPAcursor + [      RCTRL RALT 'N'] > U+F022 $TPAglue $TPAcursor c ng  *
 
 
c _ $TPAcursor + [                 'O'] > U+F023 $TPAglue $TPAcursor c o
 
    $TPAcursor + [SHIFT            'O'] > U+F024 $TPAglue $TPAcursor c O_
 
 
    $TPAcursor + [      LCTRL LALT 'O'] > U+F025 $TPAglue $TPAcursor c oo  *
 
    $TPAcursor + [      RCTRL LALT 'O'] > U+F025 $TPAglue $TPAcursor c oo  *
 
    $TPAcursor + [      LCTRL RALT 'O'] > U+F026 $TPAglue $TPAcursor c OO_ *
 
    $TPAcursor + [      RCTRL RALT 'O'] > U+F026 $TPAglue $TPAcursor c OO_ *
 
 
    $TPAcursor + [      LCTRL LALT 'R'] > U+F027 $TPAglue $TPAcursor c or  *
 
    $TPAcursor + [      RCTRL LALT 'R'] > U+F027 $TPAglue $TPAcursor c or  *
 
    $TPAcursor + [      LCTRL RALT 'R'] > U+F027 $TPAglue $TPAcursor c or  *
 
    $TPAcursor + [      RCTRL RALT 'R'] > U+F027 $TPAglue $TPAcursor c or  *
 
 
    $TPAcursor + [      LCTRL LALT 'W'] > U+F028 $TPAglue $TPAcursor c ow  *
 
    $TPAcursor + [      RCTRL LALT 'W'] > U+F028 $TPAglue $TPAcursor c ow  *
 
    $TPAcursor + [      LCTRL RALT 'W'] > U+F028 $TPAglue $TPAcursor c ow  *
 
    $TPAcursor + [      RCTRL RALT 'W'] > U+F028 $TPAglue $TPAcursor c ow  *
 
 
    $TPAcursor + [      LCTRL LALT 'Y'] > U+F029 $TPAglue $TPAcursor c oy  *
 
    $TPAcursor + [      RCTRL LALT 'Y'] > U+F029 $TPAglue $TPAcursor c oy  *
 
    $TPAcursor + [      LCTRL RALT 'Y'] > U+F029 $TPAglue $TPAcursor c oy  *
 
    $TPAcursor + [      RCTRL RALT 'Y'] > U+F029 $TPAglue $TPAcursor c oy  *
 
 
    $TPAcursor + Any(pP)                > U+F030 $TPAglue $TPAcursor c p
 
    $TPAcursor + Any(qQ)                > U+F031 $TPAglue $TPAcursor c q
 
    $TPAcursor + Any(rR)                > U+F032 $TPAglue $TPAcursor c r
 
    $TPAcursor + Any(sS)                > U+F033 $TPAglue $TPAcursor c s
 
    $TPAcursor + [      LCTRL LALT 'S'] > U+F034 $TPAglue $TPAcursor c sh  *
 
    $TPAcursor + [      RCTRL LALT 'S'] > U+F034 $TPAglue $TPAcursor c sh  *
 
    $TPAcursor + [      LCTRL RALT 'S'] > U+F035 $TPAglue $TPAcursor c sh_ *
 
    $TPAcursor + [      RCTRL RALT 'S'] > U+F035 $TPAglue $TPAcursor c sh_ *
 
    $TPAcursor + Any(tT)                > U+F036 $TPAglue $TPAcursor c t
 
    $TPAcursor + [      LCTRL LALT 'T'] > U+F037 $TPAglue $TPAcursor c th  *
 
    $TPAcursor + [      RCTRL LALT 'T'] > U+F037 $TPAglue $TPAcursor c th  *
 
    $TPAcursor + [      LCTRL RALT 'T'] > U+F038 $TPAglue $TPAcursor c th_ *
 
    $TPAcursor + [      RCTRL RALT 'T'] > U+F038 $TPAglue $TPAcursor c th_ *
 
 
c _ $TPAcursor + [                 'U'] > U+F039 $TPAglue $TPAcursor c u
 
    $TPAcursor + [SHIFT            'U'] > U+F040 $TPAglue $TPAcursor c U_
 
    $TPAcursor + [      LCTRL LALT 'U'] > U+F041 $TPAglue $TPAcursor c ur  *
 
    $TPAcursor + [      RCTRL LALT 'U'] > U+F041 $TPAglue $TPAcursor c ur  *
 
    $TPAcursor + [      LCTRL RALT 'U'] > U+F041 $TPAglue $TPAcursor c ur  *
 
    $TPAcursor + [      RCTRL RALT 'U'] > U+F041 $TPAglue $TPAcursor c ur  *
 
    $TPAcursor + Any(vV)                > U+F042 $TPAglue $TPAcursor c v
 
    $TPAcursor + Any(wW)                > U+F043 $TPAglue $TPAcursor c w
 
    $TPAcursor + Any(xX)                > U+F044 $TPAglue $TPAcursor c x
 
    $TPAcursor + Any(yY)                > U+F045 $TPAglue $TPAcursor c y
 
    $TPAcursor + Any(zZ)                > U+F046 $TPAglue $TPAcursor c z
 
c │ NB Stared '*' Rules are dublicates of one another, eg [RALT 'U'] & [RCTRL RALT 'U']  emit the same graphgeme.
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Through away all other displayable symbols.
 
c │    None of the modifier keys are used in these Stores.
 
    $TPAcursor + Any(LatinLetter)   > $TPAcursor Beep
 
    $TPAcursor + Any(Number)        > $TPAcursor Beep
 
    $TPAcursor + Any(Symbol)        > $TPAcursor Beep
 
    $TPAcursor + Any(AltGr)         > $TPAcursor Beep
 
    $TPAcursor + Any(CursorKeys)    > $TPAcursor Beep
 
    $TPAcursor + Any(TextEffectors) > $TPAcursor Beep
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ TPA Grapeme input Mode not requested nor running, pass processing to the MuM group.
 
    Nomatch > Use(MuM)
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ At the start of this Group is the line below:           ▌
 
c ▐    If(GiMFlag  = 'Off') + Any(AllGlyphs) > Use(MuM)     ▌
 
c ▐                                                         ▌
 
c ▐ The line above:                                         ▌
 
c ▐    Nomatch > Use(MuM)                                   ▌
 
c ▐                                                         ▌
 
c ▐ My question is; Which is the best way to ensure         ▌
 
c ▐                 that the Group MuM to always be called? ▌
 
c ▐                                                         ▌
 
c ▐ Or Do these lines do the same thing? (I suspect not)    ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c │ End of GiM
 
c └─────────────────────────────────────────────────────────────────┘
 
 
Group(GiMcloseEdit) Using Keys
 
c ╔═════════════════════════════════════════════════════════════════╗
 
c ║ An empty 'Using Keys' group as final group ensures original     ║
 
c ║ keystroke is emitted.                                           ║
 
c ╟─────────────────────────────────────────────────────────────────╢
 
c ║ This Group is only called from a Backspace Rule in GiM.         ║
 
c ╚═════════════════════════════════════════════════════════════════╝
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ This GiMcloseEdit group is only called once, the BKSP Rules in  ▌
 
c ▐ the editing part of GiM. This works in the Test Keyboard window ▌
 
c ▐ in TIKE, but not when the keyboard is installed.                ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c │ End of GiMcloseEdit
 
c └─────────────────────────────────────────────────────────────────┘
 
c Processing complete, return to listening for a key press.
 
 
c □■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□
 
Group(MuM) using keys
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ Markup Mode (MuM).
 
c │    Handles Latin Text and TPA markups of that text.
 
c │    This is the most common way to use TPA keyboard.
 
c ├──────────────────────────────────────────────────────────────────
 
c │ This Group is called from the GiM Group.
 
c └──────────────────────────────────────────────────────────────────
 
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ These two Rules are needed so the 102 key will emit the symbols. ▌
 
    + '\' > '\'                                                    c ▌
 
    + '|' > '|'                                                    c ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ The Rule below adds TPA Glue to the output.
 
c │ TPA Glue is only ever used with TPA building blocks (Contructions).
 
c │ To reduce the risk that it be used with standard Latin letters,
 
c │    it has been commented out of TPA keyboard definition.
 
c │
 
c │ *** $GrahemeKey $GrahemeKey + $GrahemeKey > $TPAglue ***
 
c └──────────────────────────────────────────────────────────────────
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Add an 'x' above silent Latin Letters.
 
    Any(LatinLetter) $SilentKey + $SilentKey > Context(1) Index(SilentLetterMarkup, 1)
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Strickout a Latin Letter WITHOUT a TPA superscript Clue
 
c │ (used with multi letter phonemes).
 
    Any(LatinLetter) $StrickoutKey + $StrickoutKey > Context(1) Index(StrickOut,1)
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ TPA Space,
 
c │ a low tilda.
 
    ' ' $GrahemeKey + $GrahemeKey > $TPAspace
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Hypen.
 
c │ NB TPA uses the standard Latin hypen, so there is no need for a specific Rule for the Hypen.
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Add an arrow below a Latin Letters.
 
c │ NB not strictly speaking part of TPA, it is included just because it can be useful.
 
    Any(LatinLetter) $PointerKey + $PointerKey > Context(1) Index(Pointer,1)
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Single letter Vowel markups.
 
c │ NB all single letter vowels use only the overline bar.
 
    Any(Vowel) $BarKey  + $BarKey  > Context(1) Index(TPAbar, 1) c a, e, i, o, u
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Double letter vowel markups.
 
c │ NB The oo graphemes use a different Arch & Tie unicode codepoints.
 
c │    This is to ensure that when sorting TPA constructions they come in the right place.
 
    Any(aA) Any(rR) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c ar
 
    Any(eE) Any(rR) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c er
 
    Any(iI) Any(rR) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c ir
 
    Any(oO) Any(oO) $ArchKey + $ArchKey > Context(1) $ArchO Context(2) c oo  This grapheme has an Aarch & a Tie.
 
    Any(oO) Any(oO) $BarKey  + $BarKey  > Context(1) $TieO  Context(2) c oo_ This grapheme has an Aarch & a Tie.
 
    Any(oO) Any(rR) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c or
 
    Any(oO) Any(wW) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c ow
 
    Any(oO) Any(yY) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c oy
 
    Any(uU) Any(rR) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c ur
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Two letter consonants. NB 'sh' & 'th' have both an Arch and a Tie.
 
    Any(cC) Any(hH) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c ch
 
    Any(nN) Any(gG) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c ng
 
    Any(sS) Any(hH) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c sh  This grapheme has an Aarch & a Tie.
 
    Any(sS) Any(hH) $BarKey  + $BarKey  > Context(1) $Tie_  Context(2) c sh_ This grapheme has an Aarch & a Tie.
 
    Any(tT) Any(hH) $ArchKey + $ArchKey > Context(1) $Arch_ Context(2) c th  This grapheme has an Aarch & a Tie.
 
    Any(tT) Any(hH) $BarKey  + $BarKey  > Context(1) $Tie_  Context(2) c th_ This grapheme has an Aarch & a Tie.
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Menu Grapheme selection in MuM.
 
c │    If MenuFlag is 'Yes', these Rules display menus for grapheme selection.
 
c │ Only lowercase Latin letters are used to display menus.
 
c │    This allows the modifier key entry (below) to still function.
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + ['A']   > Context Outs(a_Menu) c │ a  A_ ar
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + Any(cC) > Context Outs(c_Menu) c │ ch k  s
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + ['E']   > Context Outs(e_Menu) c │ e  E_ er
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + ['I']   > Context Outs(i_Menu) c │ i  I_ ir
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + Any(nN) > Context Outs(n_Menu) c │ n  ng
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + ['O']   > Context Outs(o_Menu) c │ o  O_ oo oo_  or ow oy
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + Any(sS) > Context Outs(s_Menu) c │ s  sh sh_
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + Any(tT) > Context Outs(t_Menu) c │ t  th th_
 
    If(MenuFlag = 'Yes') Any(LatinLetter) $StrickoutKey + ['U']   > Context Outs(u_Menu) c │ u  U_ ur
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Modifier-key for grapheme selection in MuM.
 
c │    If MenuFlag is 'No' Use modifier keys to enter graphemes.
 
    If(MenuFlag != 'Yes') Any(LatinLetter) $StrickoutKey + ['A'] > Context(1) Index(Strickout,2) Index(Sup_a,2) c │ a
 
    If(MenuFlag != 'Yes') Any(LatinLetter) $StrickoutKey + ['E'] > Context(1) Index(Strickout,2) Index(Sup_e,2) c │ e
 
    If(MenuFlag != 'Yes') Any(LatinLetter) $StrickoutKey + ['I'] > Context(1) Index(Strickout,2) Index(Sup_i,2) c │ i
 
    If(MenuFlag != 'Yes') Any(LatinLetter) $StrickoutKey + ['O'] > Context(1) Index(Strickout,2) Index(Sup_o,2) c │ o
 
    If(MenuFlag != 'Yes') Any(LatinLetter) $StrickoutKey + ['U'] > Context(1) Index(Strickout,2) Index(Sup_u,2) c │ u
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ These Rules emit all the graphemes in TPA by use of modifier keys.
 
c │ NB Only 'oo', 'sh', & 'th' need the modifiers [RALT] & [RCTRL RALT].
 
c │    For consistancy 'ar', 'ch', 'er', 'ir', 'ng', 'or', 'ow', 'oy', & 'ur' have been given a
 
c │    [RCTRL RALT]; which is the same as the [RALT] Rule for that letter.
 
c │ NB Starred '*' Rules are duplicates of one another, eg [RALT 'A'] & [RCTRL RALT 'A'] emit the same grapheme.
 
c │ NB Commented out lines below show what was used before the MenuFlag code was added.
 
c _ Any(LatinLetter) $StrickoutKey + [                 'A'] > Context(1) Index(Strickout,1) Index(Sup_a,1)   c │ a
 
    Any(LatinLetter) $StrickoutKey + [SHIFT            'A'] > Context(1) Index(Strickout,1) Index(Sup_A_,1)  c │ A_
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'A'] > Context(1) Index(Strickout,1) Index(Sup_ar,1)  c │ ar  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'A'] > Context(1) Index(Strickout,1) Index(Sup_ar,1)  c │ ar  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'A'] > Context(1) Index(Strickout,1) Index(Sup_ar,1)  c │ ar  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'A'] > Context(1) Index(Strickout,1) Index(Sup_ar,1)  c │ ar  *
 
 
    Any(LatinLetter) $StrickoutKey + Any(bB)                > Context(1) Index(Strickout,1) Index(Sup_b,1)   c │ b
 
    Any(LatinLetter) $StrickoutKey + Any(cC)                > Context(1) Index(Strickout,1) Index(Sup_ch,1)  c │ ch  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'C'] > Context(1) Index(Strickout,1) Index(Sup_ch,1)  c │ ch  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'C'] > Context(1) Index(Strickout,1) Index(Sup_ch,1)  c │ ch  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'C'] > Context(1) Index(Strickout,1) Index(Sup_ch,1)  c │ ch  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'C'] > Context(1) Index(Strickout,1) Index(Sup_ch,1)  c │ ch  *
 
    Any(LatinLetter) $StrickoutKey + Any(dD)                > Context(1) Index(Strickout,1) Index(Sup_d,1)   c │ d
 
 
c _ Any(LatinLetter) $StrickoutKey + [                 'E'] > Context(1) Index(Strickout,1) Index(Sup_e,1)   c │ e
 
    Any(LatinLetter) $StrickoutKey + [SHIFT            'E'] > Context(1) Index(Strickout,1) Index(Sup_E_,1)  c │ E_
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'E'] > Context(1) Index(Strickout,1) Index(Sup_er,1)  c │ er  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'E'] > Context(1) Index(Strickout,1) Index(Sup_er,1)  c │ er  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'E'] > Context(1) Index(Strickout,1) Index(Sup_er,1)  c │ er  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'E'] > Context(1) Index(Strickout,1) Index(Sup_er,1)  c │ er  *
 
    Any(LatinLetter) $StrickoutKey + Any(fF)                > Context(1) Index(Strickout,1) Index(Sup_f,1)   c │ f
 
    Any(LatinLetter) $StrickoutKey + Any(gG)                > Context(1) Index(Strickout,1) Index(Sup_g,1)   c │ g
 
    Any(LatinLetter) $StrickoutKey + Any(hH)                > Context(1) Index(Strickout,1) Index(Sup_h,1)   c │ h
 
 
c _ Any(LatinLetter) $StrickoutKey + [                 'I'] > Context(1) Index(Strickout,1) Index(Sup_i,1)   c │ i
 
    Any(LatinLetter) $StrickoutKey + [SHIFT            'I'] > Context(1) Index(Strickout,1) Index(Sup_I_,1)  c │ I_
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'I'] > Context(1) Index(Strickout,1) Index(Sup_ir,1)  c │ ir  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'I'] > Context(1) Index(Strickout,1) Index(Sup_ir,1)  c │ ir  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'I'] > Context(1) Index(Strickout,1) Index(Sup_ir,1)  c │ ir  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'I'] > Context(1) Index(Strickout,1) Index(Sup_ir,1)  c │ ir  *
 
    Any(LatinLetter) $StrickoutKey + Any(jJ)                > Context(1) Index(Strickout,1) Index(Sup_j,1)   c │ j
 
    Any(LatinLetter) $StrickoutKey + Any(kK)                > Context(1) Index(Strickout,1) Index(Sup_k,1)   c │ k
 
    Any(LatinLetter) $StrickoutKey + Any(lL)                > Context(1) Index(Strickout,1) Index(Sup_l,1)   c │ l
 
    Any(LatinLetter) $StrickoutKey + Any(mM)                > Context(1) Index(Strickout,1) Index(Sup_m,1)   c │ m
 
    Any(LatinLetter) $StrickoutKey + Any(nN)                > Context(1) Index(Strickout,1) Index(Sup_n,1)   c │ n
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'N'] > Context(1) Index(Strickout,1) Index(Sup_ng,1)  c │ ng  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'N'] > Context(1) Index(Strickout,1) Index(Sup_ng,1)  c │ ng  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'N'] > Context(1) Index(Strickout,1) Index(Sup_ng,1)  c │ ng  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'N'] > Context(1) Index(Strickout,1) Index(Sup_ng,1)  c │ ng  *
 
 
c _ Any(LatinLetter) $StrickoutKey + [                 'O'] > Context(1) Index(Strickout,1) Index(Sup_o,1)   c │ o
 
    Any(LatinLetter) $StrickoutKey + [SHIFT            'O'] > Context(1) Index(Strickout,1) Index(Sup_O_,1)  c │ O_
 
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'O'] > Context(1) Index(Strickout,1) Index(Sup_oo,1)  c │ oo  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'O'] > Context(1) Index(Strickout,1) Index(Sup_oo,1)  c │ oo  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'O'] > Context(1) Index(Strickout,1) Index(Sup_oo_,1) c │ OO_ *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'O'] > Context(1) Index(Strickout,1) Index(Sup_oo_,1) c │ OO_ *
 
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'R'] > Context(1) Index(Strickout,1) Index(Sup_or,1)  c │ or  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'R'] > Context(1) Index(Strickout,1) Index(Sup_or,1)  c │ or  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'R'] > Context(1) Index(Strickout,1) Index(Sup_or,1)  c │ or  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'R'] > Context(1) Index(Strickout,1) Index(Sup_or,1)  c │ or  *
 
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'W'] > Context(1) Index(Strickout,1) Index(Sup_ow,1)  c │ ow  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'W'] > Context(1) Index(Strickout,1) Index(Sup_ow,1)  c │ ow  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'W'] > Context(1) Index(Strickout,1) Index(Sup_ow,1)  c │ ow  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'W'] > Context(1) Index(Strickout,1) Index(Sup_ow,1)  c │ ow  *
 
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'Y'] > Context(1) Index(Strickout,1) Index(Sup_oy,1)  c │ oy  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'Y'] > Context(1) Index(Strickout,1) Index(Sup_oy,1)  c │ oy  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'Y'] > Context(1) Index(Strickout,1) Index(Sup_oy,1)  c │ oy  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'Y'] > Context(1) Index(Strickout,1) Index(Sup_oy,1)  c │ oy  *
 
 
    Any(LatinLetter) $StrickoutKey + Any(pP)                > Context(1) Index(Strickout,1) Index(Sup_p,1)   c │ p
 
    Any(LatinLetter) $StrickoutKey + Any(qQ)                > Context(1) Index(Strickout,1) Index(Sup_q,1)   c │ q
 
    Any(LatinLetter) $StrickoutKey + Any(rR)                > Context(1) Index(Strickout,1) Index(Sup_r,1)   c │ r
 
    Any(LatinLetter) $StrickoutKey + Any(sS)                > Context(1) Index(Strickout,1) Index(Sup_s,1)   c │ s
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'S'] > Context(1) Index(Strickout,1) Index(Sup_sh,1)  c │ sh  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'S'] > Context(1) Index(Strickout,1) Index(Sup_sh,1)  c │ sh  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'S'] > Context(1) Index(Strickout,1) Index(Sup_sh_,1) c │ sh_ *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'S'] > Context(1) Index(Strickout,1) Index(Sup_sh_,1) c │ sh_ *
 
    Any(LatinLetter) $StrickoutKey + Any(tT)                > Context(1) Index(Strickout,1) Index(Sup_t,1)   c │ t
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'T'] > Context(1) Index(Strickout,1) Index(Sup_th,1)  c │ th  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'T'] > Context(1) Index(Strickout,1) Index(Sup_th,1)  c │ th  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'T'] > Context(1) Index(Strickout,1) Index(Sup_th_,1) c │ th_ *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'T'] > Context(1) Index(Strickout,1) Index(Sup_th_,1) c │ th_ *
 
 
c _ Any(LatinLetter) $StrickoutKey + [                 'U'] > Context(1) Index(Strickout,1) Index(Sup_u,1)   c │ u
 
    Any(LatinLetter) $StrickoutKey + [SHIFT            'U'] > Context(1) Index(Strickout,1) Index(Sup_U_,1)  c │ U_
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL LALT 'U'] > Context(1) Index(Strickout,1) Index(Sup_ur,1)  c │ ur  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL LALT 'U'] > Context(1) Index(Strickout,1) Index(Sup_ur,1)  c │ ur  *
 
    Any(LatinLetter) $StrickoutKey + [      LCTRL RALT 'U'] > Context(1) Index(Strickout,1) Index(Sup_ur,1)  c │ ur  *
 
    Any(LatinLetter) $StrickoutKey + [      RCTRL RALT 'U'] > Context(1) Index(Strickout,1) Index(Sup_ur,1)  c │ ur  *
 
    Any(LatinLetter) $StrickoutKey + Any(vV)                > Context(1) Index(Strickout,1) Index(Sup_v,1)   c │ v
 
    Any(LatinLetter) $StrickoutKey + Any(wW)                > Context(1) Index(Strickout,1) Index(Sup_w,1)   c │ w
 
    Any(LatinLetter) $StrickoutKey + Any(xX)                > Context(1) Index(Strickout,1) Index(Sup_x,1)   c │ x
 
    Any(LatinLetter) $StrickoutKey + Any(yY)                > Context(1) Index(Strickout,1) Index(Sup_y,1)   c │ y
 
    Any(LatinLetter) $StrickoutKey + Any(zZ)                > Context(1) Index(Strickout,1) Index(Sup_z,1)   c │ z
 
c │ NB Stared '*' Rules are dublicates of one another, eg [RALT 'U'] & [RCTRL RALT 'U']  emit the same graphgeme.
 
 
c ╒==================================================================
 
c │ Shwa for single letter vowels.
 
    Any(Vowel) $ShwaKey + $ShwaKey > Context(1) Index(TPAshwa,1)
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Shwa for double letter vowels.
 
c │ NB Lowercase letters use a lower shwa.
 
    Any(VowelL) 'r' $ShwaKey + $ShwaKey > Context(1) $Shwa2L Context(2)
 
    'o'         'o' $ShwaKey + $ShwaKey > Context(1) $Shwa2L Context(2)
 
    'o'         'w' $ShwaKey + $ShwaKey > Context(1) $Shwa2L Context(2)
 
    'o'         'y' $ShwaKey + $ShwaKey > Context(1) $Shwa2L Context(2)
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ NB All other possible combinations of case use the higher shwa.
 
    Any(Vowel) Any(rR) $ShwaKey + $ShwaKey > Context(1) $Shwa2U Context(2)
 
    Any(oO)    Any(oO) $ShwaKey + $ShwaKey > Context(1) $Shwa2U Context(2)
 
    Any(oO)    Any(wW) $ShwaKey + $ShwaKey > Context(1) $Shwa2U Context(2)
 
    Any(oO)    Any(yY) $ShwaKey + $ShwaKey > Context(1) $Shwa2U Context(2)
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ Additional Rules for useful symbols.
 
c └──────────────────────────────────────────────────────────────────
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Chevrons
 
      "<"  + "<" > U+226A
 
      ">"  + ">" > U+226B
 
    U+226A + "<" > U+22D8
 
    U+226B + ">" > U+22D9
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Continuations
 
    '..' + '.' > '…'    c Ellipsis
 
    '::' + ':' > U+22EE c Ellipsis Vertical
 
    ',,' + ',' > U+22EF c Ellipsis Centre
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Legal
 
    '{'  Any(cC)         + '}' > '©'    c Copyright
 
    '{'  Any(rR)         + '}' > '®'    c Registered
 
    '{'  Any(tT) Any(mM) + '}' > '™'    c Trade Mark
 
    '{P'                 + '}' > U+2117 c Sound Recording Copyright
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Maths
 
    '{'    Any(xX) + '}' > '×'    c Multiply
 
    '{*'           + '}' > '×'    c Times
 
 
    '{-'           + '}' > '÷'    c Divide
 
    '{/'           + '}' > '÷'    c Divide
 
 
    '{+-'          + '}' > '±'    c Plus Minus
 
    '{-+'          + '}' > U+2213 c Minus Plus
 
 
    '{p'           + '}' > U+221D c Proportional
 
    '{~'           + '}' > '≈'    c Almost Equal
 
 
    '{+'           + '}' > U+224D c Equivalent NB '+' is Shift '='
 
    '{!+'          + '}' > U+226D c Not Equivalent
 
 
    '{!='          + '}' > '≠'    c Not Equal
 
    '{<>'          + '}' > '≠'    c Not Equal
 
 
    '{=='          + '}' > '≡'    c Identical
 
    '{!=='         + '}' > U+2262 c Identical
 
 
    '{<='          + '}' > '≤'    c Lest Than or Equal
 
    '{>='          + '}' > '≥'    c Greater Than or Equal
 
 
    '{I'           + '}' > '∞'    c Infinity
 
    '{N'           + '}' > '№'    c Numero
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Fractions
 
    '{1/4'  + '}' > '¼' c Quarter
 
    '{1/2'  + '}' > '½' c Half
 
    '{3/4'  + '}' > '¾' c Three Quarters
 
 
    '{1/7'  + '}' > '⅐' c One   Seventh
 
 
    '{1/9'  + '}' > '⅑' c One   Ninth
 
 
    '{1/10' + '}' > '⅒' c One   Tenth
 
 
    '{1/3'  + '}' > '⅓' c One   Third
 
    '{2/3'  + '}' > '⅔' c Two   Thirds
 
 
    '{1/5'  + '}' > '⅕' c One   Fifth
 
    '{2/5'  + '}' > '⅖' c Two   Fifths
 
    '{3/5'  + '}' > '⅗' c Three Fifths
 
    '{4/5'  + '}' > '⅘' c Four  Fifths
 
 
    '{1/6'  + '}' > '⅙' c One   Sixth
 
    '{5/6'  + '}' > '⅚' c Two   Sixths
 
 
    '{1/8'  + '}' > '⅛' c One   eighth
 
    '{3/8'  + '}' > '⅜' c Three eighths
 
    '{5/8'  + '}' > '⅝' c Five  eighths
 
    '{7/8'  + '}' > '⅞' c Seven eighths
 
 
    '{1/'   + '}' > '⅟' c Unitary  Fraction
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Greek
 
    '{a'           + '}' > 'α'    c Lowercase Alpha
 
    '{A'           + '}' > U+0391 c Uppercase Alpha
 
    '{b'           + '}' > 'β'    c Lowercase Beta
 
    '{o'           + '}' > 'ω'    c Lowercase Omega
 
    '{O'           + '}' > 'Ω'    c Uppercase Omega
 
    '{ohm'         + '}' > 'Ω'    c Ohm
 
    '{p'   Any(iI) + '}' > 'π'    c Lowercase Pi
 
    '{P'   Any(iI) + '}' > 'Π'    c Uppercase Pi
 
    '{S'           + '}' > 'Σ'    c Sigma / Sum
 
    '{u'           + '}' > 'μ'    c Lowercase Mu
 
    '{z'           + '}' > 'ω'    c Lowercase Omega
 
    '{Z'           + '}' > 'Ω'    c Uppercase Omega
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Symbols
 
    '{B'         + '}' > '∵'    c Because
 
    '{T'         + '}' > '∴'    c Therefore
 
    '{i'         + '}' > U+2139 c Information
 
    '{d'         + '}' > '†'    c Dagger
 
    '{D'         + '}' > '‡'    c Double Dagger
 
    '{l'         + '}' > U+2301 c Lightning
 
    '{'  Any(fF) + '}' > 'ƒ'    c Long f
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Faces
 
    '{:'  + '}' > U+E6A0 c Minimal
 
    '{))' + '}' > U+E6A1 c Very Happy
 
    '{)'  + '}' > U+E6A2 c Happy
 
    '{|'  + '}' > U+E6A3 c Neutral
 
    '{('  + '}' > U+E6A4 c Unhappy
 
    '{((' + '}' > U+E6A5 c Very Unhappy
 
    '{>'  + '}' > U+E6A6 c Angry
 
    '{>>' + '}' > U+E6A7 c Very Angry
 
    '{<'  + '}' > U+E6A8 c Sad
 
    '{<<' + '}' > U+E6A9 c Very Sad
 
    '{;'  + '}' > U+E6AA c Winking
 
    '{{'  + '}' > U+E6AB c Frowning
 
    '{/'  + '}' > U+E6AC c Confused
 
    '{!'  + '}' > U+E6AD c Supprised
 
    '{z'  + '}' > U+E6AE c Asleep
 
    '{c'  + '}' > U+E6AF c Cool
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Counters (Thermometer)
 
    '{t0' + '}' > U+E720
 
    '{t1' + '}' > U+E721
 
    '{t2' + '}' > U+E722
 
    '{t3' + '}' > U+E723
 
    '{t4' + '}' > U+E724
 
    '{t5' + '}' > U+E725
 
    '{t6' + '}' > U+E726
 
    '{t7' + '}' > U+E727
 
    '{t8' + '}' > U+E728
 
    '{t9' + '}' > U+E729
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Counters (Counter)
 
    '{c0' + '}' > U+E750
 
    '{c1' + '}' > U+E751
 
    '{c2' + '}' > U+E752
 
    '{c3' + '}' > U+E753
 
    '{c4' + '}' > U+E754
 
    '{c5' + '}' > U+E755
 
    '{c6' + '}' > U+E756
 
    '{c7' + '}' > U+E757
 
    '{c8' + '}' > U+E758
 
    '{c9' + '}' > U+E759
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Counters (Dominos)
 
    '{d0' + '}' > U+E760
 
    '{d1' + '}' > U+E761
 
    '{d2' + '}' > U+E762
 
    '{d3' + '}' > U+E763
 
    '{d4' + '}' > U+E764
 
    '{d5' + '}' > U+E765
 
    '{d6' + '}' > U+E766
 
    '{d7' + '}' > U+E767
 
    '{d8' + '}' > U+E768
 
    '{d9' + '}' > U+E769
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Counters (Square)
 
    '{s0' + '}' > U+E770
 
    '{s1' + '}' > U+E771
 
    '{s2' + '}' > U+E772
 
    '{s3' + '}' > U+E773
 
    '{s4' + '}' > U+E774
 
    '{s5' + '}' > U+E775
 
    '{s6' + '}' > U+E776
 
    '{s7' + '}' > U+E777
 
    '{s8' + '}' > U+E778
 
    '{s9' + '}' > U+E779
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Counters (Circle)
 
    '{o0' + '}' > U+E780
 
    '{o1' + '}' > U+E781
 
    '{o2' + '}' > U+E782
 
    '{o3' + '}' > U+E783
 
    '{o4' + '}' > U+E784
 
    '{o5' + '}' > U+E785
 
    '{o6' + '}' > U+E786
 
    '{o7' + '}' > U+E787
 
    '{o8' + '}' > U+E788
 
    '{o9' + '}' > U+E789
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Counters (Seven Segment)
 
    '{70' + '}' > U+E790
 
    '{71' + '}' > U+E791
 
    '{72' + '}' > U+E792
 
    '{73' + '}' > U+E793
 
    '{74' + '}' > U+E794
 
    '{75' + '}' > U+E795
 
    '{76' + '}' > U+E796
 
    '{77' + '}' > U+E797
 
    '{78' + '}' > U+E798
 
    '{79' + '}' > U+E799
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ The Phonbic Alphabet (TPA) logo
 
    '{TPA' + '}' > U+E000 c TPA Icon
 
 
c │ End of MuM
 
c └─────────────────────────────────────────────────────────────────┘
 
c Processing complete, return to listening for a key press.
 
 
c □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
 
c Build constant Stores for Latin letters, TPA Graphemes, and Menus.
 
c □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
 
 
c ╔═════════════════════════════════════════════════════════════════╗
 
c ║ Special key combinations.                                       ║
 
c ╚═════════════════════════════════════════════════════════════════╝
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ c Used in the menu Groups to through an error.
 
    Store(TextEffectors) [K_TAB] [K_?05]  [K_BKSP] [K_ENTER] [K_NPENTER] c [K_DEL]
 
    Store(CursorKeys)    [K_KP5] c [K_UP]  [K_END] [K_LEFT] [K_DOWN] [K_HOME]  [K_PGUP] [K_PGDN] [K_RIGHT]
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ The [K_<cursor keys>] has been commented out because, currently,▌
 
c ▐ if they are in the string 'CursorKeys' they no longer functions ▌
 
c ▐ when the TPA Keyboard is active.                                ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ The [K_KP5] is in the string so the string is not empty.        ▌
 
c ▐ It must be deleted when this issue is resolved.                 ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Used in the menu Groups to close a menu.
 
    Store(MenuCancel) [K_ESC] [K_BKSP]
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Used in GiM to remove the entire TPA Constructions.
 
    Store(Redo) [K_ESC] c [K_DEL]
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ The [K_DEL] above has been commented out because, currently,    ▌
 
c ▐ if it's in the string 'Redo' the DEL key no longer functions    ▌
 
c ▐ when the TPA Keyboard is active.                                ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c ╔═════════════════════════════════════════════════════════════════╗
 
c ║ Latin constants.                                                ║
 
c ╚═════════════════════════════════════════════════════════════════╝
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Latin vowels.
 
    Store(vowelL) 'aeiou'
 
    Store(vowelU) 'AEIOU'
 
    Store(vowel)  Outs(vowelL) Outs(vowelU)
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ English Keyboard symbols
 
    Store(Number) '0123456789'
 
    Store(Symbol) [K_oE2] '"' '" .,;:`!?&()[]{} \/=+-~_<>#*%^£€$|¦¬@'
 
    Store(AltGr)  'áéíóúÁÉÍÓÚ€¦'
 
c ▐▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▌
 
c ▐ The '[K_oE2]' virtual key in a Mnemonic Layout is    ▌
 
c ▐ the only way I can find to access the 102 key.       ▌
 
c ▐ But it produces a Warning.                           ▌
 
c ▐▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▌
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Latin letters.
 
    Store(LatinLetterLC) 'abcdefghijklmnopqrstuvwxyz'
 
    Store(LatinLetterUC) 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
 
    Store(LatinLetter)    Outs(LatinLetterLC) Outs(LatinLetterUC)
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ All displayable Letters, Numbers, & Symbols.
 
    Store(AllGlyphs) Outs(LatinLetter) Outs(Number) Outs(Symbol) Outs(AltGr)
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ Lowercase / Capitals Stores so Any() commands can ignore the case of the Context.
 
    Store(aA) 'aA'
 
    Store(bB) 'bB'
 
    Store(cC) 'cC'
 
    Store(dD) 'dD'
 
    
 
    Store(eE) 'eE'
 
    Store(fF) 'fF'
 
    Store(gG) 'gG'
 
    Store(hH) 'hH'
 
    
 
    Store(iI) 'iI'
 
    Store(jJ) 'jJ'
 
    Store(kK) 'kK'
 
    Store(lL) 'lL'
 
    Store(mM) 'mM'
 
    Store(nN) 'nN'
 
    
 
    Store(oO) 'oO'
 
    Store(pP) 'pP'
 
    Store(qQ) 'qQ'
 
    Store(rR) 'rR'
 
    Store(sS) 'sS'
 
    Store(tT) 'tT'
 
    
 
    Store(uU) 'uU'
 
    Store(vV) 'vV'
 
    Store(wW) 'wW'
 
    Store(xX) 'xX'
 
    Store(yY) 'yY'
 
    Store(zZ) 'zZ'
 
 
c □■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□
 
c ╔═════════════════════════════════════════════════════════════════╗
 
c ║ TPA constants.                                                  ║
 
c ╚═════════════════════════════════════════════════════════════════╝
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ TPA markup keys.
 
    Store(BarKey)       "_"
 
    Store(ArchKey)      ")"
 
    Store(SilentKey)    "*"
 
    Store(StrickoutKey) "="
 
    Store(GrahemeKey)   "_"
 
    Store(ShwaKey)      "`"
 
    Store(PointerKey)   "^"
 
    Store(TPAglue)      U+E010
 
    Store(TPAspace)     U+E020
 
    Store(TPAcursor)    U+E030
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ TPAGraphemes.
 
    Store(TPA_a)   U+F001
 
    Store(TPA_A_)  U+F002
 
    Store(TPA_ar)  U+F003
 
    Store(TPA_b)   U+F004
 
    Store(TPA_c)   U+F005
 
    Store(TPA_ch)  U+F006
 
    Store(TPA_d)   U+F007
 
    
 
    Store(TPA_e)   U+F008
 
    Store(TPA_E_)  U+F009
 
    Store(TPA_er)  U+F010
 
    Store(TPA_f)   U+F011
 
    Store(TPA_g)   U+F012
 
    Store(TPA_h)   U+F013
 
    
 
    Store(TPA_i)   U+F014
 
    Store(TPA_I_)  U+F015
 
    Store(TPA_ir)  U+F016
 
    Store(TPA_j)   U+F017
 
    Store(TPA_k)   U+F018
 
    Store(TPA_l)   U+F019
 
    Store(TPA_m)   U+F020
 
    Store(TPA_n)   U+F021
 
    Store(TPA_ng)  U+F022
 
    
 
    Store(TPA_o)   U+F023
 
    Store(TPA_O_)  U+F024
 
    Store(TPA_oo)  U+F025
 
    Store(TPA_oo_) U+F026
 
    Store(TPA_or)  U+F027
 
    Store(TPA_ow)  U+F028
 
    Store(TPA_oy)  U+F029
 
    
 
    Store(TPA_p)   U+F030
 
    Store(TPA_q)   U+F031
 
    Store(TPA_r)   U+F032
 
    Store(TPA_s)   U+F033
 
    Store(TPA_sh)  U+F034
 
    Store(TPA_sh_) U+F035
 
    Store(TPA_t)   U+F036
 
    Store(TPA_th)  U+F037
 
    Store(TPA_th_) U+F038
 
    
 
    Store(TPA_u)   U+F039
 
    Store(TPA_U_)  U+F040
 
    Store(TPA_ur)  U+F041
 
    Store(TPA_v)   U+F042
 
    Store(TPA_w)   U+F043
 
    Store(TPA_x)   U+F044
 
    Store(TPA_y)   U+F045
 
    Store(TPA_z)   U+F046
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ All valid TPA graphemes
 
    Store(TPAgrapheme) $TPA_a $TPA_A_ $TPA_ar $TPA_b   $TPA_ch $TPA_d                            \
 
                       $TPA_e $TPA_E_ $TPA_er $TPA_f   $TPA_g  $TPA_h                            \
 
                       $TPA_i $TPA_I_ $TPA_ir $TPA_j   $TPA_k  $TPA_l   $TPA_m  $TPA_n  $TPA_ng  \
 
                       $TPA_o $TPA_O_ $TPA_oo $TPA_oo_ $TPA_or $TPA_ow  $TPA_oy                  \
 
                       $TPA_p $TPA_q  $TPA_r  $TPA_s   $TPA_sh $TPA_sh_ $TPA_t  $TPA_th $TPA_th_ \
 
                       $TPA_u $TPA_U_ $TPA_ur $TPA_v   $TPA_w  $TPA_x   $TPA_y  $TPA_z
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ TPA Punctuations
 
    Store(TPApunctuation) $TPAglue $TPAspace '-' c Used in GiM to remove TPA Constructions.
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ TPA Markup Unicode codepoints.
 
    Store(BarL)   U+E011 c For a, e, o, u
 
    Store(BarIi)  U+E012 c For i, I
 
    Store(BarU)   U+E013 c For A, E, O, U
 
    
 
    Store(ArchO)  U+E014 c For double "o" graphemes only.
 
    Store(TieO)   U+E015 c For double "o" graphemes only.
 
    Store(Arch_)  U+E016 c For all other double letter graphemes with an Arch.
 
    Store(Tie_)   U+E017 c For all other double letter graphemes with a  Tie.
 
 
    Store(ShwaL)  U+E018 c For a, e, o, u
 
    Store(ShwaIi) U+E019 c For i, I
 
    Store(ShwaU)  U+E01A c For A, E, O, U
 
    Store(Shwa2L) U+E01B c For all Lowercase double letter vowels.
 
    Store(Shwa2U) U+E01C c For all Uppercase double letter vowels.
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ TPAbar. The high Bar sysmbol for 'aeiou \ AEIOU'. NB "i" & "I" use a different Bar.
 
    Store(TPAbar) $BarL $BarL $BarIi $BarL $BarL \
 
                  $BarU $BarU $BarIi $BarU $BarU
 
c ┌------------------------------------------------------------------
 
c │ TPAshwa. The Shwa sysmbol for 'aeiou \ AEIOU'. NB "i" & "I" use a different Shwa.
 
    Store(TPAshwa) $ShwaL $ShwaL $ShwaIi $ShwaL $ShwaL \
 
                   $ShwaU $ShwaU $ShwaIi $ShwaU $ShwaU
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ TPA strickout. The TPA Strickout sysmbol '='. Different for each Latin Letter.
 
c │                  a      b      c      d
 
c │                  e      f      g      h
 
c │                  i      j      k      l      m      n
 
c │                  o      p      q      r      s      t
 
c │                  u      v      w      x      y      z
 
c │                  Then the same but for capital letters.
 
    Store(StrickOut) U+E061 U+E062 U+E063 U+E064               \ 
 
                     U+E065 U+E066 U+E067 U+E068               \
 
                     U+E069 U+E06A U+E06B U+E06C U+E06D U+E06E \
 
                     U+E06F U+E070 U+E071 U+E072 U+E073 U+E074 \
 
                     U+E075 U+E076 U+E077 U+E078 U+E079 U+E07A \
 
                     U+E041 U+E042 U+E043 U+E044               \
 
                     U+E045 U+E046 U+E047 U+E048               \
 
                     U+E049 U+E04A U+E04B U+E04C U+E04D U+E04E \
 
                     U+E04F U+E050 U+E051 U+E052 U+E053 U+E054 \
 
                     U+E055 U+E056 U+E057 U+E058 U+E059 U+E05A
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ TPA phonic clue superscripts table.
 
c │                a      b      c      d        e      f      g      h        i      j      k      l      m      n        o      p      q      r      s      t        u      v      w      x      y      z           A      B      C      D        E      F      G      H        I      J      K      L      M      N        O      P      Q      R      S      T        U      V      W      X      Y      Z
 
    Store(Sup_a)   U+F401 U+F401 U+F301 U+F401   U+F401 U+F101 U+F501 U+F501   U+F201 U+F101 U+F301 U+F201 U+F801 U+F501   U+F401 U+F401 U+F401 U+F201 U+F301 U+F301   U+F401 U+F301 U+F501 U+F301 U+F301 U+F301      U+F601 U+F601 U+F501 U+F701   U+F401 U+F401 U+F601 U+F701   U+F201 U+F201 U+F601 U+F401 U+F801 U+F701   U+F701 U+F501 U+F701 U+F601 U+F401 U+F401   U+F701 U+F601 U+F801 U+F501 U+F501 U+F501 c a
 
    Store(Sup_A_)  U+F402 U+F402 U+F302 U+F402   U+F402 U+F102 U+F502 U+F502   U+F202 U+F102 U+F302 U+F202 U+F802 U+F502   U+F402 U+F402 U+F402 U+F202 U+F302 U+F302   U+F402 U+F302 U+F502 U+F302 U+F302 U+F302      U+F602 U+F602 U+F502 U+F702   U+F402 U+F402 U+F602 U+F702   U+F202 U+F202 U+F602 U+F402 U+F802 U+F702   U+F702 U+F502 U+F702 U+F602 U+F402 U+F402   U+F702 U+F602 U+F802 U+F502 U+F502 U+F502 c a_
 
    Store(Sup_ar)  U+F403 U+F403 U+F303 U+F403   U+F403 U+F103 U+F503 U+F503   U+F203 U+F103 U+F303 U+F203 U+F803 U+F503   U+F403 U+F403 U+F403 U+F203 U+F303 U+F303   U+F403 U+F303 U+F503 U+F303 U+F303 U+F303      U+F603 U+F603 U+F503 U+F703   U+F403 U+F403 U+F603 U+F703   U+F203 U+F203 U+F603 U+F403 U+F803 U+F703   U+F703 U+F503 U+F703 U+F603 U+F403 U+F403   U+F703 U+F603 U+F803 U+F503 U+F503 U+F503 c ar
 
    Store(Sup_b)   U+F404 U+F404 U+F304 U+F404   U+F404 U+F104 U+F504 U+F504   U+F204 U+F104 U+F304 U+F204 U+F804 U+F504   U+F404 U+F404 U+F404 U+F204 U+F304 U+F304   U+F404 U+F304 U+F504 U+F304 U+F304 U+F304      U+F604 U+F604 U+F504 U+F704   U+F404 U+F404 U+F604 U+F704   U+F204 U+F204 U+F604 U+F404 U+F804 U+F704   U+F704 U+F504 U+F704 U+F604 U+F404 U+F404   U+F704 U+F604 U+F804 U+F504 U+F504 U+F504 c b
 
    Store(Sup_c)   U+F405 U+F405 U+F305 U+F405   U+F405 U+F105 U+F505 U+F505   U+F205 U+F105 U+F305 U+F205 U+F805 U+F505   U+F405 U+F405 U+F405 U+F205 U+F305 U+F305   U+F405 U+F305 U+F505 U+F305 U+F305 U+F305      U+F604 U+F604 U+F504 U+F704   U+F404 U+F404 U+F604 U+F704   U+F204 U+F204 U+F604 U+F404 U+F804 U+F704   U+F704 U+F504 U+F704 U+F604 U+F404 U+F404   U+F704 U+F604 U+F804 U+F504 U+F504 U+F504 c ch
 
    Store(Sup_ch)  U+F406 U+F406 U+F306 U+F406   U+F406 U+F106 U+F506 U+F506   U+F206 U+F106 U+F306 U+F206 U+F806 U+F506   U+F406 U+F406 U+F406 U+F206 U+F306 U+F306   U+F406 U+F306 U+F506 U+F306 U+F306 U+F306      U+F606 U+F606 U+F506 U+F706   U+F406 U+F406 U+F606 U+F706   U+F206 U+F206 U+F606 U+F406 U+F806 U+F706   U+F706 U+F506 U+F706 U+F606 U+F406 U+F406   U+F706 U+F606 U+F806 U+F506 U+F506 U+F506 c ch
 
    Store(Sup_d)   U+F407 U+F407 U+F307 U+F407   U+F407 U+F107 U+F507 U+F507   U+F207 U+F107 U+F307 U+F207 U+F807 U+F507   U+F407 U+F407 U+F407 U+F207 U+F307 U+F307   U+F407 U+F307 U+F507 U+F307 U+F307 U+F307      U+F607 U+F607 U+F507 U+F707   U+F407 U+F407 U+F607 U+F707   U+F207 U+F207 U+F607 U+F407 U+F807 U+F707   U+F707 U+F507 U+F707 U+F607 U+F407 U+F407   U+F707 U+F607 U+F807 U+F507 U+F507 U+F507 c d
 
c │                a      b      c      d        e      f      g      h        i      j      k      l      m      n        o      p      q      r      s      t        u      v      w      x      y      z           A      B      C      D        E      F      G      H        I      J      K      L      M      N        O      P      Q      R      S      T        U      V      W      X      Y      Z
 
    Store(Sup_e)   U+F408 U+F408 U+F308 U+F408   U+F408 U+F108 U+F508 U+F508   U+F208 U+F108 U+F308 U+F208 U+F808 U+F508   U+F408 U+F408 U+F408 U+F208 U+F308 U+F308   U+F408 U+F308 U+F508 U+F308 U+F308 U+F308      U+F608 U+F608 U+F508 U+F708   U+F408 U+F408 U+F608 U+F708   U+F208 U+F208 U+F608 U+F408 U+F808 U+F708   U+F708 U+F508 U+F708 U+F608 U+F408 U+F408   U+F708 U+F608 U+F808 U+F508 U+F508 U+F508 c e
 
    Store(Sup_E_)  U+F409 U+F409 U+F309 U+F409   U+F409 U+F109 U+F509 U+F509   U+F209 U+F109 U+F309 U+F209 U+F809 U+F509   U+F409 U+F409 U+F409 U+F209 U+F309 U+F309   U+F409 U+F309 U+F509 U+F309 U+F309 U+F309      U+F609 U+F609 U+F509 U+F709   U+F409 U+F409 U+F609 U+F709   U+F209 U+F209 U+F609 U+F409 U+F809 U+F709   U+F709 U+F509 U+F709 U+F609 U+F409 U+F409   U+F709 U+F609 U+F809 U+F509 U+F509 U+F509 c E_
 
    Store(Sup_er)  U+F410 U+F410 U+F310 U+F410   U+F410 U+F110 U+F510 U+F510   U+F210 U+F110 U+F310 U+F210 U+F810 U+F510   U+F410 U+F410 U+F410 U+F210 U+F310 U+F310   U+F410 U+F310 U+F510 U+F310 U+F310 U+F310      U+F610 U+F610 U+F510 U+F710   U+F410 U+F410 U+F610 U+F710   U+F210 U+F210 U+F610 U+F410 U+F810 U+F710   U+F710 U+F510 U+F710 U+F610 U+F410 U+F410   U+F710 U+F610 U+F810 U+F510 U+F510 U+F510 c er
 
    Store(Sup_f)   U+F411 U+F411 U+F311 U+F411   U+F411 U+F111 U+F511 U+F511   U+F211 U+F111 U+F311 U+F211 U+F811 U+F511   U+F411 U+F411 U+F411 U+F211 U+F311 U+F311   U+F411 U+F311 U+F511 U+F311 U+F311 U+F311      U+F611 U+F611 U+F511 U+F711   U+F411 U+F411 U+F611 U+F711   U+F211 U+F211 U+F611 U+F411 U+F811 U+F711   U+F711 U+F511 U+F711 U+F611 U+F411 U+F411   U+F711 U+F611 U+F811 U+F511 U+F511 U+F511 c f
 
    Store(Sup_g)   U+F412 U+F412 U+F312 U+F412   U+F412 U+F112 U+F512 U+F512   U+F212 U+F112 U+F312 U+F212 U+F812 U+F512   U+F412 U+F412 U+F412 U+F212 U+F312 U+F312   U+F412 U+F312 U+F512 U+F312 U+F312 U+F312      U+F612 U+F612 U+F512 U+F712   U+F412 U+F412 U+F612 U+F712   U+F212 U+F212 U+F612 U+F412 U+F812 U+F712   U+F712 U+F512 U+F712 U+F612 U+F412 U+F412   U+F712 U+F612 U+F812 U+F512 U+F512 U+F512 c g
 
    Store(Sup_h)   U+F413 U+F413 U+F313 U+F413   U+F413 U+F113 U+F513 U+F513   U+F213 U+F113 U+F313 U+F213 U+F813 U+F513   U+F413 U+F413 U+F413 U+F213 U+F313 U+F313   U+F413 U+F313 U+F513 U+F313 U+F313 U+F313      U+F613 U+F613 U+F513 U+F713   U+F413 U+F413 U+F613 U+F713   U+F213 U+F213 U+F613 U+F413 U+F813 U+F713   U+F713 U+F513 U+F713 U+F613 U+F413 U+F413   U+F713 U+F613 U+F813 U+F513 U+F513 U+F513 c h
 
c │                a      b      c      d        e      f      g      h        i      j      k      l      m      n        o      p      q      r      s      t        u      v      w      x      y      z           A      B      C      D        E      F      G      H        I      J      K      L      M      N        O      P      Q      R      S      T        U      V      W      X      Y      Z
 
    Store(Sup_i)   U+F414 U+F414 U+F314 U+F414   U+F414 U+F114 U+F514 U+F514   U+F214 U+F114 U+F314 U+F214 U+F814 U+F514   U+F414 U+F414 U+F414 U+F214 U+F314 U+F314   U+F414 U+F314 U+F514 U+F314 U+F314 U+F314      U+F614 U+F614 U+F514 U+F714   U+F414 U+F414 U+F614 U+F714   U+F214 U+F214 U+F614 U+F414 U+F814 U+F714   U+F714 U+F514 U+F714 U+F614 U+F414 U+F414   U+F714 U+F614 U+F814 U+F514 U+F514 U+F514 c i
 
    Store(Sup_I_)  U+F415 U+F415 U+F315 U+F415   U+F415 U+F115 U+F515 U+F515   U+F215 U+F115 U+F315 U+F215 U+F815 U+F515   U+F415 U+F415 U+F415 U+F215 U+F315 U+F315   U+F415 U+F315 U+F515 U+F315 U+F315 U+F315      U+F615 U+F615 U+F515 U+F715   U+F415 U+F415 U+F615 U+F715   U+F215 U+F215 U+F615 U+F415 U+F815 U+F715   U+F715 U+F515 U+F715 U+F615 U+F415 U+F415   U+F715 U+F615 U+F815 U+F515 U+F515 U+F515 c I_
 
    Store(Sup_ir)  U+F416 U+F416 U+F316 U+F416   U+F416 U+F116 U+F516 U+F516   U+F216 U+F116 U+F316 U+F216 U+F816 U+F516   U+F416 U+F416 U+F416 U+F216 U+F316 U+F316   U+F416 U+F316 U+F516 U+F316 U+F316 U+F316      U+F616 U+F616 U+F516 U+F716   U+F416 U+F416 U+F616 U+F716   U+F216 U+F216 U+F616 U+F416 U+F816 U+F716   U+F716 U+F516 U+F716 U+F616 U+F416 U+F416   U+F716 U+F616 U+F816 U+F516 U+F516 U+F516 c ir
 
    Store(Sup_j)   U+F417 U+F417 U+F317 U+F417   U+F417 U+F117 U+F517 U+F517   U+F217 U+F117 U+F317 U+F217 U+F817 U+F517   U+F417 U+F417 U+F417 U+F217 U+F317 U+F317   U+F417 U+F317 U+F517 U+F317 U+F317 U+F317      U+F617 U+F617 U+F517 U+F717   U+F417 U+F417 U+F617 U+F717   U+F217 U+F217 U+F617 U+F417 U+F817 U+F717   U+F717 U+F517 U+F717 U+F617 U+F417 U+F417   U+F717 U+F617 U+F817 U+F517 U+F517 U+F517 c j
 
    Store(Sup_k)   U+F418 U+F418 U+F318 U+F418   U+F418 U+F118 U+F518 U+F518   U+F218 U+F118 U+F318 U+F218 U+F818 U+F518   U+F418 U+F418 U+F418 U+F218 U+F318 U+F318   U+F418 U+F318 U+F518 U+F318 U+F318 U+F318      U+F618 U+F618 U+F518 U+F718   U+F418 U+F418 U+F618 U+F718   U+F218 U+F218 U+F618 U+F418 U+F818 U+F718   U+F718 U+F518 U+F718 U+F618 U+F418 U+F418   U+F718 U+F618 U+F818 U+F518 U+F518 U+F518 c k
 
    Store(Sup_l)   U+F419 U+F419 U+F319 U+F419   U+F419 U+F119 U+F519 U+F519   U+F219 U+F119 U+F319 U+F219 U+F819 U+F519   U+F419 U+F419 U+F419 U+F219 U+F319 U+F319   U+F419 U+F319 U+F519 U+F319 U+F319 U+F319      U+F619 U+F619 U+F519 U+F719   U+F419 U+F419 U+F619 U+F719   U+F219 U+F219 U+F619 U+F419 U+F819 U+F719   U+F719 U+F519 U+F719 U+F619 U+F419 U+F419   U+F719 U+F619 U+F819 U+F519 U+F519 U+F519 c l
 
    Store(Sup_m)   U+F420 U+F420 U+F320 U+F420   U+F420 U+F120 U+F520 U+F520   U+F220 U+F120 U+F320 U+F220 U+F820 U+F520   U+F420 U+F420 U+F420 U+F220 U+F320 U+F320   U+F420 U+F320 U+F520 U+F320 U+F320 U+F320      U+F620 U+F620 U+F520 U+F720   U+F420 U+F420 U+F620 U+F720   U+F220 U+F220 U+F620 U+F420 U+F820 U+F720   U+F720 U+F520 U+F720 U+F620 U+F420 U+F420   U+F720 U+F620 U+F820 U+F520 U+F520 U+F520 c m
 
    Store(Sup_n)   U+F421 U+F421 U+F321 U+F421   U+F421 U+F121 U+F521 U+F521   U+F221 U+F121 U+F321 U+F221 U+F821 U+F521   U+F421 U+F421 U+F421 U+F221 U+F321 U+F321   U+F421 U+F321 U+F521 U+F321 U+F321 U+F321      U+F621 U+F621 U+F521 U+F721   U+F421 U+F421 U+F621 U+F721   U+F221 U+F221 U+F621 U+F421 U+F821 U+F721   U+F721 U+F521 U+F721 U+F621 U+F421 U+F421   U+F721 U+F621 U+F821 U+F521 U+F521 U+F521 c n
 
    Store(Sup_ng)  U+F422 U+F422 U+F322 U+F422   U+F422 U+F122 U+F522 U+F522   U+F222 U+F122 U+F322 U+F222 U+F822 U+F522   U+F422 U+F422 U+F422 U+F222 U+F322 U+F322   U+F422 U+F322 U+F522 U+F322 U+F322 U+F322      U+F622 U+F622 U+F522 U+F722   U+F422 U+F422 U+F622 U+F722   U+F222 U+F222 U+F622 U+F422 U+F822 U+F722   U+F722 U+F522 U+F722 U+F622 U+F422 U+F422   U+F722 U+F622 U+F822 U+F522 U+F522 U+F522 c ng
 
c │                a      b      c      d        e      f      g      h        i      j      k      l      m      n        o      p      q      r      s      t        u      v      w      x      y      z           A      B      C      D        E      F      G      H        I      J      K      L      M      N        O      P      Q      R      S      T        U      V      W      X      Y      Z
 
    Store(Sup_o)   U+F423 U+F423 U+F323 U+F423   U+F423 U+F123 U+F523 U+F523   U+F223 U+F123 U+F323 U+F223 U+F823 U+F523   U+F423 U+F423 U+F423 U+F223 U+F323 U+F323   U+F423 U+F323 U+F523 U+F323 U+F323 U+F323      U+F623 U+F623 U+F523 U+F723   U+F423 U+F423 U+F623 U+F723   U+F223 U+F223 U+F623 U+F423 U+F823 U+F723   U+F723 U+F523 U+F723 U+F623 U+F423 U+F423   U+F723 U+F623 U+F823 U+F523 U+F523 U+F523 c o
 
    Store(Sup_O_)  U+F424 U+F424 U+F324 U+F424   U+F424 U+F124 U+F524 U+F524   U+F224 U+F124 U+F324 U+F224 U+F824 U+F524   U+F424 U+F424 U+F424 U+F224 U+F324 U+F324   U+F424 U+F324 U+F524 U+F324 U+F324 U+F324      U+F624 U+F624 U+F524 U+F724   U+F424 U+F424 U+F624 U+F724   U+F224 U+F224 U+F624 U+F424 U+F824 U+F724   U+F724 U+F524 U+F724 U+F624 U+F424 U+F424   U+F724 U+F624 U+F824 U+F524 U+F524 U+F524 c O_
 
    Store(Sup_oo)  U+F425 U+F425 U+F325 U+F425   U+F425 U+F125 U+F525 U+F525   U+F225 U+F125 U+F325 U+F225 U+F825 U+F525   U+F425 U+F425 U+F425 U+F225 U+F325 U+F325   U+F425 U+F325 U+F525 U+F325 U+F325 U+F325      U+F625 U+F625 U+F525 U+F725   U+F425 U+F425 U+F625 U+F725   U+F225 U+F225 U+F625 U+F425 U+F825 U+F725   U+F725 U+F525 U+F725 U+F625 U+F425 U+F425   U+F725 U+F625 U+F825 U+F525 U+F525 U+F525 c oo
 
    Store(Sup_OO_) U+F426 U+F426 U+F326 U+F426   U+F426 U+F126 U+F526 U+F526   U+F226 U+F126 U+F326 U+F226 U+F826 U+F526   U+F426 U+F426 U+F426 U+F226 U+F326 U+F326   U+F426 U+F326 U+F526 U+F326 U+F326 U+F326      U+F626 U+F626 U+F526 U+F726   U+F426 U+F426 U+F626 U+F726   U+F226 U+F226 U+F626 U+F426 U+F826 U+F726   U+F726 U+F526 U+F726 U+F626 U+F426 U+F426   U+F726 U+F626 U+F826 U+F526 U+F526 U+F526 c oo_
 
    Store(Sup_or)  U+F427 U+F427 U+F327 U+F427   U+F427 U+F127 U+F527 U+F527   U+F227 U+F127 U+F327 U+F227 U+F827 U+F527   U+F427 U+F427 U+F427 U+F227 U+F327 U+F327   U+F427 U+F327 U+F527 U+F327 U+F327 U+F327      U+F627 U+F627 U+F527 U+F727   U+F427 U+F427 U+F627 U+F727   U+F227 U+F227 U+F627 U+F427 U+F827 U+F727   U+F727 U+F527 U+F727 U+F627 U+F427 U+F427   U+F727 U+F627 U+F827 U+F527 U+F527 U+F527 c or
 
    Store(Sup_ow)  U+F428 U+F428 U+F328 U+F428   U+F428 U+F128 U+F528 U+F528   U+F228 U+F128 U+F328 U+F228 U+F828 U+F528   U+F428 U+F428 U+F428 U+F228 U+F328 U+F328   U+F428 U+F328 U+F528 U+F328 U+F328 U+F328      U+F628 U+F628 U+F528 U+F728   U+F428 U+F428 U+F628 U+F728   U+F228 U+F228 U+F628 U+F428 U+F828 U+F728   U+F728 U+F528 U+F728 U+F628 U+F428 U+F428   U+F728 U+F628 U+F828 U+F528 U+F528 U+F528 c ow
 
    Store(Sup_oy)  U+F429 U+F429 U+F329 U+F429   U+F429 U+F129 U+F529 U+F529   U+F229 U+F129 U+F329 U+F229 U+F829 U+F529   U+F429 U+F429 U+F429 U+F229 U+F329 U+F329   U+F429 U+F329 U+F529 U+F329 U+F329 U+F329      U+F629 U+F629 U+F529 U+F729   U+F429 U+F429 U+F629 U+F729   U+F229 U+F229 U+F629 U+F429 U+F829 U+F729   U+F729 U+F529 U+F729 U+F629 U+F429 U+F429   U+F729 U+F629 U+F829 U+F529 U+F529 U+F529 c oy
 
c │                a      b      c      d        e      f      g      h        i      j      k      l      m      n        o      p      q      r      s      t        u      v      w      x      y      z           A      B      C      D        E      F      G      H        I      J      K      L      M      N        O      P      Q      R      S      T        U      V      W      X      Y      Z
 
    Store(Sup_p)   U+F430 U+F430 U+F330 U+F430   U+F430 U+F130 U+F530 U+F530   U+F230 U+F130 U+F330 U+F230 U+F830 U+F530   U+F430 U+F430 U+F430 U+F230 U+F330 U+F330   U+F430 U+F330 U+F530 U+F330 U+F330 U+F330      U+F630 U+F630 U+F530 U+F730   U+F430 U+F430 U+F630 U+F730   U+F230 U+F230 U+F630 U+F430 U+F830 U+F730   U+F730 U+F530 U+F730 U+F630 U+F430 U+F430   U+F730 U+F630 U+F830 U+F530 U+F530 U+F530 c p
 
    Store(Sup_q)   U+F431 U+F431 U+F331 U+F431   U+F431 U+F131 U+F531 U+F531   U+F231 U+F131 U+F331 U+F231 U+F831 U+F531   U+F431 U+F431 U+F431 U+F231 U+F331 U+F331   U+F431 U+F331 U+F531 U+F331 U+F331 U+F331      U+F631 U+F631 U+F531 U+F731   U+F431 U+F431 U+F631 U+F731   U+F231 U+F231 U+F631 U+F431 U+F831 U+F731   U+F731 U+F531 U+F731 U+F631 U+F431 U+F431   U+F731 U+F631 U+F831 U+F531 U+F531 U+F531 c q
 
    Store(Sup_r)   U+F432 U+F432 U+F332 U+F432   U+F432 U+F132 U+F532 U+F532   U+F232 U+F132 U+F332 U+F232 U+F832 U+F532   U+F432 U+F432 U+F432 U+F232 U+F332 U+F332   U+F432 U+F332 U+F532 U+F332 U+F332 U+F332      U+F632 U+F632 U+F532 U+F732   U+F432 U+F432 U+F632 U+F732   U+F232 U+F232 U+F632 U+F432 U+F832 U+F732   U+F732 U+F532 U+F732 U+F632 U+F432 U+F432   U+F732 U+F632 U+F832 U+F532 U+F532 U+F532 c r
 
    Store(Sup_s)   U+F433 U+F433 U+F333 U+F433   U+F433 U+F133 U+F533 U+F533   U+F233 U+F133 U+F333 U+F233 U+F833 U+F533   U+F433 U+F433 U+F433 U+F233 U+F333 U+F333   U+F433 U+F333 U+F533 U+F333 U+F333 U+F333      U+F633 U+F633 U+F533 U+F733   U+F433 U+F433 U+F633 U+F733   U+F233 U+F233 U+F633 U+F433 U+F833 U+F733   U+F733 U+F533 U+F733 U+F633 U+F433 U+F433   U+F733 U+F633 U+F833 U+F533 U+F533 U+F533 c s
 
    Store(Sup_sh)  U+F434 U+F434 U+F334 U+F434   U+F434 U+F134 U+F534 U+F534   U+F234 U+F134 U+F334 U+F234 U+F834 U+F534   U+F434 U+F434 U+F434 U+F234 U+F334 U+F334   U+F434 U+F334 U+F534 U+F334 U+F334 U+F334      U+F634 U+F634 U+F534 U+F734   U+F434 U+F434 U+F634 U+F734   U+F234 U+F234 U+F634 U+F434 U+F834 U+F734   U+F734 U+F534 U+F734 U+F634 U+F434 U+F434   U+F734 U+F634 U+F834 U+F534 U+F534 U+F534 c sh
 
    Store(Sup_sh_) U+F435 U+F435 U+F335 U+F435   U+F435 U+F135 U+F535 U+F535   U+F235 U+F135 U+F335 U+F235 U+F835 U+F535   U+F435 U+F435 U+F435 U+F235 U+F335 U+F335   U+F435 U+F335 U+F535 U+F335 U+F335 U+F335      U+F635 U+F635 U+F535 U+F735   U+F435 U+F435 U+F635 U+F735   U+F235 U+F235 U+F635 U+F435 U+F835 U+F735   U+F735 U+F535 U+F735 U+F635 U+F435 U+F435   U+F735 U+F635 U+F835 U+F535 U+F535 U+F535 c sh_
 
    Store(Sup_t)   U+F436 U+F436 U+F336 U+F436   U+F436 U+F136 U+F536 U+F536   U+F236 U+F136 U+F336 U+F236 U+F836 U+F536   U+F436 U+F436 U+F436 U+F236 U+F336 U+F336   U+F436 U+F336 U+F536 U+F336 U+F336 U+F336      U+F636 U+F636 U+F536 U+F736   U+F436 U+F436 U+F636 U+F736   U+F236 U+F236 U+F636 U+F436 U+F836 U+F736   U+F736 U+F536 U+F736 U+F636 U+F436 U+F436   U+F736 U+F636 U+F836 U+F536 U+F536 U+F536 c t
 
    Store(Sup_th)  U+F437 U+F437 U+F337 U+F437   U+F437 U+F137 U+F537 U+F537   U+F237 U+F137 U+F337 U+F237 U+F837 U+F537   U+F437 U+F437 U+F437 U+F237 U+F337 U+F337   U+F437 U+F337 U+F537 U+F337 U+F337 U+F337      U+F637 U+F637 U+F537 U+F737   U+F437 U+F437 U+F637 U+F737   U+F237 U+F237 U+F637 U+F437 U+F837 U+F737   U+F737 U+F537 U+F737 U+F637 U+F437 U+F437   U+F737 U+F637 U+F837 U+F537 U+F537 U+F537 c th
 
    Store(Sup_th_) U+F438 U+F438 U+F338 U+F438   U+F438 U+F138 U+F538 U+F538   U+F238 U+F138 U+F338 U+F238 U+F838 U+F538   U+F438 U+F438 U+F438 U+F238 U+F338 U+F338   U+F438 U+F338 U+F538 U+F338 U+F338 U+F338      U+F638 U+F638 U+F538 U+F738   U+F438 U+F438 U+F638 U+F738   U+F238 U+F238 U+F638 U+F438 U+F838 U+F738   U+F738 U+F538 U+F738 U+F638 U+F438 U+F438   U+F738 U+F638 U+F838 U+F538 U+F538 U+F538 c th_
 
c │                a      b      c      d        e      f      g      h        i      j      k      l      m      n        o      p      q      r      s      t        u      v      w      x      y      z           A      B      C      D        E      F      G      H        I      J      K      L      M      N        O      P      Q      R      S      T        U      V      W      X      Y      Z
 
    Store(Sup_u)   U+F439 U+F439 U+F339 U+F439   U+F439 U+F139 U+F539 U+F539   U+F239 U+F139 U+F339 U+F239 U+F839 U+F539   U+F439 U+F439 U+F439 U+F239 U+F339 U+F339   U+F439 U+F339 U+F539 U+F339 U+F339 U+F339      U+F639 U+F639 U+F539 U+F739   U+F439 U+F439 U+F639 U+F739   U+F239 U+F239 U+F639 U+F439 U+F839 U+F739   U+F739 U+F539 U+F739 U+F639 U+F439 U+F439   U+F739 U+F639 U+F839 U+F539 U+F539 U+F539 c u
 
    Store(Sup_U_)  U+F440 U+F440 U+F340 U+F440   U+F440 U+F140 U+F540 U+F540   U+F240 U+F140 U+F340 U+F240 U+F840 U+F540   U+F440 U+F440 U+F440 U+F240 U+F340 U+F340   U+F440 U+F340 U+F540 U+F340 U+F340 U+F340      U+F640 U+F640 U+F540 U+F740   U+F440 U+F440 U+F640 U+F740   U+F240 U+F240 U+F640 U+F440 U+F840 U+F740   U+F740 U+F540 U+F740 U+F640 U+F440 U+F440   U+F740 U+F640 U+F840 U+F540 U+F540 U+F540 c U_
 
    Store(Sup_ur)  U+F441 U+F441 U+F341 U+F441   U+F441 U+F141 U+F541 U+F541   U+F241 U+F141 U+F341 U+F241 U+F841 U+F541   U+F441 U+F441 U+F441 U+F241 U+F341 U+F341   U+F441 U+F341 U+F541 U+F341 U+F341 U+F341      U+F641 U+F641 U+F541 U+F741   U+F441 U+F441 U+F641 U+F741   U+F241 U+F241 U+F641 U+F441 U+F841 U+F741   U+F741 U+F541 U+F741 U+F641 U+F441 U+F441   U+F741 U+F641 U+F841 U+F541 U+F541 U+F541 c ur
 
    Store(Sup_v)   U+F442 U+F442 U+F342 U+F442   U+F442 U+F142 U+F542 U+F542   U+F242 U+F142 U+F342 U+F242 U+F842 U+F542   U+F442 U+F442 U+F442 U+F242 U+F342 U+F342   U+F442 U+F342 U+F542 U+F342 U+F342 U+F342      U+F642 U+F642 U+F542 U+F742   U+F442 U+F442 U+F642 U+F742   U+F242 U+F242 U+F642 U+F442 U+F842 U+F742   U+F742 U+F542 U+F742 U+F642 U+F442 U+F442   U+F742 U+F642 U+F842 U+F542 U+F542 U+F542 c v
 
    Store(Sup_w)   U+F443 U+F443 U+F343 U+F443   U+F443 U+F143 U+F543 U+F543   U+F243 U+F143 U+F343 U+F243 U+F843 U+F543   U+F443 U+F443 U+F443 U+F243 U+F343 U+F343   U+F443 U+F343 U+F543 U+F343 U+F343 U+F343      U+F643 U+F643 U+F543 U+F743   U+F443 U+F443 U+F643 U+F743   U+F243 U+F243 U+F643 U+F443 U+F843 U+F743   U+F743 U+F543 U+F743 U+F643 U+F443 U+F443   U+F743 U+F643 U+F843 U+F543 U+F543 U+F543 c w
 
    Store(Sup_x)   U+F444 U+F444 U+F344 U+F444   U+F444 U+F144 U+F544 U+F544   U+F244 U+F144 U+F344 U+F244 U+F844 U+F544   U+F444 U+F444 U+F444 U+F244 U+F344 U+F344   U+F444 U+F344 U+F544 U+F344 U+F344 U+F344      U+F644 U+F644 U+F544 U+F744   U+F444 U+F444 U+F644 U+F744   U+F244 U+F244 U+F644 U+F444 U+F844 U+F744   U+F744 U+F544 U+F744 U+F644 U+F444 U+F444   U+F744 U+F644 U+F844 U+F544 U+F544 U+F544 c x
 
    Store(Sup_y)   U+F445 U+F445 U+F345 U+F445   U+F445 U+F145 U+F545 U+F545   U+F245 U+F145 U+F345 U+F245 U+F845 U+F545   U+F445 U+F445 U+F445 U+F245 U+F345 U+F345   U+F445 U+F345 U+F545 U+F345 U+F345 U+F345      U+F645 U+F645 U+F545 U+F745   U+F445 U+F445 U+F645 U+F745   U+F245 U+F245 U+F645 U+F445 U+F845 U+F745   U+F745 U+F545 U+F745 U+F645 U+F445 U+F445   U+F745 U+F645 U+F845 U+F545 U+F545 U+F545 c y
 
    Store(Sup_z)   U+F446 U+F446 U+F346 U+F446   U+F446 U+F146 U+F546 U+F546   U+F246 U+F146 U+F346 U+F246 U+F846 U+F546   U+F446 U+F446 U+F446 U+F246 U+F346 U+F346   U+F446 U+F346 U+F546 U+F346 U+F346 U+F346      U+F646 U+F646 U+F546 U+F746   U+F446 U+F446 U+F646 U+F746   U+F246 U+F246 U+F646 U+F446 U+F846 U+F746   U+F746 U+F546 U+F746 U+F646 U+F446 U+F446   U+F746 U+F646 U+F846 U+F546 U+F546 U+F546 c z
 
c │                a      b      c      d        e      f      g      h        i      j      k      l      m      n        o      p      q      r      s      t        u      v      w      x      y      z           A      B      C      D        E      F      G      H        I      J      K      L      M      N        O      P      Q      R      S      T        U      V      W      X      Y      Z
 
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ TPA Silent Letters. The TPA Silent Letter sysmbol 'x'. Different for each Latin Letter.
 
c │                           a      b      c      d
 
c │                           e      f      g      h
 
c │                           i      j      k      l      m      n
 
c │                           o      p      q      r      s      t
 
c │                           u      v      w      x      y      z
 
c │                           Then the same but for capital letters.
 
    Store(SilentLetterMarkup) U+E114 U+E104 U+E113 U+E104               \
 
                              U+E114 U+E101 U+E115 U+E105               \
 
                              U+E102 U+E101 U+E103 U+E102 U+E118 U+E115 \
 
                              U+E114 U+E114 U+E114 U+E112 U+E113 U+E103 \
 
                              U+E114 U+E113 U+E115 U+E113 U+E113 U+E113 \
 
                              U+E106 U+E106 U+E105 U+E107               \
 
                              U+E104 U+E104 U+E106 U+E107               \
 
                              U+E102 U+E102 U+E106 U+E104 U+E108 U+E107 \
 
                              U+E107 U+E105 U+E107 U+E106 U+E104 U+E104 \
 
                              U+E107 U+E106 U+E108 U+E105 U+E105 U+E105
 
                           
 
c ╒══════════════════════════════════════════════════════════════════
 
c │ Pointer. A pointer sysmbol '^'. Different for each Latin Letter. NOT part of TPA.
 
c │                a      b      c      d
 
c │                e      f      g      h
 
c │                i      j      k      l      m      n
 
c │                o      p      q      r      s      t
 
c │                u      v      w      x      y      z
 
c │                Then the same but for capital letters.
 
    Store(Pointer) U+E214 U+E214 U+E213 U+E214               \
 
                   U+E214 U+E211 U+E215 U+E215               \
 
                   U+E212 U+E211 U+E213 U+E212 U+E218 U+E215 \
 
                   U+E214 U+E214 U+E214 U+E212 U+E213 U+E213 \
 
                   U+E214 U+E213 U+E215 U+E213 U+E213 U+E213 \
 
                   U+E216 U+E216 U+E215 U+E217               \
 
                   U+E214 U+E214 U+E216 U+E217               \
 
                   U+E212 U+E212 U+E216 U+E214 U+E218 U+E217 \
 
                   U+E217 U+E215 U+E217 U+E216 U+E214 U+E214 \
 
                   U+E217 U+E216 U+E218 U+E215 U+E215 U+E215
 
 
c □■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□■■□
 
c ╔═════════════════════════════════════════════════════════════════╗
 
c ║ Menu constants.                                                 ║
 
c ╚═════════════════════════════════════════════════════════════════╝
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Options for menus.
 
    Store(Choices2) '12'
 
    Store(Choices3) '123'
 
    Store(Choices4) '1234'
 
    Store(Choices5) '12345'
 
    Store(Choices6) '123456'
 
    Store(Choices7) '1234567'
 
    Store(Choices8) '12345678'
 
    Store(Choices9) '123456789'
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Menu elements.
 
    Store(LeftMenu)      U+276A c (
 
    Store(RightMenu)     U+276B c )
 
    Store(HalfSpace)     U+202F
 
    Store(NonBreakSpace) U+00A0
 
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Menu options 1-9 (subscript numbers).
 
    Store(Opn1) U+2081
 
    Store(Opn2) U+2082  
 
    Store(Opn3) U+2083
 
    Store(Opn4) U+2084
 
    Store(Opn5) U+2085
 
    Store(Opn6) U+2086
 
    Store(Opn7) U+2087
 
    Store(Opn8) U+2088
 
    Store(Opn9) U+2089
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ Menus strings
 
c │ eg [ x1 x2 x3 ]
 
    Store(a_Menu) $LeftMenu $HalfSpace $TPA_a  $Opn1 $NonBreakSpace $TPA_A_  $Opn2 $NonBreakSpace $TPA_ar  $Opn3 $HalfSpace $RightMenu
 
    Store(c_Menu) $LeftMenu $HalfSpace $TPA_ch $Opn1 $NonBreakSpace $TPA_k   $Opn2 $NonBreakSpace $TPA_s   $Opn3 $HalfSpace $RightMenu
 
    Store(e_Menu) $LeftMenu $HalfSpace $TPA_e  $Opn1 $NonBreakSpace $TPA_E_  $Opn2 $NonBreakSpace $TPA_er  $Opn3 $HalfSpace $RightMenu
 
    Store(i_Menu) $LeftMenu $HalfSpace $TPA_i  $Opn1 $NonBreakSpace $TPA_I_  $Opn2 $NonBreakSpace $TPA_ir  $Opn3 $HalfSpace $RightMenu
 
    Store(n_Menu) $LeftMenu $HalfSpace $TPA_n  $Opn1 $NonBreakSpace $TPA_ng  $Opn2                               $HalfSpace $RightMenu
 
    Store(o_Menu) $LeftMenu $HalfSpace $TPA_o  $Opn1 $NonBreakSpace $TPA_O_  $Opn2 $NonBreakSpace $TPA_oo  $Opn3 \
 
                                                     $NonBreakSpace $TPA_oo_ $Opn4 $NonBreakSpace $TPA_or  $Opn5 \
 
                                                     $NonBreakSpace $TPA_ow  $Opn6 $NonBreakSpace $TPA_oy  $Opn7 $HalfSpace $RightMenu
 
    Store(s_Menu) $LeftMenu $HalfSpace $TPA_s  $Opn1 $NonBreakSpace $TPA_sh  $Opn2 $NonBreakSpace $TPA_sh_ $Opn3 $HalfSpace $RightMenu
 
    Store(t_Menu) $LeftMenu $HalfSpace $TPA_t  $Opn1 $NonBreakSpace $TPA_th  $Opn2 $NonBreakSpace $TPA_th_ $Opn3 $HalfSpace $RightMenu
 
    Store(u_Menu) $LeftMenu $HalfSpace $TPA_u  $Opn1 $NonBreakSpace $TPA_U_  $Opn2 $NonBreakSpace $TPA_ur  $Opn3 $HalfSpace $RightMenu
 
c ┌──────────────────────────────────────────────────────────────────
 
c │ TPA Graphemes, the output from the menu selection.
 
    Store(a_Char) $TPA_a  $TPA_A_ $TPA_ar
 
    Store(c_Char) $TPA_ch $TPA_k  $TPA_s 
 
    Store(e_Char) $TPA_e  $TPA_E_ $TPA_er
 
    Store(i_Char) $TPA_i  $TPA_I_ $TPA_ir
 
    Store(n_Char) $TPA_n  $TPA_ng 
 
    Store(o_Char) $TPA_o  $TPA_O_ $TPA_oo $TPA_oo_ $TPA_or $TPA_ow $TPA_oy
 
    Store(s_Char) $TPA_s  $TPA_sh $TPA_sh_ 
 
    Store(t_Char) $TPA_t  $TPA_th $TPA_th_ 
 
    Store(u_Char) $TPA_u  $TPA_U_ $TPA_ur 
 
 
c □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
 
c End of file
 
c □■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□■□
 
 | 
	 
 
 |