3 IF LEN Y$<3LET Y$=" "+Y$:GOTO 3
4 IF LEN T$<8LET T$=T$+"0":GOTO 4
5 LPRINT TAB 6;Y$;" ";MID$ (T$,3,2);" ";MID$ (T$,5,2);".";MID$ (T$,7,2):RETURN 
6 C=VAL S$(I):D=VAL T$(I)
7 X=X(D)-X(C):Y=Y(D)-Y(C):E=ATN (Y/X)+90*(2-SGN Y-SGN X*SGN Y):H=SQR (X*X+Y*Y):RETURN 
8 FOR G=0TO U:IF S(Q,G)=0THEN 14
9 FOR H=GTO U:IF S(Q,H)=0THEN 13
10 E=INT (H/2):IF E<H/2LET E=H(E+1)+G-H:GOTO 12
11 E=(H(E)+H(E+1)-1)/2+G-H
12 R=INT (E/10):E=E-10*R:N(R,E)=N(R,E)+S(Q,G)*S(Q,H)*F
13 NEXT H
14 S(Q,G)=0:NEXT G:RETURN 
15 G=SIN E/H*P:H=COS E/H*P
16 IF C>KLET Q=2*(C-K)-2:S(Q)=G:S(Q+1)=-H:IF VLET S(1,Q)=S(1,Q)+G:S(1,Q+1)=S(1,Q+1)-H
17 IF D>KLET R=2*(D-K)-2:S(R)=-G:S(R+1)=H:IF VLET S(1,R)=S(1,R)-G:S(1,R+1)=S(1,R+1)+H
18 Q=0:RETURN 
19 F=(3.6*L(0)/M)^2:RETURN 
20 FOR I=ATO U-1:L=INT (I/2):R=S(I)*(G>0)+(G=0)
21 IF L<I/2LET E=H(L+1):IF ILET B=I-(E-H(L)+1)/2+1
22 IF L=I/2LET E=(H(L)+H(L+1)-1)/2:IF ILET B=I-E+H(L)+1
23 F=INT (E/10):IF A=ITHEN 26
24 R=R*(G>0):IF I<=BTHEN 26
25 FOR J=A*(A>B)+B*(B>=A)TO I-1:Q=E-I+J:C=INT (Q/10):R=R-N(C,Q-10*C)*S(H,J):NEXT J
26 R=R/N(F,E-10*F):S(H,I)=R:IF H=0LET X=X+R*R:GOTO 28
27 Y=Y+R*R:Z=Z+R*S(I)
28 NEXT I:RETURN 
29 L=7199+2*I:A=PEEK L/10:B=PEEK (L+1)/10:RETURN 
30 "A"CLEAR :COLOR 2:INPUT "Known Points=";K,"Unknown Points=";U,"Total Sides=";S:X=K+U:WAIT 0
35 S$="Directions":INPUT "Compute X,Y?(Y/N)";Y$:IF Y$<>"Y"AND Y$<>"N"THEN 35
40 Z$="Observed ":INPUT "Ps=1?(Y/N)";X$:IF X$="Y"LPRINT "Ps=1":GOTO 50
41 IF X$<>"N"THEN 40
45 IF X$="N"INPUT "Equal a&b?(Y/N)";W$:IF W$<>"Y"AND W$<>"N"THEN 45
50 DIM L(S),X(X),Y(X),S$(S)*2,T$(S)*2:IF W$="Y"INPUT "Ms:a(mm)=";X(0),"b(ppm)=";Y(0)
55 DIM H(U+1):FOR I=1TO X:IF I<=KOR Y$="N"PRINT "X";I;"=";:INPUT X(I):CLS :PRINT "Y";I;"=";:INPUT Y(I)
60 CLS :NEXT I:FOR I=1TO S:PRINT "S";I;"=";:INPUT L(I):CLS :INPUT "From P";S$(I),"To P";T$(I)
65 IF W$="N"INPUT "a(mm)=";A,"b(ppm)=";B:POKE 7199+2*I,10*A,10*B
70 NEXT I:U$="Station":T$="Triangulation ":PRINT T$;U$;"s=";:INPUT T:CLS :IF T=0THEN 95
75 PRINT "Total ";S$;"=";:INPUT N:CLS :INPUT "M=";M:DIM D(N),N$(T)*2,D$(T)*2,P$(N)*2
80 FOR I=1TO T:PRINT U$;I;":P";:INPUT N$(I):CLS :PRINT S$;"=";:INPUT D:CLS :D$(I)=STR$ D
85 FOR J=1TO D:Y=Z+J:PRINT Y;":Aim P";:INPUT P$(Y):CLS :IF J>1PRINT Z$;"value=";:INPUT D(Y):CLS 
90 NEXT J:Z=Z+D:NEXT I:Z=0
95 V$="Azimuths=":PRINT Z$;V$;:INPUT O:CLS :IF O=0END 
100 DIM A(O):FOR H=1TO O:PRINT H;":From P";:INPUT #$(6+H):CLS :INPUT "To P";#$(12+H)
105 PRINT "a";H;"=";:INPUT A(H):CLS :INPUT "Ma=";#$(H):NEXT H:END 
120 "B"IF W$="Y"PRINT "a(mm)=";X(0);" ";:INPUT X(0)
125 CLS :IF W$="Y"PRINT "b(ppm)=";Y(0);" ";:INPUT Y(0)
130 CLS :FOR I=1TO X:IF I>KAND Y$="Y"THEN 145
135 PRINT "X";STR$ I;"=";STR$ X(I);" ";:INPUT X(I)
140 CLS :PRINT "Y";I;"=";Y(I);" ";:INPUT Y(I)
145 CLS :NEXT I:FOR I=1TO S:PRINT "S";I;"=";L(I);" ";:INPUT L(I)
150 CLS :PRINT "From P";S$(I);" ";:INPUT S$(I)
155 CLS :PRINT "To P";T$(I);" ";:INPUT T$(I)
160 CLS :IF W$="N"GOSUB 29:PRINT "a(mm)=";A;" ";:INPUT A:POKE L,10*A
165 CLS :IF W$="N"PRINT "b(ppm)=";B;" ";:INPUT B:POKE L+1,10*B
170 CLS :NEXT I:PAUSE T$;U$;"s=";T:IF T=0THEN 205
175 PRINT "M=";M;" ";:INPUT M
180 CLS :FOR I=1TO T:PRINT U$;I;":P";N$(I);" ";:INPUT N$(I)
185 CLS :PRINT S$;"=";D$(I);" ";:INPUT D$(I)
190 CLS :D=VAL D$(I):FOR J=1TO D:Y=Z+J:PRINT Y;":Aim P";P$(Y);" ";:INPUT P$(Y)
195 CLS :IF J>1PRINT "D";Y;"=";D(Y);" ";:INPUT D(Y)
200 CLS :NEXT J:Z=Z+D:NEXT I:Z=0
205 PAUSE Z$;V$;O:IF O=0END 
210 FOR I=1TO O:PRINT "a";I;"=";A(I);" ";:INPUT A(I)
215 CLS :PRINT "From P";#$(6+I);" ";:INPUT #$(6+I)
220 CLS :PRINT "To P";#$(12+I);" ";:INPUT #$(12+I)
225 CLS :PRINT "Ma=";#$(I);" ";:INPUT #$(I)
230 CLS :NEXT I:END 
250 "C"U$="########.###":IF W$="Y"LPRINT "Ms=";X(0);"mm+";Y(0);"ppm":L(0)=X(0)+Y(0)
260 GOSUB 1:LPRINT "No. ";Z$;" a":LPRINT TAB 9;"S":GOSUB 1:FOR I=1TO S:USING U$:LPRINT "S";STR$ I;TAB 2;L(I);
265 IF W$="N"USING :GOSUB 29:LPRINT TAB 14;A;:IF L(0)<A+BLET L(0)=A+B
270 LPRINT :NEXT I:GOSUB 1
271 IF TGOSUB 1:LPRINT "Point ";Z$:LPRINT "No.Aim ";S$:GOSUB 1:FOR H=1TO T:LPRINT "P";N$(H):V=VAL D$(H)
272 IF TFOR J=1TO V:Y=Z+J:LPRINT STR$ Y;TAB 3;"P";P$(Y);:G=D(Y):GOSUB 2:D(Y)=DEG G:NEXT J:GOSUB 1:Z=Z+V:NEXT H
273 Z=0:IF OGOSUB 1:LPRINT :LPRINT Z$;" a":GOSUB 1:FOR H=1TO O:LPRINT STR$ H;":P";#$(6+H);"-P";#$(12+H);
274 IF OLPRINT TAB 11;"Ma=";#$(H):LPRINT " a=";:G=A(H):GOSUB 2:A(H)=DEG G:GOSUB 1:NEXT H
275 IF Y$="N"THEN 375
276 V=(VAL T$(2)=K+2):Q=V:FOR I=1TO U+V-(K=1):R=2*I-V:IF R>QTHEN 305
277 IF O=0THEN 295
280 FOR H=1TO O:IF #$(6+H)=S$(R)AND #$(12+H)=T$(R)LET W=A(H):Q=0:GOTO 295+5*(I>1)
285 IF I>1AND #$(6+H)=S$(R-1)AND #$(12+H)=STR$ CTHEN 300
290 NEXT H:IF I>1THEN 345
295 X(K+1)=X(1)+L(1)*COS W:Y(K+1)=Y(1)+L(1)*SIN W:NEXT I
300 X=X-X(VAL #$(6+H)):Y=Y-Y(VAL #$(6+H)):W=ATN (Y/X)+90*(2-SGN Y-SGN Y*SGN X)-A(H):GOTO 335
305 A=VAL S$(R-1):B=VAL S$(R):C=VAL T$(R):IF A=BLET B=C:C=A:A=VAL T$(R-1)
310 F=X(A):L=Y(A):P=X(B):Z=Y(B):D=SQR ((F-P)^2+(L-Z)^2):E=L(R-1)/D:X=L(R)/D
315 G=(E*E-X*X)/2+.5:J=1-G:Y=SQR (X*X-J*J):X=F*J+P*G+Y*(L-Z):Y=L*J+G*Z+Y*(P-F)
320 IF C>2LET X(C)=X:Y(C)=Y:GOTO 345-65*(Q=K)
325 X=X-X(1):Y=Y-Y(1):E=X(2)-X(1):F=Y(2)-Y(1)
330 W=ATN (Y/X)+90*(2-SGN X-SGN X*SGN Y)-ATN (F/(E-1E-9))-180*(E<=0)-360*(F<0AND E>0)
335 FOR J=1TO I-(C=2):F=K+J:X=X(F)-X(1):Y=Y(F)-Y(1):X(F)=X*COS W+Y*SIN W+X(1)
340 Y(F)=Y*COS W-X*SIN W+Y(1):NEXT J:Q=0
345 NEXT I:Z=0
375 FOR I=1TO S:C=VAL S$(I):D=VAL T$(I):IF C>KAND H(D-K)<D-CLET H(D-K)=D-C
380 NEXT I:IF T=0THEN 430
385 FOR I=1TO T:V=VAL D$(I):FOR J=1TO V:C=VAL P$(Z+J):Q=C-K:IF Q<1THEN 425
390 IF I<=KTHEN 405
395 IF C<IAND H(I-K)<I-CLET H(I-K)=I-C
400 IF C>IAND H(Q)<C-ILET H(Q)=C-I
405 FOR H=JTO V:D=VAL P$(Z+H):IF D<=KTHEN 420
410 IF D<CAND H(Q)<C-DLET H(Q)=C-D
415 IF D>CAND H(D-K)<D-CLET H(D-K)=D-C
420 NEXT H
425 NEXT J:Z=Z+V:NEXT I
430 W=0:H(0)=-1:H(U+1)=U:FOR I=1TO U+1:H(I)=H(I-1)+4*H(I)+3:NEXT I:V=0:IF X$="Y"LET F=1
435 P=180/PI :DIM S(1,S),N(INT ((H(U)+2*U+1)/10),9):U=2*U:FOR I=1TO S:GOSUB 6
440 S(U)=H-L(I):G=-COS E:H=SIN E:GOSUB 16:IF X$="Y"THEN 460
445 IF W$="N"GOSUB 29:GOTO 455
450 A=X(0):B=Y(0)
455 F=(L(0)/(A+L(I)*B/1E3+.003))^2
460 GOSUB 8:NEXT I:IF T=0THEN 485
465 FOR I=1TO T:C=VAL N$(I):L=1:V=VAL D$(I):GOSUB 19:Z=0
470 FOR J=1TO V:D=VAL P$(W+J):GOSUB 7:R=E-D(W+J):IF R<0LET R=R+360
475 IF LLET Z=Z+R/V:NEXT J:L=0:GOTO 470
480 S(U)=R-Z:GOSUB 15:GOSUB 8:NEXT J:F=-F/V:Q=1:W=W+V:GOSUB 8:NEXT I:V=0:W=0
485 IF OFOR I=1TO O:C=VAL #$(6+I):D=VAL #$(12+I):GOSUB 7:M=VAL #$(I)+.001:GOSUB 15:S(U)=E-A(I)
490 IF OGOSUB 19:GOSUB 8:NEXT I
500 FOR I=1TO U/2:S(2*I-2)=(H(I)+H(I-1)-1)/2:S(2*I-1)=H(I):NEXT I:B=H(I)-U-2:S(U)=B
505 A=INT (B/10):V=N(A,B-10*A):FOR H=0TO U-1:A=S(H)-S(H-SGN S(H))+(H=0)
510 FOR I=HTO U:Y=S(I)-I:X=S(I-SGN I)-Y-(I=0):IF H<=XTHEN 545
515 E=Y+H:F=INT (E/10):M=E-10*F:W=N(F,M):IF A=1THEN 535
520 FOR J=H-A+1TO H-1:IF J<=XTHEN 530
525 B=S(H)-H+J:C=INT (B/10):Q=Y+J:L=INT (Q/10):W=W-N(C,B-10*C)*N(L,Q-10*L)
530 NEXT J
535 IF I=HLET R=SQR W
540 W=W/R:N(F,M)=W:IF I=ULET V=V-W*W
545 NEXT I:NEXT H:Z=K+U/2:X$="Adjusted "
550 FOR I=U-1TO 0STEP -1:A=S(U-1)+I+1:B=INT (A/10):X=-N(B,A-10*B):IF I=U-1THEN 565
555 FOR J=I+1TO U-1:F=S(J)-J+I:IF F>S(J-1)LET E=INT (F/10):X=X-N(E,F-10*E)*S(1,J)
560 NEXT J
565 Q=INT (S(I)/10):X=X/N(Q,S(I)-10*Q):S(1,I)=X:IF INT (I/2)<I/2LET Y(Z)=Y(Z)+X:NEXT I
570 X(Z)=X(Z)+X:Z=Z-1:NEXT I:M=SQR (V/(S-U+N-T+O))*100:P=5E-4
575 USING U$:GOSUB 1:LPRINT :LPRINT X$;"X / Y":GOSUB 1:FOR I=1TO K+U/2:X=X(I):Y=Y(I):J=(I>K):IF J=0COLOR 3
580 LPRINT "P";STR$ I;TAB 4;X+P*SGN X*(X<1E6)*J:LPRINT TAB 4;Y+P*SGN Y*J:GOSUB 1:NEXT I
600 GOSUB 1:LPRINT " b ";X$:LPRINT TAB 9;"S":GOSUB 1:FOR I=1TO S:GOSUB 6:IF W$="N"USING :GOSUB 29:LPRINT B;
610 LPRINT TAB 2;H+P:NEXT I:GOSUB 1:GOSUB 1:LPRINT TAB 10;X$;TAB 13;"a":GOSUB 1:FOR I=1TO S:GOSUB 6:IF O=0THEN 630
620 FOR J=1TO O:IF C=VAL #$(6+J)AND D=VAL #$(12+J)COLOR 1:GOTO 630
625 NEXT J
630 G=DMS E:GOSUB 2:COLOR 0:NEXT I:GOSUB 1:IF T=0THEN 700
635 GOSUB 1:LPRINT TAB 10;X$;TAB 8;S$:GOSUB 1:W=0:FOR I=1TO T:LPRINT :C=VAL N$(I):V=VAL D$(I)
640 FOR J=1TO V:D=VAL P$(W+J):GOSUB 7:IF J=1LET O=E
645 E=E-O:IF E<0LET E=E+360
650 G=DMS E:GOSUB 2:NEXT J:GOSUB 1:W=W+V:NEXT I
700 GOSUB 1:LPRINT :LPRINT " Ms/S":GOSUB 1:H=0:COLOR 2
710 FOR O=1TO S:G=VAL S$(O):P=VAL T$(O):X=X(P)-X(G):Y=Y(P)-Y(G):Z=SQR (X*X+Y*Y)
715 FOR I=1TO U:S(I)=0:NEXT I:IF G>KLET A=2*(G-K)-2:S(A)=X/Z:S(A+1)=Y/Z
720 C=2*(P-K)-2:S(C)=-X/Z:S(C+1)=-Y/Z:IF G<=KLET A=C
725 X=0:GOSUB 20:LPRINT "1/";STR$ (INT (L(O)/M/SQR X+.5)*100):NEXT O:GOSUB 1:USING "####.#":COLOR 2:G=0
730 LPRINT "Mo=";M*10+.05;"mm":LPRINT :B=0:FOR O=1TO U/2:X=0:Y=0:Z=0:FOR H=0TO 1:A=2*O+H-2:GOSUB 20
735 NEXT H:A=ATN (2*Z/(X-Y))/2:A=A+45*(2-SGN A-SGN Z):LPRINT "P";STR$ (K+O);":";:GRAPH :ROTATE 1
740 LINE -(46,13),9:LPRINT "O":TEXT :LPRINT TAB 4;"le=";A+.05;"(DEG)"
745 LPRINT " E=";TAB 2;M*SQR (X+Z*TAN A)+.05;",F=";TAB 9;M*SQR (Y-Z*TAN A)+.05;"cm":LPRINT :NEXT O:USING :END 
10001 GRAPH :COLOR 0:LINE -(216,0):TEXT :LPRINT :RETURN 
5;",F=";TAB 9;M*SQR (Y-Z*TAN A)+.05;"cm":LPRINT :NEXT O:USING :END 
10001 GRAPH :COLOR 0:LINE -(216,0):TEXT :LPRI