/ IIPOW -- FIPOW INTEGER POWERS / FOR 23 BIT F. P. FORMAT / WRITTEN BY / PHILLIP SIEMENS / LAWRENCE LIVERMORE LABORATORY / SEPTEMBER 5, 1975 OPDEF TADI 1400 OPDEF JMPI 5400 OPDEF DCAI 3400 ABSYM MQLMUY 7425 ABSYM CLAMQA 7701 ABSYM MQL 7421 ABSYM MQA 7501 ENTRY IIPOW ENTRY FIPOW LAP / AC = AC**ARG / THIS ROUTINE DOES NOT CALL ANY OTHER LIBRARY SUBROUTINES IIPOW, 6140 /VERSION # -- ENTRY 0004 /EDIT # DCA NB /SAVE BASE JMS GETARG /GET THE ARG SPA /POSITIVE? JMP IZRO /NO -- I**(-) = 0 DCA NARG /SAVE ARG TAD NB /GET BASE SNA CLA /ZERO? JMP IP4 /YES -- 0**ARG = 0 IAC DCA MR /INITIALIZE IP3, TAD NARG CLL RAR DCA NARG SNL /BIT ON? JMP NOMPY /NO TAD NB /MULTIPLY MQLMUY MR, 0 CLAMQA DCA MR NOMPY, TAD NARG SNA CLA /MORE TO DO? JMP IPDNE /NOPE TAD NB MQLMUY NB, 0 CLAMQA DCA NB JMP IP3 IZRO, CLA DCA MR /CLEAR RESULT IPDNE, TAD MR /GET RESULT IN AC IP4, HLT JMPI IIPOW# GETARG, 0 TAD IIPOW /GET CDF TO FROM FIELD DCA IP1 NARG, IP1, HLT /CHANGE DF TO FROM FIELD TADI IIPOW# /GET CDF TO ARG FIELD DCA IP2 INC IIPOW# TADI IIPOW# /GET POINTER TO ARG DCA IP1 INC IIPOW# CLA CLL CML RTL /GET A 2 TAD IIPOW DCA IP4 /SET UP FAST EXIT IP2, HLT /CHANGE DF TO ARG FIELD TADI IP1 /GET ARG JMPI GETARG / FAC = FAC**ARG X, 0 /OVERLAP WITH SUB. ENTRY FIPOW, 6140 /VERSION # -- ENTRY 0003 TAD FIPOW /MOVE POINTERS DCA IIPOW TAD FIPOW# DCA IIPOW# JMS GETARG /GET THE POWER CLL /CLEAR LINK -- SIGN INDICATOR SPA /POSITIVE POWER? CIA CML /NO -- ABS VALUE AND SET LINK DCA NARG /SAVE THE POWER JMS SWAP /PUT FAC IN X, FAC GETS GARBAGE FACONE, TAD (2000 / LITERAL SO LINK IS PRESERVED DCAI (20 /SET FAC = 1 DCAI (21 IAC DCAI (22 SNL /WAS POWER NEGATIVE? JMP FI2 /NO CALL 1, FDV /YES -- MAKE 1/X ARG X JMS SWAP /X = 1/X FAC = OLD X CLL JMP FACONE FI2, TAD NARG CLL RAR DCA NARG SNL /BIT SET? JMP FI3 /NO CALL 1, FMP ARG X FI3, TAD NARG SNA CLA /DONE? JMP IP4 /YES -- GET OUT QUICK JMS SWAP /SAVE RESULT IN X /GET BASE IN FAC CALL 1, FMP /SQUARE BASE ARG ACH JMS SWAP /GET RESULT BACK IN FAC /SAVE SQUARED BASE IN X JMP FI2 SWAP, 0 /SWAP FAC AND X TAD ACH MQL TAD X DCA ACH MQA DCA X TAD ACM MQL TAD FIPOW DCA ACM MQA DCA FIPOW TAD ACL MQL TAD FIPOW# DCA ACL MQA DCA FIPOW# JMPI SWAP END