HP Forums
(41) REGMOVE - 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: (41) REGMOVE (/thread-21590.html)



(41) REGMOVE - Werner - 04-11-2024 05:54 PM

The X-Functions command REGMOVE's input consists of a control word sss,dddnnn with
Rsss the first register in the source block
Rddd the first in the destination block
nnn number of registers in both blocks.

On pg. 201 of the 41CX Owner's Manual, Volume 2 under 'Block Operations', there's an extra piece of information not present in my Extended Functions Manual:
'The blocks can't overlap - make sure that |sss - ddd| >= nnn'

But this is NOT true. REGMOVE works as expected both for a downward and upward move, at least it does so on the DM41X (my 41CV died on me, sadly).
Try it out with the following tiny code snippet, that places i in Ri, for i=1 to 9, then executes REGMOVE with the supplied control number:

01 LBL"T"
02 9
03 LBL 10
04 STO IND X
05 DSE X
06 GTO 10
07 RDN
08 REGMOVE
09 END

1,003005 XEQ"T" results in R1-R9 contents of 121234589, correctly moving 12345 two places up.
3,001005 XEQ"T" results in R1-R9 contents of 345676789, moving 34567 two places down

To be honest, there's another extra phrase further down: for REGMOVE, it says that the contents of the source block are unchanged and the contents of the destination block are lost. The former is not true for overlapping blocks, of course. But REGMOVE - thankfully - works as expected, and changes the order in which the elements are copied depending on whether they are copied down or up.

Cheers, Werner


RE: (41) REGMOVE - Sylvain Cote - 04-11-2024 07:43 PM

I get the same result on a ...
- 41CV with the XFM module
- 41CV with the MAXX module (beta version)


RE: (41) REGMOVE - dmh - 04-12-2024 04:30 AM

What about with XFM version 1A?