Check that the ID is not NIL and that it pertains to a primitive item.
Check that the offset into the data is not negative.
Repeat
{
Read the modified count for this item.
Copy as many bytes as there is room for in the user's buffer from the noticeboard starting
at the specified offset and return the actual number of bytes in the item.
Read the modified count for this item once more.
}
Until time out or the two modified counts are equal and even
(which means that the values were not updated whilst they were being read).
If CHECK_MODIFY is FALSE, the item's modified count is not checked at all and a timeout cannot occur.
If the specified offset is greater than the current size of the item's data, no error status will be returned and no data will be copied, but the returned number of bytes (ACTBYTES) will be less than the offset (OFFSET) and this case should always be checked for.
NBS__NILID NIL ID
NBS__NOTPRIMITIVE Item is not primitive
NBS__BADOFFSET Negative offset specified
NBS__TIMEOUT Timeout awaiting valid data
NBS The Noticeboard System