Operating system
Atari-XT’s software stack spans both halves of the Zynq. The dual Cortex-A9 PS runs FreeRTOS and the modern services (SD filesystem, GEM helpers, and USB-HID input via a companion MCU); the SALLY 6502 in fabric runs the classic Atari OS and its software unchanged, with expanded RAM paged in through bank-switched windows.
These pages cover the operating-system layer that bridges the two:
- Runtime: loading & memory protection — how XTOS loads programs and protects
them: the
xtldELF loader, per-process address spaces, copy-on-write, mmap’d executables and files, guard pages, W^X, and a real PL0 user/kernel boundary on the Cortex-A9. - Multitasking & executable loading — one shared OS design across three target CPUs: dynamic ELF loading on the ARM (implemented), bank-switched processes on the 6502, and an m68k target emulated on the spare A9.
- Banked-stack context switching — switching 6502 tasks in a handful of cycles by holding several 4 KB stacks resident in BRAM instead of copying to DDR3.
- GEM — VDI, AES & theming — the clean-room GEM environment: a true-colour scalable VDI, the AES object/window/menu layer, and the 9-slice theme engine. A call-level reference for each.
- VDI / blitter driver — how GEM VDI drawing calls map onto xt-blitter register writes, from either the PS or the SALLY side.
- Self-hosting roadmap — the plan to compile xtc with itself, hosted on the Zynq hardware.