Listing of file='609Eline' on disk='vmedia/701-2737G.wvd.zip'
# Sector 16, program filename = '609Eline' 0010 REM 609Eline - Construct line of screen text 2602 DEFFN'96(I0,C1) : IF I0<1THEN I0=1 : IF POS(HEX(8F86)=V0$(I0))=0THEN J3(C1)=D9 : IF I0<>D1THEN IF I0<D1+2OR D1<1OR POS(STR(V0$(),D1+1,I0-D1-1)=86)>0THEN G OSUB '33(I0) : D1$()=" " : MAT REDIM D1$(D9)1,D2$(D9)1,D5$(D9)1,I0$(D9)1 : IF V0$(I0)<>" "THEN 2638 2620 J1(C1),J5(C1+1)=0 : J2(C1)=I0 : D2$()=" " : GOSUB 2684 : RETURN 2629 V0$(I0)=HEX(80) : GOTO 2638 2630 A=POS(STR(V0$(),I0)=83) : IF A=0AND I0=1THEN 2868 : IF A=0OR A>158THEN 2629 : IF D7$=" "AND A>80THEN 2629 : D9=A : MAT REDIM D1$(D9)1,D2$(D9)1,D5$(D9)1,I0$(D9)1 2638 J2(C1)=I0 : D2$(),D5$()=STR(V0$(),I0) : B=POS(D2$()=20) : IF B>0THEN STR(D2$(),B),STR(D5$(),B)=" " : IF D2$()=" "THEN 2620 : $TRAN(D5$(),J9$()) : B=1 : D0=J5(C1) : I1=D0+1 : D1$()=" " : GOSUB 2684 2658 E=POS(STR(D5$(),B)<FF) : IF E<2THEN 2674 : E=MIN(E-1,D9-I1) : IF E=0THEN 2712 : STR(D1$(),I1,E)=STR(D2$(),B,E) : B=B+E : I1=I1+E : GOTO 2658 2674 E=E-1 : IF E<0THEN 2712 : ON D5$(B+E)GOTO 2778,2830,2856,2830,2938,2870,2870 : STOP # : END 2684 IF C1<>1THEN 2692 : J4(C1)=D3 : RETURN 2692 J4(C1)=J4(C1-1) : IF D2$(1)=HEX(86)THEN 2708 : I$=B9$(7)&B9$(5)&" 1 "&B9$(6)&" 2 3" : J4(C1)=J4(C1-1)+POS(I$=STR(A5$(),2))/4 : IF D2=1AND C1<3THEN 2708 : IF V0$(J2(C1-1))<>HEX(86)THEN 2708 : I=MAX(1,POS(-STR(V0$(),,J2(C1-1)-1)=86)) : J4(C1)=J4(C1-1)+POS(I$=V0$(I+1))/4 2708 IF D2=1AND C1=2THEN J4(C1)=1 : RETURN 2712 E=LEN(D2$())-B+1 : IF E=0THEN 2764 : IF E>D9-I1+1THEN E=D9-I1+1 : STR(D1$(),I1,E)=STR(D2$(),B,E) : B=B+E : IF D1$=HEX(81)THEN 2764 2724 I7,I1=LEN(D1$()) : D1$=D1$(I7) : IF POS(STR(D4$,2)=D1$)=0THEN 2738 : IF I7<D9THEN STR(D1$(),I7+1)=" " : J3(C1)=0 : GOTO 2768 2738 IF I1<>D9AND J2(C1)+LEN(D2$())>J9THEN 2764 : IF POS(D5$=D1$)>0AND I1=D9THEN I7=I7-1 : I0$()=D1$() : $TRAN(I0$(),D5$)R : IF POS(D5$=D1$)=0THEN 2752 : I7=POS(-STR(I0$(),1,I7)<>80) : IF I7=0THEN 2764 2752 J0=POS(-STR(I0$(),1,I7)=80) : IF J0<>0AND J0>HTHEN 2760 : J3(C1)=0 : GOTO 2766 2760 B=MAX(B-(I1-J0),1) : IF J0<D9THEN STR(D1$(),J0+1)=" " 2764 J3(C1)=D9-J0 2766 IF B<=D9THEN STR(D2$(),B)=" " 2768 J1(C1)=B-1 : J5(C1+1)=D0 : H=0 : RETURN 2778 IF B=1OR D2$(B-1)=HEX(84)THEN 2790 2782 IF B<D9THEN STR(D2$(),B+1)=" " : D0=0 : J3(C1)=D9-LEN(D1$()) : GOTO 2768 2790 D1$(I1)=D2$(B) : I1=I1+1 : B=B+1 : E=POS(STR(D5$(),B)<FF) : IF E=0THEN A=LEN(D2$())-B+1 : ELSE A=E-1 : H=INT((D9-D0-A)/2) : IF H>0THEN I1=I1+H-1 : IF I1+A>D9THEN A=D9-I1 : IF A>0THEN STR(D1$(),I1,A)=STR(D2$(),B,A) : J0,I1=I1+A : B=B+A : IF B<=D9THEN 2658 : GOTO 2712 2824 H=I1+POS(STR(A5$(),I1+1)=82) : IF H=I1THEN H=D9 : RETURN 2830 GOSUB 2824 : IF H=D9THEN 2856 : IF D5$(B+E)=HEX(04)THEN D0=H-1 : C=H-I1-1 : IF C=0THEN 2844 : STR(D1$(),I1,C)=" " : I1=I1+C 2844 D1$(I1)=D2$(B) : I1=I1+1 : B=B+1 : GOTO 2658 2856 STR(D1$(),I1),STR(D2$(),B)=D2$(B) : IF D2$(B)=HEX(83)THEN D0=0 : B=B+1 : GOTO 2724 2868 V0$(POS(STR(V0$(),3)<>80)+1)=HEX(83) 2870 IF B<>1THEN 2782 : IF J2(C1)=J9AND C1>1THEN 2922 : IF D1+POS(STR(V0$(),D1)=83)<>J2(C1)THEN 2890 : STR(V0$(),D1+1,J9-D1)=STR(V0$(),J2(C1)+1) : IF J0(2)=C3AND J0(1)>=J2(C1)THEN J0(1),J0(3)=MAX(J0(1)-J1(C1-1),POS(V0$() =83)+1) : C1=C1-1 : I0=J2(C1) : IF I0=1THEN D2$(1)=HEX(8F) : J9=FNJ(1) 2890 A=POS(D2$()=83) : IF A=0THEN 2630 : IF A<81THEN 2906 : IF D7$="H"AND A<159THEN 2906 : STR(V0$(),J2(C1)+79)=STR(V0$(),J2(C1)+A-1) : A=80 : J9=FNJ(1) : STR(D2$(),80)=HEX(83)&" " : GOTO 2908 2906 IF A<D9THEN STR(D2$(),A+1)=" " 2908 B=B+A : I1=I1+A : D1$()=D2$() : D0,J5(C1),J5(C1+1)=0 : GOSUB '33(J2(C1)) : GOTO 2768 2922 STR(D2$(),B+1)=" " : D1$(I1)=D2$(B) : B=B+1 : I1=I1+1 : GOTO 2768 2938 GOSUB 2824 : IF H=D9THEN 2856 : H=H-1 : I0$()=D2$() : $TRAN(I0$(),C9$())R : C=POS(STR(I0$(),B)=A6$) : IF B<D9THEN I=POS(STR(D5$(),B+1)<FF) : ELSE I=0 : IF I>0AND C>0THEN C=MIN(C,I+1) : ELSE IF I>0THEN C=I+1 : IF C=0THEN C=LEN(D2$())-B+1 : I=0 2955 I=I+1 : IF I>=CTHEN 2957 : IF POS(STR(I0$(),B+I-1)=80)=0THEN 2957 : I=I+POS(STR(I0$(),B+I-1)=80)-1 : IF I>=CTHEN 2957 : IF I0$(B+I-2)<"0"OR I0$(B+I-2)>"9"THEN 2955 : C=I 2957 IF C=0THEN C=MAX(MIN(POS(STR(D2$(),B)=20)-1,D9-B),1) : IF C<>0THEN H=H+1 : IF J9<=J2(C1)+B-1+C-1AND I0$(B+C-1)<>A6$AND D5$(B+C-1)=HEX(FF)THEN H=H-1 : I=MAX(POS(-STR(D1$(),1,H)<>20)+1,1,H-C+1) : IF D5$(B+C-1)<HEX(FF)THEN C=MAX(C-1,1) : C=MIN(C,D9-I) : STR(D1$(),I,C)=STR(D2$(),B,C) : I1=LEN(D1$())+1 : B=B+C : GOTO 2658 2982 DEFFN'33(C) : D1=MAX(1,POS(-STR(V0$(),,MAX(C,2))=86)) : A5$()=STR(V0$(),D1) : D9=POS(A5$()=83) : STR(A5$(),D9+1)=" " : RETURN