From 3cd29def95102164c70408abc62a5ce1810346d4 Mon Sep 17 00:00:00 2001 From: Mischa POSLAWSKY Date: Sun, 9 Jun 2024 00:13:49 +0200 Subject: [PATCH 1/1] keyboard/altgr: transcribe graph mode of legacy epson laptops MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Original research: manually picked the most similar unicode glyphs based on the drawings in figure 2.9.a (ASCII keyboard) from the PX-8 manual as well as the few descriptions with figure 5-2 (Graphic Characters…) on page 49 of the Epson HX-20 operations manual . --- keyboard/altgr/epson.eng.inc.pl | 85 +++++++++++++++++++++++++++++++++ keyboard/altgr/index.inc.pl | 2 +- 2 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 keyboard/altgr/epson.eng.inc.pl diff --git a/keyboard/altgr/epson.eng.inc.pl b/keyboard/altgr/epson.eng.inc.pl new file mode 100644 index 0000000..bfb7f25 --- /dev/null +++ b/keyboard/altgr/epson.eng.inc.pl @@ -0,0 +1,85 @@ +use utf8; +use strict; +use warnings; +no warnings 'qw'; +use Shiar_Sheet::KeyboardChars 'kbchars'; + +my %rows = ( + 's' => '┼', # 80 + 'x' => '┴', # 81 + 'w' => '┬', # 82 + 'd' => '┤', # 83 + 'a' => '├', # 84 + 't' => '─', # 85 + 'r' => '│', # 86 + 'q' => '┌', # 87 + 'e' => '┐', # 88 + 'z' => '└', # 89 + 'c' => '┘', # 8A + 'j' => '▒', # 8B + 'f' => '█', # 8C + 'g' => '▄', # 8D + 'h' => '▌', # 8E + 'y' => '●', # 8F + + 'u' => '○', # 90 + 'i' => '♠', # 91 + 'o' => '♥', # 92 + 'p' => '♦', # 93 + '[' => '♣', # 94 + 'k' => '♪', # 95 "little musical note" + 'v' => '☎', # 96 "tiny telephone" + ',' => '🛧', # 97 airplane (✈ up) + 'm' => '🚗', # 98 "subcompact car" (left) + 'n' => '🍷', # 99 U̝ thing: tuning fork ⑂? glass 🍷? insert ⁁? alchemy ⨿? + 'b' => '🯈', # 9A "small person" 🕺 (running left) + ';' => '↑', # 9B + '.' => '↓', # 9C + "'" => '×', # 9D + '/' => '÷', # 9E + 'l' => '±', # 9F + + # characters in european font + #à°ç§éùè¨ÄÖÜäöüßÆØÅæøåɤ + + qw( + ! 1 @ 2 # 3 $ 4 % 5 ^ 6 + & 7 * 8 ( 9 ) 0 _ - + ^ + U 4 I 5 O 6 { ? + J 1 K 2 L 3 : + " * + M 0 < , > . ? / + ), +); + +my $groups = kbchars(\%rows); + +while (my ($k, $c) = each %rows) { + $groups->{def}{''}{$k}[0] = ( + 0 ? 'g9' : + $c =~ /\p{In=1.1}/ ? 'g2' : + $c =~ /\p{In=4.0}/ ? 'g3' : + $c =~ /[\x{1FB00}-\x{1FBFF}]/ ? 'g5' : # Age=V13.0 + 'g0' + ); +} + ++{ + %{ $groups }, + version => '1.0', + title => 'Epson PX-20 graphics', + category => 'legacy/graph', + moderows => '1-', + intro => join("\n", + 'Unicode glyphs similar to the graph mode of the 1981', + 'Epson HC-20 and later (PX-8 Geneva, PX-4) laptops.', + 'See also MSX,', + 'Atari,', + 'C-64, and', + 'modern Unicode.', + ), + flag => { + g2 => ['standard' => 'original Unicode 1993'], + g3 => ['extended' => 'Unicode 4.0'], + g5 => ['legacy' => 'exceptional symbols for legacy computing in Unicode since 2020'], + }, +} diff --git a/keyboard/altgr/index.inc.pl b/keyboard/altgr/index.inc.pl index b864e13..cd93857 100644 --- a/keyboard/altgr/index.inc.pl +++ b/keyboard/altgr/index.inc.pl @@ -8,7 +8,7 @@ my %cat = ( latin => [qw( ipa-ucl olpc boyeg drix )], science => [qw( symbolics apl spacecadet )], graph => [qw( unigraph emojiworks )], - extra => [qw( msx-graph c64 atari p8scii zoo )], + extra => [qw( msx-graph c64 atari epson p8scii zoo )], ); for my $name (map {@{$_}} values %cat) { -- 2.30.2