HP48gx for surveying landHello Everyone, In the calculator world HP has hit some Home Runs in its time. Starting back with the original HP 35 to the little HP 25 to the HP 67 to the HP 41cx and the well used HP 48 gx. Ever one i just mention was well used in the surveying world and many more that i left out. Some of these even came with surveying programs. Now the programming is left up to us. When i started writing  RPN in 1976 I was amazed  how this made my math much easier to do. Plus to know how correct it was. Then came the HP 41cx with the Survey Pac. , this was a dream come true. Then it was not to long the HP 48 appeared, then final the HP 48 gx with its program cards and the ram cards to back it up. SMI and TDS play a big part in the following years. If you used a Data collector that was a calculator, this was the dual role that it played. now the world has changed to more computer type collectors in the field. This also leaves the surveyor in the field wishing he or she had a calculator. This is how this gap is filled with the only RPN calculator made today. Some in the world do not use a RPN  logic calculator. HP has even went so far as to have both modes for those who do not. There is nothing wrong with Algebraic expressions ,I just like RPN logic. There are less steps in programming. But on with this story on how this little calculator stack up with the models that came before it. Lets first look at programming, and this list may surprise you.Even for those who write RP Lisp. and the new HP PPL Language  for HP Prime.  The HP 35s. will surprise you.

This Content Originally Published by a land surveyor to Land Surveyors United Network

Views: 3796

See Your Saved Posts Timeline

Replies to This Discussion

Hello Everyone, I will start this off with a list of programs that are available. for the HP 35s.

1. Traverse closure with area calculations and coordinates.

1A.   "          "             "             "             "               "

2. Two missing distance(2 M D)   calculations.

3. Three- point horiz. resection reduction  Prog.

4.Coordinate - base intersection Prog.

5. Traverse closure with area calculations and coordinates and calculation of curve area.

6. Crandall's adjustment for a close traverse.

7.Traverse Prog. using latitude and longitude and the Gauss mid -latitude Formulae.

8. Traverse closure with area calculation and coordinates and proportional misclosure.

9.Horizontal curve, given any two parameters.

10. Compute values  for a parabolic vertical curve.

11.Convert latitude and longitude to Lambert Conformal conic projection coordinates (SPCS).

12.Convert Lambert Conformal conic projection coordinates (SPSC) to latitude and longitude.

13.Roots of a Quadratic equation.

14.Roots of complex numbers.

15.Complex numbers,vectors and coordinates.

16.Convert Latitude and Longitude to Transverse Mercator coordinates (UTM,SPCS,etc.).

17.Converts Transverse Mercator coordinates (UTM,SPCS, etc)to latitude and longitude.

18.Plane triangle Solutions.

19.HMS +.

20.HMS ─.

21.Enter vectors with DMS, AZ. for complex numbers

22.Extract real and imaginary parts of a complex numbers

23.Enter vectors with DMS, AZ for complex numbers, but check for a negative distance.

24. Azimuth and distance from coordinates (Inverse).

25.Convert latitude ,longitude and height on any Ellipsoid  to XYZ Geocentric coordinates.

26.Convert XYZ Geocentric coordinates  on and Ellipsoid to  latitude and longitude and height.

27. Working with Indirectly Addressing memory.

28. Calculate a Radiation from Two Offsets

This link here you can download all these programs.

http://www.pdfdrive.net/hp-35s-closure-1-central-valley-chapter-e89...

This is just the start of the list that i will continue with, of programs that are available for this calculator.

HI Everyone,

 I do not know why but I am having trouble with the pdfdrive .net link. The site will not connect.

Most of these programs can be found at this link. Most are Dr Bill Hazelton programs

You can also try this link, if you are having a problem with pdfdrive.

http://www.wollindina.com/index.php/hp-calculators/hp-35s-calculator

Maybe  pdfdrive is not available but this link still is.

Billy

Hi again Everyone, For those of you who want curve programs here are two good one's that are stand alone ,when i say stand alone this means there are no utility  programs  or subroutines with them. Horiz. and vertical curve

http://www.pdfdrive.net/hp-35s-calculator-program-compute-horizonta...

http://www.pdfdrive.net/hp-35s-calculator-program-parabolic-vertica...

This will fix your curve solving needs, I think my own programs my be simpler to run , but these are fairly simple. they are good programs. Take note that there are GTO instruction to line numbers,this is what makes it different than the HP 33s programming. this means you use less Global labels in program lines . So now you have more alpha labels to use. this means you can write more programs.

billy

Hi Everybody, If you are just starting to learn how to write programs for the HP 35s then you will need to know how to use flags the manual goes over the flags menu. But here is a little more help. Using Flags

http://www.pdfdrive.net/using-hp-35s-flags-e9294966.html

billy

Hi Everyone,  Next those of you looking to also work in building highways . This is MN Dots Hp 35s program List

1. Inverse and Traverse.

2. Radial Inverse.

3. Radial Stub.

4. Triangle SSS.

5.Triangle SAS.

6. Triangle SAA.

7. Triangle ASA.

8. Triangle SSA.

 9. Intersections  LL,LC, CC.

10. Horizontal Curve.

11. Vertical Curve.

12. Area by coordinates.

13.Hour minutes seconds Arithmetic.

14.HMS + and HMS ─.

15. Polar to rectangular Vice versa.

16.Ratio Prog. Linear Proportion of X and Y values.

17. Bearing to Azimuth .

18. Azimuth to Bearing.

19. Utility Subroutines.

20. Numeric and Prompting  Data.

Here are twenty More, some that are the same as some above or still different . This program pack was developed to be use by MN dot survey crews. This alone lets you know the knowledge that was put into them to be used by there field crews.

http://www.pdfdrive.net/hp-35s-calculator-programs-mndot-office-of-...

These programs can also be found at their site MN Dot with a lot more from the HP 33 programs to their pc computer programs LIB.

billy

HI Everyone,  First I like to talk about the MN Dot programs . These programs are a program pack. This is a example of complex programs,each one of this programs work with each other they can not be separated .They also have Utilities programs that are like pointers in the subroutines as one program branches off in different levels to the next. If one is removed,some or all may not work ,so think of this as one big program. This is done in a network of programs to save memory and to use indirectly addressing program lines. By doing this ,This saves using more global labels for branching to subroutines. This in return uses less Alpha labels for subroutines.The more labels you have the more programs you can write into the calculator.This was borrowed from the older line of HP calculators ,like the Alphanumeric 41cx.This is only similar, this is not Alphanumeric programming. Also this calculator uses indirectly addressing memory ,it has 801 IND.ADD Regs., by using (i)and (j) values can be stored and recalled indirectly in programming functions. This add to the amount of memory this calculator has.A thru Z are negative numbers,and also statistic reg. the rest is positive numbers. look at program  number 27 to see how this works    Simple programs can stand by themselves, Complex  programs work together  In addition Equations can be used in programs also simple or complex.this shows how powerful this surveying tool is . So lets move on to some more programs

This suite of programs  are from Surveying and Geospatial  Science.

These are 8 programs in this 8, Closure,Radiations, Joins and Offsets have a heritage extending back to HP Desktop computer programs.

1. Closure with Accuracy,Area and double - missing Distance.

2.Coordinate Radiations with rotations and scale.

3. Coordinate Joins.

4. Radiations from Offsets.

5. Resection.

6. Adjustment - Bowditch and Candall's.

7. Polar to Rectangular.

8. Rectangular to Polar.

http://www.mygeodesy.id.au/documents/HP35s%20Surveying%20Programs.pdf

These are a suite, I know that the P to R and the R to P have to remain. Programmers may separate these, but cations to beginners .changing or removing may cause wrong answers or the programs simply will not work.

If you do not know how to program now is a good time to learn. You say i do not have a calculator anyway. Yes you can, you can download  a HP 35s  Emulators. This is a calculator that installs on your computer and work just like the real one. This will give you time to learn how it works . A real one only cost 60 dollars that is a bargain compare for what you just read on what it can do. never in my life have i seen one this cheap. In 1978 I paid 100 dollars for a HP 33E and it did not have constant memory ,and you could only program one program and run one at a time what a jump. This Emulator is also FREE so download one and start your journey on learning how program your own survey programs or used one's just like i showed you and you want depend on any system break down stopping  YOU.

here are the links to the Emulators, HP and others have download manuals.

https://www.educalc.net/2336231.page

http://www.calculatrices-hp.com/index.php?page=emulateurs

http://h10032.www1.hp.com/ctg/Manual/c01579350

Reply by Billy Brooks on March 20, 2016 at 10:52am

Hi Everyone, So far all of this is been about programs. In my discussion Satisfied or Dissatisfied with the HP 35s, i showed you how to use programs to replace P to R and R to P keys that were missing. And this was not a down fall to the calculator. I will show you these programs again so they will be in this discussion.We will need them again so lets Enter these programs.

rectangular to polar P polar to rectangular R

1. LBL P                          1. LBL R

2. X<>Y                           2. X<>Y

3. i                                  3. COS

4. x times                        4. X<>Y

5. + plus                          5. LASTx

6. ARG                            6. SIN

7. LASTx                         7.X<>Y

8. ABS                            8. x times

9. RTN                             9. X<>Y

                                      10. LASTx

                                      11. x times

                                      12. RTN

There are a lot of different versions of these two programs,some are simple some are complex with equations and many lines.these two are not they are simple and do all the math and do not use storage registers or equations and easy to program for beginners . Next in that discussion I also showed how to write Traverse and Inverse two different times. Two without labels and two with labels. I did not featured them in this discussion ,if you like to have them they are very good stand alone programs . this is the kind i like the most.Go to that discussion to get them. But you cannot always depend on a program, and surveyors should know how to calculate without a programs. If you have not use RPN before and have only used algebraic calculator this will surprise you. Lets Traverse with RPN logic. you compare. First we will need to store the beginning coordinates. Lets store 5000.0 in Letter N next 5000.0 in letter E. this makes it simple to remember where they are stored. We are also going to use Azimuths , so lets go 90 degrees east and we are going to lay out one acre so we will use the distance of 208.7103,so with the calculator key in 90 and press ENTER, then key in 208.7103, remember those two programs , now XEQ R then press ENTER you will see R001 program runs and stops, next you will STO+N,then X<>Y, then STO+E, then RCL N and RCL E, This is Pt 2 the new north will be on top and the new east will be on bottom. Say you had to stop and do some more math, no problem because your north is in N and your east is in E. no problem to start back up key in new Azimuth ENTER key in new Distance XEQ R,STO+N,X<>Y STO+E,RCL N,RCL E, north on top and east on bottom of your display . How easy is that. I have used this in every HP RPN calculator that I have owned. this is the first that did not have a R to P and P to R. keys. The HP 41cx by using the statistics registers shorten these steps .Kept this in mind.I did use the conversion programs but i still Traverse without a Traverse program. Next lets look at Inverse, If your out there surveying you need to be able to inverse between your point. First you do not have to store any coordinates. But it will not hurt anything if you need some that are stored.Lets say we say reached Pt 3 on our acre the coordinates should be 5208.7103 N and 5208.7103 E and you want to inverse back to Pt 1 which is 5000.00 N and 5000.00 E. Lets inverse.First you will always subtract E 1 from E 2 first, so key in E 1 5208.7103 ENTER ,then key in E 2 5000.00 ─ display 208.7103, next key in N 1 5208.7103 ENTER, then N 2 5000.00 ─ display 208.7103, this is how your display will look, these number are the same because of the coordinates we are using, this will not always be the case. these are two rectangular numbers we want to convert them to Polar, for a Azimuth and a distance , so next XEQ P, ENTER P001 program runs and stops display 45 on top AZ and 295.1609 on bottom DIST. , Now you know that you were looking SW and 45 is NE so you will need to add 180 to it, but it is on the top of the display, press X<>Y this will reverse the x and y variables now 45 is on the bottom, so 180+ display 225.0000, now if you want to reverse them again press X<>Y and your Azimuth is on top and your distance is on bottom again. and you did not use a program to inverse. You will need to keep up with your Quads. to make sure you are looking in the right directions. I hope this helps someone that uses this calculator or those of you who don't to try RPN logic. So far i have showed you over 58 programs and i am not thru yet. Math is the foundation of the Art of surveying. This math skills must be applied for it to be a practice.this affects how we think and work everyday,so keep your mind sharp. and use a calculator. Next I will go over how to manually traverse using indirectly addressing memory and using statistic registers with it, to automatically keep up with you coordinates.

billy

Hi Everyone i do not know what happen ,I will try to replace what is missing.

Hi Everyone, I do not know what happen to my Reply's ,but i will try to replace what i can remember.First steps to manually Traverse and inverse.
TRAVERSE
1. store North in N
2. store East in E
3.key in Azimuth in Decimal of a Degree,ENTER
4.key in Distance, do not enter
5.XEQ R, ENTER, R001 program runs,
6. STO + N
7.X<>Y
8. STO + E
9.RCL N
10. RCL E
North is on top
East is on bottom

INVERSE
1.key in E1 ,ENTER,
2.key in E2 , do not enter
3. - minus, sum is in display
4. key in N 1, ENTER,
5.key in N 2, do not enter
6.- minus, sum is in display
7. XEQ P , ENTER, P001, program runs,
8. answers in display, Azimuth in dec. on top,distance on bottom
9. X<>Y, swaps x to y variable ,Azimuth on bottom, in dec. of a deg.
10. 180 + ,= AZ. in dec.
11. >>> HMS = AZ. in HMS,
12. X<>Y , swaps x to y variable,
Now Azimuth in HMS on top and Distance on bottom.
To Traverse or Inverse manually the calculator must work in Decimal of a degree.
As far as any math done manually ,must be done in decimals.
All equations work in this format,you can not use HMS.
It must be in dec. ,so keep this in mind. when not using programs,
and there are programs that use only decimals.So know what you are using.

Next Traversing using Indirectly addressing memory,This calculator has 30 k memory
It has greater access to this memory than HP 33s,It can access 26 variable A thru Z,
6 statistical registers and 801 additional storage registers( Sto A ) plus 800 more storage locations
by indirect access to this memory.This is done through ordinary memory locations of I and J.then A  (-1).Through these three keys the calculator uses them like a Vector table in a computer program.The calculator will take the contents of I and J locations and use it as the address of another memory location, this means I and J can be used like pointers in regular programming.This can also be used manually in keys strokes.The locations are stored in I and J the variables are stored in ( I ) and ( J ) these two keys are on the bottom row of the calculator ( I ) is the Zero key,( J ) is the Decimal key. They are in Red lettering.By this i will store the data in the Accumulate registers keys of Accu.X,and Accu. Y, ACCU. X= - 28 ,Acuu. Y = -29 , so -29 i will store in ," I " , and -28 i will store in ," J " ,these are just locations.These is how all this works, A thru Z = - 1 thru - 26 , then n = -27 , Acuu. X = -28 , Accu. Y = -29, Accu. X ² = -30, Accu. Y ² = -31, Acuu. X Y = -32, the additional 801 use positive numbers 0 thru 800. Since i will be using statistical registers i will be using this function also, so this is why i will STO -28 in J and -29 in I , then i will Sto my North in ( I ) ,and my East in ( J ) , then i am done,I can start my Traverse. Notice i am using " I " for my North Y regs, Lat.. and " J " for my East X regs., Dep.
We will calculate 1 Acre, the distance will be 208.7103 on each leg.
Remember to all ways use Decimals of Degree and not HMS

Traverse Manual with IDAM and statistic registers

1.First clear memory, clear 1, 2, 4, do not clear 3, you will lose all programs
Clearing 4 this is Accu, Memory, this has to be done.
2. STO -29 in reg. I and STO -28 in reg. J
3. Now STO 5000 in ( I ) north
4.and STO 5000 in ( J ) east
Now you can begin
5. key in Azimuth in Dec. 90.0000 °
6. ENTER
7.key in Distance, do not enter, 208.7103ft.
8.Now XEQ R, ENTER, R001, program runs, 208.7103 on top and 0.000 on bottom.
9. Now X<>Y, swap x to y
10. Now press the Accumulate + key, 1 , will be in display, on bottom line
At any time you can access the sums menu,blue shift minus key,
this menu is where all the data is being stored.
11.RCL ( I ) =5000.0000
12.RCL ( J ) =5208.7103
Now all you have to do is repeat lines 5. thru 12. for next leg of traverse,
so lets continue.
5. 360 ° dec.
6. ENTER
7.208.7103ft.
8.XEQ R,ENTER, R001, program runs ,0.0000 on top and 208.7103 on bottom
9. now X<>Y, swap x to y
10. Accu.+ key , 2, will be in display. on bottom line
11.RCL ( I ) = 5208.7103
12.RCL ( J ) =5208.7103
5. 270 ° dec.
6.ENTER
7.208.7103ft.
8.Now XEQ R, ENTER, R001, program runs - 208.7103 on top and 0.0000 on bottom
9. Now X<>Y, swap x to y
10.Now Accu.+ key, 3 will be in display on bottom line
11. RCL ( I ) =5208.7103
12.RCL ( J ) =5000.0000
5.180 ° dec.
6.ENTER
7.208.7103ft.
8.XEQ R, ENTER, R001, program runs, 0.0000 on top and -208.7103 on bottom
9 X<>Y ,swap x to y
10.Accu. + key. 4 will be in display on bottom line
11.RCL ( I ) = 5000.0000
12.RCL ( J ) =5000.0000
Now we have completed around 4 legs and closed 1 Acre.
now to check my Sums menu
n = 4 ,Accu X =5000.0000, Accu. Y =5000.0000, Accu. X ² = 87,119.9787,
Acuu. Y ² =87119.9787, Acuu X Y = 0.0000
And I did not store anything with 4 legs of Traverse, so
If we take this number, 87119.9787 and find the SQRT of it, then SQRT (87,119.9787 ) = 295.1609, if we then take
208.7103, ENTER, 208.7103 x =43599.9893,
So, F = SQRT (SQ ( D ) + SQ ( E ) ) , then F =295.1609,
So 295.1609 = SQRT ((43559.9893) + (43559.9893))
This proves my accumulate X ² and Y ² are correct.
And this is how to Traverse with Indirectly addressing memory works.
And this is how you can traverse and it will store your coordinates. The HP 41cx, will do this,it just does it in a different way
The calculator can also Indirectly address program lines this is borrow
from the older line of calculators like the 41 cx, but this is not alphanumeric programming.
but is similar to it as using GTO instructions.This calculator was kept low tech for Exam purpose, but still is better than the HP 33s. and it is missing the polar ,rectangular functions, As you see, that was solved with programs. If you wanting to learn more about IDAM, read Dr. Bill Hazelton Discussion in his programs in this Discussion it's the 27th topic in his programs.

Now on Equations this calculator can store equations to be use just like programs .it can also store data in the equation library, any thing you like to store there.This a plus have with your calculator. but on to equations .First how to enter them,when you first press the equation key you will see equation top, below you will find 2 equations already written in the calculator. One is 2 x 2 lin. solve then 3x3 lin.solve these will solve multiples equations at one time. but skip this for now.
Once you press EQN to type you use the RCL key before each letter, so you can also title each equation to know what or which one it is. So lets write a simple one .First name it. So type
CIR OF CIRCLE then press ENTER this ends the input, this being circumference of a circle.
C =2 x R x Pi or C = D x Pi
Point to Line or
PT TO LINE OR PTL
X = Z xSIN (( A )) X = base line dist. to pt3, A = vertex angle to os from base line
Y = Z x SIN (( B )) Y = offset dist. to pt 3, B= vertex angle 90 - A , Z = dist from pt 1 to pt 2
TRAV LAT.
L = COS (( B )) x Z or L = Z x COS (( B )) B = Azimuth Z = H . dist
TRAV DEP
D = SIN (( B )) x Z or D = Z x SIN (( B )) B = Azimuth, Z = H .dist.
These are just a few to learn how to write equations.

 This reply is to the above programs of Dr Bill Hazelton Hp 35 s programs . Respect his rights. Hi Everyone , here is a copy  of your legal rights to these programs .They are copyright protected. these are your rights to them.

http://www.wollindina.com/images/HP-35S_PDF/Legal_Stuff.pdf

Download Survey Documents-Members Only
Was this resource helpful? Show your appreciation with a comment below. 

Donations are how we exist and grow for the surveying community worldwide.

HI Everyone,

 I do not know why but I am having trouble with the pdfdrive .net link. The site will not connect.

Most of these programs can be found at this link. Most are Dr Bill Hazelton programs

If you have trouble use this link.

http://www.wollindina.com/index.php/hp-calculators/hp-35s-calculator

Maybe  pdfdrive is not available but this link still is.

Hi everyone , This is one of my  a vertical curve equation for elevation and one for high low elevation. 

 First type the name. then the equation.

     VERT CRV

   Z=E + I x X / 100 + ((O ─ I) / ( L x 100)) x X^ 2 / 2     enter  this ends the equation

 Z= the elev. to solve

 E=the beginning elev.

 I=  grade % in

 O= grade % out

 X= dist from pov  PC as 100 ft sta  PC=0+00

 L= length  of curve 

this curve starts at 17+00, beginning elev is 614.00, grade in is  -1.065 %, grade out is 1.60 %, the curve length is 340 feet you will be using 100 intervals this is your  X variable

Run equation, press EQN, then solve Z

E?  614.00 R/S

  I  ?  -1.065  R/S

 X  ?  100  as in feet  R/S

O  ?  1.60  R/S

L ? 340  R/S

solving  Z= 613.3269   17+00 +100=18+00

repeat all same variable except  X,   X == 200

Z= 613.4376    17+00 +200= 19+00

repeat   X =300

Z=614.3322   17+00 +300=  20+00

repeat X= 340

Z= 614.9095   17+00 +340 = 20+40  end of curve

 Now lets solve the high, low  station and elev.

 type in  name

   HIGH LOW

 H= ( L x I )  /  ( I ─ O )  enter this ends  the equation

 all the variable are still in the calculator. so lets solve H this can be high or the low station

press EQN ,then solve   H

 L ?  340  R/S

  I  ?  -1.065  R/S

  O  ?  1.60   R/S  solving

  H=  135.8724  this is feet from the PC, 17+00 +135.8724 = 18+35.8724 this is your lowest station

   now back up to VERT CRV now run it , repeat just like before and  X= 135.8724

solve Z  , run equation Z=613.2765 this is your lowest elev. and you just solve a vertical curve elevations  on a calculator with no program. how about that,

Hi everyone , i will list a few more equations handy to have. Curves ,if you survey you will have to deal with curves sooner or later.

You have the radius and the delta ,but no length. lets name it first.

LENGTH OF CRV

L= π x R x D ÷ 180

this will solve L= length, R= radius, D= delta angle in decimals of a degree.

these equation are a two way street, it will solve L, which is length,but it will solve any of the variables as long as it has the other two,like in this one , all equations will solve any variable that is missing as long as the others are present. this equation will solve the radius or the delta angle if you know the other two.

what else we need, the tangent lets name it

TANGENT OF CRV

R=T (1 ÷ TAN(D ÷ 2))

this will solve R=radius, T= tangent, D= delta angle in decimal of a degree

how about the long chord name it

LONG CHORD

R=C ÷( 2 x SIN(D ÷ 2))

this will solve R=radius, C= long chord, D= delta angle in decimal of a degree.

add these to your list.

RSS

Where Thousands of Professional Land Surveyors, Students of Surveying and Educators are United through Collaborative Knowledge and Purpose.

Tools,Apps and Quick Guides

DEDICATED TO THE MEMORY OF SKIP FARROW (1953-2015)


Help With Survey Equipment

Social Support For Equipment

Surveying Video Categories

Surveying Photo Categories

United States Hub Forums

International Surveyor Hub Forums

Resources for Company Owners

Land Surveyor Social Media

Surveyor Resources Collections

Getting Started & Newsletter

New Equipment Added Daily

Emlid | Reach RS - RTK GNSS

$600.00
End Date: Wednesday Nov-14-2018 3:46:24 PST
Buy It Now for only: $600.00
Buy It Now | Add to watch list

AdirPro GNSS Surveying 220-Degree Wide Angle Prism 720-21 for Topcon and Sokkia

$599.95
End Date: Wednesday Nov-14-2018 14:14:07 PST
Buy It Now for only: $599.95
Buy It Now | Add to watch list

Topcon RC-3R Total Station Survey Prism A7 ...AS IS

$51.00 (2 Bids)
End Date: Wednesday Oct-17-2018 14:56:10 PDT
Bid now | Add to watch list

Nikon total station DTM 332.

$1,300.00
End Date: Saturday Nov-10-2018 14:48:32 PST
Buy It Now for only: $1,300.00
Buy It Now | Add to watch list

Nikon Dtm-520 Total Station Surveying Instrument SKU 6694

$216.50 (18 Bids)
End Date: Thursday Oct-18-2018 6:32:34 PDT
Bid now | Add to watch list

Surveyor Birthdays

© 2018   © Created by Land Surveyors United   Powered by

Badges  |  Contact LSU  |  Privacy Policy  |  Terms of Service