home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Antennas
/
Antennas_CD-ROM_Walnut_Creek_September_1996.iso
/
mininec
/
amiga
/
mnpost.bas
< prev
next >
Wrap
BASIC Source File
|
1996-06-30
|
23KB
|
519 lines
REM **** MININEC POST PROCESSOR **** NOSC CODE 822 JCL 4-88
' ==== MOD TO INCREASE DIM TO 400 FOR 361 AZ POINTS ==== RWA 13 OCT 89
DIM EX(400, 4), EY(400, 4), EZ(300, 4), EP(300), N(100), P(400), X(400, 3), Z(1600, 2)
'
10 CLS
COLOR 2, 0
PRINT " ++++ MININEC POST-PROCESSOR ++++"
PRINT : INPUT "MININEC OUTPUT DATA FILE {\NEEDS\DATA\}(name.OUT) "; F$
T$ = RIGHT$(F$, 4)
IF LEFT$(T$, 1) <> "." THEN F$ = F$ + ".OUT"
IF LEFT$(F$, 1) <> "\" THEN F$ = "\NEEDS\DATA\" + F$
OPEN F$ FOR INPUT AS #1
INPUT #1, I, P0, G$
IF G$ = "Z" THEN GOSUB 15
IF G$ = "C" THEN GOSUB 19
IF (G$ = "D" OR G$ = "V") THEN GOSUB 190
IF (G$ = "E" OR G$ = "H") THEN GOSUB 121
PRINT : INPUT "CONTINUE (Y/N) "; G$
IF LEFT$(G$, 1) = "Y" THEN GOTO 10
GOTO 349
'
REM --- PROCESS IMPEDANCE DATA -----
15 J = 0
WHILE NOT EOF(1)
J = J + 1
INPUT #1, X(J, 1), X(J, 2), X(J, 3)
WEND
CLOSE #1
REM ---- DISPLAY DATA
ZNORM = 50
GOSUB 16
REM ---- CHANGE NORMALIZATION
Z$ = "Y"
WHILE LEFT$(Z$, 1) = "Y"
PRINT : INPUT "CHANGE Zo (Y/N) "; Z$
IF Z$ = "Y" THEN
PRINT
INPUT "NEW Zo = "; ZNORM
GOSUB 16
END IF
WEND
REM --- SAVE PLOT DATA
PRINT : INPUT "SAVE FOR ANMATCH OR GRAPS (A/G) "; S$
S$ = LEFT$(S$, 1)
PRINT : INPUT "PLOT DATA FILE {\NEEDS\DATA\}(name.DAT) "; F$
T$ = RIGHT$(F$, 4)
IF LEFT$(T$, 1) <> "." THEN F$ = F$ + ".DAT"
IF LEFT$(F$, 1) <> "\" THEN F$ = "\NEEDS\DATA\" + F$
OPEN F$ FOR OUTPUT AS #1
IF S$ = "A" THEN
WRITE #1, J
FOR K = 1 TO J
WRITE #1, X(K, 1), X(K, 2) / ZNORM, X(K, 3) / ZNORM
NEXT K
ELSE
PRINT #1, "GRAPS SMITH"
FOR K = 1 TO J
WRITE #1, X(K, 2) / ZNORM, X(K, 3) / ZNORM
NEXT K
END IF
CLOSE #1
RETURN
REM --- DISPLAY IMPEDANCE DATA SUBROUTINE
16 K1 = 1: K2 = 0
PRINT : PRINT "FREQUENCY (MHZ)", "R (OHMS)", "X (OHMS)", "R/"; ZNORM, "X/"; ZNORM
IF K2 + 10 > J THEN K2 = J ELSE K2 = K2 + 10
FOR K = K1 TO K2
PRINT X(K, 1), X(K, 2), X(K, 3), X(K, 2) / ZNORM, X(K, 3) / ZNORM
NEXT K
K1 = K2 + 1
IF K1 > J THEN K1 = 1: K2 = 0
PRINT : INPUT "DISPLAY MORE DATA (Y/N) "; M$
IF LEFT$(M$, 1) = "Y" THEN 16
RETURN
'
REM --- PROCESS CURRENT DATA ----
19 J = 0
K = 0
FOR L = 1 TO I
J = J + 1
EX(L, 1) = J
24 K = K + 1
INPUT #1, EY(J, 1), EY(J, 2), EY(J, 3), EY(J, 4)
IF EY(J, 1) + EY(J, 2) + EY(J, 3) + EY(J, 4) = 4 THEN 29
J = J + 1
GOTO 24
29 N(L) = K - 1
J = J - 1
K = 0
EX(L, 2) = J
NEXT L
CLOSE #1
REM --- DISPLAY DATA ----
P = 0
K = 1
38 L = 1
N1 = 1
40 GOSUB 110
PRINT : INPUT "DISPLAY ANOTHER WIRE (Y/N) "; C$
IF LEFT$(C$, 1) = "N" THEN 46
L = L + 1
IF L > I THEN 38
GOTO 40
46 PRINT
PRINT " ++++ SELECT PLOT DATA ++++"
PRINT : PRINT "ORDINATE DATA:"
P = P + 1
W = 1
IF I = 1 THEN 55
52 PRINT : PRINT "NUMBER OF WIRES = "; I
PRINT : INPUT "USE DATA FROM WHICH WIRE "; W
IF (W < 1 OR W > I) THEN 52
55 P(P) = N(W)
56 PRINT : PRINT "DATA TYPE: 1 - REAL"
PRINT " 2 - IMAGINARY"
PRINT " 3 - MAGNITUDE"
PRINT " 4 - PHASE"
INPUT "ENTER CHOICE "; C
IF (C < 0 OR C > 4) THEN 56
62 PRINT : PRINT "ABSCISSA DATA:"
PRINT : PRINT " 1 - PULSE POSITION ON WIRE"
PRINT " 2 - DISTANCE (m) ALONG WIRE"
INPUT "ENTER CHOICE "; J
IF (J < 1 OR J > 2) THEN 62
ON J GOSUB 80, 91
PRINT : PRINT "ADD MORE DATA FROM FILE "; F$; " (Y/N)";
INPUT C$
IF LEFT$(C$, 1) = "N" THEN 75
Z(K, 1) = 1.234
Z(K, 2) = -1.234
K = K + 1
GOTO 38
75 Z(K, 1) = -1.234
Z(K, 2) = -1.234
GOSUB 276
RETURN
REM ---- ABSCISSA TYPE (J=1) ----
80 N1 = EX(W, 1)
N2 = EX(W, 2)
N3 = 0
FOR L = N1 TO N2
Z(K, 1) = N3
Z(K, 2) = EY(L, C)
K = K + 1
N3 = N3 + 1
NEXT L
RETURN
REM ---- ABSCISSA TYPE (J=2) ----
91 N1 = EX(W, 1)
N2 = EX(W, 2)
93 PRINT : PRINT "COORDINATES OF WIRE "; W
INPUT " END1 (X,Y,Z) "; X1, Y1, Z1
INPUT " END2 (X,Y,Z) "; X2, Y2, Z2
S = (X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1) + (Z2 - Z1) * (Z2 - Z1)
IF S > 0 THEN 100
PRINT "WIRE LENGTH = 0"
GOTO 93
100 S = SQR(S) / (N(W) - 1)
X = 0
FOR L = N1 TO N2
Z(K, 1) = X
Z(K, 2) = EY(L, C)
X = X + S
K = K + 1
NEXT L
RETURN
REM ---- DISPLAY CURRENTS ----
110 PRINT : PRINT "TOTAL POWER RADIATED = "; P0; " WATTS"
PRINT : PRINT "WIRE NUMBER "; L; ":"
PRINT "REAL", "IMAGINARY", "MAGNITUDE", "PHASE"
PRINT " NO. ", "(AMPS)", "(AMPS)", "(DEGREES)"
N1 = EX(L, 1)
N2 = EX(L, 2)
FOR J = N1 TO N2
PRINT USING "#.####^^^^ "; EY(J, 1), EY(J, 2), EY(J, 3); : PRINT USING "####.##"; EY(J, 4)
NEXT J
RETURN
'
REM --- PROCESS NEAR FIELD DATA ----
'
REM --- ACQUIRE DATA FROM UNIT 1
121 FOR L = 1 TO I
INPUT #1, EX(L, 1), EX(L, 2), EX(L, 3), EX(L, 4)
INPUT #1, EY(L, 1), EY(L, 2), EY(L, 3), EY(L, 4)
INPUT #1, EZ(L, 1), EZ(L, 2), EZ(L, 3), EZ(L, 4)
INPUT #1, EP(L), P(L)
INPUT #1, X(L, 1), X(L, 2), X(L, 3)
NEXT L
CLOSE #1
POWER = P(I)
REM --- DISPLAY DATA ----
L = 1
131 GOSUB 177
PRINT : INPUT "DISPLAY ANOTHER FIELD POINT (Y/N) "; C$
IF LEFT$(C$, 1) = "N" THEN GOTO 132
L = L + 1
IF L > I THEN L = 1
GOTO 131
REM --- CONTOUR PLOTS ?
132 PRINT : INPUT "PREPARE DATA FOR CONTOUR PLOT (Y/N) "; CON$
IF LEFT$(CON$, 1) = "N" THEN GOTO 137
REM --- SELECT COMPONENT TO PLOT
133 PRINT : PRINT "ORDINATE DATA: X = X-COMPONENT"
PRINT " Y = Y-COMPONENT"
PRINT " Z = Z-COMPONENT"
PRINT " P = MAXIMUM OR PEAK VALUE"
INPUT "ENTER CHOICE OF FIELD COMPONENT (X/Y/Z/P) "; D$
D$ = LEFT$(D$, 1)
IF D$ = "P" THEN GOTO 135
IF D$ < "X" THEN
BEEP
GOTO 133
END IF
134 PRINT : PRINT "DATA TYPE:"
PRINT " 1 - REAL"
PRINT " 2 - IMAGINARY"
PRINT " 3 - MAGNITUDE"
PRINT " 4 - PHASE"
INPUT "CHOICE:"; J
IF J < 1 OR J > 4 THEN
BEEP
GOTO 134
END IF
REM --- FIND PLANE OF CONTOUR
135 X1 = X(1, 1): Y1 = X(1, 2): Z1 = X(1, 3)
X2 = X(I, 1): Y2 = X(I, 2): Z2 = X(I, 3)
PLANE$ = "NONE"
IF X2 - X1 = 0 THEN
PLANE$ = "YZ"
K1 = 2: K2 = 3
END IF
IF Y2 - Y1 = 0 THEN
PLANE$ = "XZ"
K1 = 1: K2 = 3
END IF
IF Z2 - Z1 = 0 THEN
PLANE$ = "XY"
K1 = 1: K2 = 2
END IF
IF PLANE$ = "NONE" THEN
BEEP
PRINT : PRINT "NOT PRINCIPLE PLANE !"
PRINT "USE CONVENTIONAL PLOT."
L = 1
GOTO 131
END IF
REM --- FIND MIN - MAX VALUE
LOW = 9.999999E+35: HI = -9.999999E+35
IF D$ = "P" THEN
FOR L = 1 TO I
IF EP(L) < LOW THEN LOW = EP(L)
IF EP(L) > HI THEN HI = EP(L)
NEXT L
END IF
IF D$ = "X" THEN
FOR L = 1 TO I
IF EX(L, J) < LOW THEN LOW = EX(L, J)
IF EX(L, J) > HI THEN HI = EX(L, J)
NEXT L
END IF
IF D$ = "Y" THEN
FOR L = 1 TO I
IF EY(L, J) < LOW THEN LOW = EY(L, J)
IF EY(L, J) > HI THEN HI = EY(L, J)
NEXT L
END IF
IF D$ = "Z" THEN
FOR L = 1 TO I
IF EZ(L, J) < LOW THEN LOW = EZ(L, J)
IF EZ(L, J) > HI THEN HI = EZ(L, J)
NEXT L
END IF
REM ---- DESIGNATE FILE FOR CONTOUR PLOT
PRINT : INPUT "PLOT DATA FILE {\NEEDS\DATA\}(name.DAT) "; F$
T$ = RIGHT$(F$, 4)
IF LEFT$(T$, 1) <> "." THEN F$ = F$ + ".DAT"
IF LEFT$(F$, 1) <> "\" THEN F$ = "\NEEDS\DATA\" + F$
REM ---- SAVE CONTOUR PLOT DATA
136 OPEN F$ FOR OUTPUT AS #1
PRINT #1, "GRAPS CONTOUR"
IF PLANE$ = "XY" THEN WRITE #1, X1, X2, Y1, Y2, LOW, HI
IF PLANE$ = "XZ" THEN WRITE #1, X1, X2, Z1, Z2, LOW, HI
IF PLANE$ = "YZ" THEN WRITE #1, Y1, Y2, Z1, Z2, LOW, HI
FOR L = 1 TO I
IF D$ = "P" THEN WRITE #1, X(L, K1), X(L, K2), EP(L)
IF D$ = "X" THEN WRITE #1, X(L, K1), X(L, K2), EX(L, J)
IF D$ = "Y" THEN WRITE #1, X(L, K1), X(L, K2), EY(L, J)
IF D$ = "Z" THEN WRITE #1, X(L, K1), X(L, K2), EZ(L, J)
NEXT L
PRINT #1, "-1.234,-1.234,-1.234"
PRINT #1, "1,1"
PRINT #1, "POWER = "; POWER
CLOSE #1
RETURN
REM --- GRAPS STANDARD PLOTS
137 L1 = 1: L2 = I
138 PRINT : PRINT " ++++ SELECT PLOT DATA ++++"
PRINT : INPUT "ABSCISSA DATA (X/Y/Z) "; A$
A$ = LEFT$(A$, 1)
M = 0
IF A$ = "X" THEN M = 1
IF A$ = "Y" THEN M = 2
IF A$ = "Z" THEN M = 3
IF M = 0 THEN GOTO 138
N = 0
147 PRINT : PRINT "ORDINATE DATA: X = X-COMPONENT"
PRINT " Y = Y-COMPONENT"
PRINT " Z = Z-COMPONENT"
PRINT " P = MAXIMUM OR PEAK VALUE"
INPUT "ENTER CHOICE OF FIELD COMPONENT (X/Y/Z/P) "; D$
D$ = LEFT$(D$, 1)
IF D$ = "P" THEN GOTO 164
PRINT "DATA TYPE:"
PRINT " 1 - REAL"
PRINT " 2 - IMAGINARY"
PRINT " 3 - MAGNITUDE"
PRINT " 4 - PHASE"
INPUT "CHOICE:"; J
IF D$ = "X" THEN GOTO 165
IF D$ = "Y" THEN GOTO 166
IF D$ = "Z" THEN GOTO 167
GOTO 147
164 FOR L = L1 TO L2: N = N + 1: Z(L, 1) = X(N, M): Z(L, 2) = EP(N): NEXT L: GOTO 168
165 FOR L = L1 TO L2: N = N + 1: Z(L, 1) = X(N, M): Z(L, 2) = EX(N, J): NEXT L: GOTO 168
166 FOR L = L1 TO L2: N = N + 1: Z(L, 1) = X(N, M): Z(L, 2) = EY(N, J): NEXT L: GOTO 168
167 FOR L = L1 TO L2: N = N + 1: Z(L, 1) = X(N, M): Z(L, 2) = EZ(N, J): NEXT L
168 L2 = L2 + 1
PRINT : PRINT "ADD MORE DATA FROM FILE '"; F$; "' (Y/N) ";
INPUT C$
IF LEFT$(C$, 1) = "N" THEN GOTO 173
Z(L2, 1) = 1.234: Z(L2, 2) = -1.234: L1 = L2 + 1: L2 = L2 + I: GOTO 138
173 Z(L2, 1) = -1.234: Z(L2, 2) = -1.234
GOSUB 276
RETURN
REM --- DISPLAY NEAR FIELD DATA ----
177 PRINT : PRINT " *** NEAR FIELD DATA FROM FILE '"; F$; "' ***"
PRINT : PRINT " FIELD POINT: X = "; X(L, 1); ", Y = "; X(L, 2); ", Z = "; X(L, 3)
PRINT "VECTOR", "REAL", "IMAGINARY", "MAGNITUDE", "PHASE"
IF G$ = "E" THEN PRINT "COMPONENT", "(V/M)", "(V/M)", "(V/M)", "(DEG)"
IF G$ = "H" THEN PRINT "COMPONENT", "(AMPS/M)", "(AMPS/M)", "(AMPS/M)", "(DEG)"
PRINT " X "; : PRINT USING "#.####^^^^ "; EX(L, 1), EX(L, 2), EX(L, 3); : PRINT USING "####.##"; EX(L, 4)
PRINT " Y "; : PRINT USING "#.####^^^^ "; EY(L, 1), EY(L, 2), EY(L, 3); : PRINT USING "####.##"; EY(L, 4)
PRINT " Z "; : PRINT USING "#.####^^^^ "; EZ(L, 1), EZ(L, 2), EZ(L, 3); : PRINT USING "####.##"; EZ(L, 4)
IF G$ = "E" THEN PRINT "MAXIMUM OR PEAK FIELD = "; EP(L); " V/M"
IF G$ = "H" THEN PRINT "MAXIMUM OR PEAK FIELD = "; EP(L); " AMPS/M"
PRINT "RADIATED POWER = "; P(L); " WATTS"
RETURN
'
REM --- PROCESS PATTERN DATA ---
190 IF G$ = "V" THEN GOTO 197
REM --- INPUT DATA IN DB
FOR L = 1 TO I
INPUT #1, X(L, 1), X(L, 2), EX(L, 1), EX(L, 2), EX(L, 3)
NEXT L
REM --- INPUT DATA IN V/M
GOTO 201
197 INPUT #1, R0
FOR L = 1 TO I
INPUT #1, X(L, 1), X(L, 2), EX(L, 1), EX(L, 2), EY(L, 1), EY(L, 2)
NEXT L
201 CLOSE #1
REM --- DISPLAY DATA ----
203 J = 1: K = 10: IF K > I THEN K = I
204 IF G$ = "D" THEN GOSUB 232
IF G$ = "V" THEN GOSUB 238
PRINT : INPUT "DISPLAY MORE PATTERN DATA (Y/N) "; C$
IF LEFT$(C$, 1) = "N" THEN GOTO 212
IF K = I THEN GOTO 203
J = K: K = K + 10: IF J > I THEN J = K - 9
IF K > I THEN K = I
GOTO 204
212 L1 = 1: L2 = I
213 PRINT : PRINT " ++++ SELECT PLOT DATA ++++"
PRINT : INPUT "ABSCISSA DATA: (Theta/Phi) "; A$
A$ = LEFT$(A$, 1)
M = 0
IF A$ = "T" THEN M = 1
IF A$ = "P" THEN M = 2
N = 0
IF M = 0 THEN GOTO 213
IF G$ = "D" THEN GOSUB 252
IF G$ = "V" THEN GOSUB 262
L2 = L2 + 1
PRINT : PRINT "ADD MORE DATA FROM FILE '"; F$; "' (Y/N) ";
INPUT C$
IF LEFT$(C$, 1) = "N" THEN GOTO 228
Z(L2, 1) = 1.234: Z(L2, 2) = -1.234: L1 = L2 + 1: L2 = L2 + I: GOTO 213
228 Z(L2, 1) = -1.234: Z(L2, 2) = -1.234
GOSUB 276
RETURN
REM --- DISPLAY PATTERN DATA (DBI) ---
232 PRINT : PRINT " RADIATION PATTERN DATA"
PRINT : PRINT "ZENITH", "AZIMUTH", "VERTICAL", "HORIZONTAL", "TOTAL"
PRINT "(THETA)", "(PHI)", "PATTERN (dB)", "PATTERN (dB)", "PATTERN (dB)"
FOR L = J TO K: PRINT X(L, 1), X(L, 2), EX(L, 1), EX(L, 2), EX(L, 3): NEXT L
RETURN
REM ---- DISPLAY PATTERN DATA (V/M) ---
238 PRINT : PRINT " RADIATION PATTERN DATA"
PRINT : PRINT "RADIAL DISTANCE = "; R0; " METERS"
PRINT "POWER LEVEL = "; P0; " WATTS"
PRINT : PRINT " ZENITH AZIMUTH", " E(THETA) ", " E(PHI)"
PRINT "(THETA) (PHI)", "MAG(V/M) PHASE(DEG)", "MAG(V/M) PHASE(DEG)"
FOR L = J TO K
PRINT USING "###.## "; X(L, 1), X(L, 2);
PRINT USING " ##.###^^^^"; EX(L, 1);
PRINT USING " ####.## "; EX(L, 2);
PRINT USING " ##.###^^^^"; EY(L, 1);
PRINT USING " ####.##"; EY(L, 2)
NEXT L
RETURN
REM --- SAVE PATTERN DATA (BDI) ---
252 PRINT : INPUT "ORDINATE DATA (Vertical/Horizontal/Total) "; D$
D$ = LEFT$(D$, 1)
J = 0
IF D$ = "V" THEN J = 1
IF D$ = "H" THEN J = 2
IF D$ = "T" THEN J = 3
IF J = 0 THEN GOTO 260
FOR L = L1 TO L2: N = N + 1: Z(L, 1) = X(N, M): Z(L, 2) = EX(N, J): NEXT L
260 RETURN
REM --- SAVE PATTERN DATA (V/M) ---
262 PRINT : PRINT "ORDINATE DATA: T = E-THETA COMPONENT"
PRINT " P = E-PHI COMPONENT"
INPUT "ENTER CHOICE OF COMPONENT (ET/EP) "; D$
D$ = LEFT$(D$, 1)
PRINT : PRINT "DATA TYPE: 1 - MAGINTUDE"
PRINT " 2 - PHASE"
INPUT "CHOICE:"; J
IF D$ = "T" GOTO 272
IF D$ = "P" GOTO 273
GOTO 274
272 FOR L = L1 TO L2: N = N + 1: Z(L, 1) = X(N, M): Z(L, 2) = EX(N, J): NEXT L: GOTO 274
273 FOR L = L1 TO L2: N = N + 1: Z(L, 1) = X(N, M): Z(L, 2) = EY(N, J): NEXT L
274 RETURN
REM ---FIND MAX & MIN ---
276 PRINT : PRINT "PLOT FORMAT: 1 - ONE ORDINATE SCALE"
PRINT " 2 - TWO ORDINATE SCALES"
PRINT " 3 - POLAR "
INPUT "ENTER CHOICE "; C: PRINT
IF (C < 1 OR C > 3) THEN GOTO 276
IF C = 2 THEN PRINT "--- TWO CURVES IS ASSUMED ---"
L1 = 1: L2 = I
IF G$ = "C" THEN 300
XL = 9.999999E+35: XH = -9.999999E+35
285 YL = 9.999999E+35: YH = -9.999999E+35
286 FOR L = L1 TO L2
IF Z(L, 1) < XL THEN XL = Z(L, 1)
IF Z(L, 1) > XH THEN XH = Z(L, 1)
IF Z(L, 2) < YL THEN YL = Z(L, 2)
IF Z(L, 2) > YH THEN YH = Z(L, 2)
NEXT L
L2 = L2 + 1
IF Z(L2, 1) = -1.234 THEN GOTO 321
IF C <> 2 THEN GOTO 298
Y1 = YL: Y2 = YH
L1 = L2 + 1: L2 = L2 + I
GOTO 285
298 L1 = L2 + 1: L2 = L2 + I: GOTO 286
REM --- CURRENTS MAX & MIN ---
300 IF C <> 2 THEN 304
IF P = 2 THEN 304
PRINT : PRINT "BUT, THERE ARE "; P; " CURVES"
GOTO 276
304 XL = 9.999999E+35: XH = -9.999999E+35
YL = 9.999999E+35: YH = -9.999999E+35
FOR J = 1 TO P
L2 = L1 + P(J) - 1
FOR L = L1 TO L2
IF Z(L, 1) < XL THEN XL = Z(L, 1)
IF Z(L, 1) > XH THEN XH = Z(L, 1)
IF Z(L, 2) < YL THEN YL = Z(L, 2)
IF Z(L, 2) > YH THEN YH = Z(L, 2)
NEXT L
IF J = 2 THEN 318
IF C <> 2 THEN 318
Y1 = YL: Y2 = YH
YL = 9.999999E+35: YH = -9.999999E+35
318 L1 = L2 + 2
NEXT J
L2 = K
321 PRINT : PRINT " ", "MINIMUM", "MAXIMUM"
PRINT "ABSCISSA", XL, XH
IF C = 2 THEN PRINT "ORDINATE", Y1, Y2, " (LEFT SIDE)"
PRINT "ORDINATE", YL, YH
IF C = 3 THEN GOTO 337
PRINT : INPUT "CHANGE ABSCISSA RANGE (Y/N) "; C$
IF LEFT$(C$, 1) = "N" THEN GOTO 330
INPUT "NEW LOWER LIMIT = "; XL
INPUT "NEW UPPER LIMIT = "; XH
330 PRINT : INPUT "CHANGE ORDINATE RANGE (Y/N) "; C$
IF LEFT$(C$, 1) = "N" THEN GOTO 337
IF C <> 2 THEN GOTO 335
INPUT "NEW LOWER LIMIT (LEFT SIDE) = "; Y1
INPUT "NEW UPPER LIMIT (LEFT SIDE) = "; Y2
335 INPUT "NEW LOWER LIMIT = "; YL
INPUT "NEW UPPER LIMIT = "; YH
337 PRINT : INPUT "PLOT DATA FILE {\NEEDS\DATA\}(name.DAT) "; F$
T$ = RIGHT$(F$, 4)
IF LEFT$(T$, 1) <> "." THEN F$ = F$ + ".DAT"
IF LEFT$(F$, 1) <> "\" THEN F$ = "\NEEDS\DATA\" + F$
341 OPEN F$ FOR OUTPUT AS #1
IF C = 1 THEN
PRINT #1, "GRAPS LINEAR"
PRINT #1, XL; ","; XH; ","; YL; ","; YH
END IF
IF C = 2 THEN
PRINT #1, "GRAPS BILINEAR"
PRINT #1, XL; ","; XH; ","; Y1; ","; Y2; ","; YL; ","; YH
END IF
FOR L = 1 TO L2
PRINT #1, Z(L, 1); ","; Z(L, 2)
NEXT L
CLOSE #1
RETURN
349 SYSTEM
END