Difference between revisions of "OSBYTE"

From BeebWiki
Jump to: navigation, search
m (1 revision)
m (.)
(2 intermediate revisions by one other user not shown)
Line 5: Line 5:
 
==Specification==
 
==Specification==
 
{| cellpadding="0" cellspacing="0"  
 
{| cellpadding="0" cellspacing="0"  
|  6502  ||  Z80  ||  6809  ||  PDP11  ||  80x86  ||  32016  ||  ARM  || align="left" | '''On entry:''' || align="left" | '''On exit:'
+
|  6502  ||  Z80  ||  6809  ||  PDP11  ||  80x86  ||  32016  ||  ARM  || align="left" | '''On entry:''' || align="left" | '''On exit:'''
''
 
 
|- align="center" valign="top"
 
|- align="center" valign="top"
 
| A || A || A || R0 || AL || R1 || R0 || align="left" | = [[OSBYTEs|function code]]   || align="left" | preserved, but see [[OSBYTE &83|&83]] and [[OSBYTE &84|&84]].
 
| A || A || A || R0 || AL || R1 || R0 || align="left" | = [[OSBYTEs|function code]]   || align="left" | preserved, but see [[OSBYTE &83|&83]] and [[OSBYTE &84|&84]].

Revision as of 00:42, 2 November 2022

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)