Review: something

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).

Select 3

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.

Major highlights

  • 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
  • Thumbnailing
    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.

Feature breakdown

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.

Application changes

  • 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 details.

Desktop changes

  • 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 supplied.
  • '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 system.
  • 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 mode change.
  • 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 default.
  • 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 sprite icons.
    • 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' 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.
  • 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 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.
  • 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'.

Graphics changes

  • 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 converters.
  • 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.
  • 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 sprites.
  • 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 :
    Blend, Brighten, Contrast, Gamma, Identity, Invert, Monochrome, Monochrome and scale and User.
    Colour map descriptors can be chained together to create more complex effects.
  • 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.

Networking changes

  • Internet, ShareFS and Freeway have had issues relating to large file transfers addressed.
  • 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 statistics.
  • 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 messaging.

Miscellaneous changes

  • OS_CLI is handled by an external module, CLIV.
  • Some calls have been moved from the kernel to a new module called LegacyBBC.
  • BEL (VDU 7) no longer uses OS_Word 7, but is passed to Sound calls directly.
  • FileTypes now declares PCX, PNG, SunRaster, BMP, Clear, ICO and XBM file type names.
  • 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 'off'.
  • 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.

Configuration tools

  • 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 configuration options.
  • 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)

Paul Brett


© 3QD Developments Ltd 2015