4 / AND B IS REAL OR INTEGER
6 / VERSION 5A 4/26/77 MH
10 FSTA SIGN /SAVE SIGN OF EXPONENT
11 JGE POSINT /ITS POSITIVE
13 POSINT, FSTA 3 /PUT IT INTO 3
17 FLDA ONE /START WITH ONE
20 LOOP, JEQ YES /DONE IF ITS ZERO
21 FDIV TWO /DIVIDE BY TWO
25 FMUL TWO /IS EXPONENT ODD ?
30 FLDA TEMP /EXPONENT OVER 2
32 JXN LOOP,1+ /LOOP IF MORE BITS
33 YES, FLDA XR1 /DONE, RESTORE XR 1
35 FLDA SIGN /CHECK SIGN OF EXPONENT
36 JLT INVERT /IT WS NEGATIVE, INVERT RESULT
37 FLDA PROD /RETURN ANSWER
39 INVERT, FLDA ONE /RETURN 1/PROD
42 ODD, FLDA 0 /MULT PROD BY BASE
44 JA SQUARE /GO SQUARE THE BASE