HP Forums

Full Version: Sandmath-II and 41Z - questions to Angel
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Hi Angel if you are reading,

I am getting confused over the versions and usage of your wonderful modules...

For Sandmath-II, is it a replacement for the 8K Sanndmath module ? it seems that no 12K version is available any more on TOS, does it mean we need to use the ALGEBRA module instead ?

For 41Z, I downloaded the latest version, and I am getting confused over the key assignements. When I execute ZK?YN and press Y, the "SIGMA+" key, which used to prompt "Z" for Z commandes, now displays "-HP 41Z". Is it normal ?

Also, be it with V41 or i41CX+, CAT 2 does not display the whole 41Z catalog (only the ZMATH and ZVECTOR "subdirs")... unless the CCD module is plugged in, in which case everything is ok... ?

it would be nice if you could post a summary about with are the current versions of all your modules, so that no confusion exists ;)

Many thanks and best regards,


Hi Vincent, yes I'm reading :-)

First off, you're not alone in this confusion - I myself need to have a roadmap to keep track of all the different versions and releases of these two modules - in particular the SandMath saga - so I can't imagine what's like for the casual user.

So let me try to do a summary recap. The 41Z is easier, let's tackle it first.

Because of the different addiditons and enhancements made to it, the FAT function order has slightly changed from some older revisions to the current one (9H). This explains why your key assignments can be mixed up, if they were made using a previous version of the module. The internal "ZY?YN" function is supposed to be alright whichever revision, in other words consistent with the changes made. Revision 9H assigns "ZKBRD" to the SIGMA+ key, but it's possible that the one you're using has some glitches.

I typically use only ZKBRD and not the complete USER keyboard, as that gives me better compatibility with the standard functions (i.e. for real numbers) and with the SadnMath launchers - Also it doesn't take up so many KA registers.

As to the CAT2 listings - you're correct, because of the length of the "header" functions being less than 7 they don't show up in the standard CATALOG - only the CCD-style. I did it this way to allow direct execution of the functions using "XEQ, ALPHA, fcn_name". Since I always have the AOSX module plugged in (the 4k subset of the CCD) it's a non-issue to me, but I could change it of course.

BTW, revision 9H is not released yet . I just finished making big changes to the launchers code, replacing an old pedestrian scheme with a MCODE-table based new one. This has resulted in huge space savings, more than 256 bytes freed up so I could "squeeze" in the wonderful ZZETA program - adapted from JM Baillard's original one.

I'm leaving the SandMath for later, this is getting kinda long.
Thanks again for your interest in these modules.

Best, ÁM

Hey Angel,
Many thanks for your fast and detailed answer ! I shall wait for the Sandmath saga then ;)
Just a few clarifications about 41Z: I am using 9F, the latest available on TOS. Starting fresh with a clear memory, using ZK?YN does NOT assign ZBRD properly. But the previous version (supplied with V41) does !
Also, with 9F, clearing memory trying leaves the calc in a state when nothing can be done - compley bricked until your remove the module, on both V41 and i41CX+. Is it normal ?

Thanks and cheers,


clearing memory trying leaves the calc in a state when nothing can be done - compley bricked until your remove the module, on both V41 and i41CX+. Is it normal ?

Well, it's a bug - so it's not "normal". I changed the code to make use of the CPU M register not realizing that the [RESIZE] routine overwrites it. A previous version was using register Q(9), but I consolidated the two interrupts (Memory_Lost and CALC_ON) and that's when it got broken.

Anyway it's also fixed in version 9H, if you tell your email I'll be glad to send it to you.


Thanks Angel !
Actually you do have m'y email, since we had an chat by mail with Antonio this morning ;) thanks if you can send it !

In the beginning the SandMath was available in two flavors, the 8k version and the 12k version - with the latter just adding a Matrix/Polynomial section on top of the 8k version, and thus a real superset.

The 12k footprint has some obvious issues that made me reconsider that arrangement. Besides, more Matrix routines were competing for the same space, and there was no available room in the 12k version to accomodate for them. The straw that broke the camel's back was my new "Matrix Editor" mode, which required substantial room to code and would never fit in the 12k - so it was time for a new approach.

That's when I rolled the 8k version into the "SandMath-II", as a direct replacement, and when I released the ALGEBRA module. This one is a self-contained ROM, that does not have any dependencies on the SandMath-II - so they can be used independently.

So far so good, but there are a few side frills that make the story more interesting :-).

Shortly after this (or it may have been simultaneously, not sure anymore) I decided to put together a Matrix add-on to the SandMath-II. This is available as the MATRIX ROM, a 4k module that only works in combination with the SandMath-II. Its contents is basically the same as the matrix-related stuff in the ALGEBRA module - but of course it lacks everyting else. The 4k-MATRIX ROM is a subset of the ALGEBRA Module.

But wait, the plot thickens:- As both the 8k-ALGEBRA and the 4k-MATRIX rely on the ADVANTAGE Pack (all those wonderful MCODE Array functions from the CCD being there), it occurred to me that the ultimate MATRIX module should be a page-switched, 12-k construct occupying just 8k, with (at least) the same contents as the MATRIX rom plus all the Matrix functionality of the Advantage Pack.

And that's the ADVANCED_MATRIX Pac - which BTW also retains both SOLVE and INTEG just to make things more complicated :-) In truth, this was motivated by the page-switching design, and also due to the fact that one of the 4k blocks doesn't have a FAT (obviously). SOLVE and INTEG are monster routines, filling up 3/4th.s of a block, so they lend themselves splendidly to this usage.

In case you wonder, the ADVANCED-MATRIX Pack does not require the SandMath-II module either, so there's some inevitable redundancy but the dependencies are removed. However it does not have the Polynomial programs of the ALGEBRA ROM, so alas, it's not a superset of it.

The obvious missing piece in all this jigsaw puzzle would be a 4k-Polynomial ROM, to use on top of the ADVANCED_MATRIX Pac to come up with a real superset of the ALGEBRA Module with the Advantage Pack power into it. Are we lost yet? I am, somebody please draw a sketch! ... "-)

Which ones to use? Your choice, depends on what you're more likely to do or need at a given point.

PS. In case you got this, let me throw another couple of logs to the bonfire:- Another two modules that are very closely related to the ones described above are the "BESSEL ROM" and the "POLYNOMIAL_ROM", done in collaboration with Jean-Marc Baillard. Those two are also self-contained, and treat the subjects with a deeper/wider reach. Not for the faint of heart, but a wonder for the adventurous.

Hope this helps, and again thanks for your interest in all those roms.


Would it help to move all the reusable code into it's own 4K MATHLIB module and then have the other modules as pure 4K modules calling MATHLIB when needed? More modular methinks.

Thanks Angel for the detailed explanation !
Just to add to the confusion: I noticed you also did a curve fitting module. How is it compared to the ADVANTAGE CFIT or with the one in AEC ? i noticed that you left the SILOOP routine in your advanced matrix pac and that you have some linear régression routines in Sandmath, how is all this related ?
Thanks and cheers

The CurveFitting Module is a compendium of all the related techniques from the other modules, as follows:

1. includes the AECrom functions and programs - impressive!

2. includes the Advantage Pack CFIT

3. includes W. Kolb's seminal CF program

4. throws in the Standard pack CFIT just for kicks

5. plus a selection of statistical and probability functions, among which you've seen the Linear regression (also in the SandMath)


PS. SILOOP and SIRTN must remain in the ADVANCED_MATRIX as they're an integral component of SOLVE / INTEG. A real wonderful implementation, worth spending some time studying...


So many modules, so confusing to most of us. :-)


Please give us a short list of the modules you presently have on TOS along with a short explanation of what is in them. 2 sentences perhaps. Please indicate which roms are "obsolete"

I think it would also help if you could indicate which roms are in the 41CL and what the 4 letter rom abbreviation is in the 41CL.

This is not a criticism! I LIKE your rom enthusiasm but it is difficult to keep them straight! :-)

And, any chance we can get a curvefit .rom format? Our 41CL units are waiting. ;-)

Edited: 4 Oct 2011, 10:28 a.m.

Yes methinkstoo - albeit it's easier to say it than to do it. At the end of the day it's all about footprint and there's only 32k that can be actively mapped at a time. Add to that the other system constraints (limited FAT entries, XROM id# conflicts) and you'll have a nice challenge in your hands.

On the other hand, work to get port #4 as a silent library is already in progress... just not only with a MATH focus though.

No worries, here's the list in all its alphabetical glory:
(have you used the CLLIB function already?)

#	ID	Size	Name	        Author
1 A41P 12k Advantage Pac HP Co.
2 AADV 4k Advantage Apps J-F Garnier
3 ADV1 16k Adventure_1 Angel Martin
4 ADV2 12k Adventure_2 Angel Martin
5 AEC3 8K AECROM 13-digit Angel Martin
6 AECR 8k AECROM Red Shift
7 AFDE 8k AFDC1 GunZen
8 AFDF 8k AFDC2 GunZen
9 AFIN 4k Auto Finance GMAC
10 ALGG 8k Algebra ROM Angel Martin
11 ALGY 4k Astrology ??
12 ALPH 4k ALPHA ROM A. Martin & D. Wilder
13 AOSX 4k AMC OS/X Angel Martin
14 ASM4 4k Assembler4
15 ASMB 4k Assembler3
16 ASTT 16k ASTRO-2010 Jean-Marc Baillard
17 AUTO 4k Auto-Start/Dup HP Co.
18 AV1Q 4k AV1 ROM Beechcraft
19 AVIA 4k Aviation Pac HP Co.
20 B52B 8k B-52 ROM Boeing
22 BESL 8k Bessel ROM A. Martin & JM Baillard
23 BLDR 8k BLD ROM W. Doug Wilder
24 BLND 4k Bufferland ROM Angel Martin
25 CCDP 8k CCD Plus Angel Martin
26 CCDR 8k CCD Module W&W GmbH
27 CCDX 4k CCD OS/X Raymond del Tondo
28 CHEM 4k Chemistry User
29 CHES 8k Chess/Rubik's A. Martin & C. Roetlgen
30 CIRC 4K Circuit AnalysisHP Co.
31 CLIN 4K Clinical Lab HP Co.
32 CLUT 4k CL Utils 1H Angel Martin
33 CURV 8k Curve-Fitting Angel Martin
34 CVPK 8k Cv-Pack ROM
35 DA4C 4k DisAssembler4C W. Doug Wilder
36 DACQ 8k Data Acq Pac HP Co.
37 DASM 4k DisAssembler4D W. Doug Wilder
38 DAVA 4K David Assembler 2C David van Leeuwen
39 DEVI 8k HP-IL Development HP Co.
40 DIIL 4k HP-IL Diagnostics HP Co.
41 DMND 4k Diamond ROM
42 DYRK 4k Dyerka ROM David Yerka
43 E41S 8k ES41 Module
45 EXIO 4k Extended I/O HP Co.
46 EXTI 4k Extended-IL ROM Ken Enery
47 FACC 4k 300889_FACC ??
48 FINA 4k Financial Pac HP Co.
49 FRTH(*) 8k FORTH Module Serge Vaudenay
50 FUNS 8k FunStuff Module Angel Martin
51 GAME 4k Games Pac HP Co.
52 GMAS 4k Auto Finance-2 GMAC
53 GMAT 8k Auto Finance-3 GMAC
54 HCMP 4k HydraComp ROM Paul Monroe
55 HEPR 4k HEPAX RAM VM Electronics
56 HEPX 16k HEPAX Module VM Electronics
57 HOME 4k Home Mngmt. Pac HP Co.
58 ICDO 4k Icode ROM
59 IDC1 8k ML-ICD BCMC 1987
60 IDC2 4k BG/UG IDC BCMC 1985
61 JMAT 8k JMB Math Jean-Marc Baillard
62 JMTX 8k JMB Matrix Jean-Marc Baillard
63 ILBF 4k IL-Buffer Angel Martn
64 KC135 12k? Weight & Balance Comp. ??
65 L119 8k AFDC-1E-003 Zengun
66 LAIT(*) 4k LaitRAM XQ2 LaitRam Corp.
67 LAND 4k Land Navigation Warren Furlow
68 LBLS 4k Labels ROM W. Doug Wilder
69 MADV 12k Modified Advtg Angel Martn
70 MATH 4k Math Pac HP Co.
71 MCHN 4k Machine Pac HP Co.
72 MDP1 8k AFDC-1F ROM Zengun
73 MDP2 8k AFDC-1F ROM Zengun
74 MELB 4k Melbourne ROM PPC Members
75 MFLB 4k Mainframe Labl David van Leeuwen
76 MILE 8k Military Eng ROM ??
77 MLRM 4K ML ROM Frits Ferwerda
78 MPLB 8k? Multi-Prec. Lib Peter Platzer
79 MTRX 4k MATRIX ROM Angel Martin
80 MTST 4k MC Test ROM ??
81 MUEC 8k Muecke ROM Mücke Software GmbH
82 NAVI 8k Navigation Pac HP Co.
83 NCHP 4k NoVoCHAP G. Isene & A. Martin
84 NFCR 4k NFC ROM Nelson F. Crowe
85 NPAC 8k NavPac ROM ??
86 NVCM 8k NaVCOM 2 ??
87 OILW 8k OilWell Module Jim Daly
88 P3BC 16k Aviation P3B/C ??
89 PANA 8k PANAME ROM S. Bariziene & JJ Dhenin
90 PARI 4k PARIO ROM Nelson F. Crowe
91 PCOD 4k Proto-Coder 1A Nelson F. Crowe
92 PETR 8k Petroleum Pac HP Co.
93 PFST 4k ProfiSet Winfried Maschke
94 PLOT 8k Plotter Module HP Co.
95 PMLB 4k PPC Melb ROM PPC Members
96 POLY 8k Plolynomial ROM A. Martin & JM Baillard
97 PPCM 8k PPC ROM PPC Members
99 PS0F 4k Profiset Subset Winfried Maschke
100 QUAT 8k Quaternions ROM Jean-Marc Baillard
101 RAMP 4k RAMPage Module Angel Martin
102 REAL 8k Real State Pac HP Co.
103 ROAM 4k ROAM Module Wilson Holes
104 ROMS 4k SV's ROM Serge Vaudenay
105 SANA 12k SandMath-12k Angel Martin
106 SBOX 8k SandBox Angel Martin
107 SEAK 4k SeaKing MK5 Navy Air
108 SECY 4k Securities Pac HP Co.
109 SGSG 4k Gas Module SGS Redwood
110 SIMM 16k SIM Module
111 SKWD 4k Skwid's BarCode Ken Emery
112 SMCH 8k Speed Machine Alameda Mngmt. Corp.
113 SMPL 4k Simplex Module Phillipe J. Roussel
114 SMTS 8k SandMath-8k Angel Martin
115 SND2 8k SandMath-II Angel Martin
116 SPEC 4k Spectral An. Jean-Marc Baillard
117 SRVC(*) 4k Service ROM HP Co.
118 STAN 4k Standard Pac HP Co.
119 STAT 4k Statistics Pac HP Co.
120 STRE 4k Stress Analysis HP Co.
121 STRU 8k Structural An. HP Co.
122 SUPR 8k SUP-R-ROM James W. Vick
123 SURV 4k Surveying Pac HP Co.
124 THER 4k Thermal Pac HP Co.
125 TOMS 4k Tom's ROM Thomas A. Bruns
126 TOOL 4k ToolBox-II Angel Martin
127 TREK 4k Start Trek Angel Martin
128 TRIH 4k 83Trinh Phil Trinh
129 UNIT 4k Unit Conversion Angel Martin
130 USPS 8k Mail Delivery USPS
131 YFNS 4k Alternate YFNS Monte Dalrymple
132 YFNZ 4k Main YFNS Monte Dalrymple
133 Z41Z 8k 41Z Module Angel Martin
134 ZENR 4k Zenrom Zengrange Ltd.
135 ZEPR 4k Programmer Zengrange Ltd.

Great, now which of yours in this list are obsolete?

(My CLUTILs version did not have that function - hopefully in a week or two it will)

Remember that using block 4 will be incompatible with the HP-IL module when the printer enable switch on the latter is turned off. The switch moves the printer ROM from page 6 to page 4.

Great, now which of yours in this list are obsolete?


They're all there, actively supported at no cost :-)

Gene, your machine includes the curvefit ROM. It's the upper

page of the image loaded with the CURV mnemonic.

There are a couple of errors in this table.

The mnemonic for the Mainframes Labels is "MLBL"

The mnemonic for the Multiprecision Library is "MLTI"

and it is a 4k ROM.

Remember that mnemonics must use unique first and last
characters to be parsed correctly.

Why turn it off, though?

because you may:

a) use the IR printer, and the IR module takes page #6

b) not have any printer and want to spare the CAT2 searches

c) none of the above :)

Or because you have the 82143A printer.