sys7.1-doc-wip/OS/Keyboard/Kbd.r

2186 lines
72 KiB
R
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Hacks to match MacOS (most recent first):
<Sys7.1> 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,<cv>: 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 didnt 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 insideif forROMconditional.
<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 therealaccent 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…
<C928> 11/4/87 EMT Kbd.r: Update to include changes and fixes from SysResDef.r
(e.g. S183)
<A262> 10/24/86 EMT Removed Command-Shift-[<>?:"{}_+|~] feature, as it conflicts
with MacPaint and MS Word
<A248> 10/20/86 EMT Corrected ADB traps to return OSErr. Change to dead key table
format.
<C219> 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