Listing of file='SLD.LOPR' on disk='vmedia/701-2721C.wvd.zip'
# Sector 738, program filename = 'SLD.LOPR' 0010 REM % "SLD.LOPR" 0030 X=2 : Y=15 0050 PRINT HEX(06);AT(0,39,40);"Condition Box Display"; : PRINT AT(X,0,Y*80);AT(X+Y-5,20);"Use AND to remain in this condition box" ;AT(X+Y-4,22);"Use OR to begin a new condition box"; 0070 PRINT AT(X+Y+1,0,);AT(23,40);"CANCEL/EDIT - Previous screen";AT(22,43);"E XEC/RUN - Select AND or OR";AT(21,49);"'4 - Exit";AT(20,49);"'3 - Review Definition"; : G1=MAX(POS(-STR(G$(),1,LEN(G$())-1)="\C1"),POS(-STR(G$(),1,LEN(G$())-1)=" \CF"),1) : IF G1>1THEN G1=G1+1 : GOSUB '97(G1,X+1,4) : DIM S$(2)3 0140 S$(1)="AND" : S$(2)="OR" : O=1 0160 PRINT AT(MOD(O,2)+X+Y-2,37);". ";S$(MOD(O,2)+1);AT(O+X+Y-3,37);HEX(0E8B20 );S$(O);HEX(0F); : KEYIN A$ : IF A$<>HEX(04)THEN 300 : GOSUB 610 : COM CLEAR G8$() : IF G$()<>" "THEN G$()=G$()&HEX(FF) : S=VAL(STR(K9$,7,1)) : L=VAL(STR(K9$,8,1)) : X$=STR(K9$,S,8) : MAT COPY K9$<S+8,L-8>TO K9$<S,L-8> : STR(K9$,L+S-8,8)="@MENU" : LOAD TX$ 0300 IF A$<>HEX(F0)THEN 370 : GOSUB 610 : PRINT AT(X,0,); : G1=MAX(POS(-STR(G$(),1,LEN(G$())-1)="\C1"),POS(-STR(G$(),1,LEN(G$())-1)=" \CF")) : STR(G$(),G1+1)=" " : STR(G8$(),260,8)="SLD.FVAL" : LOAD T"SLD.PLIN" 0370 IF A$=" "OR A$=HEX(08)THEN O=MOD(O,2)+1 : IF A$=HEX(82)THEN 450 : IF A$<>HEX(03)THEN 160 : GOSUB 610 : STR(G8$(),252,8)="SLD.LOPR" : LOAD T"SLD.RDEF" 0450 PRINT AT(X+3,0,(Y-(X+1))*80); : IF O=1THEN PRINT AT(X+3,2);BOX(0,-G);AT(X+2,INT(G/2));"AND"; : IF O=2THEN PRINT AT(X+4,INT(G/2));"OR";AT(X+6,2);BOX(3,G);BOX(1,INT(LGT(B +1))+2);B+1; : PRINT AT(19,40,39);AT(20,40,39);AT(21,49,30);AT(22,54,25);"Continue";AT(2 3,54);"Previous screen "; : PRINT AT(14,10);" OK? ";AT(21,0,40); 0500 IF O=1THEN H=4 : ELSE H=3 0510 KEYIN A$ : IF A$<>HEX(82)AND A$<>HEX(F0)THEN 510 : PRINT AT(X,2);BOX(-H,-G);BOX(-1,-2);BOX(-1,-3);BOX(-1,-4);AT(X+6,2);BOX(- 3,-G);BOX(-1,-2);BOX(-1,-3);BOX(-1,-4);" ";AT(X,0,); : IF A$=HEX(82)THEN 570 : IF A$=HEX(F0)THEN 50 : GOTO 510 0570 IF O=1THEN G$()=G$()&"\C1" : ELSE G$()=G$()&"\CF" : LOAD T"SLD.FNAM" 0590 DEFFN'0 : SCRATCH T"SLD.LOPR" : SAVE T()"SLD.LOPR" : PRINT "'SLD.LOPR' SAVED" : LIST DT : RETURN 0600 DEFFN'16"RENUMBER 0-1000";HEX(0D); 0610 PRINT AT(X,2,3*80);BOX(-3,-G);BOX(-1,-2);BOX(-1,-3);BOX(-1,-4); : RETURN 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 3340 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 3400 : RETURN 3400 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) 3460 O$=O$(O) : G1=G1+1 : G9=0 : MAT L=ZER : T$(),I$()=" " 3500 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 3500 : L$=G$(G2) : RETURN 3630 % SCRATCH T "SLD.98 ": SAVE T() "SLD.98 " 4000,4500 : PRINT "'SLD .98 ' SAVED" 3650 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 3990 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 "; 4150 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 4210 % SCRATCH T "SLD.99 ": SAVE T() "SLD.99 " 5000,5999 : PRINT "'SLD.9 9 ' SAVED"