… | |
… | |
614 | "\e[7~" => 0x7b, # SETUP (home) |
614 | "\e[7~" => 0x7b, # SETUP (home) |
615 | "\e[8~" => 0x23, # BREAK (end) |
615 | "\e[8~" => 0x23, # BREAK (end) |
616 | "\e[8\$" => 0x23 | 0x080, # SHIFT BREAK / DISCONNECT (shift-end) |
616 | "\e[8\$" => 0x23 | 0x080, # SHIFT BREAK / DISCONNECT (shift-end) |
617 | "\x7f" => 0x33, # BACKSPACE |
617 | "\x7f" => 0x33, # BACKSPACE |
618 | |
618 | |
619 | "\e[11~" => 0x32, # F1 |
619 | "\e[11~" => 0x32, # PF1 |
620 | "\e[11~" => 0x42, # F2 |
620 | "\e[12~" => 0x42, # PF2 |
621 | "\e[11~" => 0x31, # F3 |
621 | "\e[13~" => 0x31, # PF3 |
622 | "\e[11~" => 0x41, # F4 |
622 | "\e[14~" => 0x41, # PF4 |
623 | ); |
623 | ); |
624 | |
624 | |
625 | @KEYMAP{map chr, 0x20 .. 0x40, 0x5b .. 0x7e} = unpack "C*", pack "H*", |
625 | @KEYMAP{map chr, 0x20 .. 0x40, 0x5b .. 0x7e} = unpack "C*", pack "H*", |
626 | "779ad5a9a8b8a755a6b5b6b466256575" . "351a3929283837273626d656e634e5f5" . "b9" # 20..40 |
626 | "779ad5a9a8b8a755a6b5b6b466256575" . "351a3929283837273626d656e634e5f5" . "b9" # 20..40 |
627 | . "154514b7a5" . "244a6879591949485816574746766706" . "050a185a0817780969077a95c594a4"; # 5b..7e |
627 | . "154514b7a5" . "244a6879591949485816574746766706" . "050a185a0817780969077a95c594a4"; # 5b..7e |
… | |
… | |
656 | # skip input we can't decipher |
656 | # skip input we can't decipher |
657 | substr $STDIN_BUF, 0, 1, ""; |
657 | substr $STDIN_BUF, 0, 1, ""; |
658 | } |
658 | } |
659 | |
659 | |
660 | if ($KBD) { |
660 | if ($KBD) { |
661 | system "stty -icanon -icrnl -inlcr -echo min 1 time 0"; |
661 | system "stty -icanon -icrnl -inlcr -echo min 1 time 0"; # -isig |
662 | eval q{ sub END { system "stty sane" } }; |
662 | eval q{ sub END { system "stty sane" } }; |
663 | $SIG{INT} = $SIG{TERM} = $SIG{QUIT} = sub { exit 1 }; |
663 | $SIG{INT} = $SIG{TERM} = $SIG{QUIT} = sub { exit 1 }; |
664 | } |
664 | } |
665 | |
665 | |
666 | ############################################################################# |
666 | ############################################################################# |