home *** CD-ROM | disk | FTP | other *** search
/ Power Programming / powerprogramming1994.iso / progtool / pibterm / pibt41s1.arc / EDITSUB1.MOD < prev    next >
Text File  |  1988-03-07  |  16KB  |  164 lines

  1. PROCEDURE I1I1111I11(III11I:INT;III11I1:INT);BEGIN II1II111I1II:=III11I;I1I1III1II111:=III11I1;
  2. II1I11I111I:=III111I1I1II1+((PRED(III11I)+PRED(III11I1)*I1111) SHL 1);END;PROCEDURE II1II111I1I(
  3. III11I,III11I1:INT);BEGIN I1I1111I11(III11I,III11I1);INLINE($B4/$02 /$8A/$3E/>I11111111 /$8A/$76/<
  4. III11I1 /$02/$36/>IIII11I1I /$80/$EE/$02 /$8A/$56/<III11I /$02/$16/>I1I111II1 /$80/$EA/$02 /$55 /$CD
  5. /$10 /$5D );END;PROCEDURE III1IIII1(I1I111II1I,IIIII1,III11,I1I11III:INT);BEGIN I1I111II1:=
  6. I1I111II1I;IIII1I:=III11;IIII11I1I:=IIIII1;IIII1II:=I1I11III;I1I1II1III1:=III11-I1I111II1I+1;II111:=
  7. I1I11III-IIIII1+1;III111I1I1II1:=((((IIIII1-1)*I1111)+I1I111II1I-1)*2)+(I11111111*4096);I1I1111I11(1
  8. ,1);END;PROCEDURE I1I111II111(VAR I111III1;I111I1II1:INT;I1II1II11111:INT);VAR III1II1I11:Word;
  9. II1II11II11:Word;BEGIN IF (MultiTasker=DoubleDos) THEN BEGIN TurnOffTimeSharing;Get_Screen_Address(
  10. DesqView_Screen);END;II1II11II11:=II1I11I111I;INLINE($A0/>Wait_For_Retrace/$8A/$26/>I11I1III11I1I/$89
  11. /$86/>III1II1I11/$FC/$F6/$06/>Write_Screen_Memory/$01/$75/$03/$E9/$BE/$00/$1E/$C4/$3E/>
  12. DesqView_Screen/$8B/$1E/>II1I11I111I/$01/$DF/$8B/$9E/>I1II1II11111/$8B/$8E/>I111I1II1/$8B/$16/>
  13. I1I1II1III1/$2B/$16/>II1II111I1II/$42/$29/$D9/$81/$F9/$00/$00/$7F/$03/$E9/$6D/$00/$39/$D1/$7E/$02/$89
  14. /$D1/$C5/$B6/>I111III1/$87/$D9/$E3/$0B/$AC/$3C/$0D/$74/$59/$3C/$0A/$74/$55/$E2/$F5/$89/$D9/$8B/$86/>
  15. III1II1I11/$D0/$D8/$73/$26/$52/$53/$BA/>CRT_Status/$AC/$3C/$0D/$74/$17/$3C/$0A/$74/$13/$89/$C3/$EC/$A8
  16. /$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
  17. /$3C/$0A/$74/$03/$AB/$E2/$F4/$1F/$29/$CB/$29/$DA/$80/$3E/>II111IIII/$00/$74/$0C/$89/$3E/>II1I11I111I
  18. /$01/$1E/>II1II111I1II/$E9/$FB/$00/$1F/$89/$D1/$E3/$23/$B0/$20/$80/$7E/<III1II1I11/$00/$75/$05/$F3/$AB
  19. /$E9/$E9/$00/$BA/>CRT_Status/$89/$C3/$EC/$A8/$01/$75/$FB/$FA/$EC/$A8/$01/$74/$FB/$89/$D8/$AB/$FB/$E2
  20. /$EF/$E9/$D0/$00/$1E/$B4/$03/$B7/$00/$55/$CD/$10/$5D/$07/$52/$8B/$9E/>I1II1II11111/$8B/$8E/>
  21. I111I1II1/$8B/$16/>I1I1II1III1/$2B/$16/>II1II111I1II/$42/$29/$D9/$81/$F9/$00/$00/$7F/$03/$E9/$8F/$00
  22. /$39/$D1/$7E/$02/$89/$D1/$C5/$B6/>I111III1/$87/$D9/$E3/$0B/$AC/$3C/$0D/$74/$7A/$3C/$0A/$74/$76/$E2/$F5
  23. /$89/$D9/$52/$53/$31/$D2/$26/$A1/>II1I11I111I/$26/$F7/$36/>Max_Screen_Col/$D1/$E8/$88/$C6/$26/$8A/$16
  24. />II1II111I1II/$FE/$CA/$06/$1E/$56/$51/$52/$55/$B4/$02/$B7/$00/$CD/$10/$5D/$5A/$59/$5E/$1F/$8B/$9E/>
  25. III1II1I11/$86/$FB/$AC/$3C/$0D/$74/$25/$3C/$0A/$74/$21/$1E/$56/$51/$53/$55/$52/$B4/$09/$B7/$00/$B9/$01
  26. /$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
  27. /$CB/$29/$DA/$80/$3E/>II111IIII/$00/$74/$0D/$01/$1E/>II1I11I111I/$01/$1E/>II1II111I1II/$E9/$13/$00/$06
  28. /$1F/$89/$D1/$E3/$0D/$B0/$20/$B4/$09/$B7/$00/$8A/$5E/<III1II1I11+1/$55/$CD/$10/$5D/$5A/$B7/$00/$B4/$02
  29. /$55/$CD/$10/$5D);IF (MultiTasker=DoubleDos) THEN TurnOnTimeSharing ELSE IF (MultiTasker=TopView) 
  30. THEN IF Write_Screen_Memory THEN Sync_Screen(II1II11II11,SUCC(I111I1II1-I1II1II11111));END;
  31. PROCEDURE I11II111I111;VAR II1I:Word;I11111IIII1:Registers;I111II1111:INTEGER;III11I1:INTEGER;BEGIN 
  32. I11111IIII1.AX:=$0200;I11111IIII1.BH:=0;INTR($10,I11111IIII1);I111II1111:=SUCC(IIII1I-II1II111I1II);
  33. III11I1:=SUCC((II1I11I111I DIV Max_Screen_Col) SHR 1);IF (I111II1111>0) THEN BEGIN I1IIII11I1111[0]
  34. :=CHR(I111II1111);WriteSXY(I1IIII11I1111,II1II111I1II,III11I1,I11I1III11I1I);END;I11111IIII1.AX:=$0300
  35. ;I11111IIII1.BH:=0;INTR($10,I11111IIII1);END;PROCEDURE II1I1II;BEGIN Scroll(IIII11I1I,IIII1II,
  36. I1I111II1,IIII1I,0,I11I1III11I1I,0);II1II111I1I(1,1);END;PROCEDURE IIII11I1(I111I1II1:INT;III1II1I11
  37. :INT);VAR III11I:INTEGER;III11I1:INTEGER;BEGIN III11I1:=SUCC((II1I11I111I DIV Max_Screen_Col) SHR 1)
  38. ;III11I:=SUCC(II1I11I111I-PRED(III11I1)*(Max_Screen_Col SHL 1));Set_Text_Attributes(III11I,III11I1,
  39. III11I+PRED(I111I1II1),III11I1,III1II1I11,0);END;PROCEDURE I1IIIIIII11I(I1I111II1I,IIIII1,III11,
  40. I1I11III:INT;I1III1I1:BOOLEAN);BEGIN INLINE($B4/$0F /$55 /$CD/$10 /$5D /$A2/>III11III1111 /$88/$3E/>
  41. I11111111 );I1111III1I1:=EGA_Present;II11I1I11I1:=SEG(DesqView_Screen^);III11I1I:=Wait_For_Retrace;
  42. I11I1III11I1I:=Global_Text_Attribute;III1IIII1(I1I111II1I,IIIII1,III11,I1I11III);II111IIII:=TRUE;END
  43. ;PROCEDURE I111III1I1I1(IIII:III);BEGIN I1I111II111(IIII[1],ORD(IIII[0]),0);END;PROCEDURE II1I1I11I(
  44. III1II1111,II1111I11I:INT);VAR IIII:III;BEGIN STR(III1II1111:II1111I11I,IIII);I111III1I1I1(IIII);END
  45. ;PROCEDURE II1III1I11I(I1I111II1I,IIIII1,III11,I1I11III:INT;II11I:I111II1111I);BEGIN I11II1.II11I:=
  46. II11I;I11II1.I1I111111:=0;IF II11I=I1I11II1I THEN BEGIN IIIII1:=IIIII1+1 END ELSE IF II11I=
  47. IIII1I1111 THEN BEGIN I11II1.I1I111111:=I1I11III;I1I11III:=I1I11III-1;END;I11II1.I1I111II1I:=
  48. I1I111II1I;I11II1.III11:=III11;I11II1.IIIII1:=IIIII1;I11II1.I1I11III:=I1I11III;I11II1.II11IIII1I1:=
  49. I1I11III-IIIII1+1;I11II1.II1I1III1I:=PRED(I11II1.II11IIII1I1);I11II1.I111I1II1:=III11-I1I111II1I+1;
  50. III1IIII1(I1I111II1I,IIIII1,III11,I1I11III);END;FUNCTION IIII1IIII(VAR II1II1,II1IIII;I111I1II1:INT)
  51. :INT;BEGIN INLINE($1E/$C5/$76/$0A/$C4/$7E/$06/$8B/$4E/$04/$31/$C0/$E3/$0F/$FC/$F3/$A6/$7C/$05/$7F/$07
  52. /$E9/$05/$00/$48/$E9/$01/$00/$40/$1F/$89/$EC/$5D/$C2/$0C/$00);END;PROCEDURE IIII1I1I(VAR II1II1,
  53. II1IIII;I111I1II1:INT);BEGIN MOVE(II1II1,II1IIII,I111I1II1);END;FUNCTION II1II11I1(VAR I1II11IIII1;
  54. I1111I11:INT;VAR I1I11I1I;II1III1III1:INT):INT;BEGIN INLINE($1E/$8B/$4E/$04/$3B/$4E/$0A/$72/$27/$C5/$76
  55. /$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
  56. /$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
  57. /$5D/$C2/$0E/$00);END;FUNCTION II1111II1I1I:INT;VAR I11111IIII1:Registers;BEGIN IF (
  58. Extended_KeyBoard AND ((MEM[$40:$96] AND $10)<>0)) THEN I11111IIII1.AH:=$10 ELSE I11111IIII1.AH:=0;
  59. INTR($16,I11111IIII1);IF ((I11111IIII1.AL=$E0) OR (I11111IIII1.AL=$F0)) THEN I11111IIII1.AL:=0;
  60. II1111II1I1I:=I11111IIII1.AX;END;PROCEDURE II111I11IIII(VAR IIII);VAR III1II1111:INTEGER;II1II1II1I:
  61. AnyStr ABSOLUTE IIII;BEGIN II1II1II1I:=UpperCase(II1II1II1I);END;PROCEDURE I1III11I(II1I1I11II11:III
  62. );VAR III11I1:INT;BEGIN I1II1I11I:=TRUE;III11I1:=I11II1.I1I111111;I1I1111I11(1,III11I1);I111III1I1I1
  63. (II1I1I11II11);I11II111I111;II1II111I1I(II1II111I1II,III11I1);END;FUNCTION IIII1III11I1(I1III111:
  64. III1I1I1III1):INT;VAR III1II1111:INT;BEGIN III1II1111:=MAXINT;IF I1III111.CH=#0 THEN III1II1111:=
  65. I1III111.I1II ELSE IF I1III111.CH<#32 THEN III1II1111:=255+ORD(I1III111.CH);IIII1III11I1:=III1II1111
  66. ;END;PROCEDURE II11II11(VAR I11I1II111I1:II1II11I);VAR I1III111:II1II11I;BEGIN I1III111.I1III111.
  67. I1III111:=II1111II1I1I;I1III111.I1I1I1II11:=I1II1II1;I1III111.I11I1III1:=IIII1III11I1(I1III111.
  68. I1III111);IF I1III111.I11I1III1<>MAXINT THEN I1III111.I1I1I1II11:=III1II11I[I1III111.I11I1III1];
  69. I11I1II111I1:=I1III111;END;PROCEDURE I1I111111I(VAR I11I1II111I1:II1II11I);VAR I1III111:II1II11I;
  70. II1I111I:I11I111IIIII;I11II111IIII1,III1II1111:INT;BEGIN I11I1II111I1.I1I1I1II11:=IIIIII;II1I111I.
  71. IIII111II1111:=ADDR(I1I1);IF I1I1[0]=#0 THEN EXIT;WHILE II1I111I.IIII111II1111^.II1I1III1II<>
  72. I11I1II111I1.I11I1III1 DO BEGIN IF II1I111I.IIII111II1111^.II1I1III1II=0 THEN EXIT;II1I111I.
  73. I1II1II11111:=II1I111I.I1II1II11111+2+4+1+(II1I111I.IIII111II1111^.I111I1II1*3);END;I1III11I(
  74. II1I111I.IIII111II1111^.IIII);II11II11(I1III111);IF I1III111.I1III111.CH IN I1I1II1IIII THEN 
  75. I1III111.I1III111.CH:=CHR(SUCC(ORD(I1III111.I1III111.CH)-ORD('a')))ELSE IF I1III111.I1III111.CH IN 
  76. II1II1II11I THEN I1III111.I1III111.CH:=CHR(SUCC(ORD(I1III111.I1III111.CH)-ORD('A')));I1III111.
  77. I11I1III1:=IIII1III11I1(I1III111.I1III111);I11I1II111I1.I11I1III1:=I1III111.I11I1III1;FOR III1II1111
  78. :=1 TO II1I111I.IIII111II1111^.I111I1II1 DO BEGIN IF II1I111I.IIII111II1111^.II1I111II111[III1II1111
  79. ].I11I1III1=I1III111.I11I1III1 THEN BEGIN I1III111.I1I1I1II11:=II1I111I.IIII111II1111^.II1I111II111[
  80. III1II1111].I1I1I1II11;I11I1II111I1:=I1III111;EXIT;END;END;END;PROCEDURE I11I1(I1III111:INT);VAR 
  81. I11I1II111I1:II1II11I;BEGIN REPEAT II11II11(I11I1II111I1);UNTIL I11I1II111I1.I1III111.I1III111=
  82. I1III111;END;FUNCTION I1III1I1I(VAR II1II1;I111I1II1:INT):INT;VAR II11I1111I1I1:ARRAY[1..MAXINT] OF 
  83. CHAR ABSOLUTE II1II1;III1II1111:INT;BEGIN I1III1I1I:=0;III1II1111:=1;WHILE III1II1111<=I111I1II1 DO 
  84. BEGIN IF II11I1111I1I1[III1II1111]<>' 'THEN BEGIN I1III1I1I:=III1II1111;EXIT;END;III1II1111:=SUCC(
  85. III1II1111);END;END;PROCEDURE II111I11II11(VAR III1I11I111II:I11I1I11);BEGIN MOVE(III1I11I111II,
  86. III1I,SIZEOF(III1I));END;PROCEDURE II1II1II1111(VAR III1I11I111II:I11I1I11);BEGIN MOVE(III1I,
  87. III1I11I111II,SIZEOF(III1I));END;PROCEDURE I1111II1I11(II1I1I11II11:III);VAR III11I1:INT;III1II1I11:
  88. BYTE;BEGIN I1II1I11I:=TRUE;III1II1I11:=I11I1III11I1I;I11I1III11I1I:=III111I1I;III11I1:=I11II1.
  89. I1I111111;I1I1111I11(1,III11I1);I111III1I1I1('ERROR: ');I111III1I1I1(II1I1I11II11);I111III1I1I1(
  90. ' Press <ESC>');I11I1III11I1I:=III1II1I11;I11II111I111;II1II111I1I(II1II111I1II,III11I1);I11I1(
  91. II1II1IIII1I);END;PROCEDURE IIII1I1I1I1(II1I1I11II11:III;VAR I1I11I11I:II1II1I1I);VAR III11I1:INT;
  92. IIII1III1I1II:BYTE ABSOLUTE I1I11I11I;BEGIN I1II1I11I:=TRUE;III11I1:=I11II1.I1I111111;I1I1111I11(1,
  93. III11I1);I111III1I1I1(II1I1I11II11);I11II111I111;II1II111I1I(II1II111I1II,III11I1);IIII1III1I1II:=0;
  94. READLN(I1I11I11I);END;FUNCTION II11I1I111II(II1I1I11II11:III;I1I11I11I:I1II11):CHAR;VAR III11I1:INT;
  95. I11I1II111I1:II1II11I;I1I1I1II11:I111I1II;I11I1III1:INT;BEGIN I1II1I11I:=TRUE;III11I1:=I11II1.
  96. I1I111111;I1I1111I11(1,III11I1);I111III1I1I1(II1I1I11II11);I11II111I111;II1II111I1I(II1II111I1II,
  97. III11I1);REPEAT II11II11(I11I1II111I1);I11I1II111I1.I1III111.CH:=UPCASE(I11I1II111I1.I1III111.CH);
  98. UNTIL I11I1II111I1.I1III111.CH IN I1I11I11I;II11I1I111II:=I11I1II111I1.I1III111.CH;END;PROCEDURE 
  99. III111I111I(VAR III11I11:II1II1I1I;VAR I111111I11:I1II1111I11I);BEGIN INLINE($1E /$FC /$C5/$B6/>
  100. III11I11 /$89/$F2 /$89/$F7 /$30/$E4 /$AC /$89/$C1 /$E3/$4B /$89/$CB /$01/$CE /$4E /$80/$3C/$2E /$75/$08 
  101. /$49 /$89/$C8 /$89/$FE /$AA /$EB/$39 /$C4/$BE/>I111111I11 /$26/$80/$3D/$00 /$74/$2F /$89/$F7 /$81/$F9
  102. /$04/$00 /$76/$03 /$B9/$04/$00 /$FD /$AC /$3C/$2E /$74/$1E /$3C/$5C /$74/$02 /$E2/$F5 /$FC /$47 /$1E 
  103. /$07 /$B0/$2E /$AA /$C5/$B6/>I111111I11 /$30/$E4 /$AC /$89/$C1 /$F3/$A4 /$40 /$01/$D8 /$89/$D7 /$AA 
  104. /$1F );END;FUNCTION I1II1I11:BOOLEAN;VAR III1IIIII11,I1II1II11111,II11111I11,I11I1II11,I111IIIIIII1:
  105. INT;IIII11II1111:I11;LABEL I11I111;BEGIN IIII11II1111:=III1I.I1II1111II1;IF III1I.I1IIII1111II=0 
  106. THEN GOTO I11I111;IF III1I.I1II1111II1.I1II1II11111=III1I.I111IIIIIII1 THEN GOTO I11I111;I11I1II11:=
  107. III1I.I111IIIIIII1-III1I.I1II1111II1.I1II1II11111+1;IF I11I1II11=0 THEN GOTO I11I111;II11111I11:=
  108. I11I11II11;I111IIIIIII1:=III1I.I111IIIIIII1;INLINE($FC /$1E /$C5/$B6/>IIII11II1111 /$8B/$8E/>
  109. II11111I11 /$8B/$86/>I11I1II11 /$8B/$9E/>I111IIIIIII1 /$39/$C1 /$72/$08 /$89/$C1 /$EB/$04 /$3C/$0D /$76
  110. /$19 /$AC /$E2/$F9 /$39/$DE /$77/$1D /$3C/$0D /$75/$14 /$AC /$3C/$0A /$75/$06 /$39/$DE /$76/$0B /$EB
  111. /$0E /$4E /$EB/$06 /$74/$F0 /$3C/$0A /$75/$E1 /$B8/$01/$00 /$EB/$02 /$31/$C0 /$89/$B6/>I1II1II11111 
  112. /$89/$86/>III1IIIII11 /$1F );IF III1IIIII11=0 THEN GOTO I11I111;III1I.I1II1111II1.I1II1II11111:=
  113. I1II1II11111;I1II1I11:=TRUE;III1I.II11I11I1II1:=SUCC(III1I.II11I11I1II1);EXIT;I11I111: I1II1I11:=
  114. FALSE;END;FUNCTION I11II1I111I:BOOLEAN;VAR III1II1111:INT;IIII11II1111:I11;II111I11II,I1II1II11111,
  115. I11I1II,II11111I11:INT;LABEL I11I111,I1I1111I1I;BEGIN IIII11II1111:=III1I.I1II1111II1;IF III1I.
  116. I1IIII1111II=0 THEN GOTO I11I111;IF III1I.I1II1111II1.I1II1II11111=III1I.I1III.I1II1II11111 THEN 
  117. GOTO I11I111;III1II1111:=0;III1I.I1II1111II1.I1II1II11111:=III1I.I1II1111II1.I1II1II11111-1;IF III1I
  118. .I1II1111II1.I1II1II11111=III1I.I1III.I1II1II11111 THEN BEGIN GOTO I1I1111I1I;END;IF III1I.
  119. I1II1111II1.I1I^ =I11II111 THEN BEGIN III1I.I1II1111II1.I1II1II11111:=III1I.I1II1111II1.I1II1II11111
  120. -1;IF III1I.I1II1111II1.I1II1II11111=III1I.I1III.I1II1II11111 THEN BEGIN GOTO I1I1111I1I;END;IF 
  121. III1I.I1II1111II1.I1I^ =I11II111 THEN BEGIN III1I.I1II1111II1.I1II1II11111:=III1I.I1II1111II1.
  122. I1II1II11111+1;GOTO I1I1111I1I;END;END;II111I11II:=III1I.I1II1111II1.II111I11II;I1II1II11111:=III1I.
  123. I1II1111II1.I1II1II11111;I11I1II:=III1I.I1III.I1II1II11111;II11111I11:=I11I11II11;INLINE($1E /$FD /$8B
  124. /$8E/>II11111I11 /$8E/$9E/>II111I11II /$8B/$B6/>I1II1II11111 /$89/$F0 /$2B/$86/>I11I1II /$48 /$39/$C1 
  125. /$76/$02 /$89/$C1 /$4E /$E3/$13 /$AC /$3C/$0D /$76/$04 /$E2/$F9 /$EB/$0A /$74/$04 /$3C/$0A /$75/$F6 
  126. /$81/$C6/$02/$00 /$89/$B6/>I1II1II11111 /$1F );III1I.I1II1111II1.I1II1II11111:=I1II1II11111;
  127. I1I1111I1I: I11II1I111I:=TRUE;III1I.II11I11I1II1:=PRED(III1I.II11I11I1II1);EXIT;I11I111: I11II1I111I
  128. :=FALSE;III1I.I1II1111II1:=IIII11II1111;END;PROCEDURE III1IIIII(III111IIIII1I:INT);BEGIN WHILE 
  129. III111IIIII1I>III1I.II11I11I1II1 DO IF NOT I1II1I11 THEN EXIT;IF III111IIIII1I=1 THEN BEGIN III1I.
  130. II11I11I1II1:=1;III1I.I1II1111II1.PTR:=III1I.I1III.PTR;EXIT;END;WHILE III111IIIII1I<III1I.
  131. II11I11I1II1 DO IF NOT I11II1I111I THEN EXIT;END;PROCEDURE II1I1I11I1;VAR IIII11II1111:I11;I11I1II11
  132. ,II11111I11,I111IIIIIII1,III1IIIII11:INT;BEGIN III1IIIII11:=0;I11I1II11:=III1I.I111IIIIIII1-III1I.
  133. I1II1111II1.I1II1II11111+1;IF (III1I.I1IIII1111II=0) OR (I11I1II11=0) THEN BEGIN II11II1II:=0;END 
  134. ELSE BEGIN IIII11II1111:=III1I.I1II1111II1;II11111I11:=I11I11II11;I111IIIIIII1:=III1I.I111IIIIIII1;
  135. INLINE($FC /$1E /$8C/$D8 /$8E/$C0 /$BF/>I1IIIIII1I /$89/$FA /$C5/$B6/>IIII11II1111 /$8B/$8E/>
  136. II11111I11 /$8B/$86/>I11I1II11 /$8B/$9E/>I111IIIIIII1 /$39/$C1 /$72/$08 /$89/$C1 /$EB/$04 /$3C/$0D /$76
  137. /$1B /$AC /$AA /$E2/$F8 /$3C/$0D /$74/$06 /$3C/$0A /$74/$15 /$EB/$28 /$39/$DE /$77/$15 /$AC /$AA /$3C
  138. /$0A /$74/$15 /$4F /$EB/$0C /$74/$F1 /$3C/$0A /$75/$DF /$4F /$B8/$02/$00 /$EB/$11 /$4F /$B8/$01/$00 
  139. /$EB/$0B /$81/$EF/$02/$00 /$B8/$03/$00 /$EB/$02 /$31/$C0 /$1F /$29/$D7 /$89/$3E/>II11II1II /$89/$86/
  140. >III1IIIII11 );END;I1II111I:=II11II1II;I1I111III111:=III111(III1IIIII11);CASE I1I111III111 OF I1I11:
  141. IIIIII1:=0;I111I11I1I,III111111:IIIIII1:=1;I11I111I:IIIIII1:=2;END;II1111I111:=IIIIII1;III1I1II:=
  142. FALSE;END;PROCEDURE II1I111(I1II1II11111,I1IIII1111II:INT);VAR I1IIII1II1,I1IIII1I11I:I11;BEGIN IF 
  143. I1IIII1111II<>0 THEN BEGIN IF I1II1II11111<=III1I.I111IIIIIII1 THEN BEGIN IF III1I.I1IIII1111II<>0 
  144. THEN BEGIN I1IIII1II1.II111I11II:=III1I.I1III.II111I11II;I1IIII1II1.I1II1II11111:=I1II1II11111;
  145. I1IIII1I11I.PTR:=I1IIII1II1.PTR;I1IIII1I11I.I1II1II11111:=I1IIII1I11I.I1II1II11111+I1IIII1111II;
  146. IIII1I1I(I1IIII1II1.PTR^,I1IIII1I11I.PTR^,III1I.I111IIIIIII1-I1II1II11111+1);END;END;III1I.
  147. I111IIIIIII1:=III1I.I111IIIIIII1+I1IIII1111II;III1I.I111I1111:=III1I.I111I1111-I1IIII1111II;III1I.
  148. I1IIII1111II:=III1I.I1IIII1111II+I1IIII1111II;END;END;PROCEDURE III111I1;VAR II1II111IIII1,
  149. II1II11II1I11,IIII1II1I1I1,I1I11I1IIIII1:INT;BEGIN IF NOT III1I1II THEN EXIT;III1I1II:=FALSE;
  150. II1II111IIII1:=II11II1II+IIIIII1;II1II11II1I11:=I1II111I+II1111I111;IF II1II11II1I11=II1II111IIII1 
  151. THEN IF IIII1IIII(III1I.I1II1111II1.I1I^,I1IIIIII1I,II11II1II)=0 THEN EXIT;III1I.II1I1I:=TRUE;
  152. IIII1II1I1I1:=II1II111IIII1-II1II11II1I11;IF IIII1II1I1I1>0 THEN BEGIN IF IIII1II1I1I1>III1I.
  153. I111I1111 THEN BEGIN I1111II1I11('Out of space.');EXIT;END;END;II1I111(III1I.I1II1111II1.
  154. I1II1II11111+II1II11II1I11,IIII1II1I1I1);I1I11I1IIIII1:=SUCC(II11II1II);CASE I1I111III111 OF 
  155. I111I11I1I:I1IIIIII1I[I1I11I1IIIII1]:=I1I1I111II1I;III111111:I1IIIIII1I[I1I11I1IIIII1]:=I11II111;
  156. I11I111I:BEGIN I1IIIIII1I[I1I11I1IIIII1]:=I1I1I111II1I;I1IIIIII1I[SUCC(I1I11I1IIIII1)]:=I11II111;END
  157. ;END;IF II1II111IIII1>0 THEN MOVE(I1IIIIII1I,III1I.I1II1111II1.PTR^,II1II111IIII1);I1II111I:=
  158. II11II1II;II1111I111:=IIIIII1;END;PROCEDURE I1I1111I;BEGIN II11II1II:=0;IIIIII1:=0;III1I1II:=TRUE;
  159. III111I1;II1I1I11I1;END;FUNCTION II1II1111I:BOOLEAN;BEGIN II1II1111I:=FALSE;III111I1;IF I1II1I11 
  160. THEN BEGIN II1II1111I:=TRUE;II1I1I11I1;END;END;FUNCTION I11I1I1II1I:BOOLEAN;BEGIN III111I1;
  161. I11I1I1II1I:=FALSE;IF I11II1I111I THEN BEGIN I11I1I1II1I:=TRUE;II1I1I11I1;END;END;PROCEDURE II11IIII
  162. (III111IIIII1I:INT);VAR I1IIII1II11II:INT;BEGIN III111I1;I1IIII1II11II:=III1I.II11I11I1II1;III1IIIII
  163. (III111IIIII1I);IF I1IIII1II11II<>III1I.II11I11I1II1 THEN II1I1I11I1;END;
  164.