/* Hacks to match MacOS (most recent first): 8/3/92 Elliot make this change 9/2/94 SuperMario ROM source dump (header preserved below) */ /* File: Kbd.r Contains: resources for the keyboards (ROM and System) Written by: EMT Ed Tecot PKE Peter Edberg dba Darin Adler MH Mike Hanlon Copyright: © 1986-1992 by Apple Computer, Inc., all rights reserved. Change History (most recent first): <17> 10/11/92 JMF Added KCAP resources for Norsi (Apple Adjustable) keypad, domestic keyboard and ISO keyboard. <16> 4/8/92 PKE #1026586,: For compatibility, add System 6.0.7 version of U.S. KCHR as a second KCHR for US system, with ID 16383. Format both KCHRs for easier readability. <15> 10/28/91 SAM/KSM Rolled in Regatta changes. Regatta History: <2> 8/7/91 SAM (MH) Changed two coords in the Tim/Derringer KCAP (10) to compensate for a KeyCaps bug. 7.0 Change History: <14> 9/16/91 JSM Cleanup header, nuke SysVers >= 0x700 stuff, including getting rid of hasKCHRTweaks, hasKMAPTweaks, and hasKCAPNames which are always the same for ROM and System builds now. <13> 6/11/91 gbm Take out conditional for Regatta <12> 4/8/91 MH with pke: Added KCAP resources for TIM/Derringer keyboards. The IDs are $0A, $0C, and $0D. ID $0A is the current TIM/Derringer built in keyboard. IDs $0C and $0D are the domestic and ISO keyboards, respectively, that will be in production and ID $0A will be removed. Regatta only. <11> 2/26/91 PKE smb,#perCindyR: Change resource name “US” to “U.S.”. <10> 2/23/91 PKE ngk,#83134: (also per CSD) Remove ‘KCAP’ resource names for 7.0. <9> 2/1/91 PKE JSM,#81408: Fix KMAP 5 handling of right Shift, right Control, and right Option keys. <8> 12/14/90 PKE (DC) Fix bug in US KCHR for ISO extended keyboard. This keyboard has an extra key that didn’t generate the correct characters (or even an event) with the US KCHR. This combo is used in several localized versions. (fixes BRC #65484). <7> 5/13/90 PKE Moved hasKCHRTweaks definition inside “if forROM” conditional. <6> 5/13/90 PKE Put in US KCHR changes: (1) Ignore CapsLock if Cmd key down. (2) If neither Opt-key nor Opt-Shift-key produce letters, Opt-CapsLock-key should produce the same character as Opt-key (not Opt-Shift-key). The following changes were requested by Mark Davis (he made me do them): (1) Rearranged Opt-Shift-key table so if Opt-key is dead, then Opt-Shift-key produces the accent by itself; this eliminates Opt-Shift entry of a few accented characters. (2) Changed dead key tables for tilde and circumflex so the character produced for a completor of space or no-match is the “real” accent character (code above $F0), not the low-ASCII approximation. All of the above changes are flagged with the symbol hasKCHRTweaks. <5> 3/23/90 PKE Add name "US" for KCHR 0, remove names from Elmer KCAPs. <4> 2/27/90 PKE Changed KCAP resource conditionalization to use new, more specific hasXXXKeyLayouts symbols. Don't include Portable KCAPs in 7.0 System file. <3> 1/8/90 PKE Replaced KCAPs 5,8,9 with formatted versions from KeyLayout.r, fixing a bug in the Elmer layouts: switched position of '+' and '-' keys. Restored the names for all of the KCAP resources. <2> 12/20/89 dba merged System and ROM keyboard information in this file; added KCAP resources from Key Layout <1> 12/17/89 CCH Adding for the first time into BBS. (BBS versions above, earlier versions below) <1.2> 5/22/89 PKE (Esprit needs this too) Modified KCHR ID=0 for option-shift entry of double acute accent, code $FD <1.1> 4/12/89 PKE Updated KCHR 0 to use Mac char set extensions; added KMAP 2. <1.1> 8/12/88 EMT Added Harpo keyboard layout resources. <1.0> 2/12/88 BBM Adding file for the first time into EASE… 11/4/87 EMT Kbd.r: Update to include changes and fixes from SysResDef.r (e.g. S183) 10/24/86 EMT Removed Command-Shift-[<>?:"{}_+|~] feature, as it conflicts with MacPaint and MS Word 10/20/86 EMT Corrected ADB traps to return OSErr. Change to dead key table format. 10/14/86 EMT Fixed KbdType bug in kbd.a; added ASCII for function keys in kbd.r 10/7/86 EMT new this date. */ // this file is included for System, built standalone for ROM #if forROM #include "SysTypes.r" #define KCHRAttributes locked #else #define KCHRAttributes sysHeap, purgeable #endif #define USname "U.S." #define noMask 0,or #define US607name "U.S. - System 6" #define US607ID 16383 //__________________________________________________________________________________________________ // map from key codes to ASCII resource 'KCHR' (0, USname, KCHRAttributes) { /*<11>*/ 0, { /* cm sh sh cl cl cl cl op op op op op op op op cm cm sh sh cm sh sh cl cl cl cl cm cm cm sh sh cm */ 0; 0; 1; 0; 2; 0; 1; 0; 3; 6; 4; 4; 5; 6; 4; 4; /* + nothing else */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + ct */ 1; 0; 1; 0; 1; 0; 1; 0; 4; 4; 4; 4; 4; 4; 4; 4; /* + rt sh */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt sh, ct */ 3; 6; 4; 4; 5; 6; 4; 4; 3; 6; 4; 4; 5; 6; 4; 4; /* + rt op */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt op, ct */ 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; /* + rt op, rt sh */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt op, rt sh, ct */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt ct */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt ct, ct */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt ct, rt sh */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt ct, rt sh, ct */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt ct, rt op */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt ct, rt op, ct */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt ct, rt op, rt sh */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7 /* + rt ct, rt op, rt sh, ct */ }, { { /* table 0 - no modifiers… */ "a"; "s"; "d"; "f"; "h"; "g"; "z"; "x"; "c"; "v"; "§"; "b"; "q"; "w"; "e"; "r"; /* handle keycode $0A <8> */ "y"; "t"; "1"; "2"; "3"; "4"; "6"; "5"; "="; "9"; "7"; "-"; "8"; "0"; "]"; "o"; "u"; "["; "i"; "p"; "\n"; "l"; "j"; "'"; "k"; ";"; "\\"; ","; "/"; "n"; "m"; "."; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 1 - shift… */ "A"; "S"; "D"; "F"; "H"; "G"; "Z"; "X"; "C"; "V"; "±"; "B"; "Q"; "W"; "E"; "R"; /* handle keycode $0A <8> */ "Y"; "T"; "!"; "@"; "#"; "$"; "^"; "%"; "+"; "("; "&"; "_"; "*"; ")"; "}"; "O"; "U"; "{"; "I"; "P"; "\n"; "L"; "J"; "\""; "K"; ":"; "|"; "<"; "?"; "N"; "M"; ">"; "\t"; " "; "~"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "*"; "*"; "\$00"; "+"; "+"; "\$1B"; "="; "\$00"; "\$00"; "/"; "\$03"; "/"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 2 - capslock… */ "A"; "S"; "D"; "F"; "H"; "G"; "Z"; "X"; "C"; "V"; "§"; "B"; "Q"; "W"; "E"; "R"; /* handle keycode $0A <8> */ "Y"; "T"; "1"; "2"; "3"; "4"; "6"; "5"; "="; "9"; "7"; "-"; "8"; "0"; "]"; "O"; "U"; "["; "I"; "P"; "\n"; "L"; "J"; "'"; "K"; ";"; "\\"; ","; "/"; "N"; "M"; "."; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 3 - option… */ "å"; "ß"; "∂"; "ƒ"; "\$FA"; "©"; "Ω"; "≈"; "ç"; "√"; "§"; "∫"; "œ"; "∑"; "\$00"; "®"; /* handle keycode $0A <8> */ "¥"; "†"; "¡"; "™"; "£"; "¢"; "§"; "∞"; "≠"; "ª"; "¶"; "–"; "•"; "º"; "‘"; "ø"; "\$00"; "“"; "\$00"; "π"; "\n"; "¬"; "∆"; "æ"; "\$FB"; "…"; "«"; "≤"; "÷"; "\$00"; "µ"; "≥"; "\t"; " "; "\$00"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 4 - option+shift… */ "Å"; "\$EA"; "\$EB"; "\$EC"; "\$EE"; "\$FD"; "\$FC"; "\$FE"; "Ç"; "◊"; "±"; "\$F5"; "Œ"; "\$E3"; "´"; "\$E4"; /*<6><8>*/ "\$E7"; "\$FF"; "\$DA"; "\$DB"; "\$DC"; "\$DD"; "\$DF"; "\$DE"; "±"; "\$E1"; "\$E0"; "—"; "°"; "\$E2"; "’"; "Ø"; "¨"; "”"; "\$F6"; "∏"; "\n"; "\$F1"; "\$EF"; "Æ"; "\$F0"; "\$F2"; "»"; "\$F8"; "¿"; "\$F7"; "\$E5"; "\$F9"; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; /*<6>*/ "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "*"; "*"; "\$00"; "+"; "+"; "\$1B"; "="; "\$00"; "\$00"; "/"; "\$03"; "/"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 5 - option+capslock… */ "Å"; "\$EA"; "\$EB"; "\$EC"; "\$EE"; "©"; "Ω"; "≈"; /*<6>*/ "Ç"; "√"; "§"; "\$F5"; "Œ"; "∑"; "´"; "®"; /*<6><8>*/ "\$E7"; "†"; "¡"; "™"; "£"; "¢"; "§"; "∞"; "≠"; "ª"; "¶"; "–"; "•"; "º"; "‘"; "Ø"; "¨"; "“"; "\$F6"; "∏"; "\n"; "\$F1"; "\$EF"; "Æ"; "\$FB"; "…"; "«"; "≤"; "÷"; "\$F7"; "\$E5"; "≥"; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 6 - option+command… */ "å"; "ß"; "∂"; "ƒ"; "\$FA"; "©"; "Ω"; "≈"; "ç"; "√"; "§"; "∫"; "œ"; "∑"; "´"; "®"; /* handle keycode $0A <8> */ "¥"; "†"; "¡"; "™"; "£"; "¢"; "§"; "∞"; "≠"; "ª"; "¶"; "–"; "•"; "º"; "‘"; "ø"; "¨"; "“"; "^"; "π"; "\n"; "¬"; "∆"; "æ"; "\$FB"; "…"; "«"; "≤"; "÷"; "~"; "µ"; "≥"; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 7 - control… */ "\$01"; "\$13"; "\$04"; "\$06"; "\b"; "\$07"; "\$1A"; "\$18"; "\$03"; "\$16"; "0"; "\$02"; "\$11"; "\$17"; "\$05"; "\$12"; "\$19"; "\$14"; "1"; "2"; "3"; "4"; "6"; "5"; "="; "9"; "7"; "\$1F"; "8"; "0"; "\$1D"; "\$0F"; "\$15"; "\$1B"; "\t"; "\$10"; "\n"; "\f"; "\$0A"; "'"; "\v"; ";"; "\$1C"; ","; "/"; "\$0E"; "\n"; "."; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" } }, { 3, 14, { " ", "´"; "A", "\$E7"; "E", "É"; "I", "\$EA"; "O", "\$EE"; "U", "\$F2"; "a", "á"; "e", "é"; "i", "í"; "o", "ó"; "u", "ú" }, "\$00", "´"; 3, 50, { " ", "`"; "A", "À"; "E", "\$E9"; "I", "\$ED"; "O", "\$F1"; "U", "\$F4"; "a", "à"; "e", "è"; "i", "ì"; "o", "ò"; "u", "ù"; }, "\$00", "`"; 3, 34, { " ", "\$F6"; "A", "\$E5"; "E", "\$E6"; "I", "\$EB"; "O", "\$EF"; "U", "\$F3"; "a", "â"; "e", "ê"; "i", "î"; "o", "ô"; "u", "û"; }, "\$00", "\$F6"; 3, 32, { " ", "¨"; "A", "Ä"; "E", "\$E8"; "I", "\$EC"; "O", "Ö"; "U", "Ü"; "Y", "\$D9"; "a", "ä"; "e", "ë"; "i", "ï"; "o", "ö"; "u", "ü"; "y", "ÿ"; }, "\$00", "¨"; 3, 45, { " ", "\$F7"; "A", "Ã"; "N", "Ñ"; "O", "Õ"; "a", "ã"; "n", "ñ"; "o", "õ"; }, "\$00", "\$F7"; } }; resource 'KCHR' (US607ID, US607name, KCHRAttributes) { /*<16>*/ 0, { /* cm sh sh cl cl cl cl op op op op op op op op cm cm sh sh cm sh sh cl cl cl cl cm cm cm sh sh cm */ 0; 0; 1; 0; 2; 2; 1; 0; 3; 6; 4; 4; 5; 5; 4; 4; /* + nothing else */ /* changed in Sys 7 */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + ct */ 1; 0; 1; 0; 1; 0; 1; 0; 4; 4; 4; 4; 4; 4; 4; 4; /* + rt sh */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt sh, ct */ 3; 6; 4; 4; 5; 5; 4; 4; 3; 6; 4; 4; 5; 5; 4; 4; /* + rt op */ /* changed in Sys 7 */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt op, ct */ 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; 4; /* + rt op, rt sh */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt op, rt sh, ct */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; /* + rt ct */ 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7; 7 }, { { /* table 0 - no modifiers… */ "a"; "s"; "d"; "f"; "h"; "g"; "z"; "x"; "c"; "v"; "\$00"; "b"; "q"; "w"; "e"; "r"; "y"; "t"; "1"; "2"; "3"; "4"; "6"; "5"; "="; "9"; "7"; "-"; "8"; "0"; "]"; "o"; "u"; "["; "i"; "p"; "\n"; "l"; "j"; "'"; "k"; ";"; "\\"; ","; "/"; "n"; "m"; "."; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 1 - shift… */ "A"; "S"; "D"; "F"; "H"; "G"; "Z"; "X"; "C"; "V"; "\$00"; "B"; "Q"; "W"; "E"; "R"; "Y"; "T"; "!"; "@"; "#"; "$"; "^"; "%"; "+"; "("; "&"; "_"; "*"; ")"; "}"; "O"; "U"; "{"; "I"; "P"; "\n"; "L"; "J"; "\""; "K"; ":"; "|"; "<"; "?"; "N"; "M"; ">"; "\t"; " "; "~"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "*"; "*"; "\$00"; "+"; "+"; "\$1B"; "="; "\$00"; "\$00"; "/"; "\$03"; "/"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 2 - capslock… */ "A"; "S"; "D"; "F"; "H"; "G"; "Z"; "X"; "C"; "V"; "\$00"; "B"; "Q"; "W"; "E"; "R"; "Y"; "T"; "1"; "2"; "3"; "4"; "6"; "5"; "="; "9"; "7"; "-"; "8"; "0"; "]"; "O"; "U"; "["; "I"; "P"; "\n"; "L"; "J"; "'"; "K"; ";"; "\\"; ","; "/"; "N"; "M"; "."; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 3 - option… */ "å"; "ß"; "∂"; "ƒ"; "\$FA"; "©"; "Ω"; "≈"; "ç"; "√"; "\$00"; "∫"; "œ"; "∑"; "\$00"; "®"; "¥"; "†"; "¡"; "™"; "£"; "¢"; "§"; "∞"; "≠"; "ª"; "¶"; "–"; "•"; "º"; "‘"; "ø"; "\$00"; "“"; "\$00"; "π"; "\n"; "¬"; "∆"; "æ"; "\$FB"; "…"; "«"; "≤"; "÷"; "\$00"; "µ"; "≥"; "\t"; " "; "\$00"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 4 - option+shift… */ "Å"; "\$EA"; "\$EB"; "\$EC"; "\$EE"; "\$ED"; "\$F3"; "\$F4"; /* changed in Sys 7 */ "Ç"; "◊"; "\$00"; "\$F5"; "Œ"; "\$E3"; "\$E4"; "\$E5"; /* changed in Sys 7 */ "\$E7"; "\$E6"; "\$DA"; "\$DB"; "\$DC"; "\$DD"; "\$DF"; "\$DE"; "±"; "\$E1"; "\$E0"; "—"; "°"; "\$E2"; "’"; "Ø"; "\$E8"; "”"; "\$E9"; "∏"; "\n"; "\$F1"; "\$EF"; "Æ"; "\$F0"; "\$F2"; "»"; "\$F8"; "¿"; "\$F6"; "\$F7"; "\$F9"; "\t"; " "; "\$D9"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; /* changed in Sys 7 */ "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "*"; "*"; "\$00"; "+"; "+"; "\$1B"; "="; "\$00"; "\$00"; "/"; "\$03"; "/"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 5 - option+capslock… */ "Å"; "\$EA"; "\$EB"; "\$EC"; "\$EE"; "\$ED"; "\$F3"; "\$F4"; /* changed in Sys 7 */ "Ç"; "◊"; "\$00"; "\$F5"; "Œ"; "\$E3"; "\$E4"; "\$E5"; /* changed in Sys 7 */ "\$E7"; "\$E6"; "¡"; "™"; "£"; "¢"; "§"; "∞"; "≠"; "ª"; "¶"; "–"; "•"; "º"; "‘"; "Ø"; "\$E8"; "“"; "\$E9"; "∏"; "\n"; "\$F1"; "\$EF"; "Æ"; "\$F0"; "…"; "«"; "≤"; "÷"; "\$F6"; "\$F7"; "≥"; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 6 - option+command… */ "å"; "ß"; "∂"; "ƒ"; "\$FA"; "©"; "Ω"; "≈"; "ç"; "√"; "\$00"; "∫"; "œ"; "∑"; "´"; "®"; "¥"; "†"; "¡"; "™"; "£"; "¢"; "§"; "∞"; "≠"; "ª"; "¶"; "–"; "•"; "º"; "‘"; "ø"; "¨"; "“"; "^"; "π"; "\n"; "¬"; "∆"; "æ"; "\$FB"; "…"; "«"; "≤"; "÷"; "~"; "µ"; "≥"; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" }; { /* table 7 - control… */ "\$01"; "\$13"; "\$04"; "\$06"; "\b"; "\$07"; "\$1A"; "\$18"; "\$03"; "\$16"; "0"; "\$02"; "\$11"; "\$17"; "\$05"; "\$12"; "\$19"; "\$14"; "1"; "2"; "3"; "4"; "6"; "5"; "="; "9"; "7"; "\$1F"; "8"; "0"; "\$1D"; "\$0F"; "\$15"; "\$1B"; "\t"; "\$10"; "\n"; "\f"; "\$0A"; "'"; "\v"; ";"; "\$1C"; ","; "/"; "\$0E"; "\n"; "."; "\t"; " "; "`"; "\b"; "\$03"; "\$1B"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "\$00"; "."; "\$1D"; "*"; "\$00"; "+"; "\$1C"; "\$1B"; "\$1F"; "\$00"; "\$00"; "/"; "\$03"; "\$1E"; "-"; "\$00"; "\$00"; "="; "0"; "1"; "2"; "3"; "4"; "5"; "6"; "7"; "\$00"; "8"; "9"; "\$00"; "\$00"; "\$00"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$10"; "\$05"; "\$01"; "\$0B"; "\$7F"; "\$10"; "\$04"; "\$10"; "\$0C"; "\$10"; "\$1C"; "\$1D"; "\$1F"; "\$1E"; "\$00" } }, { 3, 14, { " ", "´"; "A", "\$E7"; "E", "É"; "I", "\$EA"; "O", "\$EE"; "U", "\$F2"; "a", "á"; "e", "é"; "i", "í"; "o", "ó"; "u", "ú" }, "\$00", "´"; 3, 50, { " ", "`"; "A", "À"; "E", "\$E9"; "I", "\$ED"; "O", "\$F1"; "U", "\$F4"; "a", "à"; "e", "è"; "i", "ì"; "o", "ò"; "u", "ù"; }, "\$00", "`"; 3, 34, { " ", "^"; "A", "\$E5"; "E", "\$E6"; "I", "\$EB"; "O", "\$EF"; "U", "\$F3"; "a", "â"; "e", "ê"; "i", "î"; "o", "ô"; "u", "û"; }, "\$00", "^"; 3, 32, { " ", "¨"; "A", "Ä"; "E", "\$E8"; "I", "\$EC"; "O", "Ö"; "U", "Ü"; "Y", "\$D9"; "a", "ä"; "e", "ë"; "i", "ï"; "o", "ö"; "u", "ü"; "y", "ÿ"; }, "\$00", "¨"; 3, 45, { " ", "~"; "A", "Ã"; "N", "Ñ"; "O", "Õ"; "a", "ã"; "n", "ñ"; "o", "õ"; }, "\$00", "~"; } }; //__________________________________________________________________________________________________ // map from raw key codes to virtual key codes // these KMAPs are needed for ADB keyboards; KMAP 0 covers most of them. #if forADBKeyboards // default (for all keyboards which do not have a KMAP) resource 'KMAP' (0, sysHeap, locked) { 0, 0, { $00; $01; $02; $03; $04; $05; $06; $07; $08; $09; $0A; $0B; $0C; $0D; $0E; $0F; $10; $11; $12; $13; $14; $15; $16; $17; $18; $19; $1A; $1B; $1C; $1D; $1E; $1F; $20; $21; $22; $23; $24; $25; $26; $27; $28; $29; $2A; $2B; $2C; $2D; $2E; $2F; $30; $31; $32; $33; $34; $35; $3B; $37; $38; $39; $3A; $7B; $7C; $7D; $7E; $3F; $40; $41; $42; $43; $44; $45; $46; $47; $48; $49; $4A; $4B; $4C; $4D; $4E; $4F; $50; $51; $52; $53; $54; $55; $56; $57; $58; $59; $5A; $5B; $5C; $5D; $5E; $5F; $60; $61; $62; $63; $64; $65; $66; $67; $68; $69; $6A; $6B; $6C; $6D; $6E; $6F; $70; $71; $72; $73; $74; $75; $76; $77; $78; $79; $7A; $3C; $3D; $3E; $36; $7F; }, { } }; // extended keyboard resource 'KMAP' ($02, sysHeap, locked) { 2, 0, { $00; $01; $02; $03; $04; $05; $06; $07; $08; $09; $0A; $0B; $0C; $0D; $0E; $0F; $10; $11; $12; $13; $14; $15; $16; $17; $18; $19; $1A; $1B; $1C; $1D; $1E; $1F; $20; $21; $22; $23; $24; $25; $26; $27; $28; $29; $2A; $2B; $2C; $2D; $2E; $2F; $30; $31; $32; $33; $34; $35; $3B; $37; $38; $B9; $3A; $7B; $7C; $7D; $7E; $3F; $40; $41; $42; $43; $44; $45; $46; $47; $48; $49; $4A; $4B; $4C; $4D; $4E; $4F; $50; $51; $52; $53; $54; $55; $56; $57; $58; $59; $5A; $5B; $5C; $5D; $5E; $5F; $60; $61; $62; $63; $64; $65; $66; $67; $68; $69; $6A; $6B; $6C; $6D; $6E; $6F; $70; $71; $72; $73; $74; $75; $76; $77; $78; $79; $7A; $3C; $3D; $3E; $36; $7F; }, { $39, noXor, $E, "\$00\$02"; $B9, noXor, $E, "\$00\$02"; } }; // ISO extended keyboard resource 'KMAP' (5, sysHeap, locked) { 5, 0, { $00; $01; $02; $03; $04; $05; $06; $07; $08; $09; $0A; $0B; $0C; $0D; $0E; $0F; $10; $11; $12; $13; $14; $15; $16; $17; $18; $19; $1A; $1B; $1C; $1D; $1E; $1F; $20; $21; $22; $23; $24; $25; $26; $27; $28; $29; $2A; $2B; $2C; $2D; $2E; $2F; $30; $31; $32; $33; $34; $35; $3B; $37; $38; $B9; $3A; $7B; $7C; $7D; $7E; $3F; $40; $41; $42; $43; $44; $45; $46; $47; $48; $49; $4A; $4B; $4C; $4D; $4E; $4F; $50; $51; $52; $53; $54; $55; $56; $57; $58; $59; $5A; $5B; $5C; $5D; $5E; $5F; $60; $61; $62; $63; $64; $65; $66; $67; $68; $69; $6A; $6B; $6C; $6D; $6E; $6F; $70; $71; $72; $73; $74; $75; $76; $77; $78; $79; $7A; $3C; $3D; $3E; $36; $7F; /*<9>*/ }, { $39, noXor, $E, "\$00\$02"; $B9, noXor, $E, "\$00\$02"; } }; #endif //__________________________________________________________________________________________________ // KCAPs are keyboard layouts by virtual key code for the Key Caps desk accessory //__________________________________________________________________________________________________ // non-ADB keyboards #if hasNonADBKeyLayouts // original Macintosh keyboard (“midget”) resource 'KCAP' ($03) { {60, 60, 220, 370}, {12, 42, 36, 268}, { { {21, 21} }, { noMask, $32, 50, 10; /* ` ~ */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $2A, 20, 30; /* \ | */ noMask, $1E, 0, -20; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2C, 20, -10; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $3A, 20, -25; /* left option */ noMask, $3A, 0, 230 /* right option */ }; { {21, 31} }, { noMask, $30, 70, 10; /* tab */ noMask, $37, 60, 40; /* command */ noMask, $34, 0, 180; /* enter */ noMask, $33, -80, 40 /* backspace */ }; { {21, 36} }, { noMask, $39, 90, 10; /* caps lock */ noMask, $24, 0, 255 /* return */ }; { {21, 46} }, { noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 245 /* right shift */ }; { {21, 151} }, { noMask, $31, 130, 80 /* space */ } } }; // original Macintosh International keyboard (international “midget”) resource 'KCAP' ($103) { {60, 60, 220, 370}, {12, 42, 36, 268}, { { {21, 21} }, { noMask, $32, 50, 10; /* § */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $24, 0, 20; /* ` ~ */ noMask, $0A, 20, -30; /* / ? */ noMask, $2C, 0, -20; /* . > */ noMask, $2F, 0, -20; /* , < */ noMask, $2B, 0, -20; /* M */ noMask, $2E, 0, -20; /* N */ noMask, $2D, 0, -20; /* B */ noMask, $0B, 0, -20; /* V */ noMask, $09, 0, -20; /* C */ noMask, $08, 0, -20; /* X */ noMask, $07, 0, -20; /* Z */ noMask, $06, 0, -20; /* \ | */ noMask, $3A, 20, -5; /* left option */ noMask, $3A, 0, 230 /* right option */ }; { {21, 26} }, { noMask, $38, 110, 10 /* left shift */ }; { {21, 31} }, { noMask, $30, 70, 10; /* tab */ noMask, $37, 60, 40; /* command */ noMask, $31, 0, 180; /* enter */ noMask, $33, -80, 40 /* backspace */ }; { {21, 36} }, { noMask, $39, 90, 10 /* caps lock */ }; { {21, 46} }, { noMask, $38, 110, 255 /* right shift */ }; { {21, 151} }, { noMask, $34, 130, 80 /* space */ }; { {21, 21}; {41, 5} }, { noMask, $2A, 70, 280 /* return */ } } }; // Macintosh Plus keyboard (Colbydorfer) resource 'KCAP' ($0B) { {60, 56, 220, 456}, {12, 42, 36, 358}, { { {21, 21} }, { noMask, $32, 50, 10; /* ` ~ */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2C, 20, -10; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0 , -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0 , -20; /* N */ noMask, $0B, 0 , -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0 , -20; /* C */ noMask, $07, 0 , -20; /* X */ noMask, $06, 0 , -20; /* Z */ noMask, $2A, 20, 165; /* \ | */ $7D, and, $46, 0, 20; /* left arrow */ $7D, and, $42, 0, 20; /* right arrow */ $7D, and, $48, 0, 20; /* down arrow */ $7D, and, $4D, -20, 0; /* up arrow */ noMask, $41, 20, 70; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ 2, or, $46, 0, 20; /* + */ noMask, $4E, -20, 0; /* - */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ 2, or, $48, 0, 20; /* = */ 2, or, $4D, 0, 20; /* / */ 2, or, $42, 0, 20 /* * */ }; { {21, 26} }, { noMask, $38, 110, 255 /* right shift */ }; { {21, 31} }, { noMask, $30, 70, 10; /* tab */ noMask, $3A, 60, 0; /* option */ noMask, $33, -80, 260 /* backspace */ }; { {21, 36} }, { noMask, $39, 90, 10 /* caps lock */ }; { {21, 41} }, { noMask, $37, 130, 40; /* command */ noMask, $52, 0, 270 /* 0 */ }; { {21, 46} }, { noMask, $38, 110, 10 /* left shift */ }; { {21, 141} }, { noMask, $31, 130, 80 /* space */ }; { {-21, 36}; {-41, 15} }, { noMask, $24, 111, 265 /* return */ }; { {41, 21} }, { noMask, $4C, 110, 370 /* enter */ } } }; #endif //__________________________________________________________________________________________________ // ADB keyboards #if hasADBKeyLayouts // standard keyboard resource 'KCAP' ($01) { {60, 45, 220, 455}, {12, 42, 36, 368}, { { {21, 21} }, { noMask, $35, 50, 10; /* escape */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2C, 20, -10; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $39, 20, -45; /* caps lock */ noMask, $3A, 0, 20; /* option */ noMask, $32, 0, 55; /* ` ~ */ noMask, $2A, 0, 115; /* \ | */ noMask, $7B, 0, 20; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $7E, 0, 20; /* up arrow */ noMask, $41, 0, 80; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ noMask, $4E, 0, 20; /* - */ noMask, $45, -20, 0; /* + */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ noMask, $51, 0, 20; /* = */ noMask, $4B, 0, 20; /* / */ noMask, $43, 0, 20 /* * */ }; { {21, 31} }, { noMask, $30, 70, 10; /* tab */ noMask, $33, -20, 260 /* backspace */ }; { {21, 36} }, { noMask, $3B, 90, 10; /* control */ noMask, $37, 40, 40 /* command */ }; { {21, 41} }, { noMask, $52, 130, 320 /* 0 */ }; { {21, 46} }, { noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 245 /* right shift */ }; { {21, 96} }, { noMask, $31, 130, 105 /* space */ }; { {-21, 36}; {-41, 15} }, { noMask, $24, 111, 265 /* return */ }; { {41, 21} }, { noMask, $4C, 110, 380 /* enter */ } } }; // ISO standard keyboard resource 'KCAP' ($04) { {60, 45, 220, 455}, {12, 42, 36, 368}, { { {21, 21} }, { noMask, $35, 50, 10; /* escape */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2A, 0, 20; /* \ | */ noMask, $7E, 20, 15; /* up arrow */ noMask, $2C, 0, -45; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $32, 0, -20; /* ` ~ */ noMask, $7B, 20, 205; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $41, 0, 80; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ noMask, $4E, 0, 20; /* - */ noMask, $45, -20, 0; /* + */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ noMask, $51, 0, 20; /* = */ noMask, $4B, 0, 20; /* / */ noMask, $43, 0, 20 /* * */ }; { {21, 26} }, { noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 245; /* right shift */ noMask, $3B, 20, -245 /* control */ }; { {21, 31} }, { noMask, $3A, 130, 35; /* option */ noMask, $30, -60, -25; /* tab */ noMask, $33, -20, 260 /* backspace */ }; { {21, 36} }, { noMask, $39, 90, 10; /* caps lock */ noMask, $37, 40, 55; /* left command */ noMask, $37, 0, 140 /* right command */ }; { {21, 41} }, { noMask, $52, 130, 320 /* 0 */ }; { {21, 106} }, { noMask, $31, 130, 100 /* space */ }; { {21, 21}; {41, 5} }, { noMask, $24, 70, 280 /* return */ }; { {41, 21} }, { noMask, $4C, 110, 380 /* enter */ } } }; // extended keyboard (Saratoga) resource 'KCAP' ($02) { {60, 15, 260, 495}, {12, 42, 36, 443}, { { {21, 21} }, { noMask, $35, 50, 10; /* escape */ noMask, $7A, 0, 40; /* F1 */ noMask, $78, 0, 20; /* F2 */ noMask, $63, 0, 20; /* F3 */ noMask, $76, 0, 20; /* F4 */ noMask, $60, 0, 30; /* F5 */ noMask, $61, 0, 20; /* F6 */ noMask, $62, 0, 20; /* F7 */ noMask, $64, 0, 20; /* F8 */ noMask, $65, 0, 30; /* F9 */ noMask, $6D, 0, 20; /* F10 */ noMask, $67, 0, 20; /* F11 */ noMask, $6F, 0, 20; /* F12 */ noMask, $69, 0, 30; /* F13 */ noMask, $6B, 0, 20; /* F14 */ noMask, $71, 0, 20; /* F15 */ noMask, $32, 40, -350; /* ` ~ */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2C, 20, -10; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $72, -60, 265; /* help */ noMask, $73, 0, 20; /* home */ noMask, $74, 0, 20; /* page up */ noMask, $79, 20, 0; /* page down */ noMask, $77, 0, -20; /* end */ noMask, $75, 0, -20; /* delete */ noMask, $7E, 40, 20; /* up arrow */ noMask, $7B, 20, -20; /* left arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $41, 0, 70; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ noMask, $45, 0, 20; /* + */ noMask, $4E, -20, 0; /* - */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ noMask, $51, 0, 20; /* = */ noMask, $4B, 0, 20; /* / */ noMask, $43, 0, 20 /* * */ }; { {21, 26} }, { noMask, $3A, 170, 40; /* left option */ noMask, $3D, 0, 215; /* right option */ noMask, $3A, 0, 0 /* right option */ }; { {21, 31} }, { noMask, $30, 110, 10; /* tab */ noMask, $2A, 0, 270; /* \ | */ noMask, $3E, 60, 0; /* right control */ noMask, $3B, 0, 0; /* right control */ noMask, $37, 0, -55; /* right command */ noMask, $37, 0, -160; /* left command */ noMask, $3B, 0, -55 /* left control */ }; { {21, 36} }, { noMask, $39, 130, 10 /* caps lock */ }; { {21, 41} }, { noMask, $33, 90, 270; /* backspace */ noMask, $52, 80, 120 /* 0 */ }; { {21, 46} }, { noMask, $38, 150, 10; /* left shift */ noMask, $24, -20, 255 /* return */ }; { {21, 56} }, { noMask, $3C, 150, 255; /* right shift */ noMask, $38, 0, 0 /* right shift */ }; { {21, 131} }, { noMask, $31, 170, 95 /* space */ }; { {41, 21} }, { noMask, $4C, 150, 450 /* enter */ } } }; // ISO extended keyboard (Zoots) resource 'KCAP' ($05) { {60, 15, 260, 495}, {12, 42, 36, 443}, { { {21, 21} }, { noMask, $35, 50, 10; /* escape */ noMask, $7A, 0, 40; /* F1 */ noMask, $78, 0, 20; /* F2 */ noMask, $63, 0, 20; /* F3 */ noMask, $76, 0, 20; /* F4 */ noMask, $60, 0, 30; /* F5 */ noMask, $61, 0, 20; /* F6 */ noMask, $62, 0, 20; /* F7 */ noMask, $64, 0, 20; /* F8 */ noMask, $65, 0, 30; /* F9 */ noMask, $6D, 0, 20; /* F10 */ noMask, $67, 0, 20; /* F11 */ noMask, $6F, 0, 20; /* F12 */ noMask, $69, 0, 30; /* F13 */ noMask, $6B, 0, 20; /* F14 */ noMask, $71, 0, 20; /* F15 */ noMask, $12, 40, -325; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2A, 0, 20; /* \ | */ /* <10/11/88ldc> */ noMask, $2C, 20, -30; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $32, 0, -20; /* ` ~ */ /* <10/11/88ldc>*/ noMask, $72, -60, 280; /* help */ noMask, $73, 0, 20; /* home */ noMask, $74, 0, 20; /* page up */ noMask, $79, 20, 0; /* page down */ noMask, $77, 0, -20; /* end */ noMask, $75, 0, -20; /* delete */ noMask, $7E, 40, 20; /* up arrow */ noMask, $7B, 20, -20; /* left arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $41, 0, 70; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ noMask, $45, 0, 20; /* + */ noMask, $4E, -20, 0; /* - */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ noMask, $51, 0, 20; /* = */ noMask, $4B, 0, 20; /* / */ noMask, $43, 0, 20 /* * */ }, { {21, 26} }, { noMask, $0A, 90, 10; /* § <10/11/88ldc>*/ noMask, $3A, 80, 30; /* left option */ noMask, $3D, 0, 215; /* (right option) */ noMask, $3A, 0, 0 /* right option */ }; { {21, 31} }, { noMask, $38, 150, 10; /* left shift */ noMask, $3B, 20, 0; /* left control */ noMask, $37, 0, 55; /* left command */ noMask, $37, 0, 160; /* right command */ noMask, $3E, 0, 55; /* (right control) */ noMask, $3B, 0, 0 /* right control */ }; { {21, 36} }, { noMask, $33, 90, 275; /* backspace */ noMask, $30, 20, -265 /* tab */ }; { {21, 41} }, { noMask, $39, 130, 10; /* caps lock */ noMask, $52, 40, 380 /* key pad 0 */ }; { {21, 26}; {41, 5} }, { noMask, $24, 110, 285 /* return */ /* <10/11/88ldc>*/ }; { {21, 51} }, { noMask, $3C, 150, 260; /* (right shift) */ noMask, $38, 0, 0 /* right shift */ }; { {21, 131} }, { noMask, $31, 170, 95 /* space */ }; { {41, 21} }, { noMask, $4C, 150, 450 /* enter */ }; } }; // Elmer (membrane keyboard that ships with XO and Elsie) resource 'KCAP' ($08) { {60, 45, 220, 465}, /* change from ADB std */ {12, 42, 36, 378}, /* change from ADB std */ { { {21, 21} }, { /* change from ADB std */ noMask, $12, 50, 35; /* 1 ! */ /* change from ADB std */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2C, 20, -10; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $3B, 20, -50; /* control */ /* change from ADB std */ /* change from ADB std */ noMask, $35, 0, 200; /* escape */ /* change from ADB std */ noMask, $7B, 0, 20; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $7E, 0, 20; /* up arrow */ noMask, $41, 0, 80; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ noMask, $45, 0, 20; /* + */ /* change from ADB std */ /* <3> */ noMask, $4E, -20, 0; /* - */ /* change from ADB std */ /* <3> */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ noMask, $51, 0, 20; /* = */ noMask, $4B, 0, 20; /* / */ noMask, $43, 0, 20 /* * */ }; { {21, 26} }, { /* change from ADB std */ noMask, $32, 50, 10; /* ` ~ */ /* change from ADB std */ noMask, $3A, 80, 20; /* option */ /* change from ADB std */ noMask, $2A, -60, 255 /* \ | */ /* change from ADB std */ }; { {21, 36} }, { noMask, $30, 70, 10; /* tab */ /* change from ADB std */ noMask, $37, 60, 45; /* command */ /* change from ADB std */ noMask, $33, -80, 220 /* backspace */ /* change from ADB std */ }; { {21, 41} }, { noMask, $39, 90, 10; /* caps lock */ /* change from ADB std */ noMask, $24, 0, 260; /* return */ /* change from ADB std */ noMask, $52, 40, 60 /* 0 */ /* change from ADB std */ }; { {21, 51} }, { /* change from ADB std */ noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 250 /* right shift */ /* change from ADB std */ }; { {21, 121} }, { /* change from ADB std */ noMask, $31, 130, 90 /* space */ /* change from ADB std */ }; /* change from ADB std */ { {41, 21} }, { noMask, $4C, 110, 390 /* enter */ /* change from ADB std */ } } }; // ISO Elmer resource 'KCAP' ($09) { {60, 45, 220, 465}, /* change from ADB std */ {12, 42, 36, 378}, /* change from ADB std */ { { {21, 21} }, { /* change from ADB ISO */ noMask, $12, 50, 35; /* 1 ! */ /* change from ADB ISO */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2A, 0, 20; /* \ | */ noMask, $7E, 20, 20; /* up arrow */ /* change from ADB ISO */ noMask, $2C, 0, -50; /* / ? */ /* change from ADB ISO */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $32, 0, -20; /* ` ~ */ noMask, $3B, 20, -30; /* control */ /* change from ADB ISO */ noMask, $35, 0, 220; /* escape */ /* change from ADB ISO */ noMask, $7B, 0, 20; /* left arrow */ /* change from ADB ISO */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $41, 0, 80; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ noMask, $45, 0, 20; /* + */ /* change from ADB std */ /* <3> */ noMask, $4E, -20, 0; /* - */ /* change from ADB std */ /* <3> */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ noMask, $51, 0, 20; /* = */ noMask, $4B, 0, 20; /* / */ noMask, $43, 0, 20 /* * */ }; { {21, 26} }, { noMask, $0A, 50, 10; /* § */ /* change from ADB ISO */ noMask, $3A, 80, 20 /* option */ /* change from ADB ISO */ }; { {21, 31} }, { noMask, $38, 110, 10; /* left shift */ /* change from ADB ISO */ noMask, $3C, 0, 250; /* (right shift) */ /* change from ADB ISO */ noMask, $38, 0, 0 /* right shift */ /* change from ADB ISO */ }; { {21, 36} }, { noMask, $30, 70, 10; /* tab */ /* change from ADB ISO */ noMask, $37, 60, 45; /* command */ /* change from ADB ISO */ noMask, $33, -80, 220 /* backspace */ /* change from ADB ISO */ }; { {21, 41} }, { noMask, $39, 90, 10; /* caps lock */ /* change from ADB ISO */ noMask, $52, 40, 320 /* key pad 0 */ /* change from ADB ISO */ }; { {21, 141} }, { /* change from ADB ISO */ noMask, $31, 130, 90 /* space */ /* change from ADB ISO */ }; { {21, 26}; {41, 5} }, { /* change from ADB ISO */ noMask, $24, 70, 285 /* return */ /* change from ADB ISO */ }; { {41, 21} }, { noMask, $4C, 110, 390 /* enter */ /* change from ADB ISO */ } } }; #endif // TIM/Derringer keyboard old ID resource 'KCAP' ($0A) { {60, 60, 220, 370}, {12, 42, 36, 268}, { { {21, 21} }, { noMask, $32, 50, 10; /* ` ~ */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $2A, 20, 30; /* \ | */ noMask, $1E, 0, -20; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2C, 20, -10; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $3B, 20, -45; /* control */ noMask, $3A, 0, 20; /* option */ noMask, $35, 0, 55; /* escape */ noMask, $34, 0, 115; /* enter (keyboard) */ noMask, $7B, 0, 20; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $7E, 0, 20 /* up arrow */ }; { {21, 31} }, { noMask, $30, 70, 10; /* tab */ noMask, $33, -20, 260 /* backspace */ }; { {21, 36} }, { noMask, $39, 90, 10; /* caps lock */ noMask, $24, 0, 255; /* return */ noMask, $37, 40, -215 /* command */ }; { {21, 46} }, { noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 245 /* right shift */ }; { {21, 96} }, { noMask, $31, 130, 105 /* space */ } } }; // TIM/Derringer keyboard new ID resource 'KCAP' ($0C) { {60, 60, 220, 370}, {12, 42, 36, 268}, { { {21, 21} }, { noMask, $32, 50, 10; /* ` ~ */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $2A, 20, 30; /* \ | */ noMask, $1E, 0, -20; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2C, 20, -10; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $3B, 20, -45; /* control */ noMask, $3A, 0, 20; /* option */ noMask, $35, 0, 55; /* escape */ noMask, $34, 0, 115; /* enter (keyboard) */ noMask, $7B, 0, 20; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $7E, 0, 20 /* up arrow */ }; { {21, 31} }, { noMask, $30, 70, 10; /* tab */ noMask, $33, -20, 260 /* backspace */ }; { {21, 36} }, { noMask, $39, 90, 10; /* caps lock */ noMask, $24, 0, 255; /* return */ noMask, $37, 40, -215 /* command */ }; { {21, 46} }, { noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 245 /* right shift */ }; { {21, 96} }, { noMask, $31, 130, 105 /* space */ } } }; // ISO TIM/Derringer keyboard resource 'KCAP' ($0D) { {60, 60, 220, 370}, {12, 42, 36, 268}, { { {21, 21} }, { noMask, $0A, 50, 10; /* § */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2A, 0, 20; /* \ | */ noMask, $7E, 20, 15; /* up arrow */ noMask, $2C, 0, -45; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $32, 0, -20; /* ` ~ */ noMask, $3B, 20, -25; /* control */ noMask, $3A, 0, 20; /* option */ noMask, $35, 0, 55; /* escape */ noMask, $34, 0, 135; /* keyboard enter */ noMask, $7B, 0, 20; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20 /* down arrow */ }; { {21, 26} }, { noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 245 /* right shift */ }; { {21, 31} }, { noMask, $30, 70, 10; /* tab */ noMask, $33, -20, 260 /* backspace */ }; { {21, 36} }, { noMask, $39, 90, 10; /* caps lock */ noMask, $37, 40, 40 /* left command */ }; { {21, 116} }, { noMask, $31, 130, 105 /* space */ }; { {21, 21}; {41, 5} }, { noMask, $24, 70, 280 /* return */ } } }; //__________________________________________________________________________________________________ // Portable keyboards // Note that KCAPs 6 and 7 are in the Portable's ROM #if hasPortableKeyLayouts // Portable keyboard resource 'KCAP' ($06) { {60, 45, 220, 455}, {12, 42, 36, 368}, { { {21, 21} }, { noMask, $35, 50, 10; /* escape */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $2A, 20, 30; /* \ | */ noMask, $1E, 0, -20; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2C, 20, -10; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $39, 20, -45; /* caps lock */ noMask, $3A, 0, 20; /* option */ noMask, $32, 0, 55; /* ` ~ */ noMask, $34, 0, 115; /* enter (keyboard) */ noMask, $7B, 0, 20; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $7E, 0, 20; /* up arrow */ noMask, $41, 0, 80; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ noMask, $45, 0, 20; /* + */ noMask, $4E, -20, 0; /* - */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ noMask, $51, 0, 20; /* = */ noMask, $4B, 0, 20; /* / */ noMask, $43, 0, 20 /* * */ }; { {21, 31} }, { noMask, $30, 70, 10; /* tab */ noMask, $33, -20, 260 /* backspace */ }; { {21, 36} }, { noMask, $3B, 90, 10; /* control */ noMask, $24, 0, 255; /* return */ noMask, $37, 40, -215 /* command */ }; { {21, 41} }, { noMask, $52, 130, 320 /* 0 */ }; { {21, 46} }, { noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 245 /* right shift */ }; { {21, 96} }, { noMask, $31, 130, 105 /* space */ }; { {41, 21} }, { noMask, $4C, 110, 380 /* enter (keypad) */ } } }; // ISO Portable keyboard resource 'KCAP' ($07) { {60, 45, 220, 455}, {12, 42, 36, 368}, { { {21, 21} }, { noMask, $35, 50, 10; /* escape */ noMask, $12, 0, 20; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 20; /* 6 ^ */ noMask, $1A, 0, 20; /* 7 & */ noMask, $1C, 0, 20; /* 8 * */ noMask, $19, 0, 20; /* 9 ( */ noMask, $1D, 0, 20; /* 0 ) */ noMask, $1B, 0, 20; /* - _ */ noMask, $18, 0, 20; /* = + */ noMask, $1E, 20, 10; /* ] } */ noMask, $21, 0, -20; /* [ { */ noMask, $23, 0, -20; /* P */ noMask, $1F, 0, -20; /* O */ noMask, $22, 0, -20; /* I */ noMask, $20, 0, -20; /* U */ noMask, $10, 0, -20; /* Y */ noMask, $11, 0, -20; /* T */ noMask, $0F, 0, -20; /* R */ noMask, $0E, 0, -20; /* E */ noMask, $0D, 0, -20; /* W */ noMask, $0C, 0, -20; /* Q */ noMask, $00, 20, 5; /* A */ noMask, $01, 0, 20; /* S */ noMask, $02, 0, 20; /* D */ noMask, $03, 0, 20; /* F */ noMask, $05, 0, 20; /* G */ noMask, $04, 0, 20; /* H */ noMask, $26, 0, 20; /* J */ noMask, $28, 0, 20; /* K */ noMask, $25, 0, 20; /* L */ noMask, $29, 0, 20; /* ; : */ noMask, $27, 0, 20; /* ' " */ noMask, $2A, 0, 20; /* \ | */ noMask, $7E, 20, 15; /* up arrow */ noMask, $2C, 0, -45; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -20; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $32, 0, -20; /* ` ~ */ noMask, $7B, 20, 205; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ noMask, $41, 0, 80; /* . */ noMask, $55, -20, 0; /* 3 */ noMask, $54, 0, -20; /* 2 */ noMask, $53, 0, -20; /* 1 */ noMask, $56, -20, 0; /* 4 */ noMask, $57, 0, 20; /* 5 */ noMask, $58, 0, 20; /* 6 */ noMask, $45, 0, 20; /* + */ noMask, $4E, -20, 0; /* - */ noMask, $5C, 0, -20; /* 9 */ noMask, $5B, 0, -20; /* 8 */ noMask, $59, 0, -20; /* 7 */ noMask, $47, -20, 0; /* clear */ noMask, $51, 0, 20; /* = */ noMask, $4B, 0, 20; /* / */ noMask, $43, 0, 20 /* * */ }; { {21, 26} }, { noMask, $38, 110, 10; /* left shift */ noMask, $38, 0, 245; /* right shift */ noMask, $3B, 20, -245 /* control */ }; { {21, 31} }, { noMask, $3A, 130, 35; /* option */ noMask, $30, -60, -25; /* tab */ noMask, $33, -20, 260 /* backspace */ }; { {21, 36} }, { noMask, $39, 90, 10; /* caps lock */ noMask, $37, 40, 55; /* left command */ noMask, $34, 0, 140 /* keyboard enter */ }; { {21, 41} }, { noMask, $52, 130, 320 /* 0 */ }; { {21, 106} }, { noMask, $31, 130, 100 /* space */ }; { {21, 21}; {41, 5} }, { noMask, $24, 70, 280 /* return */ }; { {41, 21} }, { noMask, $4C, 110, 380 /* enter */ } } }; #endif