30000 REM --> LINE RANGE MANIPULATOR UTILITY <--›30005 D=200:DIM A(D),B(D),A$(1),L$(25),ER$(5)›30010 TRAP 30580:? "}":? " LINE RANGE MANIPULATION UTILITY":? :? :? L$:? :L$=""›30015 ? "SELECT ÄELETE, ÍOVE, ÃOPY,":? " ËOUNT, OR ÅND":? :? "SELECT";:INPUT A$›30020 IF A$="D" THEN 30100›30025 IF A$="M" THEN 30200›30030 IF A$="C" THEN 30300›30035 IF A$="K" THEN 30400›30040 IF A$="E" THEN 30060›30045 L$(1,1)="'":L$(2,2)=A$:L$(3,25)="' UNKNOWN. REENTER.":GOTO 30010›30060 STOP ›30070 GOTO 30010›30090 ? CHR$(125):? :RETURN ›30091 ? :? :? "CONT":? "CONT":POSITION 0,0:POKE 842,13:STOP ›30092 POKE 842,12:? CHR$(125):? :RETURN ›30095 ADDR=ADDR+PEEK(ADDR+2):LNUM=PEEK(ADDR)+PEEK(ADDR+1)*256:RETURN ›30100 REM ÄÅÌÅÔÅ›30105 ? :? "DELETE";:GOSUB 30500:IF C=0 THEN 30150›30110 X1=INT(C/15):X2=C-(X1*15):IF X1=0 THEN 30120›30115 FOR Y1=0 TO (X1-1):GOSUB 30090:FOR Y2=1 TO 15:? A(Y1*15+Y2):NEXT Y2:GOSUB 30091:NEXT Y1›30120 IF X2=0 THEN 30130›30125 GOSUB 30090:FOR Y1=1 TO X2:PRINT A(X1*15+Y1):NEXT Y1:GOSUB 30091›30150 L$(1,LEN(STR$(C)))=STR$(C):L$((LEN(L$)+1),25)=" LINES DELETED.":GOTO 30010›30200 REM ÍÏÖÅ›30205 ? :? "MOVE";:GOSUB 30500:IF C=0 THEN L$="NULL RANGE SPECIFIED.":GOTO 30010›30210 ? :? "MOVE TO";:GOSUB 30550›30215 FOR X1=1 TO C:GOSUB 30090:LIST A(X1):POSITION 2,3:L1=LEN(STR$(A(X1))):L2=LEN(STR$(B(X1)))›30220 FOR Y1=1 TO L1:PRINT " ";:NEXT Y1:IF L2<=L1 THEN 30230›30225 FOR Y1=1 TO (L2-L1):? "ÿ";:NEXT Y1›30230 POSITION 2,3:? B(X1):? :? :? A(X1):GOSUB 30091:NEXT X1›30250 L$(1,LEN(STR$(C)))=STR$(C):L$((LEN(L$)+1),25)=" LINES MOVED.":GOTO 30010›30300 REM ÃÏÐÙ›30305 ? :? "COPY";:GOSUB 30500:IF C=0 THEN L$="NULL RANGE SPECIFIED.":GOTO 30010›30310 ? :? "COPY TO";:GOSUB 30550›30315 FOR X1=1 TO C:GOSUB 30090:LIST A(X1):POSITION 2,3:L1=LEN(STR$(A(X1))):L2=LEN(STR$(B(X1)))›30320 FOR Y1=1 TO L1:? " ";:NEXT Y1:IF L2<=L1 THEN 30330›30325 FOR Y1=1 TO (L2-L1):? "ÿ";:NEXT Y1›30330 POSITION 2,3:? B(X1);"":GOSUB 30091:NEXT X1›30350 L$(1,LEN(STR$(C)))=STR$(C):L$((LEN(L$)+1),25)=" LINES COPIED.":GOTO 30010›30400 REM ÃÏÕÎÔ›30405 ? "COUNT RANGE (FROM,TO) ";:INPUT L1,L2:IF L2>32767 THEN L2=32767›30410 IF L2LNUM THEN GOSUB 30095:GOTO 30420›30425 IF L2>LNUM THEN C=C+1:GOSUB 30095:GOTO 30425›30490 L$(1,LEN(STR$(C)))=STR$(C):L$((LEN(L$)+1),25)=" LINES COUNTED.":GOTO 30010›30500 ? " RANGE (FROM,TO) ";:INPUT L1,L2:IF L2>32767 THEN L2=32767›30505 IF L2LNUM THEN GOSUB 30095:GOTO 30515›30520 IF L2