Subsystem map (bcall API surface)
This page categorizes the ~600 named bcall entry points (the OS’s public API) by subsystem, so the whole OS surface is visible at once. User code and the OS itself program against this surface.
| Subsystem | ~bcalls | Representative 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,_LinkXferOP |
| System / power | ~15 | _AppInit,_PutAway,_RandInit,_ApdSetup,_Chk_Batt_Low,_SetExSpeed,_JForceCmd |
| 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: bcall/paging (03), interrupts/APD (04), error handling (_JError + TIError codes), and the system flags (SystemFlags @ flags).
How the pieces connect (the through-line)
- Interrupt keeps time, scans the keypad into
kbdScanCode, runs APD. _GetKeyturns scan codes into key codes (TIKeyCode), driving menus and the homescreen.- The parser reads tokenized input/programs, dispatching each
TIToken. - Number tokens → FP engine (OP1–OP6, BCD); name tokens → VAT (
_FindSym). - Results land in
OP1and are rendered by the display subsystem. - bcall + paging is the substrate that lets steps 3–5 live on different flash pages; errors unwind via
_JError/onSP.
See per-subsystem docs 01–09 for detail.