SWI's
-----

This file documents the SWI calls currently supported by the NVRAM module.
This needs to go into the FS eventually ;-)

Various changes occured in Verson 0.48 of this module that have not been
detailed anywhere, including the addition of five new SWI calls. The error
block 0x00819200 is used.

Please note that the SWI's NVRAM_Read and NVRAM_Write are now deprecated,
and may be removed in future versions of the OS.

SWI NVRAM_Lookup (0x4ee02)
Takes a pointer to a Tag in r0 on entry and returns startbyte within NVRAM
(suitable for use with OS_NVMemory) in r0, startbit within byte in r1, length
in r2 and flags in r3

SWI NVRAM_Set (0x4ee03)
Takes the same arguments as Write but now return error pointers in r0 an
error occurs instead of a -ve number.

SWI NVRAM_Get (0x4ee04)
Takes the same arguments as Read but now return error pointers in r0 an error
occurs instead of a -ve number.

SWI NVRAM_SetBytes (0x4ee05)
Works like NVRAM_Set but also take an offset in r3 that is added to the
address of the Tag to allow access to part of a Tag without needing to read
or write the whole thing.

SWI NVRAM_GetBytes (0x4ee06)
Works like NVRAM_Get but also take an offset in r3 that is added to the
address of the Tag to allow access to part of a Tag without needing to read
or write the whole thing.

Detail:
  NVRAM_Read and Write used to pass on proper RISC OS errors if an external
  error was generated, but returned a -ve number in r0 if an internal error
  occured.
  
  NVRAM_Get and Set behave properly and use the error block 0x00819200
  this also means that Set preserves r0 (it used to return 0 for success)
  For compatibility Read and Write have not been removed but are deprecated,
  additionally the new error codes are the positive versions of the old
  error codes (hopefully this will ease converting code to use the new SWIs)
  The Messages file has been seperated from the Tags file and the module can
  return MsgTrans'ed error messages.
