LegacyBBC module

Introduction and Overview

Since 32bit ARM systems became available one of the main features of RISC OS has been its backwards compatibility with other earlier versions of the operating system and back to its BBC heritage. This principle has been followed through to versions of RISC OS up to Select. One of the ways in which system calls have been deprecated has been to move them from the core of the system to a subsidiary module where they do not affect the main operation.

The LegacyBBC module provides a number of system calls which are no longer supported by the core components of RISC OS. It is expected that modern applications do not require this module to be present.

Technical Details

OS_Byte operations

The following table describes the OS_Byte operations provided by the LegacyBBC module, and describes the modern alternative :

OS_ByteOperationModern alternative
&80Read ADVAL values, mouse position or buffer spaceUse Joystick_Read, OS_Mouse, or Buffer_GetInfo.
&82Read machine high order addressObsolescent.
&83Read high water markObsolescent.
&8BSet file system options (*Opt)Use OS_FSControl 10.
&8FIssue service callUse OS_ServiceCall.
&9CUpdate 6850-compatible serial stateUse OS_SerialOp.
&9DPerform BPUT over TubeUse OS_BPut.
&A0Read BBC-compatible VDU variablesUse OS_ReadVduVariables.

OS_Word operations

The following table describes the OS_Word operations provided by the LegacyBBC module, and describes the modern alternative :

OS_WordOperationModern alternative
&00Read line from input sourceUse OS_ReadLine.
&07Perform SOUND operation.Use Sound_ControlPacked or Sound_Control.
&09Read colour of point from screen.Use OS_ReadPoint.

*Commands

*Commands within RISC OS are conventionally of the form *<command><space><parameters>. However, a small number of commands will function without a space separator. This provides compatibility back to applications written for BBC systems. The core command line processor no longer supports such commands, but to allow them to function as previously, the LegacyBBC module provides an interface to allow commands in this form to be used. To avoid the requirement for the LegacyBBC module, such commands should be issued with a space separating the command name and its parameters.

The following commands are handled by the LegacyBBC module :

CommandMeaning
*FXIssue OS_Byte call.
*KeyProgram function key (sets Key$<number>).
*OptSet filing system operation.
*TVModify monitor positioning and interlace.