	

	This is the demo version of XCOGO. The only limitations of this
	version is that point storage is restricted to points 1 thru 10.

( Una vez roto el virgo, se lo traga todo 11, 12, ... )        
	
	For a full working copy on an MS DOS 5 1\4" disk send $30.00 to:

		Tom Falconer
		4650 Blank Rd.
		Sebastopol Ca. 95472

( 4000 pelas nada menos )
				XCOGO

	A coordinate geometry and surveying utility program for the HP 48SX.



				by

			Tom Falconer
			4650 Blank Road
			Sebastopol CA. 95472



	(C) Copyright 1990,1991  Tom Falconer  All rights reserved




	The author does not guarantee the program to be free from
	defects and may not be held responsible for loss caused by such.
	Your use of this program constitutes your acceptance of these
	terms.

			CONVENTIONS USED IN THIS MANUAL
	
	Keys to be pressed are shown in square brackets.
	The left shift key is shown as [<-].
	The right shift key is shown as [->].
	Menu keys are shown as |item|.

			LOADING THE PROGRAM

(1. transfiere "XCOGO" a la calculadora )
(2. presiona [VAR] para mostrar el man de variables )
(3. presiona |INIT| si deseas realizar la asignacin de teclas de usuario        
    que aparece al final de este artculo, en caso contrario borra |INIT| )
(4. presiona la tecla [CST] de la calculadora, no |CST| del men )
(5. presiona la tecla de men que desees y que ms abajo se explican )

	1. Load the file "DEMOCOG1" into the home directory of the 48.
	2. Press [VAR] to display the variable menu.
	3. Select |DEMO| to switch to that subdirectory.
	   The variable menu will now be displayed.
	4. Select |GO| from the displayed menu. The 48 will shut its
	   self off.
	5. Turn the 48 on and press [VAR].
	6. Select |DEMO| from the menu.
	7. Select |INIT| from the menu. The program will then initilize
	   the variables and install the user key definitions.

(A partir de ahora te dejo solo )

	The program is now ready to run. The main menu will be
	displayed as follows:

	|'FILE| |'PNTS| |'RSO | |'TRAV| | 'TO | | 'CO |  [NXT]
	|'UTIL| |'TROT| |'GRDZ| | 'VC | | 'SS | |'CURV|  [NXT]
	|'AREA|

	Pressing [CST] from any point in the program will always bring
	you back to the main menu.

	(Note: You have to create a file before using any of the file
	related functions.)

			CONVENTIONS USED IN THIS PROGRAM

	You will notice that certain menu items are preceded by a tick
	(') mark. This indicates that another menu will be brought up
	and no input is required. Menu items with no tick mark require a
	value on the stack prior to selection.

				POINT PROTECTION

	If you try to create a new point with an existing point number
	the 48 will beep and display this screen:

		_________________________
		|Pt n used              |
		|                       |
		|(Enter start number    |
		|for unused search.)    |
		|                       |
		|                       |
		_________________________
		|OK|NEW|NEXU|QUIT|      |

	| OK |  Select this to hold the point number and overwrite
		the old point.

	|NEW |  Enter a new number.

	|NEXU|  Enter number to start search from. The next unused
	point will be displayed. Press | OK | to accept this number.

	|QUIT|  Select this to abort the program.

	
				FILE UTILITIES
	
	The size and number of files are limited only by available memory.
	File names MUST start with an alpha character.
	Files contain point number, northing, easting, elevation, and
	description.
	When a file is created it will contain one point, point number
	one with a northing and easting of 5000, an elevation of 100
	and no description. The file will grow as points are added and
	shrink if points are deleted.
	The file format is comma delimited ASCII. PC files in this
	format may be uploaded to the 48 and used directly. Conversely
	48 files may be downloaded and used by a PC program that
	accepts this format.
	
	From the main menu select |'FILE|. The current
	file and the file utility menu will be displayed.

		|'PICK| This is used to select your working file.
			The files will be listed as menu items.
			Select a file and press [ENTER].

		|'DEL|  This is used to delete files. The files will
			be listed as menu items. Select a file and press
			[ENTER].

		|'NEW|  This is used to create new files.                              POINT UTILITIES
	
	There are no restrictions to the numbering of points.
	In fact points may be given names. There is no limit to the
	length of a point description.
	
	Select |'PNTS| from the main menu. The points menu
	will be displayed.
	
	|'ENTE| This is used to view, edit and enter point data.
	
	Enter menu:

		| PT |  Enter a point number and press | PT |. If the
			point exists its data will be displayed, if not
			zeros will be displayed.

		|NORT|  Enter northing with this key.

		|EAST|  Enter easting with this key.

		|ELEV|  Enter elevation with this key.

		|DESC|  Enter point description with this key.
			Descriptions should be enclosed in double quotes.

		|'STOR| Use this key to store new or updated point
			data. The next consecutive point will now be
			displayed.
			Enter new data or press [CST] to return to 
			the main menu.

	| DEL | Enter a point number to be deleted and press | DEL|.

	|UNUS|  To find the next unused point number, enter a number
		to start the search from and press |UNUS|. This can
		be a slow process in a large file so try to pick a
		close starting number.
                               RADIAL STAKEOUT
	
	From the main menu press |'RSO|. This will bring up the setup
	menu. The occupied point number, backsight point number, backsight 
	bearing, distance to backsight, elevation of occupied point,
	plus to instrument, and instrument elevation will be displayed.
	
	Setup menu:

		|'OK|   Select this when the setup data is correct.

		|OC BS| Enter occupied point [SPC] backsight point.

		|PLUS|  Enter plus to instrument. (Note: The HI is
			stored in the variable 'HI' if you need to use it.)

	Stakeout display: At the top of the display will be directions
		for your rodman to the next point. That is, a bearing and
		distance from the last point you set to the current
		point. Also displayed are the point number, angle right 
		from the backsight and stakeout distance.
	
	Stakeout menu:

		| PT |  Enter the point to be staked.

		|DIST|  Enter the distance measured to a trial point.
			The distance in (towards the instrument)
			or out (away from the instrument) will be displayed.

		|D ZA|  Enter distance [SPACE] zenith angle. The level
			distance will be returned to the stack and the
			vertical difference will be stored for use in the
			|CUT| program.

		|'CUT|  After setting the point press |'CUT| to bring
			up the CUT/FILL menu.
	
		|'TO|   This will take you to the directly to the
			TANGENT OFFSET program bypassing the setup menu.
			This is useful if you are calculating or changing
			the offset points as you are staking them.

		|'CO|   Same as above for CURVE OFFSET program.

	CUT/FILL menu.
	
		|'STOR| This option will store the point elevation and the
			cut or fill information. Note that this overwrites
			the existing elevation and point description. You
			are then returned to the staking menu.
	
		|VD|    Enter the vertical difference.

		|ROD|   Enter the rod.

		|GRAD|  The grade displayed will be the stored elevation of
			the point you are staking. Change if needed.

		|EXIT|  This option will return you to the staking menu
			without saving the elevation and cut.                          TRAVERSE
	
	From the main menu press |'TRAV|. This brings up the traverse
	setup screen. This displays the occupied point, the backsight
	point, the next traverse point number, the backsight bearing,
	distance to the backsight, occupied point elevation, plus to
	the instrument and instrument elevation.
		
	Setup menu:
		
		|OK|    When the displayed information is correct press this
			key to proceed to the next menu.
		
		|OC BS| Enter occupied point [SPC] backsight point.

		|NX P|  Enter point to traverse to.

		|PLUS|  Enter plus to instrument. If you are not carrying
			elevations PLUS should be 0.00. The HI is stored
			in the variable 'HI' if you need to access it.

	Traverse menu:
			
		|'SIDE| Press this key to make a sideshot.

		|'TRAV| Press this key to traverse.

	Distance Menu:
			
		|OK|    With distance to be traversed on the stack
			press this key. The angle menu will then be
			displayed.

		|LAST|  Pressing this key will return the last
			distance traversed to the stack.

		|PINV|  This option will return the distance between
			two points. Enter point [SPACE] point and
			press |PINV|.

		|'B-D|  Select this option to preform a bearing
			distance intersection. Follow the prompts.
				
	(Note: All intersection problems assume the occupied and backsight
	points form the base of the triangle to be solved.)

		|'B-B|  Select this option to preform a bearing
			bearing intersection. Follow the prompts.

		|D ZA|  Enter distance [SPACE] zenith angle and press
			|D ZA|. The level distance will be returned to
			the stack and the vertical difference will be
			stored for use if you are carrying elevations.

	[NXT]   |QUIT|  Use this key to abort the traverse.
       Rod VD menu:    (This only comes up if you entered a PLUS.) The last
			used vertical difference and rod will be displayed
			as default values. If you used |D-ZA| in the
			distance menu the resultant vertical difference
			will be displayed.

		| OK |  Select this to accept the displayed values.

		| VD |  Enter vertical difference.

		|ROD |  Enter a new rod.

		|QUIT|  Select this key to abort.

	Angle menu:

		| NE |  Enter northeast bearing or azimuth.

		| SE |  Enter southeast bearing.

		| SW |  Enter southwest bearing.

		| NW |  Enter northwest bearing.

		| RT |  Enter angle right or negative angle for angle left.

		|DEFL|  Enter deflection right or negative angle for
			deflection left.

	[NXT]   | OK |  Use decimal azimuth value on stack.

		|PINV|  Enter two point numbers and press this key to
			return the azimuth between them. Press | OK |.

		|LAST|  Press this key to return the last azimuth
			traversed. Press | OK |.

		|D-D |  To do a distance distance intersection enter
			the second distance and press this key. You will
			then be asked if the point is left or right of
			the backsight as you look at it from the occupied
			point.

		|QUIT|  Press this key to abort.

	Description menu:

		| OK |  Enter a description in double quotes and press
			this key.

		|LAST|  Select this to use the last description.

		|NONE|  Select this for no description.

		|QUIT|  Select this to abort.

				TANGENT OFFSET

	This program will create points along a center line by station
	and offset.
	Start the program by pressing |'TO| from the main menu.

	Setup menu:

		| OK |  Select this when all the displayed data is correct.

		|CL UP| Enter a centerline point and a centerline point
			upstation of the first point. The bearing and
			distance between these points is displayed.

		|CLSTA| Enter the station of the first centerline point.

		|SLOPE| The program will calculate the slope between the two
			given centerline points using their stored elevations.
			You may override this by entering a new slope.

		|+\-TC| Enter the difference between centerline and top of
			curb grade. The program will apply this factor to
			the grade it calculates for the offset points
			generated.

	Generate points menu:

		|STA |  Enter a station.

		| OS |  Enter an offset distance.(Negative if left.)

		|GRD |  The program calculates and displays a grade for the
			given station. You may override this by entering a 
			new grade.

		| PT |  Enter a point number.

		|DESC|  Enter a point description.

		|STOR|  Select this when the displayed data is correct to 
			generate and store the point.

	[NXT]   |P->SO| Entering a point number will return the station
			and offset of that point.

		|ANG |  Suppose your line staking a property line, from
			a traverse point. Your at point 3, backsighting
			point 4 and have defined this setup in the radial
			stakeout program. The property line is from 1 to
			2 and you have defined this setup in the tangent
			offset program. Turn an angle that intersects the
			property line where you want to set a line point
			and enter the angle. The program will return the
			station intersected at that angle. You may then
			store the point and go to the radial program.

		|RSO |  This will take you to the radial stakeout program
			without going through the setup routine. Useful
			in the last example or if your calculating offsets
			as you stake them.
                               CURVE OFFSET

	This is the same as the tangent offset program except
	that you enter a point an the centerline, the radius point
	and if the curve is left or right.
	Start the program by pressing |'CO| from the main menu.

				UTILITIES

	This menu has a few basic functions that are not readily available
	on the 48. From the main menu press [NXT] |'UTIL|.

		|->DEG| Converts degrees, minutes and seconds to decimal.

		|->DMS| Displays decimal angles in degrees, minutes and
			seconds. The decimal angle on the stack is not
			changed.

		|R->P|  Converts northing value in level 2 and easting
			value in level 1 to polar value with the distance
			in level 2 and decimal angle in level 1.

		|P->R|  Converts distance in level 2 and decimal angle
			in level 1 to northing in level 2 and easting
			in level 1.

		|D->R|  Converts degrees to radians.

		|R->D|  Converts radians to degrees.

	[NXT]   |SAS|   Solves side angle side triangle. Distance 1 in
			level 3, DMS angle in level 2 and distance 2 in
			level 1 returns distance 3 to level 1.

		|PINV|  Inverses from point in level 2 to point in level
			1. The bearing and distance will be displayed.
			The azimuth will be in level 1 and the distance
			in level 2.
                               TRANSLATE AND ROTATE

	Translates, rotates and scales blocks of points. From the main
	menu press [NXT] |'TROT|.

	Set up menu:

		| OK |  Press this when all the information is entered
			correctly.

		|ANG|   Enter angle of rotation from old coordinate
			system to new system. Enter in DMS. Negative for 
			angle left.

		|OLD|   Enter old pivot point.

		|NEW|   Enter new pivot point.

		|SCALE| Enter scale factor.

	Results menu:

		| OK |  Press this to start program when data is
			entered correctly.

		|FROM|  Enter first point of block to move.

		| TO |  Enter last point of block to move.

		|START| Enter starting point number for moved block of
			points. You can enter the "FROM" point number
			if you want to hold the point numbers.


				GRADES

	Calculates the elevation of a given station or the station for
	a given elevation along a straight grade line. In the setup
	screen you may either enter two stations and their elevations,
	in which case the resultant slope is calculated and displayed,
	or you may enter the first station and elevation and the slope.
	Run the program from the main menu by pressing [NXT] |'GRDZ|.

	Setup menu:

		| OK |  Select this when the data is entered correctly.

		|STA1|  Enter first station.

		|ELEV|  Enter elevation of first station.

		|STA2|  Enter a station that is upstation of the first
			station.

		|ELEV|  Enter elevation of the second station.

		|SLOPE| Enter the grade rate. (i.e. A 5% grade should be
			entered as .05.)

	Results menu:

		|ST->E| Calculates the elevation for a given station.

		|EL->S| Calculates the station for a given elevation.
                               VERTICAL CURVE

	Start program from the main menu by pressing [NXT] |'VC|.


	Setup menu:

		| OK |  Select this when the data is entered correctly.

		|BVC|   Enter beginning station of vertical curve.

		|ELEV|  Enter elevation of beginning station.

		|LENG|  Enter length of vertical curve.

		| G1 |  Enter incoming grade rate.

		| G2 |  Enter outgoing grade rate.

	Results menu:

		|STA?|  Calculates the elevation of a given station.
                               SLOPE STAKING
	Definitions:

		Hinge Point: The top of fill or the toe of cut of the
		slope being caught.

		Work Point: A point on the station being staked that is a
		known distance from centerline. This is generally the scaled
		catch point.

	Field procedure:

		1. Set the work point.
		2. Start SS program and enter setup data.
		3. Shoot the work point and enter VD and ROD in staking menu.
		4. The program will display the distance, in or out from the
		   work point that the slope would catch at that elevation.
		   Tell the rodman the appropriate distance to move and take
		   another shot. Repeat this until the displayed distance
		   is the same as the distance on the ground. Press OK.
		5. Set and shoot the RP point.
		6. Enter VD and ROD in the RP menu.

	Setup menu:

		| OK |  Select this when all the data is entered correctly.

		| HI |  Enter the instrument elevation. (The radial stakeout
			HI is given as the default value.)

		| H2W|  Enter the distance from the hinge point to the 
			work point.

		|SLOPE| Enter the slope. (i.e. For a 3:1 slope enter 3,
			for a 1 1/2:1 slope enter 1.5, etc.)

		|GRD|   Enter the grade of the hinge point.

	Staking menu:

		| OK |  Select this when the slope is caught to bring up
			the RP menu.

		| VD |  EDM: Shoot the trial point and enter the vertical
			difference.
			LEVEL: Enter 0.

		|ROD|   EDM: Enter the rod.
			LEVEL: Enter the rod reading on the trial point.

		|SETUP| Selecting this returns you to the setup menu.

	Staking screen: The VD, ROD and resultant elevation are displayed.
			Next the slope stake data, generated for that
			elevation, is displayed. Next a distance "IN"
			(towards centerline), or "OUT" (away from centerline)
			is displayed.
			
	RP menu:

		| OK |  Returns you to the staking menu.

		| VD |  EDM: Shoot the RP and enter the vertical
			difference.
			LEVEL: Enter 0.

		|ROD|   EDM: Enter the rod.
			LEVEL: Enter the rod reading on the trial point.

		|SETUP| Selecting this returns you to the setup menu.
                               CURVE SOLUTIONS

	Given the radius or delta and one other element, solves for the
	unknown curve elements.
	From the main menu press [NXT] |'CURV|.

	First menu:     Enter either radius and or delta. Entering both
			automatically solves.

		| OK |  Select this when the data is entered correctly.

		| R |   Enter radius.

		| D |   Enter delta.

	Second menu:    Entering any one element solves for the rest.

		| T |   Enter tangent length.

		| L |   Enter length of curve.

		| C |   Enter chord.

		| E |   Enter external distance.

		| M |   Enter middle ordinate.


				AREA

	Calculates area from stored points. From the main menu press
	[NXT] [NXT] |'AREA|.

		|FROM|  Enter starting point.

		| TO |  Enter next point.

		|RADPT| Enter radius point.

		| EC |  Enter EC point (negative if curve is to the left).
			If the radii are not equal within a tolerance
			of .01' an error will occur and the program will
			halt.

	When the starting point is returned to, either as a "TO" point
	or as an "EC" point, The area and perimeter will be displayed.                         USER KEY ASSIGNMENTS

	These user keys allow you to start programs directly without
	going through the menus.

	[->] [R]        Starts the radial stakeout program.

	[->] [T]        Starts the traverse program.

	[<-] [O]        Starts the tangent offset program.

	[->] [O]        Starts the curve offset program.

	[->] [G]        Starts the grades program.

	[->] [V]        Starts the vertical curve program.

	[->] [S]        Starts the slope stake program.

	These user keys give you access to the functions in the utility
	menu.

	[<-] [H]        Converts DMS to DEG.

	[->] [H]        Displays DEG as DMS.

	[->] [P]        Rectangular to polar.

	[<-] [P]        Polar to rectangular.

	[->] [Z]        Side, angle, side solution.

	[->] [I]        Point inverse.

	These key assignments allow you to store and recall data in
	registers 1 through 9.

	[STO]           Stores value in level two, into register number
			(1-9) in level one.

	[->] [RCL]      Recalls value of register number in level one.

	(Tecnical note: The data is stored in a list named 'STOPAR'.
	You may increase the number of storage registers by increasing
	the size of the list.)
