1 CLS 9 CLS 10 '********************************************************************** 20 ' 30 ' This program is to display GEK $ BT data of KER 40 ' 50 ' 10K#2#4!%#7!%#1#9#8#710H 60 ' 70 ' 10K#P#r#o#d#u#c#e#d!!#b#y!!10HJODC 80 ' 90 '********************************************************************** 100 'CONSOLE 0,25,0,1 110 DIM VLE$(30), VLE(30), DPT(30) 112 WIDTH "LPT1:", 133 114 OPEN "LPT1:" FOR OUTPUT AS #3 120 CLS 130 GOSUB 180 140 IF GX$ = "G" OR GX$ = "g" THEN GXD$ = "GEK": GOTO 350 145 IF GX$ = "X" OR GX$ = "x" THEN GXD$ = "XBT": GOTO 480 150 IF GX$ = "D" OR GX$ = "d" THEN GXD$ = "DBT": GOTO 480 155 IF GX$ = "Z" OR GX$ = "z" THEN GOTO 160 ELSE GOTO 130 160 CLS : END 170 ' 180 '*MENU 190 CLS : LOCATE 3, 3: PRINT "* This program is to display GEK & BT data of KER" 200 IF COUNT = 0 THEN GOTO 210 ELSE GOTO 240 210 LOCATE 8, 15: PRINT "Please insert FD into the device " 220 LOCATE 10, 20: PRINT "PLease key in device No. of FD " 225 LOCATE 12, 25: INPUT "Example : D "; DRIVE$ 230 DRIVE = VAL(DRIVE$) 240 LOCATE 13, 5: PRINT "* Selection of GEK,BT " 250 LOCATE 15, 15: PRINT ":GEK---------------------- G" 260 LOCATE 17, 15: PRINT ":XBT---------------------- X" 265 LOCATE 19, 15: PRINT ":DBT---------------------- D" 270 LOCATE 21, 15: PRINT ":END---------------------- Z" 280 LOCATE 23, 10: INPUT " Please key in G,X or Z "; GX$: RETURN 290 '*FILEKIND 295 ON ERROR GOTO 320 300 CLS : LOCATE 1, 1: FILES DRIVE$ + ":*." + GXD$ 310 IF GXD$ = "GEK" THEN FILES DRIVE$ + ":*.ADC" 320 PRINT : INPUT "Please key in File-Name (XXXX.XXX)"; INPF$ 330 RETURN 340 ' 350 '*GEKMENU 360 CLS : 'ON ERROR GOTO 6200 370 LOCATE 2, 5: PRINT " Display of GEK data" 380 LOCATE 8, 20: PRINT " 1: Display GEK data on the screen" 390 LOCATE 10, 20: PRINT " 2: Print data on the sheet" 400 LOCATE 12, 20: PRINT " 3: Display current chart on the screen" 410 LOCATE 21, 15: INPUT "Please select No. "; HARD 420 GOSUB 290 430 INPFD$ = DRIVE$ + ":" + INPF$: COUNT = COUNT + 1 440 IF INSTR(INPF$, "GEK") = 0 THEN INPF$ = "GEK" + INPF$ 450 ON HARD GOSUB 610, 610, 3430 460 CLS : GOTO 120 470 ' 480 '*XBTMENU 490 CLS : 'ON ERROR GOTO 6180 500 LOCATE 2, 5: PRINT " Display of BT(XBT„DBT)" 510 LOCATE 8, 20: PRINT " 1: Display BT data with graph on the screen" 520 LOCATE 10, 20: PRINT " 2: Print BT data on the sheet" 530 LOCATE 21, 15: INPUT "Please select No."; HARD 540 GOSUB 290 550 INPFD$ = DRIVE$ + ":" + INPF$: COUNT = COUNT + 1 560 ON HARD GOSUB 1940, 1200 570 CLS : GOTO 150 580 ' 590 '------------- Display GEK (Printer, Displat) ----------------- 600 ' 610 '*GEKIS 620 OPEN INPFD$ FOR INPUT AS #1 630 ON HARD GOTO 640, 720 640 CLS : K = 0 650 LOCATE 1, 1: PRINT "*** "; INPF$; " ***" 660 LOCATE 2, 1: PRINT SPC(30); "POSITION"; SPC(8); "CURRENT SURFACE WIND" 670 LOCATE 3, 1: PRINT " NO. DATA TIME" 680 LOCATE 4, 1: PRINT " (GMT) LAT. LONG. DIR. VEL. TEMP. DIR. VEL. ST.NO." 690 LOCATE 5, 1: PRINT SPC(51); "(KN) ("; CHR$(248); "C) -:Force" 700 LOCATE 7, 1: GOTO 780 710 ' 720 LPRINT "*** "; INPF$; " ***" 730 LPRINT SPC(30); "POSITION"; SPC(8); "CURRENT SURFACE WIND" 740 LPRINT " NO. DATA TIME" 750 LPRINT " (GMT) LAT. LONG. DIR. VEL. TEMP. DIR. VEL. ST.NO." 760 LPRINT SPC(51); "(KN) ("; CHR$(248); "C) -:Force": LPRINT 770 ' 780 INPUT #1, A$ 790 IF EOF(1) THEN CLOSE : GOTO 1040 800 K = K + 1 810 ' 820 NO$ = MID$(A$, 77, 4) 830 MO = VAL(MID$(A$, 23, 2)): DA = VAL(MID$(A$, 25, 2)): GOSUB 2980 840 GMT$ = MID$(A$, 27, 2) + "." + MID$(A$, 29, 1) 850 LAT$ = MID$(A$, 5, 2) + "-" + MID$(A$, 7, 2) + "." + MID$(A$, 9, 2) 860 LON$ = MID$(A$, 11, 3) + "-" + MID$(A$, 14, 2) + "." + MID$(A$, 16, 2) 870 IF MID$(LAT$, 7, 1) = " " THEN LAT$ = LEFT$(LAT$, 5) + " " + RIGHT$(LAT$, 1) 880 IF MID$(LON$, 8, 1) = " " THEN LON$ = LEFT$(LON$, 6) + " " + RIGHT$(LON$, 1) 890 CDIR$ = MID$(A$, 39, 3): WDIR$ = MID$(A$, 47, 2): WVEL$ = MID$(A$, 49, 2) 900 CVEL$ = MID$(A$, 42, 1) + "." + MID$(A$, 43, 1) 910 T1$ = MID$(A$, 44, 3): GOSUB 3060 920 STNO$ = MID$(A$, 30, 5) 930 GEK$ = NO$ + " " + DAY$(1) + " " + GMT$ + " " + LAT$ + " " + LON$ + " " + CDIR$ + " " + CVEL$ + " " + TMP$ + " " + WDIR$ + " " + WVEL$ + " " + STNO$ 940 ' 950 ON HARD GOTO 960, 1000 960 PRINT GEK$ 970 IF K MOD 15 = 0 THEN GOSUB 3390 980 GOTO 780 990 ' 1000 LPRINT GEK$ 1010 IF K MOD 10 = 0 THEN LPRINT 1020 GOTO 780 1030 ' 1040 IF HARD = 2 THEN GOTO 1070 1050 LOCATE 23, 15: INPUT "Do you want to print data on the sheet ? (Y/N)"; YN$ 1060 IF (YN$ = "Y") OR (YN$ = "y") THEN HARD = 2: GOTO 620 1070 CLS 1080 LOCATE 8, 15: PRINT ": Display other GEK data ----------- G" 1090 LOCATE 10, 15: PRINT ": Display XBT data ----------------- X" 1095 LOCATE 12, 15: PRINT ": Display DBT data ----------------- D" 1100 LOCATE 14, 15: PRINT ": END ------------------------------ Z" 1110 LOCATE 20, 20: INPUT "Please key in G,X or Z"; YN$ 1120 IF (YN$ = "G") + (YN$ = "g") THEN RETURN 350 1130 IF (YN$ = "X") + (YN$ = "x") THEN RETURN 130 1135 IF (YN$ = "D") + (YN$ = "d") THEN RETURN 130 1140 IF (YN$ = "Z") + (YN$ = "z") THEN RETURN 130 1150 GOTO 1070 1160 RETURN 1170 ' 1180 '------------- Display XBT (Printer)--------------------------------------- 1190 ' 1200 '*XBTPRN 1210 K = 0: F = 0 1220 OPEN INPFD$ FOR INPUT AS #1 1230 N$ = LEFT$(A$, 2) + MID$(A$, 68, 6) 1240 CLOSE 1250 FOR L = 16 TO 30: VLE$(L) = " - ": NEXT L 1260 ' 1270 LPRINT "**** "; INPF$; " ***** / DATA CODE:"; N$: LPRINT 1280 LPRINT SPC(73); "TEMPERATURE ("; CHR$(248); "C)" 1290 LPRINT "NUMBER"; SPC(20); "POSITION"; SPC(39); " DEPTH (M)" 1300 LPRINT SPC(10); "DATE TIME"; SPC(58); " "; SPC(35); "S.L. AIR" 1310 LPRINT SPC(10); " GMT LAT. LONG. 0 10 20 30 50 75 100 125 150 200 250 300 350 400 450 TEMP." 1320 LPRINT SPC(46); "500 550 600 650 700 750 800 850 900 950 1000 1100 1200 1300 1400 (M) ("; CHR$(248); "C)" 1330 LPRINT : LPRINT 1340 ' 1350 OPEN INPFD$ FOR INPUT AS #1 1360 IF EOF(1) THEN GOTO 1800 1370 INPUT #1, A$ 1380 ' 1390 IF RIGHT$(A$, 2) = "11" THEN K = K + 1: GOTO 1420 1400 IF RIGHT$(A$, 2) = "22" THEN GOTO 1570 1410 IF RIGHT$(A$, 2) = "32" THEN GOTO 1710 1415 GOTO 1360 1420 IF F = 1 THEN GOTO 1800 1430 ' 1440 '*FIR '------ SAMPLING OF DATA FROM FIRST RECORD (XBT) ------- 1450 ' 1455 IF RIGHT$(A$, 2) <> "11" THEN GOTO 1360 1460 N$ = LEFT$(A$, 2) + MID$(A$, 68, 6) 1470 NO$ = MID$(A$, 3, 2) + MID$(A$, 74, 4) 1480 MO = VAL(MID$(A$, 24, 2)): DA = VAL(MID$(A$, 26, 2)): GOSUB 2980 1490 GMT$ = MID$(A$, 28, 2) + "." + MID$(A$, 30, 1) 1500 LAT$ = MID$(A$, 9, 2) + "-" + MID$(A$, 11, 2) + "." + MID$(A$, 13, 2) 1510 LON$ = MID$(A$, 15, 3) + "-" + MID$(A$, 18, 2) + "." + MID$(A$, 20, 2) 1520 T1$ = MID$(A$, 55, 3): T2$ = MID$(A$, 58, 3): GOSUB 3060 1530 IF MID$(LAT$, 7, 1) = " " THEN LAT$ = LEFT$(LAT$, 5) + " " + RIGHT$(LAT$, 1) 1540 IF MID$(LON$, 8, 1) = " " THEN LON$ = LEFT$(LON$, 6) + " " + RIGHT$(LON$, 1) 1550 F = 1: ON HARD GOTO 2100, 1360 1560 ' 1570 '*SEC '------ SAMPLING OF DATA FROM SECOND RECORD (XBT) ------- 1580 ' 1590 S = 3: FOR L = 1 TO 15 1600 IF MID$(A$, S, 4) = " " THEN VLE$(L) = " - ": GOTO 1620 1610 VL$ = MID$(A$, S, 4): GOSUB 3260 1620 S = S + 4 1630 NEXT L 1640 SLM = VAL(MID$(A$, 63, 3)): SLM$ = STR$(SLM) 1650 IF SLM$ = " 0" THEN SLM$ = " - ": GOTO 1690 1660 IF LEN(SLM$) = 2 THEN SLM$ = " " + SLM$: GOTO 1690 1670 IF LEN(SLM$) = 3 THEN SLM$ = " " + SLM$: GOTO 1690 1680 IF LEN(SLM$) = 4 THEN SLM$ = SLM$ 1690 ON HARD GOTO 2100, 1360 1700 ' 1710 '*THI '------ SAMPLING OF DATA FROM THIRD RECORD (XBT) ------- 1720 ' 1730 S = 3: FOR L = 16 TO 30 1740 IF MID$(A$, S, 4) = " " THEN VLE$(L) = " - ": GOTO 1760 1750 VL$ = MID$(A$, S, 4): GOSUB 3260 1760 S = S + 4 1770 NEXT L 1780 ON HARD GOTO 2100, 1360 1790 ' 1800 XBT1$ = NO$ + " " + DAY$(1) + " " + GMT$ + " " + LAT$ + " " + LON$ + " " 1810 XBT2$ = VLE$(1) + " " + VLE$(2) + " " + VLE$(3) + " " + VLE$(4) + " " + VLE$(5) + " " + VLE$(6) + " " + VLE$(7) + " " + VLE$(8) 1820 XBT3$ = VLE$(9) + " " + VLE$(10) + " " + VLE$(11) + " " + VLE$(12) + " " + VLE$(13) + " " + VLE$(14) + " " + VLE$(15) + " " 1830 XBT4$ = VLE$(16) + " " + VLE$(17) + " " + VLE$(18) + " " + VLE$(19) + " " + VLE$(20) + " " + VLE$(21) + " " + VLE$(22) + " " + VLE$(23) 1840 XBT5$ = " " + VLE$(24) + " " + VLE$(25) + " " + VLE$(26) + " " + VLE$(27) + " " + VLE$(28) + " " + VLE$(29) + " " + VLE$(30) 1850 LPRINT USING "& & & & &"; XBT1$; XBT2$; XBT3$; SLM$; TMP$ 1860 LPRINT SPC(45); XBT4$; XBT5$: LPRINT 1870 IF EOF(1) THEN CLOSE : RETURN 1880 GOTO 1440 1890 RETURN 1900 ' 1910 ' 1920 '------------- Display XBT (screen)--------------------------------------- 1930 ' 1940 '*XBTCRT 1950 SCREEN 9: VIEW (0, 0)-(639, 349): CLS : K = 0: KS = 0: F = 0: LOCATE 8, 25: PRINT "**** ON data process ****" 1960 OPEN INPFD$ FOR INPUT AS #1 1970 INPUT #1, A$ 1980 IF EOF(1) THEN GOTO 2010 1990 IF RIGHT$(A$, 2) = "11" THEN K = K + 1 2000 GOTO 1970 2010 CLOSE 2020 LOCATE 8, 15: PRINT "There are"; K; "data in the file "; INPF$: N = K 2030 LOCATE 10, 15: PRINT "Please key in data No." 2040 LOCATE 21, 15: INPUT "Please key in Data No.= "; K 2050 CLS 2060 ' 2070 LOCATE 8, 25: PRINT "**** On data process ****" 2080 FOR L = 16 TO 30: VLE$(L) = " - ": NEXT L: F = 0 2090 OPEN INPFD$ FOR INPUT AS #1 2095 IK = 0: INFLAG = 0 2100 INPUT #1, A$ 2105 'PRINT A$ 2110 IF EOF(1) THEN GOTO 2210 2115 IF INFLAG = 0 THEN IF RIGHT$(A$, 2) = "11" THEN IK = IK + 1 ELSE GOTO 2100 2120 IF INFLAG = 0 THEN IF IK = K THEN INFLAG = 9: GOTO 2190 ELSE GOTO 2100 2140 ' 2150 IF RIGHT$(A$, 2) = "11" THEN GOTO 2190 2160 IF RIGHT$(A$, 2) = "22" THEN GOTO 1570 2170 IF RIGHT$(A$, 2) = "32" THEN GOTO 1710 2180 ' 2190 IF F = 1 THEN GOTO 2210 2200 GOTO 1440 2210 CLOSE : CLS 2220 LOCATE 1, 1: PRINT "*** "; INPF$; "(CODE:"; N$; ") ***": PRINT 2230 PRINT " -- NO."; NO$; " --": PRINT 2240 PRINT USING "\ \_:&_-&"; "DATE"; MO$; DA$ 2250 PRINT "GMT :"; GMT$ 2260 LOCATE 4, 13: PRINT "LAT : "; LAT$; " SLM :"; SLM$; " (M)" 2270 LOCATE 5, 13: PRINT "LONG:"; LON$; " TEMP:"; TMP$; "("; CHR$(248); "C)" 2280 ' 2290 MVL = 0 2295 YSCAL = 350 / 400 2300 FOR M = 16 TO 30: IF VLE$(M) = " - " THEN MVL = MVL + 1 2305 NEXT M 2310 IF MVL < 13 THEN WMY = 1400 ELSE WMY = 500 2320 WINDOW SCREEN (-30, 0)-(330, WMY): VIEW (345, 1)-(595, 355 * YSCAL), , 7 2330 ' 2340 I = 0 2350 FOR DEPTH = 0 TO 30 STEP 10: I = I + 1: DPT(I) = DEPTH: NEXT DEPTH 2360 FOR DEPTH = 50 TO 150 STEP 25: I = I + 1: DPT(I) = DEPTH: NEXT DEPTH 2370 FOR DEPTH = 200 TO 1000 STEP 50: I = I + 1: DPT(I) = DEPTH: NEXT DEPTH 2380 FOR DEPTH = 1100 TO 1400 STEP 100: I = I + 1: DPT(I) = DEPTH: NEXT DEPTH 2390 ' 2400 KS = 0: X = 0 2410 FOR Y = 7 TO 21 2420 KS = KS + 1: LOCATE Y, X + 3: PRINT USING "#### \ \"; DPT(KS); VLE$(KS) 2430 IF KS = 30 THEN GOTO 2460 2440 NEXT Y 2450 X = X + 17: GOTO 2410 2460 LOCATE 21, 24: PRINT "(M)": LOCATE 21, 31: PRINT "("; CHR$(248); "C)" 2470 ' 2480 FOR L = 1 TO 30 2490 IF VLE$(L) = " - " THEN VLE(L) = 100: GOTO 2510 2500 VLE(L) = 10 * (VAL(VLE$(L))) 2510 NEXT L 2520 ' 2525 ' A1400=1400*350/400 : A50=50*350/400 2530 FOR H = 0 TO 1400 STEP 50 2540 IF H MOD 250 = 0 THEN LINE (-50, H)-(350, H), 7, , &HFFF9 2550 LINE (-50, H)-(350, H), 7, , &H9999 2560 NEXT H 2570 FOR W = 0 TO 300 STEP 50 2580 LINE (W, 0)-(W, 1400), 7, , &HF9F9 2590 NEXT W 2600 ' 2610 LOCATE 24, 46: PRINT "0 10 20 30("; CHR$(248); "C)"; 2620 IF MVL < 13 THEN GOTO 2670 2630 LOCATE 1, 76: PRINT " 0": LOCATE 5, 76: PRINT "100": LOCATE 10, 76: PRINT "200" 2640 LOCATE 14, 76: PRINT "300": LOCATE 18, 76: PRINT "400" 2650 LOCATE 22, 76: PRINT "500": LOCATE 23, 76: PRINT "(M)"; : GOTO 2700 2660 ' 2670 LOCATE 1, 76: PRINT " 0": LOCATE 5, 76: PRINT " 250": LOCATE 9, 76: PRINT " 500" 2680 LOCATE 13, 76: PRINT " 750": LOCATE 17, 76: PRINT "1000" 2690 LOCATE 21, 76: PRINT "1250": LOCATE 23, 76: PRINT "(M)"; 2700 ' 2710 FOR D = 1 TO 29 2720 IF VLE(D) = 100 THEN GOTO 2760 2730 IF VLE(D + 1) = 100 THEN VLE(D + 1) = VLE(D): DPT(D + 1) = DPT(D) 2740 LINE (VLE(D), DPT(D))-(VLE(D + 1), DPT(D + 1)), 2 2750 LINE (VLE(D) + 1, DPT(D))-(VLE(D + 1) + 1, DPT(D + 1)), 2 2760 NEXT D 2770 ' 2780 LOCATE 23, 1: INPUT "Do you want to continue this program ? Y/N"; YN$ 2790 IF (YN$ = "y") + (YN$ = "Y") + (YN$ = "") THEN GOTO 2800 ELSE RETURN 160 2800 CLS : VIEW (0, 0)-(639, 349): CLS 2810 LOCATE 8, 15: PRINT "Display data in the file "; INPF$; " ---- RETURN" 2820 LOCATE 10, 15: PRINT "Print all data of "; INPF$; " ------------ P" 2830 LOCATE 12, 15: PRINT "Print another data -------------------- E" 2840 LOCATE 14, 15: PRINT "END ----------------------------------- Z" 2850 LOCATE 20, 20: PRINT "Please key in CARRIAGE-RETURN,P,E or Z" 2860 IN$ = INKEY$: IF IN$ = "" THEN GOTO 2860 2870 IF (IN$ = "P") + (IN$ = "p") THEN HARD = 2: GOSUB 1200: GOTO 2800 2880 IF (IN$ = "E") + (IN$ = "e") THEN RETURN 120 2890 IF (IN$ = "Z") + (IN$ = "z") THEN RETURN 160 2900 CLS : LOCATE 1, 10: PRINT "Number of data in the file "; INPF$; " "; N 2910 LOCATE 10, 15: PRINT "Please key in data No." 2920 LOCATE 13, 15: INPUT "Please key in Data No. to display = "; K 2930 GOTO 2050 2940 RETURN 2950 ' 2960 '------------ Corection of Data-------------------------------------- 2970 ' 2980 '*MDAY 2990 MO$ = STR$(MO): DA$ = STR$(DA) 3000 IF LEN(MO$) = 3 THEN MO$ = RIGHT$(MO$, 2) 3010 IF LEN(DA$) = 3 THEN DA$ = RIGHT$(DA$, 2) 3020 DAY$(1) = MO$ + "-" + DA$ 3030 IF DAY$(1) = DAY$(0) THEN DAY$(1) = " " ELSE DAY$(0) = DAY$(1) 3040 RETURN 3050 ' 3060 '*TEMP 3070 IF LEFT$(INPF$, 3) = "GEK" THEN GOTO 3110 3080 IF T1$ = " " THEN IF T2$ = " " THEN TMP$ = " - ": RETURN 3090 IF T1$ = " " THEN TM$ = T2$ ELSE TM$ = T1$ 3100 GOTO 3140 3110 IF T1$ = " " THEN TMP$ = " - ": RETURN 3120 TM$ = T1$ 3130 ' 3140 IF LEFT$(TM$, 1) = "-" THEN TMP = VAL(TM$) / 10: GOTO 3240 3150 IF LEFT$(TM$, 1) = "J" THEN TM$ = "-1" + RIGHT$(TM$, 2): TMP = VAL(TM$) / 10 ELSE TMP = VAL(TM$) / 10 3152 IF TMP < 0 THEN TMP = TMP - .0005 ELSE TMP = TMP + .0005 3160 TM$ = STR$(TMP) 3164 IF TMP > 9.99 THEN TMP$ = MID$(TM$, 1, 5) ELSE TMP$ = " " + MID$(TM$, 1, 4) 3168 IF TMP < 1! AND TMP > 0! THEN TMP$ = " 0" + MID$(TM$, 2, 2) 3169 IF TMP > -1! AND TMP < 0! THEN TMP$ = " -0" + MID$(TM$, 2, 2) 3170 ' IF LEN(TM$)=2 THEN TMP$=LEFT$(TM$,1)+" "+RIGHT$(TM$,1)+".0":RETURN 3180 ' IF LEN(TM$)=3 THEN GOTO 3220 3190 ' IF LEN(TM$)=4 THEN TMP$=LEFT$(TM$,1)+" "+RIGHT$(TM$,3) :RETURN 3200 ' IF LEN(TM$)=5 THEN TMP$=TM$ :RETURN 3210 ' 3220 ' IF MID$(TM$,2)="." THEN TMP$=LEFT$(TM$,1)+" 0"+RIGHT$(TM$,2):RETURN 3230 ' TMP$=TM$+".0" 3240 RETURN 3250 ' 3260 '*VALUE 3280 IF MID$(VL$, 1, 1) = "0" THEN VLE$ = " " ELSE VLE$ = MID$(VL$, 1, 1) 3290 IF MID$(VL$, 2, 1) = "0" THEN VLE$ = VLE$ + " " ELSE VLE$ = VLE$ + MID$(VL$, 2, 1) 3300 VLE$ = VLE$ + MID$(VL$, 3, 1) + "." + MID$(VL$, 4, 1) 3320 ' 3325 VLE$(L) = VLE$ 3370 RETURN 3380 ' 3390 '*INKEY 3400 LOCATE 23, 10: PRINT "Hit RETURN key and continue to display" 3410 I$ = INKEY$: IF I$ = "" THEN GOTO 3410 ELSE CLS : LOCATE 1, 1 3420 RETURN 3430 '*GEKCRT 3440 WR = 0: N = 1 3450 '*AGAIN 3460 CLS 3470 LOCATE 10, 15: PRINT "Display of Mean or observation data" 3480 LOCATE 13, 15: PRINT ": Mean Value --------------------- 1" 3490 LOCATE 15, 15: PRINT ": Observation data --------------- 2" 3500 LOCATE 20, 20: INPUT "Please select 1 or 2"; WA 3510 SCREEN 9: CLS 3512 A399 = 399 * 350 / 400: A384 = 384 * 350 / 400: A16 = 16 * 350 / 400 3520 WINDOW SCREEN (0, 0)-(648, A399) 3525 VIEW (0, 0)-(639, A399): CLS 3530 VIEW (0, A16)-(623, A399): CLS 3540 LINE (0, 0)-(648, A384), 6, B 3550 RESTORE 3555 YSCAL = 350 / 400 3560 '*START 3570 READ PX1$: READ PY1$ 3580 PX1 = VAL(PX1$) * 4: PY1 = VAL(PY1$) * 4 * YSCAL 3590 '*LOOP 3600 READ PX2$: IF INSTR(PX2$, "-") > 0 THEN GOTO 3560 3610 IF INSTR(PX2$, "@") > 0 THEN GOTO 3670 3620 READ PY2$ 3630 PX2 = VAL(PX2$) * 4: PY2 = VAL(PY2$) * 4 * YSCAL 3640 LINE (PX1, PY1 * YSCAL)-(PX2, PY2 * YSCAL), 7 3650 PX1 = PX2: PY1 = PY2 3660 GOTO 3590 3670 '*ISLAND 3680 READ PX1$: IF INSTR(PX1$, "@") > 0 THEN GOTO 3730 3690 READ PY1$ 3700 PX1 = VAL(PX1$) * 4: PY1 = VAL(PY1$) * 4 * YSCAL 3710 PSET (PX1, PY1), 7 3720 GOTO 3670 3730 '*MAPEND 3735 WR = 1 3740 FOR I = 120 TO 600 STEP 120 3750 LINE (I, 0)-(I, 8 * YSCAL), 6 3760 LINE (I, 384 * YSCAL)-(I, 377 * YSCAL), 6 3770 NEXT I 3780 FOR I = 72 TO 312 STEP 120 3790 LINE (0, I * YSCAL * YSCAL)-(8, I * YSCAL * YSCAL), 6 3800 LINE (648, I * YSCAL * YSCAL)-(640, I * YSCAL * YSCAL), 6 3810 NEXT I 3820 LINE (0, 0)-(648, 384 * YSCAL), 6, B 3825 LOCATE 24, 15: PRINT "-0.2 -0.5 -1.0 -1.5 -2.0 -3.0 3.0- (kn)"; 3830 RESTORE 6170 3840 DIR = 0: X = 40: Y = 375 3850 FOR I = 1 TO 7 3860 READ VEL 3870 X = X + 64 3880 GOSUB 4190 3890 NEXT I 3900 '*MAPYET 3910 GOSUB 5220 3920 OPEN INPFD$ FOR INPUT AS #1 3930 ' 3940 '*READIN 3950 INPUT #1, A$ 3960 IF EOF(1) THEN GOTO 5070 3970 Y = VAL(MID$(A$, 5, 2)): Y0 = VAL(MID$(A$, 7, 2)) / 60 3980 X = VAL(MID$(A$, 11, 3)): X0 = VAL(MID$(A$, 14, 2)) / 60 3990 DIR = VAL(MID$(A$, 39, 3)) 4000 VEL = VAL(MID$(A$, 42, 2)) 4010 ' 4020 X = 24 * X - 2880 4030 Y = -24 * Y + 912: Y = Y * YSCAL 4040 ' 4050 'conversion of angle 4060 IF DIR <= 90 THEN DIR = -DIR + 90 4070 IF DIR > 90 THEN DIR = -DIR + 450 4080 DIR = DIR / 180 * 3.1415962# 4090 ' 4100 'conversion of current speed 4110 VEL = VEL / 10 4120 ' 4130 ON WA GOTO 4140, 4160 4140 IF (X = XO) * (Y = YO) THEN DIR = DIR + DIRO: VEL = VEL + VELO: N = N + 1: GOTO 3940 4150 IF (X <> XO) + (Y <> YO) THEN DIR = DIR / N: VEL = VEL / N: XE = X: YE = Y: X = XO: Y = YO: GOSUB 4190: DIR = DIRO: VEL = VELO: XO = XE: YO = YE: N = 1: GOTO 3940 4160 X = X + 24 * X0: Y = Y - 24 * Y0 * YSCAL 4170 GOSUB 4190: GOTO 3940 4180 ' 4190 '*HANREI 4200 'arrow 4210 IF VEL <= .2 THEN GOTO 4290 4220 IF VEL <= .5 THEN GOTO 4350 4230 IF VEL <= 1 THEN GOTO 4390 4240 IF VEL <= 1.5 THEN GOTO 4470 4250 IF VEL <= 2 THEN GOTO 4510 4260 IF VEL <= 3 THEN GOTO 4610 4270 IF VEL > 3 THEN GOTO 4720 4280 ' 4290 '*ARROW1 4300 PSET (X, Y * YSCAL), 5 4310 PSET (X + 1, (Y + 1) * YSCAL), 5: PSET (X + 1, (Y - 1) * YSCAL), 5 4320 PSET (X - 1, (Y + 1) * YSCAL), 5: PSET (X - 1, (Y - 1) * YSCAL), 5 4330 RETURN 4340 ' 4350 '*ARROW2 4360 LENG = 8 4370 GOTO 4410 4380 ' 4390 '*ARROW3 4400 LENG = 15 4410 GOSUB 4860 4420 LENG = LENG - 1: Z = 1: Q = 1: GOSUB 4910 4430 LENG = LENG - 1: Z = 2: Q = 2: GOSUB 4910 4440 LENG = LENG - 1: Z = 1: Q = 1: GOSUB 4910 4450 RETURN 4460 ' 4470 '*ARROW4 4480 LENG = 11 4490 GOTO 4530 4500 ' 4510 '*ARROW5 4520 LENG = 15 4530 GOSUB 4860 4540 LENG = LENG - 2: Z = 1: Q = 1: GOSUB 4910 4550 LENG = LENG - 1: GOSUB 4910 4560 LENG = LENG - 1: Z = 2: Q = 2: GOSUB 4910 4570 LENG = LENG - 1: Z = 3: Q = 3: GOSUB 4910 4580 LENG = LENG - 1: Z = 1: Q = 1: GOSUB 4910 4590 RETURN 4600 ' 4610 '*ARROW6 4620 LENG = 9 4630 GOSUB 4860 4640 LENG = LENG - 1: Z = 2: Q = 1: GOSUB 4910 4650 LENG = LENG - 1: Z = 3: Q = 2: GOSUB 4910 4660 LENG = LENG - 1: Z = 4: Q = 3: GOSUB 4910 4670 LENG = LENG - 1: Z = 2: Q = 1: GOSUB 4910 4680 P = 1 4690 GOSUB 5000 4700 RETURN 4710 ' 4720 '*ARROW7 4730 LENG = 13 4740 GOSUB 4860 4750 LENG = LENG - 1: Z = 1: Q = 1: GOSUB 4910 4760 LENG = LENG - 1: Z = 2: Q = 2: GOSUB 4910 4770 LENG = LENG - 1: Z = 3: Q = 3: GOSUB 4910 4780 LENG = LENG - 1: Z = 4: Q = 4: GOSUB 4910 4790 LENG = LENG - 1: Z = 1: Q = 1: GOSUB 4910 4800 X1 = X + (LENG + 4) * COS(DIR) 4810 Y1 = Y - (LENG + 4) * SIN(DIR) 4820 P = 1: GOSUB 5000 4830 P = -2: GOSUB 5000 4840 RETURN 4850 ' 4860 '*MARK 4870 X1 = X + LENG * COS(DIR) 4880 Y1 = Y - LENG * SIN(DIR) 4890 LINE (X, Y * YSCAL)-(X1, Y1 * YSCAL), 5 4900 RETURN 4910 '*MARK1 4920 X2 = X + LENG * COS(DIR) 4930 Y2 = Y - LENG * SIN(DIR) 4940 X3 = X2 + Z * COS(DIR + 1.57075) 4950 Y3 = Y2 - Z * SIN(DIR + 1.57075) 4960 X4 = X2 - Q * COS(DIR + 1.57075) 4970 Y4 = Y2 + Q * SIN(DIR + 1.57075) 4980 LINE (X3, Y3 * YSCAL)-(X4, Y4 * YSCAL), 5 4990 RETURN 5000 '*MARK2 5010 X = X + P * COS(DIR + 1.57075) 5020 Y = Y - P * SIN(DIR + 1.57075) 5030 X1 = X1 + P * COS(DIR + 1.57075) 5040 Y1 = Y1 - P * SIN(DIR + 1.57075) 5050 LINE (X, Y * YSCAL)-(X1, Y1 * YSCAL), 5 5060 RETURN 5070 '*FIN 5080 CLOSE 5090 LOCATE 23, 20: COLOR 2: PRINT "HIT SPACE KEY"; : COLOR 7 5100 I$ = INKEY$: IF I$ <> " " THEN GOTO 5100 5120 SCREEN 9: VIEW (0, 0)-(639, 349): CLS 5125 LOCATE 6, 15: PRINT ": Display other GEK data ------- G" 5130 LOCATE 8, 15: PRINT ": Display XBT data ------- X" 5135 LOCATE 10, 15: PRINT ": Display DBT data ------- D" 5140 LOCATE 12, 15: PRINT ": END ------- Z" 5150 LOCATE 20, 20: INPUT "Please key in G,X or Z "; YN$ 5160 SCREEN 9: CLS 5170 IF (YN$ = "G") + (YN$ = "g") THEN RETURN 350 5180 IF (YN$ = "X") + (YN$ = "x") THEN RETURN 130 5185 IF (YN$ = "D") + (YN$ = "d") THEN RETURN 130 5190 IF (YN$ = "Z") + (YN$ = "z") THEN CLS : END 5200 RETURN 5210 ' 5220 '*TANI 5230 LOCATE 1, 32: PRINT INPF$; 5240 LOCATE 1, 1: PRINT "120" 5250 LOCATE 1, 13: PRINT "125" 5260 LOCATE 1, 27: PRINT "130" 5270 LOCATE 1, 42: PRINT "135" 5280 LOCATE 1, 56: PRINT "140" 5290 LOCATE 1, 71: PRINT "145" 5300 ' 5310 LOCATE 5, 78: PRINT "35"; 5320 LOCATE 11, 78: PRINT "30"; 5330 LOCATE 18, 78: PRINT "25"; 5340 ' 5360 RETURN 5370 '10KK\=#10H ( Coordinate of Japan main island) 5380 DATA 125,0,126,1,126.25,3.25,126,6,125,6.5,124.25,8,123.75,10,123.25,10.5,124,12,125,14,124,14,123,14.5,122.5,15,122.25,16,122,17,121,17.25,120,18,119.5,18.5,118.75,17,119,16,121,14 5390 DATA 119,14,118.5,14.5,118.5,15,117.75,16,118.5,16.5,117.75,17.25,117.25,16.25,116,16.25,114.75,16.5,115,17,114.5,18,115,18.5,115,18.5,114,20,113,20.5,112.5,19.5,112.75,18,113.25,18,112,17.25,109.25,20,109.5,20.5,108,20,104.5,20,102,20.5,102.5,20 5400 DATA 104,19.5,102,19.25,102,18,101.5,19.5,101,18.5,101.5,17.5,100,18,99,20,99.25,20.25,101,20,101.5,20.5,101,22.5,100,22,98,23,97,23.75,97.5,24,96,25.5,96,26,95,27,93,27,92,26,92.5,25.5,91,25,90.5,24.5 5410 DATA 91,23.5,90.75,22.25,91.25,21.25,93,20.25,92,19.75,90,20,88,19,85,20,83,21,81,21,80,22,77,22,76,23,75,22,74,22,73,23 5420 DATA 73.25,24,72.75,24.75,71,24,70.5,23.75,68.5,24,68.25,23.5,68,24.25,67,24.25,67,24,65.25,23.5,65.5,22.5,65.25,22,66.5,21.5,68.5,21.5 5430 DATA 70,20,71,20,73,18,76,16,75.75,15.5,77,15,78,15,78.5,14.5,80,14.75,78.75,15.25,81,15,84,15,86,14.5,87,14,90,14,91.5,13.5,92,14,91.5,14.5,92,15,92.75,14.5,93.25,15,96.5,13.5,95.75,12,96.75,10.5 5440 DATA 100,8,100.5,7,100.5,6,100,5,100.5,4,103,3,104,2.75,104.25,3.25,103.5,3.5,103.75,4 5450 DATA 102,4.75,101.5,4.5,101.25,5.25,102.25,5,102.25,6.5,102,7,103.5,7.5,104.5,7.25,104.5,6.5,106,6,109,5,111,4,113,1,115,0,- 5460 ' 5470 '10KC8O)Eg10H ( Coordinate of Awajisima ) 5480 DATA 90,20.5,89.5,21.25,89.25,22,89.5,22.5,88.5,22.5,88.5,22.75,88,22.25,88.5,22,90,20.5,- 5490 ' 5500 '10K;M9q10H ( Coordinate of sikoku island ) 5510 DATA 88,24, 88.25,24.5, 87,26, 86.5,26, 85.5,27, 85,28.5, 84,27.5, 83,27, 82,26.75, 81,27, 80,27.5, 79.5,28, 79,29, 78,30, 77.75,31, 78,31.5, 78.5,31.25, 77.5,31.25, 76,31, 76.25,30.5, 75,30, 74.5,28.75, 75.25,28.5, 74.5,28, 74,27.25, 72.5,27.75 5520 DATA 72.5,27.5,76,26,76.5,24,77.25,23.25,78,23.5,78.5,24.5,80,24,81,24.25,82,23.5,81.5,22.5,82.25,22.5,83.5,21.5,84.5,22,85,21.5,86.75,22.75,87.75,22.5,87.5,23.5,88,24,- 5530 ' 5540 '10K:4EOEg10H ( Coordinate of Sado sima ) 5550 DATA 110,0,109,1,110,1,111,0,- 5560 ' 5570 '10K1#4t10H ( Coordinate of iki ) 5580 DATA 79,10,80,10,80,11,79,11,79,10,- 5590 ' 5600 '10K6e=#10H ( Coordinate of Kyusyu Island ) 5610 DATA 66,24.25, 66,25.5,66.5,27.5,68.5,26.5,69,26,70,26,70.5,26.5,70,27.5,69,28,69.25,28.5,71.5,28.5,71,29,71.5,29.5,71.5,30.5,72.5,30.5,70,32.5,72.5,33,69,36,68.5,36.5,69,37.25,69,38.25,68.5,38.5,68,40,67,39.25,66,40,66.75,40.25,64.25,41.75,65,40 5620 DATA 64,39,65,38,64,36.75,63.75,37,63,39,64,40.5,63,41,63,40.5,61.5,40.5,60.75,40.5,60.75,39.5,62,39.25,62,38,61,37,61.5,36.5,61.25,35.25,62,35.25,63.5,33,63.5,32.75,64,32.5,63,32.5,63,32,63.75,32.75,62.5,30,62.75,29.5,62,29,61,29,60.75,29.5 5630 DATA 61.25,30.25,60.5,30.75,61,31,62,30.75,62.5,31.5,61.5,32.25,61,32,61.25,31.5,61,31.25,60,31.25,59.5,30.5,59.5,30,58,29,57,27.75,59,28,58.5,27.25,59.5,26.75,59.75,26.75 5640 DATA 60,27.25,62.5,27,61,27,61,26.25,61.5,26,61.75,26.5,62.5,26.5,63,25,64,24.5,65.5,24.75,66,24.25,- 5650 ' 5660 '10K6e=#EgIt10H ( Coordinate of parts of Kyusyu ) 5670 DATA 58,25,58.75,25.5,58,25.75,57.75,25.5,58,25,- 5680 DATA 55,29,54,30,55,30,54,31,54,30,- 5690 DATA 52,31,53,32,52,32,52,31,- 5700 DATA 59,30,59,31,58,30,59,32,60,31,- 5710 DATA 60,33,61,33,61,34,60,35,60,33,- 5720 DATA 59,37,58,38,- 5730 DATA 66,43,66,45,65,46,65,45,66,43,- 5740 DATA 63,45,64,46,63,47,62,46,63,45,- 5750 DATA 58,57,56,60,55,58,58,57,- 5760 DATA 54,61,54,62,53,61,54,61,- 5770 DATA 51,64,52,64,- 5780 DATA 50,67,50,68,49,68,48,69,47,68,48,68,50,67,- 5790 DATA 48,69,47,69,47,71,46,72,46,71,47,70,- 5800 DATA 32,79,32,80,31,80,32,79,- 5810 DATA 26,80,25,82,22,82,23,83,26,80,- 5820 DATA 56,20,56.5,19.75,57,20.5,56,22,55.75,23,55,23.5,55,22,55.25,21.25,56,20,- 5830 ' 5840 '10K0KF&EgIt10H ( Coordinate of Izu) 5850 DATA 116,19,117,20,116,20,116,19,- 5860 DATA 118,29,118.25,29,119.25,29.5,119,30,118,29,- 5870 ' 5880 '10KD+A/H>Eg10H ( Coordinate of Korea ) 5890 DATA 52,0,56,4,56,5,57,8,56,11,56,12,57,12,57,13,56,15,56,16,54,18,53,17,51,17,49,19,47,19,48,20,48,18,47,18,45,19,46,20,45,19,44,19,44,20,43,20,43,19,44,19,44,20 5900 DATA 45,20,44,21,43,21,43,20,42,20,42,21,40,21,39,22,39,21,38,20,39,20,39,19,38,19,38,18,39,18,38,17,38,16,39,15,39,14,40,13,40,12,41,11,40,12,39,11,39,8,37,8,37,7,38,6,40,6,41,7,41,6,40,5,40,3,38,2,38,1,- 5910 ' 5920 DATA 41,0,40,1,- 5930 ' 5940 DATA 41,3,40,2,40,1,35,1,35,0,34,0,34,1,32,2,32,1,31,1,30,0,- 5950 ' 5960 DATA 52,18,52,20,51,19,52,18,- 5970 ' 5980 DATA 37,21,38,21,38,22,37,22,37,21,- 5990 ' 6000 DATA 36,19,37,19,37,20,36,19,- 6010 ' 6020 '10KCf9qBgN&10H ( Coordinate of China) 6030 DATA 0,3,1,3,2,2,4,1,6,2,9,3,11,3,14,4,14,6,15,6,14,7,13,7,13,6,11,6,10,7,9,7,7,8,5,8,6,9,5,10,5,9,4,10,4,11,2,12,2,10,0,11,1,12,0,14,0,20,2,23,3,25,4,25,3,26,4,27,4,28,6,30,5,32,9,34,8,35,11,36,11,37 6040 DATA 12,38,11,38,8,37,7,37,3,35,2,36,0,36,4,36,4,37,7,38,10,40,11,42,11,43,9,43,5,46,2,46,1,47,2,47,2,46,3,46,4,47,7,46,10,48,13,49,9,51,12,51,11,52,12,53,9,52,9,53,10,54,10,55,9,56,10,58,8,59,7,58,4,62,4,64,3,64,0,68,- 6050 ' 6060 DATA 0,40,1,39,1,40,2,39,2,42,3,41,4,41,1,43,0,42,- 6070 ' 6080 DATA 8,37,11,39,10,39,8,38,8,37,- 6090 ' 6100 DATA 12,47,14,48,12,48,12,47,- 6110 ' 6120 '10K$=$NB>10H ( Coordinate of other part of Japan ) 6130 DATA 5,96,6,92,7,91,9,88,9,86,10,83,11,81,11,79,12,78,11,77,10,77,9,76,8,77,6,78,5,80,1,86,1,88,0,90,1,90,2,93,4,94,4,96,@ 6140 ' 6150 '10KEg!JE@!K10H ( coordinate of island ) 6160 DATA 28,0,28,1,65,3,37,5,78,12,32,20,49,20,50,20,46,20,47,20,36,22,39,23,40,23,41,23,44,24,115,23,117,23,118,25,60,43,61,45,60,48,113,65,113,68,128,79,@ 6169 '*SAMPLE 6170 DATA .2,.5,1,1.5,2,3,3.5 6180 '*XBTERR 6190 IF ERR = 53 THEN RESUME 540 6200 '*ERRTRAP 6210 IF ERR = 53 THEN RESUME 420 6220 IF ERR = 70 THEN COUNT = 0: RESUME 180 51101 CLS : CLS