image of READY prompt

Wang2200.org

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