📄 vt320.java
字号:
write(TabKey[1], false); } else { if (control) { write(TabKey[2], false); } else { if (alt) { write(TabKey[3], false); } else { write(TabKey[0], false); } } } return; } if (alt) { write("" + ((char) (keyChar | 0x80))); return; } if (((keyCode == KeyEvent.VK_ENTER) || (keyChar == 10)) && !control) { write("\r", false); if (localecho) putString("\r\n"); // bad hack return; } if ((keyCode == 10) && !control) { System.out.println("Sending \\r"); write("\r", false); return; } // FIXME: on german PC keyboards you have to use Alt-Ctrl-q to get an @, // so we can't just use it here... will probably break some other VMS // codes. -Marcus // if(((!vms && keyChar == '2') || keyChar == '@' || keyChar == ' ') // && control) if (((!vms && keyChar == '2') || keyChar == ' ') && control) write("" + (char) 0); if (vms) { if (keyChar == 127 && !control) { if (shift) writeSpecial(Insert[0]); // VMS shift delete = insert else writeSpecial(Remove[0]); // VMS delete = remove return; } else if (control) switch (keyChar) { case '0': writeSpecial(Numpad[0]); return; case '1': writeSpecial(Numpad[1]); return; case '2': writeSpecial(Numpad[2]); return; case '3': writeSpecial(Numpad[3]); return; case '4': writeSpecial(Numpad[4]); return; case '5': writeSpecial(Numpad[5]); return; case '6': writeSpecial(Numpad[6]); return; case '7': writeSpecial(Numpad[7]); return; case '8': writeSpecial(Numpad[8]); return; case '9': writeSpecial(Numpad[9]); return; case '.': writeSpecial(KPPeriod); return; case '-': case 31: writeSpecial(KPMinus); return; case '+': writeSpecial(KPComma); return; case 10: writeSpecial(KPEnter); return; case '/': writeSpecial(PF2); return; case '*': writeSpecial(PF3); return; /* NUMLOCK handled in keyPressed */ default: break; } /* Now what does this do and how did it get here. -Marcus if (shift && keyChar < 32) { write(PF1+(char)(keyChar + 64)); return; } */ } // FIXME: not used? String fmap[]; int xind; xind = 0; fmap = FunctionKey; if (shift) { fmap = FunctionKeyShift; xind = 1; } if (control) { fmap = FunctionKeyCtrl; xind = 2; } if (alt) { fmap = FunctionKeyAlt; xind = 3; } if (keyCode == KeyEvent.VK_ESCAPE) { writeSpecial(Escape[xind]); return; } if ((modifiers & VDUInput.KEY_ACTION) != 0) switch (keyCode) { case KeyEvent.VK_NUMPAD0: writeSpecial(Numpad[0]); return; case KeyEvent.VK_NUMPAD1: writeSpecial(Numpad[1]); return; case KeyEvent.VK_NUMPAD2: writeSpecial(Numpad[2]); return; case KeyEvent.VK_NUMPAD3: writeSpecial(Numpad[3]); return; case KeyEvent.VK_NUMPAD4: writeSpecial(Numpad[4]); return; case KeyEvent.VK_NUMPAD5: writeSpecial(Numpad[5]); return; case KeyEvent.VK_NUMPAD6: writeSpecial(Numpad[6]); return; case KeyEvent.VK_NUMPAD7: writeSpecial(Numpad[7]); return; case KeyEvent.VK_NUMPAD8: writeSpecial(Numpad[8]); return; case KeyEvent.VK_NUMPAD9: writeSpecial(Numpad[9]); return; case KeyEvent.VK_DECIMAL: writeSpecial(NUMDot[xind]); return; case KeyEvent.VK_ADD: writeSpecial(NUMPlus[xind]); return; } if (!((keyChar == 8) || (keyChar == 127) || (keyChar == '\r') || (keyChar == '\n'))) { write("" + keyChar); return; } } private void handle_dcs(String dcs) { System.out.println("DCS: " + dcs); } private void handle_osc(String osc) { System.out.println("OSC: " + osc); } private final static char unimap[] = { //# //# Name: cp437_DOSLatinUS to Unicode table //# Unicode version: 1.1 //# Table version: 1.1 //# Table format: Format A //# Date: 03/31/95 //# Authors: Michel Suignard <michelsu@microsoft.com> //# Lori Hoerth <lorih@microsoft.com> //# General notes: none //# //# Format: Three tab-separated columns //# Column #1 is the cp1255_WinHebrew code (in hex) //# Column #2 is the Unicode (in hex as 0xXXXX) //# Column #3 is the Unicode name (follows a comment sign, '#') //# //# The entries are in cp437_DOSLatinUS order //# 0x0000, // #NULL 0x0001, // #START OF HEADING 0x0002, // #START OF TEXT 0x0003, // #END OF TEXT 0x0004, // #END OF TRANSMISSION 0x0005, // #ENQUIRY 0x0006, // #ACKNOWLEDGE 0x0007, // #BELL 0x0008, // #BACKSPACE 0x0009, // #HORIZONTAL TABULATION 0x000a, // #LINE FEED 0x000b, // #VERTICAL TABULATION 0x000c, // #FORM FEED 0x000d, // #CARRIAGE RETURN 0x000e, // #SHIFT OUT 0x000f, // #SHIFT IN 0x0010, // #DATA LINK ESCAPE 0x0011, // #DEVICE CONTROL ONE 0x0012, // #DEVICE CONTROL TWO 0x0013, // #DEVICE CONTROL THREE 0x0014, // #DEVICE CONTROL FOUR 0x0015, // #NEGATIVE ACKNOWLEDGE 0x0016, // #SYNCHRONOUS IDLE 0x0017, // #END OF TRANSMISSION BLOCK 0x0018, // #CANCEL 0x0019, // #END OF MEDIUM 0x001a, // #SUBSTITUTE 0x001b, // #ESCAPE 0x001c, // #FILE SEPARATOR 0x001d, // #GROUP SEPARATOR 0x001e, // #RECORD SEPARATOR 0x001f, // #UNIT SEPARATOR 0x0020, // #SPACE 0x0021, // #EXCLAMATION MARK 0x0022, // #QUOTATION MARK 0x0023, // #NUMBER SIGN 0x0024, // #DOLLAR SIGN 0x0025, // #PERCENT SIGN 0x0026, // #AMPERSAND 0x0027, // #APOSTROPHE 0x0028, // #LEFT PARENTHESIS 0x0029, // #RIGHT PARENTHESIS 0x002a, // #ASTERISK 0x002b, // #PLUS SIGN 0x002c, // #COMMA 0x002d, // #HYPHEN-MINUS 0x002e, // #FULL STOP 0x002f, // #SOLIDUS 0x0030, // #DIGIT ZERO 0x0031, // #DIGIT ONE 0x0032, // #DIGIT TWO 0x0033, // #DIGIT THREE 0x0034, // #DIGIT FOUR 0x0035, // #DIGIT FIVE 0x0036, // #DIGIT SIX 0x0037, // #DIGIT SEVEN 0x0038, // #DIGIT EIGHT 0x0039, // #DIGIT NINE 0x003a, // #COLON 0x003b, // #SEMICOLON 0x003c, // #LESS-THAN SIGN 0x003d, // #EQUALS SIGN 0x003e, // #GREATER-THAN SIGN 0x003f, // #QUESTION MARK 0x0040, // #COMMERCIAL AT 0x0041, // #LATIN CAPITAL LETTER A 0x0042, // #LATIN CAPITAL LETTER B 0x0043, // #LATIN CAPITAL LETTER C 0x0044, // #LATIN CAPITAL LETTER D 0x0045, // #LATIN CAPITAL LETTER E 0x0046, // #LATIN CAPITAL LETTER F 0x0047, // #LATIN CAPITAL LETTER G 0x0048, // #LATIN CAPITAL LETTER H 0x0049, // #LATIN CAPITAL LETTER I 0x004a, // #LATIN CAPITAL LETTER J 0x004b, // #LATIN CAPITAL LETTER K 0x004c, // #LATIN CAPITAL LETTER L 0x004d, // #LATIN CAPITAL LETTER M 0x004e, // #LATIN CAPITAL LETTER N 0x004f, // #LATIN CAPITAL LETTER O 0x0050, // #LATIN CAPITAL LETTER P 0x0051, // #LATIN CAPITAL LETTER Q 0x0052, // #LATIN CAPITAL LETTER R 0x0053, // #LATIN CAPITAL LETTER S 0x0054, // #LATIN CAPITAL LETTER T 0x0055, // #LATIN CAPITAL LETTER U 0x0056, // #LATIN CAPITAL LETTER V 0x0057, // #LATIN CAPITAL LETTER W 0x0058, // #LATIN CAPITAL LETTER X 0x0059, // #LATIN CAPITAL LETTER Y 0x005a, // #LATIN CAPITAL LETTER Z 0x005b, // #LEFT SQUARE BRACKET 0x005c, // #REVERSE SOLIDUS 0x005d, // #RIGHT SQUARE BRACKET 0x005e, // #CIRCUMFLEX ACCENT 0x005f, // #LOW LINE 0x0060, // #GRAVE ACCENT 0x0061, // #LATIN SMALL LETTER A 0x0062, // #LATIN SMALL LETTER B 0x0063, // #LATIN SMALL LETTER C 0x0064, // #LATIN SMALL LETTER D 0x0065, // #LATIN SMALL LETTER E 0x0066, // #LATIN SMALL LETTER F 0x0067, // #LATIN SMALL LETTER G 0x0068, // #LATIN SMALL LETTER H 0x0069, // #LATIN SMALL LETTER I 0x006a, // #LATIN SMALL LETTER J 0x006b, // #LATIN SMALL LETTER K 0x006c, // #LATIN SMALL LETTER L 0x006d, // #LATIN SMALL LETTER M 0x006e, // #LATIN SMALL LETTER N 0x006f, // #LATIN SMALL LETTER O 0x0070, // #LATIN SMALL LETTER P 0x0071, // #LATIN SMALL LETTER Q 0x0072, // #LATIN SMALL LETTER R 0x0073, // #LATIN SMALL LETTER S 0x0074, // #LATIN SMALL LETTER T 0x0075, // #LATIN SMALL LETTER U 0x0076, // #LATIN SMALL LETTER V 0x0077, // #LATIN SMALL LETTER W 0x0078, // #LATIN SMALL LETTER X 0x0079, // #LATIN SMALL LETTER Y 0x007a, // #LATIN SMALL LETTER Z 0x007b, // #LEFT CURLY BRACKET 0x007c, // #VERTICAL LINE 0x007d, // #RIGHT CURLY BRACKET 0x007e, // #TILDE 0x007f, // #DELETE 0x00c7, // #LATIN CAPITAL LETTER C WITH CEDILLA 0x00fc, // #LATIN SMALL LETTER U WITH DIAERESIS 0x00e9, // #LATIN SMALL LETTER E WITH ACUTE 0x00e2, // #LATIN SMALL LETTER A WITH CIRCUMFLEX 0x00e4, // #LATIN SMALL LETTER A WITH DIAERESIS 0x00e0, // #LATIN SMALL LETTER A WITH GRAVE 0x00e5, // #LATIN SMALL LETTER A WITH RING ABOVE 0x00e7, // #LATIN SMALL LETTER C WITH CEDILLA 0x00ea, // #LATIN SMALL LETTER E WITH CIRCUMFLEX 0x00eb, // #LATIN SMALL LETTER E WITH DIAERESIS 0x00e8, // #LATIN SMALL LETTER E WITH GRAVE 0x00ef, // #LATIN SMALL LETTER I WITH DIAERESIS 0x00ee, // #LATIN SMALL LETTER I WITH CIRCUMFLEX 0x00ec, // #LATIN SMALL LETTER I WITH GRAVE 0x00c4, // #LATIN CAPITAL LETTER A WITH DIAERESIS 0x00c5, // #LATIN CAPITAL LETTER A WITH RING ABOVE 0x00c9, // #LATIN CAPITAL LETTER E WITH ACUTE 0x00e6, // #LATIN SMALL LIGATURE AE 0x00c6, // #LATIN CAPITAL LIGATURE AE 0x00f4, // #LATIN SMALL LETTER O WITH CIRCUMFLEX 0x00f6, // #LATIN SMALL LETTER O WITH DIAERESIS 0x00f2, // #LATIN SMALL LETTER O WITH GRAVE 0x00fb, // #LATIN SMALL LETTER U WITH CIRCUMFLEX 0x00f9, // #LATIN SMALL LETTER U WITH GRAVE 0x00ff, // #LATIN SMALL LETTER Y WITH DIAERESIS 0x00d6, // #LATIN CAPITAL LETTER O WITH DIAERESIS 0x00dc, // #LATIN CAPITAL LETTER U WITH DIAERESIS 0x00a2, // #CENT SIGN 0x00a3, // #POUND SIGN 0x00a5, // #YEN SIGN 0x20a7, // #PESETA SIGN 0x0192, // #LATIN SMALL LETTER F WITH HOOK 0x00e1, // #LATIN SMALL LETTER A WITH ACUTE 0x00ed, // #LATIN SMALL LETTER I WITH ACUTE 0x00f3, // #LATIN SMALL LETTER O WITH ACUTE 0x00fa, // #LATIN SMALL LETTER U WITH ACUTE 0x00f1, // #LATIN SMALL LETTER N WITH TILDE 0x00d1, // #LATIN CAPITAL LETTER N WITH TILDE 0x00aa, // #FEMININE ORDINAL INDICATOR 0x00ba, // #MASCULINE ORDINAL INDICATOR 0x00bf, // #INVERTED QUESTION MARK 0x2310, // #REVERSED NOT SIGN 0x00ac, // #NOT SIGN 0x00bd, // #VULGAR FRACTION ONE HALF 0x00bc, // #VULGAR FRACTION ONE QUARTER 0x00a1, // #INVERTED EXCLAMATION MARK 0x00ab, // #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK 0x00bb, // #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK 0x2591, // #LIGHT SHADE 0x2592, // #MEDIUM SHADE 0x2593, // #DARK SHADE 0x2502, // #BOX DRAWINGS LIGHT VERTICAL 0x2524, // #BOX DRAWINGS LIGHT VERTICAL AND LEFT 0x2561, // #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE 0x2562, // #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE 0x2556, // #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE 0x2555, // #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE 0x2563, // #BOX DRAWINGS DOUBLE VERTICAL AND LEFT 0x2551, // #BOX DRAWINGS DOUBLE VERTICAL 0x2557, // #BOX DRAWINGS DOUBLE DOWN AND LEFT 0x255d, // #BOX DRAWINGS DOUBLE UP AND LEFT 0x255c, // #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE 0x255b, // #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE 0x2510, // #BOX DRAWINGS LIGHT DOWN AND LEFT 0x2514, // #BOX DRAWINGS LIGHT UP AND RIGHT 0x2534, // #BOX DRAWINGS LIGHT UP AND HORIZONTAL 0x252c, // #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL 0x251c, // #BOX DRAWINGS LIGHT VERTICAL AND RIGHT 0x2500, // #BOX DRAWINGS LIGHT HORIZONTAL 0x253c, // #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL 0x255e, // #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE 0x255f, // #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -