🌐 Show Forums for All Locations
Land Surveyor Community


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.




LOCAL ΔN:=(N2-N1);
LOCAL ΔE:=(E2-E1);


LOCAL D:=√((ΔE)^2+(Δ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);







PRINT("Difference in elev (FT)");




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.




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





45.00' 00"



45.00' 00"



45.00" 00"


225.00' 00"

Difference in elev (FT)



 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. 


You need to be a member of Land Surveyors United - Global Surveying Community to add thoughts!

Join Land Surveyors United - Global Surveying Community

Votes: 0
Email me when people reply –


  • 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.


    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.


    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

    Coming Soon
  • GEO Ambassador

    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.
    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)
    LOCAL r:=ARG(x+y*i);
    IF (r < 0) THEN
    IF (HAngle) THEN
    r := r + 360;
    r := r + 2*π;
    RETURN r;

    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;

    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.


    I001.LBL I........................ I051.SF 10
    I002. CLx..........................I052. POLAR ANGLE
    I004.SF 10........................I054.SF 10
    I005.BRG INV....................I055.H DIST
    I007.AND AREA................I057.STOP R/S
    I008.PSE..........................I058.SF 10
    I009.SF 10........................I059.QUADRANT
    I010.POB NORTH..............I060.PSE
    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
    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
    I046.RD roll down
    I047.RD roll down
    I048.(EQN) ARG ( REGT )
    I049.(EQN) ABS (REGT )
    I050.STO + H

    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
    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

    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)


    // 2016-09-06 BB



    // Algebraic Order Quad(+/-)Sign


    LOCAL ΔY:=(N2-N1);

    LOCAL ΔX:=(E2-E1);

    // Horiz.Dist.

    LOCAL D:=ABS(ΔX+ΔY*i);

    // Elev. Diff.


    LOCAL Bears1:=ARG(ΔX+ΔY*i);

    LOCAL Bears2:=ABS(ATAN(ΔX/ΔY));


    LOCAL BEARNE:=(Bears2);

    LOCAL BEARSE:=(Bears2);

    LOCAL BEARSW:=(Bears2);

    LOCAL BEARNW:=(Bears2);




    //Bearing Quadants

    LOCAL Q1:="NE";

    LOCAL Q2:="SE";

    LOCAL Q3:="SW";

    LOCAL Q4:="NW";












    LOCAL Bears2:=ARG(ΔX+ΔY*i);

    LOCAL Bears1:=ABS(ATAN(ΔX/ΔY));


    LOCAL AZinve1:=(Bears1);

    LOCAL AZinve2:=(180-Bears1);

    LOCAL AZinve3:=(180+Bears1);

    LOCAL AZinve4:=(360-Bears1);


    LOCAL AZ1:=→HMS(AZinve1);

    LOCAL AZ2:=→HMS(AZinve2);

    LOCAL AZ3:=→HMS(AZinve3);

    LOCAL AZ4:=→HMS(AZinve4);






    PRINT("Diference in elev (FT)");


    PRINT("Elevation of Pt2(FT)");


    PRINT("Elevation of Pt1(FT)");



    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




    0°.00' 00"



    0°.00' 00"

    Difference in elev(FT)


    Elevation of Pt2(FT)


    Elevation of Pt1(FT)


    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

    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.,

    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

    (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. 
    I001. LBL I
    I002.SF 10
    I003. AZ INVERSE
    I004. PSE
    I005. P O B N PT 1
    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


                                                       x times


    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 .







    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.

    Prime Music leverer underholdende succeser i restaurationsbranchen og erhvervssektoren. Professionelle dj's, dansere, events og bands til hele skandi…
  •  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.




    And you may able to just download from here,but advise to read Eddie page for this download @MOHPC



    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()


    // 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
    TEXTOUT_P("*** Edit Mode ***",


    // Getkey loop

    // turn shift key on and off
    IF key==41 THEN
    IF shift==0 THEN
    ELSE shift:=0;
    RECT_P(10,25,318,48); END; END;

    // Help
    IF key==3 THEN
    TEXTOUT_P("Esc: Exit, Enter: Constant",
    TEXTOUT_P("Vars: Memory, Toolbox: Math/
    TEXTOUT_P("Template: GTO, xtθn: XEQ, a b/c: LBL",
    TEXTOUT_P("Shift Keys:",1,73,4,#FFh);
    TEXTOUT_P("1: FIX, 2: , 3: π, 6: MOD,
    9: x!",1,97,4,#FFh);

    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)
    // Rev. 2015-03-09 EWS

    LOCAL stack:={0,0,0,0};
    LOCAL n:=SIZE(macro);
    LOCAL k, temp, t1, t2, last:=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;

    // Clear the terminal

    // Operation
    FOR k FROM 1 TO n DO

    // Display Line Pointer
    PRINT("Line "+k+": "+macro(k));


    IF TYPE(macro(k))==0 THEN
    stack(3)}; END;

    // Prompt for numbers
    IF macro(k)=="INPUT" THEN
    INPUT(X,"Input Number: Line "+k);

    IF macro(k)=="PI" THEN

    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.

    4. "PI"

    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.


    First Steps,Can i help you survey?,I can, I am HP Prime
     Hi Everyone,Some of you know what the hp Prime is , some of you do not. For those let me introduce you to this calculator. First it is not just a ca…
This reply was deleted.

Answer As your Facebook Page

Global Surveyor Forum

Latest Discussions by Category

How to Utilize Surveyor Forums

How to use Forums
Our forums on Land Surveyors United are here to be used as much for finding help with problems in the field as the are for you to express your opinions on anything that has to do with land surveying in general. Feel free to share anything that is on your mind, as long as it isn't meant to damage another member's reputation. Please keep it clean and help insure that everyone has the opportunity to enjoy the benefits of being part of a community that grows together.


We are committed to allowing freedom of expression for all of our members, and that includes maintaining a safe space for people with opposing views to express themselves. We get posts from all over the country and even the globe, so needless to say, people come with different viewpoints on lad surveying practices and processes. We see this diversity and variety as a real strength-- dialogue and debate are an integral part of the educational process, as well as an important tool in exploring different sides of complex issues.

All Community Hubs inside the community have their own forum for asking specific questions to other surveyors, by location, equipment type, etc.

Topics by Tags

Monthly Archives

Global Forums

Add Your Expertise

🌐 Explore Forums Based on Location

Blog Topics by Tags

Monthly Archives

+ Share Your Surveying Experience

Hey there!
It looks like you are enjoying the community content.

That's nice! Please don't forget to mention us if you use what you just copied on your website. Help strenthen the community by linking back to us!

Thank you very much! Have a nice day! :)

Ok. Don't bother me again, for this session.