RISC OS Open
Safeguarding the past, present and future of RISC OS for everyone
ROOL
Home | News | Downloads | Bugs | Bounties | Forum | Documents | Photos | Contact us
Account

Summary: IOMD 5.22

Summary of changes to IOMD ROM (5.20 to 5.22)

Enhancements and fixes

  • The following are the headline changes to modules or components in the IOMD ROM for 5.22.
  • For brevity only the top 17 changes have been described, the full change logs should be consulted for details of nearly 420 changes which all contribute to stability and ease of use.

!Draw

  • It is now possible to use background blended text (and text areas) by ticking the ‘None’ option in the colour picker so that outline fonts blend properly on top of a varying colour.
  • The DrawFile render module has been similarly updated to render blended text when saved from Draw.

!Edit

  • Edit now uses the clipboard model of ‘cut & paste’ to manipulate selections, and pass copied text to other 3rd party applications which support the global clipboard.
  • A new swap case option has been added to invert the capitalisation of a selection.
  • Undo of text inserted via the RAM transfer protocol now works, resolving a longstanding bug.
  • Task windows managed by Edit allow pasting using Ctrl-V which replaces the former Task Input menu option.

BASIC

  • Programs of the form IF GOTO 1234, ie. with no THEN keyword, are now correctly tokenised.
  • BASIC now manages its own Messages file through MessageTrans and no longer uses the BASICTrans support module.
  • Assembler source code using variables starting with the special names PC LR or SP are now more tolerantly handled.

CDFS

  • CDFS can now read Joliet format CD-ROMs with long/mixed case filenames.
  • Certain DVD layouts larger than 4GB are now catalogued correctly.
  • Files read with BGET/BPUT use more cache memory to speed up the operation.

ColourTrans

  • ColourTrans no longer causes Paint to crash when dragging the CMYK colour picker sliders.
  • Colour table generation is now much faster than previously, meaning mode changes between different colour depths are faster.
  • ColourTrans is able to use the Kernel’s new sprite formats.

DOSFS

  • Renaming files now uses a short filename generation algorithm which produces valid filenames.
  • DOSFS no longer tries to mount harddiscs that are too large for its abilities, previously this would cause the machine to hang when a blank (PC formatted) drive was added to the machine with the intention of reformatting it to FileCore format with HForm.

Debugger

  • The debugger can now disassemble ARMv6, ARMv7, VFP, and Neon instruction sets, allowing faults to be traced more easily.
  • A new command *ShowVFPRegs complements the existing *ShowRegs command, dumping the VFP register set instead.

DHCP

  • The DHCP client will now suggest the machine name (from Inet$HostName) when a lease is being negotiated, many home routers will keep this name in a table so it is easier to work out which machine is which.
  • The timing of DHCP requests has been altered to give more chance of contacting the DHCP server at start up but without extending the boot time.
  • DHCP no longer sends a reserved option number 164 to the server.

Filer

  • A new option to sort directories numerically has been added, which will consider the numerical value of the filename as well as its alphabetical position. For example, a directory of photos can be sorted as “Photo8, Photo9, Photo10”. The Territory module provides this sorting facility, allowing 3rd party applications to use it in the same way the Filer does.
  • Redraw of filer windows has been sped up considerably by drawing all the files of the same type at once.

Kernel

  • The Kernel no longer looks after the real time clock hardware, a new module, RTC, does this along with help from the hardware abstraction layer.
  • The memory table set up at boot time is now correctly recalculated, so that page permissions are correct. This was stopping the desktop debugger (DDT) from working reliably on some platforms.
  • The OS_Memory and OS_NVMemory APIs have been extended with new reason codes to manipulate/determine memory types.
  • Boot times are now faster on platforms using software RAM clear.
  • Many updated and improved internal changes, programmers should consult the full change log for details.
  • Expressions with angle brackets are now parsed as expected, for example, the following was previously expanded incorrectly:
    pre. *IF 0<1 AND 1>0

LanManFS

  • LanManFS is now faster at performing many operations, particularly so on Ethernet links faster than 10Mbps which would previously have been capped.
  • The length of a file reported by the Filer could get out of sync with the actual file length when trying to load the file, this caused some applications to fail to open documents correctly from a remote drive.

VIDC20Video

  • The VIDC video driver is able to use the Kernel’s new sprite formats, so can swap red and blue colours in software via a *Configure command.
  • Supporting functions called via the GraphicsV vector have been updated to match the Kernel’s specification.

RISC_OSLib

  • The C library implementation of system() now copes with 1k long command lines, and sets up the error handling environment correctly. Applications using this function will be more stable as a result.

Window Manager

  • Toggling the ‘Protect theme icons from being modified’ option in the Theme Plugin in Configure no longer causes the Wimp to hang redrawing the desktop.
  • Windows containing sprites are now drawn more quickly by caching the sprite translation tables more intelligently.
  • Applications can now be supplied with alpha blended versions of their !Sprites file which will be searched for automatically. Applications authors should consult page 116 of the RISC OS Style Guide for details of how to use this feature.
  • A bug which would overwrite a shelled application when the child quit has been fixed.
  • The ptr_drop mouse pointer sprite is now included in the Wimp’s sprite pool.
  • A number of other fixes have been implemented which programmers can find details of in the full change logs.

Groups of changes

Sound system

  • The sound system and built in voices (WaveSynth, Percussion, StringLib) now adjust their tempo to account for the change in sound sampling rate. This resolves a longstanding problem that, for example, Maestro would play back at the wrong pitch/speed when another application has increased or decreased the audio system sampling rate.

Alpha channel sprites

  • Part of the ongoing extended framebuffer format work includes a raft of new RISC OS Sprite formats, to go beyond the existing 1/2/4/8/16/32bpp that were last extended for the Risc PC. The new formats allow for different colour ordering and 256 levels of transparency – an alpha channel.
  • Objects dragged within the desktop, such as files in the Filer, will now render using transparency rather than the 50% dot pattern previously employed. This makes it clearer to see what’s underneath the object before dropping it.
  • The Paint application can open and render these new sprite formats, as well as giving extended information about them in the sprite info dialogue box, but at present they can’t be edited – this is the subject of a bounty which is looking for funding from users.
  • The Window Manager understands how to plot the new sprite types, including via the Wimp_SpriteOp SWI.
  • A new module, BlendTable, computes tables that allow SpriteExtend to mix together two sprites of differing opacities.
  • SpriteExtend is aware of sprites with alpha channel of transparency, as well as JPEGs, and offers the new plotting capabilities through a new flag bit in the programmer’s API.
  • The SpriteUtils commands have also been updated to be able to work with new sprite formats.

Internationalisation

  • All of the ROM modules now look up their text from Messages files, allowing non English speaking users to replace the resources completely. Previously SharedSound, SCSIFS, SCSISwitcher, UnSqueezeAIF, MBuf Manager, DHCP, LanManFS, Freeway, Resolver, Text Gadgets, Inverse Table, and Hourglass were all limited to their built in English text.

Enhanced video modes

  • A great deal of work has been done in implementing the GraphicsV enhancements which is how RISC OS communicates with the graphics drivers for each of the supported hardware platforms. The aim of these changes are to allow RISC OS to make more use of the graphics hardware available to it, for example to display multiple video heads.
  • New modes are now available as a result, with 4k and 64k colours, where hardware permits.
  • Inverse Table can now generate tables for sprites, not just for fonts.
  • The Font Manager has been updated to plot fonts into these new modes.
  • The Display Manager’s mode picker menu now includes the extra mode combinations, which can also be selected via extensions to the mode string syntax (including from BASIC). Programmers can find details of this in the full change logs.

Search whole site

Social

Follow us on and

ROOL Store

Buy RISC OS Open merchandise here, including SD cards for Raspberry Pi and more.

Donate! Why?

Help ROOL make things happen – please consider donating!

RISC OS IPR

RISC OS is an Open Source operating system owned by RISC OS Developments Ltd and licensed primarily under the Apache 2.0 license.

Information pages

  • Downloads
  • Licences
  • About
  • Contact
  • Privacy
  • Help
Site design © RISC OS Open Limited 2018 except where indicated
The RISC OS Open theme is an original creation

Valid XHTML 1.0  |  Valid CSS

Powered by Radiant CMS
This site runs on Rails

Hosted by Arachsys