The Math ROM is a powerful extension of the HP71B. It provides many additional functions and statements that greatly enhance the HP71B math capabilities:

complex variable type and comprehensive function set,
 array and matrix functions,
 numerical function root solver,
 numerical integration,
 fast Fourier transform,
 roots of a polynomial,
 hyperbolic functions,
 utilities: base conversion, log base 2, gamma function.
The Math ROM for the HP71B is the descendant of a long line of Math ROMs for various machines. After the HP71B, the new series of highend scientific "RPL" calculators starting with the HP28C/S, then with the 48/49/50 series tend to include all the mathematic functionalities builtin, even if thirdparty extensions existed to cover special needs. So the HP71B Math ROM can be viewed as the last member of a great family.
We can attempt to trace the origins of the HP71B Math ROM functionalities:
The matrix function set comes from the computer side and is the oldest feature set that can be traced, down to the HP 2000 Basic (1969) for the 2000 Timeshare System. As for desktop computers, the functions appeared in the 9830 (1972) and 9825 (1976) Matrix ROMs, were then provided as standard in the 9835 and 9845 Basic. They were available again as optional plugin ROMs on the series 80 (HP83/85 and HP86/87 Matrix ROMs), and included in the series 200/300 Basic (the "MAT BIN" since Basic 3.0).
The solve and integrate
features clearly come from the handheld calculator side with the HP34C (1979), they have been then
included in the classic HP15C
and reused in the HP41C Advantage
ROM.
The solver origin may be traced down to the financial calculators that needed
to solve the financial equations numerically, however this solver was dedicated
to a set of equations and not available for general purpose to the user.
The complex number
functionalities were introduced in the HP15C (1982) in a properly
integrated working environment. Other machines, like the HP41C Math or Advantage
ROMs were able to manage calculations on complex numbers but in a limited and
primitive way.
The HP75C Math
ROM provided a support for complex variables and calculations in the form of
dedicated, assemblycode keywords, that was much better than previous
implementations (15C excepted) but was still a bit tedious to use.
The complex number support appeared on HP desktop computers properly integrated
to the language only with the Basic 5.0 (1987) on
series 200/300 (the "COMPLEX BIN") with an implementation similar to
the HP71B Math ROM, the main difference is the use of the CMPLX(x,y) function
to create a complex value in lieu of the HP71B (x,y) tuple.
The polynomial root finder has been provided on many previous computers and calculators, it is difficult to clearly identify the origin. However, the HP75C and HP71B Math ROM implementations in assembly code are much more efficient.
The finite/fast Fourier transform has been available on several previous machines, often as a user language program as in the HP41C Math ROM, but the HP71B version (derived from the HP75C) is an efficient assemblycode implementation.
The direct predecessor of the HP71B Math ROM is the HP75C equivalent ROM. Both modules have similar functionalities (they have been managed by the same project leader, see L. Grodd bio here), the HP71B version is more powerful in several aspects but lacks some of the HP75C features, unfortunately.
On Math ROM predecessors:
Other technical literature:
The goal of this project is to document the Math ROM (we don't have the original source files, nor anything like a Math ROM IDS document) and possibly modify and extend the original version.
The project was in my
mind since a long time, I already did a similar task with the reconstruction
of the JPC ROM sources for which I had access to most
individual LEX source files (very often outdated), and a disassembly done by
Rodger Rosenbaum as starting points.
Nothing similar exists for the Math ROM. There were several attempts to
partially disassemble the Math ROM to extracted a few functions and build
standalone LEX files, for instance the TYPE LEX
from PPCParis or my own BCONV LEX. Other
attempts to produce a complete disassembly file may have been done in the past,
but I have no trace on them.
My goal was to get something that could be properly called 'source files', with enough comments to understand the program structures and the logic behind the binary code. I believed it was possible because the HP71B system is very well documented with the IDS documents. Also the Math ROM, like other ROM or LEX for the HP71B, heavily relies on the HP71B internal routines (the socalled supported entry points).
The key event was finally convicted me that it was feasible is the recent availability of the HP75C Math ROM source files. As recognized earlier, both modules have very close functionalities. There are some differences in the implementation especially in the complex number support and the two machines are based on very different CPU architecture (Saturn vs Capricorn), but the underlying algorithms are the same (or very similar) so it is possible to use the HP75C Math ROM sources as a guide.
To recreate the Math ROM source files, I manually disassembled the whole 28K of the HP71B Math Lex, sorted out the embedded data or special programming structures, identified the Math ROM keyword entry points and split the code into functional sections in separated files. I finally successfully assembled the exact Math ROM version 1A on Dec. 2019.
The present preliminary
release (Dec. 2019) already documents several parts, mainly the scalar (real
and complex) functions, actually well enough to start enhancing the ROM (see
below) !
However, this is only the start. I'm aware that other parts of the ROM (the
matrix functions or the solver, for instance) will be much more difficult to
document.
This is a big project, and it will keep me busy for several months.
Objectives:
The objectives of the "Enhanced Math LEX" are:
 to add missing keywords or features, mainly compared to the HP75C Math ROM,
 possibly to improve some math functionalities from the HP28C/S and/or HP42S of the time (8788),
 NOT to add anachronistic features for instance from the HP50G and Prime of the XXI century,
 to use the full 32 KB available space (but not beyond, to fit in a 32K port),
 and to remain 100% backward compatible with the Math ROM 1A.
Version 2A:
This version provides these functional enhancements:
 support of complex arguments with the inverse trigonometric ASIN/ACOS/ATAN, inverse hyperbolic ASINH/ACOSH/ATANH and decimal log LGT functions, these operations were missing in the Math 1A ROM,
 enhancement of the complex square operation z^2, now internally computed as z*z to provide the same functionality and accuracy on complex numbers than the x^2 key on other calculators (15C, 28C/S, 42S),
 addition of the cotangent, secant and cosecant functions (COT, SEC and CSC) for HP75C and series 80 compatibility.
Please contact me if you have any suggestions, bug fixes or enhancements to propose!
If you
want to modify and reassemble the Math LEX, you may need the following tools:
(these are 16bit DOS applications, use DOSBox on 64bit systems)
You can also refer to this updated Entry Point List:
If you have more information on the Math ROM history, or if you have bug reports or suggestions for improvement, please contact me:
JF Garnier, 2020