Hi Everyone,
HP started a revolution with calculators with it's first pocket scientific calculator the HP 35.
It had only 35 keys and thats how it became, the HP 35. It cost almost $400.00 dollars. A lot of money even today.and that was in the early 1970's. For many years the calculators that came next influence how some of us worked in the field or office.
Because even though they were scientific, they were also programmable. At first they did not have the capability to store or save their programs. This meant you had to reprogram them every time you wanted to run a program after it had been turned off.It was not long the C versions came out, the C stood for constance memory (CMOS).This meant your programs as in keystroke RPN were available when you needed them. With the coming out of the HP 41C models you did not have to key in all these programs yourself, because they came on a chip that could be inserted into a slot, and these were called MOD. The HP 41CX may contain more available program software then any other calculator made today. These were also used as memory extension to increase the memory of the calculator. You could also get them in Quad modes to make one port turn into 4 for memory leaving you three more free to use.As such, an HP-41 could in fact be tailored to the personal needs of the user. Hardware extensions included a thermal printer, a magnetic card reader (HP-67 compatible via converter software), and a barcode "wand" (reader). The Hp 41C models were used by NASA in the Shuttle programs.
Then came the HP 48 G, and by the SX, GX models,surveyors, could not wait to get their hands on them. They changed Data Collection as we know it today. No longer did you just have a data collector, you had a calculator ,it play a dual role as we worked every day. For Ten years the HP 48 GX serve as a data collector and a calculator. Now there is only one pocket programmable scientific RPN calculator made today. Name after the one who started it all, on it 35th anniversary in 2007 the HP 35s. And it has a lot more keys. And now only cost $60 dollars. After the 48 ,several more models lead up to the HP 50G that used the same programming as the 48 ,which is RPL. and system RPL. It would run in RPN,but could not be program in RPN,only RPL. Today you will find a all new program language on the HP Prime.
Totally different than RPN in fact, this calculator programming is not compatible with RPL or RPL system or with programming in Saturn or ARMv4T assembly languages that includes RPN. It will run in RPN. The HP Prime's non-CAS home-screen supports textbook, algebraic and 128-level RPN (aka Advanced RPN) entry logic. However, it uses a new operating system unrelated to HP's legacy Saturn and Saturn-emulated systems, which were used on HP's previous RPN/RPL graphing calculators. It also has a CAS side, It contains features common in smart phones, with a touchscreen and apps available to put onto it. There are two sides to the calculator, a numeric home screen and a computer algebra system (CAS) home screen. The calculator can quickly switch between the two, unlike its competitors, which either have a CAS model or a non-CAS model. The CAS is based on the free and open-source Xcas/Giac 1.1.2 engine by Bernard Parisse, who was also the main developer of the CAS system integrated into the HP 49G and successors. It language is not new. The calculator supports programming in a new, Pascal-like programming language now named HP PPL (for Prime Programming Language, but originally also referred to as HP Basic) that also supports creating apps. This is based on a language introduced on the HP 38G and built in on subsequent models. It also draws form C,C++ and Java, but is more like Pascal's The next question could this be your next calculator. First lets look at what a Inverse program may look like. This is written in HP PPL.
EXPORT AZIMUTE3(E1,N1,E2,N2,ELEV1,ELEV2)
BEGIN
LOCAL ΔN:=(N2-N1);
LOCAL ΔE:=(E2-E1);
LOCAL D:=√((ΔE)^2+(ΔN)²);
LOCAL DN:=(ELEV1-ELEV2);
LOCAL Bears2:=ABS(ATAN(ΔE/ΔN));
LOCAL BEARNE:=(Bears2);
LOCAL BEARSE:=(Bears2);
LOCAL BEARSW:=(Bears2);
LOCAL BEARNW:=(Bears2);
PRINT();
PRINT("DISTANCE (FT)");
PRINT(D);
LOCAL R1:="NE";
LOCAL R2:="SE";
LOCAL R3:="SW";
LOCAL R4:="NW";
LOCAL RM1:=→HMS(BEARNE);
LOCAL RM2:=→HMS(BEARSE);
LOCAL RM3:=→HMS(BEARSW);
LOCAL RM4:=→HMS(BEARNW);
PRINT("BEAR FORWARD");
IF ΔN>0 AND ΔE>0 THEN PRINT(RM1);PRINT(R1);END;
IF ΔN<0 AND ΔE>0 THEN PRINT(RM2);PRINT(R2);END;
IF ΔN<0 AND ΔE<0 THEN PRINT(RM3);PRINT(R3);END;
IF ΔN>0 AND ΔE<0 THEN PRINT(RM4);PRINT(R4);END;
PRINT("BEARING REV");
IF ΔN>0 AND ΔE>0 THEN PRINT(RM1);PRINT(R3);END;
IF ΔN<0 AND ΔE>0 THEN PRINT(RM2);PRINT(R4);END;
IF ΔN<0 AND ΔE<0 THEN PRINT(RM3);PRINT(R1);END;
IF ΔN>0 AND ΔE<0 THEN PRINT(RM4);PRINT(R2);END;
LOCAL Bears1:=ABS(ATAN(ΔE/ΔN));
LOCAL AZprov1:=(Bears1);
LOCAL AZprov2:=(180-Bears1);
LOCAL AZprov3:=(180+Bears1);
LOCAL AZprov4:=(360-Bears1);
LOCAL AZ1:=→HMS(AZprov1);
LOCAL AZ2:=→HMS(AZprov2);
LOCAL AZ3:=→HMS(AZprov3);
LOCAL AZ4:=→HMS(AZprov4);
LOCAL CAZ1:=(AZprov1+180);
LOCAL CAZ2:=(AZprov2+180);
LOCAL CAZ3:=(AZprov3-180);
LOCAL CAZ4:=(AZprov4-180);
LOCAL CZ1:=→HMS(CAZ1);
LOCAL CZ2:=→HMS(CAZ2);
LOCAL CZ3:=→HMS(CAZ3);
LOCAL CZ4:=→HMS(CAZ4);
PRINT("AZIMUTE FOWARD");
IF ΔN>0 AND ΔE>0 THEN PRINT(AZ1);END;
IF ΔN<0 AND ΔE>0 THEN PRINT(AZ2);END;
IF ΔN<0 AND ΔE<0 THEN PRINT(AZ3);END;
IF ΔN>0 AND ΔE<0 THEN PRINT(AZ4);END;
PRINT("AZIMUTE REV");
IF ΔN>0 AND ΔE>0 THEN PRINT(CZ1);END;
IF ΔN<0 AND ΔE>0 THEN PRINT(CZ2);END;
IF ΔN<0 AND ΔE<0 THEN PRINT(CZ3);END;
IF ΔN>0 AND ΔE<0 THEN PRINT(CZ4);END;
PRINT("Difference in elev (FT)");
PRINT(DN);
END;
that concludes the program. with END;
Running the program.
High Light the program in the program list, then press Run, you will have six program Parameters.
NI: 0..............E1: 0
N2: 0.............E2: 0
ELEV:2 0.......ELEV:1 0
Next enter the coords. and elev. press ok after each to enter.
N1:5000.0000.....E1:5000.0000
N2:5208.7103.....E2:5208.7103
ELEV:2 500.00...ELEV1:505.00
Then after all Parameters have been entered, press ok.
Program Runs with all the variables, exe. Halt
SCREEN you will see
DISTANCE (FT)
295.160936867
BEARING FORWARD
45.00' 00"
NE
BEARING REV
45.00' 00"
SW
AZIMUTH FORWARD
45.00" 00"
AZIMUTH REV
225.00' 00"
Difference in elev (FT)
-5.0000
And this is my Inverse program written for the HP Prime before this date July 29,2017
And for those of you, who I hope it helps you in your programming . It can be shorten to use only
bearings or only Azimuth what ever you like. It can also be changed from ( FT) to (M) in the program lines. Next I will go over again how to write a Inverse Program using the new macro RPN programming on this same calculator. And how this is possible.
Replies
Hi everyone,
I thought I would touch base on my Polar Angles,if you had a chance to run my Inverse Bearing with Area, then you may still not understand what my polar angles are.They are not intended to be use as part of the answer of the inverse,although they can be useful .This is only a part of the math of the program that determines what quadrant the bearing is in.They are also in Decimal of a Degree,because they are being used in the math.My Polar Angles to the right are true angle right N Azimuths 0 Degrees to 180 Degrees, Polar angles to the left or true angle left 0 degrees to 180 Degrees,but not true Right N Azimuth.You must subtract them from 360 Degrees to calculate the Angle right true N Azimuth,but they are still in Decimals of a Degree, no matter which way the angle is being calculated they must stay in Decimals of a Degree i see no reason to change this in the program. These are not true Polar angles,as
defined as "Polar Angles",They are part of my algorithms in this program to solve Quadrants,you may never see this in any other program this is just my solution to solve the Quadrants. 0 Degrees is North and 180 is South. Angles are measured as ( - 0°+ ) North to ( -180 + ) South.
Polar Angles in the program,Inverse Bearing with Area or angles base on MY, RPN logic Programming.they are measured from the Y axis,positive to the right and negative to the left to 180 Degrees.These are only polar angles in My RPN Programming .True polar angles can be defined as measured from the X axis in a counterclockwise motion.In a spherical coordinates a polar angle is measured from the Z axis. Just wanted to make this clear.
http://mathworld.wolfram.com/PolarAngle.html
The polar angles in my program,are mine,this is how I input the program lines in or order, to make my program work,with Bearings and Quadrants , this is not HP special, angles, this solutions is mine .HP 35 calculators have there on special Angle system,but here is a little help by Jason Foose PS
In this he is talking about the HP 35. but this information goes over HP special Azimuth circle of +/- 180 Degrees. Note: HP Azimuth starts with 0 ̊ as east or the equivalent 90 ̊ in
earth based units. Positive angles represent counterclockwise rota-tion north of the equatorial zero whereas negative angles represent clockwise rotation south of the equatorial zero to 180 ̊ or west.
Mine start at O° North go clock wise right +90° to clockwise +180°,then go back to ,0° North,then go counter clock wise left - 90° to -180°., +180° means angle was to the right, ,- 180° means angle was to the left,in bearings these quadrants or - SW and +SE, 0° and that's how mine work Do not confuse the other two with mine.Just wanted to make this clear.Most Inverse program are in Azimuth only I chose to write this one using Bearings and Quadrants plus to calculate Area at the same time.
http://www.amerisurv.com/PDF/TheAmericanSurveyor_Foose-35sCalculato...
This program is by Mark Hays Harris,( R to P and P to R combined) ,choice input on the program
less than zero (default) R<>P X in x, Y in y. Very unique, so choose 1 or -1 . at R/S input.
So -1= Go Polar ,1= Go Rectangular
P001 LBL P
P002 x<> F................... ; parameter for determining R<>P vs P<>R
P003 CLx
P004 -1..........................; less than zero (default) R<>P X in x, Y in y
P005 STOP....................; give the operator a chance to change the parm use [+/-] key
P006 x>0?.................... ; branch around R<>P routine
P007 GTO P023
P008 x<> F
P009 STO X..................; Entry Point for R<>P routine
P010 x^2..................... ; compute R value to be placed in y Y
P011 x<>y
P012 STO Y
P013 x^2
P014 +
P015 √.......................; use square root key
P016 STO R........... ...; save R to R
P017 RCL Y............... ; compute theta , R is lifted to y
P018 RCL X............... ;
P019 /
P020 ATAN
P021 STO A............. ;save theta in A (P y holds R, x holds theta
P022 RTN................ ; END R<>P routine
P023 x<> F............. ;might have been able to use REGx REGy here...
P025 STO R............ ; save R from y
P026 x<>y................;
P027 STO A.............; Save A (theta) from x
P028 SIN
P029 *......................; multiply compute y
P030 STO Y
P031 RCL R............. ;
P032 RCL A ............ ;
P033 COS
P034 *..................... ; multiply compute x
P035 STO X
P036 RTN.................; END P<>R routine y holds Y, x holds X
LN=110 CK=0E3B
Thanks to Mr. Harris for sharing this program. This program is using the [True] First Method
without Complex numbers, B=ATAN ( X / Y ) ,and d = SQRT( ΔE² + ΔN²) or d= √ΔE² + ΔN² .
And Dist x COS (B )= LAT, and Dist x SIN (B) = DEP
saw this post ...thought you might like the comments
Thanks Jaybird,
It would shock them if they went to ebay,and priced one. A HP 48 cost more
used than a new HP Prime.It is also a testimony of how many of them still work and are being used and surveyors still looking to buy them. The cards costs as much as they did new.
I have seen HP 48Gx from 300 to 600 dollars and Survey Pro TDS and 1mb Ram cards
400 to 500 each,(Survey Pro can cost up to 800 Dollars.) They may belong in a museum for those who never used them and it sad that HP does not make a calculator / data collector device,but I still love my HP Prime.
Hp for Life: Billy
Hi Everyone,
I have not said much about RPL,( Reverse Polish Lisp.) programming.This in any case,it is still being used by a lot of calculator users.At this time HP does not have a RPL calculator for sale. I have seen plenty places to buy a new one though.The calculator will run a lot of HP 48 Keystroke RPL programs, this includes the 48,49 and the 50. System RPL is a different story The 48 GX used HP program cards and Ram cards, while the 50G uses SD cards up to 2 GB. these can be used for programs or extra memory. Jacob Wall from SGS and a few others sell the calculators and the survey programs to go with them. With out showing big programs I will just touch base on them,this is still( Reverse Polish) (Lisp.) the calculator will run in RPN,
it can not be program in RPN ,only RPL and System RPL.
Rectangular to polar, vice versa ,however you want to write it ,R→P, P→R, →Θ,r , → y,x , X i Y, r Θ a , is more of a part of the routine of B= ATAN( D ÷ L ) and √ ( a² + b² ) just a different way of doing it.Simple is always Gold when you find it.I will show how to do this on the HP 50G as BRG,,◄◄ d l / ATAN ►► and DIST,, ◄◄dsq lsq + √ ►► ,Now here is one more way HP 50G RTP,,◄◄ DUP ARG SWAP ABS ►► name it RTP.
Now here is PTR ,,◄◄ DUP DUP RE SWAP IM SIN * SWAP DUP RE SWAP IM COS * ►► name it PTR, Now how they work, EX.RTP=(3,4)
Enter if you like, or press PTR 5 in level 1 and 53.1301 level 2. Now PTR (5,53.1301) Enter if you like or press PTR, 3 in level 1 and 4 in level 2.
Now reversal of equations and programs to RPL,
BRG and DIST,so to go along with these,◄◄ d L / ATAN ►► and ◄◄ dsq Lsq + √ ►►
I used Caps L just to make sure it was seen as a L, lower case is my intent. But now to reverse these two,If you have the Bearing and Distance which is Polar,to now go Rectangular.
LAT. = DIST. x COS BEARING, AND DEP, =DIST. x SIN BEARING
RPL program, ◄◄ d b SIN x ►►, name it lower case, dep
now for LAT., ◄◄ d b COS x ►►, name it lower case, lat
Now write a combine program and name it lower case pnr
Write like this ◄◄ d b SIN x , d b COS x►►, when you press ENTER the program
will not contain the coma , it will look like this◄◄ d b SIN x d b COS x ►►, then press Prime,delimiters (algebraic/Name) key
and name it ' ' , ' pnr ' , sto , all you have to do is sto distance in d and bearing in b then press the vars dep, lat, or pnr that is three more programs. For the HP 50G.
The 50G loves complex numbers. But back to the HP 35s,even though it does not have P→R or R→P or any other way , →Θ,r and →x,y that it, has been label on a calculator. It can be done like i said with programs or in display and complex mode.Lets do R→ P, First you would press left shift, Display [.] decimal 0,this sets the calculator in complex mode for R→P ,then key in 3 i 4,then ENTER,results in display are 5.0000Θ53.1301
Now lets do P→R, left shift Display 9, this sets the calculator in complex mode for P→R,key in 5.0000, right shift theta, Θ 53.1301,then
ENTER, result in display 3.0000 i 4.0000. That is one more way. And that is how the HP 35 s works .But It also can be done like this on a HP 50G ,just (3.0000,4.0000) and you can use space in place of the coma,if you like,then ENTER,ENTER, then press left shift ABS,answer
is 5.0000, then Delete,this drop (3.0000,4.0000) down on display, then right shift ARG ,answer 53.1301,that is one more way. This can also be done in complex soft keys on this calculator, and all the way back to the HP 48gx.
So not having these two keys is nothing new, when it comes to the HP 35s or the HP 50G.
Here in HP PPL is ATAN2
EXPORT ATAN2(x,y)
BEGIN
LOCAL r:=ARG(x+y*i);
IF (r < 0) THEN
IF (HAngle) THEN
r := r + 360;
ELSE
r := r + 2*π;
END;
END;
RETURN r;
END;
ATAN2, is used in computer programs.
At first glance tells me this is closer to Pascal than BASIC or other languages (and I've been through a lot of them). The challenge is always keeping them in sync, and also making sure you don't drag the other languages way behind.Pascal most likely as pointed out. Really, I tried to make it so it would feel pretty universal and if you'd used any programming languages it will make sense just looking at it.One important difference: Pascal is a strongly typed language, PPL is not.
so in PPL:
Local i;
i:=1;
i:=1.2;
i:="abc";
are all legal and ok to do.
In Pascal:
var i:int; //defines i as an integer variable
i:=1; //ok 1 is an integer
i:=1.1; //error 1.1 is a real number
i:="abc"; //error "abc" is a string
So when looking at program examples in Pascal keep this in mind. Strongly typed languages will tend to reduce programming errors, on the other hand you have to do type casts if you need to go from one thing to the other e.g. from a real to an integer, in PPL they are the same thing. It can be useful when writing non trivial programs in a PPL like language to adopt conventions such as appending something like _i to all variables that are supposed to be integers; _r to all variables that are supposed to be real; _s to all variables that are supposed to be stings, then if you find yourself doing something like pi_r:="3.14" than you need to ask yourself why you are assigning a string to something that is supposed to hold a real number.
For what it's worth, you can obtain the benefit of typed variables in PPL by using the built-in variables (which are strongly typed) instead of creating your own. For example:
A through Z can only contain real numbers
Z0 through Z9 can only contain complex numbers
G0 through G9 can only contain graphics
L0 through L9 can only contain lists
M0 through M9 can only contain arrays (vectors or matrices)
So if you really do want strongly typed variables, they are available in PPL .
They are global variables which entails problems too also the names are not very intuitive, of course in small programs it makes little difference.Overall PPL does look like a highly structured language or can it be, one would never really expected one in a calculator or should you. Pascal most likely as pointed out. Really, I tried to make it so it would feel pretty universal like I already said,and if you'd used any programming language it will make sense just looking at it. You should have based on C/C++/Java/C#/javascript style syntax then, all of which are very similar syntactically. Pascal is pretty much dead or not, to Pascal being dead, don't tell the Free Pascal, Lazarus and Delphi communities where programs can and are being written in Pascal...Long live Pascal. I wish PPL had more features from it, pointers would be nice, not to mention stack manipulation commands...and some good documentation too the full PDF manual seems to leave a lot out.But where ever it came from,I think it is here to stay and how strange is it comparing a Computer language to one you are using in your Calculator.
Back to calculator languages, here is my Inverse,in RPN ,what makes this one special,it will also calculate the AREA of your inverse. It will work like any other Inverse program,but if points are inverse like a traverse loop, POB to POB,does not matter what direction, Clock wise or counter Clockwise then the Area is also calculated. It also uses Bearings and quadrants in the answers instead of Azimuth.
BRG INVERSE WITH AREA HP 35s
I001.LBL I........................ I051.SF 10
I002. CLx..........................I052. POLAR ANGLE
I003.CLVARS.....................I053.PSE
I004.SF 10........................I054.SF 10
I005.BRG INV....................I055.H DIST
I006.PSE..........................I056.PSE
I007.AND AREA................I057.STOP R/S
I008.PSE..........................I058.SF 10
I009.SF 10........................I059.QUADRANT
I010.POB NORTH..............I060.PSE
I011.PSE..........................I061.BEARING
I012.INPUT N....................I062.PSE
I013.SF 10........................I063.X<>Y
I014.POB EAST.................I064.X > 0?
I015.PSE..........................I065.GTO I068
I016.INPUT E....................I066. 360
I017.STO B.......................I067. + plus
I018.X<>Y.........................I068.ENTER
I019.STO Z.......................I069.ENTER
I020.STO A.......................I070. 90
I021.STOP R/S..................I071. ÷ divide
I022.SF 10........................I072. 1
I023.NORTH NXT PT...........I073. + plus
I024.PSE..........................I074. I P
I025.INPUT N....................I075.X<>Y
026.SF 10.........................I076.SIN
I027.EAST NXT PT.............I077. ASIN
I028.PSE..........................I078.X< 0?
I029.INPUT E....................I079. +/- chn sgn
I030.RCL B.......................I080.>>>HMS
I031.- minus......................I081.RCL Z
I032.STO +B.....................I082.RCL A
I033.STO C.......................I083.STO Z
I034.X<>Y.........................I084. +plus
I035.RCL A.......................I085.RCL C
I036.-minus.......................I086. x times
I037.STO + A....................I087. 2
I038.CF 10........................I088. ÷ divide
I039.ABS..........................I089. STO + G
I040.CLx...........................I090. RD roll down
I041.LAST x......................I091.GTO IO21
I042.RD roll down...............I092. RTN
I043.RD roll down
I044.(EQN) REGZ + i x REGT
I045.ENTER
I046.RD roll down
I047.RD roll down
I048.(EQN) ARG ( REGT )
I049.(EQN) ABS (REGT )
I050.STO + H
RCL H FOR ACCU. H DISTANCE
RCL G FOR ACCU.SQ.FT. AREA ignore +/- sign
Lines I038. thru I049 is a nested subroutine R to P
The R to P subroutine in this program was written and credited by Hp Museum of Calculators. It has also been modified by Jason E.
Foose,PS for the Hp 35s,there are many more version like this routine. I chose to use this one for this program, it does not change the content of the stack.
I have slightly modified the listing to use only the R to P routine, with out the Global label and the end RTN command.This shorten it to 12 lines. I used this routine to show equations in the program and how it works with them.This program I001 will work with the P program in this discussions that i wrote, that has no equations and does not use any storage registers so if you like, you can substitute it, in this
program lines,but this will change the final line numbers ,but will not affect the GTO instruction on line I091 it will change that line number, because mine is only 7 lines, it will shorten the program by 5 lines. But this does not change that command line instruction.
Because it is before this subroutine.However line I060.then will be I060.GTO I063 instead of line I065 GTO I068,This all in learning how to change code.In some cases changing the lines this calculator will automatically change line numbers and GTO instructions and labeling of the program lines.
So here is alter. sub program P
I037. STO + A
I038.X<>Y.............Start here
I039. i
I040. x times
I041. + plus
I042.ARG
I043.LAST x
I044.ABS.............End Here
I045.STO + H
And this is my complete program when this is used.You can see mine is a lot more simpler and still does the same math.No matter what the stack does.
So lets run the program.First I clear all data stored in my calculator for this program. I have wrote a short program to do this ,I use letter Z for this program.
Z001. LBL Z
Z002.CL x
Z003.CLVARS
Z004.RTN
you can also add accumulate key if you like.Be sure before you do this,all stored data in REGs memory A thru Z will be lost.
Or you can do this manually.
So now we will run program "I".
XEQ I ,ENTER I001. program runs, NORTH,ask N ?, 5000, R/S program runs,EAST, ask E ?
5000, R/S, display 5000 on top 5000 on bottom,R/S, program runs,north nxt pt. ,ask N ? 5000
R/S, east nxt pt. ask E ?, 5208.7103, R/S, program runs, polar angle and distance,90 on top,
and 208.7103 on bottom, R/S, quadrant and bearing,quad 2 on top and 90 bear. on bottom, R/S,
north nxt pt. N? 5208.7103, R/S, east nxt pt. E? 5208.7103, R/S, polar angle and dist.0.000 on top and 208.7103 on bottom, R/S quad 5 on top and bear.0.000 on bottom,remember quad 5 is due north bearing N-0.0000-E R/S, runs north nxt pt. N? 5208.7103, R/S,runs east nxt pt. E ? 5000.00, R/S runs polar angle - 90.0 on top and dist. 208.7103 on bottom,notice - 90 is negative. R/S, quad.4 on top, bear.90.0 on bottom,R/S runs north nxt pt. N ? 5000.00R/S, east nxt pt. E?, 5000.00, R/S, polar angle 180 on top and dist. 208.7103 on bottom ,R/S, quad 3 on top and bear.0.0000 on bottom. this completes a traverse inverse of one acre.
Note: Quadrant 5, will only appear if the bearing is due North 0 Degrees.
So now RCL H =total HD traveled =834.8412 ft.
So now RCL G =total SQFT in AREA= - 43599.9893, IGNORE the +/- sign. And thats how this program works And make sure your calculator is in DEGREE MODE.
Until next Time.
Hi Everyone,
I will pick up where i left off with the Time Machine.I think back to the first day I saw a HP 48 GX and I took a look ,after just using my HP 41cx, so this is the new calculator. I looked but I could not find, P to R or R to P keys nowhere and there was no HMS or HR keys to be found. Thats no problem may be they were alpha keys. Then I was told there was no RPN programming,it was in RPL.
Why do they always change things. First we had to learn RPN,then RPL and now HP PPL or just PPL.
And even now a new RPN born as a macro of PPL and this is just the tip of what this calculator is capable of. So we looked at HP PPL Inverse and a macro RPN Inverse, a RPN Inverse in RPN complex and a RPN in RECT and POLAR rpn now back to PPL using complex numbers.
Make your own programs,you get to choose.You can add to or take off what you need and like and don't like. Just like I said on the first PPL Inverse you can add too or take off,use Feet or meters.
Here in PPL Inverse,using complex equations.
Using Program Parameters,{ N1,E1,N2,E2,ELEV2,ELEV1 }
EXPORT azdistcplex1(N1,E1,N2,E2,ELEV2,ELEV1)
BEGIN
// 2016-09-06 BB
// SET DEGREE MODE
HAngle:=1;
// Algebraic Order Quad(+/-)Sign
//1=(+/+),2=(−/+),3=(−/−),4=(+/−)
LOCAL ΔY:=(N2-N1);
LOCAL ΔX:=(E2-E1);
// Horiz.Dist.
LOCAL D:=ABS(ΔX+ΔY*i);
// Elev. Diff.
LOCAL DN:=(ELEV2-ELEV1);
LOCAL Bears1:=ARG(ΔX+ΔY*i);
LOCAL Bears2:=ABS(ATAN(ΔX/ΔY));
//Bears2
LOCAL BEARNE:=(Bears2);
LOCAL BEARSE:=(Bears2);
LOCAL BEARSW:=(Bears2);
LOCAL BEARNW:=(Bears2);
PRINT();
PRINT("DISTANCE (FT)");
PRINT(D);
//Bearing Quadants
LOCAL Q1:="NE";
LOCAL Q2:="SE";
LOCAL Q3:="SW";
LOCAL Q4:="NW";
//BEARING DEGMINSEC
LOCAL QD1:=→HMS(BEARNE);
LOCAL QD2:=→HMS(BEARSE);
LOCAL QD3:=→HMS(BEARSW);
LOCAL QD4:=→HMS(BEARNW);
PRINT("BEARING FORWARD");
IF ΔY>0 AND ΔX>0 THEN PRINT(QD1);PRINT(Q1);END;
IF ΔY<0 AND ΔX>0 THEN PRINT(QD2);PRINT(Q2);END;
IF ΔY<0 AND ΔX<0 THEN PRINT(QD3);PRINT(Q3);END;
IF ΔY>0 AND ΔX<0 THEN PRINT(QD4);PRINT(Q4);END;
//Bears1
LOCAL Bears2:=ARG(ΔX+ΔY*i);
LOCAL Bears1:=ABS(ATAN(ΔX/ΔY));
//AZIMUTH QUADRANTS
LOCAL AZinve1:=(Bears1);
LOCAL AZinve2:=(180-Bears1);
LOCAL AZinve3:=(180+Bears1);
LOCAL AZinve4:=(360-Bears1);
//AZIMUTH DEGMINSEC
LOCAL AZ1:=→HMS(AZinve1);
LOCAL AZ2:=→HMS(AZinve2);
LOCAL AZ3:=→HMS(AZinve3);
LOCAL AZ4:=→HMS(AZinve4);
PRINT("AZIMUTH FORWARD");
IF ΔY>0 AND ΔX>0 THEN PRINT(AZ1);END;
IF ΔY<0 AND ΔX>0 THEN PRINT(AZ2);END;
IF ΔY<0 AND ΔX<0 THEN PRINT(AZ3);END;
IF ΔY>0 AND ΔX<0 THEN PRINT(AZ4);END;
PRINT("Diference in elev (FT)");
PRINT(DN);
PRINT("Elevation of Pt2(FT)");
PRINT(ELEV2);
PRINT("Elevation of Pt1(FT)");
print(ELEV1);
END;
Go to Program Catalog, select azdistcplex1,then RUN.
you will see, Program Parameters
N1. 0.0000...........E1 .0.0000
N2. 0.0000..........E2. 0.0000
ELEV2 0.0000....ELEV1 0.0000
Input or Enter all and press OK after each to enter,then OK
for program to RUN.
The SCREEN you will see
DISTANCE (FT)
0.0000
BEARING FORWARD
0°.00' 00"
NE
AZIMUTH FORWARD
0°.00' 00"
Difference in elev(FT)
0.00
Elevation of Pt2(FT)
0.0000
Elevation of Pt1(FT)
0.0000
This is just a simple Inverse program, a lot more can be done to it. This is just one more
way to write Inverse in PPL. So add this one to your list, I have quite a list of surveying
programs in PPL and macro RPN and it keeps growing every day.
Thank you,
Survenator for the fav,Glad you like it.
Hi Everyone,
Before I move on to Traverse, Lets look at Inverse just a little more. With different type of RPN programming.
Theory, If the coordinates of two points are given, there are two ways by which the azimuth and distance between them may be derived. These are equivalent, and will produce the same result. This HP- 35s program uses the second method, viz., vectors stored as complex numbers. The Hp 33s Is different. It uses the first method but in a different way ,the HP 35s can use the second with complex numbers or the first using a R to P subroutine in the program this is also nested or can be,not always. It can also be used as a calling routine.
This program is designed to hide completely the complex number work that the calculator
performs to compute the azimuth and distance from the coordinates. All values entered and
returned are presented in much the same manner as with the equivalent operation (Rectangular to Polar) in the HP-33S calculator. So now here is a Inverse Program in Saturn RPN written for the HP 35s.
It using complex numbers without using (Rectangular to Polar). Using Coordinates alone, the differences between the easting coordinates of the points (ΔE) and difference between the northing coordinates of the two points (ΔN) are obtained. The point from which the azimuth is desired to come is termed the ‘near’ point, while the point to which the azimuth points is termed the ‘far’ point. So You could also say POB near and POE far.
1.First Method
ΔE = Eƒ – En
ΔN = Nƒ – Nn
The distance, d, between the two points is computed using:
d = SQRT( ΔE² + ΔN²) or d= √ΔE² + ΔN²
The azimuth, θ, between the two points is computed using:
θ = arctan(Δ E/Δ N)
The ATAN2 function (in some programming languages and Excel) takes the two components, ΔE and ΔN, as separate arguments, and returns an azimuth in the range –180° to +180°. This is easily converted to an azimuth in the range 0° to 360° The HP calculator function R→P performed a similar process, but it is not present on the HP-35s, so the angle must be put into its correct quadrant manually, as the ATAN function returns a value between –90° and +90°.
2.Second Method
Using Vectors, the coordinates of each point are entered as
the components of a pair of 2-D vectors. In the HP-35s, 2-D vectors are best handled as complex numbers, so that the coordinates are stored as the two vectors from the origin, vf and vn, as follows:
vf = Nƒ + i Eƒ
vn = Nn + i En
The vector from the near point to the far point, vx, is then the difference between the two vectors:
vx = vf – vn
This calculation is handled by a simple vector (albeit using complex numbers) subtraction in the
HP-35s.
To obtain the length of the vector vx, its absolute value must be taken (using the ABS function):
d = |vx|
The azimuth of the vector vx is calculated as the argument of the vector, using the ARG function:
θ = arg(vx)
The HP-35s returns the azimuth in the units in which the calculator us currently set, usually
degrees. The value will be in the range –180° to +180°. The program brings this value into the
range 0° to 360°, and converts it to degrees, minutes and seconds, in HP notation (i.e.,
HHH.MMSSsss).
So, here is Inverse in Saturn RPN using Complex Numbers in the
HP 35s ,Base on Dr. Bill Hazelton Routine algorithms , Inverse with complex numbers.
Notice: Dr Bill Hazelton,Enters, Point 2 First, Far Pt., POE,then Pt. 1, Near, This is still 1.0 looking at 2.0. Do not let this confused you, this is just algebraic order.
Line Instruction,,,,,,,,,,,,,,,,,,Display User Instructions
I001 LBL I,,,,,,,,,,,,,,,,,,,,,,,,, LBL I
I002 CLSTK ,,,,,,,,,,,,,,,,,,,,,,,CLEAR 5
I003 SF 10 ,,,,,,,,,,,,,,,,,,,,,,,,FLAGS 1 .0
I004 COORD INVERSE,,,,,, (Key in as EQN RCL C, RCL O, etc.; ENTER to end)
I005 PSE,,,,,,,,,,,,,,,,,,,,,,,,,, PSE
I006 PT2 FAR POE,,,,,,,,,,,,,(Key in as EQN RCL P, RCL T, etc.; ENTER to end)
I007 PSE,,,,,,,,,,,,,,,,,,,,,,,,,, PSE
I008 XEQ I029
I009 RCL P,,,,,,,,,,,,,,,,,,,,,,,,RCL P
I010 STO F,,,,,,,,,,,,,,,,,,,,,,, STO F
I011 PT1 NEAR POB,,,,,,, (Key in as EQN RCL P, RCL T, etc.; ENTER to end)
I012 PSE,,,,,,,,,,,,,,,,,,,,,,,,, PSE
I013 XEQ I029
I014 RCL P,,,,,,,,,,,,,,,,,,,,,,,RCL P
I015 STO N,,,,,,,,,,,,,,,,,,,,,, STO N
I016 RCL F,,,,,,,,,,,,,,,,,,,,,,,RCL F
I017 RCL– N,,,,,,,,,,,,,,,,,,,,,RCL - N
I018 STO V,,,,,,,,,,,,,,,,,,,,,, STO V
I019 ARG,,,,,,,,,,,,,,,,,,,,,,,, ARG
I020 x ≥ 0?,,,,,,,,,,,,,,,,,,,,, x ? 0 5
I021 GTO I024
I022 360
I023 +,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,plus
I024 →HMS ,,,,,,,,,,,,,,,,,,→HMS
I025 RCL V,,,,,,,,,,,,,,,,,,,,,,,RCL V
I026 ABS,,,,,,,,,,,,,,,,,,,,,,,,, ABS
I027 STOP,,,,,,,,,,,,,,,,,,,,,, ,Press R/S
I028 GTO I006
I029 CLx,,,,,,,,,,,,,,,,,,,,,,,,, CLEAR 1
I030 STO N,,,,,,,,,,,,,,,,,,,,, ,STO N
I031 STO E,,,,,,,,,,,,,,,,,,,, ,,STO E
I032 KEY IN N ,,,,,,,,,,,,,,,,(Key in as EQN RCL K, RCL E, etc.; ENTER to end)
I033 PSE,,,,,,,,,,,,,,,,,,,,,,,, PSE
I034 INPUT N,,,,,,,,,,,,,,,, ,INPUT N
I035 KEY IN E,,,,,,,,,,,,,, ,,(Key in as EQN RCL K, RCL E, etc.; ENTER to end)
I036 PSE,,,,,,,,,,,,,,,,,,,,,, ,,PSE
I037 INPUT E,,,,,,,,,,,,,,,, ,,INPUT E
I038 RCL E,,,,,,,,,,,,,,,,,,,,,,RCL E
I039 0 i 1,,,,,,,,,,,,,,,,,,,,,,,,0 i 1
I040 ×,,,,,,,,,,,,,,,,,,,,,,,,,,,,,times
I041 RCL+ N,,,,,,,,,,,,,,,,,,,RCL + N
I042 STO P,,,,,,,,,,,,,,,,,,, ,,STO P
I043 RTN,,,,,,,,,,,,,,,,,,,,,,,,RTN
1) Set the calculator into DEGREES mode (press MODE 1) before starting, to make
sure that you get degrees, minutes and seconds for the azimuth.
(2) This is a basic coordinate ‘inverse’ program that computes the azimuth and
distance between two points whose coordinates are supplied. While the program
works with complex number representations internally, this is hidden from the
user.
(3) Azimuths are by themselves in HP notation, i.e., DDD.MMSSss.
(4) In order to display the prompts, this program sets Flag 10. However, the program
never formally ends, because it is up to the user to decide when to stop and move
control elsewhere. So the program never clears Flag 10. If you require Flag 10 to
be clear, in order to process equations, you must do this manually.
Here is AZ Inverse, same calculator HP 35s, First Method,not using complex numbers??? ,but still not the same as using θ = arctan(Δ E/Δ N), it is a complex subroutine mimic of R to P
with Rectangular to Polar subroutine in the program lines.
AZ Inverse is base on my HP 33s Routine with added R to P subroutine nested.
It is also Hidden from the User.
Notice In this program Pt. 1.0 Is Enter First, Then Pt 2.0. This is PT 1.0 ,Looking at PT 2.0
Pt.1.0 is Near and Pt 2.0 is Far, this is in the algorithms between these two different programs. It's just the Input order. This is RPN order of programming.
AZ INVERSE
I001. LBL I
I002.SF 10
I003. AZ INVERSE
I004. PSE
I005. P O B N PT 1
I006.PSE
I007.INPUT N
I008. SF 10
I009. POB E PT 1
I010. PSE
I011. INPUT E
I012. SF 10
I013 NORTH PT 2
I014. PSE
I015. INPUT Y
I016. SF 10
I017. EAST PT 2
I018. PSE
I019. INPUT X
I020. RCL E
I021. RCL X
I022. ─
I023. RCL N
I024. RCL Y
I025. ─
I026. X<>Y
I027. i
I028. x times
I029. + plus
I030. ARG
I031. LASTx
I032. ABS
I033. STO D
I034. X<>Y
I035. 180
I036. + plus
I037. >>>HMS
I038. STO A
I039. SF 10
I040 HD DIST
I041. PSE
I042. AZIMUTH
I043. PSE
I044. R /S STOP
I045. GTO I001
I046. RTN
There are many HP calculators that did not come with P to R and R to P keys, so the lack of them on the HP 35s was not the first time we a surveyors faced this. Using programs and complex number we have adapted and moved on in our ever changing world of surveying.
I have seen the time when all we had was a slide rule to do the math. What a welcoming site the first
pocket scientific calculator the HP 35. Then they were programmable,now we have computers, so who needs a calculator. Everyone of us, I hate to see the day surveyors stop having a calculator with them.
Hello everyone ,Here are two examples of P to R and R to P simple programs with out equations and not using a storage Regs. These are written in Saturn assembly RPN or Keystroke, for the HP 35s.
This is Go Polar and GO Rectangular or R to P and P to R.
LBL P LBL R
x to y x to y
i COS
x times x to y
+ plus LASTx
ARG SIN
LAST x x to y
ABS x times
RTN x to y
LASTx
x times
RTN
These 2 programs will solve P to R and R to P without any EQU. or data storage reg. being used .they work like the 2 keys on the HP 33s.., HP 32s are any other HP RPN calculator that has these keys.
Surveyors for many years had come to rely on there calculators having these two keys. The Hp 35s did not come with them so we had to adapt to not having them on the key board of the calculator.There are many versions of these two programs.
But here are these in macro RPN using the Prime.
Now lets write P→R and R→P,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
name them ptor and rtop .
,,,,,,,,ptor,,,,,,,,,,,,,,,,,,,,,,,,,,,rtop,,,,,
1."DEG",,,,,,,,,,,,,,,,,,,,,,,1."DEG"
2."INPUT",,,//BRG,,,,,,,,,2."INPUT".......DEP
3."INPUT",,,//DIST,,,,,,,,,3."INPUT"........LAT
4."RECT",,,,,,,,,,,,,,,,,,,,,,4."POLAR"
5."END",,,,,,,,,,,,,,,,,,,,,,,,5."END"
These will work just like the two keys on a HP calculator. The Hp 35s does not have them.
Now i will write a inverse program like you would use on a RPN calculator say like the HP 35s.
So here is macro (invp) in the HP Prime in macro RPN.
1."DEG",,,,,,,,,,,,,,,,,15."RCL 3"
2."INPUT",,,,,,,,,,,,,,,16. "- ",,,,,,,,,,// input on line 2 is north 1
3."STO 1",,,,,,,,,,,,,,,17. "STO 6"
4."INPUT",,,,,,,,,,,,,,,18."RCL 5",,,,,// input on line 4 is east 1
5."STO 2",,,,,,,,,,,,,,,19.RCL 6"
6."INPUT",,,,,,,,,,,,,,,,20."POLAR",,,,,,// input on line 6 is north 2
7."STO 3",,,,,,,,,,,,,,,,21."SWAP"
8."INPUT",,,,,,,,,,,,,,,,22. 180,,,,,,,,,,,,,// input on line 8 is east 2
9."STO 4",,,,,,,,,,,,,,,,23. " + "
10."RCL 2",,,,,,,,,,,,,,,24." >DMS"
11."RCL 4",,,,,,,,,,,,,,,25."PAUSE"
12. " - ",,,,,,,,,,,,,,,,,,26."RTN"
13."STO 5",,,,,,,,,,,,,,,27."END"
14."RCL 1"
If you notice i added >DMS to the program,if you do not wish your answer to be in HMS,then remove line 24,and your answer will be in Decimals of a Degree, " >D"
To start new calculations ,just press ENTER,and you will be asked for line 2 input again etc.
I called this program invp, it will work as good as any program in a RPN calculator.
This program was wrote by Billy Brooks,for macro RPN in the HP Prime.as of this date 09-02-2016.
Now to compare a macro RPN to a simple, no title lines or labels, just algorithms in a RPN program.
These programs are shorter if written for the HP 33s because of those two little keys. But the HP 35s being able to use program line addressing takes away this short coming when compared to the HP 33s being able to only use Global labels in the alpha string.So here is a Inverse to go with Traverse not using those two little keys. or any equations or any storage Regs. First give it a name . I if you like.
Inverse program in Saturn RPN
I001. LBL I
I002. INPUT N
I003. INPUT E
I004. INPUT Y
I005. INPUT X
I006. RCL E
I007. RCL X
I008. - minus
I009. RCL N
I010. RCL Y
I011. - minus
I012. X<>Y
I013. i
I014. x times
I015. + plus
I016. ARG
I017. LASTx
I018. ABS
I019. STO D
I020. X<>Y
I021. 180
I022. + plus
I023. >> HMS
I024. STO A
I025. R / S, STOP
I026. GTO I001
I027 RTN
Your LN =85
Always check your program lines. Very simple to run XEQ I input N= n1 and E=e 1 then Y and X Y= n 2 , X=e 2 R /S = az R /S= dist .
So there, you now have a simple inverse program that will work as good as any.There is a lot that can be done to these programs you can add input labels and viewing labels using VIEW and using SF 10 , flag 10 controls your equation functions in program line labeling it as not a equation , so a message can be enter in to program lines i will talk about this another time.
Now I have showed you, Inverse in HP PPL, macro RPN, and Saturn RPN. the first two can be programed in the HP Prime the third is to compare both RPN's Next I will compare Traverse programs.
Calculators are not being used as much in the field. Students have to use them.There will always be a time when any surveyor will need or wish they had one with them. I have seen many times crews come in just because the data collector quit working. There are plenty jobs and work, that all you needed was a good calculator to keep working.And there always plan B with a calculator.
Hi Everyone,
All of this is the Future of what calculators are starting to become,they are now more like Math Computers ,than they are calculators.They are just evolving with the times,in some cases they are moving into the Future .So how can this calculator take you into the past,Like what has already been pointed out above,that this calculator programming is not compatible with RPL or RPL system or with programming in Saturn or ARMv4T assembly languages that includes RPN. Just like the RPL calculators that Ran in RPN mode,they still could not do RPN programming ,also the Prime can Run in RPN mode, but cannot do RPN programming. RPN Keystroke programming ,“Keystroke” is the HP equivalent to Microsoft’s “macro”.So with the help of Eddie Shore, He has wrote in HP PPL, Two programs that work in “program” mode. This mode enables the Prime to write and store a series of keystrokes for future use. It’s like a macro in Microsoft Excel. To access programs You use Tool Box,then User Program Function . To write the macro you use editmacro in ***Edit Mode***, to Run the programs you use Tool Box, user Program functions, runmacro (macro name) ,These are like keystoke RPN Programs that has been used in the Past .The RPL calculators could not do this. So with these two Macro programs
you can write and run Two different calculator languages. on the HP Prime, So the language of the Future,will take you back to the Past.
Although This is familiar type RPN language,there are some differences.The label is the macro name,LBL 1,2,3 etc. are use as path ways and GTO instructions, You press Enter before you type the constants,Your answers will end on the 4 level stack RPN that you are use to
,but you will see all 4 levels, T,Z,Y,X, so you write the program to end with the possibility of 4 answers at one time,(your option) there is no Run/Stop key. What you come up with is a program language that looks like a mixture of RPN from Friden logic system,up to present day. I call it
ESN,Eddie Shore Notation, I am sure Eddie would like that, Eddie Shores has been good enough to write these two HP PPL programs and include instructions on how to use them and with your keystrokes and commands.To get these Two programs you must go to MOHPC and
view there HP Prime Software Library, page 3, and find Eddie Shore, editmacro,runmacro, 3,9,2015 update, then down load the file. In this file is three folders a Read me,editmacro and runmacro The Read me is where you will find instructions and example's and everything else you need,you must be a member to download these files.So if you are not ,then apply for membership. Then you are on
your way to the future and the Past,with this Time Machine.These are not survey programs,they let you write your own RPN programs no matter what they are. So all you old timers step into the Future and you new Surveyors come out of the future and step into the past.With this amazing calculator. HP PRIME.
These programs must be downloaded and installed with the Prime HP Connectivity Kit.
Here are some links that you will need.
http://www.hpmuseum.org/forum/forum-15.html?order=asc&datecut=9999
http://www.hpmuseum.org/forum/forum-15-page-3.html?order=asc&da...
http://www.hpmuseum.org/forum/thread-3301.html
And you may able to just download from here,but advise to read Eddie page for this download @MOHPC
https://drive.google.com/file/d/0B7R8x9Yi26yGNE5GMGlnYXFaT2s/view?u...
https://drive.google.com/file/d/0B7R8x9Yi26yGNE5GMGlnYXFaT2s/view?p...
Once you have the programs on the calculator , you can then start to write macro RPN programs. Like I said above,there is aread me file
that gives Instructions on how to being learning how to write these macro programs lines they are in strings but numbes are not.
This is editmacro this progran is for writing or editing your program.
This program is 349 lines long, but here is the first 45 lines, you can view the program after you have installed it in the Hp connectivity Kit. Or in your Prime. You can Install the Emulator on your computer and see and have both in the Kit. Programs will drag and drop or copy and paste from each, the Emulator or the real calculator and your computers prime program files also. All of this can be backed up.
This allows you to Clone your calculator or your Emulator to each other,or kept each other different if you like.
EXPORT editmacro()
BEGIN
// Rev. 2015-03-09 EWS
// Bring up working macro
LOCAL macro:={}; // set up macro
LOCAL k:=1; // set up pointer
LOCAL temp; // temp list
LOCAL key; // for getkey
LOCAL ch,reg; // for choices
LOCAL shift:=0; // shift key flag
LOCAL s; // size of macro
RECT();
TEXTOUT_P("*** Edit Mode ***",
1,1,4,#8000h);
// Getkey loop
REPEAT
key:=GETKEY;
// turn shift key on and off
IF key==41 THEN
IF shift==0 THEN
shift:=1;
TEXTOUT_P("Shift",10,25,4,#FFh);
ELSE shift:=0;
RECT_P(10,25,318,48); END; END;
// Help
IF key==3 THEN
RECT();
TEXTOUT_P("Esc: Exit, Enter: Constant",
1,1,4);
TEXTOUT_P("Vars: Memory, Toolbox: Math/
Cmds",1,25,4);
TEXTOUT_P("Template: GTO, xtθn: XEQ, a b/c: LBL",
1,49,4);
TEXTOUT_P("Shift Keys:",1,73,4,#FFh);
TEXTOUT_P("1: FIX, 2: , 3: π, 6: MOD,
9: x!",1,97,4,#FFh);
WAIT(0);
RECT();
shift:=0;
END;
This is runmacro, here are the first 45 lines, this program is 456 lines ,so it is to big to show . You can view it also after you have installed it. Notice the dates of each HP PPL programs this helps to be sure you have the correct vers. of it. This program will run your macro RPN, also known as keystroke programming. These two programs will let you write and run the Keystroke programs on the Prime.
So now this allows you to use HP PPL and a macro RPN on the same calculator. This macro RPN is different, but those you that have used RPN Notation Logic will catch on quick. and yes we are taking about a calculator . I do not know any other calculator that will do this.
EXPORT runmacro(macro)
BEGIN
// Rev. 2015-03-09 EWS
LOCAL stack:={0,0,0,0};
LOCAL n:=SIZE(macro);
LOCAL k, temp, t1, t2, last:=0,
rtn:=0;
// Registers (temporary)
LOCAL reg:=MAKELIST(0,X,1,20);
// Labels
LOCAL w,s,labels:={0,0,0,0,0,0,0,0,0};
FOR w FROM 1 TO 9 DO
s:="LBL "+w;
s:=POS(macro,s);
labels[w]:=s;
END;
// Clear the terminal
PRINT();
// Operation
FOR k FROM 1 TO n DO
// Display Line Pointer
PRINT("Line "+k+": "+macro(k));
CASE
IF TYPE(macro(k))==0 THEN
stack:={macro(k),stack(1),stack(2),
stack(3)}; END;
// Prompt for numbers
IF macro(k)=="INPUT" THEN
INPUT(X,"Input Number: Line "+k);
stack:={X,stack(1),stack(2),stack(3)};
END;
IF macro(k)=="PI" THEN
stack:={π,stack(1),stack(2),stack(3)};
END;
Once you have the programs on the calculator you are ready the to start,Learning how this New RPN works in macro. So go to Eddie's Read me and look at the first program you will write. These programs will not run in RPN mode, I use Textbook,when doing these programs, that seems to work best but I have seen some that also work in Algebraic mode but textbook all will work. The first macro is area of a circle, these program lines are wrote in "string", but number input is not entered as a"string",So remember this, numbers are not in "strings".then run from program catalog editmacro or from tool box, user program function, select edit macro Enter, then you will be in ***Edit Mode*** and you can start your program. most of my program i also use DEG mode for my angles, so i set the program in DEG mode,by making it my
first line. If your solution needs to be in Radians then do not do this, this is just to make sure i am in Degree mode. So your first line will be 1. "DEG" this program looks like this. as you will see.
1."DEG"
2."INPUT"
3."X^2"
4. "PI"
5."*"
6."END"
END will be automatically added to the last line (similar to HP 41). So when you reach the last line then press Esc
Now you have to name it, so type macro01:= high light the program line and press ENTER,ENTER,and you will be asked do you want to create a variable in this name, then press OK, and you just made your first macro name macro 01, Now how to run it, Go tool box,user program functions,runmacro, then to vars, user variables macro01 and it will look like this runmacro(marco01) ,then ENTER ,your program will start,you will see a input line ,type 15 then OK, then you will see the
*** STACK***,T,Z,Y,X, in X line your answer 706.858347058, and that is the area of that circle. So stay tune, were I will go over inverse using macro RPN and plenty more programs that you will use in surveying.
Hi Survenator,as always thank you back.
And for those of you who had not read Part 1
here is a link to it.
https://landsurveyorsunited.com/group/hp-prime-50g-group/forum/topi...