KEY FEATURES OF RISC OS 6
 

Search

Home
Downloads
FAQ
Documents
News
Pricing & Ordering
RISC OS 6 has lots of new features.
  These have been introduced to improve the RISC OS experience for both Developers and End Users, and to enable RISC OS to keep up with some of the features expected of modern Operating Systems. Some have been present in earlier versions of Select, and some are new to RISC OS 6.

This page gives highlights of some of the new features present in Select 6 Issue 1.

 

Goto Features for End Users

 

Goto Features for Programmers

 

New End User features

Introduction

The source code used to compile RISC OS 6 is now 32 bit neutral, as such either a 32bit or a 26bit version can be built. All the current Select releases are a 26bit version of RISC OS. In this respect it behaves the same as all previous versions of RISC OS 4 and RISC OS Select. So there is no need to change any of your applications to 32 bit versions. RISC OS 6 can run existing 26bit applications. The built-in RISC OS 6 Shared C Library provides all the features required for 26bit and 32bit support.

RISCOS Ltd offers no guarantees about the performance of this, or any version of RISC OS. It should not be tested on any mission critical machines, or any that you rely on for the permanent storage of data or applications.

Fuller technical details of the inner workings of Select can be found on the Select website. Testing of this release is very important and we welcome your feedback. If you have not already done so, you should register with the new GoogleGroups RISC OS Select Discussion Group. If you have not received an invitation to join this Group please send a request to developer@riscos.com.

About this document

This document doesn't list all the changes that have been made in RISC OS 6. Instead it is mainly concerned with the changes that have been made to the underlying system. As an example, RISC OS 6 includes an abstracted video system. Full technical documentation can be found in The RISC OS Select PRMs and this document should be read in conjunction with the full technical documentation. A full list of the changes to all the components can be found in the RISC OS Select Change Documentation.

Technical Features

Many Operating System 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. Many of these modules provide APIs which are unchanged from their original forms.

In order to increase compatibility between Select versions and RISC OS 5 the RISC OS 6 versions have been amended, in a compatible manner where possible, where the Castle versions have diverged from standard RISC OS 4 versions. Thus programmers have no need to be concerned about producing different versions of their applications for different platforms. All that is needed is to check that the feature they require is actually present on the relevant OS and then carry on and use it, if it is present.

New ROM Modules

There are now 209 Modules in RISC OS Six release ROM compared to 194 Modules in ROM in the Select 4 Preview. The full listing is:-

RISC OS Six Preview RISC OS Select 4 i2
  • 1 System ROM UtilityModule 6.02
  • 2 System ROM IRQ 0.06
  • 3 System ROM TimerManager 0.02
  • 4 System ROM Podule 1.60
  • 5 System ROM Conversions 0.15
  • 6 System ROM OSSWIs 0.18
  • 7 System ROM EvaluateExpression 0.14
  • 8 System ROM SystemVars 0.12
  • 9 System ROM FPEmulator 4.18
  • 10 System ROM SharedCLibrary 5.61
  • 11 System ROM UnSqueezeAIF 0.18
  • 12 System ROM AppPatcher 0.21
  • 13 System ROM DiagnosticDump 0.15
  • 14 System ROM CFrontDemangler 0.02
  • 15 System ROM ReadLine 0.06
  • 16 System ROM CLIV 0.20
  • 17 System ROM VideoTTX 0.06
  • 18 System ROM VideoSW 0.23
  • 19 System ROM VideoHWVIDC 0.49
  • 20 System ROM VideoGuard 0.01
  • 21 System ROM OSCommands 0.26
  • 22 System ROM FSCommands 0.09
  • 23 System ROM ModuleCommands 0.16
  • 24 System ROM ARM 0.20
  • 25 System ROM BufferManager 0.30
  • 26 System ROM Debugger 1.68
  • 27 System ROM RTC 0.04
  • 28 System ROM DMAManager 0.20
  • 29 System ROM IIC 0.20
  • 30 System ROM RTCAdjust 0.13
  • 31 System ROM RTCHW 0.05
  • 32 System ROM NVRAMHW 0.02
  • 33 System ROM OSPointer 0.26
  • 34 System ROM Hourglass 2.19
  • 35 System ROM FileSwitch 2.81
  • 36 System ROM Squash 0.31
  • 37 System ROM ResourceFS 0.24
  • 38 System ROM ResourceFiler 0.21
  • 39 System ROM Messages 0.95
  • 40 System ROM MessageTrans 0.39
  • 41 System ROM FileTypes 0.14
  • 42 System ROM FSLock 1.21
  • 43 System ROM TerritoryManager 0.33
  • 44 System ROM UK 0.28
  • 45 System ROM International 1.34
  • 46 System ROM SerialDeviceDriver 0.43
  • 47 System ROM SerialDeviceSupport 0.26
  • 48 System ROM Mouse 0.16
  • 49 System ROM SerialMouse 0.09
  • 50 System ROM PS2Driver 0.39
  • 51 System ROM InternationalKeyboard 0.46
  • 52 System ROM KeyInput 0.03
  • 53 System ROM FileCore 3.59
  • 54 System ROM ADFS 3.38
  • 55 System ROM ADFSFiler 1.03
  • 56 System ROM RamFS 2.27
  • 57 System ROM RAMFSFiler 0.49
  • 58 System ROM CDFS 2.69
  • 59 System ROM CDFSFiler 4.21
  • 60 System ROM DOSFS 0.78
  • 61 System ROM SystemDevices 1.29
  • 62 System ROM PipeFS 0.29
  • 63 System ROM AIF 0.17
  • 64 System ROM TransientUtility 0.10
  • 65 System ROM BASIC 1.36
  • 66 System ROM BASIC64 1.36
  • 67 System ROM BASICTrans 2.04
  • 68 System ROM Obey 0.43
  • 69 System ROM DDEUtils 1.74
  • 70 System ROM PathUtils 0.09
  • 71 System ROM SysLog 0.59
  • 72 System ROM BootCommands 1.25
  • 73 System ROM GameModes 2.03
  • 74 System ROM ScreenModes 0.30
  • 75 System ROM ScreenBlanker 2.35
  • 76 System ROM ScrSaver 0.18
  • 77 System ROM SoundDMA 1.66
  • 78 System ROM SoundChannels 1.39
  • 79 System ROM WaveSynth 1.20
  • 80 System ROM StringLib 1.18
  • 81 System ROM Percussion 1.16
  • 82 System ROM SoundScheduler 1.28
  • 83 System ROM SharedSound 1.10
  • 84 System ROM DeviceFS 0.46
  • 85 System ROM ParallelDeviceDriver 0.55
  • 86 System ROM ColourTrans 1.90
  • 87 System ROM Draw 1.21
  • 88 System ROM SpriteExtend 1.79
  • 89 System ROM ColourMap 0.11
  • 90 System ROM BlendTable 0.07
  • 91 System ROM InverseTable 0.15
  • 92 System ROM DrawFile 1.64
  • 93 System ROM FontMap 0.03
  • 94 System ROM ZLib 0.37
  • 95 System ROM PNG 0.25
  • 96 System ROM ROMFonts 0.27
  • 97 System ROM FontManager 3.59
  • 98 System ROM SuperSample 0.12
  • 99 System ROM ImageFileConvert 0.18
  • 100 System ROM CompressJPEG 0.29
  • 101 System ROM ConvertPNG 0.38
  • 102 System ROM ConvertBMP 0.15
  • 103 System ROM ConvertGIF 0.16
  • 104 System ROM ConvertICO 0.09
  • 105 System ROM ConvertPNM 0.06
  • 106 System ROM ConvertSprite 0.12
  • 107 System ROM ConvertSun 0.08
  • 108 System ROM ConvertXBM 0.08
  • 109 System ROM ConvertPCX 0.04
  • 110 System ROM ConvertClear 0.07
  • 111 System ROM ImageFileRender 0.34
  • 112 System ROM ImageFileRender_Artworks0.12
  • 113 System ROM Zipper 0.26
  • 114 System ROM PrinterBuffer 0.02
  • 115 System ROM WindowManager 6.39
  • 116 System ROM FilterManager 0.30
  • 117 System ROM RedrawManager 0.15
  • 118 System ROM Desktop 2.74
  • 119 System ROM IconBorderPlain 0.02
  • 120 System ROM IconBorderRound 0.27
  • 121 System ROM TaskManager 1.86
  • 122 System ROM ShellCLI 0.36
  • 123 System ROM DisplayManager 0.53
  • 124 System ROM DragASprite 0.24
  • 125 System ROM DragAnObject 0.09
  • 126 System ROM Filer 3.12
  • 127 System ROM FilerSWIs 0.06
  • 128 System ROM Filer_Action 0.54
  • 129 System ROM Free 0.47
  • 130 System ROM Pinboard 1.06
  • 131 System ROM ClipboardHolder 0.15
  • 132 System ROM WindowScroll 0.11
  • 133 System ROM ColourPicker 0.50
  • 134 System ROM TaskWindow 0.99
  • 135 System ROM Econet 5.80
  • 136 System ROM NetI 6.35
  • 137 System ROM NetFS 5.94
  • 138 System ROM NetStatus 2.10
  • 139 System ROM NetFiler 0.87
  • 140 System ROM NetPrint 5.55
  • 141 System ROM MbufManager 0.35
  • 142 System ROM Internet 5.69
  • 143 System ROM InetServices 2.08
  • 144 System ROM Resolver 1.03
  • 145 System ROM MimeMap 0.30
  • 146 System ROM InternetTime 0.06
  • 147 System ROM InetConfigure 0.14
  • 148 System ROM DHCPClient 0.41
  • 149 System ROM ZeroConf 0.15
  • 150 System ROM RouterDiscovery 0.06
  • 151 System ROM Freeway 0.58
  • 152 System ROM FreewayHosts 0.09
  • 153 System ROM ShareFS 4.06
  • 154 System ROM LanManFS 2.09
  • 155 System ROM AppleTalk 1.12
  • 156 System ROM TinyStubs 0.17
  • 157 System ROM Toolbox 1.87
  • 158 System ROM Window 2.09
  • 159 System ROM Menu 0.51
  • 160 System ROM Iconbar 1.26
  • 161 System ROM ColourDbox 0.32
  • 162 System ROM ColourMenu 0.32
  • 163 System ROM DCS 1.22
  • 164 System ROM FileInfo 0.27
  • 165 System ROM FontDbox 0.32
  • 166 System ROM FontMenu 0.33
  • 167 System ROM PrintDbox 0.30
  • 168 System ROM ProgInfo 0.25
  • 169 System ROM SaveAs 0.29
  • 170 System ROM Scale 0.26
  • 171 System ROM GDivider 0.04
  • 172 System ROM ToolAction 0.29
  • 173 System ROM TextGadgets 0.94
  • 174 System ROM ImageFileGadget 0.29
  • 175 System ROM CDFSResources 2.37
  • 176 System ROM CDFSdriver 2.37
  • 177 System ROM CDFSSoftATAPI 1.55
  • 178 System ROM CDFSSoftChinonEESOX 1.02
  • 179 System ROM CDFSSoftHitachiEESOX 1.02
  • 180 System ROM CDFSSoftPhilipsEESOX 1.03
  • 181 System ROM CDFSSoftSonyEESOX 1.09
  • 182 System ROM CDFSSoftToshibaEESOX 1.03
  • 183 System ROM LegacyBBC 0.10
  • 184 System ROM LegacyScreen 0.04
  • 185 System ROM BBCEconet 0.19
  • 186 System ROM SpriteUtils 1.21
  • 187 System ROM OwnerBanner 4.15
  • 188 System ROM IRQUtils 2.54
  • 189 System ROM WindowUtils 2.52
  • 190 System ROM CallASWI 0.03
  • 191 System ROM BootNet 1.04
  • 192 System ROM AUNMsgs 0.15
  • 193 System ROM !Alarm 2.78
  • 194 System ROM LibraryHelp 0.12
  • 1 System ROM UtilityModule 6.06
  • 2 System ROM IRQ 0.11
  • 3 System ROM TimerManager 0.04
  • 4 System ROM Podule 1.61
  • 5 System ROM Conversions 0.16
  • 6 System ROM OSSWIs 0.19
  • 7 System ROM EvaluateExpression 0.15
  • 8 System ROM SystemVars 0.14
  • 9 System ROM FPEmulator 4.19
  • 10 System ROM SharedCLibrary 5.63
  • 11 System ROM UnSqueezeAIF 0.19
  • 12 System ROM AppPatcher 0.22
  • 13 System ROM DiagnosticDump 0.17
  • 14 System ROM CFrontDemangler 0.02
  • 15 System ROM ReadLine 0.07
  • 16 System ROM CLIV 0.22
  • 17 System ROM VideoTTX 0.08
  • 18 System ROM VideoSW 0.25
  • 19 System ROM VideoHWVIDC 0.51
  • 20 System ROM VideoHWVF 0.55
  • 21 System ROM VideoGuard 0.03
  • 22 System ROM VideoServices 0.29
  • 23 System ROM OSCommands 0.27
  • 24 System ROM FSCommands 0.10
  • 25 System ROM ModuleCommands 0.17
  • 26 System ROM ARM 0.21
  • 27 System ROM BufferManager 0.31
  • 28 System ROM Debugger 1.69
  • 29 System ROM RTC 0.05
  • 30 System ROM DMAManager 0.21
  • 31 System ROM IIC 0.21
  • 32 System ROM RTCAdjust 0.14
  • 33 System ROM RTCHW 0.07
  • 34 System ROM NVRAMHW 0.04
  • 35 System ROM OSPointer 0.27
  • 36 System ROM Hourglass 2.20
  • 37 System ROM FileSwitch 2.82
  • 38 System ROM Squash 0.32
  • 39 System ROM ResourceFS 0.25
  • 40 System ROM ResourceFiler 0.22
  • 41 System ROM Messages 0.96
  • 42 System ROM MessageTrans 0.40
  • 43 System ROM FileTypes 0.15
  • 44 System ROM FSLock 1.22
  • 45 System ROM TerritoryManager 0.34
  • 46 System ROM UK 0.29
  • 47 System ROM International 1.35
  • 48 System ROM SerialDeviceDriver 0.44
  • 49 System ROM SerialDeviceSupport 0.27
  • 50 System ROM Mouse 0.19
  • 51 System ROM SerialMouse 0.10
  • 52 System ROM PS2Driver 0.40
  • 53 System ROM InternationalKeyboard 0.47
  • 54 System ROM KeyInput 0.04
  • 55 System ROM FileCore 3.60
  • 56 System ROM ADFS 3.40
  • 57 System ROM ADFSFiler 1.04
  • 58 System ROM RamFS 2.28
  • 59 System ROM RAMFSFiler 0.50
  • 60 System ROM CDFS 2.70
  • 61 System ROM CDFSFiler 4.22
  • 62 System ROM DOSFS 0.79
  • 63 System ROM SystemDevices 1.30
  • 64 System ROM PipeFS 0.31
  • 65 System ROM AIF 0.19
  • 66 System ROM TransientUtility 0.12
  • 67 System ROM BASIC 1.37
  • 68 System ROM BASIC64 1.37
  • 69 System ROM BASICTrans 2.05
  • 70 System ROM Obey 0.44
  • 71 System ROM DDEUtils 1.75
  • 72 System ROM PathUtils 0.10
  • 73 System ROM SysLog 0.61
  • 74 System ROM BootCommands 1.26
  • 75 System ROM GameModes 2.04
  • 76 System ROM ScreenModes 0.31
  • 77 System ROM ScreenBlanker 2.36
  • 78 System ROM ScrSaver 0.19
  • 79 System ROM SoundDMA 1.67
  • 80 System ROM SoundChannels 1.40
  • 81 System ROM WaveSynth 1.21
  • 82 System ROM StringLib 1.19
  • 83 System ROM Percussion 1.17
  • 84 System ROM SoundScheduler 1.29
  • 85 System ROM SharedSound 1.11
  • 86 System ROM DeviceFS 0.48
  • 87 System ROM ParallelDeviceDriver 0.56
  • 88 System ROM ColourTrans 1.91
  • 89 System ROM Draw 1.22
  • 90 System ROM SpriteExtend 1.83
  • 91 System ROM ColourMap 0.12
  • 92 System ROM BlendTable 0.08
  • 93 System ROM InverseTable 0.16
  • 94 System ROM DrawFile 1.66
  • 95 System ROM FontMap 0.04
  • 96 System ROM ZLib 0.38
  • 97 System ROM PNG 0.26
  • 98 System ROM ROMFonts 0.29
  • 99 System ROM FontManager 3.60
  • 100 System ROM SuperSample 0.13
  • 101 System ROM ImageFileConvert 0.19
  • 102 System ROM CompressJPEG 0.31
  • 103 System ROM ConvertPNG 0.39
  • 104 System ROM ConvertBMP 0.16
  • 105 System ROM ConvertGIF 0.17
  • 106 System ROM ConvertICO 0.11
  • 107 System ROM ConvertPNM 0.08
  • 108 System ROM ConvertSprite 0.13
  • 109 System ROM ConvertSun 0.10
  • 110 System ROM ConvertXBM 0.09
  • 111 System ROM ConvertPCX 0.05
  • 112 System ROM ConvertClear 0.08
  • 113 System ROM ImageFileRender 0.36
  • 114 System ROM ImageFileRender_Artworks0.18
  • 115 System ROM Zipper 0.27
  • 116 System ROM PrinterBuffer 0.03
  • 117 System ROM PDriver 3.35
  • 118 System ROM PDriverDP 4.68
  • 119 System ROM PDumperSupport 1.29
  • 120 System ROM PDumper24 1.28
  • 121 System ROM PDumperCX 1.28
  • 122 System ROM PDumperDM 1.29
  • 123 System ROM PDumperE2 1.28
  • 124 System ROM PDumperIW 1.28
  • 125 System ROM PDumperLJ 1.28
  • 126 System ROM PDriverPS 4.69
  • 127 System ROM MakePSFont 1.12
  • 128 System ROM RemotePrinterSupport 1.08
  • 129 System ROM RemotePrinterMessages 1.04
  • 130 System ROM WindowManager 6.43
  • 131 System ROM FilterManager 0.31
  • 132 System ROM RedrawManager 0.16
  • 133 System ROM Desktop 2.77
  • 134 System ROM IconBorderPlain 0.03
  • 135 System ROM IconBorderRound 0.28
  • 136 System ROM TaskManager 1.87
  • 137 System ROM ShellCLI 0.37
  • 138 System ROM DisplayManager 0.56
  • 139 System ROM DragASprite 0.25
  • 140 System ROM DragAnObject 0.10
  • 141 System ROM Filer 3.16
  • 142 System ROM FilerSWIs 0.08
  • 143 System ROM Filer_Action 0.55
  • 144 System ROM Free 0.48
  • 145 System ROM Pinboard 1.08
  • 146 System ROM ClipboardHolder 0.17
  • 147 System ROM WindowScroll 0.12
  • 148 System ROM ColourPicker 0.52
  • 149 System ROM TaskWindow 1.02
  • 150 System ROM Econet 5.81
  • 151 System ROM NetI 6.36
  • 152 System ROM NetFS 5.95
  • 153 System ROM NetStatus 2.11
  • 154 System ROM NetFiler 0.88
  • 155 System ROM NetPrint 5.56
  • 156 System ROM MbufManager 0.36
  • 157 System ROM Internet 5.70
  • 158 System ROM InetServices 2.09
  • 159 System ROM Resolver 1.04
  • 160 System ROM MimeMap 0.31
  • 161 System ROM InternetTime 0.07
  • 162 System ROM InetConfigure 0.15
  • 163 System ROM DHCPClient 0.42
  • 164 System ROM ZeroConf 0.16
  • 165 System ROM RouterDiscovery 0.07
  • 166 System ROM Freeway 0.60
  • 167 System ROM FreewayHosts 0.11
  • 168 System ROM ShareFS 4.08
  • 169 System ROM LanManFS 2.10
  • 170 System ROM AppleTalk 1.13
  • 171 System ROM TinyStubs 0.18
  • 172 System ROM Toolbox 1.87
  • 173 System ROM Window 2.13
  • 174 System ROM Menu 0.53
  • 175 System ROM Iconbar 1.27
  • 176 System ROM ColourDbox 0.35
  • 177 System ROM ColourMenu 0.34
  • 178 System ROM DCS 1.24
  • 179 System ROM FileInfo 0.29
  • 180 System ROM FontDbox 0.34
  • 181 System ROM FontMenu 0.35
  • 182 System ROM PrintDbox 0.33
  • 183 System ROM ProgInfo 0.27
  • 184 System ROM SaveAs 0.31
  • 185 System ROM Scale 0.28
  • 186 System ROM GDivider 0.04
  • 187 System ROM ToolAction 0.30
  • 188 System ROM TextGadgets 0.95
  • 189 System ROM ImageFileGadget 0.30
  • 190 System ROM CDFSResources 2.37
  • 191 System ROM CDFSdriver 2.38
  • 192 System ROM CDFSSoftATAPI 1.56
  • 193 System ROM CDFSSoftChinonEESOX 1.02
  • 194 System ROM CDFSSoftHitachiEESOX 1.02
  • 195 System ROM CDFSSoftPhilipsEESOX 1.03
  • 196 System ROM CDFSSoftSonyEESOX 1.09
  • 197 System ROM CDFSSoftToshibaEESOX 1.03
  • 198 System ROM LegacyBBC 0.11
  • 199 System ROM LegacyScreen 0.06
  • 200 System ROM BBCEconet 0.21
  • 201 System ROM SpriteUtils 1.22
  • 202 System ROM OwnerBanner 4.16
  • 203 System ROM IRQUtils 2.55
  • 204 System ROM WindowUtils 2.53
  • 205 System ROM CallASWI 0.05
  • 206 System ROM BootNet 1.05
  • 207 System ROM AUNMsgs 0.16
  • 208 System ROM !Alarm 2.79
  • 209 System ROM LibraryHelp 0.13  
  •  


    System speed

    The speed of the operating system as a whole is an area which is always focused on during development of RISC OS. Whilst it is always desirable to improve the speed with each iteration of the system, this is not always possible because of hardware, algorithmic and practical reasons. RISC OS 4, in particular, introduced many efficiency improvements which had a noticeably beneficial effect on the system as a whole.

    Versions of the operating system after this (up to and including RISC OS 6) have added other speed optimisations in other places as appropriate. As an example some of the speed improvements in RISC OS 6 are:

    • SWI dispatch is no longer placed in RAM, but lives within the ROM itself. As the ROM is softloaded into RAM, this presents no speed penalty, but has allowed other optimisations to be used.
    • Screen memory is now cached at the discretion of the video driver. The current video drivers (VIDC, SM501, ViewFinder) use this feature to improve performance.
    • Video abstraction interfaces mean that on accelerated hardware, such as ViewFinder and the SM501, hardware features may be used to improve the speed.
    • Some of the software rendering functions (now provided by VideoSW) have been improved.
    • Although *-command dispatch is now handled entirely external to the Kernel, many of the speed improvements have been retained. The increase in speed previously provided by the command lookups has been improved.
    • Dynamic area memory allocation speed has been significantly improved, which has benefits for users who regularly change the size of their memory areas.
    • Heap dynamic areas (a feature introduced with Select 1) are far more efficient for large and regular allocations.
    • SWI name to number translation is significantly faster, using an improved algorithm to reject non-matching cases. This should primarily benefit BASIC applications.
    • Within the desktop, rendering of special icons is now provided through FilterManager. However, because button images are cached, this change should only be noticeable for the first rendering of that size and style of icon.
    • The display manager now selects true-colour 256 colour modes when a 256 colour mode is selected from its menus. Previously only the VIDC1-compatible modes would be selected. This change has been applied to ColourTrans, and results in an equivalent speed for processing palettes to that of the old style modes, whilst at the same time benefiting true-colour paletted sprites.
    • ColourTrans now provides optimised support for a monotonic 256 grey scale palette (as used by the desktop 'Grey' mode selector). This allows grey scale colour translations to be performed faster than even the optimised old-palette 256 colour palettes.

    Video

    The management of video within RISC OS 6 has changed significantly. Most graphics primitives may be accelerated by hardware, and many operations have been changed slightly because of this. The Video Drivers can now support multiple display devices. For example a current machine may have both the standard VIDC based Video Display and a Viewfinder Graphics card active though only one can be active at a time. Work is being done to support multiple graphics cards and to support features not previously seen on RISC OS 4, such as Screen Rotation to support Portrait Mode displays.

    Memory management

    With the introduction of multiple display drivers, the concept of a single 'screen memory' area is obsolete. This means that the dynamic area, previously allocated to the screen memory, is no longer used. In order that clients which merely check this value do not fail however, the area is provided by the LegacyScreen module. The content of this area and its size have no relationship to the video system and are merely provided to ensure that applications which attempt to check video size by using this area do not fail immediately.

    Screen banks

    Because memory management for video drivers may not be related to the total memory available to the video drivers it is not sufficient to read the total size of the video memory and divide by the screen size to obtain the number of screen banks. New OS_ScreenMode reason codes have been created to ensure that these operations can be performed reliably within the constraints of the driver.

    Shadowed modes

    Shadowed modes are no longer supported by RISC OS 6. These modes are numbered 128-255 and would implicitly select the second bank of screen memory. Since the days of Arthur, these modes were of much less use. Attempting to select shadowed modes may result in undefined behaviour.

    Hardware acceleration

    Hardware acceleration is provided by the display driver transparently from all user operations. When hardware acceleration is not available, software equivalent functions will be available.

    Screen mode limitations

    In order to ensure that the system can be simplified certain features have been dropped from screen modes. The shadowed mode selection has already been mentioned. In addition, modes which have different BPP and BPC values are no longer supported. This means that modes 2, 4, 5 and 10 are no longer available. This should affect very few applications as the vast majority will have been updated to be mode independent already.

    Gap mode support is now at the discretion of the video driver. This means that modes 3, 6, 7, 11 and 14 may not appear the same on different hardware.

    Mode 23 was defined in order to support monitors which were much higher resolution than the standard VGA monitors of the time. However, technology has rendered such systems obsolete. In particular, this mode used 'double height characters'. These are no longer supported and mode 23 may revert to being a standard 1 BPP mode with 8x8 pixel characters.

    In addition, modes may be limited in the number of colours that may be displayed. Usually this affects modes with 16 or fewer colours as these are not supported by some modern graphics hardware.

    Teletext mode

    Teletext modes are no longer implemented as a 16 colour, low resolution mode. Any resolution and number of colours may now be used for a teletext mode, although obviously with less than 16 colours its usefulness will be limited. By default the resolution and colours selected by mode 7 is now equivalent to that of mode 28. Alternative teletext resolutions may be used, however. New Mode Strings may be entered into the Mode display in order to select a Teletext Mode.

    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.

    32 bit Shared C library

    Components sourced from other companies, outside the control of RISCOS Ltd, are not supported by RISCOS Ltd. Where possible, compatibility will be maintained but if things fail with externally sourced components then this is not an issue that RISCOS Ltd will be able to address unless it has been caused by a change to the system which can be avoided. In particular, the use of non-RISCOS Ltd sourced ROM components (SharedCLibrary, FPEmulator, Toolbox modules, etc) is not guaranteed and should not be relied upon. It is strongly recommended that such components should not be employed on users' systems, once you move to the final Select 4 release.

    CallASWI

    The CallASWI module was introduced in RISC OS 3.7 to provide a mechanism by which arbitrary numbered SWIs can be called without requiring dynamic code. The module is redundant on RISC OS 6 as the facilities the soft-load versions provide are now a standard part of the operating system. The CallASWI module is provided to ensure that applications ensuring the module do not attempt to load other versions.

    Boot Up

    RISC OS 6 now offers dual loading banners at startup. A standard RISC OS 6 banner, and a different banner which is displayed if booting fails to complete correctly. This may help identify a commonly reported source of problems.

    OwnerBanner

    For users who would like to customise their Boot sequence RISC OS 6 now provides support for new start up banners to be specified by the user. The startup System now recognises, ARM 610, ARM 710, ARM 7500, ARM 7500FE, StrongARM, Kinetic and ARM 920 processors, and will identify the Processor present during the Boot Sequence.

    Display Tool

    When selecting 256 colour screen mode this really means 256 colours - not 64 colours x 4 as previously. Display Manager also has an extra option to select the display device.

    !Configure System

    Opening !Configure (by double clicking on !Boot) now auto opens the Boot configuration window, instead of just opening the Configuration Window. There is also a new set of preset setup options for the Tool order configuration tool.

    Command Line

    Pressing F12 now displays a message "to exit command line shell, press return on an empty line"

    Diagnostics Dump

    The Diagnostic Dump system is a new feature which utilises the APCS backtrace features of the SharedClibrary to provide diagnostic functions for Shared C library and other external implementations. Full documentation is provided on the RISC OS 6 Web Site.

    Networking

    The Internet stack and related components have undergone a number of changes in order to address problems and provide new features to developers and, ultimately, users. The primary improvements have been the addition of new modules for particular Internet facilities - RouterDiscovery, InternetTime and ResolverMDNS. Internet now supports multicast filtering for drivers.

    Resolver has been updated to address significant issues with its implementation of expiry and now provides DCI4 statistics. The Network Configuration Tool has new options for Auto-Configuration if Static, AUN, or Dymanic are selected. DNS now has an Auto Detect Option and Gateway has an Auto Detect Option. These are especially useful for use in networks where the DNS entries and Gateway Address can be detected.

    ZeroConf
    which implements automatic network configuration using the Link-Local addressing protocol.

    RouterDiscovery
    which supports automatic gateway discovery using the ICMP router discoveryprotocol.

    FreewayHosts
    which provides distribution of host names over Freeway, which was previously an internal function of the Freeway module.

    Address collision detection
    If another device with an identical IP address is detected on the network the local network interface will be disabled.

    Aliased Interfaces
    It is now possible to set up aliased interfaces to allow one physical Ethernet adaptor to appear to have two or more logical addresses. e.g *ifconfig eh0:1 106.29.12.42. This type of setup allows a machine to sit on two different subnets.

    Graphics

    There have been a number of miscellaneous Graphics updates notably:

    • SpriteExtend is now capable of rendering CMYK and YCbCrK JPEGs.
    • JPEG compression, decompression and transcoding functions provided by the CompressJPEG module, are now part of the ROM rather than being disc based.

    Windows

    The WindowManager has been updated significantly. From this work, it is now possible for button icons to be 'highlighted' when the mouse is over them. This is not yet used by the built in borders.

    IconBorderPlain
    Re-implementation of basic button style.

    IconBorderRound
    Updated button style, allowing round buttons and other effects.

    Filetypes Module

    This is a stub module which sets up a many of the common filetypes and their execution formats on startup. Previously this was part of FileSwitch. Filer uses Filer$Types to set the types that can be used (use hex values, comma separated, eg 'fff,faf').

    Applications

    The Disc Based applications have been updated.

    !Paint

    There is a separate user document covering !Paint in the RISCOS6.Documents directory.

    !Draw

    There is a separate user document covering !Draw in the RISCOS6.Documents directory.

    Image file rendering system

    There are two new renderers:

    • ConvertGIF
    • ConvertWMF

    The full set is now:

    • ConvertICO 0.04 Windows .ico files
    • ConvertClear 0.05 RISC OS Clear files
    • ConvertPCX 0.03 Windows .pcx files
    • ConvertBMP 0.11 Windows .bmp files
    • ConvertPNM 0.06 Windows .pnm, .pbm and .pgm files
    • ImageFileRender 0.33 RISC OS Draw files
    • ConvertWMF 0.00 Windows .wmf files
    • ConvertPNG 0.37 Windows .png files
    • ConvertXBM 0.08 Windows .xbm files
    • ImageFileRender 0.33 RISC OS Tablemate file
    • ImageFileRender 0.33 JPEG
    • ImageFileRender 0.33 RISC OS Poster file
    • ImageFileRender 0.33 RISC OS Equasor file
    • IFR Artworks 0.12 RISC OS ArtWorks file
    • ConvertSun 0.08 Windows .ras SunRaster file
    • ImageFileRender 0.33 RISC OS Sprite

    Changes since previous versions:

    • ConvertBMP can now take CMYK sprites and convert to BMPs.
    • ConvertICO can now create ICOs from multi-sprite files and CMYK sprites.
    • Sprites created from 16 colour icons are now 16 colour.
    • ConvertPNG can now convert CMYK sprites to PNGs.
    • Image Viewer now has support for exporting the viewed file in whatever types are known to the convertor.

    Executable Checking

    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. The TransientUtility module provides support for transient utilities, similar to that for AIF-headered absolute files, primarily to enforce the new headered utility file format. The 26bit RISC OS 6 Select4i2 has this checking enabled by default.

    Toolbox

    Window toolbox module now allows an expanded range of gadget operations in order to provide greater flexibility for the range of gadgets which can be provided - in particular gadget timers, gadget redraw events and the ability to add and remove icons from a gadget during its lifetime. Changes include:

    • All toolbox modules should now work correctly if ResourceFS is restarted.
    • TextGadget has new features to support new text area background sprite handling.
    • New ColourSwatch gadget.
    • Window provides vertical labels.
    • Window has much improved support for Fonts in gadgets.
    • ResEd has been updated to support plugins for its gadgets, allowing it to be extended to use other gadgets as they become available. This also includes the full support for the ColourSwatch gadget.
    • TextGadget updated with a few changes: Loading text-like files, deletes temporary files, improved selection handling and better redraw.

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

    • GDivider - A semantic 'divider' gadget.
    • ToolAction - Advanced version of the regular 'Action' buttons.
    • TextGadgets - Text-based gadgets - scrolling lists and text input area.
    • ImageFileGadget - Gadget for rendering ImageFiles within a window.

    Keyboard and Mice

    In addition to the standard 3 button mice, up to 8 buttons are supported by the OSPointer module. 5 button mice are common and the PS 2 driver has been updated to support such devices. This includes support for Intellimouse and Intellimouse Pro.

    Multimedia Keyboard features

    International Keyboard now generates different codes for left and right Meta keys. This is in order to provide greater compatibilty with the RISC OS 5 change to the design. Since RISC OS 4 a number of additional keys have been returned by the keyboard drivers, though it is up to other applications to utilise these keys. These keys are:

    • Windows left
    • Windows right
    • Menu
    • No convert
    • Convert
    • Kana
    • Yen/Bar
    • \ _
    • ASPI Power
    • ASPI Sleep
    • ASPI Wake
    • Scan next track
    • Scan previous track
    • Stop
    • Play/pause
    • Mute
    • Vol+
    • Vol-
    • Media select
    • Mail
    • Calculator
    • My computer
    • Browser search
    • Browser home
    • Browser back
    • Browser forward
    • Browser stop
    • Browser refresh
    • Browser favourites

    Keyboard debounce

    Before key presses are inserted into the keyboard buffer, a short delay (2cs) is generated. This allows key debounce to be detected and ignored. However, certain input devices are not susceptible to such debounces and this additional delay can be ignored. This delay can be removed by passing a special value in R2 when the relevant keyboard driver is present.

    BASIC

    BASIC now assembles LD/ST 'T' properly.The floating point version of the BASIC library -BASIC64 , is now part of the ROM, rather than being disc based.

    RAMFS

    RamFS now allows up to 256MB to be allocated.

    MiniUnzip

    MiniUnzip and MiniZip now support -u option for unix filenames.

    Recyclone

    Recyclone has been updated to monitor the bin's state using a module rather than repeatedly checking on null polls. This improves system performance.

    Task Display from task manager

    Memory allocations are now in K up to 16128K and then become M. The Task Manager has new option for Blue Task bars. These indicate allocated space, rather than memory usage.

    Rommodule

    Listings now align properly e.g.

     1 System ROM UtilityModule 6.02 Active
     2 System ROM IRQ 0.06 Active
     3 System ROM TimerManager 0.02 Active
     4 System ROM Podule 1.60 Active
     5 System ROM Conversions 0.15 Active
     6 System ROM OSSWIs 0.18 Active
     7 System ROM EvaluateExpression 0.14 Active
     8 System ROM SystemVars 0.12 Active
     9 System ROM FPEmulator 4.18 Active
    10 System ROM SharedCLibrary 5.61 Active
    11 System ROM UnSqueezeAIF 0.18 Active
    

    Redrawmanager

    This provides managed filter based redraw functions, allowing non-application components (for example Toolbox) to perform rendering within application windows. The RedrawManager module provides a mechanism for drawing into a window as part of the Window Manager's redraw process. This allows clients to transparently implement complex rendering without requiring the application to be updated to explicitly call the rendering routines as part of their redraw loop. Complex gadget redraws are made much simpler through the use of the RedrawManager. With RedrawManager, Gadgets may redraw their content without any application-specific support.

    Library Help

    Extends the *Help system to provide additional information for library commands and aliases.

    ScreenSavers

    ScrSaver - Provides management of desktop screen savers.

    System Initialisation

    During system initialisation the OS goes through a number of phases. During these phases there may be indications of the progress for diagnostic purposes. The sequence of colours as displayed on VIDC systems for RISC OS 6 includes a number of new colours. Other systems may produce different colours and due to continuous development, colours may be changed in future versions. On this version the Grey colour of the desktop initialisation stage gives the appearance of a longer delay that previous before the desktop is displayed.

    Reset Types

    Under RISC OS 3.7 and earlier a number of special types of reset were available to the user. Each of these reset types was triggered by holding a key during a reset.

    With RISC OS 6.02 and later, the only operations of these which remain are the Delete, Shift and keypad-*. In order to support multiple displays, it is possible to configure the display which the system will start up using. This can be a problem if the display configured is no longer present (for example, because the podule has been removed). If the 0 key (not the keypad-0) is held during startup, the display will (for this session) be forced to display number 0.

    VideoGuard

    The VideoGuard module provides protection against the user being left with no display due to an absent display driver. In normal use, the system is actively displaying graphics on a display that is currently present. Under some circumstances, however, it is possible for the system to be using a display device which is absent. The two circumstances under which this can occur are :

    System startup
    If the system has been configured to use a display device but no such device is yet present, there is no useful display to use. This is the case during the early system initialisation before the display driver has initialised. Such cases will not usually be visible to users. More commonly, however, the system may be configured to use device 1, which is present on an expansion card but the card has been removed. Usually this can be over-ridden by holding the '0' key during system startup (see the ResetTypes document for more details).

    Device driver removal
    If the display driver for the current display is killed then the display no longer exists. This is uncommon, but may occur during testing. Future device drivers may be dynamic and thus may provide devices which come and go as necessary. When the current display driver is removed, or not present during the system startup, the graphics system takes no additional action except to mark the frame buffer as absent. The address of the screen will be read as 0. Graphics drivers should check for this case. The VideoGuard module will recover from these circumstances by selecting the native (display 0) device.

    Top of page
     

     
     

    New Programmers details

    New OS modules

    Since RISC OS 3.6 was released, many new features have been added to RISC
    OS. These features are, obviously, not documented within PRM 5a, which only
    documents up to RISC OS 3.6. This document lists the modules supplied as
    part of the Operating System, a short summary of their function, and an
    indication of the location of documentation.

    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.
    
      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, document 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 document ReadLine.
    
      CLIV
         *-command interpreter.
         No specific documentation; see PRM 1-929.
    
      VideoTTX
         Software implementation of Teletext mode.
         See document Teletext.
    
      VideoSW
         Software implementation of most text and graphics primitives.
         See document Graphics.MultiDrivers.
    
      VideoHWVIDC
         Hardware implementation of the video system for VIDC.
         See document 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, document RTC, RTCV, OS_Word15.
    
      RTCHW
         Hardware access for the Real Time clock, for RiscPC, A7000, RiscStation
         and A9 systems.
         See document RTCV.
    
      OSPointer
         High level pointer functions.
         See PRM 5a-242, document 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, document NVRAMV.
    
      IRQ
         Interrupt dispatch management.
         See PRM 1-121, document IRQHandler.
    
      Timer
         Hardware timer management.
         See document Timer.
    Top of page

    Graphics components

    The increased support for non-native graphics formats and the extended
    functions provided by the existing systems have required that a number of
    new modules be provided. Many of these are described in more detail in the
    GraphicsSystem document and the Graphics.MultiDrivers document.
    
      ColourMap
         Colour translation and remapping.
         See documents ColourMap, ColourMap-DrawFile, Graphics.Sprites.ColourMap.
    
      BlendTable
         Support for transparent blending.
         See document BlendTable.
    
      FontMap
         Non-native font name translation.
         See document FontMap.
    
      PNG
         Library for decoding and encoding of PNG bitmap images.
         See document PNG.
    
      ImageFileConvert
         Generic image file conversion interface, providing ImageFileRender for
         converted files.
         See document ImageFileConvert.
    
      ImageFileRender
         Generic image rendering.
         See document ImageFileRender.
    
      CompressJPEG
         JPEG compression, decompression and transcoding functions, now part of
         the ROM rather than being disc based.
         See PRM 5a-609, document CompressJPEG.
    
      ConvertPNG
         PNG file conversion using ImageFileConvert.
         See document ConvertPNG, ImageFileConvert.
    
      ConvertBMP
         BMP file conversion using ImageFileConvert.
         See document ConvertBMP, ImageFileConvert.
    
      ConvertICO
         Windows .ico file conversion using ImageFileConvert.
         No specific documentation; see document ImageFileConvert.
    
      ConvertPNM
         PNM (PBM, PPM, PGM) file conversion using ImageFileConvert.
         No specific documentation; see document ImageFileConvert.
    
      ConvertSprite
         Sprite file conversion via ImageFileRender, using ImageFileConvert.
         See document ConvertSprite, ImageFileConvert.
    
      ConvertSun
         Sun raster file conversion using ImageFileConvert.
         No specific documentation; see document ImageFileConvert.
    
      ConvertXBM
         X bitmap file conversion using ImageFileConvert.
         No specific documentation; see document ImageFileConvert.
    
      ConvertPCX
         PCX file conversion using ImageFileConvert.
         No specific documentation; see document ImageFileConvert.
    
      ConvertClear
         Translator 'Clear' file conversion using ImageFileConvert.
         No specific documentation; see document ImageFileConvert.
    
      ImageFileRender_Artworks
         Artworks file rendering using ImageFileRender.
         No specific documentation; see ImageFileRender.
    Top of page

    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.
    
      RedrawManager
         Managed, filter based redraw functions, allowing non-application
         components (for example Toolbox) to perform rendering within
         application windows.
         See document RedrawManager.
    
      IconBorderPlain
         Re-implementation of basic button style.
         No specific documentation.
    
      IconBorderRound
         Updated button style, allowing round buttons and other effects.
         General IconBorder development kit and documentation available on
         request.
    
      ClipboardHolder
         Clipboard support functions to aid application developers and used by
         the WindowManager to provide cut-and-paste within writeable icons.
         See document ClipboardHolder.
    
      WindowScroll
         Support for scrolling windows using the alternate pointing device (eg,
         scroll wheel).
         See document WindowScroll.
    
    Top of page

    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.
    
      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.
    Top of page

    Programmers components

      ZLib
         Library for compressing using the ZLib compression method.
         See document ZLib.
    
      Zipper
         Library for reading and creating Zip archives.
         See document Zipper.
    
      DiagnosticDump
         Diagnostic functions for Shared C library and other external
         implementations.
         See document DiagDump.
    
      KeyInput
         Extended keyboard input interfaces.
         See document KeyVExtendedInput.
    
      BASIC64
         Floating point version of the BASIC library, now part of the ROM,
         rather than being disc based.
    
      DDEUtils
         Advanced developer functions such as longer command lines and
         editor 'throwback'.
    
      PathUtils
         System 'path' variable manipulation functions.
    
      SysLog
         Centralised logging.
    
    Top of page

    Network components

    The network components have been enhanced quite considerably since their
    initial release with RISC OS 3.6. The Network directory contains more
    details of the specific functions of the new modules and the enhancements to
    the existing modules.
    
      InetServices
         Translation between service names and numbers.
         No specific documentation.
    
      Resolver
         Translation between host names and addresses.
         See document Resolver.
    
      MimeMap
         Translation between MIME media types, filetypes, file extensions and
         Mac data types.
         See document MimeMap.
    
      InetConfigure
         Management for automatic network configuration on startup.
         See document AutomaticConfiguration.
    
      DHCPClient
         Automatic network configuration using the DHCP protocol.
         See document DHCPClient.
    
      ZeroConf
         Automatic network configuration using the Link-local addressing
         protocol.
         See document ZeroConf.
    
      RouterDiscovery
         Automatic gateway discovery using the ICMP router discovery protocol.
         See document RouterDiscovery.
    
      FreewayHosts
         Distribution of host names over Freeway, previously an internal
         function of the Freeway module.
         See document Networking.Overview.
    
      LanManFS
         Access to Window (and other) filing systems.
    
      AppleTalk
         Access to Apple filing systems.
    
    Top of page

    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 such that they can easily be removed and
    to make maintenance of the core components simpler.
    
      LegacyBBC
         Many of the obsolescent BBC interfaces are provided through this
         module.
         See document 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 in order that components which require the
         area still function.
         See document LegacyScreen.
    
      CallASWI
         As support for StrongARM (split cache) and 32bit systems, the CallASWI
         module was introduced. Its functionality is part of the core operating
         system. This module merely prevents unsuitable versions of the module
         from being used.
         No specific documentation.
    
    Top of page

    Miscellaneous components

    Finally, a few components do not fit easily into any of the above categories
    and are listed here.
    
      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 document LibraryHelp.
    
      FileTypes
         A stub module which sets up a many of the common filetypes and their
         execution formats on startup. Previously this was part of FileSwitch.
    
      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 document ExecFormats.
    
      TransientUtility
         Provides support for transient utilities, similar to that for
         AIF-headered absolute files, primarily to enforce the new headered
         utility file format.
         See document ExecFormats.
    
      ScrSaver
         Provides management of desktop screen savers.
    
      SharedSound
         Support for multiple clients of the 16bit sound system.
    
    This section details the new features of RISC OS 6 for Programmers and End Users.

     


     RISC OS 6 � copyright RISCOS Ltd 2006 - 2008

    Top of page

    Page updated 25/04/08