Posts: 2,309
Threads: 116
Joined: Jun 2005
Quote:
even in the VASM listings of the HP-41 (NoMaS) all programers comments are discarded in the math routines.
It is my understanding that the core math routines were never commented. The documentation consisted of detailed annotated flow charts, which were maintained separately from the source code.
The mainframe VASM listings were not sanitized in any way before PPC published them.
Posts: 1,755
Threads: 112
Joined: Jan 2005
Hi, Mike & Eric:
Thanks for your help. I'm not looking for general math routines or such but for specific Math ROM internal details.
I'm just finishing a program for the HP-71B, to be featured in a future article in Datafile belonging to my new "Boldly Going" series which, although already offering impresive performance, it would nevertheless benefit enormously in terms of speed and accuracy if only I could implement a couple of LEX keywords which would have to perform some pretty intrincate numeric array processing and arithmetic.
Being able to have a look at Math ROM assembly language listings would provide the necessary examples on how to parse and decompile MAT keywords, how to efficiently access array elements, and how to use internal Math ROM routines to do most of the grudgery, such as converting values back and forth between their usual 12-digit representation and the internal 15-digit form with extended exponents.
Having that kind of 'sample code' to have a look at, I would be able to concentrate in the specific math in my routine and so would be able to complete it with 1% the effort and time than if I have to try and concoct parsing, etc, starting from scratch. Due to my ever increasing lack of enough free time for these endeavours, this would surely mean the difference between being able to do it or not doing it at all.
If any of you can supply such details, either taken from existing Math ROM listings or from other sources (perhaps LEX files implementing some MAT-style keywords and such), I would be very obligued indeed. Specifically I would need to have a look at sample code to:
- Parse and decompile a MAT-style keyword (e.g.: MAT R=GINIT(N), MAT A=EVAL(A,X) )
- Efficiently access elements in a numeric array, both recall and storage
- Convert elements taken from the array in 12-digit form to 15-digit for processing, then back to 12-form for storage in the result array.
- Details (entry point, parameters, conditions on entry & exit, etc) of useful routines in the Math ROM to help with basic matrix operations such as arithmetic, scaling, zeroing, etc.
Thanks in advance if you can help with some of this, and
Best regards from V.