RISCOS Select 3 - March 2003

The following features are planned to be included in the forthcoming Select 3 release.

  • OS_CLI is handled by an external module, CLIV.
  • Some calls have been moved from the kernel to a new module called LegacyBBC.
  • DragASprite no longer uses a 'drop' shadow when translucency is active.
  • 'IconBorder' plugin system allows the default slabbed borders to be rendered in a customisable manner.
  • FilterManager has been updated to support multiple icon border filter clients. Example bordering source code will be supplied.
  • Internet, ShareFS and Freeway have had issues relating to large file transfers addressed.
  • InetConfigure can now configure static IP addresses properly. Previous versions retain the addresses stored in CMOS rather than using the new addresses supplied by the user.
  • Internet module has had a fix for interfaces with no addresses never issuing service calls.
  • DHCP client now supports address changed due to its deletion of the interface address. Previously this was not an issue, because Internet never issued service for address deletion, but now that this has been done it is now aware of this case.
  • BEL (VDU 7) no longer uses OS_Word 7, but is passed to Sound calls directly.
  • Rendering of sprites with 1bpp masks, using no scaling or colour translation, where the sprite data ends on a word boundary, but the mask data does not end on a word boundary, and the output alignment is not a word boundary due to a graphics window being present... now works properly.
  • Attempting to delete !Boot will now raise a warning from Filer_Action. 
  • Attempting to copy a directory called !Boot over your !Boot directory will now invoke the boot merge tool.
  • Should Filer fail to launch Filer_Action for a delete operation, the confirm deletes option is now honoured.
  • When in EY0 modes, Pinboard now correctly sizes its background window on a mode change.
  • In Filer, the Help option is now greyed if a directory and application combination are selected.
  • Filer windows have been updated to be more style-guide compliant and to address issues raised by the use of icon bordering.
  • SpriteExtend would fail to generate code when translucent sprites were rendered in paletted screen modes where the eigen factor was EX0 or EY0. This allows sprites to be visibly dragged in such modes.
  • FontManager can now safely resize its dynamic area. The version supplied in Select 2 had problems on certain systems which has now been addressed.
  • ParallelDeviceDriver is now capable of reading Device IDs. This alllows the autodetection of the make and model of Printer connected.
  • The Sprite Pool has been updated with a number of slight modifications:
  • RAMFS icon now fits in with the new style of icons
  • JPEG icon now follows the bitmap style
  • Shared CD discs now look more like the CDROM icon
  • Addition of GIF, PNM, XBM, Sun raster, and BMP sprite icons.
  • LanManFS icon updated to fit better with currect style.
  • FileTypes now declares PNG, SunRaster, BMP and XBM file type names.
  • Filer now offers to share directories as read only by default, rather than read-write. It makes sense not to share folders as public read/write by default.
  • RAMFSFiler will share the disc as read only by default.
  • LanManFS has been improved, resulting in faster resolution of names on local networks. The 'Transact' SWI call has been updated to allow a larger number of Transact communications to be made, including old WinPopup messaging.
  • The AppleTalk client is now supplied in ROM.
  • FileSwitch is now able to reference path variables (pseudo filesystems) through $, eg Music:$ for . Writing to a path variable with multiple entries where a $Write variable exists will now use the $Write directory for the operation.
  • FileSwitch no longer leaves streams open if a 'close' fails.
  • Toolbox DCS icons have been resized to be 'standard' size.
  • TextGadget Scrolling list boxes now display associated sprites more sensibly when selected; previously these would be displayed lighter than the rest of the line. The text is now positioned a little further across the window, away from the sprite in order to reduce the tight look that had been created.
  • Toolbox slider gadgets would respond to clicks and scrolls over the wells of the gadget even when the slider was set to be display only. They no longer react to such events.
  • Pinboard configuration application can now be accessed its main menu. Optimisation for redraw speed of tiled ImageFileRender images.
  • TaskManager can now launch Configure from the menu. The info box now describes the OS as RISC OS Select, and has been improved to address some issues with Icon Bordering.
  • ImageFileRender now provides *ImageFileRenderers command for listing the supported renderers. This is mirrored in a new SWI to enumerate the renderers.
  • A default viewer application can now be specified through ImageFileRender and will be set up as system variables for all renderable types.
  • ImageFileRender's sprite renderer now supports information requests previous versions were would return the colour type incorrectly for certain sprite types. Sprite rendering will now render sprites of 8bpp or less through a wide translation table which improves their appearance when colourmapping is used in 16bbp or higher.
  • New ImageFileConvert module is used with the Convert* modules to provide a generic conversion method, allowing conversion between different file formats through a number of SWI calls.
  • DrawFile will now render sprites in 8bpp or less through a wide translation table which improves their appearance when colourmapping is used in 16bbp or higher.
  • JPEG rendering where DPI based JPEGs are given as ratios are now taken into account in a similar manner to that used by !Draw. JPEGs which supply a ratio, DPI or DPC (dots per centimetre) of 0 will now be treated as 90 DPI. JPEGs with low values for DPI or DPC will now be treated as is this was a ratio.
  • CompressJPEG module now registers as a sprite to JPEG converter with ImageFileConvert.
  • ImageFileRender_Artworks module added to render Artworks documents.
  • New ConvertGIF added to ROM to generate a 'dummy' image. This is a placeholder module which avoids the requirement for a Unisys patent for the use of the LZW algorithm.
  • New ConvertXBM added to ROM to convert XBM image files to sprites.
  • New ConvertSun added to ROM to convert Sun raster image files to sprites.
  • New ConvertBMP added to ROM to convert Windows BMP image files to sprites.
  • New ConvertPNM module added, supporting type 1-6 PNM files.
  • New ConvertSprite module added, which supports creation of sprites through ImageFileConvert from any format which ImageFileRender can handle. ConvertSprite provides a proxy ImageFileConvert handler for ImageFileRender in much the same way that ImageFileRender automatically provides a proxy ImageFileRender handler for ImageFileConvert. ConvertSprite can also provide callback and SWI functions to render images to a sprite.
  • ConvertPNG has rudimentary support for creating PNGs from sprites. PNGs can now be rendered with ImageFileRender, via ImageFileConvert. Errors should be returned better during conversion to PNG now. The module is now capable of handling sprites without palettes and 16bit sprite conversion.
  • New ColourMap module allows generation of colourmapping descriptors without recourse to assembler. Currently supported mappings are : Blend, Brighten, Contrast, Gamma, Identity, Invert, Monochrome, Monochrome and scale and User. Colour map descriptors can be chained together to create more complex effects.
  • ImageFileGadget correctly positions its window now; previously it would inset the window by a pixel. When resizing the gadget, the entire window drawn to ensure that it remains up to date. The facilities provided to developers for using ImageFileGadget have been greatly improved.
  • PCI memory reservation has been removed from the kernel, freeing 256MB of logical address space for use by dynamic area.
  • Conversions module has a minor for for ReadUnsigned returning an invalid V flag on some conversions.
  • Free space client templates tweaked to address issues relating to Icon Bordering.
  • ColourPicker templates tweaked to address issues relating to Icon Bordering.
  • The sprite file DesktopBanner$File is now loaded by the Desktop module, if it is present, and used as the welcome banner on entry to the desktop.
  • DragAnObject's sprite creation code has been optimised slightly.
  • ShareFS 'Share directory' window is now updated to represent the current settings of the share if one is present, including the name of the Share.
  • Wimp now supports a 'priority' sprite pool which is able to forcibly override anything in the other sprite pools.
  • ScreenBlanker now supports a second-level blanking using DPMS. ScreenBlanker no longer uses CMOS to get its initial settings and defaults to 'off'.
  • TaskWindow now includes a fix for 'The MessageTrans Bug'.
  • CDFS legacy support for built in DOS name conversions has been removed. This is now handled by Mimemap module.

Scrapfile naming

Previously, when a network interface is active on a machine the ScrapDirectory is set to a Directory named after the MAC Address of the first installed Network card. If NetFS was active, this would be replaced by the station ID. With Select 3, the scrap directory naming is now based solely on the hardware configuration, as detected by HWScan. For most users this will be disabled and so the scrap directory will be named 'Disabled'.

Changes in configuration tools

Choices being changed, followed by closing the configuration plugin, is now queried by the following tools : Pinboard, ToolOrder, Internal Sound, Sound frequency, Mouse scroll, Help, FileCoreCheck, NetFS Econet, AUN, Routing. Resolver These tools should also indicate where a change has been made by placing a n the title of the window. CPIShell is now able to be passed command line arguments to pass to the nched plugin. This is used to allow installation of components through Filer_Action (dragging over !Boot).


The screen savers supplied with DarkHorse and Hangfire have been converted to be used with the RISC OS 4 screen saver scheme. We are working to provide an installer for these.

New IconSetUp Configuration Tool

The new IconSetup configuration tool allows the setting of options for the standard IconBorderRound module. The following options are supported for buttons and borders :- Rounded edges with Small, Medium, Normal or Large curves.
Apply to (sunken) writeable fields.
Enable 'special' colour schemes with choice of Foreground and Background colour for Action buttons, Default buttons, and Groups
All the above colours may be applied as solid colour or as a tint of the original colour. Furthermore button icons and information fields may have the colour applied as a Blend (top to bottom blend of the border colours, applying the button colour as a strong tint). Button icons may have a rim highlight and may have either thick or thin borders.


A new tool for configuring which Proxies to use has been added. Changes to the interface settings can now have immediate effect, rather than requiring a reboot.

The full list of the developments we have planned is extensive and we will release further details as, and when, they reach a sufficiently advanced stage. There are several major features that we hope to be able to include in Select 3, that we will announce shortly if they reach a suitable state for inclusion.

We very much hope you have enjoyed the new features and improvements that we have been able to include in the RISC OS Select scheme so far. Your support of the scheme is crucial to our continued development of RISC OS 4 and we very much hope that you will want to renew your subscription to the scheme.

Within this document, various references are made to other documentation supplied within the 'Docs' directory. The documentation supplied is a mix of programmers documentation and release notes. Much of the programmers documentation is in the process of conversion for the main site and will be provided in due course.

In addition, a 'Details' directory is provided containing details of the changes which occurred at each component version change. These details are necessarily complex and only likely to be of use to developers.

Much of the focus of the Select 2 development has been focused around the enhancement of the graphical facilities of the operating system. The associated document 'GraphicsSystem' provides a more general overview of the graphics system and some of the changes that have been made.

Particular changes of note are :

  • CMYK sprites are now supported
    CMYK sprites can be created, manipulated and plotted. The current implementation is functional, however certain applications which manipulate sprites directly may be provoke undefined results.
  • Sprite, JPEG and DrawFile rendering may use 'colour mapping' Colour mapping allows arbitrary functions to manipulate the colours as used within the graphics.
  • JPEGs rendering system has been improved
    The number of variants of JPEG that are handled has been improved, including the rendering of progressive JPEGs.
  • Sprites may be rendered translucently
    Sprite operations which would previously generate a solid image may now be rendered at arbitrary degrees of translucency. This new facility is used by the DragASprite module to provide translucent dragging of objects within the desktop.
  • Sprite generation from PNGs
    Sprites may be generated from PNG imaged using the new ConvertPNG module.
  • Generic image file rendering Image files may be rendered through a plugin interface provided by the new 'ImageFileRender' module.
  • System sprite pool changed The system sprite pool is no longer maintained by the Kernel. All manipulation of the system sprite pool is now delegated to the SpriteUtils module.
  • Generic blending tables can now be generated The new BlendTable module has been created to generate tables for blending between different colours in shallow colour modes.


In order to support the 'Wheel' mice which are now prevalent, parts of the system have been modified to provide a new interface for accessing such devices. The kernel issues additional requests to pointer devices to discover the state of such devices. Support for PS2 and quadrature wheel mice is now provided.

A PS2 wheel mouse can be used via the standard RiscPC quadrature interface by using an STD PS2 mouse interface. The STD mouse interface must be configured to 'driver' mode (consult documentation supplied with the PS2 interface) and the relevant mouse type selected in the mouse configuration. Alternatively, use *Configure MouseType 10 to select the STD PS2 mouse interface driver.

Within the desktop, new flag bits and icon validations have been defined to allow applications aware of the new interface to take advantage of the new input method. Toolbox 'Slider' gadgets and ColourPicker 'Slider' gadgets have been enhanced to support the new interface. Refer to 'PointerDevices' for low level driver information and 'WindowScroll' for the desktop interface.

Window manager

In keeping with the core graphical changes, the WindowManager has been enhanced to ensure that these graphical changes are used where applicable.

  • Disabled icons algorithm improved The colours to which icons now fade when disabled are now slightly different to those previously used. Disabled icons will now fade toward the background colour of the window, rather than toward white.
  • Deep shaded sprites Sprites in icons with 32 thousand or 16 million colours will now fade correctly in the same manner as their shallow colour counterparts.
  • Furniture tool order configuration The window furniture tools can be configured to use different a different order to that which RISC OS has previously used. A simple configuration tool is provided within the Window configuration group.
  • New interface for sizing text Text sizing of italic fonts has been improved to allow for the printable area to be determined for desktop fonts. Previously, italic fonts might be truncated by sizing routines using the standard operations.


Networking operations have been improved where they have been found to be lacking. The changes are necessarily not as large as those which took place for Select 1, but are still important.

  • Automatic configuration of network interfaces Network operations have been improved to allow the automatic configuration of network interfaces. A new configuration command and a related option in the interface configuration tool have been added. The InetConfigure module takes on the job of performing this automatic configuration, and has necessitated the removal of the old FWAutoAddress configuration command.
  • A(corn) Universal Network support In order to support certain applications which require support for 'AUN' networking, the NetI and related components have been updated to support the facilities offered by Select. 'AUN' refers to the support for Econet operations over Ethernet. New configuration tools have been developed and can be found within the 'Network' configuration group. In keeping with the automatic configuration changes, network maps used by AUN systems can be automatically configured from the network address.
  • Internet pollwords A new 'ioctl' operation has been added to allow applications to flag changes on a socket when operations occur. This alleviates the requirement for additional shared code just to notify multitasking applications of activity on sockets.
  • Fix for ShareFS authenticated objects Authenticated shares were issued incorrectly in Select 1. This fix allows objects to be shared using authentication.


The Kernel has been changed to support a number of the changes described elsewhere in this document, in particular for handling of CMYK sprites and mouse wheel. In addition, parts of the kernel have been reworked in anticipation of future developments.

  • RiscStation support The hardware used within the RiscStation machines is now supported by the kernel and such machines will now function with the same ROM image as other machines.
  • Addition of function signatures Certain parts of the kernel have been updated to use function signatures. This is an on going process which should allow for simpler debugging. It should be noted that many of the modules within Select are now built with function name embedding enabled such that developers can identify problem locations.
  • Rationalised module operations Certain calls (Unplugging and Inserting modules) were only possible through CLI commands under previous versions of the OS. Select makes these available as SWI calls to simplify their interface. A new operation has been added to allow the enumeration of modules with their private words pointers - an operation which was previously impossible. A module service has been added to allow clients to be aware of the state of modules.
  • Fix for 1bpp sprite mask operations Certain operations on 1bpp masks would fail.
  • Removal of OS_SubstituteArgs This call now lives in the OSSWIs module.
  • Dynamic area delegation Font and System Sprite dynamic areas have now been delegated to the FontManager and SpriteUtils modules respectively.


The Desktop components have been improved slightly to allow for issues raised in Select 1.

  • Filer text strings are now sized more reliably Text in filenames on icons is now sized correctly using the new Wimp_TextOp calls (see above).
  • Random requests for unshared discs fixed. Previously an interaction between special fields on discs with filers open and shared discs would cause directory viewers opened on to directories which had become unshared to request the unshared discs. This has been corrected.
  • Reduced memory usage for selection of large numbers of files Previously, attempting to drag a large number of files would use a large amount of memory. This has been reduced substantially.
  • Moving files on ImageNFS no longer faults directories When moving directories on ImageNFS, an error about directories containing objects is no longer generated.
  • Pinboard can use Drawfiles as background images. Strictly speaking Pinboard can use any file format supported by the ImageFileRender module. At present, this means DrawFile or JPEG in addition to Sprites.


The toolbox components have been updated to support some of the wheel mouse additions, and to address some issues raised by Select 1.

  • Scrolling lists are now faded in a better manner Although the algorithm is not identical to that used by the WindowManager, it more closely matches it than previously.
  • Scrolling lists can now use column headings It is possible to use the column lists together with headings to allow lists of related elements to be grouped together. Documentation to follow.
  • Improved resizing on scrolling list transitions The extent of the scrolling list windows was not always being correctly calculated as changes were made between different display formats.
  • Scrolling list help is now provided Previously, help messages were not provided where they had been provided by the client. They will now be provided.
  • Scroll wheel support for sliders Slider gadgets can be modified by using the scroll wheel, if supported by the mouse driver.

Configuration tools

The configuration tools have been updated to address a few issues raised in Select 1 and to provide the configuration of the extra facilities which Select 2 offers. In some cases, components have moved in the structure, but only to the extent that they now live within sub-groups. The configuration groups can now provide a 'full info' mode for displaying more information about the tools.

  • Access configuration renamed ShareFS The name 'Access' was confusing to some users and so the component has been renamed to ShareFS.
  • AUN configuration tools provided To configure the AUN networking components provided within Select 2, two new tools are provided - AUN and NetFS.
  • Boot configuration tools improved. Configuration tools can now change display format (large and small icons), be resized and can open directories.
  • New input configuration group The 'Input' group allows configuration of input devices. The mouse and keyboard tools have been moved here and a mouse scroll configuration tool has been added to this group.
  • Automatic interface configuration In interface configuration tool, the old AUN auto-configuration option has been extended to cover the new auto-configuration options.
  • Pinboard configuration tool reflects changes in Pinboard The tool has been updated to support the ImageFileRender component, allowing it to render any image that Pinboard can use.
  • New time and date configuration tool The Date and Time tool can configure the date manually, or configure network time fetches on startup. This function replaces the 'Set clock...' option which would normally be accessed through Alarm.
  • Users configuration now allows auto-logon The 'default user' can now be selected, allowing automatic log on with as a user without supplying a password. * New windows configuration group The old Window tool can now be found within the Window configuration group. This should allow for greater flexibility in the future. A rudimentary configuration tool is provided to cater for configuration of the furniture order.
  • Sound frequency configuration tool.
    A rudimentary tool for configuring the loading of RateTracker is provided.


The applications supplied with Select have not changed significantly with the exception of Paint and, to a much lesser extent, Draw. Draw can now use ctrl-D to 'duplicate' the current selection in a similar manner to the prior, non-clipboard, ctrl-C operation. In addition, ctrl-V now pastes the clipboard at the pointer, fixing a rather annoying fault in the previous version. Paint has had what can only be described as a major overhaul. In line with some of the graphics changes described above, Paint has been extended to use CMYK sprites and has improved PNG import capabilities. Many other changes are documented in the related documentation. Note: Because of the significant number of changes which require the enhanced graphics system provided by Select 2, Paint will not function on earlier versions of the OS. You should make a backup of the previous version if you intend to use it with earlier OS versions. Refer to 'Paint'. ResEd has had a few updates to cater for the additional options provided by the window system.


The library has not changed significantly for Select 2. A new JPEG transcoding tool, 'MiniJTran' has been created to use the featuresprovided by the transcoding CompressJPEG module. This allows JPEG files to be converted to and from progressive images.

Updated modules

The modules provided within !System have been updated to include the common ethernet drivers. This should alleviate some of the issues involved in upgrading. VProtect has been updated to the latest version, and a version of RateTracker has been provided. Refer to 'RateTracker'.

Miscellaneous boot updates

The Boot sequence components have been updated to support the use of AUN components within the Internet resources. The Boot sequence should not be able to be run from remote machines or where it has not been used to boot this machine.

Support for RiscStation and MicroDigital computers.
The MicroDigital Mico is now fully supported by the Select Scheme, but we have not been able to test this release as MicroDigital have been unable to supply a new Mico Computer for testing. We are also awaiting the delivery of a MicroDigital Omega in order to test its compatibility with Select.  

The new RiscStation portable has been developed with Select in mind, and we expect it to be able to fully use future Select Scheme upgrades. The standard RiscStation R7500 is now fully compatible with RISC OS 4.32

Where can I find documentation for the new features of Select?
General summaries of the new features of Select can be found via the RISC OS Select SmartGroup.


The RISC OS 4 Programmers Reference Guides are available at http://select.riscos.com/Private/Documents/

What's planned for future releases of Select?

For practical reasons we can't be definite about what will feature in any given release of Select, as it is impossible to predict how long any new feature will take to complete and test. The nature of the Select scheme is also such that we reserve the right to change the development schedule of Select to meet the needs to our RISC OS Licensees.

As always there is also a substantial amount of other "under the hood" development that doesn't offer immediately visible improvements, but does contribute to our goal of making RISC OS, easier to maintain and develop, as well as providing improved hooks for third party developers.

The full list of the developments we have planned is extensive and we will release further details as, and when, they reach a sufficiently advanced stage.

Please support the future development of RISC OS by renewing your subscription to the RISC OS Select Scheme


Return to section Index

© 3QD Developments Ltd 2013