# 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](01-building-apps.md) | Toolchain, TopSpeed C, SIBO types, `GLDEF_C`/etc., `.pr` project files, images/libs/LDDs |
| 02 | [System & OS](02-system.md) | Processes, memory/segments, panics + ranges, error codes, async I/O, the executive call |
| 03 | [I/O devices & drivers](03-io-devices.md) | `p_open`/`p_iow`/`p_ioc`, function codes, serial (`P_SRCHAR`), per-device drivers, loading LDDs |
| 04 | [PLIB core API](04-plib-core.md) | Strings, memory, console, conversion, math, date/time, categorised function reference |
| 05 | [File system & DBF database](05-filesystem-dbf.md) | Files, streams, directories; the full DBF record/database API |
| 06 | [User interface](06-ui.md) | Window Server model, events (`WM_*`, `WGetEvent`), the `CON:` console layer |
| 07 | [Hardware](07-hardware.md) | CPU, memory/banking, ASIC1/2/4/5/9 register maps, I/O ports, interrupts, expansion |
| 08 | [Boot & OS-call internals **[RE]**](08-re-boot-oscalls.md) | Reset/ASIC-init path, OS-service `INT` vectors, boot port activity — from the live MAME trace |

Related:
- [Barcode scanner API](../inventory/SCANNER-API.md) — the `WL2`/Symbol2 laser scanner (reverse-engineered).
- [RE toolchain & plan](../mx-re/toolchain-and-plan.md) — how the emulator/disassembler RE was done and the 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.
