Post Reply 
SIZE instruction on HP41CX
04-20-2017, 10:25 PM
Post: #1
SIZE instruction on HP41CX
Hi all,

I'm not sure about using the command SIZE. If I type SIZE? I get 0 on the X register. Then I execute SIZE 005 and then SIZE? and I get 0 again. I'm supposed to get the current allocation of register to data storage.

Am I missing something?.

Thanks in advance.
Find all posts by this user
Quote this message in a reply
04-20-2017, 10:33 PM
Post: #2
RE: SIZE instruction on HP41CX
(04-20-2017 10:25 PM)Cancuino Wrote:  I'm not sure about using the command SIZE. If I type SIZE? I get 0 on the X register. Then I execute SIZE 005 and then SIZE? and I get 0 again. I'm supposed to get the current allocation of register to data storage.

SIZE? is supposed to return the current SIZE setting, i.e. if you previously have set SIZE 005 the result should be 5 again.

You can check the actual setting: after SIZE 005 do a RCL 05. This should yield a NONEXISTENT error, while RCL 04 should be fine. If this is what you get, SIZE? is supposed to return 5.

Dieter
Find all posts by this user
Quote this message in a reply
04-20-2017, 11:32 PM (This post was last modified: 04-20-2017 11:33 PM by Cancuino.)
Post: #3
RE: SIZE instruction on HP41CX
It's not working, besides, when I EXEQ SIZE? the calculator changes to USER mode, is it supposed to work like this?.

The Command SIZE works, because after SIZE 005 RCL 05 yields NONEXISTENT but I'm still having problems with SIZE?.

Thanks.
Find all posts by this user
Quote this message in a reply
04-20-2017, 11:44 PM (This post was last modified: 04-20-2017 11:49 PM by Namir.)
Post: #4
RE: SIZE instruction on HP41CX
SIZE? is not part of the HP-41CX command set (do a CAT 1 and look at commands that start with S ... you won't find SIZE?). You must have a module or program that has a label "SIZE?" that calculates something ... but it's not the memory partition size.

You can find that "SIZE?" label by using the command GTO SIZE? (by typing the keys [f][RCL][ALPHA] SIZE?[ALPHA]).

Namir
Find all posts by this user
Quote this message in a reply
04-20-2017, 11:52 PM
Post: #5
RE: SIZE instruction on HP41CX
(04-20-2017 11:44 PM)Namir Wrote:  SIZE? is not part of the HP-41CX command set (do a CAT 1 and look at commands that start with S ... you won't find SIZE?). You must have a module or program that has a label "SIZE?" that calculates something ... but it's not the memory partition size.

You can find that "SIZE?" label by using the command GTO SIZE? (by typing the keys [f][RCL][ALPHA] SIZE?[ALPHA]).

Namir

Sure it is. It's right in the manual. Does that X on your 41 look more like a V, 'cause the 41CV doesn't have that command.
Find all posts by this user
Quote this message in a reply
04-21-2017, 12:02 AM
Post: #6
RE: SIZE instruction on HP41CX
(04-20-2017 11:52 PM)Dave Frederickson Wrote:  
(04-20-2017 11:44 PM)Namir Wrote:  SIZE? is not part of the HP-41CX command set (do a CAT 1 and look at commands that start with S ... you won't find SIZE?). You must have a module or program that has a label "SIZE?" that calculates something ... but it's not the memory partition size.

You can find that "SIZE?" label by using the command GTO SIZE? (by typing the keys [f][RCL][ALPHA] SIZE?[ALPHA]).

Namir

Sure it is. It's right in the manual. Does that X on your 41 look more like a V, 'cause the 41CV doesn't have that command.

You are right! I stand corrected :-(

Namir
Find all posts by this user
Quote this message in a reply
04-21-2017, 01:20 AM (This post was last modified: 04-21-2017 01:23 AM by Geoff Quickfall.)
Post: #7
RE: SIZE instruction on HP41CX
It is part of the EXTENDED FUNCTIONS command set. So either it is a 41CX or a 41C and CV with an EXTENDED FUNCTIONS module. Let us know.

Executing a function not in the command set will result in NONEXISTENT unless the title is coopted for a user written routine or inserted module with an identical LABEL.

Therefore, as stated in the first post of this thread, a command of SIZE 5 followed by SIZE? will result in one of three displays:

  1. 5. (Functioning EXTENDED FUNCTIONS ROM)
  2. NONEXISTENT ( non functioning or missing EXTENDED FUNCTIONS ROM).
  3. What ever the user/module routine labeled SIZE? performs. (a module or user program with a routine labelled SIZE?)


Confirm it is a 41CX or 41CV and 41C with an EXTENDED FUNCTIONS module. Test as follows:

ON+CLX. (Memory lost).
XEQ SIZE 5 (set memory allocation 5 registers).
XEQ SIZE? (should display 5).

If not, then a malfunction of a ROM whether internal or plug in is indicated.

Geoff
Find all posts by this user
Quote this message in a reply
04-21-2017, 01:29 AM
Post: #8
RE: SIZE instruction on HP41CX
The SIZE function specify the number of data registers and is part of all HP-41 core functions.

If you XEQ "SIZE" , then specify 005 at the SIZE _ _ _ prompt, 5 data registers will be allocated from the main memory.
Data registers 00, 01, 02, 03 & 04 will then be available.

The "SIZE?" function return the number of data registers allocated and is part of the X-Functions/Memory module.

If you XEQ "SIZE?" the number of data registers currently allocated is placed in X. (in this example the number returned will 5)

The HP-41C contains ...
  • ROM: the core functions in page 0, 1 & 2
  • RAM: 64 Registers or 448 bytes of main memory

The HP-41CV contains ...
  • ROM: the core functions in page 0, 1 & 2
  • RAM: 320 Registers or 2240 bytes of main memory

The HP-41CX contains ...
  • ROM: the core functions in page 0, 1 & 2
  • ROM: the X-Functions/Memory module in page 3
  • ROM: the Time module in page 5 bank 0
  • ROM: the CX-Functions module in page 5 bank 1
  • RAM: 320 Registers or 2240 bytes of main memory
  • RAM: 124 Registers or 868 bytes of extended memory
Find all posts by this user
Quote this message in a reply
04-21-2017, 07:35 AM (This post was last modified: 04-21-2017 07:37 AM by Cancuino.)
Post: #9
RE: SIZE instruction on HP41CX
I've located the problem. If I attach the Structure or Stress modules SIZE? doesn't work like it's meant to. They both have a SIZE? command. Is there any way to execute the SIZE? command that is not on the modules?.

Thanks.
Find all posts by this user
Quote this message in a reply
04-21-2017, 07:48 AM
Post: #10
RE: SIZE instruction on HP41CX
(04-21-2017 07:35 AM)Cancuino Wrote:  I've located the problem. If I attach the Structure or Stress modules SIZE? doesn't work like it's meant to. They both have a SIZE? command. Is there any way to execute the SIZE? command that is not on the modules?.

One easy way is to assign the real SIZE? function to a key. (Remove those modules temporarily to do that, of course). Pressing that key will then execute the desired function even when those modules are plugged in.

Another way (more tedious) is to execute it from CAT 2.

<0|ɸ|0>
-Joe-
Visit this user's website Find all posts by this user
Quote this message in a reply
04-21-2017, 12:53 PM (This post was last modified: 04-21-2017 01:10 PM by Dieter.)
Post: #11
RE: SIZE instruction on HP41CX
(04-21-2017 07:35 AM)Cancuino Wrote:  I've located the problem. If I attach the Structure or Stress modules SIZE? doesn't work like it's meant to.

Of course SIZE? works – but it's just the "other SIZE?" that is executed, i.e. the program starting with that label. Who wants to tell which SIZE? is right or wrong, or even which one is meant by the user ?-)

(04-21-2017 07:35 AM)Cancuino Wrote:  They both have a SIZE? command.

That's the problem. If duplicate function names in programs (both in regular RAM or in ROM modules) and/or among the calculator functions exist, a certain preference rule applies if the user executes the function by spelling it out (XEQ"SIZE"): first the device looks for a user-defined program with that name (CAT 3), then it looks for a function/program in an extension ROM (CAT 2), and finally it tries to find a function with that name among the regular calculator functions (CAT 1). So since there is a "SIZE?" program in the ROM module, that's what is executed if you press XEQ"SIZE?".

(04-21-2017 07:35 AM)Cancuino Wrote:  Is there any way to execute the SIZE? command that is not on the modules?.

There are several ways to do so. The various SIZE? functions themselves are distinct and different, so the only problem is the call by typing XEQ"SIZE?" that makes the calculator select one of the two possible functions. You can use Joes's method and remove the module (so that there is just one SIZE? left), assign this function to a key and plug back the module. Then pressing this key in user mode will call the internal function while XEQ"SIZE" will start the respective program within the module.

You can also write your own SIZE? program that calls the SIZE? function you want. If this is the internal function better unplug the module before entering this and start with line 02 (!) because else the program will call itself (line 02 would be displayed as XEQ"SIZE?").

Code:
01 LBL "SIZE?"
02 SIZE?
03 END

This way always your program will be called if you enter XEQ"SIZE?".
Or, even better, do this with a different label:

Code:
01 LBL "?SIZE"
02 SIZE?
03 END

BTW, if you write a program where the SIZE? function is called you can easily distinguish the three different possible SIZE? functions. The respective program line will be displayed differently:

Regular 41CX function: "SIZE?"
ROM program: "XROM SIZE?"
User program: "XEQ SIZE?"

Dieter
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)