XCOMM APL support Geoff Streeter 2011-12-19 XCOMM Firstly: Circled alphabet support XCOMM Traditional APL supported two alphabets a normal one and an underscored one. XCOMM Some APLs (Dyalog's for instance) have always supported 3 alphabets: upper case, lower XCOMM case and underscored. Unicode doesn't have an underscored alphabet so the underscored one XCOMM was mapped to the circled one and the rendering treated as a font issue. XCOMM Using the letter "O" has already been taken for "copyright", "registered" ... XCOMM So use number "0" instead. Useful for normal users. Saves a layout switch for APL users. <0> : "Ⓐ" U24B6 # CIRCLED LATIN CAPITAL LETTER A <0> : "Ⓑ" U24B7 # CIRCLED LATIN CAPITAL LETTER B <0> : "Ⓒ" U24B8 # CIRCLED LATIN CAPITAL LETTER C <0> : "Ⓓ" U24B9 # CIRCLED LATIN CAPITAL LETTER D <0> : "Ⓔ" U24BA # CIRCLED LATIN CAPITAL LETTER E <0> : "Ⓕ" U24BB # CIRCLED LATIN CAPITAL LETTER F <0> : "Ⓖ" U24BC # CIRCLED LATIN CAPITAL LETTER G <0> : "Ⓗ" U24BD # CIRCLED LATIN CAPITAL LETTER H <0> : "Ⓘ" U24BE # CIRCLED LATIN CAPITAL LETTER I <0> : "Ⓙ" U24BF # CIRCLED LATIN CAPITAL LETTER J <0> : "Ⓚ" U24C0 # CIRCLED LATIN CAPITAL LETTER K <0> : "Ⓛ" U24C1 # CIRCLED LATIN CAPITAL LETTER L <0> : "Ⓜ" U24C2 # CIRCLED LATIN CAPITAL LETTER M <0> : "Ⓝ" U24C3 # CIRCLED LATIN CAPITAL LETTER N <0> : "Ⓞ" U24C4 # CIRCLED LATIN CAPITAL LETTER O <0>

: "Ⓟ" U24C5 # CIRCLED LATIN CAPITAL LETTER P : "Ⓠ" U24C6 # CIRCLED LATIN CAPITAL LETTER Q : "Ⓡ" U24C7 # CIRCLED LATIN CAPITAL LETTER R : "Ⓢ" U24C8 # CIRCLED LATIN CAPITAL LETTER S : "Ⓣ" U24C9 # CIRCLED LATIN CAPITAL LETTER T : "Ⓤ" U24CA # CIRCLED LATIN CAPITAL LETTER U : "Ⓥ" U24CB # CIRCLED LATIN CAPITAL LETTER V : "Ⓦ" U24CC # CIRCLED LATIN CAPITAL LETTER W : "Ⓧ" U24CD # CIRCLED LATIN CAPITAL LETTER X : "Ⓨ" U24CE # CIRCLED LATIN CAPITAL LETTER Y : "Ⓩ" U24CF # CIRCLED LATIN CAPITAL LETTER Z <1> : "①" U2460 # CIRCLED DIGIT 1 <2> : "②" U2461 # CIRCLED DIGIT 2 <3> : "③" U2462 # CIRCLED DIGIT 3 <4> : "④" U2463 # CIRCLED DIGIT 4 <5> : "⑤" U2464 # CIRCLED DIGIT 5 <6> : "⑥" U2465 # CIRCLED DIGIT 6 <7> : "⑦" U2466 # CIRCLED DIGIT 7 <8> : "⑧" U2467 # CIRCLED DIGIT 8 <9> : "⑨" U2468 # CIRCLED DIGIT 9 XCOMM Secondly: APL overstrike support XCOMM APL was initially an overstruck language. The original APL terrminal was an IBM golfball XCOMM with a specially designed golfball. This meant that characters could be overstruck to XCOMM produce other characters. This gave APL a richness of primitives which is still powerful XCOMM today. Overstrikes were always independent of order. XCOMM APLs have extended this into a number of dialects. Let us try to support lots of them. XCOMM Together with some that have not been used yet. Some traditional ones are not included. XCOMM Original APLs produced ! by overstriking ' and . - seems unnecessary now. XCOMM Easier for me to think of the requirements in terms of the Keyboard location - no other reasson for the order below. XCOMM Unshifted top row of Dyalog keyboard : "⋄" U22c4 # < > DIAMOND OPERATOR : "⋄" U22c4 # > < DIAMOND OPERATOR : "⋄" U22c4 # ∧ ∨ DIAMOND OPERATOR : "⋄" U22c4 # ∨ ∧ DIAMOND OPERATOR : "≤" U2264 # < _ LESS-THAN OR EQUAL TO : "≤" U2264 # _ < LESS-THAN OR EQUAL TO : "≥" U2265 # > _ GREATER-THAN OR EQUAL TO : "≥" U2265 # _ > GREATER-THAN OR EQUAL TO : "≠" U2260 # = / NOT EQUAL TO : "≠" U2260 # / = NOT EQUAL TO : "÷" U00f7 # : - DIVIDE : "÷" U00f7 # - : DIVIDE XCOMM Shifted top row of Dyalog keyboard : "⌶" U2336 # ⊥ ⊤ APL FUNCTIONAL SYMBOL I-BEAM : "⌶" U2336 # ⊥ ⊤ APL FUNCTIONAL SYMBOL I-BEAM : "⍫" U236b # ∇ ~ APL FUNCTIONAL SYMBOL DEL TILDE : "⍫" U236b # ~ ∇ APL FUNCTIONAL SYMBOL DEL TILDE : "⍒" U2352 # ∇ | APL FUNCTIONAL SYMBOL DEL STILE : "⍒" U2352 # | ∇ APL FUNCTIONAL SYMBOL DEL STILE : "⍋" U234b # ∆ | APL FUNCTIONAL SYMBOL DELTA STILE : "⍋" U234b # | ∆ APL FUNCTIONAL SYMBOL DELTA STILE : "⌽" U233d # ○ | APL FUNCTIONAL SYMBOL CIRCLE STILE : "⌽" U233d # | ○ APL FUNCTIONAL SYMBOL CIRCLE STILE : "⍉" U2349 # ○ \ APL FUNCTIONAL SYMBOL CIRCLE SLOPE : "⍉" U2349 # \ ○ APL FUNCTIONAL SYMBOL CIRCLE SLOPE : "⊖" U2296 # ○ - CIRCLED MINUS : "⊖" U2296 # - ○ CIRCLED MINUS : "⍟" U235f # ○ * APL FUNCTIONAL SYMBOL CIRCLE STAR : "⍟" U235f # * ○ APL FUNCTIONAL SYMBOL CIRCLE STAR : "⍲" U2371 # ∨ ~ APL FUNCTIONAL SYMBOL DOWN CARET TILDE : "⍱" U2371 # ~ ∨ APL FUNCTIONAL SYMBOL DOWN CARET TILDE : "⍲" U2372 # ∧ ~ APL FUNCTIONAL SYMBOL UP CARET TILDE : "⍲" U2372 # ~ ∧ APL FUNCTIONAL SYMBOL UP CARET TILDE : "⌹" U2339 # ⎕ ÷ APL FUNCTIONAL SYMBOL QUAD DIVIDE : "⌹" U2339 # ÷ ⎕ APL FUNCTIONAL SYMBOL QUAD DIVIDE XCOMM Shifted tab row : "⍷" U2377 # ∊ _ APL FUNCTIONAL SYMBOL EPSILON UNDERBAR : "⍷" U2377 # _ ∊ APL FUNCTIONAL SYMBOL EPSILON UNDERBAR : "⍨" U2368 # ¨ ~ APL FUNCTIONAL SYMBOL TILDE DIAERESIS : "⍨" U2368 # ~ ¨ APL FUNCTIONAL SYMBOL TILDE DIAERESIS : "⍸" U2378 # ∊ _ APL FUNCTIONAL SYMBOL IOTA UNDERBAR : "⍸" U2378 # _ ∊ APL FUNCTIONAL SYMBOL IOTA UNDERBAR : "⍥" U2365 # ○ ¨ APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS : "⍥" U2365 # ¨ ○ APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS : "⍣" U2363 # * ¨ APL FUNCTIONAL SYMBOL STAR DIAERESIS : "⍣" U2363 # ¨ * APL FUNCTIONAL SYMBOL STAR DIAERESIS : "⍞" U235e # * ¨ APL FUNCTIONAL SYMBOL QUOTE QUAD : "⍞" U235e # ¨ * APL FUNCTIONAL SYMBOL QUOTE QUAD : "⍬" U236c # 0 ~ APL FUNCTIONAL SYMBOL ZILDE : "⍬" U236c # ~ 0 APL FUNCTIONAL SYMBOL ZILDE XCOMM Caps lock row unshifted : "⍎" U234e # ∘ ⊥ APL FUNCTIONAL SYMBOL DOWN TACK JOT : "⍎" U234e # ⊥ ∘ APL FUNCTIONAL SYMBOL DOWN TACK JOT : "⍕" U2355 # ∘ ⊤ APL FUNCTIONAL SYMBOL UP TACK JOT : "⍕" U2355 # ⊤ ∘ APL FUNCTIONAL SYMBOL UP TACK JOT : "⊢" U22a2 # ( - RIGHT TACK : "⊢" U22a2 # - ( RIGHT TACK XCOMM Caps lock row shifted : "⍤" U2364 # ∘ ¨ APL FUNCTIONAL SYMBOL JOT DIAERESIS : "⍤" U2364 # ¨ ∘ APL FUNCTIONAL SYMBOL JOT DIAERESIS : "⌷" U2337 # [ ] APL FUNCTIONAL SYMBOL SQUISH QUAD : "⌷" U2337 # ] [ APL FUNCTIONAL SYMBOL SQUISH QUAD : "≡" U2261 # _ = IDENTICAL TO : "≡" U2261 # = _ IDENTICAL TO : "≢" U2262 # _ ≠ NOT IDENTICAL TO : "≢" U2262 # ≠ _ NOT IDENTICAL TO : "⊣" U22a3 # ) - LEFT TACK : "⊣" U22a3 # - ) LEFT TACK XCOMM Shift row unshifted : "⍝" U235d # ∘ ∩ APL FUNCTIONAL SYMBOL UP SHOE JOT : "⍝" U235d # ∩ ∘ APL FUNCTIONAL SYMBOL UP SHOE JOT : "⍀" U2340 # \ - APL FUNCTIONAL SYMBOL BACKSLASH BAR : "⍀" U2340 # - \ APL FUNCTIONAL SYMBOL BACKSLASH BAR : "⌿" U233f # \ - APL FUNCTIONAL SYMBOL SLASH BAR : "⌿" U233f # - \ APL FUNCTIONAL SYMBOL SLASH BAR XCOMM Shift row shifted : "⍪" U236a # , - APL FUNCTIONAL SYMBOL COMMA BAR : "⍪" U236a # - , APL FUNCTIONAL SYMBOL COMMA BAR : "⍠" U2360 # : ⎕ APL FUNCTIONAL SYMBOL QUAD COLON : "⍠" U2360 # ⎕ : APL FUNCTIONAL SYMBOL QUAD COLON : "⍙" U2359 # ∆ _ APL FUNCTIONAL SYMBOL DELTA UNDERBAR : "⍙" U2359 # _ ∆ APL FUNCTIONAL SYMBOL DELTA UNDERBAR XCOMM Add extras from Sax keyboard : "⌻" U233B # : ⎕ APL FUNCTIONAL SYMBOL QUAD JOT : "⌻" U233B # ⎕ : APL FUNCTIONAL SYMBOL QUAD JOT XCOMM Add extras from APL2 keyboard : "⍂" U2342 # \ ⎕ APL FUNCTIONAL SYMBOL QUAD BACKSLASH : "⍂" U2342 # ⎕ \ APL FUNCTIONAL SYMBOL QUAD BACKSLASH XCOMM Add extras from MicroAPL keyboard : "⍇" U2347 # ← ⎕ APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW : "⍇" U2347 # ⎕ ← APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW : "⍈" U2348 # → ⎕ APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW : "⍈" U2348 # ⎕ → APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW XCOMM end of APL support

: "Ⓟ" U24C5 # CIRCLED LATIN CAPITAL LETTER P <0> : "Ⓠ" U24C6 # CIRCLED LATIN CAPITAL LETTER Q <0> : "Ⓡ" U24C7 # CIRCLED LATIN CAPITAL LETTER R <0> : "Ⓢ" U24C8 # CIRCLED LATIN CAPITAL LETTER S <0> : "Ⓣ" U24C9 # CIRCLED LATIN CAPITAL LETTER T <0> : "Ⓤ" U24CA # CIRCLED LATIN CAPITAL LETTER U <0> : "Ⓥ" U24CB # CIRCLED LATIN CAPITAL LETTER V <0> : "Ⓦ" U24CC # CIRCLED LATIN CAPITAL LETTER W <0> : "Ⓧ" U24CD # CIRCLED LATIN CAPITAL LETTER X <0> : "Ⓨ" U24CE # CIRCLED LATIN CAPITAL LETTER Y <0> : "Ⓩ" U24CF # CIRCLED LATIN CAPITAL LETTER Z XCOMM I see no reason not to do the numbers as well <0> <1> : "①" U2460 # CIRCLED DIGIT 1 <0> <2> : "②" U2461 # CIRCLED DIGIT 2 <0> <3> : "③" U2462 # CIRCLED DIGIT 3 <0> <4> : "④" U2463 # CIRCLED DIGIT 4 <0> <5> : "⑤" U2464 # CIRCLED DIGIT 5 <0> <6> : "⑥" U2465 # CIRCLED DIGIT 6 <0> <7> : "⑦" U2466 # CIRCLED DIGIT 7 <0> <8> : "⑧" U2467 # CIRCLED DIGIT 8 <0> <9> : "⑨" U2468 # CIRCLED DIGIT 9 XCOMM For APL users who have ○ as a character we can code : "Ⓐ" U24B6 # CIRCLED LATIN CAPITAL LETTER A : "Ⓑ" U24B7 # CIRCLED LATIN CAPITAL LETTER B : "Ⓒ" U24B8 # CIRCLED LATIN CAPITAL LETTER C : "Ⓓ" U24B9 # CIRCLED LATIN CAPITAL LETTER D : "Ⓔ" U24BA # CIRCLED LATIN CAPITAL LETTER E : "Ⓕ" U24BB # CIRCLED LATIN CAPITAL LETTER F : "Ⓖ" U24BC # CIRCLED LATIN CAPITAL LETTER G : "Ⓗ" U24BD # CIRCLED LATIN CAPITAL LETTER H : "Ⓘ" U24BE # CIRCLED LATIN CAPITAL LETTER I : "Ⓙ" U24BF # CIRCLED LATIN CAPITAL LETTER J : "Ⓚ" U24C0 # CIRCLED LATIN CAPITAL LETTER K : "Ⓛ" U24C1 # CIRCLED LATIN CAPITAL LETTER L : "Ⓜ" U24C2 # CIRCLED LATIN CAPITAL LETTER M : "Ⓝ" U24C3 # CIRCLED LATIN CAPITAL LETTER N : "Ⓞ" U24C4 # CIRCLED LATIN CAPITAL LETTER O