Post Reply 
HP 41 - branching to local label and return stack - FINAL RESULTS AND PROGRAMS
06-22-2019, 01:01 PM (This post was last modified: 06-22-2019 07:43 PM by Artur - Brasil.)
Post: #36
RE: HP 41 - branching to local label and return stack
(06-21-2019 10:11 PM)Bill Duncan Wrote:  I've read through many of the solutions and, I believe the "KISS" (keep-it-simple-..) is missing. See my program here:

The sequence I use for softkeys simply places a number in X.


LBL "A",   1, GTO 11
LBL "B",   2, GTO 11
LBL "C",   3, GTO 11
LBL "D",   4, GTO 11
LBL "E",   5, GTO 11
LBL "F",   6, GTO 11
LBL "G",   7, GTO 11
LBL "H",   8, GTO 11
LBL "I",   9, GTO 11
LBL "J",  10              # GTO 11 not needed here.  fall through...

# ------------------------------------------------------------------------------
# All timer toggle keys A-J funnel through here...

LBL 11
Hi, Bill

That's the idea, but we have just one line in display, so I decided do not use the keys from F to H, as user can't see what variables are associated to them directly.
Instead, I make two sequences of menu. Beyond this, you can mix with a - e (shift keys). This gives you, in principle, 20 variables!

Let's study a simple caller programm:
I need to solve four problems:
First one: magnetic flux
φ = B.A --> φ - B.A = 0
φ = Fmm/R --> φ - Fmm/R =0 , let's make just one equation for both functions:
φ - B.A+Fmm/R = 0

But we can't have φ, B.A and Fmm at same time.
If we will calculate φ, only B.A or Fmm can be given; if we calculate B, only one of φ or Fmm, and so on.
So, an XOR on three combining two of them giving the another!!! And you don't know which one will be asked to be solved for!
Also, R can't be equals to 0: R<>0

Second one: permeability
u = B / H
ur = u/u0 --> u = ur.uo
(u + uo.ur) - B/H = 0
Same restrictions: XOR (u, uo.ur, B); H <> 0

Third one: relutance
R = L/(u.A)
ur = u/uo => u = ur.uo (relative permeability and absolute - uo is a constant)
R - L/(u+uo.ur).A = 0 (problems usually have ur, but...)
Again, XOR(R, u, uo.ur) A <> 0

The fourth one: magnetic field
H = N*I/L
Fmm = N*I
Let's put in order...
H - (Fmm+NI)/L = 0
XOR(H,Fmm, N*I). L <> 0.

Next post I'll present the variables/keys to these formulas (my wife wants to go window shopping now ...)

Have you seen, Bill, as the problem is bigger and we can't waste memory repeating so many menus?

See you soon!!

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

Messages In This Thread
RE: HP 41 - branching to local label and return stack - Artur - Brasil - 06-22-2019 01:01 PM

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