.TITLE .EC POLYNOMIAL EVALUATOR (C1X + C3X3 + C5X5 +...CNXN) /COPYRIGHT 1970, DIGITAL EQUIPMENT CORP., MAYNARD, MASS. .GLOBL .EC,.AH,.AK,.AG,.AI / CALLING SEQUENCE (SINGLE PRECISION) / JMS* (.EC) SUBR CALL (FLOATACC HAS X) / CAL ADDR ADDR OF PARAMETERS / NEXT INSTRUCTION SUBR RETURN / PARAMETERS /ADDR -N+1 TWO@S COMP + 1 OF NO OF COEFFICIENTS / C(N) (1) LAST COEFFICIENT (IN REAL FORMAT) / (2) / C(N-1) (1) NEXT TO LAST / (2) / . / . / C(1) (1) FIRST COEFFICIENT / (2) / .EC CAL 0 /ENTRY-EXIT LAC* .EC /GET PARAM ADDR DAC EC01 /STORE AS POINTER LAC* EC01 /GET 1ST PARAM (N) DAC EC02 /STORE N ISZ EC01 /BUMP POINTER TO 1ST COEFF ISZ .EC /BUMP EXIT ADDR JMS* .AH /STORE REAL (.AH) .DSA EC04 / (ARG) JMS* .AK /MULTIPLY REAL (.AK) .DSA EC04 /(ARG * ARG = ARG2) JMS* .AH /STORE REAL (.AH) .DSA EC06 / (ARG2) JMS* .AG /LOAD REAL (.AG) .DSA EC01+400000 / (C(N) AS TERM) EC09 JMS* .AK /MULTIPLY REAL (.AK) .DSA EC06 / (TERM * ARG2) ISZ EC01 /BUMP POINTER FOR NEXT COEFF ISZ EC01 JMS* .AI /ADD REAL (.AI) .DSA EC01+400000 / (CN +(TERM * ARG2) = TERM) ISZ EC02 /BUMP N JMP EC09 /NOT DONE-CYCLE JMS* .AK /DONE-MULTIPLY REAL (.AK) .DSA EC04 / (TERM * ARG = RESULT) JMP* .EC /EXIT EC01 CAL 0 /POINTER EC02 CAL 0 / N EC04 CAL 0 /ARG STORAGE (1) CAL 0 / (2) EC06 CAL 0 /ARG2 STORAGE (1) CAL 0 / (2) .END