01-09-2020, 07:30 PM

The HP-71B Math ROM is a great module, unfortunately it lacks some features that, surprisingly, are in its predecessor the HP-75C Math ROM, see here for a comparison.

A few months ago I started my "Math ROM source file" project to document the Math ROM code and I reached a point where I can start to implement enhancements. The result is a preliminary version with these additions:

- Support of complex arguments with the inverse trigonometric ASIN/ACOS/ATAN and hyperbolic ASINH/ACOSH/ATANH functions. For some unknown reasons these inverse functions didn't accept complex arguments in the HP-71B Math ROM. This is surprising because there is a lot of space available in the ROM (about 4KB) and the algorithms were well known by HP at the time since they are implemented in the HP-15C and in the HP-75C Math ROM too.

Using the HP-75C Math ROM source files as a guide to identify and document the algorithms, it has been surprisingly easy to implement the new functions in the HP-71B Math LEX after having the scalar real and complex routines properly documented.

- Addition of the cotangent secant and cosecant functions (COT SEC and CSC). These functions are present in the HP-75C (and in the previous series 80) and were initially included in the HP-71B mainframe. However they have been removed during the HP-71B development: a trace can be found in the HP-71B source files, AB&FCN module (Functions) line 1692, with this comment: "COT CSC & SEC removed from mainframe - 3/31/83 S.B.". Now they are back !

These new functionalities actually use three different enhancement techniques:

the complex ASIN/ACOS/ATAN use the poll mechanism to enhance mainframe keywords,

the complex ASINH/ACOSH/ATANH extend existing Math LEX keywords,

the COT, SEC and CSC functions are provided as new keywords in the Math LEX.

All these three techniques are now well documented and mastered.

I'm now thinking to add several matrix functions that are missing in the HP-71B Math ROM to reach at least the level of the HP-75C equivalent ROM. It will require understanding and documenting a lot of presently poorly annotated code.

You can find this preliminary test version 2a on the new "Math ROM page" on my site: http://www.jeffcalc.hp41.eu/emu71/mathrom.html

Feel free to test it with your favourite Math routines and of course your feedbacks are welcome.

I'm confident that I didn't break anything by making a new build of the Math LEX but still be careful and save your work first!

J-F

A few months ago I started my "Math ROM source file" project to document the Math ROM code and I reached a point where I can start to implement enhancements. The result is a preliminary version with these additions:

- Support of complex arguments with the inverse trigonometric ASIN/ACOS/ATAN and hyperbolic ASINH/ACOSH/ATANH functions. For some unknown reasons these inverse functions didn't accept complex arguments in the HP-71B Math ROM. This is surprising because there is a lot of space available in the ROM (about 4KB) and the algorithms were well known by HP at the time since they are implemented in the HP-15C and in the HP-75C Math ROM too.

Using the HP-75C Math ROM source files as a guide to identify and document the algorithms, it has been surprisingly easy to implement the new functions in the HP-71B Math LEX after having the scalar real and complex routines properly documented.

- Addition of the cotangent secant and cosecant functions (COT SEC and CSC). These functions are present in the HP-75C (and in the previous series 80) and were initially included in the HP-71B mainframe. However they have been removed during the HP-71B development: a trace can be found in the HP-71B source files, AB&FCN module (Functions) line 1692, with this comment: "COT CSC & SEC removed from mainframe - 3/31/83 S.B.". Now they are back !

These new functionalities actually use three different enhancement techniques:

the complex ASIN/ACOS/ATAN use the poll mechanism to enhance mainframe keywords,

the complex ASINH/ACOSH/ATANH extend existing Math LEX keywords,

the COT, SEC and CSC functions are provided as new keywords in the Math LEX.

All these three techniques are now well documented and mastered.

I'm now thinking to add several matrix functions that are missing in the HP-71B Math ROM to reach at least the level of the HP-75C equivalent ROM. It will require understanding and documenting a lot of presently poorly annotated code.

You can find this preliminary test version 2a on the new "Math ROM page" on my site: http://www.jeffcalc.hp41.eu/emu71/mathrom.html

Feel free to test it with your favourite Math routines and of course your feedbacks are welcome.

I'm confident that I didn't break anything by making a new build of the Math LEX but still be careful and save your work first!

J-F