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

13 — Flash page map

What lives on each of the 64 physical flash pages (16 KiB each). OS code occupies pages 00–07 and 33–3D; pages 08–32 are blank in this image; page 3E is the certificate sector and 3F the boot page. On a retail unit the upper pages can also carry Flash Apps, but this dump is OS-only — the page scan below reports zero Flash-App headers. The page roles below are characterized by the named bcall routines that resolve to each page (tools/bcall_targets.txt) plus function counts; the 0x8xxx cert/boot/USB bcalls come instead from ti83plus.inc and the retail segment files (bcall_targets.txt does not carry the 0x8xxx targets).

OS pages (carry bcall entry points)

PageFuncsRoleRepresentative routines
00928Kernel — mapped at 0000; RST vectors, bcall dispatcher, FP core, VAT, memory, integer math_JErrorNo, _LdHLind, _DivHLBy10, _FindSym, _FPAdd, _InsertMem
0184Text display / homescreen_PutMap, _PutC, _PutS, _DispHL, _NewLine, _ClrLCDFull
02271Float transcendentals & advanced math_SqRoot, _LnX, _RnFx, _RndGuard
0323Edit-buffer / small font_CloseEditBufNoR, _Load_SFont, _SFont_Len
0466Graph drawing (pixel/line)_DarkLine, _ILine, _IPoint, _DarkPnt
05118TABLE editor + Graph-Table split-screentable_editor_main, table_recompute, table_paint_grid
0649Key input & edit/cursor_GetKey, _CursorOn, _CursorOff, _PutTokString (note _GetCSC’s body is on page 00)
0744Archive / list & matrix ops; error messages; large-font glyph table @ 07:45FF (7-byte stride) read by put_glyph_large (07:4588)_Arc_Unarc, _CleanAll, _RedimMat, _IncLstSize, put_glyph_large
3370Graph coordinate math_SetXXOP1, _UCLineS (window↔pixel transforms)
3624Mode setters (Func/Param/Polar/Seq)_SetFuncM, _SetParM, _SetPolM, _SetSeqM
3723Graph coord convert_XftoI, _YftoI
38277TI-BASIC parser / evaluator_ParseInp, _Find_Parse_Formula, parse_init
39153Equation pretty-printer (2D MathPrint layout) + menuseqdisp_render_entry, eqdisp_emit_glyph, _DispMenuTitle
3A85Statistics (1/2-var, regressions) + TVM finance_OneVar, reg_gauss_solve, tvm_solve_iterate
3416Crystal timers / clock, token scan_CrystalTimerA, timer_scan_tbl
356Memory-reset engine, factorialmem_reset_dispatch, ram_reset_wipe, op1_factorial
3B39bcall jump table + mem utils(table data) _MemClear, _MemSet, _DrawCirc2
3C72Link / variable transfer_SendAByte, _RecAByteIO, _SendVarCmd, _Rec1stByte
3D61App management & Flash_FindApp, _FindAppUp, _FindAppDn, _FlashToRam

Page byte-scan notes (empty range, boot & system pages)

No Flash-App headers (80 0F) appear at any page boundary; the image is OS-only [hypothesis]. Byte-level notes on the empty page range and the boot/system pages (some of which, e.g. 34–39/3B/3C, also carry the bcalls listed above):

PageVerified contents
08–32Blank/unused in this OS image — 100% 0xFF in tools/rom.bin. Page 2F is the retail USB boot support page, but its code lives in the separate D84PBE2.8Xv segment (not in rom.bin); the retail page-3F boot table maps the 0x8xxx USB bcalls (_AttemptUSBOSReceive, _ReceiveOS_USB, _USBErrorCleanup, _InitUSB, _KillUSB) into page 2F. No app headers.
34–39More OS code (graph/mode/menu/timers); fill 0.2–17% 0xFF.
3Bbcall jump table — starts 99 27 00 = entry 0 (_JErrorNoram:2799).
3CLink code + the OS version string — page starts with ASCII 32 2E 35 35 4D 50 = "2.55MP".
3ECertification page — the per-calculator certificate sector (84+ cert page is 3E, not 3F). Blank (99% 0xFF) in this OS-only image, since the cert is written per-device. The OS reads this sector through the ti83plus.inc cert bcalls: _GetCertificateStart (bcall 0x8057) and _GetCertificateEnd (bcall 0x802D) bound the sector, and _FindFirstCertField (bcall 0x8027) / _FindNextCertField (bcall 0x8078) walk its TLV fields.
3FRetail boot page — supplied by local D84PBE1.8Xv; starts 3E 07 D3 04 3E 7F D3 06 3E 03 D3 0E C3 2C 81, carries boot version 1.03, and hosts the 0x8xxx boot bcall table. Boot/hardware-version bcalls now resolve to _getBootVer 3F:477C (0x80B7) and _getHardwareVersion 3F:4781 (0x80BA).

The large-font glyph table is on page 0x07 (see Display / LCD). Alternate large fonts live on pages 1 and 0x36 (selected by (IY+0x35) bits 5/1). Page 7 is the busiest data page (archive code, list/matrix, error messages, and the large font). [confirmed]

Takeaway

The OS is page-specialized: kernel + math on page 0, one subsystem per low page. A bcall is really “run subsystem X’s routine on its page” — the page map is the subsystem decomposition, physically.