%%HP: T(3)A(D)F(.);
\<< RCLF DEG -2. SF -3.
SF -95. CF -105. SF
-103. CF
  IF 'L1' VTYPE -1. \=/
'L2' VTYPE -1. \=/ AND
'\Ga1' VTYPE -1. \=/ AND
'\Ga2' VTYPE -1. \=/ AND
'\Ga3' VTYPE -1. \=/ AND
  THEN
    IF 'L1' VTYPE 0.
== 'L1' VTYPE 28. ==
OR 'L2' VTYPE 0. ==
'L2' VTYPE 28. == OR
AND '\Ga1' VTYPE 0. ==
'\Ga1' VTYPE 28. == OR
AND '\Ga2' VTYPE 0. ==
'\Ga2' VTYPE 28. == OR
AND '\Ga3' VTYPE 0. ==
'\Ga3' VTYPE 28. == OR
AND
    THEN
      IF 'L1>0. AND
L2>0. AND \Ga1>0. AND
\Ga2>0. AND \Ga1+\Ga2+\Ga3\=/0.
'
      THEN L2 \Ga2 SIN
2. * / 'r2' STO L1 \Ga1
SIN 2. * / 'r1' STO
r1 SQ r2 SQ + r1 r2 *
2. * \Ga1 \Ga2 + \Ga3 + COS
* - \v/ 'a' STO a SQ r2
SQ + r1 SQ - 2. / a /
r2 / ACOS '\Gg2' STO a
SQ r1 SQ + r2 SQ - 2.
/ a / r1 / ACOS '\Gg1'
STO \Ga2 \Ga1 \Ga2 + \Ga3 +
SIGN \Gg2 * + ABS SIN
r2 * 2. * 'x3' STO \Gg1
SIN ABS r1 * 2. *
'x2' STO \Ga1 \Ga1 \Ga2 +
\Ga3 + SIGN \Gg1 * + ABS
SIN r1 * 2. * 'x1'
STO
        \<< { LOE L1 L2
\Ga1 \Ga2 \Ga3 r1 r2 a \Gg1
\Gg2 x1 x2 x3 } PURGE
        \>> 'LOE' STO
STD "L1=" L1 \->STR +
" L2=" + L2 \->STR +
" 
 \Ga1 = " + \Ga1 \->STR
+ "\^o
 \Ga2 = " + \Ga2
\->STR + "\^o
 \Ga3 = " +
\Ga3 \->STR + "\^o
 x1 = "
+ 2. FIX x1 \->STR +
"
 x2 = " + x2 \->STR +
"
 x3 = " + x3 \->STR +
CLLCD 1. DISP 0. WAIT
DROP
      ELSE 3000. .05
BEEP 1. .05 BEEP
3000. .05 BEEP
"Eingabefehler:
  "
        CASE 'L1\<=0.'
          THEN
"L1 \<= 0"
          END 'L2\<=0.'
          THEN
"L2 \<= 0"
          END '\Ga1\<=0.'
          THEN
"\Ga1 \<= 0"
          END '\Ga2\<=0.'
          THEN
"\Ga2 \<= 0"
          END '\Ga1+\Ga2+
\Ga3==0.'
          THEN
"\Ga1+\Ga2+\Ga3=0"
          END "???"
        END +
"

 Nach Korrektur
  neu starten!"
+ CLLCD MSGBOX
      END
    ELSE 1000. .05
BEEP 1. .05 BEEP
1000. .05 BEEP
"Eingabefehler:
 "
      CASE 'L1' VTYPE
0. \=/ 'L1' VTYPE 28. \=/
AND
        THEN
"L1 keine Zahl!"
        END 'L2'
VTYPE 0. \=/ 'L2' VTYPE
28. \=/ AND
        THEN
"L2 keine Zahl!"
        END '\Ga1'
VTYPE 0. \=/ '\Ga1' VTYPE
28. \=/ AND
        THEN
"\Ga1 keine Zahl!"
        END '\Ga2'
VTYPE 0. \=/ '\Ga2' VTYPE
28. \=/ AND
        THEN
"\Ga2 keine Zahl!"
        END '\Ga3'
VTYPE 0. \=/ '\Ga3' VTYPE
28. \=/ AND
        THEN
"\Ga3 keine Zahl!"
        END "???"
      END +
"

 Nach Korrektur
  neu starten!"
+ CLLCD MSGBOX
    END
  ELSE 4000. .05 BEEP
"Variablenwerte
 eingeben oder
 korrigieren,
 dann starten!"
MSGBOX
    IF '\Ga3' VTYPE -1.
==
    THEN -60. '\Ga3'
STO
    END
    IF '\Ga2' VTYPE -1.
==
    THEN 60. '\Ga2' STO
    END
    IF '\Ga1' VTYPE -1.
==
    THEN 60. '\Ga1' STO
    END
    IF 'L2' VTYPE -1.
==
 