New OS modules

Introduction

This chapter lists the modules supplied as part of the operating system, a short summary of each one's function, and where its documentation can be found.

Since RISC OS 3.6 was released, many new features have been added to RISC OS. These features are not documented within PRM 5a, which only documents up to RISC OS 3.6.

Modularised Kernel components

Many components have been moved out of the Kernel into separate modules. This allows them to be replaced should faults be located, or augmented if their behaviour needs to be changed. From an internal development standpoint, this separation increases the maintainability of both the separated component and the Kernel itself by isolating functionality. Many of these modules provide APIs which are unchanged from their original forms. Refer to the PRMs for details of the implementations.

ModuleFunction and documentation
ConversionsOS_Convert* SWI calls. No specific documentation; see PRM 1.
OSSWIsMiscellaneous SWI calls. No specific documentation; see PRM 1.
EvaluateExpressionOS_EvaluateExpression SWI. See PRM 1-457, section EvaluateExpression.
SystemVarsManagement of Sys$* variables. Version 0.08 and above handle all system variables. No specific documentation; see PRM 1.
ReadLineLine input 'ReadLine vector'. See section ReadLine.
CLIV*-command interpreter. No specific documentation; see PRM 1-929.
VideoTTXSoftware implementation of Teletext mode. See section Teletext.
VideoSWSoftware implementation of most text and graphics primitives. See section Graphics.MultiDrivers.
VideoHWVIDCHardware implementation of the video system for VIDC. See section Graphics.MultiDrivers.
FSCommandsFiling system *-commands previously located in the Kernel. No specific documentation; see PRM 1.
ModuleCommandsModule manipulation *-commands. No specific documentation; see PRM 1.
OSCommands*-commands which do not fall into the FSCommands or ModuleCommands groups. No specific documentation; see PRM 1.
RTCHigh level Real Time Clock functions. See PRM 1-399, section RTC, RTCV, OS_Word15.
RTCHWHardware access for the Real Time clock, for RiscPC, A7000, RiscStation and A9 systems. See section RTCV.
OSPointerHigh level pointer functions. See PRM 5a-242, section PointerDevices, PS2Driver, WindowScroll.
PrinterBufferConfiguration of the printer buffer. No specific documentation.
NVRAMHWHardware access to the non-volatile configuration memory. See PRM 1-363, section NVRAMV.
IRQInterrupt dispatch management. See PRM 1-121, section IRQHandler.
TimerHardware timer management. See section Timer.

Graphics components

The increased support for non-native graphics formats and the extended functions provided by the existing systems have required a number of new modules. Many of these are described in more detail in the GraphicsSystem section and the Graphics.MultiDrivers section.

ModuleFunction and documentation
ColourMapColour translation and remapping. See sections ColourMap, ColourMap-DrawFile, Graphics.Sprites.ColourMap.
BlendTableSupport for transparent blending. See section BlendTable.
FontMapNon-native font name translation. See section FontMap.
PNGLibrary for decoding and encoding of PNG bitmap images. See section PNG.
ImageFileConvertGeneric image file conversion interface, providing ImageFileRender for converted files. See section ImageFileConvert.
ImageFileRenderGeneric image rendering. See section ImageFileRender.
CompressJPEGJPEG compression, decompression and transcoding functions, now part of the ROM rather than being disc based. See PRM 5a-609, section CompressJPEG.
ConvertPNGPNG file conversion using ImageFileConvert. See section ConvertPNG, ImageFileConvert.
ConvertBMPBMP file conversion using ImageFileConvert. See section ConvertBMP, ImageFileConvert.
ConvertICOWindows .ico file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert.
ConvertPNMPNM (PBM, PPM, PGM) file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert.
ConvertSpriteSprite file conversion via ImageFileRender, using ImageFileConvert. See section ConvertSprite, ImageFileConvert.
ConvertSunSun raster file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert.
ConvertXBMX bitmap file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert.
ConvertPCXPCX file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert.
ConvertClearTranslator 'Clear' file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert.
ImageFileRender_ArtworksArtworks file rendering using ImageFileRender. No specific documentation; see ImageFileRender.

Desktop components

The Desktop has been enhanced both visibly, through the new Icon Bordering interface, and behind the scenes by providing enhanced interfaces for various components.

ModuleFunction and documentation
RedrawManagerManaged, filter based redraw functions, allowing non-application components (for example Toolbox) to perform rendering within application windows. See section RedrawManager.
IconBorderPlainRe-implementation of basic button style. No specific documentation.
IconBorderRoundUpdated button style, allowing round buttons and other effects. A general IconBorder development kit and documentation are available on request.
ClipboardHolderClipboard support functions to aid application developers and used by the WindowManager to provide cut-and-paste within writable icons. See section ClipboardHolder.
WindowScrollSupport for scrolling windows using the alternate pointing device (for example, a scroll wheel). See section WindowScroll.

Toolbox components

Although the Toolbox as a whole has been enhanced, only a few new modules are provided within the current version of the operating system.

ModuleFunction and documentation
GDividerA semantic 'divider' gadget. No specific documentation; see toolbox headers.
ToolActionAdvanced version of the regular 'Action' buttons. No specific documentation; see toolbox headers.
TextGadgetsText-based gadgets - scrolling lists and text input area. No specific documentation; see toolbox headers.
ImageFileGadgetGadget for rendering ImageFiles within a window. No specific documentation; see toolbox headers.

Programmers components

ModuleFunction and documentation
ZLibLibrary for compressing using the ZLib compression method. See section ZLib.
ZipperLibrary for reading and creating Zip archives. See section Zipper.
DiagnosticDumpDiagnostic functions for Shared C library and other external implementations. See section DiagDump.
KeyInputExtended keyboard input interfaces. See section KeyVExtendedInput.
BASIC64Floating point version of the BASIC library, now part of the ROM, rather than being disc based. No specific documentation.
DDEUtilsAdvanced developer functions such as longer command lines and editor throwback. No specific documentation.
PathUtilsSystem 'path' variable manipulation functions. No specific documentation.
SysLogCentralised logging. No specific documentation.

Network components

The network components have been enhanced considerably since their initial release with RISC OS 3.6. The network chapters contain more details of the specific functions of the new modules and of the enhancements to the existing modules.

ModuleFunction and documentation
InetServicesTranslation between service names and numbers. No specific documentation.
ResolverTranslation between host names and addresses. See section Resolver.
MimeMapTranslation between MIME media types, filetypes, file extensions and Mac data types. See section MimeMap.
InetConfigureManagement for automatic network configuration on startup. See section AutomaticConfiguration.
DHCPClientAutomatic network configuration using the DHCP protocol. See section DHCPClient.
ZeroConfAutomatic network configuration using the Link-local addressing protocol. See section ZeroConf.
RouterDiscoveryAutomatic gateway discovery using the ICMP router discovery protocol. See section RouterDiscovery.
FreewayHostsDistribution of host names over Freeway, previously an internal function of the Freeway module. See section Networking.Overview.
LanManFSAccess to Windows (and other) filing systems. No specific documentation.
AppleTalkAccess to Apple filing systems. No specific documentation.

Legacy support components

As the operating system has developed, a number of functions have become obsolete, or have required different handling. These functions have been moved to separate components so that they can easily be removed, and to make maintenance of the core components simpler.

ModuleFunction and documentation
LegacyBBCMany of the obsolescent BBC interfaces are provided through this module. See section LegacyBBC.
LegacyScreenWith the advent of multiple display devices within a system, the single 'Screen' dynamic area no longer has any purpose. This module provides this dynamic area so that components which require the area still function. See section LegacyScreen.
CallASWIAs support for StrongARM (split cache) and 32bit systems, the CallASWI module was introduced. Its functionality is now part of the core operating system. This module merely prevents unsuitable versions of the module from being used. No specific documentation.

Miscellaneous components

Finally, a few components do not fit easily into any of the above categories and are listed here.

ModuleFunction and documentation
OwnerBannerProvides the new start up banners for both the Desktop and boot. No specific documentation.
LibraryHelpExtends the *Help system to provide additional information for library commands and aliases. See section LibraryHelp.
FileTypesA stub module which sets up many of the common filetypes and their execution formats on startup. Previously this was part of FileSwitch. No specific documentation.
AIFIn order to ensure the stability of the system, and to allow support for emulated execution of non-32bit safe programs, Absolute files are now checked and executed by the AIF module. Previously this task was a part of FileSwitch. See section Exec Formats.
TransientUtilityProvides support for transient utilities, similar to that for AIF-headered absolute files, primarily to enforce the new headered utility file format. See section Exec Formats.
ScrSaverProvides management of desktop screen savers. No specific documentation.
SharedSoundSupport for multiple clients of the 16bit sound system. No specific documentation.