Listing of file='SLD.FVAL' on disk='vmedia/701-2721C.wvd.zip'
# Sector 705, program filename = 'SLD.FVAL'
0010 REM % "SLD.FVAL"
0190 DIM C$3,E$1,M$24,B$2
: DIM S$64,S9$1,S4$3
: DIM F$20,T$1,O$28,T$(3)1,I$(3)64,L(3)
: X=2
: Y=15
: F$=STR(G8$(),2,20)
: T$=STR(G8$(),22,1)
: L=VAL(STR(G8$(),23,1))
: O=VAL(G8$(24))
: O$=STR(G8$(),25,28)
: T$()=STR(G8$(),245,3)
: I$()=STR(G8$(),53,192)
: FOR I=1TO 3
: L(I)=VAL(STR(G8$(),247+I,1))
: NEXT I
: IF T$()=" "THEN T$()="CCC"
0340 ON OGOTO 360,360,400,400,400,400,450
0360 N=3
: C$="OR"
: GOTO 490
0400 N=1
: C$=" "
: I$(2),I$(3)=" "
: GOTO 490
0450 N=2
: C$="AND"
: I$(3)=" "
0490 IF T$="A"THEN M$="upper case alpha-numeric"
: IF T$="S"THEN M$="numeric"
: IF T$="U"THEN M$="unsigned numeric"
: IF T$="C"THEN M$="alpha-numeric"
: IF T$="S"OR T$="U"THEN B$="A"
: ELSE B$="AS"
: PRINT AT(0,39,40);"Condition Line Display";AT(X+6,4);F$;" ";O$;
: P=LEN(F$)+LEN(O$)+8
: IF P+L>79THEN P=P-(P+L-79)
: IF P<5THEN P=5
0600 S=X+4
: FOR I=1TO N
: PRINT AT(X-1+S+I*3,0);
: IF T$(I)="V"THEN PRINT "(variable)";
: ELSE IF T$(I)="F"THEN PRINT "(field)";
: PRINT AT(X-1+S+I*3,P);HEX(020402040E0202020E);STR(I$(I),1,MAX(L,LEN(I$(I)
)));
: IF I<NTHEN PRINT AT(X+7+I*3,P-6);HEX(020402000E0F);C$;
: NEXT I
: PRINT HEX(020402000F);
: GOSUB 2020
: R=1
0740 GOSUB '123(I$(R),L,X-1+S+R*3,P,2424,B$,HEX(820D7E7FF0020311))
: PRINT AT(21,0,39);AT(22,0,39);AT(23,0,39);
: IF S9$<>HEX(11)THEN 820
: IF E$="T"THEN GOSUB 2020
: ELSE GOSUB 2100
: GOTO 740
0820 ON S9$GOTO ,1170,840
: GOTO 1220
0840 S$=" "
: PRINT AT(X+Y+2,0,3*80);AT(22,0,35);AT(23,0,35);AT(22,53);"Cancel operatio
n";
0860 IF N>1THEN 910
: C=5+LEN(O$)+LEN(F$)-16
0880 PRINT AT(S+4,0,80);AT(S+4,C);"Enter field name:";
: GOSUB '123(S$,20,S+4,C+19,2424,"S",HEX(820DF0))
: GOTO 930
0910 PRINT AT(X-1+S+R*3,0,10);AT(X-1+S+R*3,P,79-P);"Enter field name:";
: GOSUB '123(S$,20,X-1+S+R*3,P+18,2424,"S",HEX(820DF0))
0930 IF S9$<>HEX(F0)THEN 990
: PRINT AT(S2,0,80);
: IF T$(R)="V"THEN PRINT "(variable)";
: ELSE IF T$(R)="F"THEN PRINT "(field)";
: GOSUB 2020
: GOTO 740
0990 $TRAN(S$,HEX(2080))R
: MAT SEARCHL3$(),=S$TO S8$STEP L6
: $TRAN(STR(S$,1,LEN(S$)),HEX(8020))R
: IF VAL(S8$,2)<>0THEN 1070
: PRINT AT(22,0,39);HEX(070E);"Field name ";HEX(22);S$;HEX(22);AT(23,0);"do
es not exist";HEX(0F);
: IF N=1THEN 880
: ELSE GOTO 910
1070 IF STR(L3$(),VAL(S8$,2)+L4,1)=T$THEN 1110
: PRINT AT(22,0);HEX(070E);"The type of the field name";AT(23,0);"entered m
ust be ";M$;HEX(0F);
: GOTO 860
1110 T$(R)="F"
: PRINT AT(S2,0,80);"(field) ";AT(S2,P);HEX(020402040E);STR(S$,1,MAX(L,LE
N(S$)));HEX(020402000E0F);
: I$(R)=S$&HEX(00)
: GOSUB 2020
: GOTO 1590
1170 I$(R)="?"
: T$(R)="V"
: PRINT AT(S2,0);"(variable)";AT(S2,P,79-P);HEX(020402040E);STR(I$(R),1,L);
HEX(020402000E0F);
: GOTO 1590
1220 IF T$(R)="V"AND S$<>I$(R)THEN 1230
: ELSE GOTO 1270
1230 PRINT AT(S2,0,10);
: T$(R)="C"
: GOTO 1330
1270 IF T$(R)="F"AND S$<>I$(R)THEN 1280
: ELSE GOTO 1320
1280 IF S1<64THEN STR(S$,S1+1)=" "
: PRINT AT(S2,0,10);AT(S2,P,79-P);HEX(020402040E);STR(S$,1,L);HEX(020402000
E0F);
: T$(R)="C"
: GOTO 1330
1320 IF T$(R)<>"V"AND T$(R)<>"F"THEN T$(R)="C"
1330 I$(R)=S$
: IF S9$<>HEX(F0)THEN 1390
: PRINT AT(X+4,0,12*80);AT(20,40,39);AT(21,40,39);
: LOAD T"SLD.RLOP"
1390 IF T$(R)<>"C"OR T$="C"THEN 1590
: IF T$="S"OR T$="U"THEN 1470
: FOR I=1TO L
: IF STR(S$,I,1)>HEX(60)AND STR(S$,I,1)<>HEX(80)AND STR(S$,I,1)<>HEX(82)AND
STR(S$,I,1)<>HEX(81)THEN 1990
: NEXT I
: GOTO 1590
1470 IF S$=" "THEN 1590
: CONVERT S$TO J
: ERRORGOTO 1990
1500 I$(R)=" "
: FOR I=1TO L
: IF STR(S$,I,1)<>" "THEN I$(R)=I$(R)&STR(S$,I,1)
: NEXT I
: I$(R)=STR(I$(R),2)
: PRINT AT(X-1+S+R*3,P);HEX(020402040E);STR(I$(R),1,L);HEX(020402000F);
: IF T$="U"AND J<0THEN 1990
1590 PRINT AT(21,0,39);AT(22,0,39);AT(23,0,39);
: IF S9$=HEX(82)THEN 1670
: IF S9$=HEX(0D)OR S9$=HEX(7E)OR S9$<>HEX(7F)THEN R=MOD(R,N)+1
: IF S9$=HEX(7F)THEN R=MOD(R+N-2,N)+1
: GOTO 740
1670 IF POS(I$()<>" ")=0THEN 1920
: IF O<>7THEN 1710
: IF I$(1)=" "OR I$(2)=" "THEN 1960
1710 L(1),L(2),L(3)=0
: J=1
: FOR I=1TO N
: IF T$(I)="V"THEN I$(I)="?"
: R=POS(I$(J)=" ")
: IF R=1THEN 1820
: L(J)=R-1
: IF T$(J)="F"THEN L(J)=L(J)-1
: IF L(J)=-1THEN L(J)=L
: J=J+1
: GOTO 1860
1820 IF I=3THEN 1860
: STR(I$(),64*(J-1)+1)=STR(I$(),64*J+1)
: I$(3)=" "
: STR(T$(),J)=STR(T$(),J+1)
1860 NEXT I
: STR(G8$(),245,3)=T$()
: STR(G8$(),53,192)=I$()
: FOR I=1TO 3
: STR(G8$(),247+I,1)=BIN(L(I))
: NEXT I
: LOAD T"SLD.STOL"
1920 PRINT HEX(07);AT(21,0);HEX(0E);"You must enter a valid ";AT(22,0);M$;AT(2
3,0);"field or CANCEL/EDIT";HEX(0F);
1930 R=1
: GOTO 740
1960 PRINT HEX(07);AT(21,0);HEX(0E);"You must enter two valid ";AT(22,0);M$;AT
(23,0);"fields or CANCEL/EDIT";HEX(0F);
: GOTO 1930
1990 PRINT HEX(07);AT(21,0);HEX(0E);"Field values must be ";AT(22,0);M$;".";AT
(23,0);"Please re-enter.";HEX(0F);
: GOTO 740
2020 J=48
: PRINT AT(X+Y,0,);
: PRINT AT(X+Y+2,J);"'2 - Variable input";AT(X+Y+3,J);"'3 - Compare to anot
her field";
: PRINT AT(X+Y+4,J-1);"'17 - Display field editing keys";
2060 PRINT AT(6,0);HEX(0E);"Please Enter a Value or Select a Function for this
Field";HEX(0F);AT(23,J-9);"CANCEL/EDIT - Previous screen";AT(22,J-6);"EX
EC/RUN - End of input ";
: E$="F"
: RETURN
2100 I=40
: J=60
: PRINT AT(X+Y+1,0,);AT(6,0);HEX(0E);"Please Enter a Value or Select a Func
tion for this Field";HEX(0F);
2120 PRINT AT(X+Y+1,49,31);"'17 - Display other ' keys ";AT(X+Y+2,I);"'4 - En
d of field ";AT(X+Y+2,J);"'10 - Insert ";AT(X+Y+3,I);"'7 - Beg.
of field ";AT(X+Y+3,J);"'11 - ";HEX(8484848484202020202020202020);
2130 PRINT AT(X+Y+4,I);"'8 - Erase to end ";AT(X+Y+4,J);"'12 - ";HEX(842020
202020);AT(X+Y+5,I);"'9 - Delete ";AT(X+Y+5,J);"'13 - "
;HEX(5F202020202020);AT(X+Y+6,0);AT(X+Y+6,J);"'14 - ";HEX(5F5F5F5F5F);
: E$="T"
: RETURN
2160 DEFFN'0
: SCRATCH T"SLD.FVAL"
: SAVE T()"SLD.FVAL"
: PRINT "'SLD.FVAL' SAVED";
: LIST DT
: RETURN
2170 DEFFN'16"RENUMBER 0-3000";HEX(0D);
6010 DEFFN'123(S$,S1,S2,S3,S7,S5$,S6$)
6200 S5=S3
: $TRAN(S6$,HEX(FE0D))R
: S4=1
: S8$=BIN(INT(S7/1000))&BIN(MOD(INT(S7/100),10))
: PRINT AT(S2,S3);HEX(0202020F0204);STR(S8$,1,2);HEX(0E);STR(S$,1,S1);AT(S2
,S3);
6290 PRINT HEX(05);
: KEYIN S9$,,6600
: PRINT HEX(06);
: IF S9$=HEX(84)THEN 6290
: $TRAN(S9$,HEX(FE0D))R
: IF POS(HEX(82FEA1E5)=S9$)>0THEN 6630
: IF S9$=HEX(08)THEN 7190
: IF S4>S1THEN 6290
: IF POS(S5$="S")>0AND S9$=" "THEN S9$=HEX(80)
: PRINT AT(S2,S5);S9$;
: STR(S$,S4,1)=S9$
: IF POS(S5$="A")>0AND S4>=S1THEN 6510
: S5=S5+1
: S4=S4+1
: GOTO 6290
6510 S8$=BIN(MOD(INT(S7/10),10))&BIN(MOD(INT(S7),10))
: IF POS(S5$="L")>0THEN S7=LEN(S$)
: ELSE S7=S1
: PRINT AT(S2,S3);HEX(0202020F0204);STR(S8$,1,2);HEX(0E);STR(S$,1,S7);HEX(0
202000F020402000F);
: IF POS(S5$="L")>0AND LEN(S$)<S1THEN PRINT STR(S$,LEN(S$)+1,S1-LEN(S$));
: IF POS(S5$="A")>0AND S4>=S1AND POS(S6$=S9$)=0THEN S9$=HEX(FF)
: RETURN
6600 PRINT HEX(06);
: $TRAN(S9$,HEX(0A4A0A5A094909590C5C0C4C0D5D0D4DE548))R
: IF S9$=HEX(0D)THEN 7010
6630 PRINT HEX(06);
: IF POS(S6$=S9$)>0THEN 6510
: IF S9$=HEX(E5)THEN 7270
: ON VAL(S9$)-3GOTO 6710,6290,6290,6780,6820,6860,6890,6950,6980,7010,7040
: GOTO 6290
6710 IF LEN(S$)=S1THEN S4=S1
: ELSE IF S$<>" "THEN S4=LEN(S$)+1
: ELSE S4=1
: S5=S3+LEN(S$)
: IF S$=" "THEN S5=S3
: IF S5>S3+S1-1THEN S5=S3+S1-1
6750 PRINT AT(S2,S5);
: GOTO 6290
6780 S5=S3
: S4=1
: GOTO 6750
6820 STR(S$,S4)=" "
6830 PRINT AT(S2,S3);STR(S$,1,S1);AT(S2,S5);
: GOTO 6290
6860 STR(S$,S4)=STR(S$,S4+1)
: GOTO 6830
6890 FOR S6=S1TO S4+1STEP -1
: IF S6>1THEN STR(S$,S6,1)=STR(S$,S6-1,1)
: NEXT S6
: STR(S$,S4,1)=" "
: GOTO 6830
6950 S6=5
: GOTO 7060
6980 S6=1
: GOTO 7060
7010 S6=-1
: GOTO 7060
7040 S6=-5
7060 S5=S5+S6
: S4=S4+S6
: IF S4>0THEN 7110
: S4=1
: S5=S3
7110 S6=LEN(S$)
: IF S$=" "THEN S6=0
: IF S4<=S6THEN 7160
: S5=S3+S6
: S4=S6+1
7160 PRINT AT(S2,S5);
: GOTO 6290
7190 S4=S4-1
: S5=S5-1
: IF S4>0THEN 7240
: S4=1
: S5=S3
7240 IF POS(S5$="S")=0THEN STR(S$,S4,1)=" "
: ELSE STR(S$,S4,1)=HEX(80)
: GOTO 6830
7270 S$=" "
: GOTO 6200