CreateArgstring()
Synopsis
UBYTE * CreateArgstring(
CONST UBYTE * string,
ULONG length );
Function
This function will create a RexxArg structure and copy the supplied
string into it.
Result
A pointer to the string part of the allocated RexxArg structure.
Notes
Pointer to the string returned by this function may be used as a
null terminated C string but should be considered read-only.
CreateRexxMsg()
Synopsis
struct RexxMsg * CreateRexxMsg(
struct MsgPort * port,
UBYTE * extension,
UBYTE * host );
Function
Creation and initialization of a RexxMsg structure
Result
Pointer to the freshly allocated RexxMsg.
CVa2i()
Synopsis
LONG CVa2i(
UBYTE * buffer );
Function
This function converts an ASCII string to a signed 32-bit integer.
The string scanning is stopped when a non-digit character is found or
the integer value would overflow.
The function returns both the number of bytes scanned
and the integer value.
Result
value (D0) - The signed integer obtained from the string.
digits (D1) - The number of digits scanned from the string, plus one
if there was a leading + or -.
Notes
This function is excluded from the C headers and is only
implemented for m68k CPUs.
The ARexx User's Reference Manual (1987) is incorrect.
The result registers listed above are the correct ones.
Registers A2-A7 and D2-D7 are preserved across the call.
CVi2a()
Synopsis
LONG CVi2a(
UBYTE * buffer,
LONG value,
UWORD digits );
Function
This function writes the digits of the signed 32-bit integer value
to the buffer given, including the terminating NUL character.
The function returns both the number of bytes written
and a pointer to the NUL character in the buffer.
Result
length (D0) - The number of bytes written, excluding the terminating
NUL character.
pointer (A0) - A pointer to the terminating NUL character.
Example
Setting value=-2000 and digits=3 will yield the string "-00".
Notes
If digits is less than the number of characters needed, the least
significant digits that fit will be written. Any sign needed will be
included.
This function is excluded from the C headers and is only
implemented for m68k CPUs.
Registers A2-A7 and D2-D7 are preserved across the call.
CVi2arg()
Synopsis
UBYTE * CVi2arg(
LONG value );
Function
This function creates an argstring containing a string representation
of the signed 32-bit integer value given.
The argstring can be freed with DeleteArgstring().
Result
pointer (D0, A0) - A pointer on the same format that CreateArgstring() returns.
Notes
This function is excluded from the C headers and is only
implemented for m68k CPUs.
The ARexx User's Reference Manual (1987) is incorrect.
There is no "digits" argument.
Registers A2-A7 and D2-D7 are preserved across the call.
FillRexxMsg()
Synopsis
BOOL FillRexxMsg(
struct RexxMsg * msgptr,
ULONG count,
ULONG mask );
Function
This function will convert the value(s) provided in rm_Args of the
RexxMsg. The input can be either a string or a number.
Result
Returns TRUE if succeeded, FALSE otherwise. When FALSE is returned all
memory already allocated will be freed before returning.
Example
This code will convert a string and a number to RexxArgs:
struct RexxMsg *rm;
...
rm->rm_Args[0] = "Test";
rm->rm_Args[1] = (UBYTE *)5;
if (!FillRexxMsg(rm, 2, 1<<1))
...
StrcmpN()
Synopsis
ULONG StrcmpN(
UBYTE * string1,
UBYTE * string2,
ULONG length );
Function
This function compares the strings for the specified number of
characters.
Result
test (D0) - -1 if the second string is less, 0 if equal, 1 if greater.
If one string ends it is considered less than a string that continues.
The CCR flags are updated according to the result.
Notes
This function is excluded from the C headers and is only
implemented for m68k CPUs.
The ARexx User's Reference Manual (1987) incorrectly says that 1 is
returned if the first string is greater.
Registers A2-A7 and D2-D7 are preserved across the call.
Strlen()
Synopsis
ULONG Strlen(
UBYTE * string );
Function
This function returns the length of the provided ASCII string,
and sets the Z flag of the m68k CCR if the string is empty.
Result
length (D0) - The length of the ASCII string.
The CCR Z flag is set if the length is zero.
Notes
This function is excluded from the C headers and is only
implemented for m68k CPUs.
Registers A0, A2-A7, and D2-D7 are preserved across the call.