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