2 '***********SURVEY.BA************ 4 'WARNING: Edit lines 4010 & 4011 to form one 4010: Place cursor to the right of {} and BKSP eight times. 5 GOTO15 6 PRINT@280,"Press any key to continue"; 7 A$=INKEY$:IFA$=""THEN7ELSERETURN 8 INPUT"Is data correct? Y/N";Y$:RETURN 9 INPUT"Return to other routines? Y/N";Y$:IFY$="Y"THEN20ELSEMENU 10 INPUT"Move up to next point? Y/N";Y$ 12 INPUT"Change routines? Y/N";N$:IFY$="Y"THENGOSUB500 14 IFN$="Y"THEN20ELSERETURN 15 CLEAR:DEFINTF,M,Y,Q,D:CLS:PI=3.14159265359:INPUT"FOR A HARDCOPY ENTER 1-SKIP 0";F 20 CLS:INPUT" DO YOU WANT FRESH START";Y$:IF Y$="Y"THENZ=0:TA=0:TD=0 21 CLS: PRINT@7,"SELECT ROUTINE":PRINT@41,"AZ./BEARING TRAV.=1":PRINT@81,"FIELD ANGLE TRAV.=2":PRINT@121,"INVERSE TRAV.=3" 50 PRINT@161,"CIRCLE TRAV.=4":PRINT@201,"CLOSURE=5 BALANCE=6 INTERSECTIONS=7":PRINT@241,"VERTICAL CURVES=8 HORIZ. CURVES=9" 100 INPUTS% 110 ONS%GOTO130,600,800,940,1100,1200,1400,3000,3500 120 IFZ>0THENRETURNELSEINPUT"ENTER N1 & E1";N1,E1 121 GOSUB8 122 IFY$<>"Y"THEN120 125 IF F>0THENLPRINTUSING"\ \+#####,.### \ \+#####,.###";"N1=",N1,"E1=",E1 126 RETURN 130 CLS: PRINT"AZ/BEAR TRAV":IF F>0THENLPRINT:LPRINT"AZIMUTH/BEARING TRAVERSE" 140 GOSUB120:Z=1 145 INPUT"ENTER ANGLE D,M,S";D,M,S 150 GOSUB410:RA=A 'CONVERT TO "A" IN RADIANS 160 INPUT"IS INPUT ANGLE A BEARING";Y$:IF Y$="Y"THENGOSUB180 175 GOTO240 180 INPUT"ENTER QUADRANT NE=1 SE=2 SW=3 NW=4";Q 190 ON QGOTO 200,210,220,230 195 'CONVERT BEAR TO AZ 200 RA=A:RETURN 210 RA=PI-A:RETURN 220 RA=PI+A:RETURN 230 RA=2*PI-A:RETURN 240 INPUT"ENTER HORIZ. DIST.";HD 250 CLS:PRINT@41,"INPUT ANGLE=";D;"-";M;"-";S:IF F>0THENLPRINT"INPUT ANGLE= ";D;"-";M;"-";S 270 PRINT@161,"DISTANCE = "USING"#####,.###";HD:IF F>0THENLPRINT"DISTANCE = "USING"#####,.###";HD 280 GOSUB8:IF Y$="Y"THEN300ELSE130 300 GOSUB470:GOSUB440 'CONVERT TO LT&DP THEN N2E2 320 CLS:PRINT"AZIMUTH = "D"-"M"-"S:PRINT:PRINTUSING"\ \+#####,.### \ \+#####,.###";"N2=",N2,"E2=",E2 337 IF F>0THEN340ELSE360 340 LPRINT"AZIMUTH = ";D;"-";M;"-";S:LPRINTUSING"\ \+#####,.### \ \+#####,.###";"N2=",N2,"E2=",E2 360 GOSUB10 400 GOTO145 410 ' CONV DMS TO RADIANS 420 A=(S/3600)+(M/60)+D:A=(A*PI)/180:RETURN 440 'CONV RADIANS TO DMS 445 AG=(RA*180)/PI:D=FIX(AG):M!=(AG-D)*60:M=FIX(M!):S=(M!-M)*60:RETURN 460 ' CONV AZ & DIST. TO LT&DP THEN N2E2 470 LT=HD*COS(RA):DP#=HD*SIN(RA) 480 N2=LT+N1:E2=DP#+E1:RETURN 490 ' AREA & DIST. TOTAL 500 AR=(N2*E1-E2*N1):TA=TA+AR 510 TD=TD+HD:N1=N2:E1=E2 :RZ=RA:PRINT"TOTAL TRAV. DIST.= ";TD:RETURN 600 CLS: PRINT" FIELD ANGLE TRAV":IF F>0THENLPRINT:LPRINT" FIELD ANGLE TRAVERSE" 605 GOSUB120:IFZ>0THEN640 610 INPUT"ENTER REF. AZ. TO POINT D,M,S";D,M,S:IF F>0THENLPRINT"REF. AZIMUTH = ";D;"-";M;"-";S 611 Z=1 630 GOSUB410:RZ=A 640 PRINT:INPUT"ENTER FIELD ANGLE DMS";D,M,S 650 GOSUB410 655 RA=A 660 INPUT"DECLARE ANG.RT.=1 ANG.LT.=2 DEF.RT.=3 DEF.LT.=4";S% 670 ONS%GOTO680,690,700,710 680 RRAZ=RZ+PI:RA=RA+RRAZ:GOSUB686:GOSUB440:GOTO720 686 IFRA>(2*PI)THENRA=RA-(2*PI) 687 RETURN 690 RRAZ=RZ+PI:RA=RRAZ-RA:GOSUB686:GOSUB440:GOTO720 700 RA=RA+RZ:GOSUB686:GOSUB440:GOTO720 710 RA=RZ-RA:IF RA<0THENRA=(2*PI)+RA 711 GOSUB440 720 PRINT"AZIMUTH= ";D;"-";M;"-";S:IF F>0THENLPRINT"AZIMUTH = ";D;"-";M;"-";S 730 PRINT:INPUT"ENTER HORIZ. DIST.";HD:IFF>0THENLPRINT"HOR. DIST. = "USING"+####,.###";HD 750 GOSUB8:IFY$<>"Y"THEN610 755 GOSUB460 760 PRINTUSING"\ \+#####,.### \ \+#####,.###";"N2=",N2,"E2=",E2 765 IF F>0THENLPRINTUSING"\ \+#####,.### \ \+#####,.###";"N2=",N2,"E2=",E2 770 GOSUB10:GOTO640 800 PRINT"INVERSE TRAV":GOSUB120 801 Z=1 805 INPUT"ENTER N2,E2";N2,E2 810 GOSUB8:IFY$<>"Y"THEN805 820 GOSUB830:GOTO900 825 'INVERSE SUBROUT 830 LT=N2-N1:DP#=E2-E1:HD=SQR((LT^2)+(DP#^2)):A=ATN(DP#/LT):IFLT>0ANDDP#>0THENRA=A 860 IFLT<0ANDDP#>=0THENRA=PI+A 870 IFLT<0ANDDP#<0THENRA=PI+A 880 IFLT>0ANDDP#<=0THENRA=(2*PI)+A 890 RETURN 900 GOSUB440 905 IF F>0THENLPRINT:LPRINT"INVERSE TRAVERSE" 906 IFF>0THENLPRINTUSING"\ \+#####,.### \ \+#####,.###";"N2=",N2,"E2=",E2 910 PRINT"AZIMUTH = ";D;"-";M;"-";S:IF F>0THENLPRINT"AZIMUTH = ";D;"-";M;"-";S 920 PRINT"HORIZ. DIST.="USING"+####,.###";HD:IF F>0THENLPRINT"HORIZ. DIST. = "USING"+####,.###";HD 930 GOSUB10:GOTO805 940 CLS:PRINT" CIRCLE ARC TRAVERSE":PRINT 942 PRINT"MUST HAVE TRAVERSED TO CENTER POINT-- AND OCCUPIED THE CENTER POINT" 945 IFF>0THENLPRINT:LPRINT"CIRCLE TRAVERSE" 950 INPUT"ENTER CENTRAL ANGLE--DMS";D,M,S:GOSUB410:RRAZ=RZ+PI:'A IS NOW CENT ANG 960 INPUT"IS CENTRAL ANG.CW=1 OR CCW=2?";S% 965 GOSUB8:IF Y$<>"Y"THEN950 970 ON S%GOTO980,990 980 RA=A+RRAZ:GOTO1000 990 RA=RRAZ-A 1000 TD=TD-2*HD:GOSUB470:GOSUB500:GOSUB440 1011 PRINT"AZIMUTH TO P.T.= ";D;"-";M;"-";S 1012 PRINTUSING"\ \ +#####,.### \ \+#####,.###";" COORD. OF P.T. N2=";N2;" E2=";E2 1020 IF F>0THEN1021ELSE1024 1021 LPRINT"AZIMUTH TO P.T. ";D;"-";M;"-";S:LPRINT 1022 LPRINTUSING"\ \ +#####,.### \ \+#####,.###";"COORD. OF P.T. N2= ";N2;" E2= ";E2 1024 GOSUB6 1030 AD!=HD*A:TD=TD+AD!:PRINT:PRINT"ARC DIST.= ";AD!:IF F>0THENLPRINT"ARC DIST.= ";AD!'FOR ARC DIST 1040 SEC=(HD*AD!)/2:PRINT:PRINT"SECTOR AREA=";SEC:IF F>0THENLPRINT"SECTOR AREA= ";SEC 'SECTOR AREA 1050 INPUT"IS SECTOR AREA TO BE INCLUDED OR EXCLUDED 1 OR 2?";S% 1055 GOSUB8:IFY$<>"Y"THEN1050 1060 ONS%GOTO1070,1080 1070 TA=TA+SEC:IFF>0THENLPRINT"AREA INCLUDED" 1075 GOTO1090 1080 TA=TA-SEC:IFF>0THENLPRINT"AREA EXCLUDED" 1090 GOTO20 1100 CLS:PRINT" CLOSURE ROUTINE":IFF>0THENLPRINT" ******CLOSURE******" 1110 PRINT@41,"TO BE RUN ONLY AFTER TRAV. ROUTINES HAVE ESTABLISHED ALL POINTS" 1120 INPUT"ENTER CORRECT BEGINNING N&E";N2,E2 1125 GOSUB8:IF Y$<>"Y"THEN1120 1130 GOSUB830 'INVERSE FROM LAST POINT 1135 GOSUB500 'TOTAL AREA & DIST. 1140 LC=LT:DC#=DP# 'CLOSING LT&DP 1150 GOSUB440 'CONVERT RA TO DMS 1160 CLS:PRINT:PRINT"CLOSURE AZIMUTH = ";D;"-";M;"-";S:PRINT"CLOSURE DIST. = "USING"+####,.###";HD:GOSUB6 1165 PRINT"CLOSURE PRECISION = ";HD/TD:PRINT:PRINT" AREA = "USING"+#####,.###";TA/2:GOSUB6 1170 IF F>0THEN1180ELSE20 1180 LPRINT:LPRINT"CLOSURE AZIMUTH = ";D;"-";M;"-";S:LPRINT:LPRINT"CLOSURE DISTANCE = ";HD 1185 LPRINT:LPRINT"CLOSURE PRECISION = ";HD/TD:LPRINT:LPRINT" AREA = "USING"+#####,.###";TA/2 1190 GOTO20 1200 CLS:PRINT" BALANCE ROUTINE":IFF>0THENLPRINT:LPRINT" *****BALANCE ROUTINE*****" 1201 PRINT"MUST BE RUN ONLY AFTER CLOSURE ROUTINE":PRINT@161,"BALANCE BY COMPASS RULE" 1210 'BEGIN POINT IS NOW OCCUPIED N1&E1 1220 INPUT"ENTER NEXT POINT N&E";N2,E2:GOSUB8:IFY$<>"Y"THEN1220 1230 HD=SQR(((N2-N1)^2)+(E2-E1)^2):CL=LC*(HD/TD):CD=DC#*(HD/TD)'CORRECT LAT DEP 1250 NA=N2+CL:EA=E2+CD 'CORR N&E 1260 PRINT:PRINTUSING"\ \+#####,.###\ \+#####,.###"; 1262 PRINT"ADJUSTED NORTH = ";NA;" EAST = ";EA: 1263 IF F>0THEN1264ELSE1270 1264 LPRINTUSING"\ \+#####,.###\ \+#####,.###"; 1266 LPRINT"ADJUSTED NORTH = ";NA;" EAST = ";EA 1270 N2=NA:E2=EA:GOSUB830 'INV. FOR ADJUSTED DIST. & AZ 1280 PRINT:PRINT"ADJUSTED DIST.="USING"+#####,.###";HD 1290 GOSUB440 'CONVERT RA TO DMS 1300 PRINT:PRINT"ADJUSTED AZIMUTH = ";D;"-";M;"-";S 1305 IF F>0THENLPRINT"ADJUSTED AZIMUTH = ";D;"-";M;"-";S:LPRINT"ADJUSTED HOR DIST. = "USING"+#####,.###";HD 1310 PRINT:INPUT"ANOTHER POINT Y/N";Y$:IFY$<>"Y"THEN20 1320 N1=NA:E1=EA:GOTO1220 1400 CLS:PRINT" >>>>>INTERSECTIONS<<<<<":Z=0 1410 PRINT@50," SELECT TYPE" 1420 PRINT@82,"AZIMUTH/BEAR=1":PRINT@122,"DIST.-DIST.=2": 1422 PRINT@162,"AZIMUTH-DIST.=3":PRINT@202,"PERPENDICULAR FROM POINT TO LINE=4 1424 INPUTS%:ONS%GOTO1425,1640,1850,2150 1425 CLS:PRINT" AZIMUTH/BEAR INTERSECTION":IFF>0THENLPRINT:LPRINT"AZIMUTH/BEARING INTERSECTION" 1430 GOSUB120 'FORN1E1 1440 INPUT"ENTER N2 & E2";N2,E2 1450 PRINT:INPUT"ENTER ANGLE FROM N1E1--DMS";D,M,S 1460 GOSUB410 1470 INPUT"IS INPUT ANGLE A BEARING? Y/N";Y$:IFY$="Y"THENGOSUB180 1471 IFY$="Y"THENA1=RAELSEA1=A 1480 INPUT"ENTER ANGLE FROM N2E2--DMS";D,M,S:GOSUB410 1490 INPUT"IS INPUT ANGLE A BEARING? Y/N";Y$:IFY$="Y"THENGOSUB180 1491 IFY$="Y"THENA2=RAELSEA2=A 1500 GOSUB8:IFY$<>"Y"THEN1440 1510 NI=((E1-N1*TAN(A1))-(E2-N2*TAN(A2)))/(TAN(A2)-TAN(A1)):EI=E1+(NI-N1)*TAN(A1):PRINT:PRINT"INTERSECTION COORDINATES==" 1540 PRINT:PRINTUSING"\ \ +#####,.###\ \ +#####,.###";"NI= ";NI;" EI= ";EI 1550 IF F>0THEN1570ELSE1620 1570 LPRINT:RA=A1:GOSUB440:LPRINT" AZIMUTH 1 = ";D;"-";M;"-";S 1590 LPRINT:LPRINTUSING"\ \ +#####,.### \ \ +#####,.###";" N2= ";N2;" E2= ";E2:LPRINT 1600 RA=A2:GOSUB440:LPRINT" AZIMUTH 2 = ";D;"-";M;"-";S:LPRINT:LPRINT" INTERSECTION COORDINATES" 1610 LPRINTUSING"\ \ +#####,.### \ \ +#####,.###";" NI= ";NI;" EI= ";EI 1620 PRINT:INPUT" ANOTHER INTERSECTION--Y/N";Y$:IFY$="Y"THEN1400 1630 PRINT:GOTO9 1640 CLS:PRINT" DIST./DIST. INTERSECTION":PRINT:IFF>0THENLPRINT:LPRINT"DIST./DIST. INTERSECTION" 1650 GOSUB 120 1655 INPUT"ENTER DIST. FROM PT.1";D1# 1660 INPUT"ENTER N2 & E2";N2,E2 1662 INPUT"ENTER DIST. FROM PT. 2";D2#:IF F>0THENLPRINTUSING"\ \ +#####,.### \ \ +#####,.###";"N2= ";N2;" E2= ";E2 1664 GOSUB8:IFY$<>"Y"THEN1655 1665 GOSUB830:D3#=HD:A3=RA:X=((D3#^2)+(D1#^2)-(D2#^2))/(2*D1#*D3#) 1690 PHI=-ATN(X/SQR(-X*X+1))+1.5708:NI=N1+D1#*COS(A3-PHI):EI=E1+D1#*SIN(A3-PHI):N2=NI:E2=EI:GOSUB830 1730 PRINT" INTERSECTION POINT":PRINT 1740 PRINTUSING"\ \ +#####,.### \ \ +#####,.###";"NI= ";NI;" EI= ";EI 1750 PRINT" DIST. FROM N1E1 ="USING"+#####,.###";HD:GOSUB440 1765 PRINT" AZIMUTH N1E1 TO INTERSECT = ";D;"-";M;"-";S 1766 GOSUB6 1770 PRINT:PRINT"TWO SOLUTIONS POSSIBLE--FOR OTHER INTERSECT. REVERSE N1E1 & N2E2" 1780 IF F>0THEN1800ELSE1830 1800 LPRINT:LPRINT" INTERSECTION POINT":LPRINTUSING"\ \ +#####,.### \ \ +#####,.###";"NI= ";NI;" EI= ";EI 1810 LPRINT:LPRINT" DISTANCE N1E1 TO NIEI = "USING"+#####,.###";D1# 1815 LPRINT:LPRINT" DISTANCE N2E2 TO N;IEI = "USING"+#####,.###";D2# 1820 LPRINT:LPRINT" AZIMUTH N1E1 TO NIEI = ";D;"-";M;"-";S:LPRINT 1830 PRINT:INPUT"ANOTHER INTERSECT.?";Y$:IFY$="Y"THEN1400 1840 PRINT:GOTO9 1850 CLS:PRINT" AZIMUTH/DISTANCE INTERSECTION":IFF>0THENLPRINT:LPRINT"AZIMUTH/DISTANCE INTERSECTION" 1860 PRINT"TWO SOLUTIONS POSSIBLE--FOR NEAR P.I. ENTER AZ/BEAR FROM P.I. TO N1E1--FOR FAR P.I. ENTER AZ/BEAR FROM N1E1 TO P.I." 1865 GOSUB120 1870 INPUT"ENTER N2 & E2";N2,E2 1880 INPUT"ENTER ANGLE FROM OR TO N1E1--DMS";D,M,S:GOSUB410:A1=A 1890 INPUT"IS ANGLE A BEARING? Y/N";Y$ 1900 IFY$="Y"THENGOSUB180 1901 IFY$="Y"THENA1=RA 1910 INPUT"ENTER DIST.N2E2 TO P.I.";D2# 1915 GOSUB8:IFY$<>"Y"THEN1850 'D3=DIST 1->2 1920 GOSUB830 1925 A3=RA:D3#=HD:PHI=A1-A3:DP#=D3#*SIN(PHI):X=((D2#^2)-(DP#^2)):IFX<0THENX=-X 1930 DI#=SQR(X):NI=N1+(D3#*COS(PHI)+DI#)*COS(A1):EI=E1+(D3#*COS(PHI)+DI#)*SIN(A1) 1960 PRINT:PRINT" INTERSECTION POINT":PRINT 1970 PRINTUSING"\ \ +#####,.### \ \ +#####,.###";" NI= ";NI;" EI= ";EI:N3=N2:E3=E2 'SAVEN2E2 1980 N2=NI:E2=EI 'INV N1E1 TO P.I. 1990 GOSUB830:GOSUB440 2000 PRINT:PRINT" DIST. N1E1 TO P.I. = "USING"+#####,.###";HD:GOSUB6 2010 PRINT:PRINT "AZIMUTH N1E1 TO P.I. = ";D;"-";M;"-";S:DD=D:MM=M:SS=S:HI=HD 2020 N1=N3:E1=E3 'N1E1 NOW=ORIG.N2E2 2030 GOSUB830:GOSUB440 2040 PRINT:PRINT" DIST. N2E2 TO P.I. = "USING"+#####,.###";HD 2050 PRINT:PRINT" AZIMUTH N2E2 TO P.I. = ";D;"-";M;"-";S 2060 IF F>0THEN2080ELSE2130 2080 LPRINT:LPRINT" INTERSECTION POINT":LPRINTUSING"\ \ +#####,.### \ \ +#####,.###";" NI = ";NI;" EI = ";EI 2090 LPRINT" DISTANCE N1E1 TO P.I. = "USING"+#####,.###";HI 2100 LPRINT" AZIMUTH N1E1 TO P.I. = ";DD;"-";MM;"-";SS 2110 LPRINT:LPRINT" DISTANCE N2E2 TO P.I. = "USING"+#####,.###";HD 2120 LPRINT" AZIMUTH N2E2 TO P.I. = ";D;"-";M;"-";S 2130 PRINT:INPUT" ANOTHER INTERSECTION?";Y$:IFY$="Y"THEN1400 2140 PRINT:GOTO9 2150 CLS:PRINT" PERPENDICULAR FROM POINT":PRINT" TO A LINE" 2160 PRINT:INPUT"ENTER KNOWN PT. ON LINE N&E";N1,E1 2170 PRINT:INPUT"ENTER KNOWN PT. OFF LINE N&E";NO,EO 2180 PRINT:INPUT"ENTER AZIMUTH OF LINE DMS";D,M,S 2181 GOSUB8:IFY$<>"Y"THEN2160 2190 GOSUB420 2200 NI=(EO-E1+NO*(1/TAN(A))+N1*TAN(A))/((1/TAN(A))+TAN(A)):EI=E1+(NI-N1)*TAN(A) 2220 N2=NI:E2=EI 'INV N1E1 TO NIEI 2230 GOSUB830 2235 D1#=HD:N3=N1:E3=E1 'N3E3 NOW KNOWN PT. ON LINE 2236 GOSUB440 2238 DD=D:MM=M:SS=S:N1=NO:E1=EO:GOSUB830 2250 CLS:PRINT"INTERSECTION POINT" 2255 PRINTUSING"\ \ +#####,.### \ \ +#####,.###";" NI= ";NI;" EI= ";EI 2270 PRINT"DIST. N1E1 TO NIEI"USING"+#####,.###";D1# 2280 A=A1:GOSUB440 2290 PRINT"AZIMUTH NOEO TO NIEI ";D;"-";M;"-";S 2300 PRINT"DIST. NOEO TO NIEI"USING"+#####,.###";HD:GOSUB6 2310 IF F>0THEN2330ELSE2430 2330 LPRINT:LPRINT" PERPENDICULAR FROM POINT TO A LINE" 2340 LPRINT:LPRINTUSING"\ \ +#####,.### \ \ +#####,.###"; 2345 LPRINT" KNOWN POINT ON LINE N1= ";N3;" E1= ";E3 2350 LPRINT:LPRINT" AZIMUTH N1E1 TO NIEI = ";DD;"-";MM;"-";SS 2360 LPRINT:LPRINT" DISTANCE N1E1 TO NIEI = "USING"+#####,.###";D1# 2370 LPRINT:LPRINTUSING"\ \ +#####,.### \ \ +#####,.###";" POINT OFF LINE NO= ";NO;" EO= ";EO 2380 LPRINT:LPRINT" AZIMUTH NOEO TO NIEI ";D;"-";M;"-";S 2390 LPRINT:LPRINT" DISTANCE NOEO TO NIEI = "USING"+#####,.###";HD 2400 LPRINT:LPRINTUSING"\ \ +#####,.### \ \ +#####,.###"; 2410 LPRINT" INTERSECTION POINT NI= ";NI;" EI= ";EI 2430 CLS:INPUT"ANOTHER INTERSECTION?";Y$:IFY$="Y"THEN 1410 2440 PRINT:GOTO9 3000 CLS:PRINT" VERTICAL CURVES" 3010 PRINT:INPUT"ENTER BEGIN AND END GRADE %";G1,G2 3020 INPUT"ENTER CURVE LENGTH-FT.";L 3030 PRINT:PRINT"BEGIN STA. INFO = 1 PVI INFO = 2" 3040 INPUT" ENTER CHOICE";S% 3050 ONS%GOTO3060,3080 3060 INPUT"ENTER BEGIN STA.&ELEV.";BS,BE 3070 PVI!=BS+(L/2):VE=BE+((L/2)*(G1/100)):GOTO3095 3080 INPUT"ENTER PVI STA&ELEV";PVI!,VE 3090 BS=PVI!-(L/2):BE=VE-((L/2)*(G1/100)) 3095 GOSUB3230:R!=(G2-G1)/(L/100) 3110 INPUT"ENTER FIRST EVEN STA.";FS! 3120 X=(FS!-BS)/100 3130 EL!=((R!/2)*(X^2))+(G1*X)+BE 3140 PRINT:PRINT"STA= ";FS!;" ELEV=";EL! 3145 IF F>0THENLPRINT"STA= ";FS!;" ELEV= ";EL! 3150 GOSUB6 3170 X=X+0.5:FS!=FS!+50:ES=BS+L 'ES=END STA 3190 IF FS!0THEN3270ELSERETURN 3270 LPRINT:LPRINT" VERTICAL CURVES":LPRINT"BEGIN STA.= ";BS;" BEGIN ELEV= ";BE 3280 LPRINT"PVI STA= "PVI!;" PVI ELEV= ";VE 3290 LPRINT"G1= ";G1;" G2= ";G2;" L= ";L 3300 RETURN 3310 G=G1:IFG1<1THENG=-G1 3320 X=(G/R!):EL!=((R!/2)*(X^2)+(G1*X)+BE):STA=X*100+BS:PRINT:PRINT" MAX/MIN POINT" 3340 PRINT"STA= ";STA;" EL= ";EL! 3350 IF F>0THEN3360ELSE3370 3360 LPRINT:LPRINT"MAX/MIN POINT": LPRINT"STA= ";STA;" EL= ";EL! 3370 INPUT"ANOTHER CURVE";Y$:IFY$="Y"THEN3010 3380 GOTO9 3500 CLS:PRINT" HORIZ. CURVES" 3510 PRINT:INPUT"SELECT ARC OR CHORD DEF.-- ARC=1 CHORD=2";ACF% 3520 IFACF%<>1ANDACF%<>2THEN3510 3530 CLS:INPUT"ENTER CENTRAL DELTA--DMS";D,M,S 3540 GOSUB410 3545 RA=(A*180)/PI 'RA IN DEC. DEG. 3550 GOSUB8:IFY$<>"Y"THEN3530 3560 CLS:PRINT@7," SELECT KNOWN INFO" 3570 PRINT@47,"RADIUS=1 TAN=2 DEG/CURV=3" 3580 PRINT@87,"LENGTH/CURV=4 EXTERN/DIST=5 MID ORD=6 CHORD=7" 3590 INPUTS% 3600 ONS%GOTO3610,3690,3710,3740,3770,3800,3870 3610 CLS:INPUT"ENTER RADIUS";R 3620 GOSUB3630:GOSUB3640:GOSUB3650:GOSUB3660:GOSUB3670:GOTO4000 3630 T=R*TAN(A/2):RETURN 3640 IFACF%=1THENDC#=5729.578/R 3641 IFACF%=2THEN X=50/R:DC#=2*(ATN(X/SQR(-X*X+1))):DC#=DC#*180/PI 'ARCSIN50/R 3645 RETURN 3650 L=100*(RA/DC#):RETURN 3660 J=(1/COS(A/2))-1:IFJ<0THENJ=-J 3661 E=R*J:RETURN 'E=EXT DIST 3670 MO#=R*(1-COS(A/2)):C=2*R*SIN(A/2):RETURN 'MO=MID ORD C=CHORD 3690 CLS:INPUT"ENTER TANGENT";T 3700 R=T/(TAN(A/2)):GOSUB3640:GOSUB3650:GOSUB3660:GOSUB3670:GOTO4000 3710 CLS:INPUT"ENTER DEG/CURVE IN DEC. DEG.";DC#:GOSUB3720:GOTO3730 3720 IFACF%=1THENR=5729.578/DC# 3722 IFACF%=2THENR=(50/(SIN(((DC#*PI)/180)/2))) 3725 RETURN 3730 GOSUB3630:GOSUB3650:GOSUB3660:GOSUB3670:GOTO4000 3740 CLS:INPUT"ENTER LENGTH/CURV";L 3750 DC#=(100*RA)/L:GOSUB3720:GOSUB3630:GOSUB3660:GOSUB3670:GOTO4000 3770 CLS:INPUT"ENTER EXT. DIST.";E 3780 J=1/(COS(A/2))-1:IFJ<0THENJ=-J 3781 R=E/J:GOSUB3630:GOSUB3640:GOSUB3650:GOSUB3670:GOTO4000 3800 CLS:INPUT"ENTER MIDDLE ORDINATE";MO# 3810 R=MO#/(1-COS(A/2)):C=2*R*(SIN(A/2)) 3820 GOSUB3630:GOSUB3640:GOSUB3650:GOSUB3660:GOTO4000 3870 CLS:INPUT"ENTER LONG CHORD";C 3880 R=C/(2*SIN(A/2)):GOSUB3630:GOSUB3640:GOSUB3650:GOSUB3660:MO#=R*(1-COS(A/2)) 4000 CLS:PRINT"CHECK INPUT FOR CORRECT" 4010 PRINTUSING"\ \####.### \ \ ####.### \ \##.##### \ \ 4011 {}####.### \ \####.### \ \ ####.### \ \####.###"; 4012 PRINT"RADIUS= ";R;"TAN=";T;"DEG/CURV= ";DC#;"LENGTH/CURV= ";L;"EXT. DIST.= ";E;"MID.ORD.=";MO#;"CHORD= ";C 4040 GOSUB8:IFY$<>"Y"THEN3500 4050 IF F>0THEN4060ELSE4150 4060 LPRINT:LPRINT" HORIZ. CURVE" 4070 LPRINT:LPRINTUSING"\ \####.### \ \ ####.###";"RADIUS= ";R;"TANGENT= ";T 4071 LPRINTUSING"\ \##.##### \ \####.### \ \####.### \ \####.### \ \####.###"; 4072 LPRINT"DEG/CURV";DC#;"LENGTH/CURV= ";L;"EXT.DIST.= ";E;"MID.ORD.= ";MO#;"CHORD= ";C 4090 LPRINT:LPRINT"CENTRAL ANGLE DEC.DEG.";RA 4150 INPUT"DO YOU WANT AREAS";Y$:IFY$="Y"THEN4190 4160 INPUT"DO YOU WANT LAYOUT";Y$:IFY$="Y"THEN4300 4170 INPUT"ANOTHER CURVE";Y$:IFY$="Y"THEN3500 4180 GOTO9 4190 AS#=(RA/360)*PI*(R^2) 'SECTOR AREA 4210 AG#=AS#-(0.5*R*C*COS(A/2)):AF#=((R^2)*TAN(A/2))-AS# 'AG=SEGMENT AEA AF=FILLET AREA 4230 CLS:PRINT:PRINT"SECTOR AREA= ";AS# 4240 PRINT:PRINT"SEGMENT AREA= ";AG#:PRINT:PRINT"FILLET AREA= ";AF# 4250 IF F>0THEN4260ELSE4160 4260 LPRINT:LPRINT"SECTOR AREA= ";AS#:LPRINT:LPRINT"SEGMENT AREA= ";AG#;" FILLET AREA= ";AF#:GOTO4160 4300 CLS:PRINT" HORIZONTAL LAYOUT" 4310 PRINT:INPUT"PC STA=1 PI STA=2";S% 4320 ONS%GOTO4330,4340 4330 INPUT"ENTER P.C. STA.";PC:IP=PC+T:PRINT"PI STA = ";IP:GOTO4350 4340 INPUT"ENTER P.I. STA";IP:PC=IP-T:PRINT"PC STA = ";PC 4350 PT=PC+L:PRINT"PT STA = ";PT 4355 IFF>0THENLPRINT:LPRINT" PC STA. = ";PC;"PI STA. = ";IP;"PT STA. = ";PT 4360 INPUT"ENTER FIRST EVEN STA.";NS:GOSUB8:IFY$<>"Y"THEN4300 4370 CA=((NS-PC)*DC#)/100:DA#=CA/2:RA=(DA#*PI)/180:GOSUB445 'CA=CENTRAL ANG. DA=DEF ANG RA=DA IN RAD. 4385 CA=(CA*PI)/180:C=2*R*SIN(CA/2) 'CHORD PC TO NS 4400 GOSUB6 4410 CLS:PRINT"STA= ";NS;" DEF.ANGLE=";D;"-";M;"-";S:PRINT:PRINT"CHORD PC TO STA= ";C 4420 IF F>0THEN4430ELSE4440 4430 LPRINT:LPRINT"STA= ";NS;" DEF. ANGLE= ";D;"-";M;"-";S;" CHORD PC TO STA= ";C 4440 IFNS>PT THEN4170 4445 NS=NS+50:GOTO4370