7 ms·
As already noted, the Atari's banking window is outside of the stack area. IIRC, André Fachat's Geck/OS optionally makes use of an enhanced MMU which bank switc
by flashjazzcat 11y ago
As already noted, the Atari's banking window is outside of the stack area. IIRC, André Fachat's Geck/OS optionally makes use of an enhanced MMU which bank switches the stack area, but we have no such mechanism on the Atari. What I came up with is a hybrid stack segmentation/caching approach. Even when copying is required, stack frames are typically very shallow, so the fixed stack isn't quite as burdensome as supposed.
- rbanffy 11y agoLooks interesting. Is the code available somewhere? It certainly sucks it's not possible to map any 16K bank to any 16K segment (shouldn't be too difficult) but I guess nobody was thinking about multitasking and memory protection when those computers were designed.
- flashjazzcat 11y agoI'm not releasing the kernel or graphics library code for the moment (it's not finished, for one thing), but application sources will be available and drivers, etc, will all be open-source. The fixed 16KB banking window is a pain in one respect, namely that applications (which themselves are relocated into the banking window) cannot directly access MALLOCed RAM. Of course there are ways around this, but I was a little envious of the more flexible banking schemes on some of the Z80 platforms described in the SymbOS developer docs. But it's also fun working around the Atari's limitations.