image of READY prompt

Wang2200.org

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