X-Git-Url: http://git.shiar.nl/sheet.git/blobdiff_plain/4b698185e79d32f285b9ea98ddec108448625121..7c3505283729953254055925ce997eda7789570b:/keyboard/altgr/c64.eng.inc.pl
diff --git a/keyboard/altgr/c64.eng.inc.pl b/keyboard/altgr/c64.eng.inc.pl
new file mode 100644
index 0000000..47112e1
--- /dev/null
+++ b/keyboard/altgr/c64.eng.inc.pl
@@ -0,0 +1,133 @@
+use utf8;
+use strict;
+use warnings;
+use Shiar_Sheet::KeyboardChars 'kbchars';
+
+my %c64 = (
+ # control keys not on pet2001
+ '1' => "ð¤\nBLacK",
+ '2' => "ð¤\nWHiTe",
+ '3' => "â¤ï¸\nRED",
+ '4' => "ð©µ\nCYaN",
+ '5' => "ð\nPURple",
+ '6' => "ð\nGReeN",
+ '7' => "ð\nBLUe",
+ '8' => "ð\nYELlow",
+ '9' => "ð\nREverSe video ON",
+ '0' => "ð\nREverSe video OFF",
+);
+
+my %rows = (%c64,
+ # literal petscii control characters, unaltered from pet2001
+ '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' => 'â¦',
+ ']' => 'â', # @
+
+ # literal pet2001 keys reassigned on c64
+ ',' => 'â¼', # [ c64 +
+ '.' => 'â', # ] c64 -
+ '\\'=> 'Ï', # â c64 \
+ '}' => 'â¥', # â c64 *
+ '>' => 'ð®', # \ c64 ^-
+ 'B' => 'â', # ?
+
+ # ! " # $ % ' & \ ( ) â » 1 2 3 4 5 6 7 8 9 0 + - £
+ # Q W E R T Y U I O P â 7 8 9 / » Q W E R T Y U I O P @ * â
+ # A S D F G H J K L : 4 5 6 * » A S D F G H J K L : ; =
+ # Z X C V B N M , ; ? 1 2 3 + » Z X C V B N M , . /
+ # @ [ ] < > 0 . - =
+
+ # pet2001 top row
+ 'K' => 'â', # A pet !
+ 'I' => 'â', # B pet "
+ 'T' => 'â', # C pet #
+ '{' => 'â', # D pet $
+ 'G' => 'â', # E pet %
+ 'M' => 'â', # G pet '
+ '<' => 'â', # F pet & c64 ^+
+ '/' => 'ð®', # H pet ( c64 ^£
+ '?' => 'â¤', # I pet ) c64 £
+
+ # pet2001 bottom rows
+ '[' => 'ð¿', # Z pet :
+ 'D' => 'â', # L pet ,
+ 'F' => 'â', # { pet ;
+ 'C' => 'â', # | pet <
+ 'V' => 'â', # ~ pet >
+
+ # pet2001 numpad
+ 'Y' => 'ð®', # W pet 7
+ 'U' => 'ð®', # X pet 8
+ 'O' => 'â', # Y pet 9
+ 'P' => 'â', # O pet /
+ 'H' => 'â', # T pet 4
+ 'J' => 'â', # U pet 5
+ 'L' => 'ð®', # V pet 6
+ 'N' => 'ð®', # J pet *
+ 'E' => 'â´', # Q pet 1
+ 'R' => 'â¬', # R pet 2
+ 'W' => 'â¤', # S pet 3
+ 'Q' => 'â', # K pet +
+ 'A' => 'â', # P pet 0
+ 'S' => 'â', # N pet .
+ 'Z' => 'â', # M pet -
+ 'X' => 'â', # } pet =
+);
+
+my $groups = kbchars(\%rows);
+
+while (my ($k, $c) = each %rows) {
+ $groups->{def}{''}{$k}[0] = (
+ $c64{$k} ? '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 => 'Commodore graphics',
+ category => 'legacy/graph',
+ moderows => '21-1',
+ intro => join("\n",
+ 'PETSCII',
+ 'characters designed for the 1977 PET 2001 machine',
+ 'as found on the VIC-20 and C-64.',
+ 'See also MSX graph and',
+ 'modern Unicode.',
+ ),
+ image => 'data/keyboard/thumb/c64.jpg',
+ flag => {
+ g2 => ['standard' => 'original Unicode 1993'],
+ g3 => ['extended' => 'Unicode 4.0'],
+ g5 => ['legacy' => 'exceptional symbols for legacy computing in Unicode since 2020'],
+ g9 => ['color' => 'presentational controls represented by anachronistic hearts'],
+ },
+}