home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programming
/
powerprogramming1994.iso
/
progtool
/
pibterm
/
pibt41s1.arc
/
EDITSUB1.MOD
< prev
next >
Wrap
Text File
|
1988-03-07
|
16KB
|
164 lines
PROCEDURE I1I1111I11(III11I:INT;III11I1:INT);BEGIN II1II111I1II:=III11I;I1I1III1II111:=III11I1;
II1I11I111I:=III111I1I1II1+((PRED(III11I)+PRED(III11I1)*I1111) SHL 1);END;PROCEDURE II1II111I1I(
III11I,III11I1:INT);BEGIN I1I1111I11(III11I,III11I1);INLINE($B4/$02 /$8A/$3E/>I11111111 /$8A/$76/<
III11I1 /$02/$36/>IIII11I1I /$80/$EE/$02 /$8A/$56/<III11I /$02/$16/>I1I111II1 /$80/$EA/$02 /$55 /$CD
/$10 /$5D );END;PROCEDURE III1IIII1(I1I111II1I,IIIII1,III11,I1I11III:INT);BEGIN I1I111II1:=
I1I111II1I;IIII1I:=III11;IIII11I1I:=IIIII1;IIII1II:=I1I11III;I1I1II1III1:=III11-I1I111II1I+1;II111:=
I1I11III-IIIII1+1;III111I1I1II1:=((((IIIII1-1)*I1111)+I1I111II1I-1)*2)+(I11111111*4096);I1I1111I11(1
,1);END;PROCEDURE I1I111II111(VAR I111III1;I111I1II1:INT;I1II1II11111:INT);VAR III1II1I11:Word;
II1II11II11:Word;BEGIN IF (MultiTasker=DoubleDos) THEN BEGIN TurnOffTimeSharing;Get_Screen_Address(
DesqView_Screen);END;II1II11II11:=II1I11I111I;INLINE($A0/>Wait_For_Retrace/$8A/$26/>I11I1III11I1I/$89
/$86/>III1II1I11/$FC/$F6/$06/>Write_Screen_Memory/$01/$75/$03/$E9/$BE/$00/$1E/$C4/$3E/>
DesqView_Screen/$8B/$1E/>II1I11I111I/$01/$DF/$8B/$9E/>I1II1II11111/$8B/$8E/>I111I1II1/$8B/$16/>
I1I1II1III1/$2B/$16/>II1II111I1II/$42/$29/$D9/$81/$F9/$00/$00/$7F/$03/$E9/$6D/$00/$39/$D1/$7E/$02/$89
/$D1/$C5/$B6/>I111III1/$87/$D9/$E3/$0B/$AC/$3C/$0D/$74/$59/$3C/$0A/$74/$55/$E2/$F5/$89/$D9/$8B/$86/>
III1II1I11/$D0/$D8/$73/$26/$52/$53/$BA/>CRT_Status/$AC/$3C/$0D/$74/$17/$3C/$0A/$74/$13/$89/$C3/$EC/$A8
/$01/$75/$FB/$FA/$EC/$A8/$01/$74/$FB/$89/$D8/$AB/$FB/$E2/$E4/$5B/$5A/$E9/$0C/$00/$AC/$3C/$0D/$74/$07
/$3C/$0A/$74/$03/$AB/$E2/$F4/$1F/$29/$CB/$29/$DA/$80/$3E/>II111IIII/$00/$74/$0C/$89/$3E/>II1I11I111I
/$01/$1E/>II1II111I1II/$E9/$FB/$00/$1F/$89/$D1/$E3/$23/$B0/$20/$80/$7E/<III1II1I11/$00/$75/$05/$F3/$AB
/$E9/$E9/$00/$BA/>CRT_Status/$89/$C3/$EC/$A8/$01/$75/$FB/$FA/$EC/$A8/$01/$74/$FB/$89/$D8/$AB/$FB/$E2
/$EF/$E9/$D0/$00/$1E/$B4/$03/$B7/$00/$55/$CD/$10/$5D/$07/$52/$8B/$9E/>I1II1II11111/$8B/$8E/>
I111I1II1/$8B/$16/>I1I1II1III1/$2B/$16/>II1II111I1II/$42/$29/$D9/$81/$F9/$00/$00/$7F/$03/$E9/$8F/$00
/$39/$D1/$7E/$02/$89/$D1/$C5/$B6/>I111III1/$87/$D9/$E3/$0B/$AC/$3C/$0D/$74/$7A/$3C/$0A/$74/$76/$E2/$F5
/$89/$D9/$52/$53/$31/$D2/$26/$A1/>II1I11I111I/$26/$F7/$36/>Max_Screen_Col/$D1/$E8/$88/$C6/$26/$8A/$16
/>II1II111I1II/$FE/$CA/$06/$1E/$56/$51/$52/$55/$B4/$02/$B7/$00/$CD/$10/$5D/$5A/$59/$5E/$1F/$8B/$9E/>
III1II1I11/$86/$FB/$AC/$3C/$0D/$74/$25/$3C/$0A/$74/$21/$1E/$56/$51/$53/$55/$52/$B4/$09/$B7/$00/$B9/$01
/$00/$CD/$10/$5A/$B4/$02/$B7/$00/$FE/$C2/$52/$CD/$10/$5A/$5D/$5B/$59/$5E/$1F/$E2/$D6/$1F/$5B/$5A/$29
/$CB/$29/$DA/$80/$3E/>II111IIII/$00/$74/$0D/$01/$1E/>II1I11I111I/$01/$1E/>II1II111I1II/$E9/$13/$00/$06
/$1F/$89/$D1/$E3/$0D/$B0/$20/$B4/$09/$B7/$00/$8A/$5E/<III1II1I11+1/$55/$CD/$10/$5D/$5A/$B7/$00/$B4/$02
/$55/$CD/$10/$5D);IF (MultiTasker=DoubleDos) THEN TurnOnTimeSharing ELSE IF (MultiTasker=TopView)
THEN IF Write_Screen_Memory THEN Sync_Screen(II1II11II11,SUCC(I111I1II1-I1II1II11111));END;
PROCEDURE I11II111I111;VAR II1I:Word;I11111IIII1:Registers;I111II1111:INTEGER;III11I1:INTEGER;BEGIN
I11111IIII1.AX:=$0200;I11111IIII1.BH:=0;INTR($10,I11111IIII1);I111II1111:=SUCC(IIII1I-II1II111I1II);
III11I1:=SUCC((II1I11I111I DIV Max_Screen_Col) SHR 1);IF (I111II1111>0) THEN BEGIN I1IIII11I1111[0]
:=CHR(I111II1111);WriteSXY(I1IIII11I1111,II1II111I1II,III11I1,I11I1III11I1I);END;I11111IIII1.AX:=$0300
;I11111IIII1.BH:=0;INTR($10,I11111IIII1);END;PROCEDURE II1I1II;BEGIN Scroll(IIII11I1I,IIII1II,
I1I111II1,IIII1I,0,I11I1III11I1I,0);II1II111I1I(1,1);END;PROCEDURE IIII11I1(I111I1II1:INT;III1II1I11
:INT);VAR III11I:INTEGER;III11I1:INTEGER;BEGIN III11I1:=SUCC((II1I11I111I DIV Max_Screen_Col) SHR 1)
;III11I:=SUCC(II1I11I111I-PRED(III11I1)*(Max_Screen_Col SHL 1));Set_Text_Attributes(III11I,III11I1,
III11I+PRED(I111I1II1),III11I1,III1II1I11,0);END;PROCEDURE I1IIIIIII11I(I1I111II1I,IIIII1,III11,
I1I11III:INT;I1III1I1:BOOLEAN);BEGIN INLINE($B4/$0F /$55 /$CD/$10 /$5D /$A2/>III11III1111 /$88/$3E/>
I11111111 );I1111III1I1:=EGA_Present;II11I1I11I1:=SEG(DesqView_Screen^);III11I1I:=Wait_For_Retrace;
I11I1III11I1I:=Global_Text_Attribute;III1IIII1(I1I111II1I,IIIII1,III11,I1I11III);II111IIII:=TRUE;END
;PROCEDURE I111III1I1I1(IIII:III);BEGIN I1I111II111(IIII[1],ORD(IIII[0]),0);END;PROCEDURE II1I1I11I(
III1II1111,II1111I11I:INT);VAR IIII:III;BEGIN STR(III1II1111:II1111I11I,IIII);I111III1I1I1(IIII);END
;PROCEDURE II1III1I11I(I1I111II1I,IIIII1,III11,I1I11III:INT;II11I:I111II1111I);BEGIN I11II1.II11I:=
II11I;I11II1.I1I111111:=0;IF II11I=I1I11II1I THEN BEGIN IIIII1:=IIIII1+1 END ELSE IF II11I=
IIII1I1111 THEN BEGIN I11II1.I1I111111:=I1I11III;I1I11III:=I1I11III-1;END;I11II1.I1I111II1I:=
I1I111II1I;I11II1.III11:=III11;I11II1.IIIII1:=IIIII1;I11II1.I1I11III:=I1I11III;I11II1.II11IIII1I1:=
I1I11III-IIIII1+1;I11II1.II1I1III1I:=PRED(I11II1.II11IIII1I1);I11II1.I111I1II1:=III11-I1I111II1I+1;
III1IIII1(I1I111II1I,IIIII1,III11,I1I11III);END;FUNCTION IIII1IIII(VAR II1II1,II1IIII;I111I1II1:INT)
:INT;BEGIN INLINE($1E/$C5/$76/$0A/$C4/$7E/$06/$8B/$4E/$04/$31/$C0/$E3/$0F/$FC/$F3/$A6/$7C/$05/$7F/$07
/$E9/$05/$00/$48/$E9/$01/$00/$40/$1F/$89/$EC/$5D/$C2/$0C/$00);END;PROCEDURE IIII1I1I(VAR II1II1,
II1IIII;I111I1II1:INT);BEGIN MOVE(II1II1,II1IIII,I111I1II1);END;FUNCTION II1II11I1(VAR I1II11IIII1;
I1111I11:INT;VAR I1I11I1I;II1III1III1:INT):INT;BEGIN INLINE($1E/$8B/$4E/$04/$3B/$4E/$0A/$72/$27/$C5/$76
/$0C/$C4/$7E/$06/$89/$F3/$8A/$04/$FC/$F2/$AE/$75/$18/$8B/$46/$0A/$48/$39/$C1/$72/$10/$40/$91/$89/$FA
/$4F/$F3/$A6/$91/$74/$0B/$89/$DE/$89/$D7/$EB/$E1/$29/$C0/$E9/$05/$00/$8B/$46/$04/$29/$C8/$1F/$89/$EC
/$5D/$C2/$0E/$00);END;FUNCTION II1111II1I1I:INT;VAR I11111IIII1:Registers;BEGIN IF (
Extended_KeyBoard AND ((MEM[$40:$96] AND $10)<>0)) THEN I11111IIII1.AH:=$10 ELSE I11111IIII1.AH:=0;
INTR($16,I11111IIII1);IF ((I11111IIII1.AL=$E0) OR (I11111IIII1.AL=$F0)) THEN I11111IIII1.AL:=0;
II1111II1I1I:=I11111IIII1.AX;END;PROCEDURE II111I11IIII(VAR IIII);VAR III1II1111:INTEGER;II1II1II1I:
AnyStr ABSOLUTE IIII;BEGIN II1II1II1I:=UpperCase(II1II1II1I);END;PROCEDURE I1III11I(II1I1I11II11:III
);VAR III11I1:INT;BEGIN I1II1I11I:=TRUE;III11I1:=I11II1.I1I111111;I1I1111I11(1,III11I1);I111III1I1I1
(II1I1I11II11);I11II111I111;II1II111I1I(II1II111I1II,III11I1);END;FUNCTION IIII1III11I1(I1III111:
III1I1I1III1):INT;VAR III1II1111:INT;BEGIN III1II1111:=MAXINT;IF I1III111.CH=#0 THEN III1II1111:=
I1III111.I1II ELSE IF I1III111.CH<#32 THEN III1II1111:=255+ORD(I1III111.CH);IIII1III11I1:=III1II1111
;END;PROCEDURE II11II11(VAR I11I1II111I1:II1II11I);VAR I1III111:II1II11I;BEGIN I1III111.I1III111.
I1III111:=II1111II1I1I;I1III111.I1I1I1II11:=I1II1II1;I1III111.I11I1III1:=IIII1III11I1(I1III111.
I1III111);IF I1III111.I11I1III1<>MAXINT THEN I1III111.I1I1I1II11:=III1II11I[I1III111.I11I1III1];
I11I1II111I1:=I1III111;END;PROCEDURE I1I111111I(VAR I11I1II111I1:II1II11I);VAR I1III111:II1II11I;
II1I111I:I11I111IIIII;I11II111IIII1,III1II1111:INT;BEGIN I11I1II111I1.I1I1I1II11:=IIIIII;II1I111I.
IIII111II1111:=ADDR(I1I1);IF I1I1[0]=#0 THEN EXIT;WHILE II1I111I.IIII111II1111^.II1I1III1II<>
I11I1II111I1.I11I1III1 DO BEGIN IF II1I111I.IIII111II1111^.II1I1III1II=0 THEN EXIT;II1I111I.
I1II1II11111:=II1I111I.I1II1II11111+2+4+1+(II1I111I.IIII111II1111^.I111I1II1*3);END;I1III11I(
II1I111I.IIII111II1111^.IIII);II11II11(I1III111);IF I1III111.I1III111.CH IN I1I1II1IIII THEN
I1III111.I1III111.CH:=CHR(SUCC(ORD(I1III111.I1III111.CH)-ORD('a')))ELSE IF I1III111.I1III111.CH IN
II1II1II11I THEN I1III111.I1III111.CH:=CHR(SUCC(ORD(I1III111.I1III111.CH)-ORD('A')));I1III111.
I11I1III1:=IIII1III11I1(I1III111.I1III111);I11I1II111I1.I11I1III1:=I1III111.I11I1III1;FOR III1II1111
:=1 TO II1I111I.IIII111II1111^.I111I1II1 DO BEGIN IF II1I111I.IIII111II1111^.II1I111II111[III1II1111
].I11I1III1=I1III111.I11I1III1 THEN BEGIN I1III111.I1I1I1II11:=II1I111I.IIII111II1111^.II1I111II111[
III1II1111].I1I1I1II11;I11I1II111I1:=I1III111;EXIT;END;END;END;PROCEDURE I11I1(I1III111:INT);VAR
I11I1II111I1:II1II11I;BEGIN REPEAT II11II11(I11I1II111I1);UNTIL I11I1II111I1.I1III111.I1III111=
I1III111;END;FUNCTION I1III1I1I(VAR II1II1;I111I1II1:INT):INT;VAR II11I1111I1I1:ARRAY[1..MAXINT] OF
CHAR ABSOLUTE II1II1;III1II1111:INT;BEGIN I1III1I1I:=0;III1II1111:=1;WHILE III1II1111<=I111I1II1 DO
BEGIN IF II11I1111I1I1[III1II1111]<>' 'THEN BEGIN I1III1I1I:=III1II1111;EXIT;END;III1II1111:=SUCC(
III1II1111);END;END;PROCEDURE II111I11II11(VAR III1I11I111II:I11I1I11);BEGIN MOVE(III1I11I111II,
III1I,SIZEOF(III1I));END;PROCEDURE II1II1II1111(VAR III1I11I111II:I11I1I11);BEGIN MOVE(III1I,
III1I11I111II,SIZEOF(III1I));END;PROCEDURE I1111II1I11(II1I1I11II11:III);VAR III11I1:INT;III1II1I11:
BYTE;BEGIN I1II1I11I:=TRUE;III1II1I11:=I11I1III11I1I;I11I1III11I1I:=III111I1I;III11I1:=I11II1.
I1I111111;I1I1111I11(1,III11I1);I111III1I1I1('ERROR: ');I111III1I1I1(II1I1I11II11);I111III1I1I1(
' Press <ESC>');I11I1III11I1I:=III1II1I11;I11II111I111;II1II111I1I(II1II111I1II,III11I1);I11I1(
II1II1IIII1I);END;PROCEDURE IIII1I1I1I1(II1I1I11II11:III;VAR I1I11I11I:II1II1I1I);VAR III11I1:INT;
IIII1III1I1II:BYTE ABSOLUTE I1I11I11I;BEGIN I1II1I11I:=TRUE;III11I1:=I11II1.I1I111111;I1I1111I11(1,
III11I1);I111III1I1I1(II1I1I11II11);I11II111I111;II1II111I1I(II1II111I1II,III11I1);IIII1III1I1II:=0;
READLN(I1I11I11I);END;FUNCTION II11I1I111II(II1I1I11II11:III;I1I11I11I:I1II11):CHAR;VAR III11I1:INT;
I11I1II111I1:II1II11I;I1I1I1II11:I111I1II;I11I1III1:INT;BEGIN I1II1I11I:=TRUE;III11I1:=I11II1.
I1I111111;I1I1111I11(1,III11I1);I111III1I1I1(II1I1I11II11);I11II111I111;II1II111I1I(II1II111I1II,
III11I1);REPEAT II11II11(I11I1II111I1);I11I1II111I1.I1III111.CH:=UPCASE(I11I1II111I1.I1III111.CH);
UNTIL I11I1II111I1.I1III111.CH IN I1I11I11I;II11I1I111II:=I11I1II111I1.I1III111.CH;END;PROCEDURE
III111I111I(VAR III11I11:II1II1I1I;VAR I111111I11:I1II1111I11I);BEGIN INLINE($1E /$FC /$C5/$B6/>
III11I11 /$89/$F2 /$89/$F7 /$30/$E4 /$AC /$89/$C1 /$E3/$4B /$89/$CB /$01/$CE /$4E /$80/$3C/$2E /$75/$08
/$49 /$89/$C8 /$89/$FE /$AA /$EB/$39 /$C4/$BE/>I111111I11 /$26/$80/$3D/$00 /$74/$2F /$89/$F7 /$81/$F9
/$04/$00 /$76/$03 /$B9/$04/$00 /$FD /$AC /$3C/$2E /$74/$1E /$3C/$5C /$74/$02 /$E2/$F5 /$FC /$47 /$1E
/$07 /$B0/$2E /$AA /$C5/$B6/>I111111I11 /$30/$E4 /$AC /$89/$C1 /$F3/$A4 /$40 /$01/$D8 /$89/$D7 /$AA
/$1F );END;FUNCTION I1II1I11:BOOLEAN;VAR III1IIIII11,I1II1II11111,II11111I11,I11I1II11,I111IIIIIII1:
INT;IIII11II1111:I11;LABEL I11I111;BEGIN IIII11II1111:=III1I.I1II1111II1;IF III1I.I1IIII1111II=0
THEN GOTO I11I111;IF III1I.I1II1111II1.I1II1II11111=III1I.I111IIIIIII1 THEN GOTO I11I111;I11I1II11:=
III1I.I111IIIIIII1-III1I.I1II1111II1.I1II1II11111+1;IF I11I1II11=0 THEN GOTO I11I111;II11111I11:=
I11I11II11;I111IIIIIII1:=III1I.I111IIIIIII1;INLINE($FC /$1E /$C5/$B6/>IIII11II1111 /$8B/$8E/>
II11111I11 /$8B/$86/>I11I1II11 /$8B/$9E/>I111IIIIIII1 /$39/$C1 /$72/$08 /$89/$C1 /$EB/$04 /$3C/$0D /$76
/$19 /$AC /$E2/$F9 /$39/$DE /$77/$1D /$3C/$0D /$75/$14 /$AC /$3C/$0A /$75/$06 /$39/$DE /$76/$0B /$EB
/$0E /$4E /$EB/$06 /$74/$F0 /$3C/$0A /$75/$E1 /$B8/$01/$00 /$EB/$02 /$31/$C0 /$89/$B6/>I1II1II11111
/$89/$86/>III1IIIII11 /$1F );IF III1IIIII11=0 THEN GOTO I11I111;III1I.I1II1111II1.I1II1II11111:=
I1II1II11111;I1II1I11:=TRUE;III1I.II11I11I1II1:=SUCC(III1I.II11I11I1II1);EXIT;I11I111: I1II1I11:=
FALSE;END;FUNCTION I11II1I111I:BOOLEAN;VAR III1II1111:INT;IIII11II1111:I11;II111I11II,I1II1II11111,
I11I1II,II11111I11:INT;LABEL I11I111,I1I1111I1I;BEGIN IIII11II1111:=III1I.I1II1111II1;IF III1I.
I1IIII1111II=0 THEN GOTO I11I111;IF III1I.I1II1111II1.I1II1II11111=III1I.I1III.I1II1II11111 THEN
GOTO I11I111;III1II1111:=0;III1I.I1II1111II1.I1II1II11111:=III1I.I1II1111II1.I1II1II11111-1;IF III1I
.I1II1111II1.I1II1II11111=III1I.I1III.I1II1II11111 THEN BEGIN GOTO I1I1111I1I;END;IF III1I.
I1II1111II1.I1I^ =I11II111 THEN BEGIN III1I.I1II1111II1.I1II1II11111:=III1I.I1II1111II1.I1II1II11111
-1;IF III1I.I1II1111II1.I1II1II11111=III1I.I1III.I1II1II11111 THEN BEGIN GOTO I1I1111I1I;END;IF
III1I.I1II1111II1.I1I^ =I11II111 THEN BEGIN III1I.I1II1111II1.I1II1II11111:=III1I.I1II1111II1.
I1II1II11111+1;GOTO I1I1111I1I;END;END;II111I11II:=III1I.I1II1111II1.II111I11II;I1II1II11111:=III1I.
I1II1111II1.I1II1II11111;I11I1II:=III1I.I1III.I1II1II11111;II11111I11:=I11I11II11;INLINE($1E /$FD /$8B
/$8E/>II11111I11 /$8E/$9E/>II111I11II /$8B/$B6/>I1II1II11111 /$89/$F0 /$2B/$86/>I11I1II /$48 /$39/$C1
/$76/$02 /$89/$C1 /$4E /$E3/$13 /$AC /$3C/$0D /$76/$04 /$E2/$F9 /$EB/$0A /$74/$04 /$3C/$0A /$75/$F6
/$81/$C6/$02/$00 /$89/$B6/>I1II1II11111 /$1F );III1I.I1II1111II1.I1II1II11111:=I1II1II11111;
I1I1111I1I: I11II1I111I:=TRUE;III1I.II11I11I1II1:=PRED(III1I.II11I11I1II1);EXIT;I11I111: I11II1I111I
:=FALSE;III1I.I1II1111II1:=IIII11II1111;END;PROCEDURE III1IIIII(III111IIIII1I:INT);BEGIN WHILE
III111IIIII1I>III1I.II11I11I1II1 DO IF NOT I1II1I11 THEN EXIT;IF III111IIIII1I=1 THEN BEGIN III1I.
II11I11I1II1:=1;III1I.I1II1111II1.PTR:=III1I.I1III.PTR;EXIT;END;WHILE III111IIIII1I<III1I.
II11I11I1II1 DO IF NOT I11II1I111I THEN EXIT;END;PROCEDURE II1I1I11I1;VAR IIII11II1111:I11;I11I1II11
,II11111I11,I111IIIIIII1,III1IIIII11:INT;BEGIN III1IIIII11:=0;I11I1II11:=III1I.I111IIIIIII1-III1I.
I1II1111II1.I1II1II11111+1;IF (III1I.I1IIII1111II=0) OR (I11I1II11=0) THEN BEGIN II11II1II:=0;END
ELSE BEGIN IIII11II1111:=III1I.I1II1111II1;II11111I11:=I11I11II11;I111IIIIIII1:=III1I.I111IIIIIII1;
INLINE($FC /$1E /$8C/$D8 /$8E/$C0 /$BF/>I1IIIIII1I /$89/$FA /$C5/$B6/>IIII11II1111 /$8B/$8E/>
II11111I11 /$8B/$86/>I11I1II11 /$8B/$9E/>I111IIIIIII1 /$39/$C1 /$72/$08 /$89/$C1 /$EB/$04 /$3C/$0D /$76
/$1B /$AC /$AA /$E2/$F8 /$3C/$0D /$74/$06 /$3C/$0A /$74/$15 /$EB/$28 /$39/$DE /$77/$15 /$AC /$AA /$3C
/$0A /$74/$15 /$4F /$EB/$0C /$74/$F1 /$3C/$0A /$75/$DF /$4F /$B8/$02/$00 /$EB/$11 /$4F /$B8/$01/$00
/$EB/$0B /$81/$EF/$02/$00 /$B8/$03/$00 /$EB/$02 /$31/$C0 /$1F /$29/$D7 /$89/$3E/>II11II1II /$89/$86/
>III1IIIII11 );END;I1II111I:=II11II1II;I1I111III111:=III111(III1IIIII11);CASE I1I111III111 OF I1I11:
IIIIII1:=0;I111I11I1I,III111111:IIIIII1:=1;I11I111I:IIIIII1:=2;END;II1111I111:=IIIIII1;III1I1II:=
FALSE;END;PROCEDURE II1I111(I1II1II11111,I1IIII1111II:INT);VAR I1IIII1II1,I1IIII1I11I:I11;BEGIN IF
I1IIII1111II<>0 THEN BEGIN IF I1II1II11111<=III1I.I111IIIIIII1 THEN BEGIN IF III1I.I1IIII1111II<>0
THEN BEGIN I1IIII1II1.II111I11II:=III1I.I1III.II111I11II;I1IIII1II1.I1II1II11111:=I1II1II11111;
I1IIII1I11I.PTR:=I1IIII1II1.PTR;I1IIII1I11I.I1II1II11111:=I1IIII1I11I.I1II1II11111+I1IIII1111II;
IIII1I1I(I1IIII1II1.PTR^,I1IIII1I11I.PTR^,III1I.I111IIIIIII1-I1II1II11111+1);END;END;III1I.
I111IIIIIII1:=III1I.I111IIIIIII1+I1IIII1111II;III1I.I111I1111:=III1I.I111I1111-I1IIII1111II;III1I.
I1IIII1111II:=III1I.I1IIII1111II+I1IIII1111II;END;END;PROCEDURE III111I1;VAR II1II111IIII1,
II1II11II1I11,IIII1II1I1I1,I1I11I1IIIII1:INT;BEGIN IF NOT III1I1II THEN EXIT;III1I1II:=FALSE;
II1II111IIII1:=II11II1II+IIIIII1;II1II11II1I11:=I1II111I+II1111I111;IF II1II11II1I11=II1II111IIII1
THEN IF IIII1IIII(III1I.I1II1111II1.I1I^,I1IIIIII1I,II11II1II)=0 THEN EXIT;III1I.II1I1I:=TRUE;
IIII1II1I1I1:=II1II111IIII1-II1II11II1I11;IF IIII1II1I1I1>0 THEN BEGIN IF IIII1II1I1I1>III1I.
I111I1111 THEN BEGIN I1111II1I11('Out of space.');EXIT;END;END;II1I111(III1I.I1II1111II1.
I1II1II11111+II1II11II1I11,IIII1II1I1I1);I1I11I1IIIII1:=SUCC(II11II1II);CASE I1I111III111 OF
I111I11I1I:I1IIIIII1I[I1I11I1IIIII1]:=I1I1I111II1I;III111111:I1IIIIII1I[I1I11I1IIIII1]:=I11II111;
I11I111I:BEGIN I1IIIIII1I[I1I11I1IIIII1]:=I1I1I111II1I;I1IIIIII1I[SUCC(I1I11I1IIIII1)]:=I11II111;END
;END;IF II1II111IIII1>0 THEN MOVE(I1IIIIII1I,III1I.I1II1111II1.PTR^,II1II111IIII1);I1II111I:=
II11II1II;II1111I111:=IIIIII1;END;PROCEDURE I1I1111I;BEGIN II11II1II:=0;IIIIII1:=0;III1I1II:=TRUE;
III111I1;II1I1I11I1;END;FUNCTION II1II1111I:BOOLEAN;BEGIN II1II1111I:=FALSE;III111I1;IF I1II1I11
THEN BEGIN II1II1111I:=TRUE;II1I1I11I1;END;END;FUNCTION I11I1I1II1I:BOOLEAN;BEGIN III111I1;
I11I1I1II1I:=FALSE;IF I11II1I111I THEN BEGIN I11I1I1II1I:=TRUE;II1I1I11I1;END;END;PROCEDURE II11IIII
(III111IIIII1I:INT);VAR I1IIII1II11II:INT;BEGIN III111I1;I1IIII1II11II:=III1I.II11I11I1II1;III1IIIII
(III111IIIII1I);IF I1IIII1II11II<>III1I.II11I11I1II1 THEN II1I1I11I1;END;