4 use Shiar_Sheet::KeyboardChars 'kbchars';
7 +! ๐ +@ ๐ +# ๐
+$ ๐ +% ๐ +^ ๐ +& ๐ +* ๐ +( ๐ +) ๐ +_ ๐ ++ ๐
8 +1 โ +2 โ +3 โ +4 โ +5 โ +6 โ +7 โ +8 โ +9 โ +0 โ +- โ += โ
10 $ โ 4 โ % โก 5 โ ^ โ 6 โ
\{ โ
11 & โ * โฅ ( โฆ ) โฃ
15 q โ w โ e โ Q โ W โ E โ +q โค +w โฒ +e โฅ +Q โธ +W โณ +E โน
16 a โ s โ d โ A โ S โ D โ +a โ +s โ +d โถ +A โ +S โ +D โท
17 z โ x โ c โ Z โ X โ C โ +z โฃ +x โผ +c โข +Z โบ +X โฝ +C โฟ
18 1 โคก 2 โ 3 โคข ! โ @ โ # โบ
20 r โ t โฌ y โ R โ T โฆ Y โ
21 f โ g โผ h โค F โ G โฌ H โฃ
22 v โ b โด n โ V โ B โฉ N โ
23 ' โ \ โ " โ | โ +' โ +\ โ +" โ +| โ
25 +r โ +R โ +t โค +T โฅ +y โ +Y โ
26 +f โ +F โ +g โช +G โซ +h โก +H โข
27 +v โ +V โ +b โง +B โจ +n โ +N โ
29 > โ . โ , โ M โ m โ
30 l โ L โ k โ J โ j โ ; โ : โ +; ๐ฎ +: ๐ฎ
31 O โ o โ i โ U โ u โ / โ ? โ +/ ๐ฎ +? ๐ฎ
35 +i ๐ญฏ +, ๐ญญ +j ๐ญฎ +l ๐ญฌ +[ ๐ฎ +k ๐ฎ
36 +u โญ +o โฎ +m โฐ +. โฏ
38 +U ๐ฎฃ +I ๐ฎฆ +O ๐ฎข
39 +J ๐ฎฅ +K ๐ฎฎ +L ๐ฎค
40 +M ๐ฎก +< ๐ฎง +> ๐ฎ
42 P ๐ฎจ \} ๐ฎฉ +p ๐ฎซ +] ๐ฎช +P ๐ฎฌ +\} ๐ฎญ
44 $rows{' '} = "\N{FIGURE SPACE}";
46 # remaining candidates: โโ ๐ฎ ๐ฎ โคโงโกโข โโ โโ โโ โฌ
48 my $groups = kbchars(\%rows);
52 # lower cp437 representations from charset-encoding excluding BEL/BS/CR/LF
53 (map {$_ => 'g3'} split //, 'โบโปโฅโฆโฃโ โโโโซโผโบโโโผยถยงโฌโจโโโโโโโฒโผ'),
54 # upper characters converted to unicode
55 (map {$_ => 'g4'} split //, decode('cp437', pack 'C*', 127..255)),
56 (map {$_ => 'g2'} split //, decode('cp850', pack 'C*', 127..255)),
59 while (my ($k, $c) = each %rows) {
60 $groups->{def}{''}{$k} = $cpcompat{$c} // (
61 $c =~ /\p{In=1.1}/ ? 'g5' :
62 $c =~ /\p{In=6.0}/ ? 'g6' :
63 $c =~ /[\x{1FB00}-\x{1FBFF}]/ ? 'g7' : # Age=V13.0
71 title => 'Unicode semigraphics',
72 category => 'specialized',
74 sprintf('Keyboard mode to %s draw character graphics.',
75 '<span title="without requiring a specialised editor">manually</span>',
77 'Inspired by <a href="/keyboard/altgr/msx-graph">MSX graph</a> mode,',
78 'but reimagined for modern Unicode coverage.',
80 moderows => '5421-21',
82 g2 => ['cp850' => 'shared international repetoire in most DOS code pages'],
83 g3 => ['historic' => 'extended graphics presentations of control characters in cp437 ea'],
84 g4 => ['cp437' => '<em>ANSI art</em> drawing glyphs in English code page 437 (OEM-US)'],
85 g5 => ['standard' => 'gathered in the original Unicode release in 1993'],
86 g6 => ['extended' => 'later additions accumulated within a decade, mostly Unicode 3.2'],
87 g7 => ['rare' => 'exceptional <em>symbols for legacy computing</em> in Unicode since <abbr title="Unicode 13.0">2020</abbr>'],