This review was originally published in RISCWorld magazine Volume 4 Issue 1.
Just as this issue of RISCWorld was being finalised I received notification that the latest version of RISC OS Select was now available for download by Select subscribers from the RISCOS Ltd website. As a recent Select subscriber I was rather delighted as one of my machines was still running Vanilla RISC OS 4. I therefore e-mailed Aaron to see if he would like a quick overview of the new features along with my first impressions of the latest version of the enlightened persons favourite OS. (I said yes! - Ed).
The latest version of Select (version 4.36 with Kernel 6.45) is currently marked as a Beta release. Having said this I am sure that RISCOS Ltd have done a lot of testing and in the brief time I have had to use this version of Select the OS itself has been totally stable.
The new Select3 title banner
Installation was almost painless, apart from the Softload part of the boot sequence refusing to accept the compressed version of the Select ROM. I was going to try to take a screen shot of this but typically having tried adding the archived version of the ROM again it worked. I have however seen a number of reports of users who have had problems. Since I installed Select onto an almost clean RISC OS 4 boot sequence I can only assume that these problems experiences by others may have been caused by existing boot sequence issues.
This new version of Select comes with a number of extra configuration options from the configuration window that opens when you double click on !Boot. One of the first and most obvious changes relates to the default buttons on a window. As you can see you can now change the colour of these on a global basis (my choice of colours by the way) and can also make then rounded. Options are present to alter the level of roundness and to have flat or graded colours. You can also change the colour of the text in these buttons. Some may say that this is eye candy, and indeed it is, but as far as I am concerned it may only be cosmetic, but it is very welcome.
Some Select3 configuration tools
A new !Paint
One of the RISC OS applications that was long overdue for an overhaul was !Paint. And now RISCOS Ltd have done it. The new !Paint bundled with Select is far superior. It has a proper toolbar down the left side of the window and one of my long term complaints about !Paint, the ridiculous time it takes to close a sprite file containing a large number of images, has been finally fixed (Good - Ed). The new Paint also allows you to drag files around inside the "preview" window so that you can re-order the sprites inside a sprite file which is very useful.
Dragging sprites around inside !Paint
Another massive improvement is the support for Alpha channel transparency inside sprites. However it isn't all good news with the revised version of !Paint. Firstly I could not see the airbrush tool on the new toolbar, and the new improved move and copy tools obviously require more work as they do not work as I would expect.
The new !Paint look and feel
Some other improvements
In my brief time with the new version of RISC OS I have noticed a couple of other improvements, firstly !Draw now has keyboard shortcuts for both Copy (which was missing from earlier versions) which uses the universal clipboard, and a Duplicate option which works the same way as Draw's Copy used to. It may also be me but I can't help feeling that the whole desktop feels more responsive. I also like the new Recycle bin, which RISC OS has need for some years now and the new bundled networking stuff looks very interesting. Another very useful improvement is the automatic filer thumbnailing for graphics files, no doubt over the next few weeks I will find even more changes. However I really have not had time to examine all the changes inside a couple of days and so I have reproduced the Select 3 changes list as supplied by RISC OS Ltd.
- Cut and paste
Text in writable icons provided by the Window Manager
is now able to be selected by keyboard and mouse. Such icons can be used with
the standard clipboard operations
The filer can now display images as thumbnails, allowing
photo albums and other image collections to be browsed more easily.
- Improved 'buttons'
Action buttons, as well as groups and other
3D-style icons have been improved and may be made round or given colours.
Support for button styles is a 'plugin' interface and other clients may
provide different button renderings.
- Alpha-channel sprites
A new class of sprites has been created for
alpha-channel sprites. These sprites can be used wherever the standard sprite
operations would be used through system sprite rendering calls. Alpha-channel
sprites allow each pixel to have variable translucency, which means that
sprites can blend better to their backgrounds.
- Recycle bin
Files deleted by the user can, optionally, be sent to a
recycling bin from which they can be retrieved if necessary.
- Improved Paint application
!Paint's internal and external operation
has had a major overhaul to cater for some of the new features of Select 3,
including alpha-channel sprites.
In the following breakdown, not all changes have been listed. In particular, fixes to components are not listed unless their effect is significant. Select is supplied with a more complete breakdown of the changes on a per-component basis.
- New !Recyclone application provides a rubbish bin into which files deleted
by the user will be placed. A configuration tool is provided to allow the bin
to be expired and its location changed.
- New !NetLights application displays network activity on the iconbar.
- !Draw can now import any type handled by ImageFileConvert where the type
can be converted to a type which is handled natively by Draw. This means that
PNG files, Artworks, BMP and other images types can now be imported.
- !Paint has been given a major overhaul. See the separate section for more
- DragASprite no longer uses a 'drop' shadow when translucency is active.
- DragAnObject's sprite creation code has been optimised slightly.
- Wimp now supports a 'priority' sprite pool which is able to forcibly
override anything in the other sprite pools.
- '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
- 'Auto-open submenus' option now opens submenus and windows in the correct
position regardless of where the mouse is placed.
- Selection of text within writeable icons and its use with cut and paste
operations is now supported by the Window Manager. This furthers the work
started in Select 1 to make the entire OS capable of using the cut and paste
- Tinting of icons is now more reliable and can use any tint type provided
by the ColourMap module.
- Command windows generated by single tasking applications when run from the
desktop are now centred on the screen.
- FilerAction proxying is now an option which may be disabled under the
clients control. This might be used by rubbish bin applications to invoke
'delete' operations on items already in the bin.
- When in EY0 modes, Pinboard now correctly sizes its background window on a
- Pinboard configuration application can now be accessed by its main menu.
Optimisation for redraw speed of tiled ImageFileRender images.
- Pinboard and Filer have both been updated to provide StyleGuide compliant
save dialogue boxes.
- Attempting to delete !Boot will now raise a warning.
- Attempting to copy a directory called !Boot over your !Boot directory will
now invoke the boot merge tool.
- Should Filer fail to launch the filer action window for a delete
operation, the confirm deletes option is now honoured.
- 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.
- 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
- Filer now provides a fourth display option beside those for Large, Small
and information icons. The 'Thumbnails' display renders images using the
ImageFileRender components, allowing any known image format to be displayed
within the Filer.
- Directories starting with a ! but without a !Run file are no longer
treated as an application, allowing such names to be used safely if necessary.
- RAMFSFiler will share the disc as read only by default.
- 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 Zip, GIF, PNM, XBM, Sun raster, PCX, ICO, Clear, and BMP
- LanManFS icon updated to fit better with correct style.
- 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.
- Toolbox "Discard, Cancel, Save" icons have been resized to be 'standard'
- 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
- ImageFileGadget correctly positions its window now; previously it would
inset the window by a pixel. When resizing the gadget, the entire window is
redrawn to ensure that it remains up to date. The facilities provided to
developers for using ImageFileGadget have been greatly improved.
- ImageFileGadget is now able to report mouse click events and has a much
greater array of image manipulation options.
- TextArea gadget now supports standard clipboard operations properly,
allows for 'key notifications', and renders much more quickly in most cases.
- 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.
- Free space client templates tweaked to address issues relating to Icon
- 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.
- 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.
- TaskWindow now includes a fix for 'The MessageTrans Bug'.
- 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.
- 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.
- 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. *ImageFileConverters will list the supported
- 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
- CompressJPEG module now registers as a sprite to JPEG converter with
- JPEG handling is much more robust now, and should never generate aborts
for either valid or corrupt compressed data.
- 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 added to ROM, supporting type 1-6 PNM files.
- New ConvertICO added to ROM to convert Windows .ico files to sprites.
- New ConvertPCX added to ROM to convert PCX files to sprites.
- New ConvertClear added to ROM to convert Translator 'Clear' files to
- 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 almost full support for creating PNGs from sprites
(including alpha-channel sprites), with only CMYK sprites presently
unsupported. Sprites can be created from any form of PNG, generating
alpha-channel sprites where necessary.
- DrawFile module now supports creation of SVG files from DrawFiles using
the ImageFileConvert interface.
- New ColourMap module allows generation of colourmapping descriptors
without recourse to assembler. Currently supported mappings are :
Brighten, Contrast, Gamma, Identity, Invert, Monochrome, Monochrome and scale
Colour map descriptors can be chained together to create more
- SpriteExtend, Kernel and ColourTrans have been updated to provide a new
sprite type for alpha-channel sprites. Alpha-channel sprites allow the images
to be rendered with varying levels of translucency per pixel. Previously,
sprites could only provide binary (pixel on or off) masks.
- SpriteUtil (System sprite area provider) has had a number of commands
fixed to remove errors when no system sprite area is present.
- InverseTable 'destination tracking' is now improved and should no longer
result in corrupt font colours or alpha channel rendering.
- Internet, ShareFS and Freeway have had issues relating to large file
- InetConfigure can now configure static IP addresses properly. Previous
versions would 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.
- Aliased interfaces are no longer dynamically named; the names used on
their creation are now retained, allowing deterministic operation.
- Internet can now handle changes in interface addresses more reliably.
Previous versions had issues relating to multiple aliased interfaces and ARP
requests which could cause machines to seemingly 'vanish'.
- Added support for ZeroConf IP configuration. ZeroConf is a means by which
an address can be obtained for a machine on a network without any
configuration process. This is similar to the configuration used by the
Access, but standardised across multiple platforms by a global group.
- DHCPClient and ZeroConf client both respond to *ShowStat to provided their
- 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.
- The AppleTalk client is now supplied in ROM. This allows RISC OS systems
to contact AppleTalk file and print servers.
- 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
- OS_CLI is handled by an external module, CLIV.
- Some calls have been moved from the kernel to a new module called
- BEL (VDU 7) no longer uses OS_Word 7, but is passed to Sound calls
- FileTypes now declares PCX, PNG, SunRaster, BMP, Clear, ICO and XBM file
- FileSwitch is now able to reference path variables (pseudo-filing systems)
through $, eg Music:$ for <Music$Path>. Writing to a path variable with
multiple entries where a <path>$Write variable exists will now use the
$Write directory for the operation.
- FileSwitch no longer leaves streams open if a 'close' fails.
- ResourceFS will now only issue 'changed' messages where the files changed
are opened by it, thus reducing the impact on menus opened by the user when
ShareFS discs become available over the network.
- ParallelDeviceDriver is now capable of reading Device IDs. This allows the
auto-detection of the make and model of Printer connected.
- PCI memory reservation has been removed from the kernel, freeing 256M of
logical address space for use by dynamic areas.
- Conversions module has a minor for for ReadUnsigned returning an invalid V
flag on some conversions.
- ScreenBlanker now supports a second-level blanking using DPMS.
ScreenBlanker no longer uses CMOS to get its initial settings and defaults to
- CDFS legacy support for built in conversions removed.
- EvaluateExpression module takes over from the Kernel's
OS_EvaluateExpression. Additionally, expressions can now extract directory or
leaf names from a string, canonicalise a filename and generate a string from
the current time.
- Softload ROM images are now sorted into date order, making selection of
ROMs much simpler. ROM images are now supplied in archives together with their
change lists; these lists are recorded with the ROM when installed to allow
them to be viewed at a later date.
- Resolver configuration is now able to locate DNS servers on the local
network, even with bind variants.
- Interface configuration can now take effect immediately, rather than
requiring a reboot.
- Re-written Filer configuration tool includes the new thumbnail
- All tools now warn if the configuration application is closed when changes
have been made. Tools where changes have been made are indicated by a '*' in
the title of the window, in line with standard RISC OS practice.
- CPIShell is now able to be passed command line arguments to pass to the
launched plugin. This is used to allow installation of components through
Filer_Action (dragging over !Boot).
- TimeSetup is now capable of setting the timezone.
As you can see that is quite a list!
My conclusions so far
Select 3 installed cleanly and so far has run perfectly. I do however have some concerns. Firstly I am worried about possible problems with !Paint, and although I have not seen any other problems so far but it has put a nagging doubt in the back of my mind. However I need to remember that this is marked as a Beta release and so any problems may well get fixed before this is commited to a CD. Select 3 does have a lot of new features, but then it also costs a lot of money. I know that it is a rolling scheme of improvements and that subscribers are helping to fund future OS development but at the moment I am just not quite sure. I like the new Select a great deal. If it was cheaper I would advise everyone to subscribe. If you want the best version of RISC OS and money is no object then you should seriously consider subscribing. As a new Select subscriber I am so far quite pleased. If RISCOS Ltd can continue to deliver these sorts of changes to the OS and provide a couple of updates a year then Select 3 is well worth considering. It's just that paying £155 for an upgrade to a £100 operating system feels a bit wrong.
(A quick last minute update - I have confirmed that Select 3 will run on the new Alpha laptop, RISCOS Ltd were demonstrating the Alpha running Select 3 at Wakefield but they had had a couple of minor problems, these have now been sorted - Ed)