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.
| Module | Function and documentation |
|---|---|
| Conversions | OS_Convert* SWI calls. No specific documentation; see PRM 1. |
| OSSWIs | Miscellaneous SWI calls. No specific documentation; see PRM 1. |
| EvaluateExpression | OS_EvaluateExpression SWI. See PRM 1-457, section EvaluateExpression. |
| SystemVars | Management of Sys$* variables. Version 0.08 and above handle all system variables. No specific documentation; see PRM 1. |
| ReadLine | Line input 'ReadLine vector'. See section ReadLine. |
| CLIV | *-command interpreter. No specific documentation; see PRM 1-929. |
| VideoTTX | Software implementation of Teletext mode. See section Teletext. |
| VideoSW | Software implementation of most text and graphics primitives. See section Graphics.MultiDrivers. |
| VideoHWVIDC | Hardware implementation of the video system for VIDC. See section Graphics.MultiDrivers. |
| FSCommands | Filing system *-commands previously located in the Kernel. No specific documentation; see PRM 1. |
| ModuleCommands | Module 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. |
| RTC | High level Real Time Clock functions. See PRM 1-399, section RTC, RTCV, OS_Word15. |
| RTCHW | Hardware access for the Real Time clock, for RiscPC, A7000, RiscStation and A9 systems. See section RTCV. |
| OSPointer | High level pointer functions. See PRM 5a-242, section PointerDevices, PS2Driver, WindowScroll. |
| PrinterBuffer | Configuration of the printer buffer. No specific documentation. |
| NVRAMHW | Hardware access to the non-volatile configuration memory. See PRM 1-363, section NVRAMV. |
| IRQ | Interrupt dispatch management. See PRM 1-121, section IRQHandler. |
| Timer | Hardware 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.
| Module | Function and documentation |
|---|---|
| ColourMap | Colour translation and remapping. See sections ColourMap, ColourMap-DrawFile, Graphics.Sprites.ColourMap. |
| BlendTable | Support for transparent blending. See section BlendTable. |
| FontMap | Non-native font name translation. See section FontMap. |
| PNG | Library for decoding and encoding of PNG bitmap images. See section PNG. |
| ImageFileConvert | Generic image file conversion interface, providing ImageFileRender for converted files. See section ImageFileConvert. |
| ImageFileRender | Generic image rendering. See section ImageFileRender. |
| CompressJPEG | JPEG compression, decompression and transcoding functions, now part of the ROM rather than being disc based. See PRM 5a-609, section CompressJPEG. |
| ConvertPNG | PNG file conversion using ImageFileConvert. See section ConvertPNG, ImageFileConvert. |
| ConvertBMP | BMP file conversion using ImageFileConvert. See section ConvertBMP, ImageFileConvert. |
| ConvertICO | Windows .ico file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert. |
| ConvertPNM | PNM (PBM, PPM, PGM) file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert. |
| ConvertSprite | Sprite file conversion via ImageFileRender, using ImageFileConvert. See section ConvertSprite, ImageFileConvert. |
| ConvertSun | Sun raster file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert. |
| ConvertXBM | X bitmap file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert. |
| ConvertPCX | PCX file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert. |
| ConvertClear | Translator 'Clear' file conversion using ImageFileConvert. No specific documentation; see section ImageFileConvert. |
| ImageFileRender_Artworks | Artworks 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.
| Module | Function and documentation |
|---|---|
| RedrawManager | Managed, filter based redraw functions, allowing non-application components (for example Toolbox) to perform rendering within application windows. See section RedrawManager. |
| IconBorderPlain | Re-implementation of basic button style. No specific documentation. |
| IconBorderRound | Updated button style, allowing round buttons and other effects. A general IconBorder development kit and documentation are available on request. |
| ClipboardHolder | Clipboard support functions to aid application developers and used by the WindowManager to provide cut-and-paste within writable icons. See section ClipboardHolder. |
| WindowScroll | Support 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.
| Module | Function and documentation |
|---|---|
| GDivider | A semantic 'divider' gadget. No specific documentation; see toolbox headers. |
| ToolAction | Advanced version of the regular 'Action' buttons. No specific documentation; see toolbox headers. |
| TextGadgets | Text-based gadgets - scrolling lists and text input area. No specific documentation; see toolbox headers. |
| ImageFileGadget | Gadget for rendering ImageFiles within a window. No specific documentation; see toolbox headers. |
Programmers components
| Module | Function and documentation |
|---|---|
| ZLib | Library for compressing using the ZLib compression method. See section ZLib. |
| Zipper | Library for reading and creating Zip archives. See section Zipper. |
| DiagnosticDump | Diagnostic functions for Shared C library and other external implementations. See section DiagDump. |
| KeyInput | Extended keyboard input interfaces. See section KeyVExtendedInput. |
| BASIC64 | Floating point version of the BASIC library, now part of the ROM, rather than being disc based. No specific documentation. |
| DDEUtils | Advanced developer functions such as longer command lines and editor throwback. No specific documentation. |
| PathUtils | System 'path' variable manipulation functions. No specific documentation. |
| SysLog | Centralised 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.
| Module | Function and documentation |
|---|---|
| InetServices | Translation between service names and numbers. No specific documentation. |
| Resolver | Translation between host names and addresses. See section Resolver. |
| MimeMap | Translation between MIME media types, filetypes, file extensions and Mac data types. See section MimeMap. |
| InetConfigure | Management for automatic network configuration on startup. See section AutomaticConfiguration. |
| DHCPClient | Automatic network configuration using the DHCP protocol. See section DHCPClient. |
| ZeroConf | Automatic network configuration using the Link-local addressing protocol. See section ZeroConf. |
| RouterDiscovery | Automatic gateway discovery using the ICMP router discovery protocol. See section RouterDiscovery. |
| FreewayHosts | Distribution of host names over Freeway, previously an internal function of the Freeway module. See section Networking.Overview. |
| LanManFS | Access to Windows (and other) filing systems. No specific documentation. |
| AppleTalk | Access 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.
| Module | Function and documentation |
|---|---|
| LegacyBBC | Many of the obsolescent BBC interfaces are provided through this module. See section LegacyBBC. |
| LegacyScreen | With 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. |
| CallASWI | As 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.
| Module | Function and documentation |
|---|---|
| OwnerBanner | Provides the new start up banners for both the Desktop and boot. No specific documentation. |
| LibraryHelp | Extends the *Help system to provide additional information for library commands and aliases. See section LibraryHelp. |
| FileTypes | A 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. |
| AIF | In 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. |
| TransientUtility | Provides 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. |
| ScrSaver | Provides management of desktop screen savers. No specific documentation. |
| SharedSound | Support for multiple clients of the 16bit sound system. No specific documentation. |