OSBYTE

From BeebWiki
Revision as of 23:42, 1 November 2022 by Jgharston (talk | contribs) (.)
Jump to: navigation, search

OSBYTE performs various functions passing and returning up to two bytes of data.

Specification

 6502   Z80   6809   PDP11   80x86   32016   ARM  On entry: On exit:
A A A R0 AL R1 R0 = function code   preserved, but see &83 and &84.
X L X R1 BX R2 R1 = first parameter returned value
Y H Y R2 CX R3 R2 = second parameter if A>&7F, ignored and forced to &00 if A<&80   returned value if A>&7F
Cy Cy Cy Cy Cy Cy Cy returned value if A>&7F

Calling from BBC BASIC

Entry points

  • BBC BASIC Entry Address: &FFF4
  • 6502 Entry Address: &FFF4, vectors via &020A
  • Z80 Entry Address: &FFF4, vectors via &FFF5
  • 6809 Entry Address: &FFF4, vectors via &FFF5
  • 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

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.

See also

Jgharston 16:58, 6 November 2009 (UTC)