/* 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 */ } } }; // Norsi (Apple Adjustable) keypad <17> 10/22/92 JMF resource 'KCAP' ($0E) { {60, 125, 220, 365}, {12, 42, 36, 198}, { { {21, 21} }, { noMask, $7A, 50, 10; /* F1 */ noMask, $78, 0, 20; /* F2 */ noMask, $63, 0, 20; /* F3 */ noMask, $76, 20, -40; /* F4 */ noMask, $60, 0, 20; /* F5 */ noMask, $61, 0, 20; /* F6 */ noMask, $62, 20, -40; /* F7 */ noMask, $64, 0, 20; /* F8 */ noMask, $65, 0, 20; /* F9 */ noMask, $6D, 20, -40; /* F10 */ noMask, $67, 0, 20; /* F11 */ noMask, $6F, 0, 20; /* F12 */ noMask, $69, 20, -40; /* F13 */ noMask, $6B, 0, 20; /* F14 */ noMask, $71, 0, 20; /* F15 */ noMask, $72, -80, 30; /* 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, 41} }, { noMask, $52, 130, 150; /* 0 */ }; { {41, 21} }, { noMask, $4C, 110, 210; /* enter */ }; } }; // Domestic Norsi (Apple Adjustable) keyboard <17> 10/22/92 JMF resource 'KCAP' ($10) { {60, 45, 240, 435}, {12, 42, 36, 348}, { { {21, 21} }, { noMask, $35, 50, 10; /* escape */ noMask, $12, 0, 70; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 40; /* 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, -40; /* 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, 40; /* 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, $7E, 20, 45; /* up arrow */ noMask, $2C, 0, -55; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -40; /* B */ noMask, $09, 0, -20; /* V */ noMask, $08, 0, -20; /* C */ noMask, $07, 0, -20; /* X */ noMask, $06, 0, -20; /* Z */ noMask, $7B, 20, 215; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ }; { {21, 26} }, { noMask, $3A, 130, 80; /* option */ noMask, $37, 0, 215; /* right command */ }; { {21, 31} }, { noMask, $32, 50, 50; /* ` ~ */ noMask, $3B, 80, 0; /* control */ noMask, $37, 0, 55; /* left command */ noMask, $2A, -60, 245; /* \ | */ }; { {21, 36} }, { noMask, $38, 110, 325; /* right shift */ }; { {21, 41} }, { noMask, $30, 70, 50; /* tab */ noMask, $33, -20, 290; /* backspace */ }; { {21, 46} }, { noMask, $39, 90, 50; /* caps lock */ noMask, $24, 0, 285; /* return */ }; { {21, 56} }, { noMask, $38, 110, 50; /* left shift */ }; { {31, 141} }, { noMask, $31, 140, 145 /* space */ }; } }; // ISO Norsi (Apple Adjustable) keyboard <17> 10/22/92 JMF resource 'KCAP' ($11) { {60, 45, 240, 435}, {12, 42, 36, 348}, { { {21, 21} }, { noMask, $35, 50, 10; /* escape */ noMask, $12, 0, 70; /* 1 ! */ noMask, $13, 0, 20; /* 2 @ */ noMask, $14, 0, 20; /* 3 # */ noMask, $15, 0, 20; /* 4 $ */ noMask, $17, 0, 20; /* 5 % */ noMask, $16, 0, 40; /* 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, -40; /* 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, 40; /* 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, 25; /* up arrow */ noMask, $2C, 0, -55; /* / ? */ noMask, $2F, 0, -20; /* . > */ noMask, $2B, 0, -20; /* , < */ noMask, $2E, 0, -20; /* M */ noMask, $2D, 0, -20; /* N */ noMask, $0B, 0, -40; /* 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, 235; /* left arrow */ noMask, $7C, 0, 20; /* right arrow */ noMask, $7D, 0, 20; /* down arrow */ }; { {21, 26} }, { noMask, $3A, 130, 80; /* option */ noMask, $37, 0, 215; /* right command */ }; { {21, 31} }, { noMask, $0A, 50, 50; /* ISO */ noMask, $3B, 80, 0; /* control */ noMask, $37, 0, 55; /* left command */ }; { {21, 36} }, { noMask, $38, 110, 50; /* left shift */ noMask, $38, 0, 275; /* right shift */ }; { {21, 41} }, { noMask, $30, 70, 50; /* tab */ noMask, $33, -20, 290; /* backspace */ }; { {21, 46} }, { noMask, $39, 90, 50; /* caps lock */ }; { {31, 141} }, { noMask, $31, 140, 145 /* space */ }; { {21, 31}; {41, 5} }, { noMask, $24, 70, 350; /* return */ }; } }; #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