3Ch FN$LOG calculate logarithm (base 10)
Input Floating-point argument on the stack.
Output Floating-point result on the stack.
Description

Returns the logarithm to the base 10 of the floating-point number on the run-time stack. The stack pointer (RTA_SP) remains unchanged.

Error 247 is returned if the argument is negative or zero.

See also: technical manual > utility system services > floating point numbers

Example The following subroutine will return the log to the base 10 of the largest floating-point number (9.99999999999E+99) in FN_RESULT.
        LDD     RTA_SP:
        SUBD    #8              ;make room for argument on stack
        STD     RTA_SP:         ;D now has destination for UT$CPYB
        LDX     #8              ;length for copying argument
        STX     UTW_S0:
        LDX     #FN_ARG         ;source address for UT$CPYB
        OS      UT$CPYB         ;copy argument to stack
        OS      FN$LOG
        LDX     RTA_SP:         ;source address for copying result
        LDD     #8
        STD     UTW_S0:         ;length for copying result
        ADDD    RTA_SP:         ;add 8 to stack pointer
        STD     RTA_SP:         ;restore stack pointer
        LDD     #FN_RESULT      ;destination for copy
        OS      UT$CPYB
        RTS

    FN_ARG:
        DB      99h,99h,99h,99h,99h,99h,63h,0

    FN_RESULT:
        DS      8
FN_RESULT will now contain the floating-point result of 100.
Errors 247 - bad argument in function call