*20 / / / / FPP FORMAT AND MATHEMATICAL ROUTINES. / / / / / / / COPYRIGHT 1971 / DIGITAL EQUIPMENT CORPORATION / 146 MAIN STREET, / MAYNARD, MASSACHUSSETTS. / 01754 / / / / WRITTEN BY JACK BURNESS. / / / / / / / / / / / / BASE 77000 MCRTPB=77000 MCRTP1=MCRTPB+30 MCRTP2=MCRTP1+3 MCRTP3=MCRTP2+3 MCRTP4=MCRTP3+3 MCRTP5=MCRTP4+3 MCRTP6=MCRTP5+3 MCRTP7=MCRTP6+3 MCRTP8=MCRTP7+3 FPPONE, 1. FPPTWO, 2. FPPPI2, 1 3110 3755 FPPPI, 2 3110 3755 FPP2PI, 3 3110 3755 IFREF RAND RAND, JA . FLDA RAND+117 FMULM RAND+114 STARTD FLDA RAND+126 ATX 0 FLDA FPPPI2-1 FSTA RAND+113 JXN .+4,0+ FADD FPPPI2-1 FADDM RAND+111 XTA 0 FSTA RAND+126 FCLA FSTA RAND+110 FSTA RAND+123 FLDA RAND+116 JGE RAND+44 LDX -1,0 JA RAND+46 LDX 0,0 FSTA RAND+124 FLDA RAND+111 FADDM RAND+123 FLDA RAND+114 FSTA RAND+122 STARTF FLDA RAND+122 JXN RAND+72,0 FNEG FADD FPPTWO JA .+4 FSUB FPPONE FMUL FPPTWO FSUB FPPONE JGE .+4 FADD FPPONE FSTA RAND+114 JA RAND 0 0 0 0 -36 3562 7227 22 3224 2342 0 0 0 0 0 0 $ IFREF EXP3 JSA ALOG FMUL MCRTP8 JSA EXP EXP3, JA . JEQ EXP3 FSTA MCRTP2 FLDA MCRTP1 JEQ EXP3+20 FSTA MCRTP8 FLDA MCRTP2 JGE EXP3-5 TRAP7 0 JA EXP3 FLDA FPPONE JA EXP3 $ IFREF ABS ABS, JA . JGE ABS FNEG JA ABS $ IFREF TANH TANH, JA . FSTA MCRTP6 JSA COSH FSTA MCRTP5 FLDA MCRTP6 JSA SINH FDIV MCRTP5 JA TANH $ IFREF SINH FLDA MCRTP7 SINH, JA . FSTA MCRTP8 JGE .+3 FNEG FSTA MCRTP7 FSUB SINH+72 JLE SINH+50 FSUB SINH+75 JGE SINH+34 FLDA MCRTP8 JSA EXP FSTA MCRTP7 FLDA FPPONE FDIV MCRTP7 FNEG FADD MCRTP7 FDIV FPPTWO JA SINH FLDA MCRTP7 FSUB SINH+67 JSA EXP FSTA MCRTP7 FLDA MCRTP8 JGE SINH FNEG JA SINH FLDA MCRTP8 FMUL MCRTP8 FSTA MCRTP7 FMUL MCRTP8 FSTA MCRTP6 FMULM MCRTP7 FDIV SINH+100 FADDM MCRTP8 FLDA MCRTP7 FDIV SINH+103 FADD MCRTP8 JA SINH 0 2613 4412 .1 87.929 6. 120. $ IFREF COSH COSH, JA . FSTA MCRTP8 JGE .+3 FNEG FSTA MCRTP7 FSUB COSH+55 JGE COSH+27 FLDA MCRTP8 JSA EXP FSTA MCRTP7 FLDA FPPONE FDIV MCRTP7 FADD MCRTP7 FDIV FPPTWO JA COSH FSUB COSH+47 JGT COSH+41 FADD COSH+55 JSA EXP JA COSH FLDA COSH+52 TRAP7 12 JA COSH 0 2613 4412 3777 3777 7777 88.029 $ IFREF ACOS FLDA MCRTP8 FMUL MCRTP8 FNEG FADD FPPONE JSA SQRT FDIV MCRTP8 JSA ATAN JXN ACOS,0 FADD FPPPI ACOS, JA . FSTA MCRTP8 JEQ ACOS+24 LDX -1,0 JGE .+5 LDX 0,0 FNEG FSUB FPPONE JLE ACOS-16 TRAP7 1 JA ACOS FLDA FPPPI2 JA ACOS $ IFREF ASIN FLDA MCRTP8 FNEG FMUL MCRTP8 FADD FPPONE JEQ ASIN+16 JSA SQRT FSTA MCRTP7 FLDA MCRTP8 FDIV MCRTP7 JSA ATAN ASIN, JA . FSTA MCRTP8 JGE .+3 FNEG FSUB FPPONE JLE ASIN-16 TRAP7 2 JA ASIN FLDA FPPPI2 FMUL MCRTP8 JA ASIN $ IFREF COSD COSD, JA . FADD COSD+12 FDIV COSD+15 JSA SIN JA COSD 90. 6 3451 3561 $ IFREF SIND 6 3451 3561 SIND, JA . FDIV SIND-3 JSA SIN JA SIND $ IFREF TAND 6 3451 3561 TAND, JA . FDIV TAND-3 JSA TAN JA TAND $ IFREF TAN TAN, JA . JEQ TAN FSTA MCRTP8 JSA COS JEQ TAN+20 FSTA MCRTP7 FLDA MCRTP8 JSA SIN FDIV MCRTP7 JA TAN TRAP7 10 JA TAN $ IFREF COS COS, JA . FADD FPPPI2 JSA SIN JA COS $ IFREF ATAN2 FLDA MCRTP7 ATAN2, JA . FSTA MCRTP7 FLDA MCRTP1 FSTA MCRTP8 FLDA MCRTP7 JSA ATAN FSTA MCRTP7 FLDA MCRTP8 JGE ATAN2-1 FLDA MCRTP7 JGE ATAN2+23 FADD FPPPI JA ATAN2 FSUB FPPPI JA ATAN2 $ IFREF AMOD AMOD, JA . FSTA MCRTP8 FDIV MCRTP1 JAL AMOD+15 ALN 0 FNORM FMUL MCRTP1 FNEG FADD MCRTP8 JA AMOD TRAP7 11 JA AMOD $ IFREF SIGN FLDA FPPONE SIGN, JA . JEQ SIGN JGE SIGN-2 FLDA .+4 JA SIGN 1 6000 0 $ IFREF CRLF CRLF, JA . FLDA CRLF+13 FSTA MCRTPB JSA PUTSTR JA CRLF 2 215 212 JA CRLF+11 $ IFREF GETNUM GETNUM, JA . FCLA FSTA MCRTP1 FSTA MCRTP3 ATX 0 ATX 1 JSA GETNUM+75 FLDA MCRTP8 FSUB GETNUM+176 JNE GETNUM+25 ATX 0 FLDA MCRTP7 FMULM MCRTP1 JSA GETNUM+75 XTA 0 FSTA MCRTP3 FLDA MCRTP1 FSTA MCRTP2 FLDA MCRTP8 FSUB GETNUM+173 JNE GETNUM+72 FSTA MCRTP1 ATX 1 JSA GETNUM+75 FLDA MCRTP1 FSUB MCRTP3 JEQ GETNUM+56 JGT GETNUM+61 ATX 1 FLDA MCRTP2 FDIV GETNUM+170 JXN .-2,1+ JA GETNUM FLDA MCRTP2 JA GETNUM FNEG ATX 1 FLDA MCRTP2 FMUL GETNUM+170 JXN .-2,1+ JA GETNUM FCLA JA GETNUM+41 JA . JXN GETNUM+104,1 FLDA FPPONE FSTA MCRTP7 JSA GETC FSTA MCRTP8 FSUB GETNUM+165 JLT GETNUM+131 FSUB GETNUM+170 JGE GETNUM+131 ATX 1 FLDA GETNUM+170 FMULM MCRTP1 XTA 1 FADD GETNUM+170 FADDM MCRTP1 JXN GETNUM+104,0+ FLDA MCRTP8 FSUB GETNUM+201 JEQ GETNUM+156 FSUB FPPTWO JEQ GETNUM+152 FADD GETNUM+204 JEQ GETNUM+104 FLDA MCRTP7 FMULM MCRTP1 JA GETNUM+75 FSUB FPPONE JA .+4 FLDA FPPONE JXN GETNUM+146,1 ATX 1 JA GETNUM+103 10 2600 0 10. 10 3050 0 10 2560 0 10 2530 0 13. $ IFREF PCON PCON, JA . FSTA MCRTP8 FLDA PCON+126 JSA MCPUTC FLDA MCRTP8 JLT PCON+54 FLDA PCON+126 FSUB PCON+134 FSUB PCON+131 JLT PCON+120 JSA MCLBLK FLDA MCRTP8 JSA MCCPMS FLDA MCRTP8 JSA MCDIGC FLDA MCRTP7 FSUB FPPONE FSTA MCRTP8 FLDA FPPONE JSA MCPRTD JSA MCPDOT FLDA PCON+131 JSA MCPRTD JSA MCPEXP JA PCON FLDA PCON+126 FSUB FPPONE JA PCON+14 PTYPE, JA . FSTA MCRTP6 FCLA FSTA PCON+126 FSTA PCON+131 FLDA MCRTP1 JSA PCON+106 FSTA PCON+131 FLDA MCRTP6 JSA PCON+106 FSTA PCON+126 JA PTYPE JA . JLT PTYPE JAL PTYPE ALN 0 FNORM JA PCON+106 FLDA PCON+126 JSA MCSTAR JA PCON 0. 0. 8. $ IFREF ETYPE ECON, JA . FSTA MCRTP8 FLDA ECON+46 JSA MCPUTC FLDA MCRTP8 JLT ECON+57 FLDA ECON+46 FSUB ECON+54 FSUB ECON+51 JLT ECON+123 JSA MCLBLK FLDA MCRTP8 JSA MCCPMS JSA MCPDOT FLDA MCRTP8 JSA MCDIGC FLDA MCRTP7 FSTA MCRTP8 FLDA ECON+51 JSA MCPRTD JSA MCPEXP JA ECON 0. 0. 7. FLDA ECON+46 FSUB FPPONE JA ECON+14 ETYPE, JA . FSTA MCRTP6 FCLA FSTA ECON+46 FSTA ECON+51 FLDA MCRTP1 JSA ECON+111 FSTA ECON+51 FLDA MCRTP6 JSA ECON+111 FSTA ECON+46 JA ETYPE JA . JLT ETYPE JAL ETYPE ALN 0 FNORM JA ECON+111 FLDA ECON+46 JSA MCSTAR JA ECON $ IFREF FCON FCON, JA . LDX -1,2 FSTA MCRTP3 JGE .+4 LDX -2,2 JSA MCDIGC FLDA FCON+152 JSA MCPUTC FLDA MCRTP7 JGE .+3 FCLA FSTA MCRTP2 XTA 2 FSUB MCRTP2 FSUB FCON+155 FADD FCON+152 JLT FCON+144 JSA MCLBLK ADDX 1,2 XTA 2 JSA MCCPMS FLDA MCRTP2 JSA MCPRTD JSA MCPDOT FLDA MCRTP7 JGE FCON+100 ATX 2 FLDA FCON+155 FNEG ATX 0 JEQ FCON FLDA MC260 JSA MCPUTC JXN .+4,0+ JA FCON JXN FCON+62,2+ XTA 0 FNEG JA .+4 FLDA FCON+155 JSA MCPRTD JA FCON FTYPE, JA . FSTA MCRTP6 FCLA FSTA FCON+155 FSTA FCON+152 FLDA MCRTP1 JSA FCON+132 FSTA FCON+155 FLDA MCRTP6 JSA FCON+132 FSTA FCON+152 JA FTYPE JA . JLT FTYPE JAL FTYPE ALN 0 FNORM JA FCON+132 FLDA FCON+152 JSA MCSTAR JA FCON 0.0 0.0 $ IFREF MCDIGC MCDIGC, JA . JGE .+3 FNEG FSTA MCRTP6 FCLA FSTA MCRTP7 LDX -12,1 FLDA MCRTP6 JAL MCDIGC+47 ALN 0 FNORM FSUB MCRTP6 JEQ MCDIGC+116 FLDA MCRTP6 FSUB FPPONE JGE MCDIGC+47 FLDA MCRTP6 FSUB MC2TAB+36-30000,1 JGE MCDIGC+43 FLDA MC1TAB+36-30000,1 FMULM MCRTP6 FLDA MCRTP7 FSUB MC3TAB+36-30000,1 FSTA MCRTP7 JXN MCDIGC+27,1+ JA MCDIGC+74 FLDA MCRTP6 FSUB MC1TAB+36-30000,1 JLT MCDIGC+63 FLDA MCRTP6 FDIV MC1TAB+36-30000,1 FSTA MCRTP6 FLDA MC3TAB+36-30000,1 FADDM MCRTP7 JXN MCDIGC+47,1+ FLDA MCRTP6 FDIV MCDIGC+440 FSTA MCRTP6 FLDA FPPONE FADDM MCRTP7 FLDA MCDIGC+113 FSTA MCDIGC+154 FLDA MCRTP6 STARTD XTA 0 STARTF ATX 0 JEQ MCDIGC FLDA MCDIGC+565 FADDM MCRTP6 JA MCDIGC JA MCDIGC+157 FLDA MCDIGC+146 FSTA MCDIGC+154 FLDA MCRTP6 JEQ MCDIGC+145 LDX -10,1 FLDA MCRTP6 FDIV MC4TAB+30-30000,1 ALN 0 FNORM JNE MCDIGC+140 JXN MCDIGC+127,1+ XTA 1 FNEG FSUB FPPONE FSTA MCRTP7 JA MCDIGC JA MCDIGC+172 FADD MC260 MCGETD, JA . JA . FLDA MCRTP6 FMUL MCDIGC+440 FSTA MCRTP6 ALN 0 FNORM FNEG FADDM MCRTP6 FNEG JA MCGETD-2 FLDA MCRTP7 JEQ MCGETD-2 FSUB FPPONE FSTA MCRTP7 FLDA MCRTP6 FDIV MC4TAB+25-30000,1+ ATX 0 XTA 0 FNEG FMUL MC4TAB+25-30000,1 FADDM MCRTP6 XTA 0 JA MCGETD-2 MCPUTC, JA . FSTA MCRTP5 FLDA I MCRTPB FSTA MCDIGC+242 FLDA MCRTP5 ALN 0 FSTA MCDIGC+240 FLDA MCDIGC+242 FSTA I MCRTPB STARTD FLDA FPPPI2-1 FADDM MCRTPB STARTF JA MCPUTC 0 0 0 0 0 MCSTAR, JA . JLE MCSTAR FNEG ATX 1 FLDA MCDIGC+573 JSA MCPUTC JXN .-4,1+ JA MCSTAR MCLBLK, JA . JLE MCLBLK FNEG ATX 0 FLDA MCDIGC+576 JSA MCPUTC JXN .-4,0+ JA MCLBLK MCPEXP, JA . FLDA FPPONE JSA MCLBLK FLDA MCDIGC+601 JSA MCPUTC FLDA MCRTP8 JGE MCDIGC+324 JSA MCCPMS FLDA MCRTP8 FNEG JA .+7 FLDA MCDIGC+604 JSA MCPUTC FLDA MCRTP8 FADD MCDIGC+550 JSA MCDIGC JSA MCGETD FLDA MCDIGC+607 JSA MCPRTD JA MCPEXP MCPDOT, JA . FLDA MCDIGC+612 JSA MCPUTC JA MCPDOT MCCPMS, JA . JGE MCCPMS FLDA MCDIGC+615 JSA MCPUTC JA MCCPMS MCPRTD, JA . FNEG ATX 2 JGE MCPRTD JSA MCGETD JSA MCPUTC JXN .-4,2+ JA MCPRTD MC1TAB, 3245 3430 6320 1523 2523 7566 0652 2235 6444 0325 3023 6020 1.E32 1.E16 1.E8 1.E4 1.E2 1.E1 MC2TAB, 4534 2202 2367 6256 3001 4242 7127 3356 4043 7454 2503 7765 7626 3175 4217 7713 3464 5312 7746 2536 3074 7763 3215 5614 1.E-2 1.E-1 MC3TAB, 512. 256. 128. 64. 32. 16. 8. 4. 2. 1. MC4TAB, 1000000. 100000. 10000. 1000. 100. 10. 1. 0 7750 2000 0000 MC260, 176. 170. 160. 197. 171. 3. 174. 173. $ IFREF ALOG10 ALOG10, JA . JSA ALOG FMUL ALOG10+10 JA ALOG10 7777 3362 6754 $ IFREF SQRT FSTA SQRT+37 FLDA SQRT+40 FSTA SQRT+34 FLDA SQRT+36 ALN 0 JEQ SQRT+12 FNORM FSUB FPPONE FDIV FPPTWO FSTA MCRTP1 ALN 0 FNORM FSUB MCRTP1 FMUL FPPTWO JGE .+3 FNEG ATX 1 FSUB FPPONE ALN 0 FSTA SQRT+35 FLDA MCRTP1 ALN 0 FSTA MCRTP1 FLDA SQRT+37 FSTA MCRTP2 FMUL SQRT+20,1 FADD SQRT+26,1 FSTA MCRTP3 FLDA MCRTP2 FDIV MCRTP3 FADD MCRTP3 FDIV FPPTWO FSTA MCRTP3 FLDA MCRTP2 FDIV MCRTP3 FADD MCRTP3 FSTA SQRT+37 STARTD FCLA FSTA SQRT+35 FLDA MCRTP1 FADDM SQRT+36 STARTF FLDA SQRT+37 SQRT, JA . JGT SQRT-77 JEQ SQRT TRAP7 3 JA SQRT FSUB FPPONE FSTA MCRTP1 FNEG JA SQRT-46 0 3200 0 0 2240 0 7777 2327 7772 7777 3300 0 0 0 0 0 0 0 13 $ IFREF ALOG LDX -1,0 FSTA MCRTP1 FSUB FPPONE JEQ ALOG JGE ALOG-70 FLDA FPPONE FDIV MCRTP1 FSTA MCRTP1 LDX 0,0 JA .+3 FLDA MCRTP1 FDIV FPPTWO FSTA ALOG+21 FLDA ALOG+25 FSTA ALOG+16 FSTA ALOG+22 FLDA ALOG+20 FNORM FMUL ALOG+33 FSTA MCRTP2 FLDA MCRTP1 FSTA ALOG+21 FLDA FPPPI2-2 FSTA ALOG+17 FLDA ALOG+21 FSUB FPPONE FSTA MCRTP1 FMUL ALOG+60 FADD ALOG+55 FMUL MCRTP1 FADD ALOG+52 FMUL MCRTP1 FADD ALOG+47 FMUL MCRTP1 FADD ALOG+44 FMUL MCRTP1 FADD ALOG+41 FMUL MCRTP1 FADD ALOG+36 FMUL MCRTP1 FADD ALOG+30 FMUL MCRTP1 FADD MCRTP2 JXN ALOG,0 FNEG ALOG, JA . JGT ALOG-111 JEQ ALOG+12 TRAP7 6 JA ALOG TRAP7 7 JA ALOG 0 0 0 0 0 0 0 0 0 13 0 3777 7742 0 2613 4414 7777 4000 4100 7777 2517 0310 7776 4113 7211 7776 2535 3301 7775 4746 0771 7774 2236 4304 7771 4544 1735 $ IFREF SIN FLDA MCRTP2 JXN SIN,0 FNEG SIN, JA . LDX -1,0 JGT SIN+13 JEQ SIN FNEG LDX 0,0 JAL SIN+127 FDIV FPP2PI FSTA MCRTP1 ALN 0 FNORM FNEG FADD MCRTP1 FMUL FPP2PI FSTA MCRTP2 FSUB FPPPI JLT SIN+41 FSTA MCRTP2 XTA 0 FNEG FSUB FPPONE ATX 0 FLDA MCRTP2 FSUB FPPPI2 JLT SIN+52 FLDA FPPPI FSUB MCRTP2 FSTA MCRTP2 FLDA MCRTP2 FSUB SIN+124 JLE SIN-4 FLDA MCRTP2 FDIV FPPPI2 FSTA MCRTP2 FMUL MCRTP2 FSTA MCRTP1 FMUL SIN+110 FADD SIN+113 FMUL MCRTP1 FADD SIN+116 FMUL MCRTP1 FADD SIN+121 FMUL MCRTP1 FADD FPPPI2 FMUL MCRTP2 JXN SIN,0 FNEG JA SIN 7764 2501 7015 7771 5464 5515 7775 2431 5362 0000 5325 0414 7770 2000 0000 TRAP7 5 JA SIN $ IFREF ATAN ATAN, JA . LDX -1,0 JGE .+5 LDX 0,0 FNEG FSTA MCRTP1 FSTA MCRTP2 FSUB ATAN+116 JLE ATAN+110 FSUB ATAN+121 JLE ATAN+27 FLDA FPPONE FDIV MCRTP1 FSTA MCRTP1 FCLA FSTA MCRTP3 FLDA MCRTP1 FSUB ATAN+124 JLT ATAN+52 FLDA ATAN+127 FADDM MCRTP1 FLDA ATAN+154 FDIV MCRTP1 FADD ATAN+127 FSTA MCRTP1 FLDA ATAN+132 FSTA MCRTP3 FLDA MCRTP1 FMUL MCRTP1 FSTA MCRTP4 FLDA ATAN+135 FMUL MCRTP4 FADD ATAN+140 FMUL MCRTP4 FADD ATAN+143 FMUL MCRTP4 FADD ATAN+146 FMUL MCRTP4 FADD FPPONE FMUL MCRTP1 FADD MCRTP3 FSTA MCRTP1 FLDA MCRTP2 FSUB FPPONE JLE ATAN+110 FLDA ATAN+151 FSUB MCRTP1 JA .+3 FLDA MCRTP1 JXN ATAN,0 FNEG JA ATAN -15 2000 0000 0 3777 7000 -1 2111 4121 1 3355 4754 0 2060 2511 -3 3023 1227 -2 5566 7220 -2 3146 0740 -1 5252 5262 1 3110 3755 -4. $ IFREF EXP FLDA EXP+106 EXP, JA . LDX -1,0 JGE .+5 FNEG LDX 0,0 FMUL EXP+115 FSTA MCRTP1 JAL EXP+111 ALN 0 FSTA MCRTP3 FNORM FNEG FADD MCRTP1 FSTA MCRTP1 FMUL MCRTP1 FSTA MCRTP2 FADD EXP+102 FSTA MCRTP4 FLDA EXP+77 FDIV MCRTP4 FSUB MCRTP1 FADD EXP+71 FSTA MCRTP4 FLDA EXP+74 FMUL MCRTP2 FADDM MCRTP4 FLDA MCRTP1 FDIV MCRTP4 FMUL FPPTWO FADD FPPONE FSTA EXP+106 STARTD FLDA MCRTP3 FADDM EXP+105 STARTF JXN EXP-2,0 FLDA FPPONE FDIV EXP+106 JA EXP 4 2372 1402 7774 2157 5157 12 5454 343 7 2566 5341 0 0 0 0 TRAP7 4 JA EXP 1 2705 2435 $ IFREF PUTSTR PUTSTR, JA . JSA PUTSTR+20 JEQ PUTSTR FNEG ATX 1 JSA PUTSTR+20 JSA PUTC JXN .-4,1+ JA PUTSTR JA . STARTD FLDA I MCRTPB FSTA PUTSTR+41 FLDA FPPPI2-1 FADDM MCRTPB STARTF FLDA PUTSTR+37 FNORM JA PUTSTR+20 27 0 0 0 $ FPPNXT=.