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