Reference library

[Front page] [BBC Mecca] [Links] [PIC micros] [Enviromyths] [The dump] [Email]

On this page

Complete list of Filing System IDs

Each filing system is allocated a unique 8 bit number which is commonly used to refer to it (eg. when selecting it without being at the command line). The number is returned in response to an OSArgs call:
A%=0 : Y%=0 : result%=(USR&FFDA)AND&FFReturns value in result%

Download the complete list of filing system ids

List of allocated OSWord calls

OSWord has a single byte reason code and a word pointing to a block of additional parameters. Not all OSWord reason codes are used (though a few have been reused), if a call is not fully described or missing altogether then this is due to lack of information.

Note that the Tube protocol for OSWord does not permit passing back the A, X, Y, or Status registers. OSWord calls with numbers greater than &7F should contain the number of parameters to send in the first byte of the parameter block and the number of parameters to receive in the second byte of the parameter block, these will be used by the Tube protocol software to correctly transfer the parameter block without it needing to know anything about the reason code.

To call an OSWord a parameter block is built somewhere in memory first. Then an OSWord call is made:

X%=block MOD256 : Y%=block DIV256 : A%=callnumber : CALL&FFF1V set if call unhandled

Download the complete list of oswords

List of allocated OSByte calls

OSByte has a single byte reason code and up to two single byte parameters. Not all OSByte reason codes are used (though a few have been reused), if a call is not fully described or missing altogether then this is due to lack of information.

OSByte calls can be made from the command line (see below) or from within a program by passing the parameters required to the OSByte routine. Note: if param1 or param2 are missed from the command line, then zero will be substituted.

X%=param1 : Y%=param2 : A%=callnumber : CALL&FFF4V set if call unhandled
*FX callnumber,param1,param2None

OSBytes numbered 166 onwards have a read/write action on various important OS variables. In the case of a read action the value returned is not shown at the command line, so reads from the command line are pointless.
They can be used to set/clear/read individual bits as the action is newvalue = (oldvalue AND param2) EOR param1. Hence

Action:Parameters needed:
To readparam1=0 ; param2=255
To writeparam1=newvalue ; param2=0
To alterparam1=mask of bits to set ; param2=mask of bits to discard

Download the first 128 osbytes (&00-&7F)
Download the osbytes 128 to 165 (&80-&A5)
Download the remaining 90 osbytes (&A6-&FF)

Bit level detail of CMOS RAM allocation in the BBC Master

The Master Reference Manual Part 1 in section F.3-3 gives an overview of the use of the limited number of bytes of battery backed CMOS RAM present in the Master 128.

However, it is missing the actual mapping from the corresponding configuration command to the bit in the CMOS, thereby making it necessary for applications writers to deduce this by other means.

Download the Master 128 CMOS byte usage
Download the Master Compact EEPROM byte usage

©2006 SPROW [Updated 19-Nov-2006] | home
Valid HTML 4.01