hp41cx line number branching using indirect.


Hi Folks.
With a 41(cx), can you not branch bockwards to a line number using a negative number stored in an indirect register? You can do this with virtually every other programmable HP on the planet (OK, maybe not with a 25). I can't seem to find any reference to it in volume 2 of the owners manual.

I'm trying to branch back 136 lines (from line 137 to line 1) using syntax as follows...

-136 sto 09

gto ind09

Upon execution it returns "nonexistant".
Any help appreciated.



I ran a short tetst using GTO IND with a register containing -10. It seems that the 41C ignores the sign and look for LBL 10 (in my case).

In your example, the 41C is looking for LBL 136, which of course is outside the range of valid labels.

I suugest using a jump to a label. This approach allows you to insert code without worrying about keeping count of the corrected number of lines to jump.



The HP-41 family does not include any capability of branching to a line number, or the "rapid reverse branching" of some earlier HP models.

However, the HP-41 has less need for such a feature. The main purpose of rapid reverse branching was to speed up loops by avoiding a label search. But the HP-41 compiles GTOs. When program execution first encounters the GTO, it finds the target label, and stores the address in the GTO instruction. On subsequent executions of that GTO, no label search is required.

Editing the program will decompile it.

I don't think RRB can be implemented by synthetic programming, because the RRB routine would have to read the program memory to determine the lengths of the program lines, and reading the program memory as data would "normalize" it, possibly destroying the program. Anyhow, use of synthetic programming for this would be much slower than the label search.

On the other hand, it's possible to implement either a "GTO line number" funcction or an RRB function by custom microcode. Aside from the time needed to develop the microcode, this would require
an MLDL/HEPAX/Clonix type of device to store the microcode.

However, such a microcode function would usually still be slower than using a LBL and compiled GTO, at least for reverse branches, because of the 41's variable length instructions. When the program pointer is at line 42, and you want to get to line 39, the only way to do that is to count forward from the beginning of the program. This is what the non-programmable functions "GTO .nnn" and BST do, and explains why BST is slow on large programs.


Thank you gentlemen for your help.

I suppose the need for RRB is somewhat negated by the fact there are infinite label names available with a 41. I was just trying to save steps and memory by not having to insert labels.

Anyway, thanks again and best regards, Hal


Another option, especially if the branching spans are constant and not variable, is to compute the jump distance, put it in alpha, do a RCL M and then a STO b, or such.

This allows for a direct movement of the program pointer and can really make it difficult to decode a program.

These ideas are described fairly well in the PPC ROM manual.

Possibly Related Threads...
Thread Author Replies Views Last Post
  Line Print Les Koller 6 1,152 11-11-2013, 09:38 AM
Last Post: Geoff Quickfall
  Line number in Prime program listings Harold A Climer 3 832 10-27-2013, 03:37 PM
Last Post: Les Koller
  HP41CX: Strange serial #... Stephan Matthys 1 554 09-13-2013, 01:38 PM
Last Post: Stephan Matthys
  hp50g screen weird line Sok-khieng Chum Hun 2 664 09-10-2013, 08:11 AM
Last Post: Sok-khieng Chum Hun
  WP34s indirect addressing of alphanumeric labels Eduardo Duenez 4 796 06-06-2013, 08:29 PM
Last Post: Eduardo Duenez
  Trouble entering a HP35s program line Arno 2 698 04-05-2013, 06:28 PM
Last Post: Arno
  HP-41 Quiz: How to pack 100k in ROM? (on-line) Ángel Martin 10 1,318 09-02-2012, 10:35 PM
Last Post: Luiz C. Vieira (Brazil)
  Limits of Indirect Addressing on the WP34S Namir 11 1,380 08-01-2012, 11:53 PM
Last Post: Namir
  Using PIL-BOX & ILPer to Transfer Programmes from PC to HP41CX? Michael Lopez 5 1,028 06-25-2012, 09:31 AM
Last Post: Michael Lopez
  Rapid Reverse Branching & Label Searches Matt Agajanian 2 530 04-30-2012, 11:09 AM
Last Post: Matt Agajanian

Forum Jump: