From BeebWiki
Jump to: navigation, search

OSWORD &C8 (200) - Pass SWI Operation to Host JGH

This call passes a SWI to the host to be executed. Values passed
can be translated to and from absolute ARM address by setting bits
in the translate bytes.
On entry:
 XY?0 =regs*4+8 (send block length)
 XY?1 =regs*4+8 (the receive block length)
 XY?2 =bitmap of outgoing register values to translate
  to ARM absolute addresses, b0=1 - r0, b1=1 - r1, etc.,
 XY?3 =bitmap of incoming register values to translate back
  to local processor addresses as with XY?2
 XY!4 =SWI number
 XY!8 =r0 value
 XY!12=r1 value
 ... continues onwards up to the number specified by XY?0
 and XY?1.
On exit:
 XY!4=b0-b3=returned flags, NZCV. [*check]
If V set in b0, an error number is returned in XY!4 and the
CR-terminated error string returned in XY+8 onwards.

See Also

Jgharston 14:25, 26 May 2009 (UTC)