TI-86 Key Codes
_getkey
- |
$00 |
$01 |
$02 |
$03 |
$04 |
$05 |
$06 |
$07 |
$08 |
$09 |
$0A |
$0B |
$0C |
$0D |
$0E |
$0F |
$00 |
* |
kRight |
kLeft |
kUp |
kDown |
kColon |
kEnter |
kExit |
kClear |
kDel |
kIns |
kNext |
kAdd |
kSub |
kMul |
kDiv |
$01 |
kExpon |
kLParen |
kRParen |
kLBrack |
kRBrack |
kEqual |
kStore |
kRecall |
kComma |
kAng |
kChs |
kDecPnt |
k0 |
k1 |
k2 |
k3 |
$02 |
k4 |
k5 |
k6 |
k7 |
k8 |
k9 |
kEE |
kSpace |
kCapA |
kCapB |
kCapC |
kCapD |
kCapE |
kCapF |
kCapG |
kCapH |
$03 |
kCapI |
kCapJ |
kCapK |
kCapL |
kCapM |
kCapN |
kCapO |
kCapP |
kCapQ |
kCapR |
kCapS |
kCapT |
kCapU |
kCapV |
kCapW |
kCapX |
$04 |
kCapY |
kCapZ |
ka |
kb |
kc |
kd |
ke |
kf |
kg |
kh |
ki |
kj |
kk |
kl |
km |
kn |
$05 |
ko |
kp |
kq |
kr |
ks |
kt |
ku |
kv |
kw |
kx |
ky |
kz |
kVarx |
kAns |
kPi |
kInv |
$06 |
kSin |
kASin |
kCos |
kACos |
kTan |
kATan |
kSquare |
kSqrt |
kLn |
kExp |
kLog |
kAlog |
kMath |
kCplx |
kString |
kTest |
$07 |
kConv |
kChar |
kBase |
kCustom |
kVars |
kCatalog |
kQuit |
kLastEnt |
kLinkIO |
kMem |
kList |
kVector |
kConst |
kMatrix |
kPoly |
kSimult |
$08 |
kStat |
kGrMenu |
kMode |
kPrgm |
kCalcu |
kSolver |
kTable |
kBOL |
kEOL |
- |
$09 |
- |
kCUSTM |
- |
$0C |
- |
kF1 |
kF2 |
kF3 |
kF4 |
kF5 |
kF6 |
kF7 |
kF8 |
kF9 |
kF10 |
- |
$0F |
- |
kGRAPH |
IE: kF1 = $C2, kExit = $07
*Note: Morgan Davies informed me that the ON key's value is zero. That is only true when res 3,(iy+9) is applied.
_GetKy, _getky, _get_key, _getcode, _getcsc, _scan_code, & _kbdScan
- |
$00 |
$01 |
$02 |
$03 |
$04 |
$05 |
$06 |
$07 |
$00 |
K_NOKEY |
K_DOWN |
K_LEFT |
K_RIGHT |
K_UP |
- |
$01 |
- |
K_SIGN |
K_3 |
K_6 |
K_9 |
K_RIGHTPAR |
K_TAN |
K_CUSTOM |
$02 |
K_DEL |
K_0 |
K_1 |
K_4 |
K_7 |
K_EE |
K_SIN |
K_TABLE |
$03 |
K_ALPHA |
K_F5 |
K_F4 |
K_F3 |
K_F2 |
K_F1 |
K_SECOND |
K_EXIT |
- |
$08 |
$09 |
$0A |
$0B |
$0C |
$0D |
$0E |
$0F |
$00 |
- |
K_ENTER |
K_PLUS |
K_MINUS |
K_STAR |
K_SLASH |
K_RAISE |
K_CLEAR |
$01 |
K_DOT |
K_2 |
K_5 |
K_8 |
K_LEFTPAR |
K_COS |
K_PRGM |
$02 |
K_XVAR |
K_ON |
K_STO |
K_COMMA |
K_SQUARE |
K_LN |
K_LOG |
K_GRAPH |
$03 |
K_MORE |
- |
Notes:
_kbdScan equ $4064 ; keyboard handler
_scan_code equ $4064 ; keyboard handler
_getcsc equ $4068 ; A = key code
_getcode equ $4068 ; A = key code
_get_key equ $4068 ; a = key code
_GetKy equ $5371 ; A=key code OP2=row/col
_getky equ $5371 ; A=key code OP2=row/col
_getkey equ $55AA ; a = key code
All of these put a keypress' value in the accumulator. Never use K_NOKEY, since
OR A is a byte smaller. ROM call $5371 puts the row and column in OP2 in addition
to setting the accumulator. Here's how to see what's in OP2:
Low Level Codes
Group → |
$DF |
$EF |
$F7 |
$FB |
$FD |
$FE |
$BF |
Bit 0 |
na |
0 |
. |
(-) |
ENTER |
DOWN |
F5 |
Bit 1 |
STO→ |
1 |
2 |
3 |
+ |
LEFT |
F4 |
Bit 2 |
, |
4 |
5 |
6 |
- |
RIGHT |
F3 |
Bit 3 |
x2 |
7 |
8 |
9 |
* |
UP |
F2 |
Bit 4 |
LN |
EE |
( |
) |
÷ |
na |
F1 |
Bit 5 |
LOG |
SIN |
COS |
TAN |
^ |
2nd |
Bit 6 |
GRAPH |
TABLE |
PRGM |
CUSTOM |
CLEAR |
EXIT |
Bit 7 |
ALPHA |
x-VAR |
DEL |
na |
MORE |
Usage: This is VERY fast and destroys af only. na means no code