%%HP: T(3)A(D)F(.);
\<<
"How Many Points?"
"" INPUT OBJ\-> 'I'
STO 0 'U' STO 3 FIX
"Enter Easting:" ""
INPUT OBJ\-> 'X' STO
"Enter Northing:"
"" INPUT OBJ\-> 'Y'
STO 'X' \->NUM 'Y'
\->NUM
  WHILE I U \=/
  REPEAT
    IF
"Enter Quadrant:" {
{ "1:NE" 1 } {
"2:SE" 2 } { "3:SW"
3 } { "4:NW" 4 } }
1 CHOOSE
    THEN \-> W
      \<<
        CASE W 1 ==
          THEN
"DISTANCE" "" INPUT
OBJ\-> 'L' STO
"BEARING:" "" INPUT
OBJ\-> HMS\-> 'B' STO '
L*COS(B)' \->NUM 'Y'
\->NUM + 'Y' STO 'X'
\->NUM 'L*SIN(B)'
\->NUM + 'X' STO
"Northing:" 'Y'
\->NUM + " Easting:"
'X' \->NUM + + MSGBOX
'U+1' \->NUM 'U' STO
          END
          CASE W 2
==
            THEN
"Distance:" ""
INPUT OBJ\-> 'L' STO
"Bearing:" "" INPUT
OBJ\-> HMS\-> 'B' STO '
L*COS(B)' \->NUM 'Y'
\->NUM SWAP - 'Y' STO
'L*SIN(B)' \->NUM 'X'
\->NUM + 'X' STO
"North:" 'Y' \->NUM +
"        East:" 'X'
\->NUM + + MSGBOX 'U+
1' \->NUM 'U' STO
            END
            CASE W
3 ==
              THEN
"Distance:" ""
INPUT OBJ\-> 'L' STO
"Bearing:" "" INPUT
OBJ\-> HMS\-> 'B' STO '
L*COS(B)' \->NUM 'Y'
\->NUM SWAP - 'Y' STO
'L*SIN(B)' \->NUM 'X'
\->NUM SWAP - 'X' STO
"Northing:" 'Y'
\->NUM + "Eastings:"
'X' \->NUM + + MSGBOX
'U+1' \->NUM 'U' STO
              END
              CASE
W 4 ==
THEN "Distance:" ""
INPUT OBJ\-> 'L' STO
"Bearing:" "" INPUT
OBJ\-> HMS\-> 'B' STO '
L*COS(B)' \->NUM 'Y'
\->NUM + 'Y' STO 'L*
SIN(B)' \->NUM 'X'
\->NUM SWAP - 'X' STO
"Northing:" 'Y'
\->NUM + "Easting:"
'X' \->NUM + + MSGBOX
'U+1' \->NUM 'U' STO
END
              END
            END
          END
        END
      \>>
    END
  END 'Y' \->NUM - SQ
SWAP 'X' \->NUM - SQ
+ \v/
"Distance Error:"
SWAP + MSGBOX { I U
B L } PURGE
\>>
