1) Fixes and tidy ups:
- mapping of Cur/Sys/Sound area done more elegantly, and soft CAM info is now consistent with it - cached screen cleaning on VSync performed *after* VSync events - comments at top of ARM600 modernised - Pages_Unsafe/Safe code fixed to work properly on StrongARM with pages that are involved in interrupts (there is no fix for ARM8, since that is unlikely to be needed - an ASSERT checks use of ARM8 - OS_DynamicArea code souped up, to be much more efficient for large numbers of dynamic areas (see comments near top of ChangeDyn) - cached screen is now suspended on h/w scroll (avoids possible cache incoherency) 2) API changes: - new OS_Memory reason code (10) allows Wimp to inform kernel of Wimp_ClaimFreeMemory, and can control VRAM rescue (see below) - new OS_ReadSysInfo reason code (6) allows reading of kernel values (reserved for Acorn use, eg. for SoftLoad, ROMPatch) - new OS_DynamicArea reason codes (6 and 7) allow for more efficient monitoring of dynamic areas by TaskManager (reserved for Acorn use) 3) Changes for Phoebe: - kernel runs a VRAM rescue process, which ensures that any VRAM not used for the screen is reclaimed if necessary and sinks to the bottom of the Free Pool. This is important for Phoebe, where VRAM is slower than SDRAM, but does no harm on other platforms. - logical copy of physical RAM is removed from memory map. This frees up 256M of address space that will later be used for PCI on Phoebe, but should do no harm on other platforms (this space is marked private in PRMs, so 3rd parties should not use it).
Showing with 1315 additions and 354 deletions