ASMB,R,L,C * * **************************************************************** * * (C) COPYRIGHT HEWLETT-PACKARD COMPANY 1979. ALL RIGHTS * * * RESERVED. NO PART OF THIS PROGRAM MAY BE PHOTOCOPIED, * * * REPRODUCED OR TRANSLATED TO ANOTHER PROGRAM LANGUAGE WITHOUT * * * THE PRIOR WRITTEN CONSENT OF HEWLETT-PACKARD COMPANY. * * **************************************************************** * * NAME: PART OF MATH LIBRARY * SOURCE: 24998-18XXX SEE NAM FOR LAST THREE DIGITS * RELOC: PART OF 24998-12001 * PGMR: BG & JTS * HED ".DTOD" DOUBLE TO DOUBLE POWER (DLB) NAM .DTOD,6 24998-1X123 REV.2001 750701 ENT .DTOD EXT .ZRNT EXT DEXP,DLOG,.XMPY,.DFER,.ENTC XMPY EQU .XMPY SPC 2 * * CALLING SEQUENCE: Y = D ** P * JSB .DTOD * DEF Y * DEF D * DEF P * (ERROR RETURN) * (NORMAL RETURN) SPC 1 TDB NOP DEC 9 NOP T REP 3 TEMPORARY NOP Y NOP ADDRESS OF Y D NOP ADDRESS OF D P NOP ADDRESS OF P .DTOD NOP JSB .ZRNT DEF LIBX JSB .ENTC GET PRAM ADDRESSES DEF Y STA TDB+2 SET RETURN ADDRESS LDA D,I LDB P,I SZA D = 0 ? JMP NOT0 NO. SSB,RSS P < 0 SZB,RSS OR P = 0 ? JMP ERROR YES. ERROR JMP ANS0 NO. ANSWER = 0 NOT0 SZB,RSS JMP ANS1 ANS MUST BE 1.0 SSA NEGATIVE? JMP ERROR YES JSB DLOG T = LN(D) DEF *+3 DEF T DEF D,I NOP NO CHANCE FOR ERROR JSB XMPY T = P * LN(D) DEF T DEF T DEF P,I JSB DEXP T = DEXP(P * LN(D)) DEF *+3 DEF Y,I PUT IN CALLERS VALUE DEF T JMP ERROR+2 ERROR CONDITION: JMP ANSOK RETURN OK ANS0 LDA ADZRO GET ADDRESS OF DEX 0.0 RSS ANS1 LDA ADONE GET ADDRESS OF DEX 1.0 STA D SAVE TEMPORARY JSB .DFER MOVE VALUE TO OUTPUT VALUE DEF Y,I OUTPUT VALUE ADDRESS DEF D,I INTERNAL VALUE ANSOK ISZ TDB+2 BUMP RETURN ADDRESS TO P+5 JMP LIBX RETURN DONE ERROR LDA MSG LDB MSG+1 LIBX JMP TDB+2,I DEF TDB ZERO DEX 0.0 ADZRO DEF ZERO ADONE DEF ONE ONE DEX 1.0 MSG ASC 2,13UN ERROR MESSAGE END *