HP Forums
HP-41 - Memory modules - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html)
+--- Forum: General Forum (/forum-4.html)
+--- Thread: HP-41 - Memory modules (/thread-12758.html)

Pages: 1 2


HP-41 - Memory modules - albertofenini - 04-08-2019 07:26 AM

Hi everyone,
it may be a stupid question, or may be I'm just too lazy to look into the documentation.
We are starting to clean and restore our Coconut units,
so far we have brought back to life two card readers and we will work on the units soon,
will also post pictures if of interest.
However, between the pieces we have some extended memory modules.
How can we check if they are working ?
Question is, what's the command we can type to check the basic capacity of let's say an HP41C
and then once added the module retype the same command to check if size has increased ?
Thanks everyone and apologies if it is a easy one ...


RE: HP-41 - grsbanks - 04-08-2019 07:59 AM

On a 41C you have to use EMDIR to get a listing of the files in extended memory and the number of registers of X-Mem free is returned to X.

You also need the X-Func module on a 41C or CV to be able to use an X-Mem module. The CX has the X-Func module baked into its ROM so you don't need that module.

The X-Func module provides 126 registers of X-Mem of which 124 are usable. Each X-Mem module provides a further 240 registers of which 238 are usable. So, after running EMDIR, X should be left with 124, 362 or 600 depending on the number of X-Mem modules installed.

If you plug two X-Mem modules into the 41C, make sure they are not one underneath the other. Either have them both in the same row or organized diagonally.


RE: HP-41 - Jurgen Keller - 04-08-2019 06:42 PM

I once wrote a small test program. Unfortunately, the article is in German but maybe Google translate helps ...


RE: HP-41 - grsbanks - 04-09-2019 07:39 AM

(04-08-2019 06:42 PM)Jurgen Keller Wrote:  I once wrote a small test program. Unfortunately, the article is in German but maybe Google translate helps ...

Here's a translation of that article that got nowhere near Google Smile

In the HP-41 Memory Test article I promised an Extended Memory test program. It's high time to keep that promise!

It works in a similar way to earlier programs, i.e. a value is written to every X-Mem register and then read back. If the same value is read back then the register under test is deemed to be OK.

An HP-41CX - or an HP41C/CV with X-Func module - has 124 X-Mem registers. An HP 82181A X-Mem module adds a further 238 X-Mem registers. Up to two such modules can be plugged in, bringing the maximum memory configuration up to 124 + 2 * 238 = 600 X-Mem registers.

The "XMEMT" program starts by using EMDIR to find out how many X-Mem registers are usable. If they're all in use, the program bails out with a "DATA ERROR." If you want to make sure that all registers are tested then you must delete any pre-existing files.

Here's the program.

It may take some time...


RE: HP-41 - albertofenini - 04-09-2019 11:19 PM

First of all, thanks everyone for the answers
May be, I should just go back to read the manual, so let me apology if the question was dumb.
I'll try to make myself more clear.
If I reset my HP41C by keeping pressed the Key <- , turning on and letting the key
the unit says memory lost, which is exactly what I expect and to me means the machine is empty
If I press PRGM it says 00 REG 46
Then I'm able to store data in a register up to <number> STO 16
after that, it says NON EXISTENT
If I insert the module 82106A, and repeat the reset procedure, when entering PRGM it keeps
saying 00 REG 46 while I was expecting a bigger value because of the module,
but I can store date in registers up to <number> STO 80, I get NON EXISTENT if try to store
in REG 81.
This makes me think that the module works, as I get more registers.
As I said, I should probably goes back to the basic concept of the structure which I have somehow
forgotten,
however if anyone can explain me this I will be grateful.
take care !


RE: HP-41 - rprosperi - 04-10-2019 02:25 AM

(04-09-2019 11:19 PM)albertofenini Wrote:  First of all, thanks everyone for the answers
May be, I should just go back to read the manual, so let me apology if the question was dumb.
I'll try to make myself more clear.
If I reset my HP41C by keeping pressed the Key <- , turning on and letting the key
the unit says memory lost, which is exactly what I expect and to me means the machine is empty
If I press PRGM it says 00 REG 46
Then I'm able to store data in a register up to <number> STO 16
after that, it says NON EXISTENT
If I insert the module 82106A, and repeat the reset procedure, when entering PRGM it keeps
saying 00 REG 46 while I was expecting a bigger value because of the module,
but I can store date in registers up to <number> STO 80, I get NON EXISTENT if try to store
in REG 81.
This makes me think that the module works, as I get more registers.
As I said, I should probably goes back to the basic concept of the structure which I have somehow
forgotten,
however if anyone can explain me this I will be grateful.
take care !

Adding RAM modules initially allocates the new extra RAM as additional storage registers (16 increased to 80 - which is correct as each module adds 64 registers), however you can change the allocation (between program steps and storage registers) using the SIZE command. XEQ SIZE prompts for 3-digit number, and then changes the number of storage registers to the number you specify ( 00 thru NNN-1 ).


RE: HP-41 - grsbanks - 04-10-2019 05:11 AM

Alberto, earlier you mentioned "Extended Memory" modules.

These have no influence on the number of registers available to store programs in or on the number of storage registers.

However, you then go on to mention the 82106A, which is a 64-Register add-on for "internal" memory and nothing to do with Extended Memory.

I'm confused now...


RE: HP-41 - albertofenini - 04-10-2019 11:19 AM

(04-10-2019 05:11 AM)grsbanks Wrote:  Alberto, earlier you mentioned "Extended Memory" modules.

These have no influence on the number of registers available to store programs in or on the number of storage registers.

However, you then go on to mention the 82106A, which is a 64-Register add-on for "internal" memory and nothing to do with Extended Memory.

I'm confused now...

Sorry for the confusion, that shows how newbie I'm in this ...
I really meant the optional module 82016, and I have understood more with the previous replies
However, now I'm curious to know what the "extended memory" really is and what the difference is between the two
To me, and this is probably where the misunderstanding comes from, adding a module that raise the number of registers
(or programming steps) somehow extends the capabilities,
hence why I called this extended memory


RE: HP-41 - Massimo Gnerucci - 04-10-2019 11:29 AM

This brings back memories from 30 years ago, in a similar but different context...
:)


RE: HP-41 - grsbanks - 04-10-2019 11:35 AM

The manual for the 82180A X-Func/Mem module gives a reasonable explanation of the difference between Extended Memory and Register Memory.

https://www.thecalculatorstore.com/WebRoot/StoreES3/Shops/eb9376/547C/A5D4/BAD3/4C92/AF56/AC10/1416/D49C/82180A_Extended_Functions_-_Memory_Module.pdf


RE: HP-41 - albertofenini - 04-10-2019 11:42 AM

(04-10-2019 11:35 AM)grsbanks Wrote:  The manual for the 82180A X-Func/Mem module gives a reasonable explanation of the difference between Extended Memory and Register Memory.

https://www.thecalculatorstore.com/WebRoot/StoreES3/Shops/eb9376/547C/A5D4/BAD3/4C92/AF56/AC10/1416/D49C/82180A_Extended_Functions_-_Memory_Module.pdf

Thank you very much !


RE: HP-41 - rprosperi - 04-10-2019 12:44 PM

(04-10-2019 11:29 AM)Massimo Gnerucci Wrote:  This brings back memories from 30 years ago, in a similar but different context...
Smile

Funny you mention this, when the DOS Extended vs. Expanded RAM confusion and product battles were occurring in the late 80's it made me think of the 41 main vs. eXtended RAM confusion in the early 80s!

Remember LIM EMS?

In DOS, I ended up using QEMM with a config.sys startup line more than 80 chars long specifying the various options, address holes, usage for cache, etc., etc. Fun times.


RE: HP-41 - Memory modules - Dave Britten - 04-10-2019 04:01 PM

(04-10-2019 11:29 AM)Massimo Gnerucci Wrote:  This brings back memories from 30 years ago, in a similar but different context...
Smile

That quote from Gates is apocryphal at best, and completely fabricated at worst. The whole 640K thing mostly came about because IBM had to put the ROMs and memory mapped I/O somewhere, and the upper end of the system's 1 MB address space seemed as good a place as any. They had no idea they were creating a computer whose architecture would persist for decades; that just wasn't really a thing at the time the IBM PC was created. It was only important that a 640 KB max was "good enough" for that specific computer model, until they released something to replace it in a few years. The 640 KB/1 MB memory limit was due to the 20-bit address bus of the Intel 8088 and 8086 used in that computer.

But then MS-DOS and a whole host of real-mode software came along, IBM was met with great success in the desktop computing market, other manufacturers started cloning the machine, and a de-facto "IBM PC-compatible" architecture was born. Lotus, Intel, and Microsoft got together and created the Expanded Memory (EMS) spec, which was just bank-switching RAM from an expansion board in and out of the CPU's address space. This allows real-mode (8086) programs to use considerably more than 640 KB. You can also get EMS on an HP 100/200 LX with a driver that uses the palmtop's memory controller to swap blocks of an EMS file on the RAM disk directly in and out of the EMS page frame in the upper-memory area.

Then the 286 and 386 added protected modes with wider addressing that could directly address more than 1 MB of memory, but the problem is that MS-DOS itself was still real-mode software, as was a great deal of entrenched software designed to run on MS-DOS. These all ran in the CPU's real mode (thus acting exactly like an 8086), or in the case of a multi-tasking OS such as Windows that could run DOS software, in the 386's virtual 8086 mode, where the 1 MB limit still applied. The hardware 640 KB limit has been long gone since the 286, but the software lagged behind, using the legacy modes of the CPU. Software like EMM386 could provide EMS for these real-mode programs by running DOS in the 386's virtual 8086 mode, and using virtual memory to move EMS blocks in and out of address space, but that lower 640 KB was still crucial for these programs.

We've seen a similar thing happen recently with the shift from 32-bit to 64-bit addressing architectures. 64-bit CPUs provide pretty seamless compatibility with 32-bit executables, much like the 32-bit 386's virtual 8086 mode could run the old 16-bit software, but like the memory limits of yesteryear, a 32-bit version of Excel will still be limited to using a couple GB of memory on a 64-bit system. (Yes, I have hit that limit in Excel a couple of times, and no, it wasn't pretty. I had to use a machine with 64-bit Excel to finish the analytics I was trying to do.)


RE: HP-41 - Memory modules - Massimo Gnerucci - 04-10-2019 06:30 PM

(04-10-2019 12:44 PM)rprosperi Wrote:  
(04-10-2019 11:29 AM)Massimo Gnerucci Wrote:  This brings back memories from 30 years ago, in a similar but different context...
:)

Funny you mention this, when the DOS Extended vs. Expanded RAM confusion and product battles were occurring in the late 80's it made me think of the 41 main vs. eXtended RAM confusion in the early 80s!

Indeed, I remember that - at the time - I thought that I already went thru all of that! ;)

(04-10-2019 12:44 PM)rprosperi Wrote:  Remember LIM EMS?

Sure!
And I remember how much expensive were all those RAM cards.

(04-10-2019 12:44 PM)rprosperi Wrote:  In DOS, I ended up using QEMM with a config.sys startup line more than 80 chars long specifying the various options, address holes, usage for cache, etc., etc. Fun times.

Ditto!
And I stayed with the dynamic duo QEMM + DV386 up to 1996, when Windows 95, not running under DV, forced me to embrace the Win world.

[Image: 51FBVED35VL._SX304_BO1,204,203,200_.jpg]


RE: HP-41 - Memory modules - Massimo Gnerucci - 04-10-2019 06:38 PM

(04-10-2019 04:01 PM)Dave Britten Wrote:  
(04-10-2019 11:29 AM)Massimo Gnerucci Wrote:  This brings back memories from 30 years ago, in a similar but different context...
:)

That quote from Gates is apocryphal at best, and completely fabricated at worst. The whole 640K (...)
I had to use a machine with 64-bit Excel to finish the analytics I was trying to do.)

Yes Dave: I am very well aware of that. I was there, and was so lucky to have first hand experience.
And I concur with your recap. Thank you.


RE: HP-41 - Memory modules - Dave Britten - 04-10-2019 07:05 PM

(04-10-2019 06:38 PM)Massimo Gnerucci Wrote:  
(04-10-2019 04:01 PM)Dave Britten Wrote:  That quote from Gates is apocryphal at best, and completely fabricated at worst. The whole 640K (...)
I had to use a machine with 64-bit Excel to finish the analytics I was trying to do.)

Yes Dave: I am very well aware of that. I was there, and was so lucky to have first hand experience.
And I concur with your recap. Thank you.

Just wanted to clear the air and make sure nobody got the impression that "dumb ol' IBM and Bill Gates" did anything unusually short-sighted with regards to the 1 MB limit. Mac OS also had its own shortcomings that were artifacts of the design constraints of that original 128 KB model, and they never went away until they scrapped the whole thing and made Mac OS X 16 years later.

IBM just had the distinction of having their "architecture" cloned and suddenly all the implementation details and limits became compatibility requirements. If the same had happened to the Apple II (or at least to the same degree - there were a couple clones) we'd probably be bitching about Woz's design instead. Smile


RE: HP-41 - Memory modules - Massimo Gnerucci - 04-10-2019 08:02 PM

(04-10-2019 07:05 PM)Dave Britten Wrote:  
(04-10-2019 06:38 PM)Massimo Gnerucci Wrote:  Yes Dave: I am very well aware of that. I was there, and was so lucky to have first hand experience.
And I concur with your recap. Thank you.

Just wanted to clear the air and make sure nobody got the impression that "dumb ol' IBM and Bill Gates" did anything unusually short-sighted with regards to the 1 MB limit. Mac OS also had its own shortcomings that were artifacts of the design constraints of that original 128 KB model, and they never went away until they scrapped the whole thing and made Mac OS X 16 years later.

IBM just had the distinction of having their "architecture" cloned and suddenly all the implementation details and limits became compatibility requirements. If the same had happened to the Apple II (or at least to the same degree - there were a couple clones) we'd probably be bitching about Woz's design instead. :)

A couple clones? :) Are you sure? I remember quite a lot of them...
Ooops: you really find everything on Wikipedia! ;)

But I had a ][+ @work and a //e @home.

And, again, I concur with your POV.


RE: HP-41 - Memory modules - Dave Britten - 04-10-2019 08:18 PM

(04-10-2019 08:02 PM)Massimo Gnerucci Wrote:  A couple clones? Smile Are you sure? I remember quite a lot of them...
Ooops: you really find everything on Wikipedia! Wink

That's definitely a much longer list than I had realized! I was only really familiar with the Franklin Ace and VTech Laser product lines.


RE: HP-41 - Memory modules - Sylvain Cote - 04-21-2019 01:52 PM

(04-10-2019 11:19 AM)albertofenini Wrote:  
(04-10-2019 05:11 AM)grsbanks Wrote:  Alberto, earlier you mentioned "Extended Memory" modules.

These have no influence on the number of registers available to store programs in or on the number of storage registers.

However, you then go on to mention the 82106A, which is a 64-Register add-on for "internal" memory and nothing to do with Extended Memory.

I'm confused now...

Sorry for the confusion, that shows how newbie I'm in this ...
I really meant the optional module 82016, and I have understood more with the previous replies
However, now I'm curious to know what the "extended memory" really is and what the difference is between the two
To me, and this is probably where the misunderstanding comes from, adding a module that raise the number of registers
(or programming steps) somehow extends the capabilities,
hence why I called this extended memory

FYI, This is the RAM memory map for the HP-41 related to the module and memory types

Code:
+-------------------------+-----------+------+--------------+--------------+
| Description             | Registers | Type | From Address |   To Address |
+-------------------------+-----+-----+------+--------------+--------------+
| 41C/CV/CX status registers    |  16 | main |    0 (0x000) |   15 (0x00F) |
+-------------------------------+-----+------+--------------+--------------+
Code:
+-------------------------------+-----+------+--------------+--------------+
| 41C  build-in memory          |  64 | main |  192 (0x0C0) |  255 (0x0FF) |
| 41C  +1 x 82106A memory       | 128 | main |  192 (0x0C0) |  319 (0x13F) |
| 41C  +2 x 82106A memory       | 192 | main |  192 (0x0C0) |  383 (0x17F) |
| 41C  +3 x 82106A memory       | 256 | main |  192 (0x0C0) |  447 (0x1BF) |
| 41C  +4 x 82106A memory       | 320 | main |  192 (0x0C0) |  511 (0x1FF) |
+-------------------------------+-----+------+--------------+--------------+
| 41C  +1 x 82170A quad memory  | 320 | main |  192 (0x0C0) |  511 (0x1FF) | replace 4x 82106A memory module, hence the name quad
+-------------------------------+-----+------+--------------+--------------+
Code:
+-------------------------------+-----+------+--------------+--------------+
| 41CV build-in memory          | 320 | main |  192 (0x0C0) |  511 (0x1FF) |
+-------------------------------+-----+------+--------------+--------------+
| 41CX build-in memory          | 320 | main |  192 (0x0C0) |  511 (0x1FF) |
| 41CX build-in extended-memory | 128 | ext. |   64 (0x040) |  191 (0x0BF) |
+-------------------------------+-----+------+--------------+--------------+
Code:
+-------------------------------+-----+------+--------------+--------------+
| 82180A x-fncs/memory module   | 128 | ext. |   64 (0x040) |  191 (0x0BF) | for the HP-41C/CV only, built-in in the CX
| 82181A x-memory first module  | 239 | ext. |  513 (0x201) |  751 (0x2EF) |
| 82181A x-memory second module | 239 | ext. |  769 (0x301) | 1007 (0x3EF) |
+-------------------------------+-----+------+--------------+--------------+
Code:
+-------------------------------+-----+------+--------------+--------------+
| Empty Space                   |  48 | none |   16 (0x010) |   63 (0x03F) |
| Empty Space                   |   1 | none |  512 (0x200) |  512 (0x200) |
| Empty Space                   |  17 | none |  752 (0x2F0) |  768 (0x300) |
| Empty Space                   |  16 | none | 1008 (0x3F0) | 1023 (0x3FF) |
+-------------------------------+-----+------+--------------+--------------+

edit: typo


RE: HP-41 - Memory modules - rprosperi - 04-21-2019 03:31 PM

(04-21-2019 01:52 PM)Sylvain Cote Wrote:  FYI, This is the RAM memory map for the HP-41 related to the module and memory types

A very nice (and useful) chart Sylvain, thanks for sharing this. If you have these contents in a text (or PDF, or whatever) file, suggest you post it so folks can save/print the entire thing for reference.