2.4 KiB
Workabout MX / SIBO programming reference
A programming reference for the Psion Workabout MX and the SIBO platform,
synthesised from the Psion SDK manuals and the Hardware Development Kit, with
reverse-engineered internals from the v7.20f ROM layered on top. Built as the
foundation for developing applications (e.g. the barcode inventory app in
code/inventory/).
Each document cites its source manual and marks claims as documented, [RE] reverse-engineered, or inferred/uncertain.
Sections
| # | Document | Covers |
|---|---|---|
| 01 | Building applications | Toolchain, TopSpeed C, SIBO types, GLDEF_C/etc., .pr project files, images/libs/LDDs |
| 02 | System & OS | Processes, memory/segments, panics + ranges, error codes, async I/O, the executive call |
| 03 | I/O devices & drivers | p_open/p_iow/p_ioc, function codes, serial (P_SRCHAR), per-device drivers, loading LDDs |
| 04 | PLIB core API | Strings, memory, console, conversion, math, date/time, categorised function reference |
| 05 | File system & DBF database | Files, streams, directories; the full DBF record/database API |
| 06 | User interface | Window Server model, events (WM_*, WGetEvent), the CON: console layer |
| 07 | Hardware | CPU, memory/banking, ASIC1/2/4/5/9 register maps, I/O ports, interrupts, expansion |
| 08 | Boot & OS-call internals [RE] | Reset/ASIC-init path, OS-service INT vectors, boot port activity — from the live MAME trace |
Related:
- Barcode scanner API — the Symbol2/
WL2laser scanner (reverse-engineered): device, trigger, decoder params, and the OO-library-object architecture. - Scanner continuation guide — the on-device SIBO-Debugger procedure to capture the OO message ordinals and finish a working scanner client.
- RE toolchain & plan — MAME/radare2/Ghidra RE setup and roadmap.
Status
The manual-derived sections (01–07) are broad and citation-backed. The
reverse-engineered material (08, the scanner API, and the executive-call
convention notes) is being extended by tracing the ROM under MAME
(psionwamx). Known open items: the full INT-vector → service map, and the
scanner data-retrieval path.