<< CLLCD
" Traverse
v1.0 (c) 1997
David Shafer
Press ENTER"
MSGBOX
"Enter Number Of Legs
In The Traverse."
"" INPUT OBJ 'N'
STO { N 11 } 0 CON
{ 1 1 }
"Enter Starting Pt. #"
"" INPUT OBJ PUT
'TDAT' STO 1 N
FOR w
"Enter Angle in DMS"
"" INPUT OBJ
'ANGL' STO
"Enter Bearing Direction"
{ { Azimuth
<< DROP
>> } { NorthEast
<< DROP
>> } { NorthWest
<< 360 ANGL HMS-
'ANGL' STO DROP
>> } { SouthEast
<< 180 ANGL HMS-
'ANGL' STO DROP
>> } { SouthWest
<< 180 ANGL HMS+
'ANGL' STO DROP
>> } } 2 CHOOSE
SWAP EVAL
"Enter Length of Leg"
"" INPUT OBJ 'LEG'
STO TDAT { w 2 }
ANGL PUT { w 3 }
LEG PUT ANGL HMS
COS LEG * { w 4 }
SWAP PUT ANGL HMS
SIN LEG * { w 5 }
SWAP PUT
IF w N <
THEN
<<
"Enter Next Pt. #"
"" INPUT OBJ { 'w+
1' 1 } SWAP PUT
>> EVAL
END 'TDAT' STO
NEXT 'LEG' PURGE
'ANGL' PURGE 1 N
FOR v TDAT { v 4
} GET
NEXT 2 N
FOR u +
NEXT DUP 'ERLAT'
STO STR
"Error in Lats =
"
SWAP + CLLCD 1 DISP
7 FREEZE 0 WAIT
DROP 1 N
FOR t TDAT { t 5
} GET
NEXT 2 N
FOR s +
NEXT DUP 'ERDEP'
STO STR
"Error in Deps. =
"
SWAP + CLLCD 1 DISP
7 FREEZE 0 WAIT
DROP ERDEP SQ ERLAT
SQ + รป DUP 'TERR'
STO STR
"Total Error =
"
SWAP + CLLCD 1 DISP
7 FREEZE 0 WAIT
DROP ERDEP ERLAT /
ATAN HMS STR
"Direction of Error =
"
SWAP + CLLCD 1 DISP
7 FREEZE 0 WAIT
DROP 1 N
FOR r TDAT { r 3
} GET
NEXT 2 N
FOR q +
NEXT 'TDIST' STO
CLEAR TDIST TERR /
STR
"Accuracy Ratio = 1 in
"
SWAP + CLLCD 1 DISP
7 FREEZE 0 WAIT
DROP CLEAR N 'n'
STO
DO
"Pick a Procedure"
{ { Adjust
<< ERLAT TDIST /
'LATADJ' STO ERDEP
TDIST / 'DEPADJ'
STO 1 N
FOR x TDAT {
x 3 } GET LATADJ *
TDAT { x 4 } GET
SWAP - TDAT SWAP {
x 6 } SWAP PUT
'TDAT' STO TDAT { x
3 } GET DEPADJ *
TDAT { x 5 } GET
SWAP - TDAT SWAP {
x 7 } SWAP PUT
'TDAT' STO
NEXT
>> } { Area
<< TDAT { 1 7 }
GET TDAT SWAP { 1 8
} SWAP PUT 'TDAT'
STO 2 N
FOR y TDAT
DUP DUP { 'y-1' 8 }
GET SWAP { 'y-1' 7
} GET + TDAT { y 7
} GET + TDAT SWAP {
y 8 } SWAP PUT
'TDAT' STO CLEAR
NEXT 1 N
FOR f TDAT {
f 8 } GET TDAT { f
6 } GET * TDAT SWAP
{ f 9 } SWAP PUT
'TDAT' STO CLEAR
NEXT 1 N
FOR a TDAT {
a 9 } GET
NEXT 2 N
FOR b +
NEXT 2 /
43560 /
<< DUP
IF 0 <
THEN NEG
END
>> EVAL STR
"Area (in Acres) =
"
SWAP + CLLCD 1 DISP
7 FREEZE 0 WAIT
>> } { Viewer
<< CLEAR N 'A'
STO
DO
"Pick an Item to View"
{ { Coordinates
<< TDAT { 1
1 } GET STR
"Enter a Northing &
Easting for Pt. #"
SWAP + { ":N:
:E:"
{ 1 0 } } INPUT
OBJ TDAT SWAP { 1
11 } SWAP PUT SWAP
{ 1 10 } SWAP PUT
'TDAT' STO 2 N
FOR f
TDAT { 'f-1' 6 }
GET TDAT { 'f-1' 10
} GET + TDAT { 'f-1
' 7 } GET TDAT { 'f
-1' 11 } GET + TDAT
SWAP { f 11 } SWAP
PUT SWAP { f 10 }
SWAP PUT 'TDAT' STO
NEXT
CLEAR 1 N
FOR d
"Point #" TDAT { d
1 } GET STR +
"
North " TDAT { d
10 } GET STR + +
"
East " TDAT { d
11 } GET STR + +
CLLCD 1 DISP 7
FREEZE 0 WAIT
NEXT
>> } {
Lats&Deps
<< 1 N
FOR d
"Point #" TDAT { d
1 } GET STR +
"
LAT " TDAT { d 4
} GET STR + +
"
DEP " TDAT { d 5
} GET STR + +
CLLCD 1 DISP 7
FREEZE 0 WAIT
NEXT
>> } {
Balanced
<< 1 N
FOR d
"Point #" TDAT { d
1 } GET STR +
"
LAT " TDAT { d 6
} GET STR + +
"
DEP " TDAT { d 7
} GET STR + +
CLLCD 1 DISP 7
FREEZE 0 WAIT
NEXT
>> } { Exit
<< 0 'A' STO
>> } } 1
CHOOSE SWAP EVAL
UNTIL 'N>A'
END
>> } { Exit
<< 0 'n' STO
>> } } 1 CHOOSE
SWAP EVAL
UNTIL 'N>n'
END CLEAR 'N'
PURGE 'n' PURGE
'ERLAT' PURGE
'ERDEP' PURGE
'TDIST' PURGE
'TERR' PURGE
'DEPADJ' PURGE
'LATADJ' PURGE 'A'
PURGE
>>