ti/getkey.h
#include <ti/getkey.h>
For programs that interact with the OS’s user interface, you may want to use processed keystrokes instead of raw scancodes.
The os_GetKey routine handles 2nd and alpha presses, and can even show menus.
API Documentation
TI’s keyboard interface defines.
- Authors
- Matt “MateoConLechuga” Waltz - Jacob “jacobly” Young 
Defines
- 
os_KbdKey
- 
os_KbdGetKy
- 
os_KeyExtend
- 
k_Right
- Keypress Equates. 
- 
k_Left
- 
k_Up
- 
k_Down
- 
k_Enter
- 
k_AlphaEnter
- 
k_AlphaUp
- 
k_AlphaDown
- 
k_Clear
- 
k_Del
- 
k_Ins
- 
k_Recall
- 
k_LastEnt
- 
k_BOL
- 
k_EOL
- 
k_SelAll
- 
k_UnselAll
- 
k_LtoTI82
- 
k_Backup
- 
k_Recieve
- 
k_LnkQuit
- 
k_Trans
- 
k_Rename
- 
k_Overw
- 
k_Omit
- 
k_Cont
- 
k_SendID
- 
k_SendSW
- 
k_Yes
- 
k_NoWay
- 
k_vSendType
- 
k_OverWAll
- 
k_No
- 
k_KReset
- 
k_App
- 
k_Doug
- 
k_Listflag
- Start of menus. 
- 
k_AreYouSure
- 
k_AppsMenu
- 
k_Prgm
- 
k_Zoom
- 
k_Draw
- 
k_SPlot
- 
k_Stat
- 
k_Math
- 
k_Test
- 
k_Char
- 
k_Vars
- 
k_Mem
- 
k_Matrix
- 
k_Dist
- 
k_Angle
- 
k_List
- 
k_Calc
- 
k_Fin
- End of menus. 
- 
k_Catalog
- 
k_InputDone
- 
k_Off
- 
k_Quit
- 
k_appStart
- Start of group. 
- 
k_LinkIO
- 
k_MatrixEd
- 
k_StatEd
- 
k_Graph
- 
k_Mode
- 
k_PrgmEd
- PROGRAM EDIT. 
- 
k_PrgmCr
- PROGRAM CREATE. 
- 
k_Window
- RANGE EDITOR. 
- 
k_Yequ
- EQUATION EDITOR. 
- 
k_Table
- TABLE EDITOR. 
- 
k_TblSet
- TABLE SET. 
- 
k_ChkRAM
- CHECK RAM (About screen) 
- 
k_DelMem
- DELETE MEM. 
- 
k_ResetMem
- RESET MEM. 
- 
k_ResetDef
- RESET DEFAULT. 
- 
k_PrgmInput
- PROGRAM INPUT. 
- 
k_ZFactEd
- ZOOM FACTOR EDITOR. 
- 
k_Error
- ERROR. 
- 
k_SolveTVM
- TVM SOLVER. 
- 
k_SolveRoot
- SOLVE EDITOR. 
- 
k_StatP
- stat plot 
- 
k_InfStat
- Inferential Statistic. 
- 
k_Format
- FORMAT. 
- 
k_ExtApps
- External Applications. 
- 
k_NewApps
- New Apps for Cerberus. 
- 
k_append
- 
k_echoStart1
- Start of group. 
- 
k_Trace
- 
k_ZFit
- 
k_ZIn
- 
k_ZOut
- 
k_ZPrev
- 
k_Box
- 
k_Decml
- 
k_SetZm
- 
k_Squar
- 
k_Std
- 
k_Trig
- 
k_UsrZm
- 
k_ZSto
- 
k_ZInt
- 
k_ZStat
- 
k_echoStart2
- Start of group. 
- 
k_Select
- 
k_Circl
- 
k_ClDrw
- 
k_Line
- 
k_Pen
- 
k_PtChg
- 
k_PtOff
- 
k_PtOn
- 
k_Vert
- 
k_Horiz
- 
k_Text
- 
k_TanLn
- 
k_Eval
- 
k_Inters
- 
k_DYDX
- 
k_FnIntg
- 
k_RootG
- 
k_DYDT
- 
k_DXDT
- 
k_DRDo
- 
k_GFMin
- 
k_GFMax
- 
k_EchoStart
- Start of group. 
- 
k_ListName
- 
k_Add
- 
k_Sub
- 
k_Mul
- 
k_Div
- 
k_Expon
- 
k_LParen
- 
k_RParen
- 
k_LBrack
- 
k_RBrack
- 
k_Shade
- 
k_Store
- 
k_Comma
- 
k_Chs
- 
k_DecPnt
- 
k_0
- 
k_1
- 
k_2
- 
k_3
- 
k_4
- 
k_5
- 
k_6
- 
k_7
- 
k_8
- 
k_9
- 
k_EE
- 
k_Space
- 
k_CapA
- 
k_CapB
- 
k_CapC
- 
k_CapD
- 
k_CapE
- 
k_CapF
- 
k_CapG
- 
k_CapH
- 
k_CapI
- 
k_CapJ
- 
k_CapK
- 
k_CapL
- 
k_CapM
- 
k_CapN
- 
k_CapO
- 
k_CapP
- 
k_CapQ
- 
k_CapR
- 
k_CapS
- 
k_CapT
- 
k_CapU
- 
k_CapV
- 
k_CapW
- 
k_CapX
- 
k_CapY
- 
k_CapZ
- 
k_Varx
- 
k_Pi
- 
k_Inv
- 
k_Sin
- 
k_ASin
- 
k_Cos
- 
k_ACos
- 
k_Tan
- 
k_ATan
- 
k_Square
- 
k_Sqrt
- 
k_Ln
- 
k_Exp
- 
k_Log
- 
k_ALog
- 
k_ToABC
- 
k_ClrTbl
- 
k_Ans
- 
k_Colon
- 
k_NDeriv
- 
k_FnInt
- 
k_Root
- 
k_Quest
- 
k_Quote
- 
k_Theta
- 
k_If
- 
k_Then
- 
k_Else
- 
k_For
- 
k_While
- 
k_Repeat
- 
k_End
- 
k_Pause
- 
k_Lbl
- 
k_Goto
- 
k_ISG
- 
k_DSL
- 
k_Menu
- 
k_Exec
- 
k_Return
- 
k_Stop
- 
k_Input
- 
k_Prompt
- 
k_Disp
- 
k_DispG
- 
k_DispT
- 
k_Output
- 
k_GetKey
- 
k_ClrHome
- 
k_PrtScr
- 
k_SinH
- 
k_CosH
- 
k_TanH
- 
k_ASinH
- 
k_ACosH
- 
k_ATanH
- 
k_LBrace
- 
k_RBrace
- 
k_I
- 
k_CONSTeA
- 
k_Plot3
- 
k_FMin
- 
k_FMax
- 
k_L1A
- 
k_L2A
- 
k_L3A
- 
k_L4A
- 
k_L5A
- 
k_L6A
- 
k_unA
- 
k_vnA
- 
k_wnA
- 
k_ExtendEcho
- THIS KEY MEANS THAT THE KEY PRESS IS ONE THAT ECHOS INTO A BUFFER, AND IT IS A 2 BYTE KEY CODE, GO LOOK AT (EXTECHO) FOR THE KEY VALUE. 
- 
k_E1BT
- 
k_DrawInv
- 
k_DrawF
- 
k_PixelOn
- 
k_PixelOff
- 
k_PxlTest
- 
k_RCGDB
- 
k_RCPic
- 
k_STGDB
- 
k_STPic
- 
k_Abs
- 
k_Tequ
- == 
- 
k_TNoteQ
- <> 
- 
k_TGT
- 
k_TGTE
- >= 
- 
k_TLT
- < 
- 
k_TLTE
- <= 
- 
k_And
- 
k_Or
- 
k_Xor
- 
k_Not
- 
k_LR1
- 
k_XRoot
- 
k_Cube
- 
k_CbRt
- Cube ROOT. 
- 
k_ToDec
- 
k_CubicR
- 
k_QuartR
- 
k_Plot1
- 
k_Plot2
- 
k_Round
- 
k_IPart
- 
k_FPart
- 
k_Int
- 
k_Rand
- 
k_NPR
- 
k_NCR
- 
k_XFactorial
- 
k_Rad
- 
k_Degr
- DEGREES CONV. 
- 
k_APost
- 
k_ToDMS
- 
k_RToPo
- R. 
- 
k_RToPr
- 
k_PToRx
- 
k_PToRy
- 
k_RowSwap
- 
k_RowPlus
- 
k_TimRow
- 
k_TRowP
- 
k_SortA
- 
k_SortD
- 
k_Seq
- 
k_Min
- 
k_Max
- 
k_Mean
- 
k_Median
- 
k_Sum
- 
k_Prod
- 
k_Det
- 
k_Transp
- 
k_Dim
- 
k_Fill
- 
k_Ident
- 
k_Randm
- 
k_Aug
- 
k_OneVar
- 
k_TwoVar
- 
k_LR
- 
k_LRExp
- 
k_LRLn
- 
k_LRPwr
- 
k_MedMed
- 
k_Quad
- 
k_ClrLst
- 
k_Hist
- 
k_xyLine
- 
k_Scatter
- 
k_mRad
- 
k_mDeg
- 
k_mNormF
- 
k_mSci
- 
k_mEng
- 
k_mFloat
- 
k_Fix
- 
k_SplitOn
- 
k_FullScreen
- 
k_Stndrd
- 
k_Param
- 
k_Polar
- 
k_SeqG
- 
k_AFillOn
- 
k_AFillOff
- 
k_ACalcOn
- 
k_ACalcOff
- 
k_FNOn
- 
k_FNOff
- 
k_PlotsOn
- 
k_PlotsOff
- 
k_PixelChg
- 
k_SendMBL
- 
k_RecvMBL
- 
k_BoxPlot
- 
k_BoxIcon
- 
k_CrossIcon
- 
k_DotIcon
- 
k_E2BT
- 
k_Seqential
- 
k_SimulG
- 
k_PolarG
- 
k_RectG
- 
k_CoordOn
- 
k_CoordOff
- 
k_DrawLine
- 
k_DrawDot
- 
k_AxisOn
- 
k_AxisOff
- 
k_GridOn
- 
k_GridOff
- 
k_LblOn
- 
k_LblOff
- 
k_L1
- 
k_L2
- 
k_L3
- 
k_L4
- 
k_L5
- 
k_L6
- 
k_infData
- These keys are laid on top of existing keys to enable localization in the inferential stats editor. 
- 
k_infStats
- 
k_infYes
- 
k_infNo
- 
k_infCalc
- 
k_infDraw
- 
k_infAlt1ne
- 
k_infAlt1lt
- 
k_infAlt1gt
- 
k_infAlt2ne
- 
k_infAlt2lt
- 
k_infAlt2gt
- 
k_infAlt3ne
- 
k_infAlt3lt
- 
k_infAlt3gt
- 
k_infAlt4ne
- 
k_infAlt4lt
- 
k_infAlt4gt
- 
k_infAlt5ne
- 
k_infAlt5lt
- 
k_infAlt5gt
- 
k_infAlt6ne
- 
k_infAlt6lt
- 
k_infAlt6gt
- 
k_MatA
- 
k_MatB
- 
k_MatC
- 
k_MatD
- 
k_MatE
- 
k_Xmin
- 
k_Xmax
- 
k_Xscl
- 
k_Ymin
- 
k_Ymax
- 
k_Yscl
- 
k_Tmin
- 
k_Tmax
- 
k_TStep
- 
k_Omin
- 
k_Omax
- 
k_OStep
- 
k_u0
- 
k_v0
- 
k_nMin
- 
k_nMax
- 
k_DeltaY
- 
k_DeltaX
- 
k_ZXmin
- 
k_ZXmax
- 
k_ZXscl
- 
k_ZYmin
- 
k_ZYmax
- 
k_ZYscl
- 
k_ZTmin
- 
k_ZTmax
- 
k_ZTStep
- 
k_ZOmin
- 
k_ZOmax
- 
k_ZOStep
- 
k_Zu0
- 
k_Zv0
- 
k_ZnMin
- 
k_ZnMax
- 
k_DelLast
- 
k_SinReg
- 
k_ConstE
- 
k_Pic1
- 
k_Pic2
- 
k_Pic3
- 
k_DelVar
- 
k_GetCalc
- 
k_RealM
- 
k_PolarM
- 
k_RectM
- 
k_uv
- U vs V. 
- 
k_vw
- V vs W. 
- 
k_uw
- U vs W. 
- 
k_FinPMTend
- 
k_FinPMTbeg
- 
k_GraphStyle
- 
k_ExprOn
- 
k_ExprOff
- 
k_StatA
- 
k_StatB
- 
k_StatC
- 
k_Corr
- 
k_StatD
- 
k_StatE
- 
k_RegEq
- 
k_MinX
- 
k_Q1
- 
k_MD
- 
k_Q3
- 
k_MaxX
- 
k_StatX1
- 
k_StatY1
- 
k_StatX2
- 
k_StatY2
- 
k_StatX3
- 
k_StatY3
- 
k_TblMin
- 
k_TblStep
- 
k_SetupLst
- 
k_ClrAllLst
- 
k_Logistic
- 
k_ZTest
- 
k_TTest
- 
k_2SampZTest
- 
k_2SampTTest
- 
k_1PropZTest
- 
k_2PropZTest
- 
k_ChiTest
- 
k_2SampFTest
- 
k_ZIntVal
- 
k_TIntVal
- 
k_2SampTInt
- 
k_2SampZInt
- 
k_1PropZInt
- 
k_2PropZInt
- 
k_DNormal
- 
k_InvNorm
- 
k_DT
- 
k_Chi
- 
k_DF
- 
k_BinPDF
- 
k_BinCDF
- 
k_PoiPDF
- 
k_PoiCDF
- 
k_un
- 
k_vn
- 
k_wn
- 
k_Recn
- 
k_PlotStart
- 
k_ZPlotStart
- recursion n 
- 
k_XFact
- PlotStart. 
- 
k_YFact
- ZPlotStart. 
- 
k_ANOVA
- XFact. 
- 
k_MaxY
- YFact. 
- 
k_WebOn
- MinY. 
- 
k_WebOff
- MaxY. 
- 
k_TblInput
- WEB ON. 
- 
k_GeoPDF
- WEB OFF. 
- 
k_GeoCDF
- WEB OFF. 
- 
k_ShadeNorm
- 
k_ShadeT
- 
k_ShadeChi
- 
k_ShadeF
- 
k_PlotStep
- 
k_ZPlotStep
- 
k_LinRegtTest
- 
k_MGT
- VERT SPLIT. 
- 
k_SelectA
- 
k_ZFitA
- 
k_E2BT_End
- 
k_ExtendEcho2
- THIS KEY MEANS THAT IT IS A 2 BYTE KEYCODE THERE ARE 3 OF THESE KEYS; BE CAREFUL WITH USAGE. 
- 
k_E2BT2
- More 2 Byte Keys. 
- 
k_GDB1
- 
k_GDB2
- 
k_GDB3
- 
k_Y1
- 
k_Y2
- 
k_Y3
- 
k_Y4
- 
k_Y5
- 
k_Y6
- 
k_Y7
- 
k_Y8
- 
k_Y9
- 
k_Y0
- 
k_X1T
- 
k_Y1T
- 
k_X2T
- 
k_Y2T
- 
k_X3T
- 
k_Y3T
- 
k_X4T
- 
k_Y4T
- 
k_X5T
- 
k_Y5T
- 
k_X6T
- 
k_Y6T
- 
k_R1
- 
k_R2
- 
k_R3
- 
k_R4
- 
k_R5
- 
k_R6
- 
k_GDB4
- 
k_GDB5
- 
k_GDB6
- 
k_Pic4
- 
k_Pic5
- 
k_Pic6
- 
k_GDB7
- 
k_GDB8
- 
k_GDB9
- 
k_GDB0
- 
k_Pic7
- 
k_Pic8
- 
k_Pic9
- 
k_Pic0
- 
k_StatN
- 
k_XMean
- 
k_Conj
- 
k_Real
- 
k_FAngle
- 
k_LCM
- 
k_GCD
- 
k_RandInt
- 
k_RandNorm
- 
k_ToPolar
- 
k_ToRect
- 
k_YMean
- 
k_StdX
- 
k_StdX1
- 
k_w0
- 
k_MatF
- 
k_MatG
- 
k_MatRH
- 
k_MatI
- 
k_MatJ
- 
k_YMean1
- 
k_StdY
- 
k_StdY1
- 
k_MatToLst
- 
k_LstToMat
- 
k_CumSum
- 
k_DeltaLst
- 
k_StdDev
- 
k_Variance
- 
k_Length
- 
k_EquToStrng
- 
k_StrngToequ
- 
k_Expr
- 
k_SubStrng
- 
k_InStrng
- 
k_Str1
- 
k_Str2
- 
k_Str3
- 
k_Str4
- 
k_Str5
- 
k_Str6
- 
k_Str7
- 
k_Str8
- 
k_Str9
- 
k_Str0
- 
k_FinN
- 
k_FinI
- 
k_FinPV
- 
k_FinPMT
- 
k_FinFV
- 
k_FinPY
- 
k_FinCY
- 
k_FinFPMT
- 
k_FinFI
- 
k_FinFPV
- 
k_FinFN
- 
k_FinFFV
- 
k_FinNPV
- 
k_FinIRR
- 
k_FinBAL
- 
k_FinPRN
- 
k_FinINT
- 
k_SumX
- 
k_SumX2
- 
k_FinToNom
- 
k_FinToEff
- 
k_FinDBD
- 
k_StatVP
- 
k_StatZ
- 
k_StatT
- 
k_StatChi
- 
k_StatF
- 
k_StatDF
- 
k_StatPhat
- 
k_StatPhat1
- 
k_StatPhat2
- 
k_StatMeanX1
- 
k_StatMeanX2
- 
k_StatStdX1
- 
k_StatStdX2
- 
k_StatStdXP
- 
k_StatN1
- 
k_StatN2
- 
k_StatLower
- 
k_StatUpper
- 
k_uw0
- 
k_Imag
- 
k_SumY
- 
k_Xres
- 
k_Stat_s
- 
k_SumY2
- 
k_SumXY
- 
k_uXres
- 
k_ModBox
- 
k_NormProb
- 
k_NormalPDF
- 
k_TPDF
- 
k_ChiPDF
- 
k_FPDF
- 
k_MinY
- MinY. 
- 
k_RandBin
- 
k_Ref
- 
k_RRef
- 
k_LRSqr
- 
k_BRSqr
- 
k_DiagOn
- 
k_DiagOff
- 
k_un1
- FOR RCL USE WHEN GOTTEN FROM 82. 
- 
k_vn1
- FOR RCL USE WHEN GOTTEN FROM 82. 
- 
k_83_00End
- end of original keys… 
- 
k_Archive
- 
k_Unarchive
- 
k_Asm
- Asm(. 
- 
k_AsmPrgm
- AsmPrgm. 
- 
k_AsmComp
- AsmComp(. 
- 
k_capAAcute
- 
k_capAGrave
- 
k_capACaret
- 
k_capADier
- 
k_aAcute
- 
k_aGrave
- 
k_aCaret
- 
k_aDier
- 
k_capEAcute
- 
k_capEGrave
- 
k_capECaret
- 
k_capEDier
- 
k_eAcute
- 
k_eGrave
- 
k_eCaret
- 
k_eDier
- 
k_capIAcute
- 
k_capIGrave
- 
k_capICaret
- 
k_capIDier
- 
k_iAcute
- 
k_iGrave
- 
k_iCaret
- 
k_iDier
- 
k_capOAcute
- 
k_capOGrave
- 
k_capOCaret
- 
k_capODier
- 
k_oAcute
- 
k_oGrave
- 
k_oCaret
- 
k_oDier
- 
k_capUAcute
- 
k_capUGrave
- 
k_capUCaret
- 
k_capUDier
- 
k_uAcute
- 
k_uGrave
- 
k_uCaret
- 
k_uDier
- 
k_capCCed
- 
k_cCed
- 
k_capNTilde
- 
k_nTilde
- 
k_accent
- 
k_grave
- 
k_dieresis
- 
k_quesDown
- 
k_exclamDown
- 
k_alpha
- 
k_beta
- 
k_gamma
- 
k_capDelta
- 
k_delta
- 
k_epsilon
- 
k_lambda
- 
k_mu
- 
k_pi2
- 
k_rho
- 
k_capSigma
- 
k_sigma
- 
k_tau
- 
k_phi
- 
k_capOmega
- 
k_phat
- 
k_chi2
- 
k_statF2
- 
k_La
- 
k_Lb
- 
k_Lc
- 
k_Ld
- 
k_Le
- 
k_Lf
- 
k_Lg
- 
k_Lh
- 
k_Li
- 
k_Lj
- 
k_Lk
- 
k_Ll
- 
k_Lm
- 
k_Lsmalln
- 
k_Lo
- 
k_Lp
- 
k_Lq
- 
k_Lsmallr
- 
k_Ls
- 
k_Lt
- 
k_Lu
- 
k_Lv
- 
k_Lw
- 
k_Lx
- 
k_Ly
- 
k_Lz
- 
k_GarbageC
- GarbageCollect. 
- 
k_E2BT2_End
- 
k_ExtendEcho3
- THIS KEY MEANS THAT IT IS A 2 BYTE KEYCODE UNLESS (EXTECHO) IS 0 THEN IT IS AN OLD 1 BYTE KEYCODE THERE ARE 3 OF THESE KEYS; BE CAREFUL WITH USAGE. 
- 
k_E2BT3
- Even More 2 Byte Keys. 
- 
k_SingleQuote
- 
k_At
- 
k_Hash
- 
k_Dollar
- 
k_Amp
- 
k_Backquote
- 
k_Semicolon
- 
k_Backslash
- 
k_Bar
- 
k_Underscore
- 
k_Tilde
- 
k_Percent
- 
k_Ellipsis
- 
k_Ang
- 
k_SS
- 
k_SupX
- 
k_SubT
- 
k_Sub0
- 
k_Sub1
- 
k_Sub2
- 
k_Sub3
- 
k_Sub4
- 
k_Sub5
- 
k_Sub6
- 
k_Sub7
- 
k_Sub8
- 
k_Sub9
- 
k_Sub10
Functions
- 
uint16_t os_GetKey(void)
- Gets a key from the OS. - This function does block, use os_GetCSC() if you need a non-blocking variant. - Returns
- Key code 
- Returns
- Extended key code in high byte