AppleII Keyboards and Keycodes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ AppleII, AppleII Plus ===================== +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ | ! | " | # | $ | % | & | ' | ( | ) | | * | = | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | : | - |RESET| +-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+-----+ | | | | | | | | | | | @ | | | | ESC | Q | W | E | R | T | Y | U | I | O | P | RPT | RETURN| +-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+-----+ | | | | | | | | | | | + | | | |CTRL | A | S | D | F | G | H | J | K | L | ; | <-- | --> | +-----+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+-----+ | | | | | | | ^ | | < | > | ? | | | SHIFT | Z | X | C | V | B | N | M | , | . | / | SHIFT | +---------+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-------+ | | | SPACE | +-----------------------------------------------+ AppleIIe, IIe Enhanced, IIe Extended, AppleIIc ============================================== +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---------+ +-----+ | | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | | | | | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | DELETE | |RESET| +-----+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-----+ +-----+ | | Q | W | E | R | T | Y | U | I | O | P | { | } | | | | TAB | q | w | e | r | t | y | u | i | o | p | [ | ] |* \ | +---------+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+ | | | A | S | D | F | G | H | J | K | L | : | " | ~ | | | CONTROL | a | s | d | f | g | h | j | k | l | ; | ' |+ ` |RET| +---------+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+-----+---+ | | | | Z | X | C | V | B | N | M | < | > | ? | | | SHIFT |+ \ | z | x | c | v | b | n | m | , | . | / | SHIFT | +-----+---+-+---+-+---+-+---+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ |CAPS | ~ | | OPEN| |SOLID| | | | | |LOCK |* ` | |APPLE| SPACE |APPLE| Lft | Rgt | Dwn | Up | +-----+-----+ +-----+---------------------------------+-----+-----+-----+-----+-----+ Key location variants: * AppleIIc + AppleIIe, IIe Enhanced, IIe Extended AppleIIe, IIe Enhanced, IIe Extended, AppleIIc Keycodes ------------------------------------------------------- +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---------+ ctrl | $1B | 1 | $00 | 3 | 4 | 5 | $1E | 7 | 8 | 9 | 0 | $1F | = | $7F | shift | $1B | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | $7F | key | $1B | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | $7F | +-----+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-----+ ctrl | $09 | $11 | $17 | $05 | $12 | $14 | $19 | $15 | $09 | $0F | $10 | $1B | $1D | $1C | shift | $09 | Q | W | E | R | T | Y | U | I | O | P | { | } | | | key | $09 | q | w | e | r | t | y | u | i | o | p | [ | ] |* \ | +---------+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+ | ctrl | | $01 | $13 | $04 | $06 | $07 | $08 | $0A | $0B | $0C | ; | ' | |$0D| shift | | A | S | D | F | G | H | J | K | L | : | " | ~ |$0D| key | CONTROL | a | s | d | f | g | h | j | k | l | ; | ' |+ ` |$0D| +---------+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+-----+---+ ctrl | | $1C | $1A | $18 | $03 | $16 | $02 | $0E | $0D | , | . | / | | shift | | | | Z | X | C | V | B | N | M | < | > | ? | | key | SHIFT |+ \ | z | x | c | v | b | n | m | , | . | / | SHIFT | +-----+---+-+---+-+---+-+---+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+ ctrl | | ` | | | $20 | | $08 | $15 | $0A | $0B | shift |CAPS | ~ | | OPEN| $20 |SOLID| $08 | $15 | $0A | $0B | key |LOCK |* ` | |APPLE| $20 |APPLE| $08 | $15 | $0A | $0B | +-----+-----+ +-----+---------------------------------+-----+-----+-----+-----+-----+ Key location variants: * AppleIIc + AppleIIe, IIe Enhanced, IIe Extended AppleIIc Plus, AppleIIe Platinum, AppleIIgs =========================================== <------------------------------------------AppleIIe Platinum, AppleIIgs-------------------------------------------> <------------------------------------AppleIIc Plus--------------------------------------> +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---------+ +-----+-----+-----+-----+ | | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | | | ESC | | | | | ESC | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | DELETE | |CLEAR| = | / | * | +-----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+------+ +-----+-----+-----+-----+ | | Q | W | E | R | T | Y | U | I | O | P | { | } | | | | | | | | TAB | q | w | e | r | t | y | u | i | o | p | [ | ] | | | 7 | 8 | 9 | + | +--------+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+ | +-----+-----+-----+-----+ | | A | S | D | F | G | H | J | K | L | : | " | | | | | | | | CONTROL | a | s | d | f | g | h | j | k | l | ; | ' | RETURN | | 4 | 5 | 6 | - | +----------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+----------+ +-----+-----+-----+-----+ | | Z | X | C | V | B | N | M | < | > | ? | | | | | | E | | SHIFT | z | x | c | v | b | n | m | , | . | / | SHIFT | | 1 | 2 | 3 | N | +-----+-----+-+-----+--+--+--+--+-----+-----+-----+-----+-+---+-+---+-+---+-+-----+-----+ +-----+-----+-----+ T | |CAPS | | OPEN | ~ | | | | | | | | | | | E | |LOCK |OPTIN| APPLE | ` | SPACE | \ | Lft | Rgt | Dwn | Up | | 0 | . | R | +-----+-----+----------+-----+----------------------------+-----+-----+-----+-----+-----+ +-----------+-----+-----+ AppleIIc Plus, AppleIIe Platinum, AppleIIgs Keycodes ---------------------------------------------------- <----------------------------------------------------Apple IIgs----------------------------------------------------> <-------------------------------------Apple IIc/IIe-------------------------------------> +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+---------+ +-----+-----+-----+-----+ ctrl | $1B | 1 | $00 | 3 | 4 | 5 | $1E | 7 | 8 | 9 | 0 | $1F | = | $7F | |K+$1B|K+'='|K+'/'|K+'*'| shift | $1B | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | $7F | |K+$1B|K+'='|K+'/'|K+'*'| key | $1B | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | $7F | |K+$1B|K+'='|K+'/'|K+'*'| +-----+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+------+ +-----+-----+-----+-----+ ctrl | $09 | $11 | $17 | $05 | $12 | $14 | $19 | $15 | $09 | $0F | $10 | $1B | $1D | | |K+'7'|K+'8'|K+'9'|K+'+'| shift | $09 | Q | W | E | R | T | Y | U | I | O | P | { | } | | |K+'7'|K+'8'|K+'9'|K+'+'| key | $09 | q | w | e | r | t | y | u | i | o | p | [ | ] | | |K+'7'|K+'8'|K+'9'|K+'+'| +--------+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+ | +-----+-----+-----+-----+ ctrl | | $01 | $13 | $04 | $06 | $07 | $08 | $0A | $0B | $0C | ; | ' | $0D | |K+'4'|K+'5'|K+'6'|K+'-'| shift | | A | S | D | F | G | H | J | K | L | : | @ | $0D | |K+'4'|K+'5'|K+'6'|K+'-'| key | CONTROL | a | s | d | f | g | h | j | k | l | ; | ' | $0D | |K+'4'|K+'5'|K+'6'|K+'-'| +----------+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+----------+ +-----+-----+-----+-----+ ctrl | | $1A | $18 | $03 | $16 | $02 | $0E | $0D | , | . | / | | |K+'1'|K+'2'|K+'3'| | shift | | Z | X | C | V | B | N | M | < | > | ? | | |K+'1'|K+'2'|K+'3'| | key | SHIFT | z | x | c | v | b | n | m | , | . | / | SHIFT | |K+'1'|K+'2'|K+'3'| | +-----+-----+-+-----+--+--+--+--+-----+-----+-----+-----+-+---+-+---+-+---+-+-----+-----+ +-----+-----+-----+ | ctrl | | | | ` | $20 | $1C | $08 | $15 | $0A | $0B | | K+'0' |K+'.'|K+$0D| shift |CAPS |SOLID| OPEN | ~ | $20 | | | $08 | $15 | $0A | $0B | | K+'0' |K+'.'|K+$0D| key |LOCK |APPLE| APPLE | ` | $20 | \ | $08 | $15 | $0A | $0B | | K+'0' |K+'.'|K+$0D| +-----+-----+----------+-----+----------------------------+-----+-----+-----+-----+-----+ +-----------+-----+-----+ K+'x' indicates KPAD bit in KBDMOD register is set, 'x' is value returned in KBDDATA register. (Check: what does Ctrl-~ give?) AppleII ADB Extended Keyboard ============================= +-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+ +-----+ | | | | | | | | | | | | | | | | | | | | | === === === | | | ESC | | f1 | f2 | f3 | f4 | | f5 | f6 | f7 | f8 | | f9 | f10 | f11 | f12 | | f13 | f14 | f15 | |POWER| +-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+ +-----+ +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------------+ +-----+-----+-----+ +-----+-----+-----+-----+ | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | | | Ins | | Pge | | | | | | | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | DELETE | | Hlp |Home | Up | |CLEAR| = | / | * | +-----+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+--------+ +-----+-----+-----+ +-----+-----+-----+-----+ | | Q | W | E | R | T | Y | U | I | O | P | { | } | | | | | | Pge | | | | | | | TAB | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | | Del | End | Dwn | | 7 | 8 | 9 | - | +---------+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+--------+ +-----+-----+-----+ +-----+-----+-----+-----+ | | A | S | D | F | G | H | J | K | L | : | " | | | | | | | | CAPS LOCK | a | s | d | f | g | h | j | k | l | ; | ' | RETURN | | 4 | 5 | 6 | + | +-----------+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+------------+ +-----+ +-----+-----+-----+-----+ | | Z | X | C | V | B | N | M | < | > | ? | | | | | | | | E | | SHIFT | z | x | c | v | b | n | m | , | . | / | SHIFT | | Up | | 1 | 2 | 3 | N | +---------+-----+-+---+---+-+-----+-----+-----+-----+-----+-----+---+-+-----+-------+------+ +-----+-----+-----+ +-----+-----+-----+ T | | | | SOLID | | SOLID | | | | | | | | | | E | | CTRL |OPTION | APPLE | SPACE | APPLE | OPTION| CTRL | | Lft | Dwn | Rgh | | 0 | . | R | +---------+-------+-------+-----------------------------------------+-------+-------+------+ +-----+-----+-----+ +-----------+-----+-----+ AppleII Extended Keyboard Keycodes ---------------------------------- +-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+ +-----+ ctrl | $1B | |K+'z'|K+'x'|K+'c'|K+'v'| |K+'`'|K+'a'|K+'b'|K+'d'| |K+'e'|K+'m'|K+'g'|K+'o'| |K+'i'|K+'k'|K+'q'| |POWER| shift | $1B | |K+'z'|K+'x'|K+'c'|K+'v'| |K+'`'|K+'a'|K+'b'|K+'d'| |K+'e'|K+'m'|K+'g'|K+'o'| |K+'i'|K+'k'|K+'q'| |POWER| key | $1B | |K+'z'|K+'x'|K+'c'|K+'v'| |K+'`'|K+'a'|K+'b'|K+'d'| |K+'e'|K+'m'|K+'g'|K+'o'| |K+'i'|K+'k'|K+'q'| |POWER| +-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+-----+ +-----+-----+-----+ +-----+ +-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+-----+------------+ +-----+-----+-----+ +-----+-----+-----+-----+ ctrl | ` | 1 | $00 | 3 | 4 | 5 | $1E | 7 | 8 | 9 | 0 | $1F | = | $7F | |K+'r'|K+'s'|K+'t'| |K+$1B|K+'='|K+'/'|K+'*'| shift | ~ | ! | @ | # | $ | % | ^ | & | * | ( | ) | _ | + | $7F | |K+'r'|K+'s'|K+'t'| |K+$1B|K+'='|K+'/'|K+'*'| key | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | $7F | |K+'r'|K+'s'|K+'t'| |K+$1B|K+'='|K+'/'|K+'*'| +-----+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+--------+ +-----+-----+-----+ +-----+-----+-----+-----+ ctrl | $09 | $11 | $17 | $05 | $12 | $14 | $19 | $15 | $09 | $0F | $10 | $1B | $1D | $1C | |K+'u'|K+'w'|K+'y'| |K+'7'|K+'8'|K+'9'|K+'-'| shift | $09 | Q | W | E | R | T | Y | U | I | O | P | { | } | | | |K+'u'|K+'w'|K+'y'| |K+'7'|K+'8'|K+'9'|K+'-'| key | $09 | q | w | e | r | t | y | u | i | o | p | [ | ] | \ | |K+'u'|K+'w'|K+'y'| |K+'7'|K+'8'|K+'9'|K+'-'| +---------+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+--------+ +-----+-----+-----+ +-----+-----+-----+-----+ ctrl | | $01 | $13 | $04 | $06 | $07 | $08 | $0A | $0B | $0C | ; | ' | $0D | |K+'4'|K+'5'|K+'6'|K+'+'| shift | | A | S | D | F | G | H | J | K | L | : | " | $0D | |K+'4'|K+'5'|K+'6'|K+'+'| key | CAPS LOCK | a | s | d | f | g | h | j | k | l | ; | ' | $0D | |K+'4'|K+'5'|K+'6'|K+'+'| +-----------+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+---+-+------------+ +-----+ +-----+-----+-----+-----+ ctrl | | $1A | $18 | $03 | $16 | $02 | $0E | $0D | , | . | / | | | $0B | |K+'1'|K+'2'|K+'3'| | shift | | Z | X | C | V | B | N | M | < | > | ? | | | $0B | |K+'1'|K+'2'|K+'3'| | key | SHIFT | z | x | c | v | b | n | m | , | . | / | SHIFT | | $0B | |K+'1'|K+'2'|K+'3'| | +---------+-----+-+---+---+-+-----+-----+-----+-----+-----+-----+---+-+-----+-------+------+ +-----+-----+-----+ +-----+-----+-----+ | ctrl | | | | $20 | | | | | $08 | $0A | $15 | | K+'0' |K+'.'|K+$0D| shift | | | SOLID | $20 | SOLID | | | | $08 | $0A | $15 | | K+'0' |K+'.'|K+$0D| key | CTRL | OPTION| APPLE | $20 | APPLE | OPTION| CTRL | | $08 | $0A | $15 | | K+'0' |K+'.'|K+$0D| +---------+-------+-------+-----------------------------------------+-------+-------+------+ +-----+-----+-----+ +-----------+-----+-----+ K+'x' indicates KPAD bit in KBDMOD register is set, 'x' is value returned in KBDDATA register. (Check: what does Ctrl-~ give?) AppleII Keyboard Map ==================== Values returned in KBDDATA register with KPAD bit set in KBDMOD register +==+====+====+====+====+====+====+====+====+====+====+====+====+====+====+====+====+ | | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | +==+====+====+====+====+====+====+====+====+====+====+====+====+====+====+====+====+ |0x| |KRet| | +--+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ |1x| |KEsc| | +--+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ |2x| | K* | K+ | | K- | K. | K/ | +--+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ |3x| K0 | K1 | K2 | K3 | K4 | K5 | K6 | K7 | K8 | K9 | | | | K= | | | +--+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ |6x| f5 | f6 | f7 | f3 | f8 | f9 | |f11 | |f13 | |f14 | |f10 | |f12 | +--+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+ |7x| |f15 |Ins |Home|PgUp|Del | f4 |End | f2 |PgDn| f1 |Left|Rght|Down| Up | | +--+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+