supermario/base/SuperMarioProj.1994-02-09/OS/Keyboard/Kbd.r

2436 lines
78 KiB
R
Raw Normal View History

2019-06-29 15:17:50 +00:00
/*
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 (internationalmidget)
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