OSBYTE
From BeebWiki
OSBYTE performs various functions passing and returning up to two bytes of data.
Contents |
[edit]
Specification
| On entry: | |
| A | = function code |
| X | = first parameter |
| Y | = second parameter if A>=&80, ignored and forced to be &00 if A<&80 |
| On exit: | |
| A | = preserved |
| X | If A<&80: X = returned value, X=&FF if unrecognised, Y, Cy undefined |
| XY | If A>=&80: XY = returned value, X=&FF if unrecognised, Cy = returned Carry flag |
[edit]
Calling from BBC BASIC
- Escape is acknowledged with OSBYTE 126
-
=EOF#chcalls OSBYTE 127,ch -
ADVALcalls OSBYTE 128 -
INKEYcalls OSBYTE 129 -
LOAD,SAVE,CHAINcall OSBYTE 130 -
PAGEis initialised with OSBYTE 131 -
HIMEMis initialised with OSBYTE 132 -
MODEcalls OSBYTE 130 then OSBYTE 133 -
POSandVPOScall OSBYTE 134 -
=MODEcalls OSBYTE 135
[edit]
Entry points
- BBC BASIC Entry Address: &FFF4
- 6502 Entry Address: &FFF4, vectors via &020A
- Z80 Entry Address: &FFF4, vectors via &FFF5
- 6809 Entry Address:
- 80x86 Entry Address: INT &4B, vectors via 0000:012C
- 32000 Entry Address: SVC &06
- PDP-11 Entry Address: EMT 2
- ARM Entry Address: SWI &06 "OS_Byte", vector &06
[edit]
Implementations
Any OSBYTE call not recognised by the operating system is passed to sideways ROMs. If no sideways ROM recognises the call, then X is returned set to &FF.
The *FX command calls OSBYTE and generates the
Bad command error if it is not recognised.
Jgharston 06:21, 8 October 2007 (BST)

