image of READY prompt

Wang2200.org

Listing of file='609Eline' on disk='vmedia/701-2737G.wvd.zip'

# Sector 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