ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/vt102/vt102
(Generate patch)

Comparing vt102/vt102 (file contents):
Revision 1.6 by root, Mon Dec 1 19:40:48 2014 UTC vs.
Revision 1.7 by root, Mon Dec 1 20:01:29 2014 UTC

21# ./vt102 bash 21# ./vt102 bash
22# ./vt102 telnet towel.blinkenlights.nl 22# ./vt102 telnet towel.blinkenlights.nl
23# ./vt102 curl http://artscene.textfiles.com/vt100/trekvid.vt 23# ./vt102 curl http://artscene.textfiles.com/vt100/trekvid.vt
24# ./vt102 curl http://artscene.textfiles.com/vt100/surf.vt # in 3d! 24# ./vt102 curl http://artscene.textfiles.com/vt100/surf.vt # in 3d!
25 25
26# TODO: ctrl 26# TODO: ctrl key map
27 27
28use common::sense; 28use common::sense;
29 29
30$| = 1; 30$| = 1;
31 31
584 0x7b, -0x7b, # leave setup 584 0x7b, -0x7b, # leave setup
585); 585);
586 586
587############################################################################# 587#############################################################################
588 588
589# 0x80 shift, 0x100 ctrl, 0x200 toggle 589# 0x080 shift, 0x100 ctrl
590my %KEYMAP = ( 590my %KEYMAP = (
591 "\t" => 0x3a, 591 "\t" => 0x3a,
592 "\r" => 0x64, 592 "\r" => 0x64,
593 "\n" => 0x44, 593 "\n" => 0x44,
594
595 "\x00" => 0x77 | 0x100, # CTRL-SPACE
596 "\x1c" => 0x45 | 0x100, # CTRL-\
597 "\x1d" => 0x14 | 0x100, # CTRL-]
598 "\x1e" => 0x24 | 0x100, # CTRL-~
599 "\x1f" => 0x75 | 0x100, # CTRL-?
594 600
595 # hardcoded rxvt keys 601 # hardcoded rxvt keys
596 "\e" => 0x2a, # ESC 602 "\e" => 0x2a, # ESC
597 "\e[3~" => 0x03, # DC 603 "\e[3~" => 0x03, # DC
598 "\e[5~" => 0x7e, # CAPS LOCK (prior) 604 "\e[5~" => 0x7e, # CAPS LOCK (prior)
620 "779ad5a9a8b8a755a6b5b6b466256575" . "351a3929283837273626d656e634e5f5" . "b9"; 626 "779ad5a9a8b8a755a6b5b6b466256575" . "351a3929283837273626d656e634e5f5" . "b9";
621 627
622@KEYMAP{map chr, 0x5b .. 0x7e} = unpack "C*", pack "H*", 628@KEYMAP{map chr, 0x5b .. 0x7e} = unpack "C*", pack "H*",
623 "154514b7a5" . "244a6879591949485816574746766706" . "050a185a0817780969077a95c594a4"; 629 "154514b7a5" . "244a6879591949485816574746766706" . "050a185a0817780969077a95c594a4";
624 630
625$KEYMAP{"\x3f" & $_} ||= $KEYMAP{$_} | 0x100 for "a" .. "z"; # ctrl 631$KEYMAP{"\x1f" & $_} ||= $KEYMAP{$_} | 0x100 for "a" .. "z"; # ctrl
626$KEYMAP{uc $_} ||= $KEYMAP{$_} | 0x080 for "a" .. "z"; # shift 632$KEYMAP{uc $_} ||= $KEYMAP{$_} | 0x080 for "a" .. "z"; # shift
627 633
628my $KEYMATCH = join "|", map quotemeta, reverse sort keys %KEYMAP; 634my $KEYMATCH = join "|", map quotemeta, reverse sort keys %KEYMAP;
629$KEYMATCH = qr{^($KEYMATCH)}s; 635$KEYMATCH = qr{^($KEYMATCH)}s;
630 636

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines