Listing of file='SLE.VARI' on disk='vmedia/701-2721C.wvd.zip'
# Sector 839, program filename = 'SLE.VARI'
0010 REM % "SLE.VARI"
0020 COM G7$(200)1
: G7$()=" "
: DIM F$20,O$28,O$(7)28,I$(3)64,T$(3)1,L(3)
: E=3
: C=4
: X=2
: Y=15
: G2,G1=1
0140 G0=G1
: IF G$(G2)=HEX(FF)THEN 330
: IF G1>=LEN(G$())THEN 330
: GOSUB '98(G1)
: IF POS(T$()="V")=0THEN 140
: G1=G0
: GOSUB '97(G1,E,C)
: GOSUB '95
: FOR J=1TO N
: IF T$(J)="V"THEN G7$()=G7$()&I$(J)&HEX(00)
: NEXT J
: PRINT AT(E-1,C-2,14*80);BOX(-3,-G);BOX(-1,-1);BOX(-1,-2);BOX(-1,-3);BOX(-
1,-4);
: IF G$(G2)=HEX(FF)THEN 330
: GOTO 140
0330 G7$()=STR(G7$(),2)
: $TRAN(G7$(),HEX(2080))R
: IF L0(5)=1THEN R9$()="LPPRESELLPID1OPN"
: ELSE R9$()="LPACTID2"
: LOAD T<INT((LEN(R9$())+7)/8)>R9$()
0370 DEFFN'0
: SCRATCH T"SLE.VARI"
: SAVE T()"SLE.VARI"
: PRINT "'SLE.VARI' SAVED"
: LIST DT
: RETURN
0380 DEFFN'16"RENUMBER 0-1998";HEX(0D)
3020 DEFFN'97(G1,R,C)
: G0=G1-1
: GOSUB '98(G1)
: GOSUB '99(R,C)
: PRINT AT(R-1,C-2);BOX(3,0);AT(R-1,2+G);BOX(3,0);
: IF G0=0OR G$(G0)="\CF"THEN PRINT AT(R-1,C-2);BOX(0,G);
: IF G$(G2)<>"\C1"THEN PRINT AT(R+2,C-2);BOX(0,G);
: MAT SEARCHG$(),="\CF"TO R9$()STEP 1
: J=1
3150 IF VAL(STR(R9$(),J,2),2)>=G2OR VAL(STR(R9$(),J,2),2)=0THEN 3180
: J=J+2
: GOTO 3150
3180 B=(J-1)/2+1
: PRINT AT(R,C-2);BOX(0,INT(LGT(B))+2);AT(R-1,C+INT(LGT(B)));BOX(1,0);AT(R-
1,C-2);B;
: RETURN
3210 % SCRATCH T "SLD.97 ": SAVE T() "SLD.97 "3000,3999 : PRINT "'SLD.97
' SAVED": LIST DT
4120 DEFFN'98(G1)
: DIM F$20,O$28,O$(7)28,I$(3)64,T$(3)1,L(3),L$1
: G2=POS(STR(G$(),G1)=HEX(00))
: IF G2>0THEN 4180
: RETURN
4180 F$=STR(G$(),G1,G2-1)
: G1=G1+G2
: MAT SEARCH"=#<>\BC\BE@",=STR(G$(),G1,1)TO O$STEP 1
: O$(1)="IS EQUAL TO"
: O$(2)="IS NOT EQUAL TO"
: O$(3)="IS LESS THAN"
: O$(4)="IS GREATER THAN"
: O$(5)="IS LESS THAN OR EQUAL TO"
: O$(6)="IS GREATER THAN OR EQUAL TO"
: O$(7)="IS BETWEEN"
: O=VAL(O$,2)
4240 O$=O$(O)
: G1=G1+1
: G9=0
: MAT L=ZER
: T$(),I$()=" "
4280 G9=G9+1
: T$(G9)=STR(G$(),G1,1)
: G1=G1+1
: IF T$(G9)="F"THEN G2=POS(STR(G$(),G1)=HEX(00))
: ELSE G2=POS(STR(G$(),G1)>="\C1")
: IF G2=0THEN G2=LEN(G$())-G1+2
: I$(G9)=STR(G$(),G1,G2-1)
: G2=G1+G2-1
: L(G9)=LEN(I$(G9))
: IF T$(G9)="F"THEN G2=G2+1
: G1=G2+1
: IF STR(G$(),G2,1)="\EF"THEN 4280
: L$=G$(G2)
: RETURN
4410 % SCRATCH T "SLD.98 ": SAVE T() "SLD.98 " 4000,4500 : PRINT "'SLD
.98 ' SAVED"
5010 DEFFN'99(R,C)
: DIM G2(3)
: MAT G2=ZER
: PRINT AT(R,C);F$;" ";O$;" ";
: A=0
: D=0
: IF L(3)>0THEN L=3
: ELSE IF L(2)>0THEN L=2
: ELSE L=1
: FOR I=1TO L
: IF T$(I)="C"THEN D=D+1
: NEXT I
: M=INT((69-LEN(F$)-LEN(O$)-2*D-6*(L-1)-INT(O/7))/L)
: FOR I=1TO L
: IF L(I)>MTHEN A=A+1
: NEXT I
: M=INT((69-LEN(F$)-LEN(O$)-2*D-6*(L-1)-A-INT(O/7))/L)
: G=0
5350 FOR I=1TO L
: IF L(I)<MTHEN G=G+M-L(I)
: NEXT I
: IF A>0THEN M=M+INT(G/A)
: A=0
: FOR I=1TO L
: IF L(I)>MTHEN A=A+1
: NEXT I
: FOR I=1TO L
: IF L(I)>MTHEN G2(I)=M
: ELSE G2(I)=L(I)
: PRINT HEX(020402000E0202020F);
: IF T$(I)="C"THEN PRINT HEX(22);STR(I$(I),1,G2(I));HEX(22);
: ELSE PRINT STR(I$(I),1,G2(I));
: IF G2(I)<>L(I)THEN PRINT "*";
: PRINT HEX(0F);
: IF I<LAND O<>7THEN PRINT " OR ";
5510 IF I<LAND O=7THEN PRINT " AND ";
: NEXT I
: G=6+LEN(F$)+LEN(O$)+6*(L-1)+INT(O/7)+2*D+G2(1)+G2(2)+G2(3)+A+1
: PRINT HEX(0202000F020402000F);
: RETURN
5570 % SCRATCH T "SLD.99 ": SAVE T() "SLD.99 " 5000,5999 : PRINT "'SLD.9
9 ' SAVED"
6015 DEFFN'95
: DIM C$3,E$1,M$24,T$1
: DIM S$64,S9$1
: MAT SEARCHL3$(),=F$TO S$STEP L6
: T$=STR(L3$(),VAL(S$,2)+L4,1)
: L=VAL(STR(L3$(),VAL(S$,2)+L4+3,2),2)
: IF L(3)>0THEN N=3
: ELSE IF L(2)>0THEN N=2
: ELSE N=1
: IF O=7THEN C$="AND"
: ELSE C$="OR"
: IF T$="A"THEN M$="upper case alpha-numeric"
: IF T$="S"THEN M$="signed numeric"
6075 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(X+5,4);F$;" ";O$;
: P=LEN(F$)+LEN(O$)+8
: IF P+L>79THEN P=P-(P+L-79)
: IF P<5THEN P=5
: S=X+3
: FOR I=1TO N
: PRINT AT(X-1+S+I*3,0);
: IF T$(I)="V"THEN I$(I)=" "
6145 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+6+I*3,P-6);HEX(020402000E0F);C$;
: NEXT I
: PRINT HEX(020402000F);
: GOSUB 6550
: R=1
6195 IF T$(R)="V"THEN 6210
: R=MOD(R,N)+1
: GOTO 6195
6210 GOSUB '123(I$(R),L,X-1+S+R*3,P,2424,B$,HEX(820D7E7F11))
: I$(R)=S$
: PRINT AT(X+Y-1,0,2*80);
: IF S9$<>HEX(11)THEN 6255
: IF E$="T"THEN GOSUB 6550
: ELSE GOSUB 6585
: GOTO 6210
6255 IF T$(R)<>"C"OR T$="C"THEN 6355
: IF T$="S"OR T$="U"THEN 6295
: 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 6535
: NEXT I
: GOTO 6355
6295 IF S$=" "THEN 6355
: CONVERT S$TO J
: ERRORGOTO 6535
6310 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);
6355 PRINT AT(X+Y-1,0,2*80);
: IF S9$=HEX(82)THEN 6395
: 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 6195
6395 IF O<>7THEN 6410
: IF I$(1)=" "OR I$(2)=" "THEN 6520
6410 L(1),L(2),L(3)=0
: J=1
: FOR I=1TO N
: IF T$(I)="V"AND I$(I)=" "THEN I$(I)=HEX(81)
: R=POS(I$(J)=" ")
: IF R=1THEN 6465
: 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 6485
6465 IF I=3THEN 6485
: STR(I$(),64*(J-1)+1)=STR(I$(),64*J+1)
: I$(3)=" "
: STR(T$(),J)=STR(T$(),J+1)
6485 NEXT I
: RETURN
6500 PRINT HEX(07);AT(17,1);HEX(0E);"You must enter a valid ";M$;" field";HEX(
0F);
6505 R=1
: GOTO 6195
6520 PRINT HEX(07);AT(17,1);HEX(0E);"You must enter two valid ";M$;" fields";H
EX(0F);
: GOTO 6505
6535 PRINT HEX(07);AT(X+Y-1,0);HEX(0E);HEX(22);I$(R);HEX(22);AT(X+Y,0);"is not
a valid ";M$;" entry. Please re-enter.";HEX(0F);
: GOTO 6195
6550 J=48
: PRINT AT(X+Y,0,);
: PRINT AT(X+Y+4,J-1);"'17 - Display field editing keys";
: PRINT AT(22,0);HEX(0E);"Please Enter a Value or Select ";HEX(0D0A0E);"
a Function ";HEX(0F);AT(22,J-6);"EXEC/RUN - End of input ";
: E$="F"
: RETURN
6585 I=40
: J=60
: PRINT AT(X+Y+1,0,);AT(22,0);HEX(0E);"Please Enter a Value or Select ";
HEX(0D0A0E);"a Function ";HEX(0F);
6595 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);
6600 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
6615 % SCRATCH T "SLE.95": SAVE T() "SLE.95"6000,6999: LISTDT
6700 DEFFN'123(S$,S1,S2,S3,S7,S5$,S6$)
6701 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);
6706 PRINT HEX(05);
: KEYIN S9$,,6727
: PRINT HEX(06);
: IF S9$=HEX(84)THEN 6706
: $TRAN(S9$,HEX(FE0D))R
: IF POS(HEX(82FEA1E5)=S9$)>0THEN 6730
: IF S9$=HEX(08)THEN 6773
: IF S4>S1THEN 6706
: 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 6721
: S5=S5+1
: S4=S4+1
: GOTO 6706
6721 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
6727 PRINT HEX(06);
: $TRAN(S9$,HEX(0A4A0A5A094909590C5C0C4C0D5D0D4DE548))R
: IF S9$=HEX(0D)THEN 6758
6730 PRINT HEX(06);
: IF POS(S6$=S9$)>0THEN 6721
: IF S9$=HEX(E5)THEN 6780
: ON VAL(S9$)-3GOTO 6735,6706,6706,6741,6744,6747,6749,6754,6756,6758,6760
: GOTO 6706
6735 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
6739 PRINT AT(S2,S5);
: GOTO 6706
6741 S5=S3
: S4=1
: GOTO 6739
6744 STR(S$,S4)=" "
6745 PRINT AT(S2,S3);STR(S$,1,S1);AT(S2,S5);
: GOTO 6706
6747 STR(S$,S4)=STR(S$,S4+1)
: GOTO 6745
6749 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 6745
6754 S6=5
: GOTO 6761
6756 S6=1
: GOTO 6761
6758 S6=-1
: GOTO 6761
6760 S6=-5
6761 S5=S5+S6
: S4=S4+S6
: IF S4>0THEN 6766
: S4=1
: S5=S3
6766 S6=LEN(S$)
: IF S$=" "THEN S6=0
: IF S4<=S6THEN 6771
: S5=S3+S6
: S4=S6+1
6771 PRINT AT(S2,S5);
: GOTO 6706
6773 S4=S4-1
: S5=S5-1
: IF S4>0THEN 6778
: S4=1
: S5=S3
6778 IF POS(S5$="S")=0THEN STR(S$,S4,1)=" "
: ELSE STR(S$,S4,1)=HEX(80)
: GOTO 6745
6780 S$=" "
: GOTO 6701