RISCOS Ltd

RISC OS Adjust ROM changes since Select 3i3

RISC OS 4.39, codenamed "Adjust" is distinct from the softload "Select" scheme, as Adjust is only available on physical ROMs, which are primarily suitable for RiscPC and A7000 machines.

Adjust contains all the work from RISC OS 4 up to and including RISC OS Select 3, and adds a clutch of further bug fixes and a few new features. RISC OS Select subscribers will of course receive all these updates as a softload version shortly. The next full release of Select is due later this year. The target audience for Adjust is those who didn't like, or couldn't use, the softloaded Select product (such as diskless machines).

For users considering upgrading to Adjust from RISC OS 3.x or 4.0x ROMs, there is a truly staggering amount of new features to tempt - it's best go to the
RISC OS Select website to see details of Select 1, 2 and 3. For those true RISC OS fanatics already running the latest Select 3i3 release, Adjust still has all the improvements listed below to offer, and of course, reduced boot-up times until Select 4 lands!

Below is a list of ROM changes between the latest Select 3i3 release and RISC OS Adjust.

Remember, that this is of course on top of all the improvements featured in RISC OS Select itself!

ADFS Filer
Fix for Verify after Quick format failing to do anything.
Corrected size of progress bar.
Fix for failure to initialise when ADFS module absent.
Fix for disallowing \ in disc name.
Top

Alarm
Corrected task alarms to use '-noshift' option to Filer_Run.
Top

BootCommands
Added 'X' command.
Top

BootMenu
Massive updates for more graphical menu
Antialiased fonts used instead of system font.
Cursor control of selection.
Much improved handling of Boot$Error.
Top

ColourDbox
Fix for failure to return size or data correctly when dialogue unopened.
Fix for object handles being passed incorrectly when attached to submenus.
Top

ConvertBMP
Fix for 16bpp images using the wrong bit mask.
Fix for 16bpp and 32bpp images omitting edge lines.
Added support for creating BMPs.
Added support for 'top-down' BMPs.
Top

ConvertPNM
Fix for grey scale images which don't cover 256 entries.
Fix for 1bpp (rawbits) images failing to render correctly.
P5 image fix for unaligned writes.
Top

ConvertSprite
Additional checks to ensure that images are not too large.
Top

DCS_Quit
Updated SWI name for Quit SWI to reflect use.
Top

DDEUtils
Fix for DDEUtils incorrectly affecting the OS_File 'with path(variable)' calls.
Added PSD to list of specifiers to ignore.
Fix for Canonicalisation mishandling path variables and strings.
Fix for OS_Find failing to take account of path (variable).
Fix for 'No Path' operations being passed through.
Fix for space-prefixed path names with Prefix in use.
Fix for checks on FileV entry, inverting their sense.
Fix for invalid check on FindV.
Top

Debugger
Fix for ADR in Thumb disassembler.
Fix for LDR in Thumb disassembly.
Fix for SUB sp in Thumb disassembly.
Top

Desktop
Updated to squash the sprites file.
Corrected Wimp_Initialise version to 310, rather than 300.
Top

DeviceFS
Device registration failures now only deregister successful devices.
Registration of overlaid paths are now faulted.
Registration of invalid paths are now faulted.
Directory enumeration is now correct for devices in sub-directories.
Device replacement now requires matching parent device handle.
Device detaching by name now requires matching parent device handle.
Top

DOSFS
Added support for hardware partition tables.
Top

DragASprite
Updated DragBox interface to not restore flags on return.
Top

Draw module
Fix for check for IRQ semaphore.
Top

Filer
Updated maximum thumbnail cache to 64M.
Updated maximum file size capable of thumbnailing to 6M.
Updated to use new Obey -n switch for implicit application sizing.
Fix for failure to align Obey string.
Fix for identity sprite scaling fault.
Added missing help text for the copy and new directory dialogues.
Fix for style guide compliant menu titles.
Updated Help for *Filer_OpenDir to clarify use of switches.
Fix for Filer_Run failing to accept all possible combinations of switches.
Fix for 'open directories' failing to be reflected in non-canonical viewers.
Top

Filer Action
Fix for alignment of lower information field.
Top

FileSwitch
Fix for writing to path variables failing to append a directory separator.
Fix for *Copy allocating fixed sized dynamic area buffer.
Fix for *Load failing to return errors properly.
Protective measures for filing systems failing to follow canonicalisation correctly.
Added Resources:$.Library to the Run path on startup.
Fix for internationalised builds.
Inverted default run path search order.
Top

FileTypes
Added WMF filetype to the list known about.
Top

Free
Updated disc size naming to more correctly represent the sizes.
Top

Freeway
Fix for removing callbacks on initialisation failure.
Top

Help
Fix for failure to install !Sprites file.
Updated to use PollIdle, rather than Poll.
Top

IconBorderRound
Added support for tinting the 3d borders to the border background colours.
Changed proportions of the 'specialbg' option to keep the application colour over the user's special choice.
Top

ImageFileConvert
Fix for bounding box to declare coverage rather than partial bounds.
Top

ImageFileGadget
Fix for startup without toolbox modules present.
Improved redraw speed by providing fast reject case for blank regions.
Import of more correct Memory Manager from TextGadgets.
Updated to use Wimp fading if provided by Wimp_Extend.
Updated tests to include border size.
Fix for colourmapping failing on the image border.
Fix for ResEd plotted icon having a grey background.
Top

ImageFileRender
Fixed bounding boxes to use coverage.
Top

Kernel
Fix for ROM build with Kinetic hardware.
Updated Kinetic support to include some 256M RAM modules.
Fix for unsoftloading on Kinetic.
Fix for command line idling failing
Purged support for non-OSCommandsModule from the source.
Purged support for local CLIV from the source.
Corollary: Oscli_HashedCommands also removed.
Removed other command-relaced code which had been left behind.
Updated abort indirection to use symbolic values.
Removed all calls provided by OSSWIsModule.
Removed all calls provided by ConversionsModule.
Removed some more configuration functions which had been left.
Removed all calls now provided by EvalExpressionModule.
Removed sources for NoFontsDA, NoSpriteDA and NoRAMFSDA..
Removed old VDU 23,0,12 code.
Removed old BFont defaulting code.
Fix for aborts during LTS and screen cleaning when AbortTraps in use.
Fix for OS_Memory 0, FindMemMapEntries and ReadMemMapEntries with LTS.
Fix for unexpected aborts in application space with LTS hanging machine.
Changes to allow ViewFinder patching to continue functioning.
Modified module loading to be safer in the face of deviant filesystems.
Updated abort handling to allow old-style zero page access.
Top

Library
IfConfig, InetStat, MiniUnzip, Ping and Route are now in ROM.
Top

LibraryHelp
Fix for Macro aliases failing to provide help properly.
Top

Toolbox Menu
Fix for adjust-click items closing window incorrectly.
Fix for sub-menus of Menu which are not themselves Menu objects causing spurious events to be delivered ("ColourMenu bug").
Added message data to alternate submenu warning.
Top

Messages
Added support for squashing the entire Messages file.
Top

MessageTrans
Added support for reading the size necessary for a lookup.
Updated application space proxies to read area address and size.
Top

MiniUnzip
Added support for extraction of files with 'unix-like' RISC OS types.
Added support for translating spaces in filenames.
Top

ModuleCommands
Fix for *Unplug running very slowly.
Top

NetFS
Updated code for retrying until a server appears (50 second limit).
Top

Obey
Added support for 'no system variable' (-n) switch.
Top

PNG
Updated PNG area size to be 8M maximum, rather than 1M.
Top

RAMFS
Upped RAMFS limit to 256M.
Top

RAMFSFiler
Fix for missing and incorrect Help messages in Messages file.
Top

Resolver
Added support for server propogation of TTL values.
Fix for failure to look up names from Freeway through server.
Fix for TTL values passed from names resolved by server from Freeway.
Fix for numeric lookup failure through the server causing aborts.
Fix for failures during lookup from server not being propogated back to querying client correctly.
Added server support for returning the question in the response.
Fix for access to filesystem through invalid system variable.
Top

ShareFS
Fix for failure to deregister timer if initialisation fails.
Updated menu item to say 'Save mounts' rather than 'Save choices'.
Top

SpriteExtend
Added support for pathological cases of JPEGs with markers ending in unfortunate places in FileInfo.
Fix for failure of above (and some invalid images) leaving files open.
Fix for truncated error message.
Top

SpritePool
Added support for compressing sprite files.
Updated sprites for Adjust build (switcher icon).
Added SVG filetype icons.
Top

SysLog
Updated help messages to be more accurate and descriptive.
Top

Task Manager
Fix for Shutdown on Portable device hanging.
Added Key shortcut ('O') for 'powerdown'.
Added code (from Desktop) for loading squashed sprite file.
Ensured that 'off' is faded when no Portable module present.
Updated with finalised Adjust banner (Green).
Updated Authors string.
Updated information banner.
Top

TerritoryManager
Added territory names for a number of extra territories.
Top

TextGadget
Updated mis-aligned window when creating and toggling scroll bars.
Fix for mis-wrapped text on windows with scroll bars.
Fix for passing on clipboard events if the ClipboardHolder is absent
Improved item add speed and redraw handling in ScrollList.
Rewrote column handling code in order to simplify its operation and make it more extensible.
Improved sprite rendering to allow sprites with non-22 eigen-factors.
Added initial code for user-specified ScrollList column widths.
Fix for SVC stack abuse during graphics window operations.
Fix for memory leak on removing ScrollList gadgets.
Added code for horizontal scroll bar on ScrollingLists.
Added support for reading maximum sizes of the list Gadget.
Added support for controllable scrollbars.
Optimised delete and add in Scrolling Lists.
Fix for memory leak/corruption in deleting from Scrolling List.
Fix for memory leak in remove where headings present.
Added support for 'standard' key bindings in the text area (SC-Cursors, Page Up/Page Down, Home).
Fix for dragging selection on systems without Wimp_AutoScroll.
Fix for exporting text with tabs in.
Fix for moving cursor through text with tabs in.
Fix for deleting tab characters.
Added support for Shift-cursors moving in words.
Fix for crash when loading files into TextArea.
Optimised region selection in TextAreas (similar to Slider optimisation).
Fix for redraw of 'fast' selections in TextAreas.
Fix for right margin redraw during selections in TextAreas.
Added support for changing the pointer shape over editable TextAreas.
Fix for ctrl-cursors (and ctrl-U) using logical lines rather than physical lines (TextArea).
Fix for word stepping being obscure when wordwrapping enabled.
Added QueryCompleted message for ScrollList gadget (unused without DBRM).
Added support for 'GadgetLostFocus' to TextArea.
Keyboard reduction of the selection to nothing now clears selection.
Insert text from memory (ie paste) now sets the caret correctly.
Using Adjust with no selection now extends from caret.
Using Adjust with a selection changes the nearest end.
Fix for adjust drags in TextAreas failing to select properly.
Reorganised text selection and dragging code.
Added support for ghost selections.
Single Select click in a window without focus merely gains focus now.
Added 'DisplayOnly' flag.
Updated fading algorithm to match ScrollList.
Key press handler reorganised to remove redundency.
Updated GadgetPlot to reflect scroll bar flags.
Adjust click to resize region now redraws correctly.
Updated to use invisible caret whilst selections in progress.
Fixed a bug in the code that interprets 'wide' characters (e.g. TAB), which caused the character at the caret position to be returned as ASCII 0. This manifested as incorrect Shift-Left/Right (skip word) behaviour.
Fixed TextArea left-margin selection redraw bug when using system font.
Now shows hourglass during TextArea file operations that take more than 1/3 second.
Implementation of double/triple/quadruple mouse SELECT clicks to select word/line/all in a TextArea, and multiple ADJUST clicks to extend a selection to end of word/line/text.
The standard C library isspace() function is now used in place of custom expressions when searching for start-of-word in a TextArea.
Extended auto-scroll of TextAreas during selection to correctly handle horizontal as well as vertical movement in the case where word wrap is not enabled.
Fixed the implementation of the TextArea_SetText method, which for some time had been completely broken.
Fixed bugs in the TextArea_GetSelection and TextArea_GetText methods, which were returning the string length in R5 rather than the number of bytes written.
Fixed a bug where ADJUST mouse clicks could be used to create a selection in a TextArea gadget that didn't have its AllowSelection flag set.
More low-level OS errors are now trapped and passed up to the client application, rather than the relevant TextArea methods just 'going wrong'. For example calling Gadget_MoveGadget may result in an error from Font_Converttopoints (used during re-calculation of the TA margin width).
Fixed strange jerky scrolling movement when dragging the 'caret end' of a TextArea selection on machines that do not support SWI Wimp_AutoScroll.
Rationalised faded rendering of the icons to use new Wimp interface.
Fix for font change on Text Area not affecting the scrollbars.
Fix for some redraw issues with sprite backgrounds on TextAreas.
Updated scroll bar plotting in ResEd for Scrolling Lists.
Fix for renamed TextArea_GetWindowId.
Multiple mouse clicks in a TextArea gadget will now cycle through the different stages of selection ad-infinitum, rather than just flickering subsequent to the fourth click.
Fixed a bug with the rendering of ScrollList and TextArea gadgets in ResEd.
More bugs fixed in the TextArea_GetSelection method, which behaved badly when no selection existed and also consistently overran the stated length of the client's buffer.
Fading a TextArea gadget now results in it giving up the input focus, which is analogous to what happens when a writable field is faded.
The TextArea gadget now ignores attempts to alter the generic 'faded' flag (bit 31) using the TextArea_SetState method; client applications should instead use Gadget_SetFlags to fade or unfade a TextArea.
The TextArea_SetBackground method has also been extended to allow any existing background sprite to be removed and to allow use of sprites from the the Wimp pool.
A TextArea background sprite can now be specified by name as an alternative to passing a sprite pointer.
TextArea_SetBackground now checks that the specified sprite is accessible and (unless a Wimp sprite is being used) also verifies the sprite area. Any subsequent failure to render the sprite will result in removal of the background.
Bits 10-16 of the TextArea state have been reserved for various flags that in future versions of TextGadgets will control the display attributes of any background sprite (e.g. alignment and tiling).
Added a new method TextArea_GetWindowID to return the object Id of the nested window used to implement a TextArea gadget.
Added click data to ScrollingList selection events.
Fix for Scrolling List selected colours when faded.
Unknown method numbers are now reported by the Scrollbar and TextArea gadgets.
Detection of repeat mouse clicks has been tightened up to exclude the possibility of false positives from rapid clicks in adjacent TextAreas.
Fixed a TextArea selection extension bug that manifested when the user double or triple clicked ADJUST beyond the end of the final word on a wrapped text line, and this caused the non-caret end of the selection to move.
Fixed a bug in the tab-parsing code which caused wrong jump-to-next-word behaviour when the caret position coincided with the start of a text line.
A TextArea gadget will now pass Ctrl-C, Ctrl-V and Ctrl-X keypresses on to the client application when neither 'Clipboard' (bit 6) nor 'KeyNotify' (bit 8) state flags are set.
The correct component Id is now filled in for Wimp mouse click events on a TextArea gadget; previously only the object Id was set to that of the parent window.
Fixed a bug with using the TextArea_InsertText method to insert text immediately after a newline.
Top

ToolAction
Fix for erroneously registered gadgets.
Top

Toolbox
Added *Command to display registered objects.
Fix for SWI name list order.
Fix for aborts on memory release after module restart.
Added validity checks to the Object registration SWI.
Top

UK
Added a few more territory names.
Top

UnSqzAIF
Added support for 'fixing' of self-relocating code.
Top

Toolbox Window
Fix for panes opening in different stack positions when moved.
Fix to reduce redundant MouseClicks from Slider gadget during drags.
Fix to reduce redundant ValueChanged from Slider gadget during drags.
Fix for slider_set_value enforcing the step size.
Fix for large ranges causing overflows on clicks and drags (Asm library).
Updated click positioning algorithm to use closest step unit.
Fix for failure to announce shutdown of external gadgets on death.
Fix for memory leak when external gadgets deregistered.
Added support for Window_GadgetLostFocus.
Fix for NumberRange failing to enforce bounds on reported values.
Added *Command to list registered gadgets.
Fix for registration with Toolbox using the wrong Class.
Small rationalisation of gadget entry point number processing.
Tidied up display of Window Gadgets to split size and identifier.
Added sorting of the gadget list on registration.
Checks for whether the gadget is already registered.
Added name for PlotGadget SWI.
Swapped order of gadget size and type in *Window_Gadgets.
Check for duplicated gadgets.
Fix for sorting of gadget types failing to check the gadget size.
Fix for incrementing the gadget offset when registering gadgets.
Top

WindowManager (WIMP)
Added *Configure WimpClickSubMenu.
Menu creation speed up.
Fix for window/pane opening problems.
Added support for returning shaded icons from GetPointerInfo.
Added AutoSelect to the WimpTextSelection switches.
Fix for erasing text selection when icon buffer is full.
Fix for caret positioning with auto-selection checks for icon extents.
Added support for idling when an error box is displayed.
Fix for extent checks in selections switching to the task.
Added full initialisation of workspace to prevent any areas being missed.
Added support for returning CnP selection flags.
Fix for minor fault in the release handler, preserving too many registers.
Updated default operation for moving caret to clearing selection.
Added Wimp_ReadSysInfo reasons for reading configuration (23-27)
Improved performance when over iconbar pause zones.
Added support for open window messages moving menu windows.
Fix for menu titles ending in particular text being treated as shortcuts.
Dialogue boxes within menus may now contain nested windows.
Menus with writable entries are now given focus when menu opened, rather than when over the menu.
Added support for M and G suffixes to *WimpSlot.
Fix for high priority pollwords causing aborts in applications.
Added Wimp_Extend 258 for generating a colourmap descriptor in the same manner as the Wimp does for icons.
Fix for Wimp_Extend secondary range check being invalid (since S3i2).
Fix for colourmap function returned as natural to the redraw window.
Added support for Wimp_TextOp 3 and 4.
Fix for error message reported by invalid TextOp.
Added default active point specifiers for system pointers.
Fix for potential buffer overflow in pointer validation handling.
Disabled use of selections in multi-line writable icons.
Top

Zipper
Fix for filetypes during enumeration failing to write correct values.
Top
 


E&OE © Copyright RISCOS Ltd. 2004