﻿⎕SE.FontObj←'APL385 Unicode' 22
⎕io ⎕ml ⎕pw←1 0 155
⎕DR '⍺+⍵' 
⍝ 16-bit, Type 0 (Unicode). Returns 82 in "Classic Edition".
⎕UCS '⍺+⍵'
⎕DR 'a+c' 
⎕UCS 'a+c'  
'a+c'='⍺+⍵'
⎕←unihan←⎕UCS (2*17)+1 2 3
⎕DR unihan
⎕UCS unihan
4 64⍴'....',4↓⎕AV
⍴⎕AV
unihan∊⎕AV
⎕AV⍳'Aa'
⎕UCS english←64 96∘.+⍳26       ⍝ English Alphabet
⎕UCS english, 197 229∘.+1 19 0 ⍝ Danish!
HEX←{⎕IO←0 ⋄ 0=10|⎕DR ⍵:16⊥(⎕D,⎕A)⍳⍉⍵ ⋄ ⍉(⎕D,⎕A)[16(⊥⍣¯1)⍵]}
HEX '390'
⎕UCS (HEX '0390')+⍳27 ⍝ Uppercase Greek
Langs←('Greek' '0390' 27)('Cyrillic' '040F' 32)('Armenian' '0530' 38)
Langs,←('Hebrew' '05CF' 25)('Arabic' '0621' 25)('(Real) Arab Numerals' '06EF' 10)
Langs,←('Hiragana' '3040' 86)('Katakana' '30A0' 87)
Langs←↑Langs
Langs 
Langs←Langs,{⎕UCS (HEX ⍺) + ⍳⍵} / Langs[;2 3]

]load C:\Docs\Dyalog\Demo\Sounds
]explore C:\Docs\Dyalog\Demo\Sounds
)ed Sounds
Sounds.PlayWav 'C:\Music\drumroll.wav'
Langs
⍝ End of Demo Part I
'A','B','C'
'א', 'ב' ,'ג'
3⊃'ABC'
3⊃'אבג'
'F' ⎕WC 'Form' 'Unicode Samples' ('Coord' 'Pixel')('Size' (50 800))
'F.E' ⎕WC 'Edit' 'אבג' ('Posn' (0 0))('Size' (50 800))('Font' 'MS Arial Unicode' 35)
⍝ Now enter some japanese text in form
F.E.Text
⎕UCS F.E.Text

⍝ Interesting questions
אבג←99
99→גבא
ω←88
∪'AΑΑ'
⎕UCS 'AΑΑ'

⎕SE.FontObj←'Arial Unicode MS' 24
⎕UCS(HEX'218F')+12 32⍴⍳512 ⍝ Mathematical operators etc
⎕UCS(HEX'22FF')+4 32⍴⍳128  ⍝ Misc Technical (incl some APL)
⎕UCS(HEX'23FF')+⍳37        ⍝ "Control Pictures"
⎕UCS(HEX'243F')+⍳11        ⍝ OCR
⎕UCS(HEX'245F')+5 32⍴⍳256  ⍝ Enclosed alphanumerics
avbar←{⊖⍉' ⎕'[1+⍵∘.≥⍳⌈/⍵]}
avbar 5+⌈5×1○0.1×⍳63
⎕UCS(HEX'257F')+⍳22        ⍝ Blocks and Shades
⎕SE.FontObj←'APL385 Unicode' 30
unibar←{⊖⍉(9↑⎕UCS 9609-⍳8)[1+8⌊0⌈-⍵∘.-8×⍳⌈8÷⍨⌈/⍵]} 
unibar 40+⌈40×1○0.1×⍳63      
⎕SE.FontObj←'Arial Unicode MS' 24
⎕UCS(HEX'259F')+3 32⍴⍳96   ⍝ Geometric Shapes
⎕UCS(HEX'25FF')+4 32⍴⍳128  ⍝ Misc symbols

⎕UCS(HEX'24FF')+4 32⍴⍳128  ⍝ For Scholes!
⍝ There is even a Duck symbol at 9E2D
'F'⎕WC'Form' 'Duck' (10 10)(12 6)
'F.T' ⎕WC 'Text' (⎕UCS  HEX '9E2D')(0 0)('Font' 'Arial Unicode MS' 150)
⍝ Unicode Han Character 'duck: Anas species'

⎕UCS(HEX'26FF')+6 32⍴⍳256  ⍝ Dingbats

⎕SE.FontObj←'Arial Unicode MS' 22
⎕UCS 50?2*16 ⍝ Message of the day...
50↑⎕UCS (¯1+HEX '4E00')+⍳18342  ⍝ CJK Unified Ideographs
50↑⎕UCS (¯1+HEX '3400')+⍳6582   ⍝ CJK Unified Ideograph Extension A
50↑⎕UCS (¯1+HEX 'A000')+⍳1159   ⍝ Yi Syllables
50↑⎕UCS (¯1+HEX 'AC00')+⍳11172  ⍝ Hangul Syllables

⎕SE.FontObj←'APL385 Unicode' 22
⍝ Fans of poetry from "overseas" recognize this?
⍝ Ash nazg durbatuluuk, ash nazg gimbatul.
⍝ Ash nazg thrakatuluuk agh burzum-ishi krimpatul!
⍝ Please don't read this aloud, Gandalf will not be amused!
Tengwar←{⎕UCS 56200+((2×⍴⍵)⍴0 1)\⍵} ⍝ For easy entry of "Tengwar" strings
agh          ← Tengwar 167 184
ash          ← Tengwar 162 184
burzum_ishi  ← Tengwar 125 140 192 150 137 192 162 188 157 188
durbatuluuk  ← Tengwar 124 140 192 125 120 184 146 192 123 193
gimbatul     ← Tengwar 127 125 196 188 120 184 146 192
krimpatul    ← Tengwar 123 144 121 196 188 120 184 146 192
nazg         ← Tengwar 136 151 184 127
thrakatuluuk ← Tengwar 128 144 123 184 120 184 146 192 123 193 

OneRing←(ash nazg durbatuluuk, ash nazg gimbatul) (ash nazg thrakatuluuk agh burzum_ishi krimpatul)

'F' ⎕WC 'Form' 'One Ring' ('FontObj' 'Code2001' 30)('Coord' 'Pixel')('Size' 100 500)('Posn' 30 30)
'F.T'⎕WC'Text'({1↓⍕⍵}¨OneRing)((10 50)20)