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
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
- 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
- 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
- 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
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
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
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.
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,
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
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
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
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
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.
In keeping with the core graphical changes, the WindowManager has
been enhanced to ensure that these graphical changes are used where
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
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
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
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
- 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
- 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.
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
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
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.
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
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
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.
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
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
Please support the future development of RISC OS by renewing your subscription to the RISC OS Select Scheme
Return to section Index