Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Subsystem map (bcall API surface)

This page groups the roughly 600 named bcall entry points by subsystem. The result shows the public API used by both application code and the OS itself.

Subsystem~bcallsRepresentative entry points
Floating-point / numeric~230 (+~120 more in “misc”)_FPAdd,_Times2,_DivHLBy10,_Intgr,_Trunc,_DToR,_RToD,_Min,_Max,_SqRoot
Display / LCD~41_PutMap,_PutC,_PutS,_DispHL,_NewLine,_ClrLCDFull,_VPutS,_GrBufCpy
Variables / VAT~37_FindSym,_ChkFindSym,_CreateReal,_CreateStrng,_CreateAppVar,_DelVar,_InsertMem,_Arc_Unarc
String / convert~18_ExpToHex,_OP1ExpToDec,_CreateStrng,_StrCopy,_Get_Tok_Strng
Parser / TI-BASIC~18_IsA2ByteTok,_GetTokLen,_BinOPExec,_ParseInp
Link / I-O~15_SendAByte,_RecAByteIO,_SendVarCmd,_Rec1stByte,link_xfer_op
System / power~15_AppInit,_PutAway,_RandInit,_ApdSetup,_Chk_Batt_Low,_SetExSpeed,_JForceCmd
Boot cryptography5_MD5Init, _MD5Update, _MD5Final, _SigModR, _TransformHash
List / Matrix~13_CreateRList,_CreateCList,_CreateRMat,_ErrDimMismatch,dim/element ops
Keyboard~5_GetCSC,_GetKey,_KeyToString
Menu / UI~5_DispMenuTitle,_CursorOn,_CursorOff,_RunIndicOn,_RunIndicOff

(Counts approximate — keyword buckets overlap; ~170 “misc” are mostly more math/int helpers.)

Reading the map

This is a calculator: roughly two-thirds of the API is numeric, and everything else is comparatively small glue. The architecture flows:

flowchart TD
    KP([keypad]) --> GK["_GetKey"] --> P[parser] --> TD[token dispatch]
    TD --> VAT["VAT · _FindSym<br/>variables"]
    TD --> FP["FP engine · OP1..6<br/>arithmetic / transcendentals"]
    TD --> DISP["display · _PutMap<br/>homescreen / graph"]
    VAT --> R["result in OP1<br/>shown via _DispOP1A / _PutS"]
    FP --> R
    DISP --> R

Cross-cutting services used by all of the above: the bcall mechanism, interrupt dispatch, clock/timers/APD/power, MD5 and boot signature arithmetic, error handling (_JError + TIError codes), and the system flags (SystemFlags @ flags).

Execution through-line

  1. Interrupt keeps time, scans the keypad into kbdScanCode, runs APD.
  2. _GetKey turns scan codes into key codes (TIKeyCode), driving menus and the homescreen.
  3. The parser reads tokenized input/programs, dispatching each TIToken.
  4. Number tokens → FP engine (OP1–OP6, BCD); name tokens → VAT (_FindSym).
  5. Results land in OP1 and are rendered by the display subsystem.
  6. bcall + paging is the substrate that lets steps 3–5 live on different flash pages; errors unwind via _JError/onSP.

See the subsystem pages linked above and in the sidebar for detail.