Calculator blog

A short one (very far from the long posts involving repairing manuals):

One of my sons is learning to do divisions, and he has to practice. So I took the HP41CL to generate random divisions. I always have among the modules virtually plugged in the system Sandmath 4x4, which has the function RND (I think it is there - the only thing for sure is that having only the advantage pack and Sandmath, it DOES work), so I made this short program in all of 1 minute, plus other 15 seconds to assign it to a key:

1 LBL RAND

2 RND

3 1E2

4 *

5 RND

6 1E6

7 *

8 END

It stores a 5 digit number in X and a 2 digit in Y. My son can execute it and press x<>y in order to get the divisor too.

There is no way I could get a faster solution with a computer or any other more modern calculator!!

Now that Christmas is close, it is the time to think about gifts for others - and for yourself. You can recall your youth, and the time when you were longing for an HP41c, and you had to settle with a lower choice; or you could afford it, but not the wealth of modules and options; or you had it, and got it lost, stolen or damaged beyond repair. Now you have the opportunity of having it back!

With a new processor, totally compatible with the original Coconut CPU but 50 times faster, having burned in its memory the contents of all known program modules and then some invented by today's programmers, and carefully assembled on pristine bodies without corrosion or screen damage, you can now buy the HP41CL from thecalculatorstore.com.

Features

50 x speed compared with the original; Switchable to several speeds including the 1:1 original.

All known software modules of that time

Many new modules designed lately, including the Sandmath family, an HP16c emulator, complex numbers, advanced matrix, etc.

All the addressable memory of the original

Additional flash memory where you can download and write new modules.

Possibility of a serial module to download new modules and capabilities from your PC

The users of the hp41c machines need to be careful while taking their calculators on a trip. The machine is sensitive to vibrations, and doesn’t have as big a capacitor as the original one (which could allow you to change batteries taking your sweet time, and all the programs and configuration would still remain). It has happened already a couple of times that a calculator sent has lost its configuration, or even wouldn’t start.

We reviewed the case in this blog issue, but we think it is relevant - when you buy such a expensive calculator, you need to be sure to be able to revive it when it has a hiccup!

The question comes then on how to initialize the calculator. There are different possible initializations, but in have to confess that this is beyond my knowledge. The only thing that I want to make sure of, is that library #4 is installed in page #4. This library comprises several subroutines that are used by a number of modules programmed and/or compiled by Angel Martin. Basically these are the sole modules being developed today, and include an interesting clone of the hp16c, the extremely powerful Sandmath modules (which turn the hp41 into a very powerful mathematical machine), the advanced matrix ROM, the Complex Functions ROM, the matrix/polynomial ROM and other operating systems and toolbox-oriented ROMs. The interesting thing is that it doesn’t use any of the typical ports, so you are free to use all your modules (also taking into account that, if you plug in the real Time module, it doesn’t occupy the corresponding pages since its functions are already in memory in the hp 41cl)

Due to the complexity of getting the right shipment option for the hp41c battery repair kit (it depends on the stage you are in the order), we have decided to increase the price a little and include the shipping cost in it. This is particularly beneficial for those out of the European Union, since they save also VAT.

Now the ordering should be much easier. Orders have begun to come in, so it must be working better than before!

On another subject: during this week end, we assembled 2 new JP 41CL with the latest circuit, including the new modules from Systemyde and Angel Martin (namely the HP16c function set clone). So, there are now 1 tall keys, satin-keyboard HP41c and 2 low keys, rugged keyboard HP41c. On demand, we could assemble too an HP41c - but personally I have always preferred the white border of the c models than the yellow of the CV or CX. Screen and keyboard are top-notch in all cases. No original box available, sorry!

There are also two Time modules available, one with English manual, and the other with French manual and original box. These are sold at 120 € if demanded with any of the HP41CLs, 150 € otherwise.

(As a comment aside, some customers complain that they can find some items cheaper in internet - but please compare apples with apples: our products bear 21% VAT on the sales price, provided that the customer sits in the European Union - hence a significant difference! Most second-hand dealers in the action sites don't charge VAT (and don't pay charge VAT to their tax administration!)

To be honest with you, athough my HP41CL has the serial connector, I have never used it. I frear too much to block the calculator - and it is a quite expensive machine!

But I have read today in Monte Dalrymple's site that he is preparing a "Flashing the HP41CL for Dummies" document. That'll be ideal for those of us who are not microprocessor programmers like Monte, Diego and others! I look forward to be able to add more images to my system. The good thing is that you can know what's the latest module you have because you can test the modules based on the recording date in Monte's manual - the first missing will show "nonexistent" on your screen - and you need to load modules from that date on"

There are three modules coming our way, with the latest modules as explained in the previous blog installment.

All of them have been loaded this week by Systemyde, so the owner will enjoy the very latest modules.

The one I am looking forward to is the HP16c Emulator module. I am not doing assembler, but once I did, so I was used to move figures from decimal to HEX and even sometimes to binary. But to be true, at that time we were using 8 bit words and 16 bit registers and addresses, so you can guess that we’re in the very first eighties!

This new module includes support for words of up to 64 bit - which is 8 of the old bytes! Even the HP41c registers were 1 byte shorter!

Monte (Systemwide “factotum”) told me that he uses it already, and defied me to use myself.

If you remember, some time ago we made a blog issue on how to change a specific function in Sandmath 2x2, in its specific use for the mighty HP41CL.

Although the HP41c and its various modules are incredibly powerful, I did not found any %T calculation in a module I wanted plugged in the system - except the latest Sandmath versions. The easiest method is to program it - it is a very short routine, whose simplicity enamored me when I first saw it in the HP41c user’s manual:

LBL %T

1/x

%

1/x

END

However, given that it was a function within Sandmath, why not using it?

Here is the catch: the Sandmath version consumes the Y argument! I mean, when you’re using %T i9n any HP financial calculator, you typically have the total in Y, the partial in X, execute the function, and you get in X the value x/y*100; but you keep the original value in Y; that way, you can clear x with CLX (which deactivates stack lift), you can enter another number and perform the same operation again, saving yourself the effort of entering Y again. The behavior in Sandmath makes it much more similar to other mathematical functions (where in general all arguments are consumed), but doesn’t behave like other HP calculators do.

So I asked Angel Martin for a fix for the Sandmath 2x2, which I published in this blog; but since then, Angel has already produced another 2 versions, each one more powerful than the precedent: Sandmath 3x3 and Sandmath 4x4. As the latest CL modules come loaded with the latter (strictly speaking, they come loaded with all of them!!), I asked Angel how to patch this version. Here’s his answer:

first plug the module, say in port 4:

“SM44”, PLUG4

Copy the module to RAM. The location of the SM44 module is 1A0 to 1A3 (is a 4 block module)

“1A0>840”, YMCPY

“1A1>841”, YMCPY

“1A2>842”, YMCPY

“1A3>843”, YMCPY

The byte to change is 0xp0C3, relative to where you put it. So:

Step 1. introduce in Alpha the text: “8400C3–1111”

Step 2. execute YPEEK. You should get “8400C3–0369”. This is to check that the previous step did work, and that you’re operating on the right byte.

Step 3. modify the Alpha value to “8400C3–0331”

Step 4. execute YPOKE.

Step 5. Plug it to the port of your choice (mine was 2):

“840–16K”, PLUG4L

What are we doing here? Basically, in that position he was addressing subroutine NFRXY, and now he substitutes it by NFRX, therefore consuming only the x argument.