Category : Pascal Source Code
Archive   : PIBT41S1.ZIP
Filename : EDITSUB2.MOD

 
Output of file : EDITSUB2.MOD contained in archive : PIBT41S1.ZIP
PROCEDURE II1111II1I;VAR III1II1I11:BYTE;III11I1:INT;BEGIN III1II1I11:=I11I1III11I1I;IF I11II1.II11I
=I11I1I1I THEN EXIT;III11I1:=I11II1.I1I111111;I11I1III11I1I:=III11III;IF I1II1I11I THEN BEGIN
I1I1111I11(1,III11I1);I11II111I111;I111III1I1I1('Line ');END;I1I1111I11(6,III11I1);II1I1I11I(III1I.
II11I11I1II1,4);IF I1II1I11I THEN BEGIN I1I1111I11(12,III11I1);I111III1I1I1('Col ');END;I1I1111I11(16
,III11I1);II1I1I11I(III1I.I11I11,3);IF I1II1I11I THEN BEGIN IF III1I.I1II1 THEN BEGIN I1I1111I11(21,
III11I1);I111III1I1I1('Ins');END;IF III1I.IIIIII1II11I THEN BEGIN I1I1111I11(25,III11I1);
I111III1I1I1('Indent');END;I1I1111I11(34,III11I1);I111III1I1I1(III1I.I111I1I1);END;I11I1III11I1I:=
III1II1I11;I1II1I11I:=FALSE;END;PROCEDURE I1I11111I1I1(III11I1,III111IIIII1I:INT);VAR I1II1I,
III1III1I,I11I1IIIIII,II11I1I11II:INT;BEGIN I1II1I:=0;III1III1I:=0;I11I1IIIIII:=SUCC(III1I.
I111I1I11I1);II11I1I11II:=I11I1IIIIII+I11II1.I111I1II1-1;IF III111IIIII1I=III1I.I111I11111 THEN
BEGIN IF III1I.I11I1II1III1<=II11I1I11II THEN BEGIN III1III1I:=I11II1.I111I1II1;IF III1I.
I11I1II1III1<=I11I1IIIIII THEN BEGIN I1II1I:=1 END ELSE BEGIN I1II1I:=III1I.I11I1II1III1-III1I.
I111I1I11I1;END;END;END;IF III111IIIII1I=III1I.II111I1 THEN BEGIN IF III1I.I1I1II>=I11I1IIIIII THEN
BEGIN IF I1II1I=0 THEN I1II1I:=1;III1III1I:=III1I.I1I1II;IF III1III1I>II11I1I11II THEN III1III1I:=
II11I1I11II;END;END;IF I1II1I<>0 THEN BEGIN IF III1III1I<>0 THEN BEGIN I1I1111I11(I1II1I,III11I1);
IIII11I1(III1III1I-I1II1I+1,I111IIII);END;END;END;PROCEDURE II11II1;LABEL II11I1IIII111;VAR I11I1111
,II11III11I1,II11I11I1II1,III11I1,I111I1II1,II1II11I11,I1I11I1IIIII1:INT;IIII11II1111:I11;BEGIN
II1111II1I;II111IIII:=FALSE;I11I1III11I1I:=I1III1II;IF I11I11I1III THEN BEGIN III11I1:=1;
II11I11I1II1:=III1I.II11I11I1II1;IIII11II1111.I1I:=III1I.I1II1111II1.I1I;IF III1I.III11I1>III1I.
II11I11I1II1 THEN III1I.III11I1:=III1I.II11I11I1II1;I11I1111:=III1I.II11I11I1II1-III1I.III11I1+1;
II11III11I1:=I11I1111+I11II1.II11IIII1I1-1;III1IIIII(I11I1111);WHILE I11I1111<=II11III11I1 DO BEGIN
I1I1111I11(1,III11I1);IF III1I.II11111 THEN IF I11I1111>III1I.I111I11111 THEN IF I11I1111 II111I1 THEN I11I1III11I1I:=I111IIII;IF I11I1111=II11I11I1II1 THEN BEGIN I1I111II111(I1IIIIII1I,
II11II1II,III1I.I111I1I11I1);END ELSE BEGIN I111I1II1:=I11I11II11;II1II11I11:=SUCC(III1I.
I111IIIIIII1-III1I.I1II1111II1.I1II1II11111);IF II1II11I11>=0 THEN IF II1II11I11 I111I1II1:=II1II11I11;I1I111II111(III1I.I1II1111II1.I1I^,I111I1II1,III1I.I111I1I11I1);END;
I11I1III11I1I:=I1III1II;IF III1I.II11111 THEN I1I11111I1I1(III11I1,I11I1111);I11I1111:=SUCC(I11I1111
);III11I1:=SUCC(III11I1);IF NOT I1II1I11 THEN GOTO II11I1IIII111;END;II11I1IIII111: WHILE III11I1<=
I11II1.II11IIII1I1 DO BEGIN I1I1111I11(1,III11I1);I11II111I111;III11I1:=SUCC(III11I1);END;III1I.
II11I11I1II1:=II11I11I1II1;III1I.I1II1111II1.I1I:=IIII11II1111.I1I;END ELSE IF I111111I11I11 THEN
BEGIN I1I1111I11(1,III1I.III11I1);IF III1I.II11111 THEN IF III1I.II11I11I1II1>III1I.I111I11111 THEN
IF III1I.II11I11I1II1 III1I.I111I1I11I1);IF III1I.II11111 THEN I1I11111I1I1(III1I.III11I1,III1I.II11I11I1II1);END;
I11I11I1III:=FALSE;I111111I11I11:=FALSE;II111IIII:=TRUE;END;PROCEDURE II11I1I1(IIIIII1II:INT);VAR
I111III11I1II,I1III1I11III1:INT;BEGIN I111III11I1II:=I11I11II11-I11II1.I111I1II1+III1I.III11I;
I1III1I11III1:=III1I.I11I11+IIIIII1II;IF I1III1I11III1>I111III11I1II THEN I1III1I11III1:=
I111III11I1II ELSE IF I1III1I11III1 :=III1I.I111I1I11I1+(I1III1I11III1-III1I.I11I11);III1I.I11I11:=I1III1I11III1;I11I11I1III:=TRUE;END;
PROCEDURE II1I11(III11I:INT);BEGIN III1I.III11I:=III11I;I11I11I1III:=TRUE;III1I.I111I1I11I1:=III1I.
I11I11-III1I.III11I;END;PROCEDURE I111II1II1I(I11I1III1111:INT);BEGIN III1I.I11I11:=III1I.I11I11+
I11I1III1111;IF III1I.I11I11<1 THEN III1I.I11I11:=1;IF III1I.I11I11>I11I11II11 THEN III1I.I11I11:=
I11I11II11;III1I.III11I:=III1I.III11I+I11I1III1111;IF III1I.III11I>I11II1.I111I1II1 THEN II1I11(
I11II1.I111I1II1)ELSE IF III1I.III11I<1 THEN II1I11(1);END;FUNCTION I111I1I(I111I:INT):INT;BEGIN IF
I111I>II11II1II THEN I111I:=II11II1II+IIIIII1;IF I111I=0 THEN I111I:=1;I111I1I:=I111I;END;FUNCTION
I111111111I(I111III1,I111I:INT):I1I;VAR IIII11II1111:I11;BEGIN II11IIII(I111III1);IIII11II1111.I1I:=
III1I.I1II1111II1.I1I;IIII11II1111.I1II1II11111:=PRED(IIII11II1111.I1II1II11111+I111I1I(I111I));
I111111111I:=IIII11II1111.I1I;END;PROCEDURE II11III111III(I1II1II11111:INT);LABEL I1II1I1I1;BEGIN
III111I1;WHILE III1I.I1II1111II1.I1II1II11111<=I1II1II11111 DO BEGIN IF NOT I1II1I11 THEN BEGIN
II1I1I11I1;GOTO I1II1I1I1;END;END;IF I11I1I1II1I THEN;I1II1I1I1: I111II1II1I(SUCC(I1II1II11111-III1I
.I1II1111II1.I1II1II11111)-III1I.I11I11);IF III1I.III11I1>III1I.II11I11I1II1 THEN III1I.III11I1:=
III1I.II11I11I1II1;END;FUNCTION I1III1II111(VAR II1111II1:II1II1I1I):INT;VAR I11III1I:FILE;
II111II1111II:FILE;I1I11111III1,I1I1I,I1IIII1111II:Word;I1I111II1III1:II1II1I1I;IIII11:INTEGER;
II1I111II1:INTEGER;BEGIN I1III1II111:=0;II1111II1:=UpperCase(II1111II1);ASSIGN(I11III1I,II1111II1);
RESET(I11III1I,1);IF (INT24RESULT=0) THEN BEGIN CLOSE(I11III1I);IIII11:=POS('.',II1111II1);IF (
IIII11=0) THEN I1I111II1III1:=II1111II1+'.BAK'ELSE I1I111II1III1:=COPY(II1111II1,1,IIII11)+'BAK';IF
(I1I111II1III1<>II1111II1) THEN BEGIN ASSIGN(II111II1111II,I1I111II1III1);RESET(II111II1111II);IF (
INT24RESULT=0) THEN BEGIN CLOSE(II111II1111II);II1I111II1:=INT24RESULT;ERASE(II111II1111II);
II1I111II1:=INT24RESULT;END ELSE BEGIN CLOSE(II111II1111II);II1I111II1:=INT24RESULT;END;RENAME(
I11III1I,I1I111II1III1);II1I111II1:=INT24RESULT;END;END ELSE BEGIN CLOSE(I11III1I);II1I111II1:=
INT24RESULT;END;ASSIGN(I11III1I,II1111II1);REWRITE(I11III1I,1);IF INT24RESULT<>0 THEN BEGIN
I1III1II111:=II;END ELSE BEGIN I1I11111III1:=0;I1IIII1111II:=III1I.I1IIII1111II;IF I1IIII1111II<>0
THEN BEGIN BLOCKWRITE(I11III1I,III1I.I1III.PTR^,III1I.I1IIII1111II,I1IIII1111II);I1I11111III1:=
INT24RESULT;END;CLOSE(I11III1I);I1I1I:=INT24RESULT;IF (I1I11111III1<>0) OR (I1IIII1111II<>III1I.
I1IIII1111II) THEN BEGIN I1III1II111:=I1III111II1;END ELSE IF I1I1I<>0 THEN BEGIN I1III1II111:=
I11I1II1;END;END;END;PROCEDURE I11111I1III;VAR I11I1II1IIII:BOOLEAN;BEGIN I11I1II1IIII:=III1I.
II11111;III1I.II11111:=FALSE;IF (III1I.II111I1>0) AND (III1I.I1I1II>0) THEN IF (III1I.I111I11111>0)
AND (III1I.I11I1II1III1>0) THEN IF III1I.I111I11111 III1I.I111I11111=III1I.II111I1 THEN IF III1I.I11I1II1III1<=III1I.I1I1II THEN III1I.II11111:=TRUE;IF
(III1I.II11111) OR (I11I1II1IIII<>III1I.II11111) THEN I11I11I1III:=TRUE;IF III1I.II11111 THEN III1I.
IIII11II11III:=FALSE;END;PROCEDURE I1III11II(I1IIII1111II:INT);VAR III11I1IIII:I11;II1111I:INT;
BEGIN II1111I:=III1I.III11I1;III11I1IIII.PTR:=III1I.I1II1111II1.PTR;III1I.I111I11111:=III1I.
II11I11I1II1;III1I.I11I1II1III1:=III1I.I11I11;II11III111III(III1I.I1II1111II1.I1II1II11111+III1I.
I11I11+I1IIII1111II-2);III1I.II111I1:=III1I.II11I11I1II1;III1I.I1I1II:=III1I.I11I11;III1I.III11I1:=
II1111I;III1I.I1II1111II1.PTR:=III11I1IIII.PTR;III1I.II11I11I1II1:=III1I.I111I11111;I111II1II1I(
III1I.I11I1II1III1-III1I.I11I11);I11111I1III;END;FUNCTION I1II1I11II11I:BOOLEAN;BEGIN I1II1I11II11I
:=FALSE;IF (III1I.I111I11111 III1I.I11I1II1III1<=III1I.I11I11)) THEN IF (III1I.II111I1>III1I.II11I11I1II1) OR ((III1I.II111I1=
III1I.II11I11I1II1) AND (III1I.I1I1II>=III1I.I11I11)) THEN I1II1I11II11I:=TRUE;END;PROCEDURE
II11II1III;BEGIN IF II11II1II>0 THEN BEGIN IF III1I.I11I11<=II11II1II THEN BEGIN IF III1I.I11I11<
II11II1II THEN BEGIN MOVE(I1IIIIII1I[SUCC(III1I.I11I11)],I1IIIIII1I[III1I.I11I11],II11II1II-III1I.
I11I11);END;II11II1II:=PRED(II11II1II);III1I1II:=TRUE;I111111I11I11:=TRUE;IF III1I.II11I11I1II1=
III1I.I111I11111 THEN IF III1I.I11I11 I11I1II1III1);IF III1I.II11I11I1II1=III1I.II111I1 THEN IF III1I.I11I11 I1I1II:=PRED(III1I.I1I1II);END;END;END;FUNCTION I1III11:BOOLEAN;BEGIN I1III11:=FALSE;IF I11I1I1II1I
THEN BEGIN III1I.III11I1:=III1I.III11I1-1;IF III1I.III11I1<1 THEN BEGIN III1I.III11I1:=1;I11I11I1III
:=TRUE;END;I1III11:=TRUE;END;END;FUNCTION I111I111III:BOOLEAN;BEGIN I111I111III:=FALSE;IF
II1II1111I THEN BEGIN III1I.III11I1:=III1I.III11I1+1;IF III1I.III11I1>I11II1.II1I1III1I THEN BEGIN
III1I.III11I1:=I11II1.II1I1III1I;I11I11I1III:=TRUE;END;I111I111III:=TRUE;END;END;PROCEDURE
I1I11I11II1I;BEGIN IF III1I.II11I11I1II1>III1I.III11I1 THEN IF I11I1I1II1I THEN I11I11I1III:=TRUE;
END;PROCEDURE I11I1111II1I1;BEGIN IF II1II1111I THEN I11I11I1III:=TRUE;END;PROCEDURE II1111(III11I1:
INT);BEGIN IF III1I.II11I11I1II1 III11I1:=III11I1;I11I11I1III:=TRUE;END;END;PROCEDURE I11I1III(I111III1,III11I1,I111I:INT);BEGIN
II11IIII(I111III1);II1111(III11I1);I111II1II1I(I111I-III1I.I11I11);I11I11I1III:=TRUE;END;PROCEDURE
III1II;BEGIN WHILE III1I.III11I1>1 DO IF NOT I1III11 THEN EXIT;END;PROCEDURE I1I1III111I1;BEGIN
WHILE III1I.III11I1 I11I1III1111:INT;BEGIN IF III1I.II11I11I1II1<=III1I.III11I1 THEN BEGIN I11I1III1111:=1;III1I.III11I1
:=1;END ELSE BEGIN I11I1III1111:=III1I.II11I11I1II1-I11II1.II11IIII1I1+1;IF I11I1III1111 III11I1 THEN I11I1III1111:=III1I.III11I1;I11I11I1III:=TRUE;END;II11IIII(I11I1III1111);END;PROCEDURE
I1IIII11;BEGIN II11IIII(III1I.II11I11I1II1+I11II1.II11IIII1I1-1);I11I11I1III:=TRUE;END;PROCEDURE
II1III1I1I;BEGIN IF III1I.III11I1 I1I11I11II1I;END;PROCEDURE II1111I1I1II;BEGIN IF III1I.III11I1>1 THEN II1111(PRED(III1I.III11I1))
ELSE I11I1111II1I1;END;PROCEDURE II11111II;BEGIN I111II1II1I(1);END;PROCEDURE IIIIIII1III11;BEGIN
I111II1II1I(-1);END;PROCEDURE I1I11III1I1II;BEGIN I111II1II1I(1-III1I.I11I11);END;PROCEDURE
II1111I1111II;BEGIN I111II1II1I(SUCC(II11II1II)-III1I.I11I11);END;PROCEDURE I11I1111I;BEGIN IF III1I
.II11I11I1II1<>1 THEN BEGIN II11IIII(1);I11I11I1III:=TRUE;END;II1111(1);I1I11III1I1II;END;PROCEDURE
III1III1II1;VAR I1I11I1IIIII1:INT;BEGIN I1I11I1IIIII1:=III1I.II11I11I1II1;II11IIII(MAXINT);IF III1I.
II11I11I1II1<>I1I11I1IIIII1 THEN I11I11I1III:=TRUE;II1111(I11II1.II1I1III1I);I1I11III1I1II;END;
PROCEDURE I1III1111;BEGIN II11I1I1(-1);END;PROCEDURE II11III1I;BEGIN II11I1I1(1);END;PROCEDURE
I111II1II;LABEL 9999;VAR III1II1111:INT;BEGIN III1II1111:=PRED(III1I.I11I11);IF III1II1111>
II11II1II THEN III1II1111:=II11II1II;IF III1II1111<=1 THEN BEGIN IF I1III11 THEN II1111I1111II;EXIT;
END;IF NOT(I1IIIIII1I[III1II1111] IN II1II1I1) THEN BEGIN REPEAT III1II1111:=PRED(III1II1111);IF
III1II1111=1 THEN BEGIN IF I1IIIIII1I[III1II1111] IN II1II1I1 THEN I1I11III1I1II ELSE IF I1III11
THEN II1111I1111II;EXIT;END;UNTIL I1IIIIII1I[III1II1111] IN II1II1I1;END;REPEAT III1II1111:=PRED(
III1II1111);IF III1II1111=1 THEN BEGIN IF NOT(I1IIIIII1I[III1II1111] IN II1II1I1) THEN GOTO 9999
ELSE BEGIN I1I11III1I1II;EXIT;END;END;UNTIL NOT(I1IIIIII1I[III1II1111] IN II1II1I1);9999: III1II1111
:=SUCC(III1II1111);I111II1II1I(III1II1111-III1I.I11I11);END;PROCEDURE I1I1II1II;VAR III1II1111:INT;
BEGIN IF (III1I.I11I11=II11II1II) AND (I1IIIIII1I[III1I.I11I11]<>' ') THEN BEGIN II1111I1111II;EXIT;
END;IF (III1I.I11I11=0) OR (III1I.I11I11>=II11II1II) THEN BEGIN IF I111I111III THEN BEGIN
I1I11III1I1II;IF (II11II1II>0) AND (I1IIIIII1I[III1I.I11I11] IN II1II1I1) THEN EXIT;I1I1II1II;END;
EXIT;END;III1II1111:=III1I.I11I11;IF I1IIIIII1I[III1II1111] IN II1II1I1 THEN BEGIN REPEAT III1II1111
:=SUCC(III1II1111);IF III1II1111>=II11II1II THEN BEGIN II1111I1111II;EXIT;END;UNTIL NOT(I1IIIIII1I[
III1II1111] IN II1II1I1);END;REPEAT III1II1111:=SUCC(III1II1111);IF III1II1111>=II11II1II THEN
BEGIN II1111I1111II;EXIT;END;UNTIL I1IIIIII1I[III1II1111] IN II1II1I1;I111II1II1I(III1II1111-III1I.
I11I11);END;PROCEDURE III11I11II11;VAR I111III,III1I1,III1II1IIIIII:INT;BEGIN I111III:=III1I.
II11I11I1II1;III1I1:=III1I.III11I1;III1II1IIIIII:=III1I.I11I11;I11I1III(III1I.I111III,III1I.III1I1,
III1I.III1II1IIIIII-III1I.I11I11);III1I.I111III:=I111III;III1I.III1I1:=III1I1;III1I.III1II1IIIIII:=
III1II1IIIIII;END;PROCEDURE II1I1111II1;BEGIN III1I1II:=TRUE;I111111I11I11:=TRUE;I1IIIIII1I[III1I.
I11I11]:=I1III111.I1III111.CH;IF III1I.I11I11>II11II1II THEN II11II1II:=III1I.I11I11;II11111II;END;
PROCEDURE III1III1I1I11;VAR IIII1II1I1I1:INT;BEGIN IIII1II1I1I1:=III1I.I11I11-II11II1II;IF
IIII1II1I1I1>0 THEN BEGIN FILLCHAR(I1IIIIII1I[SUCC(II11II1II)],IIII1II1I1I1,' ');II11II1II:=
II11II1II+IIII1II1I1I1;END;END;PROCEDURE I11II1IIII1;BEGIN III1III1I1I11;II1I1111II1;END;PROCEDURE
I1I111I1II;VAR I111I1II1:INT;BEGIN IF III1I.I11I11=I11I11II11 THEN BEGIN II1I1111II1;EXIT;END;IF
III1I.II11I11I1II1=III1I.I111I11111 THEN IF III1I.I11I11<=III1I.I11I1II1III1 THEN III1I.I11I1II1III1
:=SUCC(III1I.I11I1II1III1);IF III1I.II11I11I1II1=III1I.II111I1 THEN IF III1I.I11I11<=III1I.I1I1II
THEN III1I.I1I1II:=SUCC(III1I.I1I1II);IF III1I.I11I11>II11II1II THEN BEGIN I11II1IIII1;EXIT;END;
I111I1II1:=II11II1II-III1I.I11I11+1;IF II11II1II=I11I11II11 THEN I111I1II1:=PRED(I111I1II1);MOVE(
I1IIIIII1I[III1I.I11I11],I1IIIIII1I[SUCC(III1I.I11I11)],I111I1II1);IF II11II1II II11II1II:=SUCC(II11II1II);II1I1111II1;END;PROCEDURE IIIIIIIII1;BEGIN IF III1I.I11I11>=II11II1II
THEN BEGIN I11II1IIII1;EXIT;END;II1I1111II1;END;PROCEDURE II1III1II1II1;BEGIN IF III1I.I1II1 THEN
I1I111I1II ELSE IIIIIIIII1;END;PROCEDURE II1II1I;BEGIN II11II11(I1III111);II1III1II1II1;END;
PROCEDURE I111I1II11I1;BEGIN IF III1I.II11I11I1II1 III1I.I111I11111);IF III1I.II11I11I1II1 III1I.II11I11I1II1=III1I.I111I11111 THEN BEGIN IF III1I.I11I11<=III1I.I11I1II1III1 THEN BEGIN III1I.
I111I11111:=SUCC(III1I.I111I11111);III1I.I11I1II1III1:=III1I.I11I1II1III1-III1I.I11I11+1;END;END;IF
III1I.II11I11I1II1=III1I.II111I1 THEN BEGIN IF III1I.I11I11<=III1I.I1I1II THEN BEGIN III1I.II111I1:=
SUCC(III1I.II111I1);III1I.I1I1II:=III1I.I1I1II-III1I.I11I11+1;END;END;I1III111.I1III111.CH:=
I1I1I111II1I;I1I111I1II;I1III111.I1III111.CH:=I11II111;I1I111I1II;I111II1II1I(-2);III111I1;
II1I1I11I1;I11I11I1III:=TRUE;END;PROCEDURE II1111111I1;VAR III1II1111:INT;BEGIN IF NOT III1I.I1II1
THEN BEGIN IF I111I111III THEN;I1I11III1I1II;END ELSE BEGIN IF III1I.IIIIII1II11I THEN BEGIN
III1II1111:=I1III1I1I(I1IIIIII1I,II11II1II);IF III1I.I11I11<=III1II1111 THEN III1II1111:=0;END;
I111I1II11I1;IF NOT I111I111III THEN BEGIN I111I1II11I1;IF I111I111III THEN;END;I1I11III1I1II;IF
III1I.IIIIII1II11I THEN BEGIN I1III111.I1III111.CH:=' ';WHILE III1I.I11I11 END;END;END;PROCEDURE I1IIIII1I11II;BEGIN WHILE III1I.I11I11<=II11II1II DO II11II1III;END;PROCEDURE
III1I11II;BEGIN IF III1I.II11I11I1II1 I111I11111);IF III1I.II11I11I1II1=III1I.I111I11111 THEN III1I.I11I1II1III1:=III1I.I11I1II1III1+III1I
.I11I11-1;END;IF III1I.II11I11I1II1 III1I.II11I11I1II1=III1I.II111I1 THEN III1I.I1I1II:=III1I.I1I1II+III1I.I11I11-1;END;IF NOT III1I.
IIII11II11III THEN I11111I1III;III1III1I1I11;I1IIIII1I11II;IIIIII1:=0;I1I111III111:=I1I11;III1I1II:=
TRUE;III111I1;II1I1I11I1;I11I11I1III:=TRUE;END;PROCEDURE I1I1I1I1III;BEGIN IF III1I.I11I11>1 THEN
BEGIN IIIIIII1III11;II11II1III;END ELSE IF I1III11 THEN BEGIN II1111I1111II;III1I11II;END;END;
PROCEDURE I11111II;BEGIN IF (II11II1II=0) OR (III1I.I11I11>II11II1II) THEN III1I11II ELSE II11II1III
;END;PROCEDURE I111I1I1I;BEGIN IF (II11II1II=0) OR (III1I.I11I11>II11II1II) THEN III1I11II ELSE
BEGIN IF I1IIIIII1I[III1I.I11I11] IN II1II1I1 THEN BEGIN WHILE (III1I.I11I11<=II11II1II) AND (
I1IIIIII1I[III1I.I11I11] IN II1II1I1) DO II11II1III;END ELSE IF I1IIIIII1I[III1I.I11I11]=' 'THEN
BEGIN WHILE (III1I.I11I11<=II11II1II) AND (I1IIIIII1I[III1I.I11I11]=' ') DO II11II1III;END ELSE
II11II1III;END;END;PROCEDURE I11III1I1I1I1;LABEL I11111II1I1;BEGIN IF (III1I.II11I11I1II1=III1I.
I111I11111) AND (III1I.II11I11I1II1=III1I.II111I1) THEN BEGIN III1I.I111I11111:=0;III1I.I11I1II1III1
:=0;III1I.II111I1:=0;III1I.I1I1II:=0;GOTO I11111II1I1;END;IF III1I.II11I11I1II1=III1I.I111I11111
THEN BEGIN III1I.I11I1II1III1:=1;END ELSE IF III1I.II11I11I1II1 I111I11111:=PRED(III1I.I111I11111);END;IF III1I.II11I11I1II1<=III1I.II111I1 THEN BEGIN III1I.II111I1
:=PRED(III1I.II111I1);IF III1I.II11I11I1II1=III1I.II111I1 THEN III1I.I1I1II:=I11I11II11;END;
I11111II1I1: IF NOT III1I.IIII11II11III THEN I11111I1III;I1I1111I;I11I11I1III:=TRUE;END;PROCEDURE
IIII1;BEGIN III1I.I111I11111:=0;III1I.I11I1II1III1:=0;III1I.II111I1:=0;III1I.I1I1II:=0;III1I.II11111
:=FALSE;III1I.IIII11II11III:=FALSE;I11I11I1III:=TRUE;END;PROCEDURE I11I1I11II;BEGIN III1I.
IIII11II11III:=NOT III1I.IIII11II11III;IF NOT III1I.IIII11II11III THEN I11111I1III ELSE III1I.
II11111:=FALSE;I11I11I1III:=TRUE;END;PROCEDURE I11I11III1I11;BEGIN III1I.I111I11111:=III1I.
II11I11I1II1;III1I.I11I1II1III1:=III1I.I11I11;I11111I1III;END;PROCEDURE I111I1I1I111;BEGIN III1I.
II111I1:=III1I.II11I11I1II1;III1I.I1I1II:=PRED(III1I.I11I11);IF III1I.I11I11=1 THEN BEGIN III1I.
II111I1:=PRED(III1I.II11I11I1II1);III1I.I1I1II:=I11I11II11;IF III1I.II111I1=0 THEN III1I.I1I1II:=0;
END;I11111I1III;END;PROCEDURE II11IIII1111;LABEL I111II1I,II1IIII1;VAR III1II1111:INT;BEGIN IF
I1IIIIII1I[III1I.I11I11] IN II1II1I1 THEN BEGIN III1I.I111I11111:=III1I.II11I11I1II1;III1I.II111I1:=
III1I.II11I11I1II1;III1I.II11111:=TRUE;III1II1111:=III1I.I11I11;REPEAT III1II1111:=PRED(III1II1111);
IF III1II1111=0 THEN GOTO I111II1I;UNTIL NOT(I1IIIIII1I[III1II1111] IN II1II1I1);I111II1I: III1I.
I11I1II1III1:=SUCC(III1II1111);III1II1111:=III1I.I11I11;REPEAT III1II1111:=SUCC(III1II1111);IF
III1II1111>II11II1II THEN GOTO II1IIII1;UNTIL NOT(I1IIIIII1I[III1II1111] IN II1II1I1);II1IIII1:
III1I.I1I1II:=PRED(III1II1111);I111111I11I11:=TRUE;END;END;PROCEDURE II1I1IIII111I;LABEL II11II1I,
I1I1II1I11,I1I111,9999;VAR I11III1I:FILE;II1111II1:II1II1I1I;II11I11II1I1:BYTE ABSOLUTE II1111II1;
I1I11111III1,I1IIII1111II,I11IIII11I:Word;II1I111I,II1II1111II1:I11;IIIII1III1,II1I11I11111I:BOOLEAN
;I1IIII1II11II:INT;III11I1IIII:I11;BEGIN III1III1I1I11;III111I1;I11I11I1III:=TRUE;II1I111I.I1I:=
I111111111I(III1I.II11I11I1II1,III1I.I11I11);III1I.II11111:=FALSE;II1I11I11111I:=FALSE;II11II1I:
II11I11II1I1:=0;IIII1I1I1I1('Read block from file: ',II1111II1);III111I111I(II1111II1,III1I.
III111I111I);IF II11I11II1I1=0 THEN GOTO 9999;ASSIGN(I11III1I,II1111II1);RESET(I11III1I,1024);IF
INT24RESULT<>0 THEN BEGIN I1111II1I11('File '+II1111II1+' not found.');GOTO II11II1I;END;
I1IIII1111II:=FILESIZE(I11III1I);IF I1IIII1111II>=64 THEN GOTO I1I1II1I11;RESET(I11III1I,1);
I1IIII1111II:=FILESIZE(I11III1I);IF I1IIII1111II>III1I.I111I1111 THEN GOTO I1I1II1I11;IF
I1IIII1111II=0 THEN BEGIN I1111II1I11('Empty file.');GOTO I1I111;END;II1I111(II1I111I.I1II1II11111,
I1IIII1111II);BLOCKREAD(I11III1I,II1I111I.PTR^,I1IIII1111II,I11IIII11I);I1I11111III1:=INT24RESULT;
CLOSE(I11III1I);IF I1I11111III1<>0 THEN BEGIN I1111II1I11('Read error.');GOTO 9999;END;II1II1111II1.
PTR:=II1I111I.PTR;II1II1111II1.I1II1II11111:=II1II1111II1.I1II1II11111+I1IIII1111II-1;IF
II1II1111II1.I1I^ =^Z THEN BEGIN II1I111(SUCC(II1II1111II1.I1II1II11111),-1);I1IIII1111II:=PRED(
I1IIII1111II);II1II1111II1.I1II1II11111:=PRED(II1II1111II1.I1II1II11111);END;II1I11I11111I:=TRUE;
GOTO I1I111;I1I1II1I11: I1111II1I11('File too large.');I1I111: CLOSE(I11III1I);9999: IF
II1I11I11111I THEN I1III11II(I1IIII1111II);II1I1I11I1;END;PROCEDURE I11I111I1II11;BEGIN IF III1I.
I111I11111<>0 THEN BEGIN I11I1III(III1I.I111I11111,I11II1.II11IIII1I1 DIV 2,III1I.I11I1II1III1);END;
END;PROCEDURE I1I1111I1;BEGIN IF III1I.II111I1<>0 THEN BEGIN I11I1III(III1I.II111I1,I11II1.
II11IIII1I1 DIV 2,III1I.I1I1II);END;END;FUNCTION I111I111II:BOOLEAN;VAR III1I111II11,I11II,
I1IIII1II1,I1IIII1I11I:I11;II1I1I111I111,I1I1I1:INT;BEGIN I111I111II:=FALSE;IF III1I.II11111 THEN
BEGIN IF NOT I1II1I11II11I THEN BEGIN III1III1I1I11;III111I1;III1I111II11.I1I:=III1I.I1II1111II1.I1I
;II1I1I111I111:=III1I.II11I11I1II1;I11II.I1I:=I111111111I(III1I.II11I11I1II1,III1I.I11I11);
I1IIII1II1.I1I:=I111111111I(III1I.I111I11111,III1I.I11I1II1III1);I1IIII1I11I.I1I:=I111111111I(III1I.
II111I1,III1I.I1I1II);I1I1I1:=I1IIII1I11I.I1II1II11111-I1IIII1II1.I1II1II11111+1;III1I.II11I11I1II1
:=II1I1I111I111;III1I.I1II1111II1.I1I:=III1I111II11.I1I;IF I1I1I1>III1I.I111I1111 THEN BEGIN
I1111II1I11('Block to large.');END ELSE BEGIN II1I111(I11II.I1II1II11111,I1I1I1);IF I1IIII1II1.
I1II1II11111>I11II.I1II1II11111 THEN BEGIN I1IIII1II1.I1II1II11111:=I1IIII1II1.I1II1II11111+I1I1I1;
I1IIII1I11I.I1II1II11111:=I1IIII1I11I.I1II1II11111+I1I1I1;END;IIII1I1I(I1IIII1II1.I1I^,I11II.I1I^,
I1I1I1);I1III11II(I1I1I1);I11I11I1III:=TRUE;I111I111II:=TRUE;END;II1I1I11I1;END;END;END;PROCEDURE
III111III1;VAR III1I111II11,I11II,I1IIII1II1,I1IIII1I11I:I11;I1I1I1,II1I1I111I111:INT;RESET:BOOLEAN;
BEGIN IF III1I.II11111 THEN BEGIN II1I1I111I111:=III1I.II11I11I1II1;III111I1;III1I111II11.PTR:=III1I
.I1II1111II1.PTR;I11II.I1I:=I111111111I(III1I.II11I11I1II1,III1I.I11I11);I1IIII1II1.I1I:=I111111111I
(III1I.I111I11111,III1I.I11I1II1III1);I1IIII1I11I.I1I:=I111111111I(III1I.II111I1,III1I.I1I1II);
I1I1I1:=I1IIII1I11I.I1II1II11111-I1IIII1II1.I1II1II11111+1;RESET:=FALSE;III1I.II11I11I1II1:=
II1I1I111I111;III1I.I1II1111II1.PTR:=III1I111II11.PTR;IF I11II.I1II1II11111>I1IIII1I11I.
I1II1II11111 THEN BEGIN I11II.I1II1II11111:=I11II.I1II1II11111-I1I1I1;RESET:=TRUE;END ELSE IF I11II.
I1II1II11111>=I1IIII1II1.I1II1II11111 THEN BEGIN I11I111I1II11;END;II1I111(I1IIII1I11I.I1II1II11111+1
,-I1I1I1);IF RESET THEN BEGIN II11IIII(1);II11III111III(I11II.I1II1II11111);END;IIII1;I11I11I1III:=
TRUE;II1I1I11I1;END;END;FUNCTION I11IIIIII:BOOLEAN;VAR III1I111II11,I11II,I1IIII1II1,I1IIII1I11I:I11
;II1I1I111I111,I1I1I1:INT;RESET:BOOLEAN;BEGIN I11IIIIII:=FALSE;IF III1I.II11111 THEN BEGIN IF NOT
I1II1I11II11I THEN BEGIN III1III1I1I11;III111I1;III1I111II11.I1I:=III1I.I1II1111II1.I1I;
II1I1I111I111:=III1I.II11I11I1II1;I11II.I1I:=I111111111I(III1I.II11I11I1II1,III1I.I11I11);I1IIII1II1
.I1I:=I111111111I(III1I.I111I11111,III1I.I11I1II1III1);I1IIII1I11I.I1I:=I111111111I(III1I.II111I1,
III1I.I1I1II);I1I1I1:=I1IIII1I11I.I1II1II11111-I1IIII1II1.I1II1II11111+1;III1I.II11I11I1II1:=
II1I1I111I111;III1I.I1II1111II1.I1I:=III1I111II11.I1I;IF I1I1I1>III1I.I111I1111 THEN BEGIN
I1111II1I11('Block to large.');END ELSE BEGIN RESET:=I11II.I1II1II11111>I1IIII1I11I.I1II1II11111;
II1I111(I11II.I1II1II11111,I1I1I1);IF I1IIII1II1.I1II1II11111>I11II.I1II1II11111 THEN BEGIN
I1IIII1II1.I1II1II11111:=I1IIII1II1.I1II1II11111+I1I1I1;I1IIII1I11I.I1II1II11111:=I1IIII1I11I.
I1II1II11111+I1I1I1;END;IIII1I1I(I1IIII1II1.I1I^,I11II.I1I^,I1I1I1);II1I111(I1IIII1I11I.I1II1II11111
+1,-I1I1I1);IF RESET THEN BEGIN I11II.I1II1II11111:=I11II.I1II1II11111-I1I1I1;II11IIII(1);
II11III111III(I11II.I1II1II11111);END;I1III11II(I1I1I1);I11I11I1III:=TRUE;I11IIIIII:=TRUE;END;
II1I1I11I1;END;END;END;PROCEDURE I1III111IIII1;LABEL II11II1I,9999;VAR I11III1I:FILE;II1111II1:
II1II1I1I;II11I11II1I1:BYTE ABSOLUTE II1111II1;BEGIN III111I1;II11I11II1I1:=0;II11II1I: II11I11II1I1
:=0;IIII1I1I1I1('Save File as ( to use current filename): ',II1111II1);III111I111I(II1111II1,
III1I.III111I111I);IF II11I11II1I1=0 THEN II1111II1:=III1I.I111I1I1;ASSIGN(I11III1I,II1111II1);RESET
(I11III1I,1);IF INT24RESULT=0 THEN BEGIN IF II11I1I111II('Overwrite existing file (Y/N)? ',
I11I111I1I1)<>'Y'THEN BEGIN CLOSE(I11III1I);GOTO II11II1I;END;END;REWRITE(I11III1I,1);IF INT24RESULT
<>0 THEN BEGIN I1111II1I11('Error opening file '+II1111II1);GOTO II11II1I;END;CLOSE(I11III1I);IF
INT24RESULT<>0 THEN;IF I1III1II111(II1111II1)<>0 THEN I1111II1I11('Error writing file '+II1111II1);9999
: II1I1I11I1;END;PROCEDURE I11II1I1I;LABEL II11II1I,9999;VAR I11III1I:FILE;II1111II1:II1II1I1I;
II11I11II1I1:BYTE ABSOLUTE II1111II1;III1I111II11,I1IIII1I11I,I1IIII1II1:I11;I1I1I1,II1I1I111I111:
INT;BEGIN IF III1I.II11111 THEN BEGIN II1I1I111I111:=III1I.II11I11I1II1;III1I111II11.I1I:=III1I.
I1II1111II1.I1I;III111I1;II11I11II1I1:=0;II11II1I: II11I11II1I1:=0;IIII1I1I1I1(
'Write block to file: ',II1111II1);III111I111I(II1111II1,III1I.III111I111I);IF II11I11II1I1=0 THEN
GOTO 9999;ASSIGN(I11III1I,II1111II1);RESET(I11III1I,1);IF INT24RESULT=0 THEN BEGIN IF II11I1I111II(
'Overwrite existing file (Y/N)? ',I11I111I1I1)<>'Y'THEN GOTO II11II1I;END;REWRITE(I11III1I,1);IF
INT24RESULT<>0 THEN BEGIN I1111II1I11('Error opening file '+II1111II1);GOTO II11II1I;END;I1IIII1II1.
I1I:=I111111111I(III1I.I111I11111,III1I.I11I1II1III1);I1IIII1I11I.I1I:=I111111111I(III1I.II111I1,
III1I.I1I1II);I1I1I1:=I1IIII1I11I.I1II1II11111-I1IIII1II1.I1II1II11111+1;BLOCKWRITE(I11III1I,
I1IIII1II1.PTR^,I1I1I1);IF INT24RESULT<>0 THEN I1111II1I11('Error writing file.');CLOSE(I11III1I);
IF INT24RESULT<>0 THEN;9999: III1I.II11I11I1II1:=II1I1I111I111;III1I.I1II1111II1.I1I:=III1I111II11.
I1I;II1I1I11I1;END;END;PROCEDURE II111II1IIII1;BEGIN II1I1I11I1;I111111I11I11:=TRUE;END;PROCEDURE
I1IIIII111III;VAR I1IIII1II1:I11;III1II1111,I111III1I1I1I:INT;BEGIN IF NOT I11II1I111I THEN EXIT;
I1IIII1II1.I1I:=III1I.I1II1111II1.I1I;IF I1II1I11 THEN;I111III1I1I1I:=III1I.I1II1111II1.I1II1II11111
-I1IIII1II1.I1II1II11111-1;IF (I111III1I1I1I>0) AND (I111III1I1I1I>III1I.I11I11) THEN BEGIN IF
I111III1I1I1I>I1 THEN I111III1I1I1I:=I1;IIII1I1I(I1IIII1II1.I1I^,I1I1II11I11I,I111III1I1I1I);END
ELSE BEGIN I1I11III1I1II;EXIT;END;III1II1111:=III1I.I11I11+1;WHILE (III1II1111<=I111III1I1I1I) AND (
I1I1II11I11I[III1II1111]<>' ') DO III1II1111:=SUCC(III1II1111);WHILE (III1II1111<=I111III1I1I1I)
AND (I1I1II11I11I[III1II1111]=' ') DO III1II1111:=SUCC(III1II1111);IF III1I.I1II1 THEN BEGIN
I1III111.I1III111.CH:=' ';WHILE III1I.I11I11 III1II1111-III1I.I11I11);END;FUNCTION II1I1III1111(VAR IIII:II1II1I1I;UpperCase:BOOLEAN):BOOLEAN;
LABEL 9999;VAR I111III1,I1IIII11III1,I111I1II1,II1I111I:INT;I11I1I:BYTE ABSOLUTE IIII;III1II1:
AnyStr ABSOLUTE I11111I;BEGIN II1I1III1111:=FALSE;III111I1;I111III1:=1;REPEAT I1IIII11III1:=1;IF
I111III1=1 THEN I1IIII11III1:=III1I.I11I11;I111I1II1:=SUCC(II11II1II-I1IIII11III1);IF I111I1II1>=
I11I1I THEN BEGIN I11111I:=II11II1II;IF UpperCase THEN II111I11IIII(I11111I);II1I111I:=POS(IIII,COPY
(III1II1,I1IIII11III1,255));IF II1I111I>0 THEN BEGIN I111II1II1I(PRED(I1IIII11III1+II1I111I+I11I1I)-
III1I.I11I11);I11I11I1III:=TRUE;II1I1III1111:=TRUE;GOTO 9999;END;END;I111III1:=SUCC(I111III1);UNTIL
NOT I111I111III;9999: IF UpperCase THEN II1I1I11I1;END;FUNCTION I1II1I1I111I(VAR I111II1I11:
II1II1I1I;IIIIIII1:BOOLEAN):BOOLEAN;VAR II11I11II1:BYTE ABSOLUTE I111II1I11;BEGIN I1II1I1I111I:=TRUE
;IF NOT IIIIIII1 THEN BEGIN II11I11II1:=0;IIII1I1I1I1('Search string: ',I111II1I11);END;IF
II11I11II1=0 THEN I1II1I1I111I:=FALSE;END;PROCEDURE II1IIII111(IIIIIII1:BOOLEAN);CONST IIIIIIII1I11:
BOOLEAN=FALSE;II111II11II1:BOOLEAN=FALSE;VAR II11I11II1:BYTE ABSOLUTE I111II1I11;II1I1I111I111:INT;
III1I111II11:I11;III1I1I1111:II1II1I1I;I1I11I1I11:BYTE ABSOLUTE III1I1I1111;BEGIN IF NOT
I1II1I1I111I(I111II1I11,IIIIIII1) THEN EXIT;I1III1:=II11II;IF NOT IIIIIII1 THEN BEGIN I1I11I1I11:=0;
IIII1I1I1I1('Options: ',III1I1I1111);II111I11IIII(III1I1I1111);IIIIIIII1I11:=POS('U',III1I1I1111)>0;
II111II11II1:=POS('G',III1I1I1111)>0;IF IIIIIIII1I11 THEN II111I11IIII(I111II1I11);END;II1I1I111I111
:=III1I.II11I11I1II1;III1I111II11.PTR:=III1I.I1II1111II1.PTR;IF II111II11II1 THEN II11IIII(1);IF
II1I1III1111(I111II1I11,IIIIIIII1I11) THEN EXIT;I1111II1I11('"'+I111II1I11+'" NOT found.');III1I.
II11I11I1II1:=II1I1I111I111;III1I.I1II1111II1.PTR:=III1I111II11.PTR;II1I1I11I1;END;PROCEDURE
III11I111II1I(IIIIIII1:BOOLEAN);CONST IIIIIIII1I11:BOOLEAN=FALSE;II11111I1:BOOLEAN=TRUE;II111II11II1
:BOOLEAN=FALSE;VAR II11I11II1:BYTE ABSOLUTE I111II1I11;I11III1I1:BYTE ABSOLUTE II1II111I1;III1II1111
,II1I1I111I111:INT;III1I111II11:I11;I1I1111:BOOLEAN;CH:CHAR;III1I1I1111:II1II1I1I;I1I11I1I11:BYTE
ABSOLUTE III1I1I1111;BEGIN IF NOT I1II1I1I111I(I111II1I11,IIIIIII1) THEN EXIT;I1III1:=II111I11;IF
NOT IIIIIII1 THEN BEGIN I11III1I1:=0;IIII1I1I1I1('Replace string: ',II1II111I1);END;IF NOT IIIIIII1
THEN BEGIN I1I11I1I11:=0;IIII1I1I1I1('Options: ',III1I1I1111);II111I11IIII(III1I1I1111);IIIIIIII1I11
:=POS('U',III1I1I1111)>0;II11111I1:=POS('N',III1I1I1111)=0;II111II11II1:=POS('G',III1I1I1111)>0;IF
IIIIIIII1I11 THEN II111I11IIII(I111II1I11);END;II1I1I111I111:=III1I.II11I11I1II1;III1I111II11.PTR:=
III1I.I1II1111II1.PTR;IF II111II11II1 THEN II11IIII(1);I1I1111:=FALSE;WHILE II1I1III1111(I111II1I11,
IIIIIIII1I11) DO BEGIN I1I1111:=TRUE;I11I11I1III:=TRUE;II11II1;IF II11111I1 THEN BEGIN I1I1111I11(
III1I.III11I-II11I11II1,III1I.III11I1);IIII11I1(II11I11II1,III11III);I111111I11I11:=TRUE;CH:=
II11I1I111II('Replace (Y/N)? ',I11I111I1I1);END;IF (II11111I1 AND (CH='Y')) OR (NOT II11111I1) THEN
BEGIN FOR III1II1111:=1 TO II11I11II1 DO I1I1I1I1III;FOR III1II1111:=1 TO I11III1I1 DO BEGIN
I1III111.I1III111.CH:=II1II111I1[III1II1111];I1I111I1II;END;END;IF NOT II111II11II1 THEN EXIT;END;
IF NOT I1I1111 THEN BEGIN III1I.II11I11I1II1:=II1I1I111I111;III1I.I1II1111II1.PTR:=III1I111II11.PTR;
II1I1I11I1;I1111II1I11('"'+I111II1I11+'" NOT found.');END;END;PROCEDURE I1111I;BEGIN IF I1III1=
II11II THEN II1IIII111(TRUE)ELSE IF I1III1=II111I11 THEN III11I111II1I(TRUE);END;PROCEDURE II1III1;
CONST I1III1III1=5;VAR I1II1I1I1II:Menu_Type;II1I11II:BOOLEAN;III1II11II:INTEGER;Local_Save:
Saved_Screen_Ptr;CH:CHAR;PROCEDURE I111II(II1II1II1I:AnyStr);BEGIN WRITELN(' ',
II1II1II1I);END;PROCEDURE II11111I11II1;VAR CH:CHAR;BEGIN WRITELN('CURSOR MOVEMENT');WRITELN(' ');
I111II('Character left ^S Left arrow');I111II('Character right ^D Right arrow');
I111II('Word left ^A Ctrl left arrow');I111II(
'Word right ^F Ctrl right arrow');I111II('Line up ^E Up arrow');
I111II('Line down ^X Down arrow');I111II('Scroll up ^W');I111II(
'Scroll down ^Z');I111II('Page up ^R PgUp');I111II(
'Page down ^C PgDn');I111II('Left end of line ^Q^S Home');I111II(
'Right end of line ^Q^D End');I111II('Top of file ^Q^R Ctrl PgUp');I111II(
'Bottom of file ^Q^C Ctrl PgDn');I111II('End of screen ^Q^X Ctrl Home');I111II(
'Top of screen ^Q^E Ctrl End');I111II('Start of marked block ^Q^B');I111II(
'End of marked block ^Q^K');I111II('Previous position ^Q^P');END;PROCEDURE IIII1111II;VAR CH:
CHAR;BEGIN WRITELN('INSERT AND DELETE');WRITELN(' ');I111II('Insert mode on/off ^V Ins');
I111II('Insert line ^N F6');I111II('Delete line ^Y F7');I111II(
'Delete to end of line ^Q^Y');I111II('Delete right word ^T');I111II('Delete char at cursor ^G');
I111II('Delete left char ');END;PROCEDURE II1I1I1;VAR CH:CHAR;BEGIN WRITELN(
'BLOCK COMMANDS');WRITELN(' ');I111II('Mark block start ^K^B F8');I111II(
'Mark block end ^K^K F9');I111II('Mark single word ^K^T');I111II(
'Hide/show block ^K^H');I111II('Copy block ^K^C');I111II(
'Move block ^K^V');I111II('Delete block ^K^Y');I111II(
'Read block from file ^K^R');I111II('Write block to file ^K^W');END;PROCEDURE III111I11III;VAR CH
:CHAR;BEGIN WRITELN('MISCELLANEOUS');WRITELN(' ');I111II('End edit (save file) ^K^D F5');I111II(
'Quit edit (no save) ^K^X F10');I111II('Tab ^I Tab');I111II(
'Auto tab on/off ^Q^I');I111II('Restore line (undo) ^Q^L F2');I111II(
'Find ^Q^F F3');I111II('Find and replace ^Q^A F4');I111II(
'Repeat last find ^L');I111II('Control char prefix ^P');I111II(
'Help F1');END;BEGIN Save_Screen(Local_Save);Make_A_Menu(I1II1I1I1II,
I1III1III1,10,30,0,0,I1III1III1,'Edit help: ',
'C)ursor movements;I)nsert and delete;B)lock commands;M)iscellaneous;Q)uit;',FALSE);II1I11II:=FALSE;
REPEAT PibTerm_Window(1,2,Max_Screen_Col,PRED(Max_Screen_Line));Clear_Window;Menu_Display_Choices(
I1II1I1I1II);III1II11II:=Menu_Get_Choice(I1II1I1I1II,Erase_Menu);IF (III1II11II<>I1III1III1) THEN
BEGIN CASE III1II11II OF 1:II11111I11II1;2:IIII1111II;3:II1I1I1;4:III111I11III;END;WRITELN;WRITE(
'Hit ESC to return to help menu: ');Read_Kbd(CH);WHILE PibTerm_KeyPressed DO Read_Kbd(CH);END ELSE
II1I11II:=TRUE;UNTIL II1I11II;Restore_Screen(Local_Save);END;PROCEDURE II1III1I(VAR III1I11I111II:
I11I1I11);BEGIN MyFreeMem(III1I11I111II.I1III.PTR,III1I11I111II.III1I1II1I1II);END;PROCEDURE
III1II111III(VAR III1I11I111II:I11I1I11);BEGIN III1I11I111II.III11I:=1;III1I11I111II.III11I1:=1;
III1I11I111II.I111I1I11I1:=0;III1I11I111II.I11I11:=1;III1I11I111II.II11I11I1II1:=1;III1I11I111II.
I111III:=1;III1I11I111II.III1II1IIIIII:=1;III1I11I111II.III1I1:=1;III1I11I111II.II1I1I:=FALSE;
III1I11I111II.I111I1111:=III1I11I111II.III1I1II1I1II;III1I11I111II.I1IIII1111II:=0;III1I11I111II.
I1II1111II1:=III1I11I111II.I1III;III1I11I111II.I111IIIIIII1:=PRED(III1I11I111II.I1III.I1II1II11111);
III1I11I111II.II11111:=FALSE;III1I11I111II.IIII11II11III:=FALSE;III1I11I111II.I111I11111:=0;
III1I11I111II.I11I1II1III1:=0;III1I11I111II.II111I1:=0;III1I11I111II.I1I1II:=0;III1I11I111II.
I111I1I1[0]:=#0;END;PROCEDURE II1I11I1III(VAR III1I11I111II:I11I1I11;VAR II1111II1:II1II1I1I);BEGIN
III1I11I111II.I111I1I1:=II1111II1;END;FUNCTION III1III1II1I(VAR III1I11I111II:I11I1I11;III1II11I111:
Word;I1I111II1I,IIIII1,III11,I1I11III:INT;I1III1I1:BOOLEAN;III111I111I:I1II1111I11I):INT;LABEL 9999;
VAR II1III1III:LongInt;BEGIN II111I11II11(III1I11I111II);III1III1II1I:=0;I1IIIIIII11I(I1I111II1I,
IIIII1,III11,I1I11III,I1III1I1);II1III1III:=MAXAVAIL;IF (II1III1III III1III1II1I:=1;GOTO 9999;END;III1I.III1I1II1I1II:=III1II11I111;GETMEM(III1I.I1III.PTR,III1II11I111)
;IF (III1I.I1III.PTR=NIL) THEN BEGIN III1III1II1I:=1;GOTO 9999;END;III1II111III(III1I);III1I.
III111I111I:=III111I111I;III1I.I1II1:=TRUE;III1I.IIIIII1II11I:=TRUE;9999: II1II1II1111(III1I11I111II
);END;FUNCTION II1I111111I(VAR III1I11I111II:I11I1I11;II1111II1:II1II1I1I):INT;LABEL 9999;VAR
I11III1I:FILE;I11I1III1,I1IIII1111II,I11IIII11I:Word;IIII11II1111:I11;BEGIN III1II111III(
III1I11I111II);II111I11II11(III1I11I111II);II1I111111I:=0;III1I.I111I1I1:=II1111II1;ASSIGN(I11III1I,
III1I.I111I1I1);RESET(I11III1I,1024);IF IORESULT<>0 THEN BEGIN II1I111111I:=II;GOTO 9999;END;
I1IIII1111II:=FILESIZE(I11III1I);IF (I1IIII1111II>64) THEN BEGIN II1I111111I:=I1I111I1I;CLOSE(
I11III1I);GOTO 9999;END;RESET(I11III1I,1);I1IIII1111II:=FILESIZE(I11III1I);IF (I1IIII1111II>III1I.
III1I1II1I1II) THEN BEGIN II1I111111I:=I1I111I1I;CLOSE(I11III1I);GOTO 9999;END;IF I1IIII1111II<>0
THEN BEGIN BLOCKREAD(I11III1I,III1I.I1III.PTR^,I1IIII1111II,I11IIII11I);I11I1III1:=IORESULT;CLOSE(
I11III1I);IF I11I1III1<>0 THEN BEGIN II1I111111I:=II111II111;GOTO 9999;END;III1I.I1IIII1111II:=
I11IIII11I;III1I.I111IIIIIII1:=III1I.I1III.I1II1II11111+I11IIII11I-1;III1I.I111I1111:=III1I.
I111I1111-I11IIII11I;IIII11II1111.I1II1II11111:=III1I.I111IIIIIII1;IIII11II1111.II111I11II:=III1I.
I1III.II111I11II;IF IIII11II1111.I1I^ =^Z THEN BEGIN III1I.I111IIIIIII1:=PRED(III1I.I111IIIIIII1);
III1I.I1IIII1111II:=PRED(III1I.I1IIII1111II);III1I.I111I1111:=SUCC(III1I.I111I1111);END;END;9999:
II1II1II1111(III1I11I111II);END;FUNCTION I1I11I1111I1(VAR III1I11I111II:I11I1I11;I1I111II1I,IIIII1,
III11,I1I11III:INT;II11I:I111II1111I;I111III1,I111I:INT;VAR II1II1):INT;LABEL III1II11,9999;VAR
I11II111IIII1,III1II1111,I111I1II1:INT;I111III,III1II1IIIIII,III1I1:INT;II1II1I111II:BOOLEAN;
I111111I1I1:ARRAY[0..100] OF INT ABSOLUTE II1II1;BEGIN II111I11II11(III1I11I111II);IIII111:=0;
II1III1I11I(I1I111II1I,IIIII1,III11,I1I11III,II11I);IF (I111III1<>0) AND (I111I<>0) THEN BEGIN
I11I1III(I111III1,I11II1.II11IIII1I1 DIV 2,I111I-III1I.I11I11);END;II1I1I11I1;II1III11I:=FALSE;
I11I11I1III:=TRUE;I1II1I11I:=TRUE;REPEAT I111III:=III1I.II11I11I1II1;III1II1IIIIII:=III1I.I11I11;
III1I1:=III1I.III11I1;II11II1;II1II111I1I(III1I.III11I,III1I.III11I1);II11II11(I1III111);
II1II1I111II:=FALSE;I11II111IIII1:=1;III1II1111:=0;REPEAT I111I1II1:=I111111I1I1[III1II1111];IF
I111I1II1=0 THEN GOTO III1II11;III1II1111:=SUCC(III1II1111);IF I111111I1I1[III1II1111]=I1III111.
I11I1III1 THEN BEGIN IIII111:=I11II111IIII1;IF I111I1II1=1 THEN GOTO 9999 ELSE BEGIN II1II1I111II:=
TRUE;III1II1111:=SUCC(III1II1111);GOTO III1II11;END;END;III1II1111:=III1II1111+I111I1II1;
I11II111IIII1:=SUCC(I11II111IIII1);UNTIL FALSE;III1II11: IF I1III111.I1I1I1II11=I11III1I11 THEN
I1I111111I(I1III111);IF II1II1I111II THEN BEGIN II1II1I111II:=FALSE;IF I111111I1I1[III1II1111]=
I1III111.I11I1III1 THEN GOTO 9999;END;CASE I1III111.I1I1I1II11 OF I1II1II1:II1III1II1II1;
IIII1I1I11II1:I1I1I1I1III;III1:I11111II;I1I1II111:II1111111I1;II1II1III:IF I111I111III THEN;
II11III1II:IF I1III11 THEN;I1I1III1I:I11III111;I1II1I111I1:I1IIII11;IIIII1I1I:I1I11I11II1I;I1IIIIIII
:I11I1111II1I1;IIII11111I1I1:IIIIIII1III11;I111I1:II11111II;I1111I1111II:I111II1II;I11I:I1I1II1II;
I111IIIIII1II:I1I11III1I1II;III111III:II1111I1111II;II1I1:II11III1I;II1I1I11:I1III1111;I111I1II1I1I:
I11III1I1I1I1;I11I1IIII:II1III1I1I;I1111I1:II1111I1I1II;I111IIII11I:II1III11I:=TRUE;I1I1I111:II1II1I
;I1I1II11111I:III1II;IIIII:I1I1III111I1;II1I1I111:I11I1111I;I11III:III1III1II1;I1II11I1I:
III11I11II11;I11II1111I:BEGIN III1I.I1II1:=NOT III1I.I1II1;I1II1I11I:=TRUE;END;I11I111111I:
I1IIIII1I11II;I1I11I1111I:I111I1II11I1;III1IIII1II:I111I1I1I;IIII1II1111:I11I11III1I11;IIIII1II11:
I111I1I1I111;I1I11III1I1I:II11IIII1111;I1II11I1III11:II1I1IIII111I;I111I11I1:I11I111I1II11;II1IIIII:
I1I1111I1;III111I:IF I111I111II THEN;IIII1I1:III111III1;III1III1I1:IF I11IIIIII THEN;III1I1II1:
I11II1I1I;III111I111II:I11I1I11II;III1II1I11I1:BEGIN III1I.IIIIII1II11I:=NOT III1I.IIIIII1II11I;
I1II1I11I:=TRUE;END;I1I11I:II111II1IIII1;II1III:I1IIIII111III;II11II:II1IIII111(FALSE);II111I11:
III11I111II1I(FALSE);I11IIIIII111I:I1111I;II1:I1III111IIII1;IIII1III1:II1III1;II1II:BEGIN IIII111:=-1
;II1III11I:=TRUE;END;IIIIII:;ELSE ;END;IF (I111III<>III1I.II11I11I1II1) OR (III1II1IIIIII<>III1I.
I11I11) OR (III1I1<>III1I.III11I1) THEN BEGIN III1I.I111III:=I111III;III1I.III1II1IIIIII:=
III1II1IIIIII;III1I.III1I1:=III1I1;END;UNTIL II1III11I;9999: III111I1;II1II1II1111(III1I11I111II);
I1I11I1111I1:=IIII111;END;FUNCTION I1II1I111II11(VAR III1I11I111II:I11I1I11):BOOLEAN;BEGIN
I1II1I111II11:=III1I11I111II.II1I1I;END;FUNCTION II1I1II1(VAR III1I11I111II:I11I1I11):INT;BEGIN
II111I11II11(III1I11I111II);II1I1II1:=I1III1II111(III1I.I111I1I1);III1I.II1I1I:=FALSE;II1II1II1111(
III1I11I111II);END;


  3 Responses to “Category : Pascal Source Code
Archive   : PIBT41S1.ZIP
Filename : EDITSUB2.MOD

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/