[Select]

Kernel



Release: Select 4 Preview
6.81 (15 May 2004) Removed support for Mouse/Pointer.
6.82 (15 May 2004) Removed printer buffer from Kernel.
6.83 (15 May 2004) Removed the mouse buffer from the kernel (on NoMouseBuffer).
Tidied up more of the NoPrinterBuffer conditionalised code.
6.84 (16 May 2004) Removed text character output.
6.85 (16 May 2004) Initial work on graphics abstraction.
6.86 (16 May 2004) Moved the point rendering out of the kernel.
Updated HLine to use implicit chained calls.
6.87 (16 May 2004) Abstracted circle rendering - first stage.
6.88 (16 May 2004) Added Vertical line fill as external routine.
Added Triangle and parallelogram to vector.
6.89 (16 May 2004) Fix for incorrect I/O redirection handling.
Fix for rectangle fill in non-GraphicsV mode.
Fix for horizontal line fill in GraphicsV mode.
Disabled GraphicsV temporarily whilst testing other things.
6.90 (16 May 2004) Fix for SafeRedirectedVDU4 in the NoTextChars case.
6.91 (17 May 2004) Moved ARM exception handling to a separate file.
6.92 (18 May 2004) Added support for LD|ST[B]T instructions in abort trap.
6.93 (18 May 2004) Fix for AbortTrap operations confusing SPSR.
Tidied up AbortTrap control structures a little.
6.94 (19 May 2004) Added SWP support in AbortTrapping (still disabled).
6.95 (21 Jul 2004) Reorganised zero-page in preparation for Debugger changes.
Updated module header checks to be written in C.
6.96 (24 Jul 2004) Added more debugging to checkmodheader test.
Updated internal CallAVector and AddToVector to be 32bit safe.
UtilityModule now claims to be 32bit compatible.
6.97 (24 Jul 2004) Removed OS_PrettyPrint and MOSDict (not found in OSSWIs).
Updated MsgCode to be 32bit.
Removed redundant HeapSort and TMOSHelp files.
Made screen mode change on startup a compile time option for debugging.
6.98 (24 Jul 2004) Separated off the SWI dispatch code to a separate file.
Grouped all the Write* SWIs into a single file.
6.99 (24 Jul 2004) Moved OS_ReadArgs out to OSSWIs.
7.00 (24 Jul 2004) Grouped all the callback management into s.Callbacks.
7.01 (24 Jul 2004) Grouped all the vector handling into a single file.
Finally removed the fall-back ReadLineV implementation.
7.02 (25 Jul 2004) Tentative 32bitting of sections of PMF.
7.03 (25 Jul 2004) Updated Heap management to be 32bit compatible.
7.04 (25 Jul 2004) Updated SWI, IRQ, Vector and Callback handlers to be the right 'shape' for 32bit mode.
7.05 (26 Jul 2004) Fix for internal hex conversion routine returning invalid values.
7.06 (27 Jul 2004) Large scale replacement of 26bit instructions with 32bit-aware macros.
7.07 (27 Jul 2004) More work on 32bit in ModHand, adding many more signatures to aid debugging.
Fix for OS_EnterOS in 32bit config.
Initial work on exception handlers.
7.08 (27 Jul 2004) Fix for enumeration of ROM modules branching to wrong address.
7.09 (28 Jul 2004) Updated NewIRQs with more 32bit and Entry/EXIT changes.
Large updates to PMF/key to replace old Push/Pull with Entry/EXIT and 32bit.
Miscellaneous updates to the VDU subsystem for 32bit.
7.10 (28 Jul 2004) Added emulator debugging macros.
7.11 (30 Jul 2004) Additional debugging code for the startup sequence.
More 32-bit specific changes, bringing us to the first 32bit boot.
7.12 (30 Jul 2004) (retagged) Minor update for ctrl-break not working.
7.12 (30 Jul 2004) Updated VDU graphic drivers to be 32bit safe.
7.13 (09 Aug 2004) Fix to prevent interrupts being disabled permanently
Updated the error handler to be 32bit safe.
Fix for OS_Heap, broken during 32bit conversion.
Some labels updated to be clearer.
Fix for return from SWIs with X bit clear aborting.
7.14 (13 Aug 2004) Fix for SetCallBack failing to return to correct address.
A few small updates for clarity.
7.15 (14 Aug 2004) Fix for Block Copy/Move never doing anything.
7.16 (16 Aug 2004) Fix for windowed sprite redraws hanging.
7.17 (20 Aug 2004) Updated kernel with 32bit-specific SWI names.
7.18 (18 Sep 2004) Fix for module entry failing to pass on command line parameters.
7.19 (19 Sep 2004) Fix for flags not being preserved on Claimed SWI entry.
Added fixed region for SVC stack.
7.20 (19 Sep 2004) Fix for branch checks on vectors allowing code above the ROM.
7.21 (25 Sep 2004) Moved all memory map constants out to a separate header.
Notes added about incorrect assumptions in some processor vectors.
Fix for some 26bit mode changes.
7.22 (26 Sep 2004) Fix for acidentally clearing zero page addresses which are used.
7.23 (27 Sep 2004) Fix for squeezed modules failing checks, and additional checks once unsqueezed.
7.24 (27 Sep 2004) Increased workspace for Dumper registers to fix corrupt page size.
Fix for RemV stack imbalance.
7.25 (02 Oct 2004) Fix for callback handler generating aborts on 26bit OS.
7.26 (09 Oct 2004) Updated data abort, prefetch abort and undefined instruction preveneers to reduce the entry requirements on handlers, in line with PRMs.
Added automatic recording of exception registers in pre-veneers.
Replaced branch through zero handler with more reliable method.
Removed special-cased zero-page stores.
Fix for nested abort traps corrupting the abort status areas.
7.27 (11 Oct 2004) Added implementation of FastTickerV (currently disabled).
7.28 (12 Oct 2004) Replaced PSR operations returning to user mode with symbolic constant.
7.29 (12 Oct 2004) Updated module header checks to return relevant error messages.
7.29 (12 Oct 2004) (retagged) Disabled large memory map during testing.
7.29 (12 Oct 2004) (retagged) Added LotsOfPadding option.
7.30 (16 Oct 2004) Fix for unexpanded error message in CheckHeader.
Source tidy up for stack usage.
7.31 (09 Jan 2005) Modified Branch Through Zero algorithm again to account for zero-is-zero.
7.32 (09 Jan 2005) Changed Unset system variable behaviour on code variables to assign null string.
7.33 (11 Jan 2005) Fix for horizontal line flag preservation.
Updated entry/exit sequences on some sprite and VDU routines.
More conditionalised text character code.
7.34 (11 Jan 2005) Fix for NoTextChars failing to reset fonts properly on *FX20.
7.35 (11 Jan 2005) Fix for character reading failing to default to spaces if no driver present.
7.36 (12 Jan 2005) Reorganised palette setting functions in order to simplify abstraction.
Removed rogue write to palette registers during mode setup.
7.37 (12 Jan 2005) Updated hardware palette setting to use the vectored pointer colour change.
7.38 (12 Jan 2005) Added support for setting pointer and mode palette through vector.
Fix for recent bug in flashing colours code.
7.39 (14 Jan 2005) Added vectored support for disable/enable video hardware.
7.40 (16 Jan 2005) Abstracted interlace and power save video hardware operations.
7.41 (25 Jan 2005) Added protection to OSByte 19 for cases without VSync.
Fix for register corruption in interrupt routine.
Updated version number to 4.40.
7.42 (26 Jan 2005) Updated abstraction to include RGB tables.
7.43 (27 Jan 2005) Reduced period between VRAM rescue checks to 5 seconds.
Minor rationalisation flashing colour code.
7.44 (13 Feb 2005) Fix for screen blanking causing an unbalanced stack.
7.45 (06 Mar 2005) Fix for undefined instructions generating aborts.
7.46 (06 Mar 2005) Preliminary work to move mode change out of the kernel.
7.47 (09 Mar 2005) Added VIDCModeSet switch, presently enabled.
7.48 (14 Mar 2005) Simplified dynamic area code through use of macros.
Fix for semantic error in dynamic area code.
7.49 (14 Mar 2005) Rationalised OS_ReadSysInfo into its own file.
Reorganised parts of Middle to group relates SWIs.
7.50 (14 Mar 2005) Rationalised the DynArea code to use same naming scheme as external clients by using DynArea header.
Removed some of the last pretense at soft-resets.
Rationalised part of the key-reset code, a side effect of which is losing the CMOS 'Boot' option for good.
Moved VRAM Rescue area creation to SysDAs.
7.51 (17 Mar 2005) Further abstraction of the mode change code.
7.52 (19 Mar 2005) Removed kernel maintained DPMS settings.
7.53 (19 Mar 2005) Added interlace and vertical offset to the VIDC type 3 control list.
7.54 (20 Mar 2005) Minor legacy reduction - unused parts of workspace removed.
7.55 (20 Mar 2005) Large scale changes to rationalise CMOS and RTC functions a little.
7.56 (21 Mar 2005) Initial work to make hardware scrolling vectored.
Fix for graphics area base vector calls being issued incorrectly.
7.57 (22 Mar 2005) Completed hardware scroll implementation.
7.58 (22 Mar 2005) Fix for TVInterlace legacy confusion.
7.59 (24 Mar 2005) Returned event handling from NewIRQs back to oseven.
Removed IOMD2 handling from NewIRQs.
7.60 (25 Mar 2005) Renamed all the internal SWI symbols to be consistent.
7.61 (07 Sep 2005) Moved DAHeap code to separate source file.
Replaced page block operations with symbolic constants.
7.62 (13 Sep 2005) Added support for Physically Mapped Dynamic Areas.
7.63 (17 Sep 2005) Added support for increased numbers of vectors.
7.64 (18 Sep 2005) Fix for CMOS cache corruption caused by large vectors.
7.65 (20 Sep 2005) Fix shrinking Physical Dynamic Area handler of doubly mapped areas.
Added Dynamic Area Handler codes to DynArea header.
Exported OS_ScreenMode reason codes.
Removed support for OS_ClaimScreenMemory.
Updated debugging support to use the AsmDebug library.
Initial work to remove Screen Dynamic Area.
Added extra support for checking ROM module validity.
Graphics vector entries reorganised to add a 'Vet' call.
Added support for screen banking to OS_ScreenMode through Graphics vector.
Replaced FX 112/113 calls with OS_ScreenMode calls.
Updated VDU system to ignore output when hardware driver absent.
Fix for VDU 12 when hardware scrolled.
7.66 (23 Sep 2005) Abstracted the BlockCopy code into VideoSW.
7.67 (23 Sep 2005) Partial tidy up of code due to screen memory reorganisation.
7.68 (23 Sep 2005) Tidied up source, removing some legacy Phoebe/IOMD2 sections.
7.69 (23 Sep 2005) Renamed GraphicsV to VideoV.
Added export of Hdr:VideoV and riscos/VideoV.h.
7.70 (23 Sep 2005) Reverted the control of the character definitions to the Kernel after reconsidering impliciations in light of use.
7.71 (24 Sep 2005) Fix for mode selection failing to set up VDU variables correctly.
Added support for accelerated left and right line fills.
7.72 (24 Sep 2005) Reorganised PaletteV dispatch.
7.73 (25 Sep 2005) Added support for accelerated flood fill operations.
7.74 (25 Sep 2005) Extended and tidied up processor type identification.
More reorganisation of the screen memory code.
7.75 (26 Sep 2005) Updated abort handler to provide debug through AsmDebug.
Changed low aborts (hardware vectors) to use the current abort handler.
Removed export of MEMC_CR.
7.76 (27 Sep 2005) Reorganised environment handlers.
Removed address exception environment handler.
Removed Unused SWI environment handler.
Removed now redundant option labels.
Updated physical RAM clearing to take account of environment handler reorganisation.
7.77 (28 Sep 2005) Removed sound system collusion.
Removed a number of definitions that are no longer used from KernelWS.
Fix for relocated Callback buffer left over from last environment change.
7.78 (02 Oct 2005) Modified exception code to correct for PC differences.
7.79 (22 Oct 2005) Updated obsolete 'SupportMouse' code to match mouse dispatch in OSPointer.
7.80 (27 Oct 2005) Initial work to implement multi-display support.
Moved OS_ScreenMode SWI code to a separate file.
7.81 (28 Oct 2005) Removed TestingSrc definitions.
Updated version to 4.41.
Added Kernel signature.
7.82 (02 Nov 2005) Removed last remnants of LastBREAK.
7.83 (11 Dec 2005) First stage of A9 source merge.
7.84 (11 Dec 2005) Minor comment changes.
7.85 (11 Dec 2005) KeyHandler updated to use consistent no-id values.
7.86 (11 Dec 2005) Fix for 'Branch through 0' failing to be identified in the undefined instruction handler.
Updated all processor vectors to end in 0 byte values.
7.87 (11 Dec 2005) Updated the VLine detection code to try harder to identify 'fast cases'.
7.88 (11 Dec 2005) Fix for default breakpoint handler failing terminally.
7.89 (11 Dec 2005) Added support for returning 'unsuitable' module state in ROM information.
Reorganised module options in hdr/Options.
7.90 (11 Dec 2005) Updated to export OSPlatformFeatures headers.
Updated internal code to use new headers and symbols.
7.91 (12 Dec 2005) Added extra OS_DynamicArea debugging.
7.92 (19 Dec 2005) Minor change to add the source details to help messages (Messages file only)
7.93 (20 Dec 2005) Added abort SVC/IRQ stack copy support.
IRQSTK exported through ReadSysInfo 6.
7.94 (21 Dec 2005) Added initial support for the 'PBTS'.
Implemented OS_TaskControl 0.
7.95 (21 Dec 2005) Moved SWI despatch code up to ROM.
7.96 (23 Dec 2005) Added PBTS support for SWIs.
7.97 (23 Dec 2005) Added BTS prior to copying the aborting stacks to ensure that FP is recorded when available.
7.98 (23 Dec 2005) Added support for BTS within transient callbacks.
7.99 (23 Dec 2005) Added support for ticker events recording a BTS.
8.00 (24 Dec 2005) Updated all BTS usages to use a set of defined types.
Added PBTStypes header to our exports.
8.01 (24 Dec 2005) Added support for service call dispatch recording a BTS.
8.02 (24 Dec 2005) Added support for event generationg recording a BTS.
8.03 (24 Dec 2005) Added support for IRQs recording a BTS.
8.04 (24 Dec 2005) Added support for code variable dispatch recording a BTS.
8.05 (24 Dec 2005) Fix for device number in IRQ BTS being multiplied by 3.
8.06 (24 Dec 2005) Updated SVC stack flattening code to use defined interface.
8.06 (24 Dec 2005) (retagged) Fix for missing header file.
8.07 (25 Dec 2005) Updated BTS on exception to include a register dump.
Added BTS type for FileSwitch.
8.08 (26 Dec 2005) Moved PBTS into a separate component for easier sharing.
Upped version number to 4.42 to indicate BTS-aware kernel.
8.09 (26 Dec 2005) Updated exception error reporter to report background errors.
8.10 (26 Dec 2005) Fix for corrupt return code on OS_Exit.
8.11 (27 Dec 2005) Reimplemented DelinkApplication, correcting the algorithm.
8.12 (28 Dec 2005) Added BTS support to extension SWI dispatcher.
8.13 (30 Dec 2005) Fix for misreported background errors.
8.14 (30 Dec 2005) Added OS_Memory 24 call to validate memory accesses.
8.15 (31 Dec 2005) Fix for ROM being returned as unreadable in user mode from OS_Memory 24.
8.16 (01 Jan 2006) Fix for OS_Memory 24 failing to validate consecutive areas.
8.17 (04 Jan 2006) Added more debug for Prefetch abort and Exit handler.
8.18 (05 Jan 2006) Added more debug to locate crashes during builds.
8.19 (06 Jan 2006) Initial support for abortable dynamic areas.
8.20 (06 Jan 2006) Separated DAFlags_Abortable into DAFlags_Abortable and DAFlags_Domain.
Fix for failure to deregister abort-trap regions.
8.21 (06 Jan 2006) (retagged) Minor change to ChocolateScreen now that the Screen DA is no longer used.
8.21 (06 Jan 2006) Disabled screen memory allocation and detection.
8.22 (07 Jan 2006) Changed R5 on Dynamic Area Abort handler to be end of area.
Minor changes to some command help.
Fix for cursor updates when no driver is present.
Fix for ClaimScreenMemory failing to return correct state.
Fix for ChangedBox failing to restore interrupt state.
8.23 (08 Jan 2006) Fix for writeback on multi-word instructions on StrongARM aborts.
Minor change to pre/post-wrch cursor state change.
8.23 (08 Jan 2006) (retagged) Added PolyHLine to VideoV definition.
8.24 (09 Jan 2006) Added Aborting and AbortTrap BTS markers.
8.25 (12 Jan 2006) Added BTS information for module initialisation and finalisation.
8.26 (14 Jan 2006) Fix for flag preservation on certian BTS configurations with vector dispatch.
Fix for ACK (VDU6) failing to be recognised properly.
8.27 (15 Jan 2006) Exported PolyHLineAddr through VDU Variable 0xAE.
Updated VideoV to use the now allocated vector number.
8.28 (31 Jan 2006) Fix for RecommendPage failing when only one memory chunk is available and screen memory not detected within the Kernel.
8.29 (31 Jan 2006) Removed all system variable functions (long planned SysVars abstraction part 2) through a build time switch.
8.30 (01 Feb 2006) Fix for domain dynamic areas failing to allocate domains correctly.
8.31 (04 Feb 2006) Updated OS_Memory 0 to change cache states for physical memory mappings.
8.32 (05 Feb 2006) Added support for vectored screen mode acceleration control and configuration.
8.33 (07 Feb 2006) Minor fix for workspace alignment when screen memory allocated/detected.
8.34 (13 Feb 2006) Fix for BTS tracking in 32bit builds failing.
Fix for mislabelled PlatformFeatures flag.
8.35 (15 Feb 2006) Fix for IRQ handling for unclaimed IRQs caused by BTS introduction.
8.36 (15 Feb 2006) Fix for abort trapping on ARM9.
8.37 (16 Feb 2006) Fix for mis-position OldVecPtrTab.
8.38 (16 Feb 2006) Fix for composite cursor being passed incorrectly when in split cursor mode.
8.39 (16 Feb 2006) Removed all references to hardwired screen end address.
8.40 (16 Feb 2006) Fix for invalid text cursor arguments.
8.41 (17 Feb 2006) Added OS_Word time setting call using 5 byte time.
8.41 (20 Feb 2006) (retagged) Fix for incorrect use of C-style equality operator in an ASSERT.
8.42 (20 Feb 2006) Fix for IRQ device number corruption in BTS record.
8.43 (20 Feb 2006) Added BTS record for entering the event environment handler.
Fix for screen bank selection failing to update variables.
8.44 (24 Feb 2006) Updated OS_MMUControl to reflect ARM9 restrictions.
8.44 (24 Feb 2006) (retagged) Added RTCV to vector list.
8.45 (26 Feb 2006) Fix for VDU variables collision.
Fix for incorrect variable checks on VDU variables.
8.46 (01 Mar 2006) Fix to force the application space on startup to 6M.
8.47 (15 Mar 2006) Fix for cache coherency problems on A9.
Updated to use new instruction cache symbol.
8.48 (15 Mar 2006) Removed obsolete option 'DirectVIDCPalette'.
8.49 (15 Mar 2006) Removed obsolete option 'ScreenMemoryClaimable'.
8.50 (15 Mar 2006) Removed obsolete option 'VIDCModeSet'.
8.51 (15 Mar 2006) Removed obsolete option 'ScreenMemoryAllocated'.
8.52 (15 Mar 2006) Removed obsolete option 'ScreenMemoryDetected'.
8.53 (15 Mar 2006) Removed obsolete option 'RescueVRAM'.
8.54 (15 Mar 2006) Removed obsolete option 'SupportMouse', 'PollMouse'.
8.55 (15 Mar 2006) Removed obsolescent option 'AssembleA1KeyHandler'.
8.56 (15 Mar 2006) Removed obsolete options 'NoPrinterBuffer', 'NoMouseBuffer', 'NoLegacyBuffers'.
8.57 (15 Mar 2006) Removed obsolete option 'LegacyBBCModule'.
8.58 (15 Mar 2006) Removed obsolete option 'LCDInvert' and 'LCDSupport'.
8.59 (15 Mar 2006) Removed obsolete options 'SysVars_External_stage2', 'CodeVariablesHaveWorkspace', 'CodeVariablesUnsetToNull', 'EvaluableVariables', 'ChocolateSysVars', 'GSWorkspaceInKernelBuffers'.
8.60 (15 Mar 2006) Removed obsolete option 'ChocolateScreen'.
8.61 (15 Mar 2006) Removed obsolete option 'RMTidyDoesNowt'.
8.62 (15 Mar 2006) Removed obsolete option 'LongCommandLines'.
8.63 (15 Mar 2006) Moved hardware access to RTC out to a module.
8.64 (15 Mar 2006) Removed the RTC system, now living in an external module.
8.65 (15 Mar 2006) Removed hardware accesses in OS_UpdateMEMC completely.
8.66 (15 Mar 2006) Updated CMOS settings to default to autoconfigured networking, and iconise button enabled.
8.67 (15 Mar 2006) Removed support for interlace programming through VDU23,0,8.
8.68 (15 Mar 2006) Moved the Platform Details functions to separate Machine functions.
8.69 (03 Apr 2006) Added OSReadSysInfo header export.
Changed OS_ReadSysInfo 0 to always return 0.
8.70 (04 Apr 2006) Updates to the OSReadSysInfo header for other special case values.
8.71 (05 Apr 2006) Removed some redundant files.
Tidied up ReadSysInfo.
8.72 (05 Apr 2006) Removed redundant AssembleKEYV and AssemblePointerV conditionals.
Reorganised options to new style.
8.73 (07 Apr 2006) Removed redundant 'redirectinkey' option (now permanently enabled).
8.74 (09 Apr 2006) Fix for corruption of R0 (error pointer) prior to environment dispatch to Exit handler in 32bit configuration.
8.75 (09 Apr 2006) Added support for managed redirection (OS_Exit no longer implicitly clears redirection).
8.76 (10 Apr 2006) Fix for initialisation of memory on Stealth systems.
8.77 (13 Apr 2006) (retagged) Fix for incorrect register check in OS_ReadSysInfo 3.
8.77 (13 Apr 2006) Moved DMAable handler from taking all dynamic area operations to being used only for PreGrow.
Added support for requesting DMAable pages from RecommendPage.
8.78 (15 Apr 2006) Removed redundant keyboard processing, including R/T/Copy-reset.
Moved CMOS protection to machine-specific sources.
8.79 (17 Apr 2006) Fix for input failure on redirected files closing those files.
8.80 (20 Apr 2006) Updated PLOT operations to use a distinct variable from GColAdr to speed up acceleration.
8.81 (21 Apr 2006) Optimised the 'move' plot codes to not call the graphics vector.
8.82 (24 Apr 2006) Moved Segment, Sector and Arc to be vectored.
8.83 (24 Apr 2006) Moved ellipse outline and fill to using vectored operations.
8.84 (25 Apr 2006) Moved text box clearing to accelerated interface.
Removed support for horizontal byte scrolling of text window.
8.85 (25 Apr 2006) Updated abort debugging to be conditional on DebugAborts.
Updated vertical scrolls to use the graphics block copy operation.
8.86 (26 Apr 2006) Removed enabling of VSync IRQ from initialisation.
8.87 (28 Apr 2006) Updated graphics context preservation to store file handles as words.
8.88 (30 Apr 2006) Fix for incorrectly widened file handles.
8.89 (30 Apr 2006) Fix for block copy on text regions overcompensating for Log2BPC.
8.90 (01 May 2006) Moved monitor ID detection to machine specific abstraction.
Moved default ID translation to VideoHWVIDC.
8.91 (02 May 2006) Removed early IRQ initialisations.
Rationalised CMOS and Machine initialisation to occur later in initialisation.
Disabled keyboard detection during initialisation.
8.92 (03 May 2006) Reorganisation of NewReset.
8.93 (03 May 2006) More reorganisation of NewReset.
8.94 (03 May 2006) Fix for accelerated vertical scroll moving too far.
Re-added keyboard checks for CMOS reset as abstracted BootOptions interface.
8.95 (04 May 2006) Moved zero page to be first in DRAM.
Fix for OS_FindMemMapEntries failing to return valid details if 'guess' page number was correct.
8.96 (04 May 2006) Removed exports of SVCSTK and SysHeapStart symbols.
Disentangled allocation of SVC stack and System Heap.
Added a page gap between the SVC stack and System Heap.
Fix for corrupted SVC mode registers during abort trapping.
8.97 (04 May 2006) Moved UND stack allocation to static memory regions.
Increased size of UND stack to 16K.
Added more emulator debugging to early memory initialisation.
Fixed low system heap to be USR-mode read only.
8.98 (05 May 2006) Updated mode code to treat bit 7 as significant.
Fix for failure to initialise IRQ stack.
Added OS_ReadSysInfo 6 export of SWI dispatch table (only used by TaskWindow).
8.99 (06 May 2006) Fix for abort debugging causing failure to start.
9.00 (06 May 2006) Added sorting macros for FixedAreasTable.
Updated non-OldStyleMemoryMap definitions and support code to match the most recent changes for OldStyleMemoryMap.
Fix for long-lived fault in initialisation of CAM map entries.
Much greater debugging added to ChangeDynamicArea.
Fix for incorrect use of OS_ReadLine in supervisor prompt.
Fix for failure to initialise the video for border changes.
Added OS_LeaveOS for compatibility with legacy systems.
Fix for failure to initialise IRQ stack during early initialisation.
9.01 (07 May 2006) Disentangled IRQ stack and SWI dispatch table.
Increased IRQ stack size to 16K.
Rationalised some zero page initialisation.
Moved buffer handling to be entirely managed by BufferManager.
Increased default serial buffers to 32K, due to buffer change.
9.02 (07 May 2006) Added DAFlags_NotUserVisible option to Dynamic Area flags.
9.03 (07 May 2006) Added OS_ReadSysInfo 10.
Updated CAM map to be inaccessible in USR mode.
9.04 (07 May 2006) Minor modification to move the IRQ stack lower, and make the System heap smaller
9.05 (09 May 2006) Added debug option to forcibly disable screen caching.
Added debug option to forcibly disable SerialDeviceDriver.
Added support for hardware errors to update abort copies.
Updated abort trapping to support error report replacement.
9.06 (09 May 2006) Added support for dynamic areas describing fixed memory regions.
9.07 (10 May 2006) Updated dynamic area names with 'OS: ' prefix.
9.08 (11 May 2006) Fix for incorrectly handled automatic softload of ROM on Stealth.
Removed physical mapping of Stealth configuration memory.
9.09 (11 May 2006) Added support for fixed paged dynamic areas.
9.10 (12 May 2006) Initial work to move IOSystemType from being hardwired.
9.11 (12 May 2006) Finished removal of IOSystemType from general use.
9.12 (12 May 2006) Removed all redundant RTCExternal1 and RTCExternal2 source; now only handled by the RTC and RTCHW modules.
9.13 (13 May 2006) Moved VSync handling to external functions (Video driver).
Additional C support functions added for display device functions.
Added Display device functions for multi-display handling.
Added OS_ScreenMode interface to multi-display registration.
Re-added VideoBandwidth and Total memory size handling.
Fix for ScreenMode BankCount function returning 0 banks.
Removed area validation (SVC/IRQ stack, SWI dispatch, page tables) from OS_Memory 24.
Updated Assembler-C interface to include sl and fp, allowing BTS tracing of failures within the C code.
9.14 (14 May 2006) Removed non-vectored fill and flood fill source (options SupportVideoV_FloodFill and SupportVideoV_Fill)
9.15 (14 May 2006) Removed non-vectored block copy operations (option SupportVideo_BlockCopy).
9.16 (14 May 2006) Removed redundant 'SysComms' module header and source.
Removed redundant VDU pointer source.
9.17 (14 May 2006) Removed some obsolecent symbols from zero page.
Moved ticker and vsync code away from IRQs.
Removed obsolescent implementation of TimerAlpha/TimerBeta (system clock)
9.18 (14 May 2006) Reorganised unique ID abstraction a little.
Removed screen cleaners code as it's not used.
9.19 (14 May 2006) Moved the CMOS protection to be a 'Boot option'.
9.20 (15 May 2006) Moved debug from displaydevice sources into a separate file.
Increased number of pages transferred during DA resize from 32 to 128.
9.21 (15 May 2006) Added support for cache coherency deferral during page operations.
9.22 (15 May 2006) Moved fixed dynamic area creation routines to SysDAs.
9.23 (15 May 2006) Updated undefined instruction handler to promote BTS failure to special error messages.
9.23 (16 May 2006) (retagged) Fix for incorrectly set CPSR on undefined instruction handler.
9.24 (16 May 2006) Fix for incorrect 'hardware error' check.
9.25 (16 May 2006) Updated error reports from OS_ScreenMode to use allocated error chunk.
Updated error reports to be internationalised.
9.26 (17 May 2006) Added Service_DisplayChanged after new display has been selected.
9.27 (17 May 2006) Fix for aborts when flashing colours enabled.
9.28 (18 May 2006) Replaced C 'debug' file with 'printf' as printf will be more widely used than just debugging.
9.29 (18 May 2006) Added explicit selection of greyscale modes on mode selection.
9.30 (18 May 2006) Added ModeVariables header export for C.
Added Mode String processing to the OS_ScreenMode call.
9.31 (19 May 2006) Fix for mode string parser to accept comma as a separator.
Fix for mode string parser to accept lower case letters.
9.32 (19 May 2006) Fix for buffer overrun in mode specifier copy.
9.33 (19 May 2006) Added export of Hdr:OSMemory and generated C header.
9.34 (20 May 2006) Removed incorrect 16bpp and 32bpp palette setting code.
Reversed the order of the CLS and Unblank screen during mode change.
9.35 (21 May 2006) Updated Heap DA code to perform a little better.
9.36 (21 May 2006) Updated Heap DAs to use no space when empty.
Fix for Heap DA describe failing to return largest size correctly.
Fix for Heap DA failure to return 'not a heap block' correctly
9.37 (22 May 2006) Fix for MODE 7 failing to be displayed.
9.38 (22 May 2006) Removed SupportVideoV option, now permanently enabled.
9.39 (22 May 2006) Fix for failure to preserve mode on device deregistration.
9.40 (26 May 2006) Updated zero page to be read only in USR mode.
9.41 (26 May 2006) Updated DynArea header to include system dynamic area numbers.
9.42 (26 May 2006) Added optional 'ReorganisedSpace' option to memory map.
Fix for error handler accessing zero page in USR mode.
9.43 (27 May 2006) Separated module area initialisation and population.
9.44 (27 May 2006) Moved module area initialisation earlier in startup.
9.45 (28 May 2006) Added support for display configuration.
Added support for forcing display 0.
9.46 (29 May 2006) Added support for early initialised modules.
9.47 (30 May 2006) Fix for race condition in PS2 boot key handler.
Reorganised PS2 boot key state machine.
9.48 (01 Jun 2006) Abstracted NVRAM calls to external module.
9.49 (01 Jun 2006) Fix for invalid error return when decoding incomplete mode strings.
9.50 (03 Jun 2006) Fix for some old DynamicArea errors being returned with invalid error numbers.
Fix for incorrectly specified FIFO flags for serial in exported OSReadSysInfo header.
9.51 (04 Jun 2006) Fix for softload ROM detection in OS_Memory 8.
9.52 (05 Jun 2006) Updated IRQ handler to apply coherency checks.
9.53 (07 Jun 2006) Added DisplayStatus notifications.
9.54 (10 Jun 2006) Improved speed of SWI name lookups.
9.55 (15 Jun 2006) Abstracted all teletext operations to VideoV.
Updated mode 7 to be 640x480 in 256 colours.
Removed the ability to boot into mode 7.
Fix for cursor composite values being incorrectly provided for copy cursors.
Added new VDU 23,18 operations for reveal and high quality text.
9.56 (15 Jun 2006) Added support for suspended and deferred teletext updates.
9.57 (16 Jun 2006) Fix for failure to preserve the text rows and columns in teletext.
9.58 (17 Jun 2006) Added SVC stack overflow and corruption detection to abort handler.
Changed 2nd kilobyte of SVC stack to be ROM to detect stack overflow.
9.59 (17 Jun 2006) Minor fix for addresses on special internal errors being wrong.
9.60 (22 Jun 2006) Removed redundant symbols from workspace header.
Moved VIDC20 registers into central header.
Removed redundant circle operations.
9.61 (22 Jun 2006) More tidying up of redundant symbols.
9.62 (22 Jun 2006) Added support to OS_Memory 24 for returning 'physical' and 'abortable' flags.
Fix for sparse dynamic areas confusing OS_Memory 24.
Changed OS_ValidateAddress to use OS_Memory 24.
9.63 (24 Jun 2006) Tidied up RiscPC initialisation into separate files.
9.64 (26 Jun 2006) Replaced explicit CAM initialisation with page-table derived CAM initialisation.
9.65 (27 Jun 2006) Split SystemInit and signature code into separate files.
Moved macro definitions to separate header,
9.66 (30 Jun 2006) Fix for non-black VLines not being accelerated correctly.
9.67 (30 Jun 2006) Updated hardware scroll failure to use same block-copy and clear as windowed scroll.
9.68 (30 Jun 2006) Replaced entire page table initialisation to use completely self-contained memory table initialisation.
Updated keyboard initialisation to be handled better within emulator.
9.69 (30 Jun 2006) Fix for failure to boot on ARM6 or ARM7 due to include MMU domain access operations.
9.70 (30 Jun 2006) Updated L1PT entry creation to include 'Updateable' bit for ARM610.
9.71 (01 Jul 2006) Removed old style code for memory initialisation.
9.72 (01 Jul 2006) Removed internal teletext implementation.
9.73 (01 Jul 2006) Removed obsolete direct NVRAM (IIC/RS NVRAM chip) access code.
9.74 (02 Jul 2006) Changed position of SWI hash details to avoid problems for clients who enumerate module chain directly.
9.75 (03 Jul 2006) Updated Service_DisplayChanged to be similar to Service_DisplayStatus.
9.76 (04 Jul 2006) Fix for 'privilege' typo.
9.77 (05 Jul 2006) Reorganised some of the CPU-specific operations into the processor support file.
9.78 (06 Jul 2006) Updated display selection to set bandwidth and total screen size before mode selection.
9.79 (07 Jul 2006) Replaced cache clean operations in OS_Memory with CPUOps.
9.80 (07 Jul 2006) Updated OS_MMUControl 0 to better protect against invalid settings.
Added DrainWB flag to OS_MMUControl 1.
9.81 (08 Jul 2006) Moved initial MMU CR table into the SystemInit code.
Added 'Round Robin' to the MMU flags we require.
Updated OS_MMUControl errors to use proper error numbers.
9.82 (08 Jul 2006) Updated soft ROM copy and physical RAM clear code to use CPUOps.
Updated OS_PlatformFeatures to return MMU features.
Created OSMMUControl header export.
Reorganised a small section of the initialisation code.
9.83 (09 Jul 2006) Updated SpriteOp dispatch table to include entry for TileSpriteScaled.
9.84 (10 Jul 2006) Changed diagnostic border operation to call System Init code.
Added support for diagnostic character output through System Init code.
9.85 (11 Jul 2006) Added support for System Init claiming private workspace.
Added support for auto-initialised System Init debugging.
Moved cleaners to fixed location.
9.86 (11 Jul 2006) Added IMB operations to processor support code.
Fix for invalid border colour selection post MMU enable.
9.87 (13 Jul 2006) Typo corrections in messages file.
Fix for invalid operation in abort handler.
9.88 (13 Jul 2006) Fix for disabled lazy task swapping generating aborts.
9.89 (14 Jul 2006) Updated Service_ModulePreInit to allow errors to be returned.
9.90 (15 Jul 2006) Optimisation for shrinkable dynamic areas.
9.91 (15 Jul 2006) Optimised ineffectual calls to OS_ChangeDynamicArea.
Optimised ineffectual calls to TestShrink DA handler.
9.92 (17 Jul 2006) Updated SystemInit code to allow it to provide a processor table.
9.93 (17 Jul 2006) Extracted the SystemInit sources to a separate component.
9.94 (19 Jul 2006) Fix for incorrect assumption that RAM may not live at address 0.
Removed non-DRAM check from physical arrangement table.
Fix for RISC OS image flags being set incorrectly in 32bit.
9.95 (19 Jul 2006) Fix for incorrectly calculated 'total memory' in physical RAM clear.
Fix for MMU change failing to update soft copy correctly.
Changed heap validation to set C flag rather than Z flag.
9.96 (19 Jul 2006) Fix for incorrectly specified return address for sprite dispatcher.
9.97 (20 Jul 2006) Added support for SystemInit diagnostic input.
9.98 (23 Jul 2006) Fix for register corruption in OS_SWINumberFromString.
9.99 (26 Jul 2006) Added SystemInit workspace to the fixed dynamic areas list.
10.00 (26 Jul 2006) Moved IRQ handling to external module.
Updated module initialisation to not re-initialise early-initialised modules.
10.01 (26 Jul 2006) Updated UtilityModule to be an early-init module.
10.01 (26 Jul 2006) (retagged) Fix for Early-init code failing to start with UtilityModule.
10.02 (04 Aug 2006) Updated kernel mode selectors to use more distinct selectors.
10.03 (07 Aug 2006) Removed IRQ dispatch handler space.
Moved claimed SWI dispatch to be solely ROM based.
10.04 (09 Aug 2006) Fix for default FIQ handler corruption.
10.05 (11 Aug 2006) Minor change for processor vector initialisation.
Updated supervisor invocation of boot menu.
10.06 (11 Aug 2006) Moved default FIQ handler to the Machine abstraction.
10.07 (13 Aug 2006) Added support for reading debug information from SystemInit.
10.08 (18 Aug 2006) Improved speed of page recommendation algorithm.
Fix for page recommentation algorithm with doubly mapped areas.
Fix for mapping of doubly mapped pages.
10.09 (19 Aug 2006) Fix for video driver not hardware scrolling causing aborts.
Fix for DMAable dynamic areas (and similar) be candidates for remapping.
10.10 (05 Sep 2006) Removed IOMD-specific memory speed routines.
10.11 (06 Sep 2006) Removed cache cleaner memory initialisation.
10.12 (08 Sep 2006) Updated to use external Timer module.
10.13 (08 Sep 2006) Removed ExternalVSyncs option (permanently on).
10.14 (08 Sep 2006) Removed ExternalIRQs option (permanently on).
10.15 (09 Sep 2006) Moved the Timer 0 initialisation code to the TickEvents file.
10.16 (09 Sep 2006) Fix for incorrectly referenced CPU variables in OS_PlatformFeatures when flags specified.
10.17 (09 Sep 2006) Minor tidy up for legacy text character writing code.
10.18 (09 Sep 2006) Minor change to L1L2PTenhancements to check more carefully for RiscStation.
10.19 (10 Sep 2006) Fix for undefined behaviour on OS_Plot operations.
10.20 (10 Sep 2006) Updated order of NVRAM initialisation to allow no-NVRAM systems to work.
10.21 (10 Sep 2006) Added PostInit call to the Machine entry points.
10.22 (12 Sep 2006) Abstracted I/O space interfaces into Machine.
10.23 (12 Sep 2006) Added support for disabling key debounce detection on buffer insert.
10.24 (14 Sep 2006) Fix for aborts when environment vector 17 used.
10.25 (14 Sep 2006) Updated Kernel version number to 4.43 to reflect recent changes.
10.25 (15 Sep 2006) (retagged) Updated exports to include the EnvNumbers C header.
10.26 (19 Sep 2006) Updated OS_ScreenMode 12 (device details) to return 'invalid device' for deregistered devices.
10.27 (26 Sep 2006) Fix for failure to update ChangedBox when circle plots performed.
10.28 (26 Sep 2006) Fix for early initialised modules failing to appear as 'Active' in the ROM modules list.
10.29 (28 Sep 2006) Added Model to the list of identifiers that the screen mode descriptor can contain.
10.30 (28 Sep 2006) Fix for failure to correctly reset NVRAM.
10.31 (04 Oct 2006) Fix for cursor being displayed incorrectly on ViewFinder.
10.32 (06 Oct 2006) Updated OS_ReadModeVariable on 8BPP new style sprite mode words to return mode flags with 'full palette' bit set.
10.33 (07 Oct 2006) Fix for incorrect mode variables being returned for modes matching the current mode number.
10.34 (08 Oct 2006) Changed 8 bit per pixel sprite mode word mode flags reading to be an option and reversed it (to off).
10.35 (09 Oct 2006) (retagged) Minor fix for typo.
10.35 (09 Oct 2006) Fix for the unclaimed IRQ handler claiming and so not disabling the spurious IRQ.
10.36 (10 Oct 2006) Added conditional coherency ensuring during the remapping of specific pages.
10.37 (11 Oct 2006) Fix for failure to open serial input stream on OS_Byte 2 due to corruption of registers during initialisation.
10.38 (13 Oct 2006) Removed IRQ clear from the unclaimed IRQ handler.
10.39 (13 Oct 2006) Minor tidy up to graphics operations.
10.40 (14 Oct 2006) Fix for failure to reset hardware scroll on first CLS.

Change information is supplied in good faith but may not reflect the features enabled in any given version of products.