End User features
The source code used to compile RISC OS 6 is now 32 bit neutral, as such
either a 32bit or a 26bit version can be built. All the current Select releases
are a 26bit version of RISC OS. In this respect it behaves the same as all
previous versions of RISC OS 4 and RISC OS Select. So there is no need to change
any of your applications to 32 bit versions. RISC OS 6 can run existing 26bit applications. The built-in RISC OS 6 Shared C Library provides all the features required for 26bit and 32bit support.
RISCOS Ltd offers no guarantees about the performance of this, or any version
of RISC OS. It should not be tested on any mission critical machines, or any
that you rely on for the permanent storage of data or applications.
Fuller technical details of the inner workings of Select can be found on the Select website. Testing of this release is very important and we welcome your feedback. If you have not already done so, you should register with the new GoogleGroups RISC OS Select Discussion Group. If you have not received an invitation to join this Group please send a request to email@example.com.
About this document
This document doesn't list all the changes that have been made in RISC OS 6. Instead it is mainly concerned with the changes that have been made to the underlying system. As an example, RISC OS 6 includes an abstracted video system. Full technical documentation can be found in
The RISC OS Select PRMs and this document should be read in conjunction with the full technical documentation. A full list of the changes to all the components can be found in the RISC OS Select Change Documentation.
Many Operating System components have been moved out of the Kernel into separate modules. This allows them to be replaced should faults be located, or augmented if their behaviour needs to be changed. Many of these modules provide APIs which are unchanged from their original forms.
In order to increase compatibility between Select versions and RISC OS 5 the RISC OS 6 versions have been amended, in a compatible manner where possible, where the Castle versions have diverged from standard RISC OS 4 versions. Thus programmers have no need to be concerned about producing different versions of their applications for different platforms. All that is needed is to check that the feature they require is actually present on the relevant OS and then carry on and use it, if it is present.
New ROM Modules
There are now 209 Modules in RISC OS Six release ROM compared to 194 Modules in ROM in the Select
4 Preview. The full listing is:-
RISC OS Six Preview
||RISC OS Select 4 i2
The speed of the operating system as a whole is an area which is always focused on during development of RISC OS. Whilst it is always desirable to improve the speed with each iteration of the system, this is not always possible because of hardware, algorithmic and practical reasons. RISC OS 4, in particular, introduced many efficiency improvements which had a noticeably beneficial effect on the system as a whole.
Versions of the operating system after this (up to and including RISC OS 6) have added other speed optimisations in other places as appropriate. As an example some of the speed improvements in RISC OS 6 are:
- SWI dispatch is no longer placed in RAM, but lives within the ROM itself. As the ROM is softloaded into RAM, this presents no speed penalty, but has allowed other optimisations to be used.
- Screen memory is now cached at the discretion of the video driver. The current video drivers (VIDC, SM501, ViewFinder) use this feature to improve performance.
- Video abstraction interfaces mean that on accelerated hardware, such as ViewFinder and the SM501, hardware features may be used to improve the speed.
- Some of the software rendering functions (now provided by VideoSW) have been improved.
- Although *-command dispatch is now handled entirely external to the Kernel, many of the speed improvements have been retained. The increase in speed previously provided by the command lookups has been improved.
- Dynamic area memory allocation speed has been significantly improved, which has benefits for users who regularly change the size of their memory areas.
- Heap dynamic areas (a feature introduced with Select 1) are far more efficient for large and regular allocations.
- SWI name to number translation is significantly faster, using an improved algorithm to reject non-matching cases. This should primarily benefit BASIC applications.
- Within the desktop, rendering of special icons is now provided through FilterManager. However, because button images are cached, this change should only be noticeable for the first rendering of that size and style of icon.
- The display manager now selects true-colour 256 colour modes when a 256 colour mode is selected from its menus. Previously only the VIDC1-compatible modes would be selected. This change has been applied to ColourTrans, and results in an equivalent speed for processing palettes to that of the old style modes, whilst at the same time benefiting true-colour paletted sprites.
- ColourTrans now provides optimised support for a monotonic 256 grey scale palette (as used by the desktop 'Grey' mode selector). This allows grey scale colour translations to be performed faster than even the optimised old-palette 256 colour palettes.
The management of video within RISC OS 6 has changed significantly. Most
graphics primitives may be accelerated by hardware, and many operations have
been changed slightly because of this. The Video Drivers can now support
multiple display devices. For example a current machine may have both the
standard VIDC based Video Display and a Viewfinder Graphics card active though
only one can be active at a time. Work is being done to support multiple graphics cards and to support features not previously seen on RISC OS 4, such as Screen Rotation to support Portrait Mode displays.
With the introduction of multiple display drivers, the concept of a single 'screen memory' area is obsolete. This means that the dynamic area, previously allocated to the screen memory, is no longer used. In order that clients which merely check this value do not fail however, the area is provided by the LegacyScreen module. The content of this area and its size have no relationship to the video system and are merely provided to ensure that applications which attempt to check video size by using this area do not fail immediately.
Because memory management for video drivers may not be related to the total memory available to the video drivers it is not sufficient to read the total size of the video memory and divide by the screen size to obtain the number of screen banks. New OS_ScreenMode reason codes have been created to ensure that these operations can be performed reliably within the constraints of the driver.
Shadowed modes are no longer supported by RISC OS 6. These modes are numbered 128-255 and would implicitly select the second bank of screen memory. Since the days of Arthur, these modes were of much less use. Attempting to select shadowed modes may result in undefined behaviour.
Hardware acceleration is provided by the display driver transparently from all user operations. When hardware acceleration is not available, software equivalent functions will be available.
Screen mode limitations
In order to ensure that the system can be simplified certain features have been dropped from screen modes. The shadowed mode selection has already been mentioned. In addition, modes which have different BPP and BPC values are no longer supported. This means that modes 2, 4, 5 and 10 are no longer available. This should affect very few applications as the vast majority will have been updated to be mode independent already.
Gap mode support is now at the discretion of the video driver. This means that modes 3, 6, 7, 11 and 14 may not appear the same on different hardware.
Mode 23 was defined in order to support monitors which were much higher resolution than the standard VGA monitors of the time. However, technology has rendered such systems obsolete. In particular, this mode used 'double height characters'. These are no longer supported and mode 23 may revert to being a standard 1 BPP mode with 8x8 pixel characters.
In addition, modes may be limited in the number of colours that may be displayed. Usually this affects modes with 16 or fewer colours as these are not supported by some modern graphics hardware.
Teletext modes are no longer implemented as a 16 colour, low resolution mode. Any resolution and number of colours may now be used for a teletext mode, although obviously with less than 16 colours its usefulness will be limited. By default the resolution and colours selected by mode 7 is now equivalent to that of mode 28. Alternative teletext resolutions may be used, however. New Mode Strings may be entered into the Mode display in order to select a Teletext Mode.
The Desktop has been enhanced both visibly (through the new Icon Bordering interface) and behind the scenes by providing enhanced interfaces for various components.
32 bit Shared C library
Components sourced from other companies, outside the control of RISCOS Ltd, are not supported by RISCOS Ltd. Where possible, compatibility will be maintained but if things fail with externally sourced components then this is not an issue that RISCOS Ltd will be able to address unless it has been caused by a change to the system which can be avoided. In particular, the use of non-RISCOS Ltd sourced ROM components (SharedCLibrary, FPEmulator, Toolbox modules, etc) is not guaranteed and should not be relied upon. It is strongly recommended that such components should not be employed on users' systems, once you move to the final Select 4 release.
The CallASWI module was introduced in RISC OS 3.7 to provide a mechanism by which arbitrary numbered SWIs can be called without requiring dynamic code.
The module is redundant on RISC OS 6 as the facilities the soft-load versions provide are now a standard part of the operating system. The CallASWI module is provided to ensure that applications ensuring the module do not attempt to load other versions.
RISC OS 6 now offers dual loading banners at startup. A standard RISC OS 6 banner, and a different banner which is displayed if booting fails to complete correctly. This may help identify a commonly reported source of problems.
For users who would like to customise their Boot sequence RISC OS 6 now provides support for new start up banners to be specified by the user. The startup System now recognises, ARM 610, ARM 710, ARM 7500, ARM 7500FE, StrongARM, Kinetic and ARM 920 processors, and will identify the Processor present during the Boot Sequence.
When selecting 256 colour screen mode this really means 256 colours - not 64
colours x 4 as previously. Display Manager also has an extra option to select
the display device.
Opening !Configure (by double clicking on !Boot) now auto opens the Boot configuration window, instead of just opening the Configuration Window. There is also a new set of preset setup options for the Tool order configuration tool.
Pressing F12 now displays a message "to exit command line shell, press return on an empty line"
The Diagnostic Dump system is a new feature which utilises the APCS backtrace features of the SharedClibrary to provide diagnostic functions for Shared C
library and other external implementations. Full documentation is provided on the RISC OS 6 Web Site.
The Internet stack and related components have undergone a number of changes in order to address problems and provide new features to developers and, ultimately, users. The primary improvements have been the addition of new modules for particular Internet facilities - RouterDiscovery, InternetTime and ResolverMDNS. Internet now supports multicast filtering for drivers.
Resolver has been updated to address significant issues with its implementation of expiry and now provides DCI4 statistics. The Network Configuration Tool has new options for Auto-Configuration if Static, AUN, or Dymanic are selected. DNS now has an Auto Detect Option and Gateway has an Auto Detect Option. These are especially useful for use in networks where the DNS entries and Gateway Address can be detected.
which implements automatic network configuration using the Link-Local addressing protocol.
which supports automatic gateway discovery using the ICMP router discoveryprotocol.
which provides distribution of host names over Freeway, which was previously an internal function of the Freeway module.
Address collision detection
If another device with an identical IP address is detected on the network the local network interface will be disabled.
It is now possible to set up aliased interfaces to allow one physical Ethernet adaptor to appear to have two or more logical addresses.
e.g *ifconfig eh0:1 22.214.171.124. This type of setup allows a machine to sit on two different subnets.
There have been a number of miscellaneous Graphics updates notably:
- SpriteExtend is now capable of rendering CMYK and YCbCrK JPEGs.
- JPEG compression, decompression and transcoding functions provided by the CompressJPEG module, are now part of the ROM rather than being disc based.
The WindowManager has been updated significantly. From this work, it is now possible for button icons to be 'highlighted' when the mouse is over them. This is not yet used by the built in borders.
Re-implementation of basic button style.
Updated button style, allowing round buttons and other effects.
This is a stub module which sets up a many of the common filetypes and their execution formats on startup. Previously this was part of FileSwitch. Filer uses Filer$Types to set the types that can be used (use hex values, comma separated, eg 'fff,faf').
The Disc Based applications have been updated.
There is a separate user document covering !Paint in the RISCOS6.Documents directory.
There is a separate user document covering !Draw in the RISCOS6.Documents directory.
Image file rendering system
There are two new renderers:
The full set is now:
- ConvertICO 0.04 Windows .ico files
- ConvertClear 0.05 RISC OS Clear files
- ConvertPCX 0.03 Windows .pcx files
- ConvertBMP 0.11 Windows .bmp files
- ConvertPNM 0.06 Windows .pnm, .pbm and .pgm files
- ImageFileRender 0.33 RISC OS Draw files
- ConvertWMF 0.00 Windows .wmf files
- ConvertPNG 0.37 Windows .png files
- ConvertXBM 0.08 Windows .xbm files
- ImageFileRender 0.33 RISC OS Tablemate file
- ImageFileRender 0.33 JPEG
- ImageFileRender 0.33 RISC OS Poster file
- ImageFileRender 0.33 RISC OS Equasor file
- IFR Artworks 0.12 RISC OS ArtWorks file
- ConvertSun 0.08 Windows .ras SunRaster file
- ImageFileRender 0.33 RISC OS Sprite
Changes since previous versions:
- ConvertBMP can now take CMYK sprites and convert to BMPs.
- ConvertICO can now create ICOs from multi-sprite files and CMYK sprites.
- Sprites created from 16 colour icons are now 16 colour.
- ConvertPNG can now convert CMYK sprites to PNGs.
- Image Viewer now has support for exporting the viewed file in whatever types are known to the convertor.
In order to ensure the stability of the system and to allow support for emulated execution of non-32bit safe programs, Absolute files are now checked and executed by the AIF module. The TransientUtility module provides support for transient utilities, similar to that for AIF-headered absolute files, primarily to enforce the new headered
utility file format. The 26bit RISC OS 6 Select4i2 has this checking enabled by default.
Window toolbox module now allows an expanded range of gadget operations in order to provide greater flexibility for the range of gadgets which can be provided - in particular gadget timers, gadget redraw events and the ability to add and remove icons from a gadget during its lifetime. Changes include:
- All toolbox modules should now work correctly if ResourceFS is restarted.
- TextGadget has new features to support new text area background sprite handling.
- New ColourSwatch gadget.
- Window provides vertical labels.
- Window has much improved support for Fonts in gadgets.
- ResEd has been updated to support plugins for its gadgets, allowing it to be extended to use other gadgets as they become available. This also includes the full support for the ColourSwatch gadget.
- TextGadget updated with a few changes: Loading text-like files, deletes temporary files, improved selection handling and better redraw.
Although the toolbox as a whole has been enhanced, only a few new modules are provided within the current version of the operating system.
- GDivider - A semantic 'divider' gadget.
- ToolAction - Advanced version of the regular 'Action' buttons.
- TextGadgets - Text-based gadgets - scrolling lists and text input area.
- ImageFileGadget - Gadget for rendering ImageFiles within a window.
Keyboard and Mice
In addition to the standard 3 button mice, up to 8 buttons are supported by the OSPointer module. 5 button mice are common and the PS 2 driver has been updated to support such devices. This includes support for Intellimouse and Intellimouse Pro.
Multimedia Keyboard features
International Keyboard now generates different codes for left and right Meta keys. This is in order to provide greater compatibilty with the RISC OS 5 change to the design. Since RISC OS 4 a number of additional keys have been returned by the keyboard drivers, though it is up to other applications to utilise these keys. These keys are:
- Windows left
- Windows right
- No convert
- \ _
- ASPI Power
- ASPI Sleep
- ASPI Wake
- Scan next track
- Scan previous track
- Media select
- My computer
- Browser search
- Browser home
- Browser back
- Browser forward
- Browser stop
- Browser refresh
- Browser favourites
Before key presses are inserted into the keyboard buffer, a short delay (2cs) is generated. This allows key debounce to be detected and ignored. However, certain input devices are not susceptible to such debounces and this additional delay can be ignored. This delay can be removed by passing a special value in R2 when the relevant keyboard driver is present.
BASIC now assembles LD/ST 'T' properly.The floating point version of the BASIC library -BASIC64 , is now part of the ROM, rather than being disc based.
RamFS now allows up to 256MB to be allocated.
MiniUnzip and MiniZip now support -u option for unix filenames.
Recyclone has been updated to monitor the bin's state using a module rather than repeatedly checking on null polls. This improves system performance.
Task Display from task manager
Memory allocations are now in K up to 16128K and then become M. The Task Manager has new option for Blue Task bars. These indicate allocated space, rather than memory usage.
Listings now align properly e.g.
1 System ROM UtilityModule 6.02 Active
2 System ROM IRQ 0.06 Active
3 System ROM TimerManager 0.02 Active
4 System ROM Podule 1.60 Active
5 System ROM Conversions 0.15 Active
6 System ROM OSSWIs 0.18 Active
7 System ROM EvaluateExpression 0.14 Active
8 System ROM SystemVars 0.12 Active
9 System ROM FPEmulator 4.18 Active
10 System ROM SharedCLibrary 5.61 Active
11 System ROM UnSqueezeAIF 0.18 Active
This provides managed filter based redraw functions, allowing non-application components (for example Toolbox) to perform rendering within application windows. The RedrawManager module provides a mechanism for drawing into a window as part of the Window Manager's redraw process. This allows clients to transparently implement complex rendering without requiring the application to be updated to explicitly call the rendering routines as part of their redraw loop. Complex gadget redraws are made much simpler through the use of the RedrawManager. With RedrawManager, Gadgets may redraw their content without any application-specific support.
Extends the *Help system to provide additional information for library commands and aliases.
ScrSaver - Provides management of desktop screen savers.
During system initialisation the OS goes through a number of phases. During these phases there may be indications of the progress for diagnostic purposes. The sequence of colours as displayed on VIDC systems for RISC OS 6 includes a number of new colours. Other systems may produce different colours and due to continuous development, colours may be changed in future versions. On this version the Grey colour of the desktop initialisation stage gives the appearance of a longer delay that previous before the desktop is displayed.
Under RISC OS 3.7 and earlier a number of special types of reset were available to the user. Each of these reset types was triggered by holding a key during a reset.
With RISC OS 6.02 and later, the only operations of these which remain are the Delete, Shift and keypad-*. In order to support multiple displays, it is possible to configure the display which the system will start up using. This can be a problem if the display configured is no longer present (for example, because the podule has been removed). If the 0 key (not the keypad-0) is held during startup, the display will (for this session) be forced to display number 0.
The VideoGuard module provides protection against the user being left with no display due to an absent display driver. In normal use, the system is actively displaying graphics on a display that is currently present. Under some circumstances, however, it is possible for the system to be using a display device which is absent. The two circumstances under which this can occur are :
If the system has been configured to use a display device but no such device is yet present, there is no useful display to use. This is the case during the early system initialisation before the display driver has initialised. Such cases will not usually be visible to users. More commonly, however, the system may be configured to use device 1, which is present on an expansion card but the card has been removed. Usually this can be over-ridden by holding the '0' key during system startup (see the ResetTypes document for more details).
Device driver removal
If the display driver for the current display is killed then the display no longer exists. This is uncommon, but may occur during testing. Future device drivers may be dynamic and thus may provide devices which come and go as necessary. When the current display driver is removed, or not present during the system startup, the graphics system takes no additional action except to mark the frame buffer as absent. The address of the screen will be read as 0. Graphics
drivers should check for this case. The VideoGuard module will recover from these circumstances by selecting the native (display 0) device.
Top of page