|3Ch||FN$LOG||calculate logarithm (base 10)|
|Input||Floating-point argument on the stack.|
|Output||Floating-point result on the stack.|
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.
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 8FN_RESULT will now contain the floating-point result of 100.
|Errors||247 - bad argument in function call|