10 REM EDIT8 CLARK BAKER 7/73 DSAA 20 DIML%(400%),P%(400%),P1%(400%),P$(30%):I$=CHR$(127%)+CHR$(7%)+CHR$( 12%)+CHR$(10%)+CHR$(13%)+CHR$(14%)+CHR$(27%):PRINT"EDIT8 VER 2B" :OPEN"KB:"ASFILE1:FIELD#1,128%ASA9$:T$=NUM$(ASCII( SYS(CHR$(6)+CHR$(9)))/2%):T$="0"+MID(T$,2%,LEN(T$)-2%): T$="EDIT"+RIGHT(T$,LEN(T$)-1%)+".TMP":L%(0%)=32767%: ONERRORGOTO500 80 IF P1%=31% THEN 120 ELSE PRINT "#";:INPUT LINE #1%,F1$:F1$=LEFT(F1$, LEN(F1$)-3%+ASCII(RIGHT(F1$,LEN(F1$)))/10%):I%=INSTR(1%,F1$,"/" ):I1%=0%:IF I%=0% THEN 120 ELSE IF I%<>1% THEN F$=LEFT(F1$,I%- 1%):P%=0% 100 I1%=INSTR(1%,"SCOR",MID(F1$,I%+1%,1%)):IF I1%=0% THEN PRINT "ILL SWI!":GO TO 80 110 IF I1%=2% THEN CHAIN LEFT(F$,INSTR(1%,F$,".")-1%) ELSE IF I1%=3% THEN CHAIN LEFT(F$,INSTR(1%,F$,".")-1%) L%(P%) ELSE IF I1%=1% THEN CLOSE 1%:GO TO 9999 115 IF I1%=4% THEN I2%=INSTR(I%,F1$,":"):IF I2%=0% THEN R8%=0% ELSE R8%=VAL(RIGHT(F1$,I2%+1%)) 120 F$=F1$ IF I1%<>4%:F$=F$+".BAS" IF INSTR(1%,F$,".")=0%:OPEN F$ FOR INPUT AS FILE 2%:P%,L%=0%:P1%=1% 130 L$='' 140 INPUT LINE #2%,L$:N%=FNN%(L$):P%=P%+1%:L%(P%)=N%:P%(P%)=L% 143 L%=L%+LEN(L$):IF ASCII(RIGHT(L$,LEN(L$)))=0% THEN INPUT LINE #2%, L$:GO TO 143 146 P1%(P%)=L%-P%(P%):GO TO 140 150 IF P1%=31% THEN 455 ELSE A$=SYS(CHR$(0%)):PRINT "*";:INPUT LINE #1%, C$:IF LEN(C$)<3% THEN 150 ELSE IF ASCII(RIGHT(C$,LEN(C$)))=0% THEN 460 160 N%=ABS(VAL(LEFT(C$,LEN(C$)-3%+ASCII(RIGHT(C$,LEN(C$)))/10%))):FOR P2%=1% TO P%:IF L%(P2%)=N% THEN 190 180 NEXT P2%:L$=NUM$(N%):L$=MID(L$,2%,LEN(L$)-2%)+" "+CHR$(13%)+ CHR$(10%):N%=-1%:GO TO 210 190 IF P%(P2%)<0% THEN L$=P$(ABS(P%(P2%))) ELSE GOSUB 560 210 PRINT L$;:Q%=1%:W%,R%=-1%:S$=":":A$=SYS(CHR$(3%)) 220 A$=SYS(CHR$(4%)):GET #1%:FOR X%=1% TO RECOUNT:C$=MID(A9$,X%,1%): C$=CHR$(127%) IF ASCII(C$)=16%:IF NOT R% THEN IF ASCII(C$)<> 127% THEN R%=-1%:IF R8%=0% THEN PRINT "\"; 230 ON INSTR(1%,I$,C$)+1% GO TO 320,240,270,340,280,290,300,310 240 IF Q%=1% THEN PRINT CHR$(7%);:GO TO 360 250 IF R% THEN R%=0%:IF R8%=0% THEN PRINT "\"; 260 IF R8%=0% THEN PRINT MID(L$,Q%-1%,1%); ELSE IF ASCII(MID(L$,Q%-1%,1%))>=32% THEN PRINT CHR$(14%); IF POS(0%)>=70%:PRINT CHR$(R8%);" ";CHR$(R8%); 265 L$=LEFT(L$,Q%-2%)+RIGHT(L$,Q%):Q%=Q%-1%:GO TO 360 270 W%=-1%:GO TO 360 280 PRINT RIGHT(L$,Q%);:GO TO 370 290 PRINT:L$=LEFT(L$,Q%-1%)+CHR$(13%)+CHR$(10%):GO TO 370 300 PRINT:L$=LEFT(L$,Q%-1%)+CHR$(10%)+CHR$(13%)+CHR$(0%)+RIGHT(L$,Q%): Q%=Q%+3%:GO TO 360 310 PRINT "^U":A$=SYS(CHR$(2%)):GO TO 150 320 IF W% THEN S$=C$:W%=0%:GO TO 340 330 PRINT C$;:L$=LEFT(L$,Q%-1%)+C$+RIGHT(L$,Q%):Q%=Q%+1%:GO TO 360 340 I%=INSTR(Q%,L$,S$):IF I%=0% THEN PRINT CHR$(7%);:W%=0%:GO TO 360 350 PRINT MID(L$,Q%,I%-Q%+1%);:Q%=I%+1%:GO TO 360 360 NEXT X%:GO TO 220 370 A$=SYS(CHR$(2%)):N1%=FNN%(L$):IF N%<>N1% THEN 400 ELSE IF P%(P2%)<0% THEN P$(ABS(P%(P2%)))=L$ ELSE P%(P2%)=-P1%:P$(P1%)=L$:P1%=P1%+1% 390 GO TO 150 400 IF N%=-1% THEN 420 410 FOR X%=P2% TO P%-1%:L%(X%)=L%(X%+1%):P%(X%)=P%(X%+1%):P1%(X%)= P1%(X%+1%):NEXT X%:P%=P%-1% 420 FOR X%=1% TO P%:IF L%(X%)=N1% THEN 425 ELSE IF L%(X%)>N1% THEN 440 422 NEXT X%:P%,X%=P%+1% 425 L%(X%)=N1%:P%(X%)=-P1%:P$(P1%)=L$:P1%=P1%+1%:GO TO 150 440 FOR Y%=P% TO X% STEP -1%:L%(Y%+1%)=L%(Y%):P%(Y%+1%)=P%(Y%): P1%(Y%+1%)=P1%(Y%):NEXT Y% 450 L%(X%)=N1%:P%(X%)=-P1%:P$(P1%)=L$:P1%=P1%+1%:P%=P%+1%:GO TO 150 455 PRINT "YOU HAVE EXCEEDED YOUR EDITING BUFFER, PLEASE WAIT" 460 IF INSTR(1%,F$,":") THEN T1$=LEFT(F$,INSTR(1%,F$,":")) ELSE T1$="" 470 OPEN T1$+T$ FOR OUTPUT AS FILE 3% 480 FOR P2%=1% TO P%:IF P%(P2%)<0% THEN PRINT #3%,P$(ABS(P%(P2%))); ELSE GOSUB 560:PRINT #3%,L$; 490 NEXT P2%:PRINT #3%,CHR$(26%);:CLOSE 2%,3%:KILL F$:NAME T1$+T$ AS F$: GO TO 80 500 IF ERR=11% AND ERL=140 THEN RESUME 150 !EXPECTED 510 E$=SYS(CHR$(6%)+CHR$(9%)+CHR$(ERR)):PRINT IF POS(0%)>1%:PRINT MID(E$,3%,INSTR(4%,E$,CHR$(0%))-3%):IF ERL<150% THEN RESUME 80 ELSE RESUME 150 520 DEF FNN%(N$):N9%=0%:FOR X%=1% TO LEN(N$):I%=INSTR(1%,CHR$(12%)+ " 0123456789",MID(N$,X%,1%)):IF I%>2% THEN N9%=N9%*10%+I%-3% ELSE IF I%=0% THEN 550 540 NEXT X%:STOP 550 FNN%=N9%:FNEND 560 R1%=P%(P2%):R2%=P1%(P2%):L$="" 570 IF R9%<>R1%/512%+1% THEN R9%=R1%/512%+1%:GET #2%,RECORD R9% 571 IF R1%-R1%/512%*512%+R2%<=512% THEN FIELD #2%,R1%-R1%/512%* 512% AS R1$,R2% AS R2$:L$=L$+R2$:RETURN 580 R3%=512%-R1%+R1%/512%*512%:FIELD #2%,512%-R3% AS R1$,R3% AS R2$: L$=L$+R2$:R1%=R1%+R3%:R2%=R2%-R3%:GO TO 570 9999 END