Changes with RISC OS Select 2 issue 3
=====================================


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


Graphics
--------
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.
    Refer to 'SpriteExtend-CMYK'.

  * Sprite, JPEG and DrawFile rendering may use 'colour mapping'
    Colour mapping allows arbitrary functions to manipulate the colours
    as used within the graphics.
    Refer to 'ColourMap-DrawFile' and 'ColourMap-Sprite'.
  
  * JPEGs rendering system has been improved
    The number of variants of JPEG that are handled has been improved,
    including the rendering of progressive JPEGs.
    Refer to 'GraphicsSystem', 'CompressJPEG', and 'SpriteExtend-Errors'.

  * 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.
    Refer to 'SpriteExtend-Translucency'.
  
  * Sprite generation from PNGs
    Sprites may be generated from PNG imaged using the new ConvertPNG
    module.
    Refer to 'ConvertPNG'.
  
  * Generic image file rendering
    Image files may be rendered through a plugin interface provided by
    the new 'ImageFileRender' module.
    Refer to 'ImageFileRender'.
  
  * 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.
    Refer to 'SystemSpriteArea'.
  
  * 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.
    Refer to 'BlendTable' and 'InverseTable' for more details.


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

In order to allow other clients to replace the default scroll behaviour,
the component providing scrolling facilities - the WindowScroll module -
can be disabled. With it disabled, scrolling will have no effect unless
another controller is installed.

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.
    Refer to '*Help WimpToolOrder'.

  * 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.
    Refer to 'WimpTextOp'
 
  * Revised icon highlighting algorithm
    Icon highlighting previously was applied using an effect which was
    intended to provided a representation of the sprites and text which
    was a little like a photographic negative. Invariably, however, the
    image which was rendered was black silhouette. In order to rationalise
    this and bring sprite rendering in line with other changes to the
    window manager, the highlighting algorithm has been modified.
    Highlighted text in icons will invert as before. Highlighted sprites
    within icons will be faded toward the highlight background. In
    addition to providing a better rendition of the highlighted image, this
    also ensures that where the background colours of such icons are used,
    the highlighted sprite follows this colour scheme.
    
  * New 'Special icon highlighting' feature.
    Selected icons within Filer (and other, similar applications) follow
    the standard behaviour of displaying highlighted icons in using the
    standard highlighting methods. However, experience has shown that
    using colour for such selections is a much better indicator and is more
    visible to the user. Attempts to accomodate this and maintain a
    consistent behaviour across all icons with all colour schemes would be
    impossible. Thus, a 'special' icon highlighting feature was introduced.
    At the users discretion, icons which use the 'standard' colours may be
    displayed in configurable colours when selected. The effect of this
    is to allow icons selected within the Filer to be shown with a coloured
    background, rather than merely becoming darker.


Networking
----------
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.
    Refer to 'AutomaticConfiguration'.

  * 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.
    Refer to 'AUNIntro'.

  * 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.
    Refer to 'Pollword'.
  
  * Fix for ShareFS authenticated objects
    Authenticated shares were issued incorrectly in Select 1. This fix
    allows objects to be shared using authentication.

  * Large disc free space support in ShareFS
    ShareFS is now capable of providing information about the free space of
    remote discs of over 4G.


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


Desktop
-------
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 Pinboard can use any file format supported by the
    ImageFileRender module. At present, this means DrawFile or
    JPEG in addition to Sprites.
    

Toolbox
-------
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.
    Refer to 'AUNIntro'.
  
  * 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 configuration tool has been replaced by two new tools.
    The 'Tool order' plugin allows the configuration of different orders
    of icons around windows (the close icon, for example, can be moved).
    The bulk of the window configuration options have been moved to a
    more modern looking configuration tool which is much better organised
    and provides facilities for changing new options provided by Select 2.

  * Sound frequency configuration tool
    A rudimentary tool for configuring the loading of RateTracker is
    provided.
    Refer to 'RateTracker'.


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


Library
-------
The library has not changed significantly for Select 2. A new JPEG
transcoding tool, 'MiniJTran' has been created to use the features  provided
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.

In order to address an incompatibility with the ArcFS Memory Manager module,
the PatchApp component has been updated to patch the module as it loads.
A similar fix is applied to the ImpressionSpell module which suffered a
related problem.
